<?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>110811</bug_id>
          
          <creation_ts>2013-02-25 15:11:28 -0800</creation_ts>
          <short_desc>Draw intermediate snapshots if possible</short_desc>
          <delta_ts>2013-02-26 09:18:49 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jonlee</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>841331</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-25 15:11:28 -0800</bug_when>
    <thetext>After http://webkit.org/b/110495 we delayed snapshotting until we&apos;ve received a nice image, but this makes the page look like it is broken. We should draw any intermediate snapshots that we find, such as progress bars.

This is actually a regression on previous behaviour (say from about r139000)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841333</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-25 15:12:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/13246641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841334</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-02-25 15:12:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/13289301&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841486</commentid>
    <comment_count>3</comment_count>
      <attachid>190171</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-25 18:18:04 -0800</bug_when>
    <thetext>Created attachment 190171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841498</commentid>
    <comment_count>4</comment_count>
      <attachid>190176</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-25 18:23:34 -0800</bug_when>
    <thetext>Created attachment 190176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841507</commentid>
    <comment_count>5</comment_count>
      <attachid>190176</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-25 18:27:50 -0800</bug_when>
    <thetext>Comment on attachment 190176
Patch

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

&gt; Source/WebCore/html/HTMLPlugInImageElement.h:69
&gt; +    Image* snapshotImage() { return m_snapshotImage.get(); }

Can this be const?

&gt; Source/WebCore/rendering/RenderEmbeddedObject.cpp:176
&gt; +    if (element &amp;&amp; element-&gt;isPluginElement()) {
&gt; +        HTMLPlugInImageElement* plugInImageElement = static_cast&lt;HTMLPlugInImageElement*&gt;(element);

This cast looks unsafe; you&apos;re only testing isPluginElement(), not if it&apos;s a HTMLPlugInImageElement. Or are the names confusing?

I also think this should be one of those SECURITY_ASSERT-checked casts.

&gt; Source/WebCore/rendering/RenderEmbeddedObject.cpp:180
&gt; +                if (paintInfo.phase == PaintPhaseForeground)

You should bail earlier with this check, since it&apos;s cheap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841531</commentid>
    <comment_count>6</comment_count>
      <attachid>190182</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-25 19:16:34 -0800</bug_when>
    <thetext>Created attachment 190182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841537</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-25 19:26:48 -0800</bug_when>
    <thetext>New patch addresses all of Simon&apos;s comments. Main change is that paintContents is called from the typical painting path in RenderWidget, but overridden sometimes by RenderEmbeddedObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841540</commentid>
    <comment_count>8</comment_count>
      <attachid>190182</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-02-25 19:31:05 -0800</bug_when>
    <thetext>Comment on attachment 190182
Patch

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

&gt; Source/WebCore/ChangeLog:25
&gt; +        that in RenderSnapshottedPlugIn.

I think it would be useful to also mention that if we are not snapshotting we fall back to the default widget painting code, although we should not reach it since we swap renderers.

&gt; Source/WebCore/ChangeLog:34
&gt; +        of paint() that can be overridden by RenderEmbeddedObject.

Mentioning that this was just moved out of paint() would be useful, since in the snapshotting case we don&apos;t want to provide the widget an opportunity to paint.

&gt; Source/WebCore/html/HTMLPlugInElement.h:77
&gt; +    virtual bool isPlugInImageElement() { return false; }

const please!

&gt; Source/WebCore/html/HTMLPlugInImageElement.h:69
&gt; +    Image* snapshotImage() const { return m_snapshotImage.get(); }

const Image* would be better.

&gt; Source/WebCore/html/HTMLPlugInImageElement.h:115
&gt; +    virtual bool isPlugInImageElement() OVERRIDE { return true; }

... and const here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841545</commentid>
    <comment_count>9</comment_count>
      <attachid>190184</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-25 19:39:00 -0800</bug_when>
    <thetext>Created attachment 190184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841549</commentid>
    <comment_count>10</comment_count>
      <attachid>190186</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-25 19:42:01 -0800</bug_when>
    <thetext>Created attachment 190186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841550</commentid>
    <comment_count>11</comment_count>
      <attachid>190186</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-02-25 19:46:11 -0800</bug_when>
    <thetext>Comment on attachment 190186
Patch

Looks good. Unofficial r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841608</commentid>
    <comment_count>12</comment_count>
      <attachid>190186</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-25 21:36:04 -0800</bug_when>
    <thetext>Comment on attachment 190186
Patch

I&apos;m wondering why overriding paintReplaced() isn&apos;t more appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841613</commentid>
    <comment_count>13</comment_count>
      <attachid>190186</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-25 21:46:35 -0800</bug_when>
    <thetext>Comment on attachment 190186
Patch

OK I guess paintReplaced() is never called for RenderWidget subclasses since RenderWidget has its own paint().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842072</commentid>
    <comment_count>14</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-26 09:18:49 -0800</bug_when>
    <thetext>Committed r144067: &lt;http://trac.webkit.org/changeset/144067&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190171</attachid>
            <date>2013-02-25 18:18:04 -0800</date>
            <delta_ts>2013-02-25 18:23:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110811-20130225181420.patch</filename>
            <type>text/plain</type>
            <size>6972</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ3MDUzYjQ4YzMwMTQy
MDQyZTdlMzU3Y2MyOWNhZTE1ODJiZDRmMy4uN2NiMmMzYWJjOTY1MzA2YTEyOTcwZjk4YzM4ZmRk
MmJiY2NjNGE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAyLTI1ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEcmF3IGludGVybWVkaWF0ZSBz
bmFwc2hvdHMgaWYgcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnNu
YXBzaG90SW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRTbmFwc2hv
dEltYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuaDoKKyAgICAgICAgKFJlbmRlckVtYmVkZGVkT2JqZWN0KToKKwogMjAxMy0wMi0yNSAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBVkZvdW5kYXRpb24u
ZnJhbWV3b3JrIGFuZCBRVEtpdC5mcmFtZXdvcmsgYXJlIGxhenktbG9hZGVkIG9uIGV2ZXJ5IFdl
YlByb2Nlc3MgbGF1bmNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2Q2NTllNmE2ZGMxYTIwZDM2NmFlMjNlYzg5
M2U3NzEwNmUwNGEyYi4uZTYwMDU3YTk3MWYwMmFkZjRmZWZiN2E2MGFjMGQ1OGE2YWM1OTZmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTI1ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEcmF3IGludGVybWVkaWF0ZSBzbmFwc2hvdHMgaWYg
cG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCk6CisKIDIwMTMtMDItMjUgIEFuZHJhcyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBkaWdpYS5j
b20+CiAKICAgICAgICAgW1F0XVtXSzJdIFJlbW92ZSB1bm5lZWRlZCBtZXRob2QgZGlkUmVzdW1l
Q29udGVudCBmcm9tIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIgY2xpZW50cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggYjE2NWIyZDE3OGEz
YWJkM2Y0Yzc1ZmI1ZWM1NGU0ZDBhMjIxYTMwMy4uODRlMGVkZGNjZGI0ZGE4NGZhZTFhOGQxZmRl
YzQ2MTgyYTY5NjBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwCkBAIC0yODQsMTAgKzI4NCwxNCBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX3NuYXBzaG90SW1hZ2UgPSBpbWFnZTsKKwogICAgIGlmIChyZW5kZXJl
cigpLT5pc1NuYXBzaG90dGVkUGx1Z0luKCkpIHsKICAgICAgICAgdG9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbihyZW5kZXJlcigpKS0+dXBkYXRlU25hcHNob3QoaW1hZ2UpOwogICAgICAgICByZXR1
cm47CiAgICAgfQorCisgICAgaWYgKHJlbmRlcmVyKCktPmlzRW1iZWRkZWRPYmplY3QoKSkKKyAg
ICAgICAgcmVuZGVyZXIoKS0+cmVwYWludCgpOwogfQogCiBzdGF0aWMgQXRvbWljU3RyaW5nIGNs
YXNzTmFtZUZvclNoYWRvd1Jvb3QoY29uc3QgTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKaW5kZXggZTZhM2ZlOWZiNjU3NzNhNjYxYzZi
N2RlNmE1M2E3MjAwYzQ0ZTFlZi4uMjQ1YzRhNzNiMGQ4ODA2YzYyOGI3ZmQyNTI4ZWQ5ZGJkZjVj
NDU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgK
QEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB1c2VyRGlkQ2xpY2tTbmFwc2hv
dChQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+KTsKICAgICB2b2lkIHVwZGF0ZVNuYXBzaG90SW5mbygp
OworICAgIEltYWdlKiBzbmFwc2hvdEltYWdlKCkgeyByZXR1cm4gbV9zbmFwc2hvdEltYWdlLmdl
dCgpOyB9CiAKICAgICAvLyBQbHVnLWluIFVSTCBtaWdodCBub3QgYmUgdGhlIHNhbWUgYXMgdXJs
KCkgd2l0aCBvdmVycmlkaW5nIHBhcmFtZXRlcnMuCiAgICAgdm9pZCBzdWJmcmFtZUxvYWRlcldp
bGxDcmVhdGVQbHVnSW4oY29uc3QgS1VSTCYgcGx1Z0luVVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDVkMTZkMjhmNTE1
YTM1NjI3ZTAyMjM4Mjc2NDg1NmZlOGYzZDJmODQuLjFiNDhjZTkwMzE3YzI2NmNjZDhkNzllM2Vj
OTVmNzhjNzE4OTllODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMTQ4LDggKzE0OCw0MiBAQCB2b2lkIFJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpzZXRVbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcklzUHJlc3NlZChib29sIHBy
ZXNzZWQpCiAgICAgcmVwYWludCgpOwogfQogCit2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojpw
YWludFNuYXBzaG90SW1hZ2UoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JiBwYWludE9mZnNldCwgSW1hZ2UqIGltYWdlKQoreworICAgIExheW91dFVuaXQgY1dpZHRoID0g
Y29udGVudFdpZHRoKCk7CisgICAgTGF5b3V0VW5pdCBjSGVpZ2h0ID0gY29udGVudEhlaWdodCgp
OworICAgIGlmICghY1dpZHRoIHx8ICFjSGVpZ2h0KQorICAgICAgICByZXR1cm47CisKKyAgICBH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKKyAgICBMYXlvdXRT
aXplIGNvbnRlbnRTaXplKGNXaWR0aCwgY0hlaWdodCk7CisgICAgTGF5b3V0UG9pbnQgY29udGVu
dExvY2F0aW9uID0gbG9jYXRpb24oKSArIHBhaW50T2Zmc2V0OworICAgIGNvbnRlbnRMb2NhdGlv
bi5tb3ZlKGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRvcCgpICsgcGFkZGlu
Z1RvcCgpKTsKKworICAgIExheW91dFJlY3QgcmVjdChjb250ZW50TG9jYXRpb24sIGNvbnRlbnRT
aXplKTsKKyAgICBJbnRSZWN0IGFsaWduZWRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZWN0
KTsKKyAgICBpZiAoYWxpZ25lZFJlY3Qud2lkdGgoKSA8PSAwIHx8IGFsaWduZWRSZWN0LmhlaWdo
dCgpIDw9IDApCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxp
bmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0LCBpbWFnZSwgaW1hZ2UsIGFsaWdu
ZWRSZWN0LnNpemUoKSk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBzdHlsZSgpLT5j
b2xvclNwYWNlKCksIGFsaWduZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7Cit9CisKIHZvaWQg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CisgICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRp
Y19jYXN0PEVsZW1lbnQqPihub2RlKCkpOworICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQtPmlz
UGx1Z2luRWxlbWVudCgpKSB7CisgICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdJ
bkltYWdlRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihlbGVt
ZW50KTsKKyAgICAgICAgaWYgKHBsdWdJbkltYWdlRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPD0g
SFRNTFBsdWdJbkVsZW1lbnQ6OkRpc3BsYXlpbmdTbmFwc2hvdCkgeworICAgICAgICAgICAgSW1h
Z2UqIHNuYXBzaG90ID0gcGx1Z0luSW1hZ2VFbGVtZW50LT5zbmFwc2hvdEltYWdlKCk7CisgICAg
ICAgICAgICBpZiAoc25hcHNob3QpIHsKKyAgICAgICAgICAgICAgICBpZiAocGFpbnRJbmZvLnBo
YXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKQorICAgICAgICAgICAgICAgICAgICBwYWludFNu
YXBzaG90SW1hZ2UocGFpbnRJbmZvLCBwYWludE9mZnNldCwgc25hcHNob3QpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIFBh
Z2UqIHBhZ2UgPSAwOwogICAgIGlmIChGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpKQogICAg
ICAgICBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5kZXggMjc3ZDJlY2JjZjc0Y2JiOTMwNzY1OTRkMDUw
YjMwMTgyNDBiZmJkZS4uZTU0NTRmZDUzMDJhYmZkOTY3ODY0YTBhNDIzN2JjMGY2NmVjMWEyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgK
QEAgLTc1LDYgKzc1LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyRW1iZWRkZWRPYmplY3QiOyB9CiAgICAgdmly
dHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKKyAg
ICB2b2lkIHBhaW50U25hcHNob3RJbWFnZShQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYs
IEltYWdlKik7CisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVh
bCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGQzMmYxMzk1ZWVlYTdj
NGJjNWM4MWIzM2MxY2RiM2VmMDg3YjQyYzkuLjhmNTY1NzIxNzg2OWQ3NjA1OTM4MGQ1ZGJhMjkz
YmJlYzMyNWY0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIC8v
IFRoaXMgc2ltdWxhdGVkIG1vdXNlIGNsaWNrIGRlbGF5IGluIEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQuY3BwIHNob3VsZCBnZW5lcmFsbHkgYmUgdGhlIHNhbWUgb3Igc2hvcnRlciB0aGFuIHRoaXMg
ZGVsYXkuCiBzdGF0aWMgY29uc3QgZG91YmxlIHBsdWdpblNuYXBzaG90VGltZXJEZWxheSA9IDEu
MTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtU25hcHNob3RSZXRyaWVzID0gNDsKK3N0
YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtU25hcHNob3RSZXRyaWVzID0gNjA7CiAKIGNsYXNz
IFBsdWdpblZpZXc6OlVSTFJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxVUkxSZXF1ZXN0PiB7
CiBwdWJsaWM6CkBAIC0xMzQ2LDYgKzEzNDYsOCBAQCBib29sIFBsdWdpblZpZXc6OmlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKQogICAgIGlmICghc2V0dGluZ3MpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGlmIChtX3BsdWdpbkVsZW1lbnQtPmRpc3BsYXlTdGF0ZSgpIDwg
SFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmdXaXRoUGVuZGluZ01vdXNlQ2xpY2spCisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gc2V0dGluZ3MtPmFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdFbmFibGVkKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190176</attachid>
            <date>2013-02-25 18:23:34 -0800</date>
            <delta_ts>2013-02-25 19:16:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110811-20130225181950.patch</filename>
            <type>text/plain</type>
            <size>8159</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ3MDUzYjQ4YzMwMTQy
MDQyZTdlMzU3Y2MyOWNhZTE1ODJiZDRmMy4uNjYzMjljMzA5YWYyY2ZjZDNkOTY3ODk2Zjc2MDA4
ZmMxYTQ3NjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTI1ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEcmF3IGludGVybWVkaWF0ZSBz
bmFwc2hvdHMgaWYgcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFmdGVyIGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwNDk1IHdlIGRlbGF5ZWQg
c25hcHNob3R0aW5nIHVudGlsIHdlJ3ZlCisgICAgICAgIHJlY2VpdmVkIGEgbmljZSBpbWFnZSwg
YnV0IHRoaXMgbWFkZSB0aGUgcGFnZSBsb29rIGxpa2UgaXQgaXMgYnJva2VuLgorICAgICAgICBX
ZSBzaG91bGQgZHJhdyBhbnkgaW50ZXJtZWRpYXRlIHNuYXBzaG90cyB0aGF0IHdlIGZpbmQsIHdo
aWNoIG1pZ2h0CisgICAgICAgIGluY2x1ZGUgY29udGVudCBzdWNoIGFzIHByb2dyZXNzIGJhcnMv
c3Bpbm5lcnMuCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3Qp
OiBJZiB3ZSBoYXZlCisgICAgICAgIGEgUmVuZGVyRW1iZWRkZWRPYmplY3QgcmVuZGVyZXIsIHRo
ZW4gdGVsbCBpdCB0byByZXBhaW50LgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6c25hcHNo
b3RJbWFnZSk6IEV4cG9zZSBhbgorICAgICAgICBhY2Nlc3NvciBmb3Igc25hcHNob3QgaW1hZ2Vz
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRTbmFwc2hvdEltYWdlKTogTmV3
IGhlbHBlcgorICAgICAgICBtZXRob2QgdG8gcmVuZGVyIGFuIGltYWdlIGRpcmVjdGx5LiBUaGlz
IGNvZGUgaXMgc2ltaWxhciB0bworICAgICAgICB0aGF0IGluIFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50KTogSWYg
d2UgYXJlIGEgcGx1Z2luIHRoYXQgaXMKKyAgICAgICAgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcg
c25hcHNob3R0ZWQsIHRoZW4gcmF0aGVyIHRoYW4gZ28gdGhyb3VnaAorICAgICAgICB0aGUgcmVn
dWxhciBwYWludCBwcm9jZXNzLCBhc2sgb3VyIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQgZm9yIGEK
KyAgICAgICAgc25hcHNob3QgYW5kIHBhaW50IHRoYXQgaW5zdGVhZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlckVtYmVkZGVkT2Jq
ZWN0KTogTmV3IG1ldGhvZCBwYWludFNuYXBzaG90SW1hZ2UKKwogMjAxMy0wMi0yNSAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBVkZvdW5kYXRpb24uZnJhbWV3
b3JrIGFuZCBRVEtpdC5mcmFtZXdvcmsgYXJlIGxhenktbG9hZGVkIG9uIGV2ZXJ5IFdlYlByb2Nl
c3MgbGF1bmNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2Q2NTllNmE2ZGMxYTIwZDM2NmFlMjNlYzg5M2U3NzEw
NmUwNGEyYi4uYjc1YzAwOGFhYjdjMDI3NjBmNTkwZjM3NzQ2YzViMjZhM2MyNmIzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAyLTI1ICBEZWFuIEphY2tzb24gIDxkaW5vQGFw
cGxlLmNvbT4KKworICAgICAgICBEcmF3IGludGVybWVkaWF0ZSBzbmFwc2hvdHMgaWYgcG9zc2li
bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDgx
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVy
IGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwNDk1IHdlIGRlbGF5ZWQgc25hcHNob3R0aW5nIHVudGls
IHdlJ3ZlCisgICAgICAgIHJlY2VpdmVkIGEgbmljZSBpbWFnZSwgYnV0IHRoaXMgbWFkZSB0aGUg
cGFnZSBsb29rIGxpa2UgaXQgaXMgYnJva2VuLgorICAgICAgICBXZSBzaG91bGQgZHJhdyBhbnkg
aW50ZXJtZWRpYXRlIHNuYXBzaG90cyB0aGF0IHdlIGZpbmQsIHdoaWNoIG1pZ2h0CisgICAgICAg
IGluY2x1ZGUgY29udGVudCBzdWNoIGFzIHByb2dyZXNzIGJhcnMvc3Bpbm5lcnMuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQp
OiBSZWluc3RhdGUgNjAgYXR0ZW1wdHMgYXQgc25hcHNob3RzIGJlZm9yZSBnaXZpbmcgdXAuCisg
ICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQpOiBXZSBkbyBub3QKKyAgICAgICAgd2FudCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBlbmFi
bGVkIHdoZW4gd2UgYXJlIHRyeWluZyB0byBjYXB0dXJlCisgICAgICAgIHNuYXBzaG90cy4KKwog
MjAxMy0wMi0yNSAgQW5kcmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQGRpZ2lhLmNvbT4KIAogICAg
ICAgICBbUXRdW1dLMl0gUmVtb3ZlIHVubmVlZGVkIG1ldGhvZCBkaWRSZXN1bWVDb250ZW50IGZy
b20gUGFnZVZpZXdwb3J0Q29udHJvbGxlciBjbGllbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCBiMTY1YjJkMTc4YTNhYmQzZjRjNzVm
YjVlYzU0ZTRkMGEyMjFhMzAzLi44NGUwZWRkY2NkYjRkYTg0ZmFlMWE4ZDFmZGVjNDYxODJhNjk2
MGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAKQEAgLTI4NCwxMCArMjg0LDE0IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBk
YXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fc25hcHNob3RJbWFnZSA9IGltYWdlOworCiAgICAgaWYgKHJlbmRlcmVyKCktPmlzU25h
cHNob3R0ZWRQbHVnSW4oKSkgewogICAgICAgICB0b1JlbmRlclNuYXBzaG90dGVkUGx1Z0luKHJl
bmRlcmVyKCkpLT51cGRhdGVTbmFwc2hvdChpbWFnZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CisKKyAgICBpZiAocmVuZGVyZXIoKS0+aXNFbWJlZGRlZE9iamVjdCgpKQorICAgICAgICByZW5k
ZXJlcigpLT5yZXBhaW50KCk7CiB9CiAKIHN0YXRpYyBBdG9taWNTdHJpbmcgY2xhc3NOYW1lRm9y
U2hhZG93Um9vdChjb25zdCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBlNmEzZmU5ZmI2NTc3M2E2NjFjNmI3ZGU2YTUzYTcy
MDBjNDRlMWVmLi4yNDVjNGE3M2IwZDg4MDZjNjI4YjdmZDI1MjhlZDlkYmRmNWM0NTY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApAQCAtNjYsNiAr
NjYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVzZXJEaWRDbGlja1NuYXBzaG90KFBhc3NSZWZQ
dHI8TW91c2VFdmVudD4pOwogICAgIHZvaWQgdXBkYXRlU25hcHNob3RJbmZvKCk7CisgICAgSW1h
Z2UqIHNuYXBzaG90SW1hZ2UoKSB7IHJldHVybiBtX3NuYXBzaG90SW1hZ2UuZ2V0KCk7IH0KIAog
ICAgIC8vIFBsdWctaW4gVVJMIG1pZ2h0IG5vdCBiZSB0aGUgc2FtZSBhcyB1cmwoKSB3aXRoIG92
ZXJyaWRpbmcgcGFyYW1ldGVycy4KICAgICB2b2lkIHN1YmZyYW1lTG9hZGVyV2lsbENyZWF0ZVBs
dWdJbihjb25zdCBLVVJMJiBwbHVnSW5VUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggNWQxNmQyOGY1MTVhMzU2MjdlMDIy
MzgyNzY0ODU2ZmU4ZjNkMmY4NC4uMWI0OGNlOTAzMTdjMjY2Y2NkOGQ3OWUzZWM5NWY3OGM3MTg5
OWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwCkBAIC0xNDgsOCArMTQ4LDQyIEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OnNldFVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9ySXNQcmVzc2VkKGJvb2wgcHJlc3NlZCkKICAg
ICByZXBhaW50KCk7CiB9CiAKK3ZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50U25hcHNo
b3RJbWFnZShQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zm
c2V0LCBJbWFnZSogaW1hZ2UpCit7CisgICAgTGF5b3V0VW5pdCBjV2lkdGggPSBjb250ZW50V2lk
dGgoKTsKKyAgICBMYXlvdXRVbml0IGNIZWlnaHQgPSBjb250ZW50SGVpZ2h0KCk7CisgICAgaWYg
KCFjV2lkdGggfHwgIWNIZWlnaHQpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0OworICAgIExheW91dFNpemUgY29udGVu
dFNpemUoY1dpZHRoLCBjSGVpZ2h0KTsKKyAgICBMYXlvdXRQb2ludCBjb250ZW50TG9jYXRpb24g
PSBsb2NhdGlvbigpICsgcGFpbnRPZmZzZXQ7CisgICAgY29udGVudExvY2F0aW9uLm1vdmUoYm9y
ZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpOwor
CisgICAgTGF5b3V0UmVjdCByZWN0KGNvbnRlbnRMb2NhdGlvbiwgY29udGVudFNpemUpOworICAg
IEludFJlY3QgYWxpZ25lZFJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlY3QpOworICAgIGlm
IChhbGlnbmVkUmVjdC53aWR0aCgpIDw9IDAgfHwgYWxpZ25lZFJlY3QuaGVpZ2h0KCkgPD0gMCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3Vs
ZFBhaW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLCBpbWFnZSwgYWxpZ25lZFJlY3Quc2l6
ZSgpKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlKCktPmNvbG9yU3BhY2Uo
KSwgYWxpZ25lZFJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKK30KKwogdm9pZCBSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JiBwYWludE9mZnNldCkKIHsKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxl
bWVudCo+KG5vZGUoKSk7CisgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC0+aXNQbHVnaW5FbGVt
ZW50KCkpIHsKKyAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0luSW1hZ2VFbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+KGVsZW1lbnQpOworICAg
ICAgICBpZiAocGx1Z0luSW1hZ2VFbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA8PSBIVE1MUGx1Z0lu
RWxlbWVudDo6RGlzcGxheWluZ1NuYXBzaG90KSB7CisgICAgICAgICAgICBJbWFnZSogc25hcHNo
b3QgPSBwbHVnSW5JbWFnZUVsZW1lbnQtPnNuYXBzaG90SW1hZ2UoKTsKKyAgICAgICAgICAgIGlm
IChzbmFwc2hvdCkgeworICAgICAgICAgICAgICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFp
bnRQaGFzZUZvcmVncm91bmQpCisgICAgICAgICAgICAgICAgICAgIHBhaW50U25hcHNob3RJbWFn
ZShwYWludEluZm8sIHBhaW50T2Zmc2V0LCBzbmFwc2hvdCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCiAgICAgUGFnZSogcGFnZSA9
IDA7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpCiAgICAgICAgIHBhZ2Ug
PSBmcmFtZS0+cGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1i
ZWRkZWRPYmplY3QuaAppbmRleCAyNzdkMmVjYmNmNzRjYmI5MzA3NjU5NGQwNTBiMzAxODI0MGJm
YmRlLi5lNTQ1NGZkNTMwMmFiZmQ5Njc4NjRhMGE0MjM3YmMwZjY2ZWMxYTJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaApAQCAtNzUsNiAr
NzUsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNv
bnN0IHsgcmV0dXJuICJSZW5kZXJFbWJlZGRlZE9iamVjdCI7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNFbWJlZGRlZE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZvaWQgcGFp
bnRTbmFwc2hvdEltYWdlKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiwgSW1hZ2UqKTsK
KwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgcmVx
dWlyZXNMYXllcigpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggZDMyZjEzOTVlZWVhN2M0YmM1YzgxYjMz
YzFjZGIzZWYwODdiNDJjOS4uOGY1NjU3MjE3ODY5ZDc2MDU5MzgwZDVkYmEyOTNiYmVjMzI1ZjRl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcApAQCAtNzEsNyArNzEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gVGhpcyBzaW11
bGF0ZWQgbW91c2UgY2xpY2sgZGVsYXkgaW4gSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgc2hv
dWxkIGdlbmVyYWxseSBiZSB0aGUgc2FtZSBvciBzaG9ydGVyIHRoYW4gdGhpcyBkZWxheS4KIHN0
YXRpYyBjb25zdCBkb3VibGUgcGx1Z2luU25hcHNob3RUaW1lckRlbGF5ID0gMS4xOwotc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG1heGltdW1TbmFwc2hvdFJldHJpZXMgPSA0Oworc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG1heGltdW1TbmFwc2hvdFJldHJpZXMgPSA2MDsKIAogY2xhc3MgUGx1Z2luVmll
dzo6VVJMUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFVSTFJlcXVlc3Q+IHsKIHB1YmxpYzoK
QEAgLTEzNDYsNiArMTM0Niw4IEBAIGJvb2wgUGx1Z2luVmlldzo6aXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZCgpCiAgICAgaWYgKCFzZXR0aW5ncykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisgICAgaWYgKG1fcGx1Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPCBIVE1MUGx1Z0lu
RWxlbWVudDo6UGxheWluZ1dpdGhQZW5kaW5nTW91c2VDbGljaykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIHJldHVybiBzZXR0aW5ncy0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQo
KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190182</attachid>
            <date>2013-02-25 19:16:34 -0800</date>
            <delta_ts>2013-02-25 19:38:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110811-20130225191250.patch</filename>
            <type>text/plain</type>
            <size>14653</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ3MDUzYjQ4YzMwMTQy
MDQyZTdlMzU3Y2MyOWNhZTE1ODJiZDRmMy4uYzcxZDQ3YTgwMzdjNzhmZjRjZTkyMTc5ZDcxY2Q0
NWIyOWI2ZTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAyLTI1ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEcmF3IGludGVybWVkaWF0ZSBz
bmFwc2hvdHMgaWYgcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFmdGVyIGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwNDk1IHdlIGRlbGF5ZWQg
c25hcHNob3R0aW5nIHVudGlsIHdlJ3ZlCisgICAgICAgIHJlY2VpdmVkIGEgbmljZSBpbWFnZSwg
YnV0IHRoaXMgbWFkZSB0aGUgcGFnZSBsb29rIGxpa2UgaXQgaXMgYnJva2VuLgorICAgICAgICBX
ZSBzaG91bGQgZHJhdyBhbnkgaW50ZXJtZWRpYXRlIHNuYXBzaG90cyB0aGF0IHdlIGZpbmQsIHdo
aWNoIG1pZ2h0CisgICAgICAgIGluY2x1ZGUgY29udGVudCBzdWNoIGFzIHByb2dyZXNzIGJhcnMv
c3Bpbm5lcnMuCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6aXNQbHVnSW5JbWFnZUVsZW1lbnQpOiBFeHBv
c2UgdmlydHVhbCBtZXRob2QKKyAgICAgICAgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQgb3Igbm90LgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1
cGRhdGVTbmFwc2hvdCk6IElmIHdlIGhhdmUKKyAgICAgICAgYSBSZW5kZXJFbWJlZGRlZE9iamVj
dCByZW5kZXJlciwgdGhlbiB0ZWxsIGl0IHRvIHJlcGFpbnQuCisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50OjpzbmFwc2hvdEltYWdlKTogRXhwb3NlIGFuCisgICAgICAgIGFjY2Vzc29yIGZvciBz
bmFwc2hvdCBpbWFnZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFNuYXBz
aG90SW1hZ2UpOiBOZXcgaGVscGVyCisgICAgICAgIG1ldGhvZCB0byByZW5kZXIgYW4gaW1hZ2Ug
ZGlyZWN0bHkuIFRoaXMgY29kZSBpcyBzaW1pbGFyIHRvCisgICAgICAgIHRoYXQgaW4gUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVj
dDo6cGFpbnRDb250ZW50cyk6IFRoZSB2aXJ0dWFsIGltcGxlbWVudGF0aW9uCisgICAgICAgIG9m
IHRoaXMgbWV0aG9kIGZvciB1c2Ugd2hlbiB3ZSBoYXZlIGEgc25hcHNob3QgdG8gcGFpbnQuIElm
IHdlIGFyZSBhIHBsdWdpbiB0aGF0IGlzCisgICAgICAgIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5n
IHNuYXBzaG90dGVkLCBhc2sgb3VyIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQgZm9yIGEKKyAgICAg
ICAgc25hcHNob3QgYW5kIHBhaW50IHRoYXQgaW5zdGVhZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlckVtYmVkZGVkT2JqZWN0KTog
TmV3IG1ldGhvZHMgcGFpbnRTbmFwc2hvdEltYWdlIGFuZCBwYWludENvbnRlbnRzCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJX
aWRnZXQ6OnBhaW50Q29udGVudHMpOiBOZXcgbWV0aG9kIGNhbGxlZCBpbiB0aGUgbWlkZGxlCisg
ICAgICAgIG9mIHBhaW50KCkgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBSZW5kZXJFbWJlZGRl
ZE9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6cGFpbnQpOiBDYWxsIHBh
aW50Q29udGVudHMgYXQgdGhlIGFwcHJvcHJpYXRlIHRpbWUuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlcldpZGdldC5oOgorICAgICAgICAoUmVuZGVyV2lkZ2V0KTogTmV3IHZpcnR1YWwgbWV0
aG9kIHBhaW50Q29udGVudHMuCisKIDIwMTMtMDItMjUgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgQVZGb3VuZGF0aW9uLmZyYW1ld29yayBhbmQgUVRLaXQuZnJh
bWV3b3JrIGFyZSBsYXp5LWxvYWRlZCBvbiBldmVyeSBXZWJQcm9jZXNzIGxhdW5jaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDNkNjU5ZTZhNmRjMWEyMGQzNjZhZTIzZWM4OTNlNzcxMDZlMDRhMmIuLmI3NWMwMDhh
YWI3YzAyNzYwZjU5MGYzNzc0NmM1YjI2YTNjMjZiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAxMy0wMi0yNSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJhdyBpbnRlcm1lZGlhdGUgc25hcHNob3RzIGlmIHBvc3NpYmxlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA4MTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZnRlciBodHRwOi8vd2Via2l0Lm9y
Zy9iLzExMDQ5NSB3ZSBkZWxheWVkIHNuYXBzaG90dGluZyB1bnRpbCB3ZSd2ZQorICAgICAgICBy
ZWNlaXZlZCBhIG5pY2UgaW1hZ2UsIGJ1dCB0aGlzIG1hZGUgdGhlIHBhZ2UgbG9vayBsaWtlIGl0
IGlzIGJyb2tlbi4KKyAgICAgICAgV2Ugc2hvdWxkIGRyYXcgYW55IGludGVybWVkaWF0ZSBzbmFw
c2hvdHMgdGhhdCB3ZSBmaW5kLCB3aGljaCBtaWdodAorICAgICAgICBpbmNsdWRlIGNvbnRlbnQg
c3VjaCBhcyBwcm9ncmVzcyBiYXJzL3NwaW5uZXJzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0KTogUmVpbnN0YXRlIDYwIGF0
dGVtcHRzIGF0IHNuYXBzaG90cyBiZWZvcmUgZ2l2aW5nIHVwLgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTogV2UgZG8gbm90Cisg
ICAgICAgIHdhbnQgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgZW5hYmxlZCB3aGVuIHdlIGFyZSB0
cnlpbmcgdG8gY2FwdHVyZQorICAgICAgICBzbmFwc2hvdHMuCisKIDIwMTMtMDItMjUgIEFuZHJh
cyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIFJl
bW92ZSB1bm5lZWRlZCBtZXRob2QgZGlkUmVzdW1lQ29udGVudCBmcm9tIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXIgY2xpZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCmlu
ZGV4IGNlNmZkMDI0OTA3OTIzMDEyMGE0YzcyNGFjYWEzOWRjZGUzYmNhMjQuLjlhNmQyYWU0YWNl
ZTYzOTU4NGFhZWE5NTZkY2M4NmY5NmVlNTNjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmgKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7CiAKKyAgICB2aXJ0
dWFsIGJvb2wgaXNQbHVnSW5JbWFnZUVsZW1lbnQoKSB7IHJldHVybiBmYWxzZTsgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHAKaW5kZXggYjE2NWIyZDE3OGEzYWJkM2Y0Yzc1ZmI1ZWM1NGU0ZDBhMjIxYTMw
My4uODRlMGVkZGNjZGI0ZGE4NGZhZTFhOGQxZmRlYzQ2MTgyYTY5NjBjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0yODQsMTAgKzI4
NCwxNCBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBhc3NS
ZWZQdHI8SW1hZ2U+IGltYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3NuYXBzaG90SW1h
Z2UgPSBpbWFnZTsKKwogICAgIGlmIChyZW5kZXJlcigpLT5pc1NuYXBzaG90dGVkUGx1Z0luKCkp
IHsKICAgICAgICAgdG9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihyZW5kZXJlcigpKS0+dXBkYXRl
U25hcHNob3QoaW1hZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgaWYgKHJlbmRl
cmVyKCktPmlzRW1iZWRkZWRPYmplY3QoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+cmVwYWludCgp
OwogfQogCiBzdGF0aWMgQXRvbWljU3RyaW5nIGNsYXNzTmFtZUZvclNoYWRvd1Jvb3QoY29uc3Qg
Tm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmgKaW5kZXggZTZhM2ZlOWZiNjU3NzNhNjYxYzZiN2RlNmE1M2E3MjAwYzQ0ZTFlZi4uNmJmYjll
YTkwYjNhMDBmOTE3MGRmMDIxNDBmNTBjYTVlYWE3ZGRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCB1c2VyRGlkQ2xpY2tTbmFwc2hvdChQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+KTsK
ICAgICB2b2lkIHVwZGF0ZVNuYXBzaG90SW5mbygpOworICAgIEltYWdlKiBzbmFwc2hvdEltYWdl
KCkgY29uc3QgeyByZXR1cm4gbV9zbmFwc2hvdEltYWdlLmdldCgpOyB9CiAKICAgICAvLyBQbHVn
LWluIFVSTCBtaWdodCBub3QgYmUgdGhlIHNhbWUgYXMgdXJsKCkgd2l0aCBvdmVycmlkaW5nIHBh
cmFtZXRlcnMuCiAgICAgdm9pZCBzdWJmcmFtZUxvYWRlcldpbGxDcmVhdGVQbHVnSW4oY29uc3Qg
S1VSTCYgcGx1Z0luVVJMKTsKQEAgLTExMSw2ICsxMTIsOCBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBzd2FwUmVuZGVyZXJUaW1lckZpcmVkKFRpbWVyPEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+Kik7
CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnSW5JbWFnZUVsZW1lbnQoKSBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9CisgICAgCiAgICAgYm9vbCBtX25lZWRzV2lkZ2V0VXBkYXRlOwogICAgIGJv
b2wgbV9zaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzOwogICAgIGJvb2wgbV9uZWVkc0RvY3Vt
ZW50QWN0aXZhdGlvbkNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDVkMTZkMjhmNTE1YTM1NjI3ZTAyMjM4Mjc2
NDg1NmZlOGYzZDJmODQuLmM2ZjAwOTgyMWE1MDRkZTFmYmVjZDU3ODEyN2I1MWQxMTljZjQ5NDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcApAQCAtMTQ4LDYgKzE0OCw0NyBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpzZXRV
bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcklzUHJlc3NlZChib29sIHByZXNzZWQpCiAgICAgcmVw
YWludCgpOwogfQogCit2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFNuYXBzaG90SW1h
Z2UoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwg
SW1hZ2UqIGltYWdlKQoreworICAgIExheW91dFVuaXQgY1dpZHRoID0gY29udGVudFdpZHRoKCk7
CisgICAgTGF5b3V0VW5pdCBjSGVpZ2h0ID0gY29udGVudEhlaWdodCgpOworICAgIGlmICghY1dp
ZHRoIHx8ICFjSGVpZ2h0KQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKKyAgICBMYXlvdXRTaXplIGNvbnRlbnRTaXpl
KGNXaWR0aCwgY0hlaWdodCk7CisgICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0aW9uID0gbG9j
YXRpb24oKSArIHBhaW50T2Zmc2V0OworICAgIGNvbnRlbnRMb2NhdGlvbi5tb3ZlKGJvcmRlckxl
ZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpKTsKKworICAg
IExheW91dFJlY3QgcmVjdChjb250ZW50TG9jYXRpb24sIGNvbnRlbnRTaXplKTsKKyAgICBJbnRS
ZWN0IGFsaWduZWRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZWN0KTsKKyAgICBpZiAoYWxp
Z25lZFJlY3Qud2lkdGgoKSA8PSAwIHx8IGFsaWduZWRSZWN0LmhlaWdodCgpIDw9IDApCisgICAg
ICAgIHJldHVybjsKKworICAgIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWlu
dEF0TG93UXVhbGl0eShjb250ZXh0LCBpbWFnZSwgaW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7
CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFs
aWduZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7Cit9CisKK3ZvaWQgUmVuZGVyRW1iZWRkZWRP
YmplY3Q6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCkKK3sKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KG5vZGUoKSk7CisgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5pc1BsdWdp
bkVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBs
dWdJbkVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luRWxlbWVudCo+KGVsZW1lbnQpOwor
ICAgIGlmIChwbHVnSW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA+IEhUTUxQbHVnSW5FbGVtZW50
OjpEaXNwbGF5aW5nU25hcHNob3QpIHsKKyAgICAgICAgUmVuZGVyUGFydDo6cGFpbnRDb250ZW50
cyhwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICghcGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVsZW1lbnQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgSW1hZ2UqIHNuYXBzaG90ID0gc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdl
RWxlbWVudCo+KHBsdWdJbkVsZW1lbnQpLT5zbmFwc2hvdEltYWdlKCk7CisgICAgaWYgKHNuYXBz
aG90KQorICAgICAgICBwYWludFNuYXBzaG90SW1hZ2UocGFpbnRJbmZvLCBwYWludE9mZnNldCwg
c25hcHNob3QpOworfQorICAgIAogdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKICAg
ICBQYWdlKiBwYWdlID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbWJlZGRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmgKaW5kZXggMjc3ZDJlY2JjZjc0Y2JiOTMwNzY1OTRkMDUwYjMwMTgyNDBi
ZmJkZS4uNjk2NDcwN2RlM2U2OTA3M2FhMjgzZWY4MWRhN2QyOGY2NWZkYjJkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKQEAgLTc1LDYg
Kzc1LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBj
b25zdCB7IHJldHVybiAiUmVuZGVyRW1iZWRkZWRPYmplY3QiOyB9CiAgICAgdmlydHVhbCBib29s
IGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2b2lkIHBh
aW50U25hcHNob3RJbWFnZShQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIEltYWdlKik7
CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0
UG9pbnQmKSBPVkVSUklERTsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IGUwODAxN2UwODU4YWFjYWE3MmVj
OTdkNzhkNWYwNzg2NjUyODZjOTAuLmQ2NzM3YzQ2NzZmZDA0ODhhZjlhMjA3MTU5M2ZhZDc1Yzkz
ZTQzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0y
MzQsNiArMjM0LDM5IEBAIHZvaWQgUmVuZGVyV2lkZ2V0Ojpub3RpZnlXaWRnZXQoV2lkZ2V0Tm90
aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKICAgICAgICAgbV93aWRnZXQtPm5vdGlmeVdpZGdldChu
b3RpZmljYXRpb24pOwogfQogCit2b2lkIFJlbmRlcldpZGdldDo6cGFpbnRDb250ZW50cyhQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQoreworICAg
IExheW91dFBvaW50IGFkanVzdGVkUGFpbnRPZmZzZXQgPSBwYWludE9mZnNldCArIGxvY2F0aW9u
KCk7CisKKyAgICAvLyBUZWxsIHRoZSB3aWRnZXQgdG8gcGFpbnQgbm93LiBUaGlzIGlzIHRoZSBv
bmx5IHRpbWUgdGhlIHdpZGdldCBpcyBhbGxvd2VkCisgICAgLy8gdG8gcGFpbnQgaXRzZWxmLiBU
aGF0IHdheSBpdCB3aWxsIGNvbXBvc2l0ZSBwcm9wZXJseSB3aXRoIHotaW5kZXhlZCBsYXllcnMu
CisgICAgSW50UG9pbnQgd2lkZ2V0TG9jYXRpb24gPSBtX3dpZGdldC0+ZnJhbWVSZWN0KCkubG9j
YXRpb24oKTsKKyAgICBJbnRQb2ludCBwYWludExvY2F0aW9uKHJvdW5kVG9JbnQoYWRqdXN0ZWRQ
YWludE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpKSwKKyAgICAgICAg
cm91bmRUb0ludChhZGp1c3RlZFBhaW50T2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpICsgcGFkZGlu
Z1RvcCgpKSk7CisgICAgSW50UmVjdCBwYWludFJlY3QgPSBwYWludEluZm8ucmVjdDsKKyAgICAK
KyAgICBJbnRTaXplIHdpZGdldFBhaW50T2Zmc2V0ID0gcGFpbnRMb2NhdGlvbiAtIHdpZGdldExv
Y2F0aW9uOworICAgIC8vIFdoZW4gcGFpbnRpbmcgd2lkZ2V0cyBpbnRvIGNvbXBvc2l0aW5nIGxh
eWVycywgdHggYW5kIHR5IGFyZSByZWxhdGl2ZSB0byB0aGUgZW5jbG9zaW5nIGNvbXBvc2l0aW5n
IGxheWVyLAorICAgIC8vIG5vdCB0aGUgcm9vdC4gSW4gdGhpcyBjYXNlLCBzaGlmdCB0aGUgQ1RN
IGFuZCBhZGp1c3QgdGhlIHBhaW50UmVjdCB0byBiZSByb290LXJlbGF0aXZlIHRvIGZpeCBwbHVn
LWluIGRyYXdpbmcuCisgICAgaWYgKCF3aWRnZXRQYWludE9mZnNldC5pc1plcm8oKSkgeworICAg
ICAgICBwYWludEluZm8uY29udGV4dC0+dHJhbnNsYXRlKHdpZGdldFBhaW50T2Zmc2V0KTsKKyAg
ICAgICAgcGFpbnRSZWN0Lm1vdmUoLXdpZGdldFBhaW50T2Zmc2V0KTsKKyAgICB9CisgICAgbV93
aWRnZXQtPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCBwYWludFJlY3QpOworICAgIAorICAgIGlm
ICghd2lkZ2V0UGFpbnRPZmZzZXQuaXNaZXJvKCkpCisgICAgICAgIHBhaW50SW5mby5jb250ZXh0
LT50cmFuc2xhdGUoLXdpZGdldFBhaW50T2Zmc2V0KTsKKyAgICAKKyAgICBpZiAobV93aWRnZXQt
PmlzRnJhbWVWaWV3KCkpIHsKKyAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNf
Y2FzdDxGcmFtZVZpZXcqPihtX3dpZGdldC5nZXQoKSk7CisgICAgICAgIGJvb2wgcnVuT3Zlcmxh
cFRlc3RzID0gIWZyYW1lVmlldy0+dXNlU2xvd1JlcGFpbnRzSWZOb3RPdmVybGFwcGVkKCkgfHwg
ZnJhbWVWaWV3LT5oYXNDb21wb3NpdGVkQ29udGVudEluY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7Cisg
ICAgICAgIGlmIChwYWludEluZm8ub3ZlcmxhcFRlc3RSZXF1ZXN0cyAmJiBydW5PdmVybGFwVGVz
dHMpIHsKKyAgICAgICAgICAgIEFTU0VSVCghcGFpbnRJbmZvLm92ZXJsYXBUZXN0UmVxdWVzdHMt
PmNvbnRhaW5zKHRoaXMpKTsKKyAgICAgICAgICAgIHBhaW50SW5mby5vdmVybGFwVGVzdFJlcXVl
c3RzLT5zZXQodGhpcywgbV93aWRnZXQtPmZyYW1lUmVjdCgpKTsKKyAgICAgICAgfQorICAgIH0K
K30KKyAgICAKIHZvaWQgUmVuZGVyV2lkZ2V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewogICAgIGlmICghc2hvdWxkUGFpbnQo
cGFpbnRJbmZvLCBwYWludE9mZnNldCkpCkBAIC0yNzMsMzUgKzMwNiw4IEBAIHZvaWQgUmVuZGVy
V2lkZ2V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2Zmc2V0KQogICAgICAgICBjbGlwUm91bmRlZElubmVyUmVjdChwYWludEluZm8uY29udGV4
dCwgYm9yZGVyUmVjdCwgcm91bmRlZElubmVyUmVjdCk7CiAgICAgfQogCi0gICAgaWYgKG1fd2lk
Z2V0KSB7Ci0gICAgICAgIC8vIFRlbGwgdGhlIHdpZGdldCB0byBwYWludCBub3cuICBUaGlzIGlz
IHRoZSBvbmx5IHRpbWUgdGhlIHdpZGdldCBpcyBhbGxvd2VkCi0gICAgICAgIC8vIHRvIHBhaW50
IGl0c2VsZi4gIFRoYXQgd2F5IGl0IHdpbGwgY29tcG9zaXRlIHByb3Blcmx5IHdpdGggei1pbmRl
eGVkIGxheWVycy4KLSAgICAgICAgSW50UG9pbnQgd2lkZ2V0TG9jYXRpb24gPSBtX3dpZGdldC0+
ZnJhbWVSZWN0KCkubG9jYXRpb24oKTsKLSAgICAgICAgSW50UG9pbnQgcGFpbnRMb2NhdGlvbihy
b3VuZFRvSW50KGFkanVzdGVkUGFpbnRPZmZzZXQueCgpICsgYm9yZGVyTGVmdCgpICsgcGFkZGlu
Z0xlZnQoKSksCi0gICAgICAgICAgICByb3VuZFRvSW50KGFkanVzdGVkUGFpbnRPZmZzZXQueSgp
ICsgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpKTsKLSAgICAgICAgSW50UmVjdCBwYWludFJl
Y3QgPSBwYWludEluZm8ucmVjdDsKLQotICAgICAgICBJbnRTaXplIHdpZGdldFBhaW50T2Zmc2V0
ID0gcGFpbnRMb2NhdGlvbiAtIHdpZGdldExvY2F0aW9uOwotICAgICAgICAvLyBXaGVuIHBhaW50
aW5nIHdpZGdldHMgaW50byBjb21wb3NpdGluZyBsYXllcnMsIHR4IGFuZCB0eSBhcmUgcmVsYXRp
dmUgdG8gdGhlIGVuY2xvc2luZyBjb21wb3NpdGluZyBsYXllciwKLSAgICAgICAgLy8gbm90IHRo
ZSByb290LiBJbiB0aGlzIGNhc2UsIHNoaWZ0IHRoZSBDVE0gYW5kIGFkanVzdCB0aGUgcGFpbnRS
ZWN0IHRvIGJlIHJvb3QtcmVsYXRpdmUgdG8gZml4IHBsdWctaW4gZHJhd2luZy4KLSAgICAgICAg
aWYgKCF3aWRnZXRQYWludE9mZnNldC5pc1plcm8oKSkgewotICAgICAgICAgICAgcGFpbnRJbmZv
LmNvbnRleHQtPnRyYW5zbGF0ZSh3aWRnZXRQYWludE9mZnNldCk7Ci0gICAgICAgICAgICBwYWlu
dFJlY3QubW92ZSgtd2lkZ2V0UGFpbnRPZmZzZXQpOwotICAgICAgICB9Ci0gICAgICAgIG1fd2lk
Z2V0LT5wYWludChwYWludEluZm8uY29udGV4dCwgcGFpbnRSZWN0KTsKLQotICAgICAgICBpZiAo
IXdpZGdldFBhaW50T2Zmc2V0LmlzWmVybygpKQotICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRl
eHQtPnRyYW5zbGF0ZSgtd2lkZ2V0UGFpbnRPZmZzZXQpOwotCi0gICAgICAgIGlmIChtX3dpZGdl
dC0+aXNGcmFtZVZpZXcoKSkgewotICAgICAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBz
dGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3dpZGdldC5nZXQoKSk7Ci0gICAgICAgICAgICBib29s
IHJ1bk92ZXJsYXBUZXN0cyA9ICFmcmFtZVZpZXctPnVzZVNsb3dSZXBhaW50c0lmTm90T3Zlcmxh
cHBlZCgpIHx8IGZyYW1lVmlldy0+aGFzQ29tcG9zaXRlZENvbnRlbnRJbmNsdWRpbmdEZXNjZW5k
YW50cygpOwotICAgICAgICAgICAgaWYgKHBhaW50SW5mby5vdmVybGFwVGVzdFJlcXVlc3RzICYm
IHJ1bk92ZXJsYXBUZXN0cykgewotICAgICAgICAgICAgICAgIEFTU0VSVCghcGFpbnRJbmZvLm92
ZXJsYXBUZXN0UmVxdWVzdHMtPmNvbnRhaW5zKHRoaXMpKTsKLSAgICAgICAgICAgICAgICBwYWlu
dEluZm8ub3ZlcmxhcFRlc3RSZXF1ZXN0cy0+c2V0KHRoaXMsIG1fd2lkZ2V0LT5mcmFtZVJlY3Qo
KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgfQorICAgIGlmIChtX3dpZGdldCkK
KyAgICAgICAgcGFpbnRDb250ZW50cyhwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKIAogICAgIGlm
IChzdHlsZSgpLT5oYXNCb3JkZXJSYWRpdXMoKSkKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQt
PnJlc3RvcmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAppbmRleCA5
ZDJhZDdmMzE4MWQ5NGM1Y2NjNGUwYWM4MmIwOGVkN2U5MWY1NGVjLi5lZjhmM2I3NDE3OWQ4YzU4
MDRlOTBjZTc4N2M1NmZkNDU5ODZhZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cldpZGdldC5oCkBAIC04NSw2ICs4NSw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIEN1cnNv
ckRpcmVjdGl2ZSBnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmLCBDdXJzb3ImKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRU
ZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJS
SURFOwogCisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNXaWRnZXQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBkMzJmMTM5NWVlZWE3YzRiYzVjODFiMzNjMWNk
YjNlZjA4N2I0MmM5Li44ZjU2NTcyMTc4NjlkNzYwNTkzODBkNWRiYTI5M2JiZWMzMjVmNGUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CkBAIC03MSw3ICs3MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBUaGlzIHNpbXVsYXRl
ZCBtb3VzZSBjbGljayBkZWxheSBpbiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBzaG91bGQg
Z2VuZXJhbGx5IGJlIHRoZSBzYW1lIG9yIHNob3J0ZXIgdGhhbiB0aGlzIGRlbGF5Lgogc3RhdGlj
IGNvbnN0IGRvdWJsZSBwbHVnaW5TbmFwc2hvdFRpbWVyRGVsYXkgPSAxLjE7Ci1zdGF0aWMgY29u
c3QgdW5zaWduZWQgbWF4aW11bVNuYXBzaG90UmV0cmllcyA9IDQ7CitzdGF0aWMgY29uc3QgdW5z
aWduZWQgbWF4aW11bVNuYXBzaG90UmV0cmllcyA9IDYwOwogCiBjbGFzcyBQbHVnaW5WaWV3OjpV
UkxSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VVJMUmVxdWVzdD4gewogcHVibGljOgpAQCAt
MTM0Niw2ICsxMzQ2LDggQEAgYm9vbCBQbHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdFbmFibGVkKCkKICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICBpZiAobV9wbHVnaW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVt
ZW50OjpQbGF5aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgcmV0dXJuIHNldHRpbmdzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190184</attachid>
            <date>2013-02-25 19:39:00 -0800</date>
            <delta_ts>2013-02-25 19:42:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110811-20130225193516.patch</filename>
            <type>text/plain</type>
            <size>14665</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ3MDUzYjQ4YzMwMTQy
MDQyZTdlMzU3Y2MyOWNhZTE1ODJiZDRmMy4uYzcxZDQ3YTgwMzdjNzhmZjRjZTkyMTc5ZDcxY2Q0
NWIyOWI2ZTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAyLTI1ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEcmF3IGludGVybWVkaWF0ZSBz
bmFwc2hvdHMgaWYgcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFmdGVyIGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwNDk1IHdlIGRlbGF5ZWQg
c25hcHNob3R0aW5nIHVudGlsIHdlJ3ZlCisgICAgICAgIHJlY2VpdmVkIGEgbmljZSBpbWFnZSwg
YnV0IHRoaXMgbWFkZSB0aGUgcGFnZSBsb29rIGxpa2UgaXQgaXMgYnJva2VuLgorICAgICAgICBX
ZSBzaG91bGQgZHJhdyBhbnkgaW50ZXJtZWRpYXRlIHNuYXBzaG90cyB0aGF0IHdlIGZpbmQsIHdo
aWNoIG1pZ2h0CisgICAgICAgIGluY2x1ZGUgY29udGVudCBzdWNoIGFzIHByb2dyZXNzIGJhcnMv
c3Bpbm5lcnMuCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6aXNQbHVnSW5JbWFnZUVsZW1lbnQpOiBFeHBv
c2UgdmlydHVhbCBtZXRob2QKKyAgICAgICAgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQgb3Igbm90LgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1
cGRhdGVTbmFwc2hvdCk6IElmIHdlIGhhdmUKKyAgICAgICAgYSBSZW5kZXJFbWJlZGRlZE9iamVj
dCByZW5kZXJlciwgdGhlbiB0ZWxsIGl0IHRvIHJlcGFpbnQuCisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50OjpzbmFwc2hvdEltYWdlKTogRXhwb3NlIGFuCisgICAgICAgIGFjY2Vzc29yIGZvciBz
bmFwc2hvdCBpbWFnZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFNuYXBz
aG90SW1hZ2UpOiBOZXcgaGVscGVyCisgICAgICAgIG1ldGhvZCB0byByZW5kZXIgYW4gaW1hZ2Ug
ZGlyZWN0bHkuIFRoaXMgY29kZSBpcyBzaW1pbGFyIHRvCisgICAgICAgIHRoYXQgaW4gUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVj
dDo6cGFpbnRDb250ZW50cyk6IFRoZSB2aXJ0dWFsIGltcGxlbWVudGF0aW9uCisgICAgICAgIG9m
IHRoaXMgbWV0aG9kIGZvciB1c2Ugd2hlbiB3ZSBoYXZlIGEgc25hcHNob3QgdG8gcGFpbnQuIElm
IHdlIGFyZSBhIHBsdWdpbiB0aGF0IGlzCisgICAgICAgIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5n
IHNuYXBzaG90dGVkLCBhc2sgb3VyIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQgZm9yIGEKKyAgICAg
ICAgc25hcHNob3QgYW5kIHBhaW50IHRoYXQgaW5zdGVhZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlckVtYmVkZGVkT2JqZWN0KTog
TmV3IG1ldGhvZHMgcGFpbnRTbmFwc2hvdEltYWdlIGFuZCBwYWludENvbnRlbnRzCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJX
aWRnZXQ6OnBhaW50Q29udGVudHMpOiBOZXcgbWV0aG9kIGNhbGxlZCBpbiB0aGUgbWlkZGxlCisg
ICAgICAgIG9mIHBhaW50KCkgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBSZW5kZXJFbWJlZGRl
ZE9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6cGFpbnQpOiBDYWxsIHBh
aW50Q29udGVudHMgYXQgdGhlIGFwcHJvcHJpYXRlIHRpbWUuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlcldpZGdldC5oOgorICAgICAgICAoUmVuZGVyV2lkZ2V0KTogTmV3IHZpcnR1YWwgbWV0
aG9kIHBhaW50Q29udGVudHMuCisKIDIwMTMtMDItMjUgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgQVZGb3VuZGF0aW9uLmZyYW1ld29yayBhbmQgUVRLaXQuZnJh
bWV3b3JrIGFyZSBsYXp5LWxvYWRlZCBvbiBldmVyeSBXZWJQcm9jZXNzIGxhdW5jaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDNkNjU5ZTZhNmRjMWEyMGQzNjZhZTIzZWM4OTNlNzcxMDZlMDRhMmIuLmI3NWMwMDhh
YWI3YzAyNzYwZjU5MGYzNzc0NmM1YjI2YTNjMjZiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAxMy0wMi0yNSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJhdyBpbnRlcm1lZGlhdGUgc25hcHNob3RzIGlmIHBvc3NpYmxlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA4MTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZnRlciBodHRwOi8vd2Via2l0Lm9y
Zy9iLzExMDQ5NSB3ZSBkZWxheWVkIHNuYXBzaG90dGluZyB1bnRpbCB3ZSd2ZQorICAgICAgICBy
ZWNlaXZlZCBhIG5pY2UgaW1hZ2UsIGJ1dCB0aGlzIG1hZGUgdGhlIHBhZ2UgbG9vayBsaWtlIGl0
IGlzIGJyb2tlbi4KKyAgICAgICAgV2Ugc2hvdWxkIGRyYXcgYW55IGludGVybWVkaWF0ZSBzbmFw
c2hvdHMgdGhhdCB3ZSBmaW5kLCB3aGljaCBtaWdodAorICAgICAgICBpbmNsdWRlIGNvbnRlbnQg
c3VjaCBhcyBwcm9ncmVzcyBiYXJzL3NwaW5uZXJzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0KTogUmVpbnN0YXRlIDYwIGF0
dGVtcHRzIGF0IHNuYXBzaG90cyBiZWZvcmUgZ2l2aW5nIHVwLgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTogV2UgZG8gbm90Cisg
ICAgICAgIHdhbnQgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgZW5hYmxlZCB3aGVuIHdlIGFyZSB0
cnlpbmcgdG8gY2FwdHVyZQorICAgICAgICBzbmFwc2hvdHMuCisKIDIwMTMtMDItMjUgIEFuZHJh
cyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIFJl
bW92ZSB1bm5lZWRlZCBtZXRob2QgZGlkUmVzdW1lQ29udGVudCBmcm9tIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXIgY2xpZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCmlu
ZGV4IGNlNmZkMDI0OTA3OTIzMDEyMGE0YzcyNGFjYWEzOWRjZGUzYmNhMjQuLmE3NTU5YTg1YjNh
YmYxYjBmODJiNzJiZTYxYTZiMWQ0YjA2MzdkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmgKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7CiAKKyAgICB2aXJ0
dWFsIGJvb2wgaXNQbHVnSW5JbWFnZUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAKaW5kZXggYjE2NWIyZDE3OGEzYWJkM2Y0Yzc1ZmI1ZWM1NGU0ZDBh
MjIxYTMwMy4uODRlMGVkZGNjZGI0ZGE4NGZhZTFhOGQxZmRlYzQ2MTgyYTY5NjBjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0yODQs
MTAgKzI4NCwxNCBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90
KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3NuYXBz
aG90SW1hZ2UgPSBpbWFnZTsKKwogICAgIGlmIChyZW5kZXJlcigpLT5pc1NuYXBzaG90dGVkUGx1
Z0luKCkpIHsKICAgICAgICAgdG9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihyZW5kZXJlcigpKS0+
dXBkYXRlU25hcHNob3QoaW1hZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgaWYg
KHJlbmRlcmVyKCktPmlzRW1iZWRkZWRPYmplY3QoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+cmVw
YWludCgpOwogfQogCiBzdGF0aWMgQXRvbWljU3RyaW5nIGNsYXNzTmFtZUZvclNoYWRvd1Jvb3Qo
Y29uc3QgTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmgKaW5kZXggZTZhM2ZlOWZiNjU3NzNhNjYxYzZiN2RlNmE1M2E3MjAwYzQ0ZTFlZi4u
MjZmMTYwYjQ1MWY4YTBiYWYyODE3ZmQ4MWIwYzYwOTUwNzAwNjIzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTY2LDYgKzY2LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCB1c2VyRGlkQ2xpY2tTbmFwc2hvdChQYXNzUmVmUHRyPE1vdXNlRXZl
bnQ+KTsKICAgICB2b2lkIHVwZGF0ZVNuYXBzaG90SW5mbygpOworICAgIEltYWdlKiBzbmFwc2hv
dEltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9zbmFwc2hvdEltYWdlLmdldCgpOyB9CiAKICAgICAv
LyBQbHVnLWluIFVSTCBtaWdodCBub3QgYmUgdGhlIHNhbWUgYXMgdXJsKCkgd2l0aCBvdmVycmlk
aW5nIHBhcmFtZXRlcnMuCiAgICAgdm9pZCBzdWJmcmFtZUxvYWRlcldpbGxDcmVhdGVQbHVnSW4o
Y29uc3QgS1VSTCYgcGx1Z0luVVJMKTsKQEAgLTExMSw2ICsxMTIsOCBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBzd2FwUmVuZGVyZXJUaW1lckZpcmVkKFRpbWVyPEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ+Kik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnSW5JbWFnZUVsZW1lbnQoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgCiAgICAgYm9vbCBtX25lZWRzV2lkZ2V0VXBk
YXRlOwogICAgIGJvb2wgbV9zaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzOwogICAgIGJvb2wg
bV9uZWVkc0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDVkMTZkMjhmNTE1YTM1
NjI3ZTAyMjM4Mjc2NDg1NmZlOGYzZDJmODQuLmM2ZjAwOTgyMWE1MDRkZTFmYmVjZDU3ODEyN2I1
MWQxMTljZjQ5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcApAQCAtMTQ4LDYgKzE0OCw0NyBAQCB2b2lkIFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpzZXRVbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcklzUHJlc3NlZChib29sIHByZXNz
ZWQpCiAgICAgcmVwYWludCgpOwogfQogCit2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWlu
dFNuYXBzaG90SW1hZ2UoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnNldCwgSW1hZ2UqIGltYWdlKQoreworICAgIExheW91dFVuaXQgY1dpZHRoID0gY29u
dGVudFdpZHRoKCk7CisgICAgTGF5b3V0VW5pdCBjSGVpZ2h0ID0gY29udGVudEhlaWdodCgpOwor
ICAgIGlmICghY1dpZHRoIHx8ICFjSGVpZ2h0KQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKKyAgICBMYXlvdXRTaXpl
IGNvbnRlbnRTaXplKGNXaWR0aCwgY0hlaWdodCk7CisgICAgTGF5b3V0UG9pbnQgY29udGVudExv
Y2F0aW9uID0gbG9jYXRpb24oKSArIHBhaW50T2Zmc2V0OworICAgIGNvbnRlbnRMb2NhdGlvbi5t
b3ZlKGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRvcCgpICsgcGFkZGluZ1Rv
cCgpKTsKKworICAgIExheW91dFJlY3QgcmVjdChjb250ZW50TG9jYXRpb24sIGNvbnRlbnRTaXpl
KTsKKyAgICBJbnRSZWN0IGFsaWduZWRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZWN0KTsK
KyAgICBpZiAoYWxpZ25lZFJlY3Qud2lkdGgoKSA8PSAwIHx8IGFsaWduZWRSZWN0LmhlaWdodCgp
IDw9IDApCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxpbmcg
PSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0LCBpbWFnZSwgaW1hZ2UsIGFsaWduZWRS
ZWN0LnNpemUoKSk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBzdHlsZSgpLT5jb2xv
clNwYWNlKCksIGFsaWduZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7Cit9CisKK3ZvaWQgUmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAgICBFbGVtZW50KiBlbGVtZW50ID0g
c3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSk7CisgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVt
ZW50LT5pc1BsdWdpbkVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSFRNTFBsdWdJ
bkVsZW1lbnQqIHBsdWdJbkVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luRWxlbWVudCo+
KGVsZW1lbnQpOworICAgIGlmIChwbHVnSW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA+IEhUTUxQ
bHVnSW5FbGVtZW50OjpEaXNwbGF5aW5nU25hcHNob3QpIHsKKyAgICAgICAgUmVuZGVyUGFydDo6
cGFpbnRDb250ZW50cyhwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmICghcGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVsZW1lbnQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgSW1hZ2UqIHNuYXBzaG90ID0gc3RhdGljX2Nhc3Q8SFRN
TFBsdWdJbkltYWdlRWxlbWVudCo+KHBsdWdJbkVsZW1lbnQpLT5zbmFwc2hvdEltYWdlKCk7Cisg
ICAgaWYgKHNuYXBzaG90KQorICAgICAgICBwYWludFNuYXBzaG90SW1hZ2UocGFpbnRJbmZvLCBw
YWludE9mZnNldCwgc25hcHNob3QpOworfQorICAgIAogdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCkKIHsKICAgICBQYWdlKiBwYWdlID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5kZXggMjc3ZDJlY2JjZjc0Y2JiOTMwNzY1OTRk
MDUwYjMwMTgyNDBiZmJkZS4uNjk2NDcwN2RlM2U2OTA3M2FhMjgzZWY4MWRhN2QyOGY2NWZkYjJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmgKQEAgLTc1LDYgKzc1LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyRW1iZWRkZWRPYmplY3QiOyB9CiAgICAg
dmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAK
KyAgICB2b2lkIHBhaW50U25hcHNob3RJbWFnZShQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2lu
dCYsIEltYWdlKik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0OwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IGUwODAxN2Uw
ODU4YWFjYWE3MmVjOTdkNzhkNWYwNzg2NjUyODZjOTAuLmQ2NzM3YzQ2NzZmZDA0ODhhZjlhMjA3
MTU5M2ZhZDc1YzkzZTQzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuY3BwCkBAIC0yMzQsNiArMjM0LDM5IEBAIHZvaWQgUmVuZGVyV2lkZ2V0Ojpub3RpZnlXaWRn
ZXQoV2lkZ2V0Tm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKICAgICAgICAgbV93aWRnZXQtPm5v
dGlmeVdpZGdldChub3RpZmljYXRpb24pOwogfQogCit2b2lkIFJlbmRlcldpZGdldDo6cGFpbnRD
b250ZW50cyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zm
c2V0KQoreworICAgIExheW91dFBvaW50IGFkanVzdGVkUGFpbnRPZmZzZXQgPSBwYWludE9mZnNl
dCArIGxvY2F0aW9uKCk7CisKKyAgICAvLyBUZWxsIHRoZSB3aWRnZXQgdG8gcGFpbnQgbm93LiBU
aGlzIGlzIHRoZSBvbmx5IHRpbWUgdGhlIHdpZGdldCBpcyBhbGxvd2VkCisgICAgLy8gdG8gcGFp
bnQgaXRzZWxmLiBUaGF0IHdheSBpdCB3aWxsIGNvbXBvc2l0ZSBwcm9wZXJseSB3aXRoIHotaW5k
ZXhlZCBsYXllcnMuCisgICAgSW50UG9pbnQgd2lkZ2V0TG9jYXRpb24gPSBtX3dpZGdldC0+ZnJh
bWVSZWN0KCkubG9jYXRpb24oKTsKKyAgICBJbnRQb2ludCBwYWludExvY2F0aW9uKHJvdW5kVG9J
bnQoYWRqdXN0ZWRQYWludE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgp
KSwKKyAgICAgICAgcm91bmRUb0ludChhZGp1c3RlZFBhaW50T2Zmc2V0LnkoKSArIGJvcmRlclRv
cCgpICsgcGFkZGluZ1RvcCgpKSk7CisgICAgSW50UmVjdCBwYWludFJlY3QgPSBwYWludEluZm8u
cmVjdDsKKyAgICAKKyAgICBJbnRTaXplIHdpZGdldFBhaW50T2Zmc2V0ID0gcGFpbnRMb2NhdGlv
biAtIHdpZGdldExvY2F0aW9uOworICAgIC8vIFdoZW4gcGFpbnRpbmcgd2lkZ2V0cyBpbnRvIGNv
bXBvc2l0aW5nIGxheWVycywgdHggYW5kIHR5IGFyZSByZWxhdGl2ZSB0byB0aGUgZW5jbG9zaW5n
IGNvbXBvc2l0aW5nIGxheWVyLAorICAgIC8vIG5vdCB0aGUgcm9vdC4gSW4gdGhpcyBjYXNlLCBz
aGlmdCB0aGUgQ1RNIGFuZCBhZGp1c3QgdGhlIHBhaW50UmVjdCB0byBiZSByb290LXJlbGF0aXZl
IHRvIGZpeCBwbHVnLWluIGRyYXdpbmcuCisgICAgaWYgKCF3aWRnZXRQYWludE9mZnNldC5pc1pl
cm8oKSkgeworICAgICAgICBwYWludEluZm8uY29udGV4dC0+dHJhbnNsYXRlKHdpZGdldFBhaW50
T2Zmc2V0KTsKKyAgICAgICAgcGFpbnRSZWN0Lm1vdmUoLXdpZGdldFBhaW50T2Zmc2V0KTsKKyAg
ICB9CisgICAgbV93aWRnZXQtPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCBwYWludFJlY3QpOwor
ICAgIAorICAgIGlmICghd2lkZ2V0UGFpbnRPZmZzZXQuaXNaZXJvKCkpCisgICAgICAgIHBhaW50
SW5mby5jb250ZXh0LT50cmFuc2xhdGUoLXdpZGdldFBhaW50T2Zmc2V0KTsKKyAgICAKKyAgICBp
ZiAobV93aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsKKyAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3dpZGdldC5nZXQoKSk7CisgICAgICAgIGJv
b2wgcnVuT3ZlcmxhcFRlc3RzID0gIWZyYW1lVmlldy0+dXNlU2xvd1JlcGFpbnRzSWZOb3RPdmVy
bGFwcGVkKCkgfHwgZnJhbWVWaWV3LT5oYXNDb21wb3NpdGVkQ29udGVudEluY2x1ZGluZ0Rlc2Nl
bmRhbnRzKCk7CisgICAgICAgIGlmIChwYWludEluZm8ub3ZlcmxhcFRlc3RSZXF1ZXN0cyAmJiBy
dW5PdmVybGFwVGVzdHMpIHsKKyAgICAgICAgICAgIEFTU0VSVCghcGFpbnRJbmZvLm92ZXJsYXBU
ZXN0UmVxdWVzdHMtPmNvbnRhaW5zKHRoaXMpKTsKKyAgICAgICAgICAgIHBhaW50SW5mby5vdmVy
bGFwVGVzdFJlcXVlc3RzLT5zZXQodGhpcywgbV93aWRnZXQtPmZyYW1lUmVjdCgpKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKyAgICAKIHZvaWQgUmVuZGVyV2lkZ2V0OjpwYWludChQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewogICAgIGlmICgh
c2hvdWxkUGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCkpCkBAIC0yNzMsMzUgKzMwNiw4IEBA
IHZvaWQgUmVuZGVyV2lkZ2V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgICAgICBjbGlwUm91bmRlZElubmVyUmVjdChwYWlu
dEluZm8uY29udGV4dCwgYm9yZGVyUmVjdCwgcm91bmRlZElubmVyUmVjdCk7CiAgICAgfQogCi0g
ICAgaWYgKG1fd2lkZ2V0KSB7Ci0gICAgICAgIC8vIFRlbGwgdGhlIHdpZGdldCB0byBwYWludCBu
b3cuICBUaGlzIGlzIHRoZSBvbmx5IHRpbWUgdGhlIHdpZGdldCBpcyBhbGxvd2VkCi0gICAgICAg
IC8vIHRvIHBhaW50IGl0c2VsZi4gIFRoYXQgd2F5IGl0IHdpbGwgY29tcG9zaXRlIHByb3Blcmx5
IHdpdGggei1pbmRleGVkIGxheWVycy4KLSAgICAgICAgSW50UG9pbnQgd2lkZ2V0TG9jYXRpb24g
PSBtX3dpZGdldC0+ZnJhbWVSZWN0KCkubG9jYXRpb24oKTsKLSAgICAgICAgSW50UG9pbnQgcGFp
bnRMb2NhdGlvbihyb3VuZFRvSW50KGFkanVzdGVkUGFpbnRPZmZzZXQueCgpICsgYm9yZGVyTGVm
dCgpICsgcGFkZGluZ0xlZnQoKSksCi0gICAgICAgICAgICByb3VuZFRvSW50KGFkanVzdGVkUGFp
bnRPZmZzZXQueSgpICsgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpKTsKLSAgICAgICAgSW50
UmVjdCBwYWludFJlY3QgPSBwYWludEluZm8ucmVjdDsKLQotICAgICAgICBJbnRTaXplIHdpZGdl
dFBhaW50T2Zmc2V0ID0gcGFpbnRMb2NhdGlvbiAtIHdpZGdldExvY2F0aW9uOwotICAgICAgICAv
LyBXaGVuIHBhaW50aW5nIHdpZGdldHMgaW50byBjb21wb3NpdGluZyBsYXllcnMsIHR4IGFuZCB0
eSBhcmUgcmVsYXRpdmUgdG8gdGhlIGVuY2xvc2luZyBjb21wb3NpdGluZyBsYXllciwKLSAgICAg
ICAgLy8gbm90IHRoZSByb290LiBJbiB0aGlzIGNhc2UsIHNoaWZ0IHRoZSBDVE0gYW5kIGFkanVz
dCB0aGUgcGFpbnRSZWN0IHRvIGJlIHJvb3QtcmVsYXRpdmUgdG8gZml4IHBsdWctaW4gZHJhd2lu
Zy4KLSAgICAgICAgaWYgKCF3aWRnZXRQYWludE9mZnNldC5pc1plcm8oKSkgewotICAgICAgICAg
ICAgcGFpbnRJbmZvLmNvbnRleHQtPnRyYW5zbGF0ZSh3aWRnZXRQYWludE9mZnNldCk7Ci0gICAg
ICAgICAgICBwYWludFJlY3QubW92ZSgtd2lkZ2V0UGFpbnRPZmZzZXQpOwotICAgICAgICB9Ci0g
ICAgICAgIG1fd2lkZ2V0LT5wYWludChwYWludEluZm8uY29udGV4dCwgcGFpbnRSZWN0KTsKLQot
ICAgICAgICBpZiAoIXdpZGdldFBhaW50T2Zmc2V0LmlzWmVybygpKQotICAgICAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQtPnRyYW5zbGF0ZSgtd2lkZ2V0UGFpbnRPZmZzZXQpOwotCi0gICAgICAg
IGlmIChtX3dpZGdldC0+aXNGcmFtZVZpZXcoKSkgewotICAgICAgICAgICAgRnJhbWVWaWV3KiBm
cmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3dpZGdldC5nZXQoKSk7Ci0gICAg
ICAgICAgICBib29sIHJ1bk92ZXJsYXBUZXN0cyA9ICFmcmFtZVZpZXctPnVzZVNsb3dSZXBhaW50
c0lmTm90T3ZlcmxhcHBlZCgpIHx8IGZyYW1lVmlldy0+aGFzQ29tcG9zaXRlZENvbnRlbnRJbmNs
dWRpbmdEZXNjZW5kYW50cygpOwotICAgICAgICAgICAgaWYgKHBhaW50SW5mby5vdmVybGFwVGVz
dFJlcXVlc3RzICYmIHJ1bk92ZXJsYXBUZXN0cykgewotICAgICAgICAgICAgICAgIEFTU0VSVCgh
cGFpbnRJbmZvLm92ZXJsYXBUZXN0UmVxdWVzdHMtPmNvbnRhaW5zKHRoaXMpKTsKLSAgICAgICAg
ICAgICAgICBwYWludEluZm8ub3ZlcmxhcFRlc3RSZXF1ZXN0cy0+c2V0KHRoaXMsIG1fd2lkZ2V0
LT5mcmFtZVJlY3QoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgfQorICAgIGlm
IChtX3dpZGdldCkKKyAgICAgICAgcGFpbnRDb250ZW50cyhwYWludEluZm8sIHBhaW50T2Zmc2V0
KTsKIAogICAgIGlmIChzdHlsZSgpLT5oYXNCb3JkZXJSYWRpdXMoKSkKICAgICAgICAgcGFpbnRJ
bmZvLmNvbnRleHQtPnJlc3RvcmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJXaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuaAppbmRleCA5ZDJhZDdmMzE4MWQ5NGM1Y2NjNGUwYWM4MmIwOGVkN2U5MWY1NGVjLi5lZjhm
M2I3NDE3OWQ4YzU4MDRlOTBjZTc4N2M1NmZkNDU5ODZhZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5oCkBAIC04NSw2ICs4NSw4IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIEN1cnNvckRpcmVjdGl2ZSBnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmLCBDdXJz
b3ImKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbklu
Q29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RB
Y3Rpb24pIE9WRVJSSURFOwogCisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNXaWRnZXQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBkMzJmMTM5NWVlZWE3YzRi
YzVjODFiMzNjMWNkYjNlZjA4N2I0MmM5Li44ZjU2NTcyMTc4NjlkNzYwNTkzODBkNWRiYTI5M2Ji
ZWMzMjVmNGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCkBAIC03MSw3ICs3MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBU
aGlzIHNpbXVsYXRlZCBtb3VzZSBjbGljayBkZWxheSBpbiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcCBzaG91bGQgZ2VuZXJhbGx5IGJlIHRoZSBzYW1lIG9yIHNob3J0ZXIgdGhhbiB0aGlzIGRl
bGF5Lgogc3RhdGljIGNvbnN0IGRvdWJsZSBwbHVnaW5TbmFwc2hvdFRpbWVyRGVsYXkgPSAxLjE7
Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bVNuYXBzaG90UmV0cmllcyA9IDQ7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bVNuYXBzaG90UmV0cmllcyA9IDYwOwogCiBjbGFzcyBQ
bHVnaW5WaWV3OjpVUkxSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VVJMUmVxdWVzdD4gewog
cHVibGljOgpAQCAtMTM0Niw2ICsxMzQ2LDggQEAgYm9vbCBQbHVnaW5WaWV3Ojppc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkKCkKICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKKyAgICBpZiAobV9wbHVnaW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA8IEhU
TUxQbHVnSW5FbGVtZW50OjpQbGF5aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHNldHRpbmdzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5n
RW5hYmxlZCgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190186</attachid>
            <date>2013-02-25 19:42:01 -0800</date>
            <delta_ts>2013-02-25 21:46:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110811-20130225193817.patch</filename>
            <type>text/plain</type>
            <size>14868</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ3MDUzYjQ4YzMwMTQy
MDQyZTdlMzU3Y2MyOWNhZTE1ODJiZDRmMy4uN2RiYmM0MDUyNDVlNjczZGI1OWQ0YzY3MTQwZTNi
MTRkYjNmZjRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTI1ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEcmF3IGludGVybWVkaWF0ZSBz
bmFwc2hvdHMgaWYgcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFmdGVyIGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwNDk1IHdlIGRlbGF5ZWQg
c25hcHNob3R0aW5nIHVudGlsIHdlJ3ZlCisgICAgICAgIHJlY2VpdmVkIGEgbmljZSBpbWFnZSwg
YnV0IHRoaXMgbWFkZSB0aGUgcGFnZSBsb29rIGxpa2UgaXQgaXMgYnJva2VuLgorICAgICAgICBX
ZSBzaG91bGQgZHJhdyBhbnkgaW50ZXJtZWRpYXRlIHNuYXBzaG90cyB0aGF0IHdlIGZpbmQsIHdo
aWNoIG1pZ2h0CisgICAgICAgIGluY2x1ZGUgY29udGVudCBzdWNoIGFzIHByb2dyZXNzIGJhcnMv
c3Bpbm5lcnMuCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6aXNQbHVnSW5JbWFnZUVsZW1lbnQpOiBFeHBv
c2UgdmlydHVhbCBtZXRob2QKKyAgICAgICAgdG8gaW5kaWNhdGUgaWYgdGhpcyBpcyBhIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQgb3Igbm90LgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1
cGRhdGVTbmFwc2hvdCk6IElmIHdlIGhhdmUKKyAgICAgICAgYSBSZW5kZXJFbWJlZGRlZE9iamVj
dCByZW5kZXJlciwgdGhlbiB0ZWxsIGl0IHRvIHJlcGFpbnQuCisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50OjpzbmFwc2hvdEltYWdlKTogRXhwb3NlIGFuCisgICAgICAgIGFjY2Vzc29yIGZvciBz
bmFwc2hvdCBpbWFnZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFNuYXBz
aG90SW1hZ2UpOiBOZXcgaGVscGVyCisgICAgICAgIG1ldGhvZCB0byByZW5kZXIgYW4gaW1hZ2Ug
ZGlyZWN0bHkuIFRoaXMgY29kZSBpcyBzaW1pbGFyIHRvCisgICAgICAgIHRoYXQgaW4gUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVj
dDo6cGFpbnRDb250ZW50cyk6IFRoZSB2aXJ0dWFsIGltcGxlbWVudGF0aW9uCisgICAgICAgIG9m
IHRoaXMgbWV0aG9kIGZvciB1c2Ugd2hlbiB3ZSBoYXZlIGEgc25hcHNob3QgdG8gcGFpbnQuIElm
IHdlIGFyZSBhIHBsdWdpbiB0aGF0IGlzCisgICAgICAgIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5n
IHNuYXBzaG90dGVkLCBhc2sgb3VyIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQgZm9yIGEKKyAgICAg
ICAgc25hcHNob3QgYW5kIHBhaW50IHRoYXQgaW5zdGVhZC4gSW4gdGhlIGNhc2Ugd2hlcmUgd2Ug
YXJlIG5vdCBzbmFwc2hvdHRpbmcsCisgICAgICAgIG9yIHdlIGRvIG5vdCB5ZXQgaGF2ZSBhIHNu
YXBzaG90LCB0aGlzIHdpbGwgY2FsbCBiYWNrIGludG8gdGhlIFJlbmRlcldpZGdldCBjb2RlLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oOgorICAgICAgICAoUmVu
ZGVyRW1iZWRkZWRPYmplY3QpOiBOZXcgbWV0aG9kcyBwYWludFNuYXBzaG90SW1hZ2UgYW5kIHBh
aW50Q29udGVudHMKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6cGFpbnRDb250ZW50cyk6IE5ldyBtZXRob2QgY2Fs
bGVkIGluIHRoZSBtaWRkbGUKKyAgICAgICAgb2YgcGFpbnQoKSB0aGF0IGNhbiBiZSBvdmVycmlk
ZGVuIGJ5IFJlbmRlckVtYmVkZGVkT2JqZWN0LiBUaGUgY29kZSBoZXJlIHdhcworICAgICAgICBz
aW1wbHkgbW92ZWQgb3V0IG9mIHRoZSBwcmV2aW91cyBwYWludCgpLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyV2lkZ2V0OjpwYWludCk6IENhbGwgcGFpbnRDb250ZW50cyBhdCB0aGUgYXBwcm9w
cmlhdGUgdGltZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0Lmg6CisgICAgICAg
IChSZW5kZXJXaWRnZXQpOiBOZXcgdmlydHVhbCBtZXRob2QgcGFpbnRDb250ZW50cy4KKwogMjAx
My0wMi0yNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBVkZv
dW5kYXRpb24uZnJhbWV3b3JrIGFuZCBRVEtpdC5mcmFtZXdvcmsgYXJlIGxhenktbG9hZGVkIG9u
IGV2ZXJ5IFdlYlByb2Nlc3MgbGF1bmNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2Q2NTllNmE2ZGMxYTIwZDM2
NmFlMjNlYzg5M2U3NzEwNmUwNGEyYi4uYjc1YzAwOGFhYjdjMDI3NjBmNTkwZjM3NzQ2YzViMjZh
M2MyNmIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAyLTI1ICBEZWFuIEph
Y2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEcmF3IGludGVybWVkaWF0ZSBzbmFw
c2hvdHMgaWYgcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFmdGVyIGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwNDk1IHdlIGRlbGF5ZWQgc25h
cHNob3R0aW5nIHVudGlsIHdlJ3ZlCisgICAgICAgIHJlY2VpdmVkIGEgbmljZSBpbWFnZSwgYnV0
IHRoaXMgbWFkZSB0aGUgcGFnZSBsb29rIGxpa2UgaXQgaXMgYnJva2VuLgorICAgICAgICBXZSBz
aG91bGQgZHJhdyBhbnkgaW50ZXJtZWRpYXRlIHNuYXBzaG90cyB0aGF0IHdlIGZpbmQsIHdoaWNo
IG1pZ2h0CisgICAgICAgIGluY2x1ZGUgY29udGVudCBzdWNoIGFzIHByb2dyZXNzIGJhcnMvc3Bp
bm5lcnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6Cisg
ICAgICAgIChXZWJLaXQpOiBSZWluc3RhdGUgNjAgYXR0ZW1wdHMgYXQgc25hcHNob3RzIGJlZm9y
ZSBnaXZpbmcgdXAuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmlzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWQpOiBXZSBkbyBub3QKKyAgICAgICAgd2FudCBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZyBlbmFibGVkIHdoZW4gd2UgYXJlIHRyeWluZyB0byBjYXB0dXJlCisgICAgICAg
IHNuYXBzaG90cy4KKwogMjAxMy0wMi0yNSAgQW5kcmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQGRp
Z2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gUmVtb3ZlIHVubmVlZGVkIG1ldGhvZCBkaWRS
ZXN1bWVDb250ZW50IGZyb20gUGFnZVZpZXdwb3J0Q29udHJvbGxlciBjbGllbnRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggY2U2ZmQwMjQ5MDc5MjMwMTIwYTRj
NzI0YWNhYTM5ZGNkZTNiY2EyNC4uYTc1NTlhODViM2FiZjFiMGY4MmI3MmJlNjFhNmIxZDRiMDYz
N2QwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAtNzQsNiAr
NzQsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xp
Y2tFdmVudHMoKSBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc1BsdWdJbkltYWdlRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKIHByb3RlY3RlZDoKICAgICBIVE1MUGx1
Z0luRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCBi
MTY1YjJkMTc4YTNhYmQzZjRjNzVmYjVlYzU0ZTRkMGEyMjFhMzAzLi44NGUwZWRkY2NkYjRkYTg0
ZmFlMWE4ZDFmZGVjNDYxODJhNjk2MGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTI4NCwxMCArMjg0LDE0IEBAIHZvaWQgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2Up
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc25hcHNob3RJbWFnZSA9IGltYWdlOworCiAgICAg
aWYgKHJlbmRlcmVyKCktPmlzU25hcHNob3R0ZWRQbHVnSW4oKSkgewogICAgICAgICB0b1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luKHJlbmRlcmVyKCkpLT51cGRhdGVTbmFwc2hvdChpbWFnZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBpZiAocmVuZGVyZXIoKS0+aXNFbWJlZGRlZE9i
amVjdCgpKQorICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CiAKIHN0YXRpYyBBdG9t
aWNTdHJpbmcgY2xhc3NOYW1lRm9yU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBlNmEzZmU5ZmI2
NTc3M2E2NjFjNmI3ZGU2YTUzYTcyMDBjNDRlMWVmLi4yNmYxNjBiNDUxZjhhMGJhZjI4MTdmZDgx
YjBjNjA5NTA3MDA2MjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuaApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVzZXJEaWRD
bGlja1NuYXBzaG90KFBhc3NSZWZQdHI8TW91c2VFdmVudD4pOwogICAgIHZvaWQgdXBkYXRlU25h
cHNob3RJbmZvKCk7CisgICAgSW1hZ2UqIHNuYXBzaG90SW1hZ2UoKSBjb25zdCB7IHJldHVybiBt
X3NuYXBzaG90SW1hZ2UuZ2V0KCk7IH0KIAogICAgIC8vIFBsdWctaW4gVVJMIG1pZ2h0IG5vdCBi
ZSB0aGUgc2FtZSBhcyB1cmwoKSB3aXRoIG92ZXJyaWRpbmcgcGFyYW1ldGVycy4KICAgICB2b2lk
IHN1YmZyYW1lTG9hZGVyV2lsbENyZWF0ZVBsdWdJbihjb25zdCBLVVJMJiBwbHVnSW5VUkwpOwpA
QCAtMTExLDYgKzExMiw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN3YXBSZW5kZXJlclRpbWVy
RmlyZWQoVGltZXI8SFRNTFBsdWdJbkltYWdlRWxlbWVudD4qKTsKIAorICAgIHZpcnR1YWwgYm9v
bCBpc1BsdWdJbkltYWdlRWxlbWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
KyAgICAKICAgICBib29sIG1fbmVlZHNXaWRnZXRVcGRhdGU7CiAgICAgYm9vbCBtX3Nob3VsZFBy
ZWZlclBsdWdJbnNGb3JJbWFnZXM7CiAgICAgYm9vbCBtX25lZWRzRG9jdW1lbnRBY3RpdmF0aW9u
Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5jcHAKaW5kZXggNWQxNmQyOGY1MTVhMzU2MjdlMDIyMzgyNzY0ODU2ZmU4ZjNkMmY4
NC4uYzZmMDA5ODIxYTUwNGRlMWZiZWNkNTc4MTI3YjUxZDExOWNmNDk0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC0xNDgs
NiArMTQ4LDQ3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnNldFVuYXZhaWxhYmxlUGx1
Z2luSW5kaWNhdG9ySXNQcmVzc2VkKGJvb2wgcHJlc3NlZCkKICAgICByZXBhaW50KCk7CiB9CiAK
K3ZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50U25hcHNob3RJbWFnZShQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBJbWFnZSogaW1hZ2Up
Cit7CisgICAgTGF5b3V0VW5pdCBjV2lkdGggPSBjb250ZW50V2lkdGgoKTsKKyAgICBMYXlvdXRV
bml0IGNIZWlnaHQgPSBjb250ZW50SGVpZ2h0KCk7CisgICAgaWYgKCFjV2lkdGggfHwgIWNIZWln
aHQpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IHBh
aW50SW5mby5jb250ZXh0OworICAgIExheW91dFNpemUgY29udGVudFNpemUoY1dpZHRoLCBjSGVp
Z2h0KTsKKyAgICBMYXlvdXRQb2ludCBjb250ZW50TG9jYXRpb24gPSBsb2NhdGlvbigpICsgcGFp
bnRPZmZzZXQ7CisgICAgY29udGVudExvY2F0aW9uLm1vdmUoYm9yZGVyTGVmdCgpICsgcGFkZGlu
Z0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpOworCisgICAgTGF5b3V0UmVjdCBy
ZWN0KGNvbnRlbnRMb2NhdGlvbiwgY29udGVudFNpemUpOworICAgIEludFJlY3QgYWxpZ25lZFJl
Y3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlY3QpOworICAgIGlmIChhbGlnbmVkUmVjdC53aWR0
aCgpIDw9IDAgfHwgYWxpZ25lZFJlY3QuaGVpZ2h0KCkgPD0gMCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRMb3dRdWFsaXR5
KGNvbnRleHQsIGltYWdlLCBpbWFnZSwgYWxpZ25lZFJlY3Quc2l6ZSgpKTsKKyAgICBjb250ZXh0
LT5kcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIENv
bXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCksIHVzZUxv
d1F1YWxpdHlTY2FsaW5nKTsKK30KKwordm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRD
b250ZW50cyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zm
c2V0KQoreworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9k
ZSgpKTsKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPmlzUGx1Z2luRWxlbWVudCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z0luRWxlbWVudCA9
IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5FbGVtZW50Kj4oZWxlbWVudCk7CisgICAgaWYgKHBsdWdJ
bkVsZW1lbnQtPmRpc3BsYXlTdGF0ZSgpID4gSFRNTFBsdWdJbkVsZW1lbnQ6OkRpc3BsYXlpbmdT
bmFwc2hvdCkgeworICAgICAgICBSZW5kZXJQYXJ0OjpwYWludENvbnRlbnRzKHBhaW50SW5mbywg
cGFpbnRPZmZzZXQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFwbHVnSW5F
bGVtZW50LT5pc1BsdWdJbkltYWdlRWxlbWVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBJ
bWFnZSogc25hcHNob3QgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4ocGx1
Z0luRWxlbWVudCktPnNuYXBzaG90SW1hZ2UoKTsKKyAgICBpZiAoc25hcHNob3QpCisgICAgICAg
IHBhaW50U25hcHNob3RJbWFnZShwYWludEluZm8sIHBhaW50T2Zmc2V0LCBzbmFwc2hvdCk7Cit9
CisgICAgCiB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludChQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewogICAgIFBhZ2UqIHBhZ2Ug
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
aAppbmRleCAyNzdkMmVjYmNmNzRjYmI5MzA3NjU5NGQwNTBiMzAxODI0MGJmYmRlLi42OTY0NzA3
ZGUzZTY5MDczYWEyODNlZjgxZGE3ZDI4ZjY1ZmRiMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaApAQCAtNzUsNiArNzUsOSBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJu
ICJSZW5kZXJFbWJlZGRlZE9iamVjdCI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNFbWJlZGRlZE9i
amVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZvaWQgcGFpbnRTbmFwc2hvdElt
YWdlKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiwgSW1hZ2UqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRDb250ZW50cyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJS
SURFOworCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc0xheWVyKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcldpZGdldC5jcHAKaW5kZXggZTA4MDE3ZTA4NThhYWNhYTcyZWM5N2Q3OGQ1ZjA3ODY2
NTI4NmM5MC4uZDY3MzdjNDY3NmZkMDQ4OGFmOWEyMDcxNTkzZmFkNzVjOTNlNDM3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTIzNCw2ICsyMzQsMzkg
QEAgdm9pZCBSZW5kZXJXaWRnZXQ6Om5vdGlmeVdpZGdldChXaWRnZXROb3RpZmljYXRpb24gbm90
aWZpY2F0aW9uKQogICAgICAgICBtX3dpZGdldC0+bm90aWZ5V2lkZ2V0KG5vdGlmaWNhdGlvbik7
CiB9CiAKK3ZvaWQgUmVuZGVyV2lkZ2V0OjpwYWludENvbnRlbnRzKFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit7CisgICAgTGF5b3V0UG9pbnQg
YWRqdXN0ZWRQYWludE9mZnNldCA9IHBhaW50T2Zmc2V0ICsgbG9jYXRpb24oKTsKKworICAgIC8v
IFRlbGwgdGhlIHdpZGdldCB0byBwYWludCBub3cuIFRoaXMgaXMgdGhlIG9ubHkgdGltZSB0aGUg
d2lkZ2V0IGlzIGFsbG93ZWQKKyAgICAvLyB0byBwYWludCBpdHNlbGYuIFRoYXQgd2F5IGl0IHdp
bGwgY29tcG9zaXRlIHByb3Blcmx5IHdpdGggei1pbmRleGVkIGxheWVycy4KKyAgICBJbnRQb2lu
dCB3aWRnZXRMb2NhdGlvbiA9IG1fd2lkZ2V0LT5mcmFtZVJlY3QoKS5sb2NhdGlvbigpOworICAg
IEludFBvaW50IHBhaW50TG9jYXRpb24ocm91bmRUb0ludChhZGp1c3RlZFBhaW50T2Zmc2V0Lngo
KSArIGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkpLAorICAgICAgICByb3VuZFRvSW50KGFk
anVzdGVkUGFpbnRPZmZzZXQueSgpICsgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpKTsKKyAg
ICBJbnRSZWN0IHBhaW50UmVjdCA9IHBhaW50SW5mby5yZWN0OworICAgIAorICAgIEludFNpemUg
d2lkZ2V0UGFpbnRPZmZzZXQgPSBwYWludExvY2F0aW9uIC0gd2lkZ2V0TG9jYXRpb247CisgICAg
Ly8gV2hlbiBwYWludGluZyB3aWRnZXRzIGludG8gY29tcG9zaXRpbmcgbGF5ZXJzLCB0eCBhbmQg
dHkgYXJlIHJlbGF0aXZlIHRvIHRoZSBlbmNsb3NpbmcgY29tcG9zaXRpbmcgbGF5ZXIsCisgICAg
Ly8gbm90IHRoZSByb290LiBJbiB0aGlzIGNhc2UsIHNoaWZ0IHRoZSBDVE0gYW5kIGFkanVzdCB0
aGUgcGFpbnRSZWN0IHRvIGJlIHJvb3QtcmVsYXRpdmUgdG8gZml4IHBsdWctaW4gZHJhd2luZy4K
KyAgICBpZiAoIXdpZGdldFBhaW50T2Zmc2V0LmlzWmVybygpKSB7CisgICAgICAgIHBhaW50SW5m
by5jb250ZXh0LT50cmFuc2xhdGUod2lkZ2V0UGFpbnRPZmZzZXQpOworICAgICAgICBwYWludFJl
Y3QubW92ZSgtd2lkZ2V0UGFpbnRPZmZzZXQpOworICAgIH0KKyAgICBtX3dpZGdldC0+cGFpbnQo
cGFpbnRJbmZvLmNvbnRleHQsIHBhaW50UmVjdCk7CisgICAgCisgICAgaWYgKCF3aWRnZXRQYWlu
dE9mZnNldC5pc1plcm8oKSkKKyAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnRyYW5zbGF0ZSgt
d2lkZ2V0UGFpbnRPZmZzZXQpOworICAgIAorICAgIGlmIChtX3dpZGdldC0+aXNGcmFtZVZpZXco
KSkgeworICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmll
dyo+KG1fd2lkZ2V0LmdldCgpKTsKKyAgICAgICAgYm9vbCBydW5PdmVybGFwVGVzdHMgPSAhZnJh
bWVWaWV3LT51c2VTbG93UmVwYWludHNJZk5vdE92ZXJsYXBwZWQoKSB8fCBmcmFtZVZpZXctPmhh
c0NvbXBvc2l0ZWRDb250ZW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKKyAgICAgICAgaWYgKHBh
aW50SW5mby5vdmVybGFwVGVzdFJlcXVlc3RzICYmIHJ1bk92ZXJsYXBUZXN0cykgeworICAgICAg
ICAgICAgQVNTRVJUKCFwYWludEluZm8ub3ZlcmxhcFRlc3RSZXF1ZXN0cy0+Y29udGFpbnModGhp
cykpOworICAgICAgICAgICAgcGFpbnRJbmZvLm92ZXJsYXBUZXN0UmVxdWVzdHMtPnNldCh0aGlz
LCBtX3dpZGdldC0+ZnJhbWVSZWN0KCkpOworICAgICAgICB9CisgICAgfQorfQorICAgIAogdm9p
ZCBSZW5kZXJXaWRnZXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQ
b2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFzaG91bGRQYWludChwYWludEluZm8sIHBh
aW50T2Zmc2V0KSkKQEAgLTI3MywzNSArMzA2LDggQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OnBhaW50
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAg
ICAgICAgIGNsaXBSb3VuZGVkSW5uZXJSZWN0KHBhaW50SW5mby5jb250ZXh0LCBib3JkZXJSZWN0
LCByb3VuZGVkSW5uZXJSZWN0KTsKICAgICB9CiAKLSAgICBpZiAobV93aWRnZXQpIHsKLSAgICAg
ICAgLy8gVGVsbCB0aGUgd2lkZ2V0IHRvIHBhaW50IG5vdy4gIFRoaXMgaXMgdGhlIG9ubHkgdGlt
ZSB0aGUgd2lkZ2V0IGlzIGFsbG93ZWQKLSAgICAgICAgLy8gdG8gcGFpbnQgaXRzZWxmLiAgVGhh
dCB3YXkgaXQgd2lsbCBjb21wb3NpdGUgcHJvcGVybHkgd2l0aCB6LWluZGV4ZWQgbGF5ZXJzLgot
ICAgICAgICBJbnRQb2ludCB3aWRnZXRMb2NhdGlvbiA9IG1fd2lkZ2V0LT5mcmFtZVJlY3QoKS5s
b2NhdGlvbigpOwotICAgICAgICBJbnRQb2ludCBwYWludExvY2F0aW9uKHJvdW5kVG9JbnQoYWRq
dXN0ZWRQYWludE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpKSwKLSAg
ICAgICAgICAgIHJvdW5kVG9JbnQoYWRqdXN0ZWRQYWludE9mZnNldC55KCkgKyBib3JkZXJUb3Ao
KSArIHBhZGRpbmdUb3AoKSkpOwotICAgICAgICBJbnRSZWN0IHBhaW50UmVjdCA9IHBhaW50SW5m
by5yZWN0OwotCi0gICAgICAgIEludFNpemUgd2lkZ2V0UGFpbnRPZmZzZXQgPSBwYWludExvY2F0
aW9uIC0gd2lkZ2V0TG9jYXRpb247Ci0gICAgICAgIC8vIFdoZW4gcGFpbnRpbmcgd2lkZ2V0cyBp
bnRvIGNvbXBvc2l0aW5nIGxheWVycywgdHggYW5kIHR5IGFyZSByZWxhdGl2ZSB0byB0aGUgZW5j
bG9zaW5nIGNvbXBvc2l0aW5nIGxheWVyLAotICAgICAgICAvLyBub3QgdGhlIHJvb3QuIEluIHRo
aXMgY2FzZSwgc2hpZnQgdGhlIENUTSBhbmQgYWRqdXN0IHRoZSBwYWludFJlY3QgdG8gYmUgcm9v
dC1yZWxhdGl2ZSB0byBmaXggcGx1Zy1pbiBkcmF3aW5nLgotICAgICAgICBpZiAoIXdpZGdldFBh
aW50T2Zmc2V0LmlzWmVybygpKSB7Ci0gICAgICAgICAgICBwYWludEluZm8uY29udGV4dC0+dHJh
bnNsYXRlKHdpZGdldFBhaW50T2Zmc2V0KTsKLSAgICAgICAgICAgIHBhaW50UmVjdC5tb3ZlKC13
aWRnZXRQYWludE9mZnNldCk7Ci0gICAgICAgIH0KLSAgICAgICAgbV93aWRnZXQtPnBhaW50KHBh
aW50SW5mby5jb250ZXh0LCBwYWludFJlY3QpOwotCi0gICAgICAgIGlmICghd2lkZ2V0UGFpbnRP
ZmZzZXQuaXNaZXJvKCkpCi0gICAgICAgICAgICBwYWludEluZm8uY29udGV4dC0+dHJhbnNsYXRl
KC13aWRnZXRQYWludE9mZnNldCk7Ci0KLSAgICAgICAgaWYgKG1fd2lkZ2V0LT5pc0ZyYW1lVmll
dygpKSB7Ci0gICAgICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZy
YW1lVmlldyo+KG1fd2lkZ2V0LmdldCgpKTsKLSAgICAgICAgICAgIGJvb2wgcnVuT3ZlcmxhcFRl
c3RzID0gIWZyYW1lVmlldy0+dXNlU2xvd1JlcGFpbnRzSWZOb3RPdmVybGFwcGVkKCkgfHwgZnJh
bWVWaWV3LT5oYXNDb21wb3NpdGVkQ29udGVudEluY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7Ci0gICAg
ICAgICAgICBpZiAocGFpbnRJbmZvLm92ZXJsYXBUZXN0UmVxdWVzdHMgJiYgcnVuT3ZlcmxhcFRl
c3RzKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCFwYWludEluZm8ub3ZlcmxhcFRlc3RSZXF1
ZXN0cy0+Y29udGFpbnModGhpcykpOwotICAgICAgICAgICAgICAgIHBhaW50SW5mby5vdmVybGFw
VGVzdFJlcXVlc3RzLT5zZXQodGhpcywgbV93aWRnZXQtPmZyYW1lUmVjdCgpKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgIH0KLSAgICB9CisgICAgaWYgKG1fd2lkZ2V0KQorICAgICAgICBwYWlu
dENvbnRlbnRzKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogCiAgICAgaWYgKHN0eWxlKCktPmhh
c0JvcmRlclJhZGl1cygpKQogICAgICAgICBwYWludEluZm8uY29udGV4dC0+cmVzdG9yZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCmluZGV4IDlkMmFkN2YzMTgxZDk0
YzVjY2M0ZTBhYzgyYjA4ZWQ3ZTkxZjU0ZWMuLmVmOGYzYjc0MTc5ZDhjNTgwNGU5MGNlNzg3YzU2
ZmQ0NTk4NmFmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKQEAg
LTg1LDYgKzg1LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgQ3Vyc29yRGlyZWN0aXZlIGdl
dEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBj
b25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBv
aW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
OworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1dpZGdldCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwCmluZGV4IGQzMmYxMzk1ZWVlYTdjNGJjNWM4MWIzM2MxY2RiM2VmMDg3YjQyYzku
LjhmNTY1NzIxNzg2OWQ3NjA1OTM4MGQ1ZGJhMjkzYmJlYzMyNWY0ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTcxLDcgKzcx
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIC8vIFRoaXMgc2ltdWxhdGVkIG1vdXNlIGNsaWNr
IGRlbGF5IGluIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIHNob3VsZCBnZW5lcmFsbHkgYmUg
dGhlIHNhbWUgb3Igc2hvcnRlciB0aGFuIHRoaXMgZGVsYXkuCiBzdGF0aWMgY29uc3QgZG91Ymxl
IHBsdWdpblNuYXBzaG90VGltZXJEZWxheSA9IDEuMTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBt
YXhpbXVtU25hcHNob3RSZXRyaWVzID0gNDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVt
U25hcHNob3RSZXRyaWVzID0gNjA7CiAKIGNsYXNzIFBsdWdpblZpZXc6OlVSTFJlcXVlc3QgOiBw
dWJsaWMgUmVmQ291bnRlZDxVUkxSZXF1ZXN0PiB7CiBwdWJsaWM6CkBAIC0xMzQ2LDYgKzEzNDYs
OCBAQCBib29sIFBsdWdpblZpZXc6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKQog
ICAgIGlmICghc2V0dGluZ3MpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX3Bs
dWdpbkVsZW1lbnQtPmRpc3BsYXlTdGF0ZSgpIDwgSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmdX
aXRoUGVuZGluZ01vdXNlQ2xpY2spCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
c2V0dGluZ3MtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7CiB9CiAK
</data>
<flag name="review"
          id="210810"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>