<?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>37930</bug_id>
          
          <creation_ts>2010-04-21 09:17:55 -0700</creation_ts>
          <short_desc>[Win] Implement LayoutTestController::markerTextForListItem()</short_desc>
          <delta_ts>2010-07-19 20:01:35 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42054</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jakub Wieczorek">jwieczorek</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>aroben</cc>
    
    <cc>bweinstein</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>215349</commentid>
    <comment_count>0</comment_count>
    <who name="Jakub Wieczorek">jwieczorek</who>
    <bug_when>2010-04-21 09:17:55 -0700</bug_when>
    <thetext>Added in http://trac.webkit.org/changeset/57986 and used in the following tests:

fast/lists/ol-nested-items-dynamic-insert.html
fast/lists/ol-nested-items-dynamic-remove.html
fast/lists/ol-nested-items.html
fast/lists/ol-nested-list-dynamic-insert.html
fast/lists/ol-nested-list-dynamic-remove.html
fast/lists/ol-nested-list.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251661</commentid>
    <comment_count>1</comment_count>
      <attachid>61605</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-14 21:25:19 -0700</bug_when>
    <thetext>Created attachment 61605
Patch

I thought to split up the Mac and Windows patches and use Bug #42054 as a meta bug.

With insight from Adam Roben, I updated the patch based on Darin Adler&apos;s comment in Bug #42054 &lt;https://bugs.webkit.org/show_bug.cgi?id=42054#c4&gt;. I thought to keep the implementation of both ports similar for consistency. So, I added a similar DOMElement conversion function to the Windows port, WebFrame::elementFromJS (I am open to naming suggestions).

I was not sure where to place WebFrame::elementFromJS. My original thought was to add a class method to DOMElement (similar to the class method added to the WebDOMElementOperationsPrivate category of DOMElement in the Mac patch - see bug #37929), but I felt that keeping the function in some kind of private interface better demarcated that this function is not for public usage.

I am open to suggestions on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251681</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 22:54:50 -0700</bug_when>
    <thetext>Attachment 61605 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3576007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251688</commentid>
    <comment_count>3</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-07-14 23:18:32 -0700</bug_when>
    <thetext>Make sure you touch WebKit.idl as part of your patch so the EWS bot rebuilds the idl files you need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252033</commentid>
    <comment_count>4</comment_count>
      <attachid>61605</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-15 12:13:13 -0700</bug_when>
    <thetext>Comment on attachment 61605
Patch

&gt; +HRESULT WebFrame::elementFromJS(JSContextRef context, JSValueRef nodeObject, IDOMElement **element)
&gt; +{
&gt; +    if (!element)
&gt; +        return E_POINTER;
&gt; +
&gt; +    *element = 0;
&gt; +
&gt; +    if (!context)
&gt; +        return E_FAIL;
&gt; +
&gt; +    JSLock lock(SilenceAssertionsOnly);
&gt; +    ExecState* execState = toJS(context);
&gt; +    if (!nodeObject)
&gt; +        return E_FAIL;

I&apos;d null-check nodeObject at the same time as context.

&gt; +    JSValue jsValue = toJS(execState, nodeObject);

I don&apos;t think the execState or jsValue local variables are useful.

&gt; @@ -114,4 +114,6 @@ interface IWebFramePrivate : IUnknown
&gt;      HRESULT paintScrollViewRectToContextAtPoint([in] RECT rect, [in] POINT pt, [in] OLE_HANDLE deviceContext);
&gt;  
&gt;      HRESULT renderTreeAsExternalRepresentation([in] BOOL forPrinting, [out, retval] BSTR* result);
&gt; +
&gt; +    [local] HRESULT elementFromJS([in] JSContextRef context, [in] JSValueRef nodeObject, [out, retval] IDOMElement** element);

Putting this on IWebViewPrivate would be a little more conventional, I think.

&gt; +    if (!framePrivate)
&gt; +        return JSRetainPtr&lt;JSStringRef&gt;();

You can say &quot;return 0&quot; instead of &quot;return JSRetainPtr&lt;JSStringRef&gt;()&quot;.

&gt; +    wstring text(textBSTR, SysStringLen(textBSTR));
&gt; +    SysFreeString(textBSTR);
&gt; +    JSRetainPtr&lt;JSStringRef&gt; markerText(Adopt, JSStringCreateWithCharacters(text.data(), text.length()));
&gt; +    return markerText;
&gt;  }

Again, you can use JSStringCreateWithBSTR to make this easier and cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252050</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-15 13:15:55 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 61605 [details])
&gt; &gt; +HRESULT WebFrame::elementFromJS(JSContextRef context, JSValueRef nodeObject, IDOMElement **element)
&gt; &gt; +{
&gt; &gt; +    if (!element)
&gt; &gt; +        return E_POINTER;
&gt; &gt; +
&gt; &gt; +    *element = 0;
&gt; &gt; +
&gt; &gt; +    if (!context)
&gt; &gt; +        return E_FAIL;
&gt; &gt; +
&gt; &gt; +    JSLock lock(SilenceAssertionsOnly);
&gt; &gt; +    ExecState* execState = toJS(context);
&gt; &gt; +    if (!nodeObject)
&gt; &gt; +        return E_FAIL;
&gt; 
&gt; I&apos;d null-check nodeObject at the same time as context.

Will change.

&gt; 
&gt; &gt; +    JSValue jsValue = toJS(execState, nodeObject);
&gt; 
&gt; I don&apos;t think the execState or jsValue local variables are useful.

Will remove these local variables and write &quot;Element* elt = toElement(jsValue);&quot; as &quot;Element *elt = toElement(toJS(toJS(context), value));&quot;.

&gt; 
&gt; &gt; @@ -114,4 +114,6 @@ interface IWebFramePrivate : IUnknown
&gt; &gt;      HRESULT paintScrollViewRectToContextAtPoint([in] RECT rect, [in] POINT pt, [in] OLE_HANDLE deviceContext);
&gt; &gt;  
&gt; &gt;      HRESULT renderTreeAsExternalRepresentation([in] BOOL forPrinting, [out, retval] BSTR* result);
&gt; &gt; +
&gt; &gt; +    [local] HRESULT elementFromJS([in] JSContextRef context, [in] JSValueRef nodeObject, [out, retval] IDOMElement** element);
&gt; 
&gt; Putting this on IWebViewPrivate would be a little more conventional, I think.

Will move to IWebViewPrivate.

&gt; 
&gt; &gt; +    if (!framePrivate)
&gt; &gt; +        return JSRetainPtr&lt;JSStringRef&gt;();
&gt; 
&gt; You can say &quot;return 0&quot; instead of &quot;return JSRetainPtr&lt;JSStringRef&gt;()&quot;.
&gt; 
&gt; &gt; +    wstring text(textBSTR, SysStringLen(textBSTR));
&gt; &gt; +    SysFreeString(textBSTR);
&gt; &gt; +    JSRetainPtr&lt;JSStringRef&gt; markerText(Adopt, JSStringCreateWithCharacters(text.data(), text.length()));
&gt; &gt; +    return markerText;
&gt; &gt;  }
&gt; 
&gt; Again, you can use JSStringCreateWithBSTR to make this easier and cleaner.

Will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252052</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-15 13:18:56 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Will remove these local variables and write &quot;Element* elt = toElement(jsValue);&quot; as &quot;Element *elt = toElement(toJS(toJS(context), value));&quot;.
&gt; 

I meant write as &quot;Element* elt = toElement(toJS(toJS(context), nodeObject));&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252194</commentid>
    <comment_count>7</comment_count>
      <attachid>61739</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-15 16:01:00 -0700</bug_when>
    <thetext>Created attachment 61739
Patch

Updated patch based on Adam Roben&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252354</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-15 23:37:21 -0700</bug_when>
    <thetext>Attachment 61739 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3352713</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253170</commentid>
    <comment_count>9</comment_count>
      <attachid>61739</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-19 07:05:49 -0700</bug_when>
    <thetext>Comment on attachment 61739
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253531</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-19 20:01:35 -0700</bug_when>
    <thetext>Committed r63710: &lt;http://trac.webkit.org/changeset/63710&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61605</attachid>
            <date>2010-07-14 21:25:19 -0700</date>
            <delta_ts>2010-07-15 16:01:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Bug37930.patch</filename>
            <type>text/plain</type>
            <size>9303</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hh
bmdlTG9nCShyZXZpc2lvbiA2MzQwMCkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDctMTQgIERhbmllbCBCYXRlcyAgPGRiYXRl
c0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtXaW5dIEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bWFya2VyVGV4dEZvckxp
c3RJdGVtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM3OTMwCisKKyAgICAgICAgSW1wbGVtZW50cyBzdXBwb3J0IGZvciBtYXJrZXJUZXh0Rm9yTGlz
dEl0ZW0gaW4gdGhlIFdpbmRvd3MgcG9ydC4KKworICAgICAgICAqIERPTUNvcmVDbGFzc2VzLmNw
cDoKKyAgICAgICAgKERPTUVsZW1lbnQ6Om1hcmtlclRleHRGb3JMaXN0SXRlbSk6IEFkZGVkLgor
ICAgICAgICAqIERPTUNvcmVDbGFzc2VzLmg6CisgICAgICAgICogSW50ZXJmYWNlcy9ET01Qcml2
YXRlLmlkbDogQWRkZWQgZGVjbGFyYXRpb24gZm9yIERPTUVsZW1lbnQ6Om1hcmtlclRleHRGb3JM
aXN0SXRlbSgpLgorICAgICAgICAqIEludGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5pZGw6IEFk
ZGVkIGRlY2xhcmF0aW9uIGZvciBXZWJGcmFtZTo6ZWxlbWVudEZyb21KUygpLgorICAgICAgICAq
IFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjplbGVtZW50RnJvbUpTKTogQWRkZWQu
CisgICAgICAgICogV2ViRnJhbWUuaDoKKwogMjAxMC0wNy0xNCAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2Vi
S2l0L3dpbi9ET01Db3JlQ2xhc3Nlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9ET01D
b3JlQ2xhc3Nlcy5jcHAJKHJldmlzaW9uIDYzMzg4KQorKysgV2ViS2l0L3dpbi9ET01Db3JlQ2xh
c3Nlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxUZXh0QXJlYUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vZGVMaXN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
bmRlclRyZWVBc1RleHQuaD4KICNwcmFnbWEgd2FybmluZyhwb3ApCiAKICNpbmNsdWRlIDxpbml0
Z3VpZC5oPgpAQCAtMTE0OSw2ICsxMTUwLDE3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
RE9NRWxlbWVudDo6cmUKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBET01FbGVtZW50OjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oQlNUUiogbWFya2VyVGV4
dCkKK3sKKyAgICBpZiAoIW1hcmtlclRleHQpCisgICAgICAgIHJldHVybiBFX1BPSU5URVI7CisK
KyAgICBBU1NFUlQobV9lbGVtZW50KTsKKworICAgICptYXJrZXJUZXh0ID0gQlN0cmluZyhXZWJD
b3JlOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0obV9lbGVtZW50KSkucmVsZWFzZSgpOworICAgIHJl
dHVybiBTX09LOworfQorCiAvLyBJRE9NRWxlbWVudENTU0lubGluZVN0eWxlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgRE9NRWxlbWVudDo6c3R5bGUoIApJbmRleDogV2ViS2l0L3dpbi9ET01Db3Jl
Q2xhc3Nlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vRE9NQ29yZUNsYXNzZXMuaAkocmV2
aXNpb24gNjMzODgpCisrKyBXZWJLaXQvd2luL0RPTUNvcmVDbGFzc2VzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc3Niw2ICs3NzYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHJlbmRlcmVkSW1hZ2UoCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8g
SEJJVE1BUCogaW1hZ2UpOwogCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IG1hcmtlclRleHRGb3JMaXN0SXRlbSgKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCU1RS
KiBtYXJrZXJUZXh0KTsKKwogICAgIC8vIElET01FbGVtZW50Q1NTSW5saW5lU3R5bGUKICAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc3R5bGUoCiAgICAgICAgIC8qIFtyZXR2
YWxdW291dF0gKi8gSURPTUNTU1N0eWxlRGVjbGFyYXRpb24qKiByZXN1bHQpOwpJbmRleDogV2Vi
S2l0L3dpbi9XZWJGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJGcmFtZS5j
cHAJKHJldmlzaW9uIDYzMzg4KQorKysgV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxOYW1lcy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0pTRE9NV2luZG93Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU0VsZW1lbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01vdXNlUmVsYXRl
ZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpAQCAtMTIzLDYg
KzEyNCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK3VzaW5nIEpTQzo6RXhlY1N0YXRlOwogdXNp
bmcgSlNDOjpKU0dsb2JhbE9iamVjdDsKIHVzaW5nIEpTQzo6SlNMb2NrOwogdXNpbmcgSlNDOjpK
U1ZhbHVlOwpAQCAtODU4LDYgKzg2MCwzMCBAQCBIUkVTVUxUIFdlYkZyYW1lOjpyZW5kZXJUcmVl
QXNFeHRlcm5hbFJlCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViRnJhbWU6OmVs
ZW1lbnRGcm9tSlMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgbm9kZU9iamVjdCwg
SURPTUVsZW1lbnQgKiplbGVtZW50KQoreworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0
dXJuIEVfUE9JTlRFUjsKKworICAgICplbGVtZW50ID0gMDsKKworICAgIGlmICghY29udGV4dCkK
KyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7CisgICAgRXhlY1N0YXRlKiBleGVjU3RhdGUgPSB0b0pTKGNvbnRleHQpOworICAg
IGlmICghbm9kZU9iamVjdCkKKyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIEpTVmFsdWUg
anNWYWx1ZSA9IHRvSlMoZXhlY1N0YXRlLCBub2RlT2JqZWN0KTsKKyAgICBFbGVtZW50KiBlbHQg
PSB0b0VsZW1lbnQoanNWYWx1ZSk7CisgICAgaWYgKCFlbHQpCisgICAgICAgIHJldHVybiBFX0ZB
SUw7CisKKyAgICAqZWxlbWVudCA9IERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGVsdCk7Cisg
ICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRnJhbWU6
OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKAogICAgIC8qIFtpbl0gKi8gQlNUUiBpZCwgLyog
W3JldHZhbF1bb3V0XSAqLyBCU1RSICpyZXN1bHQpCiB7CkluZGV4OiBXZWJLaXQvd2luL1dlYkZy
YW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJGcmFtZS5oCShyZXZpc2lvbiA2MzM4
OCkKKysrIFdlYktpdC93aW4vV2ViRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDYgKzE1
OCwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHVu
dXNlZDEoQlNUUiopIHsgcmV0dXJuIEVfTk9USU1QTDsgfQogICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSByZW5kZXJUcmVlQXNFeHRlcm5hbFJlcHJlc2VudGF0aW9uKEJPT0wg
Zm9yUHJpbnRpbmcsIEJTVFIgKnJlc3VsdCk7CiAKKyAgICB2aXJ0dWFsIC8qIFtsb2NhbF0gKi8g
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBlbGVtZW50RnJvbUpTKAorICAgICAgICAvKiBbaW5d
ICovIEpTQ29udGV4dFJlZiBjb250ZXh0LAorICAgICAgICAvKiBbaW5dICovIEpTVmFsdWVSZWYg
bm9kZU9iamVjdCwKKyAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBJRE9NRWxlbWVudCAqKmVs
ZW1lbnQpOworCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNvdW50ZXJW
YWx1ZUZvckVsZW1lbnRCeUlkKAogICAgICAgICAvKiBbaW5dICovIEJTVFIgaWQsCiAgICAgICAg
IC8qIFtyZXR2YWxdW291dF0gKi8gQlNUUiAqcmVzdWx0KTsKSW5kZXg6IFdlYktpdC93aW4vSW50
ZXJmYWNlcy9ET01Qcml2YXRlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0ludGVyZmFj
ZXMvRE9NUHJpdmF0ZS5pZGwJKHJldmlzaW9uIDYzMzg4KQorKysgV2ViS2l0L3dpbi9JbnRlcmZh
Y2VzL0RPTVByaXZhdGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBAIGludGVy
ZmFjZSBJRE9NRWxlbWVudFByaXZhdGUgOiBJVW5rbm93bgogICAgIEhSRVNVTFQgaW5uZXJUZXh0
KFtvdXQsIHJldHZhbF0gQlNUUiogcmVzdWx0KTsKICAgICBbbG9jYWxdIEhSRVNVTFQgZm9udChX
ZWJGb250RGVzY3JpcHRpb24qIHdlYkZvbnREZXNjcmlwdGlvbik7CiAgICAgSFJFU1VMVCByZW5k
ZXJlZEltYWdlKFtvdXQsIHJldHZhbF0gSEJJVE1BUCogaW1hZ2UpOworICAgIFtsb2NhbF0gSFJF
U1VMVCBtYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oW291dCwgcmV0dmFsXSBCU1RSKiBtYXJrZXJUZXh0
KTsKIH0KIAogLyoKSW5kZXg6IFdlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRl
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0
ZS5pZGwJKHJldmlzaW9uIDYzMzg4KQorKysgV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFt
ZVByaXZhdGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNCArMTE0LDYgQEAgaW50ZXJmYWNl
IElXZWJGcmFtZVByaXZhdGUgOiBJVW5rbm93bgogICAgIEhSRVNVTFQgcGFpbnRTY3JvbGxWaWV3
UmVjdFRvQ29udGV4dEF0UG9pbnQoW2luXSBSRUNUIHJlY3QsIFtpbl0gUE9JTlQgcHQsIFtpbl0g
T0xFX0hBTkRMRSBkZXZpY2VDb250ZXh0KTsKIAogICAgIEhSRVNVTFQgcmVuZGVyVHJlZUFzRXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihbaW5dIEJPT0wgZm9yUHJpbnRpbmcsIFtvdXQsIHJldHZhbF0g
QlNUUiogcmVzdWx0KTsKKworICAgIFtsb2NhbF0gSFJFU1VMVCBlbGVtZW50RnJvbUpTKFtpbl0g
SlNDb250ZXh0UmVmIGNvbnRleHQsIFtpbl0gSlNWYWx1ZVJlZiBub2RlT2JqZWN0LCBbb3V0LCBy
ZXR2YWxdIElET01FbGVtZW50KiogZWxlbWVudCk7CiB9CkluZGV4OiBXZWJLaXRUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MzQw
MCkKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1
IEBACisyMDEwLTA3LTE0ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV2luXSBJbXBsZW1lbnQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6Om1hcmtlclRleHRGb3JMaXN0SXRlbSgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzkzMAorCisgICAgICAgIElt
cGxlbWVudHMgRFJUIHN1cHBvcnQgZm9yIG1hcmtlclRleHRGb3JMaXN0SXRlbSBpbiB0aGUgV2lu
ZG93cyBwb3J0LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjptYXJrZXJUZXh0
Rm9yTGlzdEl0ZW0pOiBJbXBsZW1lbnRlZC4KKwogMjAxMC0wNy0xNCAgTWFjaWVqIFN0YWNob3dp
YWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5k
ZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91
dFRlc3RDb250cm9sbGVyV2luLmNwcAkocmV2aXNpb24gNjMzODgpCisrKyBXZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTYsOCArMTk2LDI2IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRU
ZXN0Q29udHIKIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVy
OjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYg
bm9kZU9iamVjdCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IG1lLgotICAgIHJl
dHVybiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4oKTsKKyAgICBDT01QdHI8SVdlYkZyYW1lUHJp
dmF0ZT4gZnJhbWVQcml2YXRlKFF1ZXJ5LCBmcmFtZSk7CisgICAgaWYgKCFmcmFtZVByaXZhdGUp
CisgICAgICAgIHJldHVybiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4oKTsKKworICAgIENPTVB0
cjxJRE9NRWxlbWVudD4gZWxlbWVudDsKKyAgICBpZiAoRkFJTEVEKGZyYW1lUHJpdmF0ZS0+ZWxl
bWVudEZyb21KUyhjb250ZXh0LCBub2RlT2JqZWN0LCAmZWxlbWVudCkpKQorICAgICAgICByZXR1
cm4gSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+KCk7CisKKyAgICBDT01QdHI8SURPTUVsZW1lbnRQ
cml2YXRlPiBlbGVtZW50UHJpdmF0ZShRdWVyeSwgZWxlbWVudCk7CisgICAgaWYgKCFlbGVtZW50
UHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPigpOworCisg
ICAgQlNUUiB0ZXh0QlNUUiA9IDA7CisgICAgaWYgKEZBSUxFRChlbGVtZW50UHJpdmF0ZS0+bWFy
a2VyVGV4dEZvckxpc3RJdGVtKCZ0ZXh0QlNUUikpKQorICAgICAgICByZXR1cm4gSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+KCk7CisKKyAgICB3c3RyaW5nIHRleHQodGV4dEJTVFIsIFN5c1N0cmlu
Z0xlbih0ZXh0QlNUUikpOworICAgIFN5c0ZyZWVTdHJpbmcodGV4dEJTVFIpOworICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBtYXJrZXJUZXh0KEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhD
aGFyYWN0ZXJzKHRleHQuZGF0YSgpLCB0ZXh0Lmxlbmd0aCgpKSk7CisgICAgcmV0dXJuIG1hcmtl
clRleHQ7CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRGb3JQb2xpY3lEZWxl
Z2F0ZSgpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MzQwMCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA3LTE0ICBEYW5pZWwgQmF0
ZXMgIDxkYmF0ZXNAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbV2luXSBJbXBsZW1lbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om1hcmtl
clRleHRGb3JMaXN0SXRlbSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzkzMAorCisgICAgICAgIFJlbW92ZSBza2lwcGVkIGxheW91dCB0ZXN0cyBu
b3cgdGhhdCB3ZSBoYXZlIERSVCBzdXBwb3J0LgorCisgICAgICAgICogcGxhdGZvcm0vd2luL1Nr
aXBwZWQ6CisKIDIwMTAtMDctMTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAkocmV2aXNpb24gNjMzODgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAkod29ya2luZyBjb3B5KQpAQCAtODYzLDE0ICs4NjMsNiBAQCBmYXN0L2V2ZW50cy9vbmRyb3At
dGV4dC1odG1sLmh0bWwKICMgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzcwOTY+IGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzLURFTklFRC1pZnJhbWUtc3JjLWFsaWFzLmh0bWwgc29tZXRpbWVzIHRpbWVz
IG91dCBvbiBXaW5kb3dzCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtaWZyYW1lLXNy
Yy1hbGlhcy5odG1sCiAKLSMgTWlzc2luZyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6bWFya2VyVGV4dEZvckxpc3RJdGVtKCkKLWZhc3QvbGlzdHMvb2wtbmVzdGVk
LWl0ZW1zLWR5bmFtaWMtaW5zZXJ0Lmh0bWwKLWZhc3QvbGlzdHMvb2wtbmVzdGVkLWl0ZW1zLWR5
bmFtaWMtcmVtb3ZlLmh0bWwKLWZhc3QvbGlzdHMvb2wtbmVzdGVkLWl0ZW1zLmh0bWwKLWZhc3Qv
bGlzdHMvb2wtbmVzdGVkLWxpc3QtZHluYW1pYy1pbnNlcnQuaHRtbAotZmFzdC9saXN0cy9vbC1u
ZXN0ZWQtbGlzdC1keW5hbWljLXJlbW92ZS5odG1sCi1mYXN0L2xpc3RzL29sLW5lc3RlZC1saXN0
Lmh0bWwKLQogIyBEb2Vzbid0IHN1cHBvcnQgV09GRiB5ZXQuCiBmYXN0L2Nzcy9mb250LWZhY2Ut
d29mZi5odG1sCiAK
</data>
<flag name="review"
          id="49662"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61739</attachid>
            <date>2010-07-15 16:01:00 -0700</date>
            <delta_ts>2010-07-19 07:05:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Bug37930_1.patch</filename>
            <type>text/plain</type>
            <size>9158</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hh
bmdlTG9nCShyZXZpc2lvbiA2MzQ3NikKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDctMTUgIERhbmllbCBCYXRlcyAgPGRiYXRl
c0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtXaW5dIEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bWFya2VyVGV4dEZvckxp
c3RJdGVtKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM3OTMwCisKKyAgICAgICAgSW1wbGVtZW50cyBzdXBwb3J0IGZvciBtYXJrZXJUZXh0Rm9yTGlz
dEl0ZW0gaW4gdGhlIFdpbmRvd3MgcG9ydC4KKworICAgICAgICAqIERPTUNvcmVDbGFzc2VzLmNw
cDoKKyAgICAgICAgKERPTUVsZW1lbnQ6Om1hcmtlclRleHRGb3JMaXN0SXRlbSk6IEFkZGVkLgor
ICAgICAgICAqIERPTUNvcmVDbGFzc2VzLmg6CisgICAgICAgICogSW50ZXJmYWNlcy9ET01Qcml2
YXRlLmlkbDogQWRkZWQgZGVjbGFyYXRpb24gZm9yIG1hcmtlclRleHRGb3JMaXN0SXRlbSgpLgor
ICAgICAgICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDogQWRkZWQgZGVjbGFyYXRp
b24gZm9yIGVsZW1lbnRGcm9tSlMoKS4KKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYlZpZXc6OmVsZW1lbnRGcm9tSlMpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3Lmg6CisK
IDIwMTAtMDctMTQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFN0ZXZlIEZhbGtlbmJ1cmcuCkluZGV4OiBXZWJLaXQvd2luL0RPTUNv
cmVDbGFzc2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0RPTUNvcmVDbGFzc2VzLmNw
cAkocmV2aXNpb24gNjM0NDYpCisrKyBXZWJLaXQvd2luL0RPTUNvcmVDbGFzc2VzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFRleHRB
cmVhRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm9kZUxpc3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlbmRlck9iamVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4
dC5oPgogI3ByYWdtYSB3YXJuaW5nKHBvcCkKIAogI2luY2x1ZGUgPGluaXRndWlkLmg+CkBAIC0x
MTQ5LDYgKzExNTAsMTggQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBET01FbGVtZW50Ojpy
ZQogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUVs
ZW1lbnQ6Om1hcmtlclRleHRGb3JMaXN0SXRlbSgKKyAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJT
VFIqIG1hcmtlclRleHQpCit7CisgICAgaWYgKCFtYXJrZXJUZXh0KQorICAgICAgICByZXR1cm4g
RV9QT0lOVEVSOworCisgICAgQVNTRVJUKG1fZWxlbWVudCk7CisKKyAgICAqbWFya2VyVGV4dCA9
IEJTdHJpbmcoV2ViQ29yZTo6bWFya2VyVGV4dEZvckxpc3RJdGVtKG1fZWxlbWVudCkpLnJlbGVh
c2UoKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogLy8gSURPTUVsZW1lbnRDU1NJbmxpbmVTdHls
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIERPTUVsZW1lbnQ6OnN0eWxlKCAKSW5kZXg6IFdlYktp
dC93aW4vRE9NQ29yZUNsYXNzZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0RPTUNvcmVD
bGFzc2VzLmgJKHJldmlzaW9uIDYzNDQ2KQorKysgV2ViS2l0L3dpbi9ET01Db3JlQ2xhc3Nlcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC03NzYsNiArNzc2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW5kZXJlZEltYWdlKAogICAgICAgICAvKiBbcmV0
dmFsXVtvdXRdICovIEhCSVRNQVAqIGltYWdlKTsKIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBtYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oCisgICAgICAgIC8qIFtyZXR2YWxd
W291dF0gKi8gQlNUUiogbWFya2VyVGV4dCk7CisKICAgICAvLyBJRE9NRWxlbWVudENTU0lubGlu
ZVN0eWxlCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHN0eWxlKAogICAg
ICAgICAvKiBbcmV0dmFsXVtvdXRdICovIElET01DU1NTdHlsZURlY2xhcmF0aW9uKiogcmVzdWx0
KTsKSW5kZXg6IFdlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcAkocmV2aXNpb24gNjM0NDYpCisrKyBXZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IaXRU
ZXN0UmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSlNFbGVtZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MYW5n
dWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgpAQCAtMTEyLDYgKzExMyw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9ncmVzc1RyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1JlbmRlckxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVy
Vmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUhhbmRsZS5oPgpAQCAtNTY2Miw2ICs1NjY0LDMxIEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6cmVwb3IKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjplbGVtZW50RnJvbUpTKAorICAgIC8qIFtp
bl0gKi8gSlNDb250ZXh0UmVmIGNvbnRleHQsCisgICAgLyogW2luXSAqLyBKU1ZhbHVlUmVmIG5v
ZGVPYmplY3QsCisgICAgLyogW3JldHZhbF1bb3V0XSAqLyBJRE9NRWxlbWVudCAqKmVsZW1lbnQp
Cit7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm4gRV9QT0lOVEVSOworCisgICAg
KmVsZW1lbnQgPSAwOworCisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4gRV9GQUlM
OworCisgICAgaWYgKCFub2RlT2JqZWN0KQorICAgICAgICByZXR1cm4gRV9GQUlMOworCisgICAg
SlNMb2NrIGxvY2soSlNDOjpTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOworICAgIEVsZW1lbnQqIGVs
dCA9IHRvRWxlbWVudCh0b0pTKHRvSlMoY29udGV4dCksIG5vZGVPYmplY3QpKTsKKyAgICBpZiAo
IWVsdCkKKyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgICplbGVtZW50ID0gRE9NRWxlbWVu
dDo6Y3JlYXRlSW5zdGFuY2UoZWx0KTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRDdXN0b21IVE1MVG9rZW5pemVyVGltZURlbGF5
KAogICAgIC8qIFtpbl0gKi8gZG91YmxlIHRpbWVEZWxheSkKIHsKSW5kZXg6IFdlYktpdC93aW4v
V2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViVmlldy5oCShyZXZpc2lvbiA2
MzQ0NikKKysrIFdlYktpdC93aW4vV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC03MDYsNiAr
NzA2LDExIEBAIHB1YmxpYzoKICAgICAgICAgLyogW2luXSAqLyBKU0NvbnRleHRSZWYgY29udGV4
dCwKICAgICAgICAgLyogW2luXSAqLyBKU1ZhbHVlUmVmIGV4Y2VwdGlvbik7CiAKKyAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZWxlbWVudEZyb21KUygKKyAgICAgICAgLyog
W2luXSAqLyBKU0NvbnRleHRSZWYgY29udGV4dCwKKyAgICAgICAgLyogW2luXSAqLyBKU1ZhbHVl
UmVmIG5vZGVPYmplY3QsCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gSURPTUVsZW1lbnQg
KiplbGVtZW50KTsKKwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRD
dXN0b21IVE1MVG9rZW5pemVyVGltZURlbGF5KAogICAgICAgICAvKiBbaW5dICovIGRvdWJsZSB0
aW1lRGVsYXkpOwogCkluZGV4OiBXZWJLaXQvd2luL0ludGVyZmFjZXMvRE9NUHJpdmF0ZS5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0RPTVByaXZhdGUuaWRsCShyZXZp
c2lvbiA2MzQ0NikKKysrIFdlYktpdC93aW4vSW50ZXJmYWNlcy9ET01Qcml2YXRlLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBpbnRlcmZhY2UgSURPTUVsZW1lbnRQcml2YXRl
IDogSVVua25vd24KICAgICBIUkVTVUxUIGlubmVyVGV4dChbb3V0LCByZXR2YWxdIEJTVFIqIHJl
c3VsdCk7CiAgICAgW2xvY2FsXSBIUkVTVUxUIGZvbnQoV2ViRm9udERlc2NyaXB0aW9uKiB3ZWJG
b250RGVzY3JpcHRpb24pOwogICAgIEhSRVNVTFQgcmVuZGVyZWRJbWFnZShbb3V0LCByZXR2YWxd
IEhCSVRNQVAqIGltYWdlKTsKKyAgICBbbG9jYWxdIEhSRVNVTFQgbWFya2VyVGV4dEZvckxpc3RJ
dGVtKFtvdXQsIHJldHZhbF0gQlNUUiogbWFya2VyVGV4dCk7CiB9CiAKIC8qCkluZGV4OiBXZWJL
aXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAkocmV2aXNpb24gNjM0NDYpCisr
KyBXZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjM3LDQgKzIzNyw2IEBAIGludGVyZmFjZSBJV2ViVmlld1ByaXZhdGUgOiBJVW5rbm93
bgogICAgIEhSRVNVTFQgcGFpbnRTY3JvbGxWaWV3UmVjdFRvQ29udGV4dEF0UG9pbnQoW2luXSBS
RUNUIHJlY3QsIFtpbl0gUE9JTlQgcHQsIFtpbl0gT0xFX0hBTkRMRSBkYyk7CiAKICAgICBbbG9j
YWxdIEhSRVNVTFQgcmVwb3J0RXhjZXB0aW9uKFtpbl0gSlNDb250ZXh0UmVmIGNvbnRleHQsIFtp
bl0gSlNWYWx1ZVJlZiBleGNlcHRpb24pOworCisgICAgW2xvY2FsXSBIUkVTVUxUIGVsZW1lbnRG
cm9tSlMoW2luXSBKU0NvbnRleHRSZWYgY29udGV4dCwgW2luXSBKU1ZhbHVlUmVmIG5vZGVPYmpl
Y3QsIFtvdXQsIHJldHZhbF0gSURPTUVsZW1lbnQqKiBlbGVtZW50KTsKIH0KSW5kZXg6IFdlYktp
dFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDYzNDc2KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDctMTUgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXaW5d
IEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bWFya2VyVGV4dEZvckxpc3RJdGVtKCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3OTMwCisK
KyAgICAgICAgSW1wbGVtZW50cyBEUlQgc3VwcG9ydCBmb3IgbWFya2VyVGV4dEZvckxpc3RJdGVt
IGluIHRoZSBXaW5kb3dzIHBvcnQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5
b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
Om1hcmtlclRleHRGb3JMaXN0SXRlbSk6IEltcGxlbWVudGVkLgorCiAyMDEwLTA3LTE1ICBBZGFt
IFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGtpbGxpbmcgQXBhY2hl
IG1vcmUgcmVsaWFibGUgKG9uIGJvdGggTWFjIGFuZCBXaW5kb3dzKQpJbmRleDogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xs
ZXJXaW4uY3BwCShyZXZpc2lvbiA2MzQ0NikKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Niw4
ICsxOTYsMjkgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cgogCiBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6Om1hcmtlclRleHRG
b3JMaXN0SXRlbShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub2RlT2JqZWN0KSBj
b25zdAogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgbWUuCi0gICAgcmV0dXJuIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPigpOworICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKKyAgICBp
ZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gd2ViVmlld1ByaXZhdGUoUXVlcnksIHdlYlZp
ZXcpOworICAgIGlmICghd2ViVmlld1ByaXZhdGUpCisgICAgICAgIHJldHVybiAwOworCisgICAg
Q09NUHRyPElET01FbGVtZW50PiBlbGVtZW50OworICAgIGlmIChGQUlMRUQod2ViVmlld1ByaXZh
dGUtPmVsZW1lbnRGcm9tSlMoY29udGV4dCwgbm9kZU9iamVjdCwgJmVsZW1lbnQpKSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBDT01QdHI8SURPTUVsZW1lbnRQcml2YXRlPiBlbGVtZW50UHJp
dmF0ZShRdWVyeSwgZWxlbWVudCk7CisgICAgaWYgKCFlbGVtZW50UHJpdmF0ZSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICBCU1RSIHRleHRCU1RSID0gMDsKKyAgICBpZiAoRkFJTEVEKGVsZW1l
bnRQcml2YXRlLT5tYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oJnRleHRCU1RSKSkpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG1hcmtlclRleHQoQWRvcHQs
IEpTU3RyaW5nQ3JlYXRlV2l0aEJTVFIodGV4dEJTVFIpKTsKKyAgICBTeXNGcmVlU3RyaW5nKHRl
eHRCU1RSKTsKKyAgICByZXR1cm4gbWFya2VyVGV4dDsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6d2FpdEZvclBvbGljeURlbGVnYXRlKCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDYzNDc2
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTAtMDctMTUgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXaW5dIEltcGxlbWVudCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6bWFya2VyVGV4dEZvckxpc3RJdGVtKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3OTMwCisKKyAgICAgICAgUmVt
b3ZlIHNraXBwZWQgbGF5b3V0IHRlc3RzIG5vdyB0aGF0IHdlIGhhdmUgRFJUIHN1cHBvcnQuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0wNy0xNSAgRXJpYyBTZWlk
ZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCShyZXZpc2lvbiA2MzQ0NikKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC04NjIsMTQgKzg2
Miw2IEBAIGZhc3QvZXZlbnRzL29uZHJvcC10ZXh0LWh0bWwuaHRtbAogIyA8aHR0cDovL3dlYmtp
dC5vcmcvYi8zNzA5Nj4gaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWlmcmFtZS1zcmMt
YWxpYXMuaHRtbCBzb21ldGltZXMgdGltZXMgb3V0IG9uIFdpbmRvd3MKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzLURFTklFRC1pZnJhbWUtc3JjLWFsaWFzLmh0bWwKIAotIyBNaXNzaW5nIGFuIGlt
cGxlbWVudGF0aW9uIG9mIExheW91dFRlc3RDb250cm9sbGVyOjptYXJrZXJUZXh0Rm9yTGlzdEl0
ZW0oKQotZmFzdC9saXN0cy9vbC1uZXN0ZWQtaXRlbXMtZHluYW1pYy1pbnNlcnQuaHRtbAotZmFz
dC9saXN0cy9vbC1uZXN0ZWQtaXRlbXMtZHluYW1pYy1yZW1vdmUuaHRtbAotZmFzdC9saXN0cy9v
bC1uZXN0ZWQtaXRlbXMuaHRtbAotZmFzdC9saXN0cy9vbC1uZXN0ZWQtbGlzdC1keW5hbWljLWlu
c2VydC5odG1sCi1mYXN0L2xpc3RzL29sLW5lc3RlZC1saXN0LWR5bmFtaWMtcmVtb3ZlLmh0bWwK
LWZhc3QvbGlzdHMvb2wtbmVzdGVkLWxpc3QuaHRtbAotCiAjIERvZXNuJ3Qgc3VwcG9ydCBXT0ZG
IHlldC4KIGZhc3QvY3NzL2ZvbnQtZmFjZS13b2ZmLmh0bWwKIAo=
</data>
<flag name="review"
          id="49813"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>