<?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>30739</bug_id>
          
          <creation_ts>2009-10-23 23:32:53 -0700</creation_ts>
          <short_desc>crash with AX on when an image map contains an anchor tag</short_desc>
          <delta_ts>2009-10-26 07:50:29 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>157432</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-10-23 23:32:53 -0700</bug_when>
    <thetext>here&apos;s the offending code found on ebay.com

&lt;div class=&quot;body&quot;&gt;&lt;img src=&quot;http://pics.ebaystatic.com/aw/pics/globalAssets/imgCCHPMeBAAGSignedOut.gif&quot; height=&quot;79&quot; width=&quot;613&quot; border=&quot;0&quot; usemap=&quot;#imgCCHPMeBAAGSignedOut&quot;&gt;&lt;map id=&quot;imgCCHPMeBAAGSignedOut&quot; name=&quot;imgCCHPMeBAAGSignedOut&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;97,45,212,75&quot; href=&quot;https://signin.ebay.com/ws/eBayISAPI.dll?SignIn&amp;amp;ru=http%3A%2F%2Fwww.ebay.com&quot; alt=&quot;&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;447,45,565,76&quot; href=&quot;https://scgi.ebay.com/ws/eBayISAPI.dll?RegisterEnterInfo&quot;&gt;&lt;a href=&quot;https://scgi.ebay.com/ws/eBayISAPI.dll?RegisterEnterInfo&quot; _sp=&quot;p3907.m247;Register&quot;&gt;&lt;/a&gt;&lt;area shape=&quot;default&quot; nohref=&quot;nohref&quot; alt=&quot;&quot;&gt;&lt;/map&gt;&lt;/div&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157593</commentid>
    <comment_count>1</comment_count>
      <attachid>41820</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-10-25 10:06:04 -0700</bug_when>
    <thetext>Created attachment 41820
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157594</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-10-25 10:06:34 -0700</bug_when>
    <thetext>the problem was that we were assuming all children of a &lt;map&gt; where &lt;area&gt;. But apparently, you can also stick in a &lt;a&gt; tag if you want</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157650</commentid>
    <comment_count>3</comment_count>
      <attachid>41820</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-25 17:56:47 -0700</bug_when>
    <thetext>Comment on attachment 41820
patch

&gt;  AccessibilityImageMapLink::AccessibilityImageMapLink()
&gt; -    : m_areaElement(0), 
&gt; +    : m_anchorElement(0), 
&gt;        m_mapElement(0)

This is not using the normal formatting for WebKit. We put the commas at the beginnings of the subsequent lines, lined up under the colons.

&gt; +    // Ignore links that have a alt=&quot;&quot; or nohref tag
&gt; +    if (m_anchorElement 
&gt; +        &amp;&amp; ((m_anchorElement-&gt;hasAttribute(altAttr) &amp;&amp; m_anchorElement-&gt;getAttribute(altAttr).isEmpty())
&gt; +        || m_anchorElement-&gt;hasAttribute(nohrefAttr)))
&gt; +        return true;
&gt; +    
&gt; +    return false; 

I suggest just using a return statement rather than an if. Also, I suggest indenting the || an additional tab level to indicate that it&apos;s in a nested expression.

Or you can keep this simpler by using early return a bit more.

    if (!m_anchorElement)
        return false;

    if (m_anchorElement-&gt;hasAttribute(altAttr) &amp;&amp; m_anchorElement-&gt;getAttribute(altAttr).isEmpty())
        return true;

    if (m_anchorElement-&gt;hasAttribute(nohrefAttr))
        return true;

    return false;

Now that I write it that way, I can see it can be done more efficiently, too:

    const AtomicString&amp; alt = m_anchorElement-&gt;getAttribute(altAttr);
    if (alt.isEmpty() &amp;&amp; !alt.isNull())
        return true;

And you can write some additional comments explaining why this is the correct logic.

I see now where the crash came from -- it was from the check of isLink then assuming that meant HTMLAreaElement. Maybe it would have been best to have one simple patch fixing the crash that made that check do hasTagName(areaTag), and then another more sophisticated patch adding support for &lt;a&gt; inside &lt;map&gt;.

The test you added here simply tests for the crash. It does not test the newly added feature of having an &lt;a&gt; in a &lt;map&gt; or the new accessibilityIsIgnored check you added.

review- because I think you should do at least some of what I suggest above. In particular, I think the patch that just fixes the crash would be a good idea, and a new test that tests the new features you are adding is also called for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157652</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-10-25 18:05:09 -0700</bug_when>
    <thetext>made this bug to track allowing &lt;a&gt; children in a &lt;map&gt;

https://bugs.webkit.org/show_bug.cgi?id=30760</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157663</commentid>
    <comment_count>5</comment_count>
      <attachid>41838</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-10-25 20:17:24 -0700</bug_when>
    <thetext>Created attachment 41838
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157664</commentid>
    <comment_count>6</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-10-25 20:17:41 -0700</bug_when>
    <thetext>added patch to just fix the crasher</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157770</commentid>
    <comment_count>7</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-10-26 07:50:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/50062</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41820</attachid>
            <date>2009-10-25 10:06:04 -0700</date>
            <delta_ts>2009-10-25 20:17:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13120</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDA0NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMTAtMjUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDcmFzaCB3aXRoIEFYIG9uIHdoZW4gYW4gaW1hZ2UgbWFwIGNvbnRhaW5zIGFuIGFuY2hvciB0
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNzM5
CisKKyAgICAgICAgVGhlcmUgd2FzIGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIHRoYXQgYWxsIDxt
YXA+IGNoaWxkcmVuIHdlcmUgPGFyZWE+IGVsZW1lbnRzLgorCisgICAgICAgIFRlc3Q6IGFjY2Vz
c2liaWxpdHkvY3Jhc2hpbmctYS10YWctaW4tbWFwLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms6OmFjY2Vzc2liaWxpdHlJ
c0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6
YW5jaG9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBM
aW5rOjp1cmwpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6
YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbms6OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlJ
bWFnZU1hcExpbms6OmVsZW1lbnRSZWN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlJbWFnZU1hcExpbmsuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlJ
bWFnZU1hcExpbms6OnNldEhUTUxBbmNob3JFbGVtZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0Rm9yUmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmdldERvY3Vt
ZW50TGlua3MpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
YWRkQ2hpbGRyZW4pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5oOgorCiAyMDA5LTEwLTI1ICBLZWlzaGkgSGF0dG9yaSAgPGNhc2V5LmhhdHRvcmlA
Z21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KSW5kZXg6
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGlu
ay5jcHAJKHJldmlzaW9uIDUwMDQ0KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlJbWFnZU1hcExpbmsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNs
dWRlICJSZW5kZXJPYmplY3QuaCIKQEAgLTQzLDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGlu
azo6QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaygpCi0gICAgOiBtX2FyZWFFbGVtZW50KDApLCAK
KyAgICA6IG1fYW5jaG9yRWxlbWVudCgwKSwgCiAgICAgICBtX21hcEVsZW1lbnQoMCkKIHsKIH0K
QEAgLTU3LDYgKzU4LDE3IEBAIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaz4g
QWMKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsoKSk7
CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0IAoreyAKKyAgICAvLyBJZ25vcmUgbGlua3MgdGhhdCBoYXZlIGEgYWx0PSIi
IG9yIG5vaHJlZiB0YWcKKyAgICBpZiAobV9hbmNob3JFbGVtZW50IAorICAgICAgICAmJiAoKG1f
YW5jaG9yRWxlbWVudC0+aGFzQXR0cmlidXRlKGFsdEF0dHIpICYmIG1fYW5jaG9yRWxlbWVudC0+
Z2V0QXR0cmlidXRlKGFsdEF0dHIpLmlzRW1wdHkoKSkKKyAgICAgICAgfHwgbV9hbmNob3JFbGVt
ZW50LT5oYXNBdHRyaWJ1dGUobm9ocmVmQXR0cikpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAKKyAgICByZXR1cm4gZmFsc2U7IAorfQorICAgIAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNj
ZXNzaWJpbGl0eUltYWdlTWFwTGluazo6cGFyZW50T2JqZWN0KCkgY29uc3QKIHsKICAgICBpZiAo
bV9wYXJlbnQpCkBAIC03NSwyMyArODcsMjMgQEAgRWxlbWVudCogQWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluazo6YWN0aQogICAgIAogRWxlbWVudCogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6
YW5jaG9yRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fYXJlYUVsZW1lbnQ7CisgICAg
cmV0dXJuIG1fYW5jaG9yRWxlbWVudDsKIH0KIAogS1VSTCBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBM
aW5rOjp1cmwoKSBjb25zdAogewotICAgIGlmICghbV9hcmVhRWxlbWVudCkKKyAgICBpZiAoIW1f
YW5jaG9yRWxlbWVudCkKICAgICAgICAgcmV0dXJuIEtVUkwoKTsKICAgICAKLSAgICByZXR1cm4g
bV9hcmVhRWxlbWVudC0+aHJlZigpOworICAgIHJldHVybiBtX2FuY2hvckVsZW1lbnQtPmhyZWYo
KTsKIH0KICAgICAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjphY2Nlc3NpYmls
aXR5RGVzY3JpcHRpb24oKSBjb25zdAogewotICAgIGlmICghbV9hcmVhRWxlbWVudCkKKyAgICBp
ZiAoIW1fYW5jaG9yRWxlbWVudCkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgY29u
c3QgQXRvbWljU3RyaW5nJiBhbHQgPSBtX2FyZWFFbGVtZW50LT5nZXRBdHRyaWJ1dGUoYWx0QXR0
cik7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhbHQgPSBtX2FuY2hvckVsZW1lbnQtPmdldEF0
dHJpYnV0ZShhbHRBdHRyKTsKICAgICBpZiAoIWFsdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBhbHQ7CiAKQEAgLTEwMCwxMyArMTEyLDEzIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5SW1hZ2VN
YXBMaW5rOjphY2Nlc3MKICAgICAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjp0
aXRsZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2FyZWFFbGVtZW50KQorICAgIGlmICghbV9hbmNo
b3JFbGVtZW50KQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgCi0gICAgY29uc3QgQXRv
bWljU3RyaW5nJiB0aXRsZSA9IG1fYXJlYUVsZW1lbnQtPmdldEF0dHJpYnV0ZSh0aXRsZUF0dHIp
OworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdGl0bGUgPSBtX2FuY2hvckVsZW1lbnQtPmdldEF0
dHJpYnV0ZSh0aXRsZUF0dHIpOwogICAgIGlmICghdGl0bGUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gdGl0bGU7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBzdW1tYXJ5ID0gbV9hcmVhRWxl
bWVudC0+Z2V0QXR0cmlidXRlKHN1bW1hcnlBdHRyKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcm
IHN1bW1hcnkgPSBtX2FuY2hvckVsZW1lbnQtPmdldEF0dHJpYnV0ZShzdW1tYXJ5QXR0cik7CiAg
ICAgaWYgKCFzdW1tYXJ5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHN1bW1hcnk7CiAKQEAg
LTExNSw3ICsxMjcsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6dGl0bGUo
CiAgICAgCiBJbnRSZWN0IEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms6OmVsZW1lbnRSZWN0KCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fbWFwRWxlbWVudCB8fCAhbV9hcmVhRWxlbWVudCkKKyAgICBp
ZiAoIW1fbWFwRWxlbWVudCB8fCAhbV9hbmNob3JFbGVtZW50KQogICAgICAgICByZXR1cm4gSW50
UmVjdCgpOwogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlcjsKQEAgLTEyNyw3ICsxMzksMTQg
QEAgSW50UmVjdCBBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjplbGVtZQogICAgIGlmICghcmVu
ZGVyZXIpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAgICAgCi0gICAgcmV0dXJuIG1fYXJl
YUVsZW1lbnQtPmdldFJlY3QocmVuZGVyZXIpOworICAgIGlmIChtX2FuY2hvckVsZW1lbnQtPmhh
c1RhZ05hbWUoYXJlYVRhZykpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MQXJlYUVs
ZW1lbnQqPihtX2FuY2hvckVsZW1lbnQpLT5nZXRSZWN0KHJlbmRlcmVyKTsKKyAgICAKKyAgICBy
ZW5kZXJlciA9IG1fYW5jaG9yRWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlcmVy
KQorICAgICAgICByZXR1cm4gSW50UmVjdCgpOworICAgIAorICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojpib3VuZGluZ0JveFJlY3RGb3JSZW5kZXJlcihyZW5kZXJlcik7CiB9
CiAgICAgCiBJbnRTaXplIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms6OnNpemUoKSBjb25zdApJ
bmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFw
TGluay5oCShyZXZpc2lvbiA1MDA0NCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5SW1hZ2VNYXBMaW5rLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNk
ZWZpbmUgQWNjZXNzaWJpbGl0eUltYWdlTWFwTGlua19oCiAKICNpbmNsdWRlICJBY2Nlc3NpYmls
aXR5T2JqZWN0LmgiCi0jaW5jbHVkZSAiSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEFuY2hvckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWFwRWxlbWVudC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC00MywxMiArNDMsMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwg
fkFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsoKTsKICAgICAKLSAgICB2b2lkIHNldEhUTUxBcmVh
RWxlbWVudChIVE1MQXJlYUVsZW1lbnQqIGVsZW1lbnQpIHsgbV9hcmVhRWxlbWVudCA9IGVsZW1l
bnQ7IH0KKyAgICB2b2lkIHNldEhUTUxBbmNob3JFbGVtZW50KEhUTUxBbmNob3JFbGVtZW50KiBl
bGVtZW50KSB7IG1fYW5jaG9yRWxlbWVudCA9IGVsZW1lbnQ7IH0KICAgICB2b2lkIHNldEhUTUxN
YXBFbGVtZW50KEhUTUxNYXBFbGVtZW50KiBlbGVtZW50KSB7IG1fbWFwRWxlbWVudCA9IGVsZW1l
bnQ7IH0gICAgCiAgICAgdm9pZCBzZXRQYXJlbnQoQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50
KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CiAgICAgICAgIAogICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gV2ViQ29yZUxpbmtSb2xlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAog
ICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Q7CkBA
IC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEludFJlY3QgZWxlbWVudFJlY3Qo
KSBjb25zdDsKIAogcHJpdmF0ZTogICAgCi0gICAgSFRNTEFyZWFFbGVtZW50KiBtX2FyZWFFbGVt
ZW50OworICAgIEhUTUxBbmNob3JFbGVtZW50KiBtX2FuY2hvckVsZW1lbnQ7CiAgICAgSFRNTE1h
cEVsZW1lbnQqIG1fbWFwRWxlbWVudDsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBtX3BhcmVu
dDsKIH07CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiA1MDA0NCkKKysrIFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1
NywxMCArMTA1Nyw4IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3MK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLUludFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKK0ludFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6Ym91bmRpbmdCb3hSZWN0Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvYmopCiB7
Ci0gICAgUmVuZGVyT2JqZWN0KiBvYmogPSBtX3JlbmRlcmVyOwotICAgIAogICAgIGlmICghb2Jq
KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogICAgIApAQCAtMTA4NCw2ICsxMDgyLDExIEBA
IEludFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Ym91bmQKICAgICB9CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KKworSW50UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpib3Vu
ZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojpib3VuZGluZ0JveFJlY3RGb3JSZW5kZXJlcihtX3JlbmRlcmVyKTsKK30KICAgICAKIElu
dFJlY3QgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2hlY2tib3hPclJhZGlvUmVjdCgpIGNv
bnN0CiB7CkBAIC0xNjk5LDEzICsxNzAyLDE0IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6Z2V0RG9jdW0KICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGF4b2JqKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIE5vZGUqIHBhcmVudCA9IGN1cnItPnBhcmVudCgp
OwotICAgICAgICAgICAgaWYgKHBhcmVudCAmJiBjdXJyLT5oYXNUYWdOYW1lKGFyZWFUYWcpICYm
IHBhcmVudC0+aGFzVGFnTmFtZShtYXBUYWcpKSB7CisgICAgICAgICAgICBpZiAocGFyZW50ICYm
IHBhcmVudC0+aGFzVGFnTmFtZShtYXBUYWcpICYmIChjdXJyLT5oYXNUYWdOYW1lKGFyZWFUYWcp
IHx8IGN1cnItPmhhc1RhZ05hbWUoYVRhZykpKSB7CiAgICAgICAgICAgICAgICAgQWNjZXNzaWJp
bGl0eUltYWdlTWFwTGluayogYXJlYU9iamVjdCA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlJ
bWFnZU1hcExpbmsqPihheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKEltYWdlTWFwTGlua1Jv
bGUpKTsKLSAgICAgICAgICAgICAgICBhcmVhT2JqZWN0LT5zZXRIVE1MQXJlYUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTEFyZWFFbGVtZW50Kj4oY3VycikpOworICAgICAgICAgICAgICAgIGFyZWFP
YmplY3QtPnNldEhUTUxBbmNob3JFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50
Kj4oY3VycikpOwogICAgICAgICAgICAgICAgIGFyZWFPYmplY3QtPnNldEhUTUxNYXBFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxNYXBFbGVtZW50Kj4ocGFyZW50KSk7CiAgICAgICAgICAgICAgICAg
YXJlYU9iamVjdC0+c2V0UGFyZW50KGFjY2Vzc2liaWxpdHlQYXJlbnRGb3JJbWFnZU1hcChzdGF0
aWNfY2FzdDxIVE1MTWFwRWxlbWVudCo+KHBhcmVudCkpKTsKIAotICAgICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoYXJlYU9iamVjdCk7CisgICAgICAgICAgICAgICAgaWYgKCFhcmVhT2JqZWN0
LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoYXJlYU9iamVjdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgY3Vy
ciA9IGNvbGwtPm5leHRJdGVtKCk7CkBAIC0yNTc1LDE0ICsyNTc5LDE1IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGQKICAgICAgICAgaWYgKG1hcCkgewogICAgICAg
ICAgICAgZm9yIChOb2RlKiBjdXJyZW50ID0gbWFwLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1
cnJlbnQgPSBjdXJyZW50LT50cmF2ZXJzZU5leHROb2RlKG1hcCkpIHsKIAotICAgICAgICAgICAg
ICAgIC8vIGFkZCBhbiA8YXJlYT4gZWxlbWVudCBmb3IgdGhpcyBjaGlsZCBpZiBpdCBoYXMgYSBs
aW5rCi0gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQtPmlzTGluaygpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsqIGFyZWFPYmplY3QgPSBzdGF0aWNf
Y2FzdDxBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rKj4obV9yZW5kZXJlci0+ZG9jdW1lbnQoKS0+
YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShJbWFnZU1hcExpbmtSb2xlKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGFyZWFPYmplY3QtPnNldEhUTUxBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQXJlYUVsZW1lbnQqPihjdXJyZW50KSk7CisgICAgICAgICAgICAgICAgLy8gQWRkIGEgc3Bl
Y2lhbCBlbGVtZW50IGZvciB0aGlzIGNoaWxkIGlmIGl0IGEgdHlwZSBvZiBzdXBwb3J0ZWQgbGlu
ay4KKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudC0+aGFzVGFnTmFtZShhVGFnKSB8fCBjdXJy
ZW50LT5oYXNUYWdOYW1lKGFyZWFUYWcpKSB7CisgICAgICAgICAgICAgICAgICAgIEFjY2Vzc2li
aWxpdHlJbWFnZU1hcExpbmsqIGFyZWFPYmplY3QgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5
SW1hZ2VNYXBMaW5rKj4oYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShJbWFnZU1hcExpbmtS
b2xlKSk7CisgICAgICAgICAgICAgICAgICAgIGFyZWFPYmplY3QtPnNldEhUTUxBbmNob3JFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50Kj4oY3VycmVudCkpOwogICAgICAgICAg
ICAgICAgICAgICBhcmVhT2JqZWN0LT5zZXRIVE1MTWFwRWxlbWVudChtYXApOwogICAgICAgICAg
ICAgICAgICAgICBhcmVhT2JqZWN0LT5zZXRQYXJlbnQodGhpcyk7CiAKLSAgICAgICAgICAgICAg
ICAgICAgbV9jaGlsZHJlbi5hcHBlbmQoYXJlYU9iamVjdCk7CisgICAgICAgICAgICAgICAgICAg
IGlmICghYXJlYU9iamVjdC0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpKSAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fY2hpbGRyZW4uYXBwZW5kKGFyZWFPYmplY3QpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCShyZXZpc2lvbiA1MDA0NCkK
KysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE1MCw2ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogbWVudUZvck1lbnVCdXR0b24oKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBtZW51QnV0dG9uRm9yTWVudSgpIGNvbnN0OwogICAgIAorICAgIHN0YXRpYyBJbnRSZWN0
IGJvdW5kaW5nQm94UmVjdEZvclJlbmRlcmVyKFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwg
SW50UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIEludFJlY3QgZWxl
bWVudFJlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0OwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTAwNDQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0xMC0yNSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxl
aXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENyYXNoIHdpdGggQVggb24gd2hlbiBhbiBpbWFnZSBtYXAgY29udGFpbnMgYW4g
YW5jaG9yIHRhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzA3MzkKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvY3Jhc2hpbmctYS10YWctaW4tbWFw
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9jcmFzaGluZy1h
LXRhZy1pbi1tYXAuaHRtbDogQWRkZWQuCisKIDIwMDktMTAtMjUgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDog
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jcmFzaGluZy1hLXRhZy1pbi1tYXAtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY3Jhc2hpbmctYS10
YWctaW4tbWFwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvY3Jhc2hpbmctYS10YWctaW4tbWFwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMCBAQAorCitUaGlzIHRlc3RzIHRoYXQgYSBoaXQgdGVzdCBvbiBhIGltYWdl
IG1hcCB0aGF0IGhhcyBhcmVhcyBhbmQgYW5jaG9ycyBkb2VzIG5vdCBjcmFzaAorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY3Jhc2hp
bmctYS10YWctaW4tbWFwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9jcmFzaGluZy1hLXRhZy1pbi1tYXAuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvY3Jhc2hpbmctYS10YWctaW4tbWFwLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQ+Cit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBp
ZD0iYm9keSI+CisKKzxkaXYgY2xhc3M9ImJvZHkiPgorCis8aW1nIHNyYz0icmVzb3VyY2VzL2Nh
a2UucG5nIiBoZWlnaHQ9IjUwMCIgd2lkdGg9IjYxMyIgYm9yZGVyPSIwIiB1c2VtYXA9IiNpbWci
PgorPG1hcCBpZD0iaW1nIiBuYW1lPSJpbWciPgorPGFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0i
OTcsNDUsNSw1IiBocmVmPSJ0ZXN0Lmh0bWwiIGFsdD0iIj4KKzxhcmVhIHNoYXBlPSJyZWN0IiBj
b29yZHM9IjQ0Nyw0NSw1LDUiIGhyZWY9InRlc3QuaHRtbCI+Cis8YSBocmVmPSJ0ZXN0Lmh0bWwi
PjwvYT4KKzxhcmVhIHNoYXBlPSJkZWZhdWx0IiBub2hyZWY9Im5vaHJlZiIgYWx0PSIiPgorPC9t
YXA+PC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGEg
aGl0IHRlc3Qgb24gYSBpbWFnZSBtYXAgdGhhdCBoYXMgYXJlYXMgYW5kIGFuY2hvcnMgZG9lcyBu
b3QgY3Jhc2giKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsK
KworICAgICAgICAgIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKTsK
KyAgICAgICAgICBib2R5LmZvY3VzKCk7CisKKyAgICAgICAgICAvLyB0ZXN0IGZhaWxzIGlmIGl0
IGNyYXNoZXMgaGVyZQorICAgICAgICAgIHZhciBjb250cm9sID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZm9jdXNlZEVsZW1lbnQuZWxlbWVudEF0UG9pbnQoMTAwLCAxMDApOworICAgIH0KKwor
ICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9
Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="23281"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41838</attachid>
            <date>2009-10-25 20:17:24 -0700</date>
            <delta_ts>2009-10-26 00:23:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4302</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDA0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMTAtMjUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBjcmFzaCB3aXRoIEFYIG9uIHdoZW4gYW4gaW1hZ2UgbWFwIGNvbnRhaW5zIGFuIGFuY2hvciB0
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNzM5
CisKKyAgICAgICAgVGVzdHM6IGFjY2Vzc2liaWxpdHkvY3Jhc2hpbmctYS10YWctaW4tbWFwLmh0
bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRDaGls
ZHJlbik6CisKIDIwMDktMTAtMjUgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9r
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgpJbmRleDogV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkocmV2
aXNpb24gNTAwNDgpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NzYsNyArMjU3Niw3IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkQ2hpbGQKICAgICAgICAgICAgIGZvciAoTm9kZSog
Y3VycmVudCA9IG1hcC0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+
dHJhdmVyc2VOZXh0Tm9kZShtYXApKSB7CiAKICAgICAgICAgICAgICAgICAvLyBhZGQgYW4gPGFy
ZWE+IGVsZW1lbnQgZm9yIHRoaXMgY2hpbGQgaWYgaXQgaGFzIGEgbGluawotICAgICAgICAgICAg
ICAgIGlmIChjdXJyZW50LT5pc0xpbmsoKSkgeworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50
LT5oYXNUYWdOYW1lKGFyZWFUYWcpICYmIGN1cnJlbnQtPmlzTGluaygpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsqIGFyZWFPYmplY3QgPSBzdGF0aWNf
Y2FzdDxBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rKj4obV9yZW5kZXJlci0+ZG9jdW1lbnQoKS0+
YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShJbWFnZU1hcExpbmtSb2xlKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGFyZWFPYmplY3QtPnNldEhUTUxBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQXJlYUVsZW1lbnQqPihjdXJyZW50KSk7CiAgICAgICAgICAgICAgICAgICAgIGFyZWFPYmpl
Y3QtPnNldEhUTUxNYXBFbGVtZW50KG1hcCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MDA0OCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisy
MDA5LTEwLTI1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY3Jhc2ggd2l0aCBBWCBv
biB3aGVuIGFuIGltYWdlIG1hcCBjb250YWlucyBhbiBhbmNob3IgdGFnCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDczOQorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9jcmFzaGluZy1hLXRhZy1pbi1tYXAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2NyYXNoaW5nLWEtdGFnLWluLW1hcC5odG1sOiBBZGRlZC4K
KwogMjAwOS0xMC0yNSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBVbnJldmlld2VkLiBSZWJhc2VsaW5lIHRlc3QgYWZ0
ZXIgNDk5OTguCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NyYXNoaW5nLWEtdGFn
LWluLW1hcC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9jcmFzaGluZy1hLXRhZy1pbi1tYXAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jcmFzaGluZy1hLXRhZy1pbi1tYXAtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACisKK1RoaXMgdGVzdHMgdGhhdCBhIGhp
dCB0ZXN0IG9uIGEgaW1hZ2UgbWFwIHRoYXQgaGFzIGFyZWFzIGFuZCBhbmNob3JzIGRvZXMgbm90
IGNyYXNoCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9jcmFzaGluZy1hLXRhZy1pbi1tYXAuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NyYXNoaW5nLWEtdGFnLWluLW1hcC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jcmFzaGluZy1hLXRhZy1pbi1tYXAu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiBjbGFzcz0iYm9keSI+CisKKzxpbWcg
c3JjPSJyZXNvdXJjZXMvY2FrZS5wbmciIGhlaWdodD0iNTAwIiB3aWR0aD0iNjEzIiBib3JkZXI9
IjAiIHVzZW1hcD0iI2ltZyI+Cis8bWFwIGlkPSJpbWciIG5hbWU9ImltZyI+Cis8YXJlYSBzaGFw
ZT0icmVjdCIgY29vcmRzPSI5Nyw0NSw1LDUiIGhyZWY9InRlc3QuaHRtbCIgYWx0PSIiPgorPGFy
ZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iNDQ3LDQ1LDUsNSIgaHJlZj0idGVzdC5odG1sIj4KKzxh
IGhyZWY9InRlc3QuaHRtbCI+PC9hPgorPGFyZWEgc2hhcGU9ImRlZmF1bHQiIG5vaHJlZj0ibm9o
cmVmIiBhbHQ9IiI+Cis8L21hcD48L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgYSBoaXQgdGVzdCBvbiBhIGltYWdlIG1hcCB0aGF0IGhhcyBhcmVhcyBh
bmQgYW5jaG9ycyBkb2VzIG5vdCBjcmFzaCIpOworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcikgeworCisgICAgICAgICAgdmFyIGJvZHkgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYm9keSIpOworICAgICAgICAgIGJvZHkuZm9jdXMoKTsKKworICAgICAgICAgIC8v
IHRlc3QgZmFpbHMgaWYgaXQgY3Jhc2hlcyBoZXJlCisgICAgICAgICAgdmFyIGNvbnRyb2wgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5lbGVtZW50QXRQb2ludCgxMDAs
IDEwMCk7CisgICAgfQorCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorCis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="23293"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>