<?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>38488</bug_id>
          
          <creation_ts>2010-05-03 14:33:21 -0700</creation_ts>
          <short_desc>Spatial Navigation: create a getter for the &quot;fudgeFactor&quot;</short_desc>
          <delta_ts>2010-05-11 03:21:30 -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>All</op_sys>
          <bug_status>CLOSED</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>35784</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>220291</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-03 14:33:21 -0700</bug_when>
    <thetext>A couple of places in the Spatial Navigation code make use of a &quot;fudge factor&quot; to improve precision by working around outline focus metrics and such.

Currently each function using that has its own fudgeFactor variable declared locally. It makes sense to provide a getter for this so when it is to be changed it needs changing in one place only.

patch coming ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220299</commentid>
    <comment_count>1</comment_count>
      <attachid>54961</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-03 14:46:06 -0700</bug_when>
    <thetext>Created attachment 54961
patch v1

Adds a getter for the &quot;fudgeFactor&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221685</commentid>
    <comment_count>2</comment_count>
      <attachid>54961</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-06 08:00:17 -0700</bug_when>
    <thetext>Comment on attachment 54961
patch v1

WebCore/page/SpatialNavigation.cpp:481
 +      bounds.inflate(-fudgeFactor());
Maybe the minus here needs a comment, and you use it positively elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222512</commentid>
    <comment_count>3</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-07 11:46:24 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 54961 [details])
&gt; WebCore/page/SpatialNavigation.cpp:481
&gt;  +      bounds.inflate(-fudgeFactor());
&gt; Maybe the minus here needs a comment, and you use it positively elsewhere.

In fact, the fudgetFactor is a negative value. See 

+inline int fudgeFactor()
+{
+    return -2;
+}

so in this case, I am really inflating the rect by doing inflate(-1*(-2)) , while in the case of

static void deflateIfOverlapped(IntRect&amp; a, IntRect&amp; b)
{
(..)
-  static const int fudgeFactor = -2;
-
   // Avoid negative width or height values.
-  if ((a.width() + 2 * fudgeFactor &gt; 0) &amp;&amp; (a.height() + 2 * fudgeFactor &gt; 0))
-    a.inflate(fudgeFactor);
+  if ((a.width() + 2 * fudgeFactor() &gt; 0) &amp;&amp; (a.height() + 2 * fudgeFactor() &gt; 0))
+    a.inflate(fudgeFactor());

... I am deflating the rects. Since IntRect has no deflate() method, I do inflate(negative_value).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222547</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-07 12:27:05 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 54961 [details] [details])
&gt; &gt; WebCore/page/SpatialNavigation.cpp:481
&gt; &gt;  +      bounds.inflate(-fudgeFactor());
&gt; &gt; Maybe the minus here needs a comment, and you use it positively elsewhere.
&gt; 
&gt; In fact, the fudgetFactor is a negative value. See 
&gt; 
&gt; +inline int fudgeFactor()
&gt; +{
&gt; +    return -2;
&gt; +}
&gt; 
&gt; so in this case, I am really inflating the rect by doing inflate(-1*(-2)) ,
&gt; while in the case of
&gt; 
&gt; static void deflateIfOverlapped(IntRect&amp; a, IntRect&amp; b)
&gt; {
&gt; (..)
&gt; -  static const int fudgeFactor = -2;
&gt; -
&gt;    // Avoid negative width or height values.
&gt; -  if ((a.width() + 2 * fudgeFactor &gt; 0) &amp;&amp; (a.height() + 2 * fudgeFactor &gt; 0))
&gt; -    a.inflate(fudgeFactor);
&gt; +  if ((a.width() + 2 * fudgeFactor() &gt; 0) &amp;&amp; (a.height() + 2 * fudgeFactor() &gt;
&gt; 0))
&gt; +    a.inflate(fudgeFactor());
&gt; 
&gt; ... I am deflating the rects. Since IntRect has no deflate() method, I do
&gt; inflate(negative_value).

I would prefer you using a positive fudgeFactor (btw that is not really a factor, but a constant) and add the minuses in the code itself. You could even make fudgeFactor return a unsigned int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222563</commentid>
    <comment_count>5</comment_count>
      <attachid>55409</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-07 12:49:40 -0700</bug_when>
    <thetext>Created attachment 55409
patch v2


&gt; I would prefer you using a positive fudgeFactor (btw that is not really a
&gt; factor, but a constant) and add the minuses in the code itself. You could even
&gt; make fudgeFactor return a unsigned int.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222732</commentid>
    <comment_count>6</comment_count>
      <attachid>55443</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-07 17:48:54 -0700</bug_when>
    <thetext>Created attachment 55443
(committed with r59045, reviewed by Kenneth) patch v2.1 - same as v2, but fixing a minor

Patch 55409 (v2) was doing a assignment of a negative value to a unsigned int variable. patch 2.1 fixes that. Other than that it is the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222735</commentid>
    <comment_count>7</comment_count>
      <attachid>55443</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-07 17:58:00 -0700</bug_when>
    <thetext>Comment on attachment 55443
(committed with r59045, reviewed by Kenneth) patch v2.1 - same as v2, but fixing a minor

r=me, though I would still prefer another name, it is not a factor as you are not really multiplying with it, but just doing inflate/deflate. Maybe fudgeThickness?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222776</commentid>
    <comment_count>8</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-07 20:32:21 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 55443 [details])
&gt; r=me, though I would still prefer another name, it is not a factor as you are
&gt; not really multiplying with it, but just doing inflate/deflate. Maybe
&gt; fudgeThickness?

Hi Kenne, thank you for looking at the patch. 

fudgeThickness works for me here , but the expression/term &quot;fudge factor&quot; is being used in many other parts of WebCore with the same meaning. I&apos;d rather like to keep it, unless you really think it needs change.

$ grep -nHRi fudge WebCore/ --exclude=*ChangeLog*
- WebCore/rendering/RenderLayer.cpp:3085:        result.inflate(view-&gt;maximalOutlineSize()); // Used to apply a fudge factor to dirty-rect checks on blocks/tables.
- WebCore/rendering/RenderView.h:190:    int m_maximalOutlineSize; // Used to apply a fudge factor to dirty-rect checks on blocks/tables.
- WebCore/rendering/RenderBlock.cpp:56:// Number of pixels to allow as a fudge factor when clicking above or below a line.
- WebCore/rendering/RenderBlock.cpp:57:// clicking up to verticalLineClickFudgeFactor pixels above a line will correspond to the closest point on the line.   
- WebCore/rendering/RenderBlock.cpp:58:static const int verticalLineClickFudgeFactor = 3;


$ grep -nHRi fudge WebKit --exclude=*ChangeLog*
- WebKit/mac/WebView/WebView.mm:5073:    // As a fudge factor, use 1000 instead of 1024, in case the reported byte</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222888</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-08 08:32:26 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 55443 [details] [details])
&gt; &gt; r=me, though I would still prefer another name, it is not a factor as you are
&gt; &gt; not really multiplying with it, but just doing inflate/deflate. Maybe
&gt; &gt; fudgeThickness?
&gt; 
&gt; Hi Kenne, thank you for looking at the patch. 
&gt; 
&gt; fudgeThickness works for me here , but the expression/term &quot;fudge factor&quot; is
&gt; being used in many other parts of WebCore with the same meaning. I&apos;d rather
&gt; like to keep it, unless you really think it needs change.

OK fine, it is already r+ :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222960</commentid>
    <comment_count>10</comment_count>
      <attachid>55443</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-08 20:32:18 -0700</bug_when>
    <thetext>Comment on attachment 55443
(committed with r59045, reviewed by Kenneth) patch v2.1 - same as v2, but fixing a minor

Clearing flags on attachment: 55443

Committed r59045: &lt;http://trac.webkit.org/changeset/r59045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223847</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-05-11 03:21:08 -0700</bug_when>
    <thetext>Revision r59045 cherry-picked into qtwebkit-2.0 with commit 836023e07365d07b7ab58a161939184e46375368</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54961</attachid>
            <date>2010-05-03 14:46:06 -0700</date>
            <delta_ts>2010-05-07 12:49:40 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>0001-Spatial-Navigation-create-a-getter-for-the-fudgeFa.patch</filename>
            <type>text/plain</type>
            <size>4684</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA5NjcyOTRiYzE1MWNjNWZiYTEzYTNhYWU0OTZmZDg5ZjUwNTdhZGNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogTW9uLCAzIE1heSAyMDEwIDE3OjQxOjQxIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gU3Bh
dGlhbCBOYXZpZ2F0aW9uOiBjcmVhdGUgYSBnZXR0ZXIgZm9yIHRoZSAiZnVkZ2VGYWN0b3IiCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg0ODgKClJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0
Lm9yZz4KCkEgY291cGxlIG9mIHBsYWNlcyBpbiB0aGUgU3BhdGlhbCBOYXZpZ2F0aW9uIGNvZGUg
bWFrZSB1c2Ugb2YgYSAiZnVkZ2UgZmFjdG9yIgp0byBpbXByb3ZlIHByZWNpc2lvbiBieSB3b3Jr
aW5nIGFyb3VuZCBvdXRsaW5lIGZvY3VzIG1ldHJpY3MgYW5kIHN1Y2guIFBhdGNoIGFkZHMKYSBo
ZWxwZXIgbWV0aG9kIGZvciB1bmlmeSBnZXR0ZXIgb3BlcmF0aW9ucyBvZiB0aGlzIHZhbHVlLCBp
bnN0ZWFkIG9mIGhhdmluZyBpdApkZWNsYXJlZCBsb2NhbGx5IGluIHRoZSB2YXJpb3VzIG1ldGhv
ZHMgaXQgaXMgdXNlZC4KCk5vIGJlaGF2aW91ciBjaGFuZ2UuCgoqIHBhZ2UvU3BhdGlhbE5hdmln
YXRpb24uY3BwOgooV2ViQ29yZTo6c2Nyb2xsSW50b1ZpZXcpOgooV2ViQ29yZTo6ZGVmbGF0ZUlm
T3ZlcmxhcHBlZCk6CiogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oOgooV2ViQ29yZTo6ZnVkZ2VG
YWN0b3IpOgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggY2JkZTk0YS4uOTIzNjNmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsOCArMSwyOCBAQAorMjAxMC0wNS0wMyAgQW50
b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwYXRpYWwgTmF2aWdhdGlvbjogY3JlYXRlIGEg
Z2V0dGVyIGZvciB0aGUgImZ1ZGdlRmFjdG9yIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg0ODgKKworICAgICAgICBBIGNvdXBsZSBvZiBwbGFjZXMg
aW4gdGhlIFNwYXRpYWwgTmF2aWdhdGlvbiBjb2RlIG1ha2UgdXNlIG9mIGEgImZ1ZGdlIGZhY3Rv
ciIKKyAgICAgICAgdG8gaW1wcm92ZSBwcmVjaXNpb24gYnkgd29ya2luZyBhcm91bmQgb3V0bGlu
ZSBmb2N1cyBtZXRyaWNzIGFuZCBzdWNoLiBQYXRjaCBhZGRzCisgICAgICAgIGEgaGVscGVyIG1l
dGhvZCBmb3IgdW5pZnkgZ2V0dGVyIG9wZXJhdGlvbnMgb2YgdGhpcyB2YWx1ZSwgaW5zdGVhZCBv
ZiBoYXZpbmcgaXQKKyAgICAgICAgZGVjbGFyZWQgbG9jYWxseSBpbiB0aGUgdmFyaW91cyBtZXRo
b2RzIGl0IGlzIHVzZWQuCisKKyAgICAgICAgTm8gYmVoYXZpb3VyIGNoYW5nZS4KKworICAgICAg
ICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xs
SW50b1ZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmbGF0ZUlmT3ZlcmxhcHBlZCk6CisgICAg
ICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6ZnVkZ2VG
YWN0b3IpOgorCiAyMDEwLTA1LTAyICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgU3Bh
dGlhbCBOYXZpZ2F0aW9uOiB1c2UgYSBzdGF0aWMgdmFyIGluIG1heERpc3RhbmNlIG1ldGhvZCAo
IFNwYXRpYWxOYXZpZ2F0aW9uLmggKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzc2MzMKIAogICAgICAgICBUaGlzIHZhbHVlIHdpbGwgbm90IGNoYW5n
ZSwgc28ga2VlcCBpdCBpbiBhIHN0YXRpYyBsb2NhbCB2YXIuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0
aW9uLmNwcAppbmRleCA4OTBlYWNkLi5lNWVlNmY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlv
bi5jcHAKQEAgLTQ3MiwxOSArNDcyLDE4IEBAIGJvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUq
IGZyYW1lLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB9CiAKIHZvaWQgc2Nyb2xsSW50b1Zp
ZXcoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICAvLyBOT1RFOiBFbGVtZW50J3Mgc2Nyb2xsSW50
b1ZpZXcgbWV0aG9kIGNvdWxkIGhhZCBiZWVuIHVzZWQgaGVyZSwgYnV0CiAgICAgLy8gaXQgaXMg
cHJlZmVyYWJsZSB0byBpbmZsYXRlIHxlbGVtZW50fCdzIGJvdW5kaW5nIHJlY3QgYSBiaXQgYmVm
b3JlCiAgICAgLy8gc2Nyb2xsaW5nIGl0IGZvciBhY2N1cmF0ZSByZWFzb24uCiAgICAgLy8gRWxl
bWVudCdzIHNjcm9sbEludG9WaWV3IG1ldGhvZCBkb2VzIG5vdCBwcm92aWRlIHRoaXMgZmxleGli
aWxpdHkuCi0gICAgc3RhdGljIGNvbnN0IGludCBmdWRnZUZhY3RvciA9IDI7CiAgICAgSW50UmVj
dCBib3VuZHMgPSBlbGVtZW50LT5nZXRSZWN0KCk7Ci0gICAgYm91bmRzLmluZmxhdGUoZnVkZ2VG
YWN0b3IpOworICAgIGJvdW5kcy5pbmZsYXRlKC1mdWRnZUZhY3RvcigpKTsKICAgICBlbGVtZW50
LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKGJvdW5k
cyk7CiB9CiAKIGJvb2wgaXNJblJvb3REb2N1bWVudChOb2RlKiBub2RlKQogewogICAgIGlmICgh
bm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC00OTIsMjQgKzQ5MSwyMiBAQCBib29s
IGlzSW5Sb290RG9jdW1lbnQoTm9kZSogbm9kZSkKICAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQo
KSA9PSByb290RG9jdW1lbnQ7CiB9CiAKIHN0YXRpYyB2b2lkIGRlZmxhdGVJZk92ZXJsYXBwZWQo
SW50UmVjdCYgYSwgSW50UmVjdCYgYikKIHsKICAgICBpZiAoIWEuaW50ZXJzZWN0cyhiKSB8fCBh
LmNvbnRhaW5zKGIpIHx8IGIuY29udGFpbnMoYSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN0
YXRpYyBjb25zdCBpbnQgZnVkZ2VGYWN0b3IgPSAtMjsKLQogICAgIC8vIEF2b2lkIG5lZ2F0aXZl
IHdpZHRoIG9yIGhlaWdodCB2YWx1ZXMuCi0gICAgaWYgKChhLndpZHRoKCkgKyAyICogZnVkZ2VG
YWN0b3IgPiAwKSAmJiAoYS5oZWlnaHQoKSArIDIgKiBmdWRnZUZhY3RvciA+IDApKQotICAgICAg
ICBhLmluZmxhdGUoZnVkZ2VGYWN0b3IpOworICAgIGlmICgoYS53aWR0aCgpICsgMiAqIGZ1ZGdl
RmFjdG9yKCkgPiAwKSAmJiAoYS5oZWlnaHQoKSArIDIgKiBmdWRnZUZhY3RvcigpID4gMCkpCisg
ICAgICAgIGEuaW5mbGF0ZShmdWRnZUZhY3RvcigpKTsKIAotICAgIGlmICgoYi53aWR0aCgpICsg
MiAqIGZ1ZGdlRmFjdG9yID4gMCkgJiYgKGIuaGVpZ2h0KCkgKyAyICogZnVkZ2VGYWN0b3IgPiAw
KSkKLSAgICAgICAgYi5pbmZsYXRlKGZ1ZGdlRmFjdG9yKTsKKyAgICBpZiAoKGIud2lkdGgoKSAr
IDIgKiBmdWRnZUZhY3RvcigpID4gMCkgJiYgKGIuaGVpZ2h0KCkgKyAyICogZnVkZ2VGYWN0b3Io
KSA+IDApKQorICAgICAgICBiLmluZmxhdGUoZnVkZ2VGYWN0b3IoKSk7CiB9CiAKIHN0YXRpYyBi
b29sIGNoZWNrTmVnYXRpdmVDb29yZHNGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IEludFJlY3Qm
IGN1clJlY3QpCiB7CiAgICAgQVNTRVJUKG5vZGUgfHwgbm9kZS0+cmVuZGVyZXIoKSk7CiAKICAg
ICBpZiAoY3VyUmVjdC54KCkgPiAwICYmIGN1clJlY3QueSgpID4gMCkKICAgICAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCBiL1dl
YkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCmluZGV4IDhiMzI2MWYuLmRmMGFjYjQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCisrKyBiL1dlYkNvcmUv
cGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCkBAIC0zNiwxNiArMzYsMjEgQEAgY2xhc3MgUmVuZGVy
T2JqZWN0OwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogaW5saW5lIGxvbmcgbG9uZyBtYXhEaXN0
YW5jZSgpCiB7CiAgICAgc3RhdGljIGxvbmcgbG9uZyBtYXggPSBudW1lcmljX2xpbWl0czxsb25n
IGxvbmc+OjptYXgoKTsKICAgICByZXR1cm4gbWF4OwogfQogCitpbmxpbmUgaW50IGZ1ZGdlRmFj
dG9yKCkKK3sKKyAgICByZXR1cm4gLTI7Cit9CisKIC8vIFNwYXRpYWxseSBzcGVha2luZywgdHdv
IGdpdmVuIGVsZW1lbnRzIGluIGEgd2ViIHBhZ2UgY2FuIGJlOgogLy8gMSkgRnVsbHkgYWxpZ25l
ZDogVGhlcmUgaXMgYSBmdWxsIGludGVyc2VjdGlvbiBiZXR3ZWVuIHRoZSByZWN0cywgZWl0aGVy
CiAvLyAgICB2ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseS4KIC8vCiAvLyAqIEhvcml6b250YWxs
eSAgICAgICAqIFZlcnRpY2FsbHkKIC8vICAgIF8KIC8vICAgfF98ICAgICAgICAgICAgICAgICAg
IF8gXyBfIF8gXyBfCiAvLyAgIHxffC4uLi4uLiBfICAgICAgICAgIHxffF98X3xffF98X3wKLS0g
CjEuNi4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55409</attachid>
            <date>2010-05-07 12:49:40 -0700</date>
            <delta_ts>2010-05-07 17:48:54 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>0001-Spatial-Navigation-create-a-getter-for-the-fudgeFact.patch</filename>
            <type>text/plain</type>
            <size>4966</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA3MDk4YWVlMDVhMGZkNjczOTQ3MDNiMzdhYzFmZWNmYThhZTVjZjBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogTW9uLCAzIE1heSAyMDEwIDE3OjQxOjQxIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gU3Bh
dGlhbCBOYXZpZ2F0aW9uOiBjcmVhdGUgYSBnZXR0ZXIgZm9yIHRoZSAiZnVkZ2VGYWN0b3IiCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg0ODgKClJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0
Lm9yZz4KCkEgY291cGxlIG9mIHBsYWNlcyBpbiB0aGUgU3BhdGlhbCBOYXZpZ2F0aW9uIGNvZGUg
bWFrZSB1c2Ugb2YgYSAiZnVkZ2UgZmFjdG9yIgp0byBpbXByb3ZlIHByZWNpc2lvbiBieSB3b3Jr
aW5nIGFyb3VuZCBvdXRsaW5lIGZvY3VzIG1ldHJpY3MgYW5kIHN1Y2guIFBhdGNoIGFkZHMKYSBo
ZWxwZXIgbWV0aG9kIGZvciB1bmlmeSBnZXR0ZXIgb3BlcmF0aW9ucyBvZiB0aGlzIHZhbHVlLCBp
bnN0ZWFkIG9mIGhhdmluZyBpdApkZWNsYXJlZCBsb2NhbGx5IGluIHRoZSB2YXJpb3VzIG1ldGhv
ZHMgaXQgaXMgdXNlZC4KCk5vIGJlaGF2aW91ciBjaGFuZ2UuCgoqIHBhZ2UvU3BhdGlhbE5hdmln
YXRpb24uY3BwOgooV2ViQ29yZTo6c2Nyb2xsSW50b1ZpZXcpOgooV2ViQ29yZTo6ZGVmbGF0ZUlm
T3ZlcmxhcHBlZCk6CiogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oOgooV2ViQ29yZTo6ZnVkZ2VG
YWN0b3IpOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgfCAgIDIwICsr
KysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIHwg
ICAxMyArKysrKystLS0tLS0tCiBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCAgIHwg
ICAgNSArKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYjgxNzI4NC4uZDkxYjNkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsOCArMSwyOCBAQAorMjAxMC0wNS0wMyAgQW50b25p
byBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwYXRpYWwgTmF2aWdhdGlvbjogY3JlYXRlIGEgZ2V0
dGVyIGZvciB0aGUgImZ1ZGdlRmFjdG9yIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzg0ODgKKworICAgICAgICBBIGNvdXBsZSBvZiBwbGFjZXMgaW4g
dGhlIFNwYXRpYWwgTmF2aWdhdGlvbiBjb2RlIG1ha2UgdXNlIG9mIGEgImZ1ZGdlIGZhY3RvciIK
KyAgICAgICAgdG8gaW1wcm92ZSBwcmVjaXNpb24gYnkgd29ya2luZyBhcm91bmQgb3V0bGluZSBm
b2N1cyBtZXRyaWNzIGFuZCBzdWNoLiBQYXRjaCBhZGRzCisgICAgICAgIGEgaGVscGVyIG1ldGhv
ZCBmb3IgdW5pZnkgZ2V0dGVyIG9wZXJhdGlvbnMgb2YgdGhpcyB2YWx1ZSwgaW5zdGVhZCBvZiBo
YXZpbmcgaXQKKyAgICAgICAgZGVjbGFyZWQgbG9jYWxseSBpbiB0aGUgdmFyaW91cyBtZXRob2Rz
IGl0IGlzIHVzZWQuCisKKyAgICAgICAgTm8gYmVoYXZpb3VyIGNoYW5nZS4KKworICAgICAgICAq
IHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsSW50
b1ZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmbGF0ZUlmT3ZlcmxhcHBlZCk6CisgICAgICAg
ICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6ZnVkZ2VGYWN0
b3IpOgorCiAyMDEwLTA1LTAyICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgU3BhdGlh
bCBOYXZpZ2F0aW9uOiB1c2UgYSBzdGF0aWMgdmFyIGluIG1heERpc3RhbmNlIG1ldGhvZCAoIFNw
YXRpYWxOYXZpZ2F0aW9uLmggKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzc2MzMKIAogICAgICAgICBUaGlzIHZhbHVlIHdpbGwgbm90IGNoYW5nZSwg
c28ga2VlcCBpdCBpbiBhIHN0YXRpYyBsb2NhbCB2YXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmNwcAppbmRleCA4OTBlYWNkLi5hMjQwMTk1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5j
cHAKQEAgLTQ3MiwxOSArNDcyLDE4IEBAIGJvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUqIGZy
YW1lLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB9CiAKIHZvaWQgc2Nyb2xsSW50b1ZpZXco
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICAvLyBOT1RFOiBFbGVtZW50J3Mgc2Nyb2xsSW50b1Zp
ZXcgbWV0aG9kIGNvdWxkIGhhZCBiZWVuIHVzZWQgaGVyZSwgYnV0CiAgICAgLy8gaXQgaXMgcHJl
ZmVyYWJsZSB0byBpbmZsYXRlIHxlbGVtZW50fCdzIGJvdW5kaW5nIHJlY3QgYSBiaXQgYmVmb3Jl
CiAgICAgLy8gc2Nyb2xsaW5nIGl0IGZvciBhY2N1cmF0ZSByZWFzb24uCiAgICAgLy8gRWxlbWVu
dCdzIHNjcm9sbEludG9WaWV3IG1ldGhvZCBkb2VzIG5vdCBwcm92aWRlIHRoaXMgZmxleGliaWxp
dHkuCi0gICAgc3RhdGljIGNvbnN0IGludCBmdWRnZUZhY3RvciA9IDI7CiAgICAgSW50UmVjdCBi
b3VuZHMgPSBlbGVtZW50LT5nZXRSZWN0KCk7Ci0gICAgYm91bmRzLmluZmxhdGUoZnVkZ2VGYWN0
b3IpOworICAgIGJvdW5kcy5pbmZsYXRlKGZ1ZGdlRmFjdG9yKCkpOwogICAgIGVsZW1lbnQtPnJl
bmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYm91bmRzKTsK
IH0KIAogYm9vbCBpc0luUm9vdERvY3VtZW50KE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKCFub2Rl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTQ5MiwyNCArNDkxLDI0IEBAIGJvb2wgaXNJ
blJvb3REb2N1bWVudChOb2RlKiBub2RlKQogICAgIHJldHVybiBub2RlLT5kb2N1bWVudCgpID09
IHJvb3REb2N1bWVudDsKIH0KIAogc3RhdGljIHZvaWQgZGVmbGF0ZUlmT3ZlcmxhcHBlZChJbnRS
ZWN0JiBhLCBJbnRSZWN0JiBiKQogewogICAgIGlmICghYS5pbnRlcnNlY3RzKGIpIHx8IGEuY29u
dGFpbnMoYikgfHwgYi5jb250YWlucyhhKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhdGlj
IGNvbnN0IGludCBmdWRnZUZhY3RvciA9IC0yOworICAgIHVuc2lnbmVkIGludCBkZWZsYXRlRmFj
dG9yID0gLWZ1ZGdlRmFjdG9yKCk7CiAKICAgICAvLyBBdm9pZCBuZWdhdGl2ZSB3aWR0aCBvciBo
ZWlnaHQgdmFsdWVzLgotICAgIGlmICgoYS53aWR0aCgpICsgMiAqIGZ1ZGdlRmFjdG9yID4gMCkg
JiYgKGEuaGVpZ2h0KCkgKyAyICogZnVkZ2VGYWN0b3IgPiAwKSkKLSAgICAgICAgYS5pbmZsYXRl
KGZ1ZGdlRmFjdG9yKTsKKyAgICBpZiAoKGEud2lkdGgoKSArIDIgKiBkZWZsYXRlRmFjdG9yID4g
MCkgJiYgKGEuaGVpZ2h0KCkgKyAyICogZGVmbGF0ZUZhY3RvciA+IDApKQorICAgICAgICBhLmlu
ZmxhdGUoZGVmbGF0ZUZhY3Rvcik7CiAKLSAgICBpZiAoKGIud2lkdGgoKSArIDIgKiBmdWRnZUZh
Y3RvciA+IDApICYmIChiLmhlaWdodCgpICsgMiAqIGZ1ZGdlRmFjdG9yID4gMCkpCi0gICAgICAg
IGIuaW5mbGF0ZShmdWRnZUZhY3Rvcik7CisgICAgaWYgKChiLndpZHRoKCkgKyAyICogZGVmbGF0
ZUZhY3RvciA+IDApICYmIChiLmhlaWdodCgpICsgMiAqIGRlZmxhdGVGYWN0b3IgPiAwKSkKKyAg
ICAgICAgYi5pbmZsYXRlKGRlZmxhdGVGYWN0b3IpOwogfQogCiBzdGF0aWMgYm9vbCBjaGVja05l
Z2F0aXZlQ29vcmRzRm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBJbnRSZWN0JiBjdXJSZWN0KQog
ewogICAgIEFTU0VSVChub2RlIHx8IG5vZGUtPnJlbmRlcmVyKCkpOwogCiAgICAgaWYgKGN1clJl
Y3QueCgpID4gMCAmJiBjdXJSZWN0LnkoKSA+IDApCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmggYi9XZWJDb3JlL3BhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uaAppbmRleCA4YjMyNjFmLi4xMmNiYTc1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaAorKysgYi9XZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uaApAQCAtMzYsMTYgKzM2LDIxIEBAIGNsYXNzIFJlbmRlck9iamVjdDsKIHVz
aW5nIG5hbWVzcGFjZSBzdGQ7CiAKIGlubGluZSBsb25nIGxvbmcgbWF4RGlzdGFuY2UoKQogewog
ICAgIHN0YXRpYyBsb25nIGxvbmcgbWF4ID0gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4
KCk7CiAgICAgcmV0dXJuIG1heDsKIH0KIAoraW5saW5lIHVuc2lnbmVkIGludCBmdWRnZUZhY3Rv
cigpCit7CisgICAgcmV0dXJuIDI7Cit9CisKIC8vIFNwYXRpYWxseSBzcGVha2luZywgdHdvIGdp
dmVuIGVsZW1lbnRzIGluIGEgd2ViIHBhZ2UgY2FuIGJlOgogLy8gMSkgRnVsbHkgYWxpZ25lZDog
VGhlcmUgaXMgYSBmdWxsIGludGVyc2VjdGlvbiBiZXR3ZWVuIHRoZSByZWN0cywgZWl0aGVyCiAv
LyAgICB2ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseS4KIC8vCiAvLyAqIEhvcml6b250YWxseSAg
ICAgICAqIFZlcnRpY2FsbHkKIC8vICAgIF8KIC8vICAgfF98ICAgICAgICAgICAgICAgICAgIF8g
XyBfIF8gXyBfCiAvLyAgIHxffC4uLi4uLiBfICAgICAgICAgIHxffF98X3xffF98X3wKLS0gCjEu
Ni4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55443</attachid>
            <date>2010-05-07 17:48:54 -0700</date>
            <delta_ts>2010-05-08 20:32:17 -0700</delta_ts>
            <desc>(committed with r59045, reviewed by Kenneth) patch v2.1 - same as v2, but fixing a minor</desc>
            <filename>0001-Spatial-Navigation-create-a-getter-for-the-fudgeFact.patch</filename>
            <type>text/plain</type>
            <size>4957</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAwM2UzYWZmZjBlYzgyNjRmZjMzNGU2YTJlMzliYTQzNmQwOWYxZThiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogTW9uLCAzIE1heSAyMDEwIDE3OjQxOjQxIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gU3Bh
dGlhbCBOYXZpZ2F0aW9uOiBjcmVhdGUgYSBnZXR0ZXIgZm9yIHRoZSAiZnVkZ2VGYWN0b3IiCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg0ODgKClJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0
Lm9yZz4KCkEgY291cGxlIG9mIHBsYWNlcyBpbiB0aGUgU3BhdGlhbCBOYXZpZ2F0aW9uIGNvZGUg
bWFrZSB1c2Ugb2YgYSAiZnVkZ2UgZmFjdG9yIgp0byBpbXByb3ZlIHByZWNpc2lvbiBieSB3b3Jr
aW5nIGFyb3VuZCBvdXRsaW5lIGZvY3VzIG1ldHJpY3MgYW5kIHN1Y2guIFBhdGNoIGFkZHMKYSBo
ZWxwZXIgbWV0aG9kIGZvciB1bmlmeSBnZXR0ZXIgb3BlcmF0aW9ucyBvZiB0aGlzIHZhbHVlLCBp
bnN0ZWFkIG9mIGhhdmluZyBpdApkZWNsYXJlZCBsb2NhbGx5IGluIHRoZSB2YXJpb3VzIG1ldGhv
ZHMgaXQgaXMgdXNlZC4KCk5vIGJlaGF2aW91ciBjaGFuZ2UuCgoqIHBhZ2UvU3BhdGlhbE5hdmln
YXRpb24uY3BwOgooV2ViQ29yZTo6c2Nyb2xsSW50b1ZpZXcpOgooV2ViQ29yZTo6ZGVmbGF0ZUlm
T3ZlcmxhcHBlZCk6CiogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oOgooV2ViQ29yZTo6ZnVkZ2VG
YWN0b3IpOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgfCAgIDIwICsr
KysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIHwg
ICAxMyArKysrKystLS0tLS0tCiBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCAgIHwg
ICAgNSArKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYjgxNzI4NC4uZDkxYjNkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsOCArMSwyOCBAQAorMjAxMC0wNS0wMyAgQW50b25p
byBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwYXRpYWwgTmF2aWdhdGlvbjogY3JlYXRlIGEgZ2V0
dGVyIGZvciB0aGUgImZ1ZGdlRmFjdG9yIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzg0ODgKKworICAgICAgICBBIGNvdXBsZSBvZiBwbGFjZXMgaW4g
dGhlIFNwYXRpYWwgTmF2aWdhdGlvbiBjb2RlIG1ha2UgdXNlIG9mIGEgImZ1ZGdlIGZhY3RvciIK
KyAgICAgICAgdG8gaW1wcm92ZSBwcmVjaXNpb24gYnkgd29ya2luZyBhcm91bmQgb3V0bGluZSBm
b2N1cyBtZXRyaWNzIGFuZCBzdWNoLiBQYXRjaCBhZGRzCisgICAgICAgIGEgaGVscGVyIG1ldGhv
ZCBmb3IgdW5pZnkgZ2V0dGVyIG9wZXJhdGlvbnMgb2YgdGhpcyB2YWx1ZSwgaW5zdGVhZCBvZiBo
YXZpbmcgaXQKKyAgICAgICAgZGVjbGFyZWQgbG9jYWxseSBpbiB0aGUgdmFyaW91cyBtZXRob2Rz
IGl0IGlzIHVzZWQuCisKKyAgICAgICAgTm8gYmVoYXZpb3VyIGNoYW5nZS4KKworICAgICAgICAq
IHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsSW50
b1ZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmbGF0ZUlmT3ZlcmxhcHBlZCk6CisgICAgICAg
ICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6ZnVkZ2VGYWN0
b3IpOgorCiAyMDEwLTA1LTAyICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgU3BhdGlh
bCBOYXZpZ2F0aW9uOiB1c2UgYSBzdGF0aWMgdmFyIGluIG1heERpc3RhbmNlIG1ldGhvZCAoIFNw
YXRpYWxOYXZpZ2F0aW9uLmggKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzc2MzMKIAogICAgICAgICBUaGlzIHZhbHVlIHdpbGwgbm90IGNoYW5nZSwg
c28ga2VlcCBpdCBpbiBhIHN0YXRpYyBsb2NhbCB2YXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmNwcAppbmRleCA4OTBlYWNkLi5kN2VhZjI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5j
cHAKQEAgLTQ3MiwxOSArNDcyLDE4IEBAIGJvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUqIGZy
YW1lLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB9CiAKIHZvaWQgc2Nyb2xsSW50b1ZpZXco
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICAvLyBOT1RFOiBFbGVtZW50J3Mgc2Nyb2xsSW50b1Zp
ZXcgbWV0aG9kIGNvdWxkIGhhZCBiZWVuIHVzZWQgaGVyZSwgYnV0CiAgICAgLy8gaXQgaXMgcHJl
ZmVyYWJsZSB0byBpbmZsYXRlIHxlbGVtZW50fCdzIGJvdW5kaW5nIHJlY3QgYSBiaXQgYmVmb3Jl
CiAgICAgLy8gc2Nyb2xsaW5nIGl0IGZvciBhY2N1cmF0ZSByZWFzb24uCiAgICAgLy8gRWxlbWVu
dCdzIHNjcm9sbEludG9WaWV3IG1ldGhvZCBkb2VzIG5vdCBwcm92aWRlIHRoaXMgZmxleGliaWxp
dHkuCi0gICAgc3RhdGljIGNvbnN0IGludCBmdWRnZUZhY3RvciA9IDI7CiAgICAgSW50UmVjdCBi
b3VuZHMgPSBlbGVtZW50LT5nZXRSZWN0KCk7Ci0gICAgYm91bmRzLmluZmxhdGUoZnVkZ2VGYWN0
b3IpOworICAgIGJvdW5kcy5pbmZsYXRlKGZ1ZGdlRmFjdG9yKCkpOwogICAgIGVsZW1lbnQtPnJl
bmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYm91bmRzKTsK
IH0KIAogYm9vbCBpc0luUm9vdERvY3VtZW50KE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKCFub2Rl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTQ5MiwyNCArNDkxLDI0IEBAIGJvb2wgaXNJ
blJvb3REb2N1bWVudChOb2RlKiBub2RlKQogICAgIHJldHVybiBub2RlLT5kb2N1bWVudCgpID09
IHJvb3REb2N1bWVudDsKIH0KIAogc3RhdGljIHZvaWQgZGVmbGF0ZUlmT3ZlcmxhcHBlZChJbnRS
ZWN0JiBhLCBJbnRSZWN0JiBiKQogewogICAgIGlmICghYS5pbnRlcnNlY3RzKGIpIHx8IGEuY29u
dGFpbnMoYikgfHwgYi5jb250YWlucyhhKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhdGlj
IGNvbnN0IGludCBmdWRnZUZhY3RvciA9IC0yOworICAgIGludCBkZWZsYXRlRmFjdG9yID0gLWZ1
ZGdlRmFjdG9yKCk7CiAKICAgICAvLyBBdm9pZCBuZWdhdGl2ZSB3aWR0aCBvciBoZWlnaHQgdmFs
dWVzLgotICAgIGlmICgoYS53aWR0aCgpICsgMiAqIGZ1ZGdlRmFjdG9yID4gMCkgJiYgKGEuaGVp
Z2h0KCkgKyAyICogZnVkZ2VGYWN0b3IgPiAwKSkKLSAgICAgICAgYS5pbmZsYXRlKGZ1ZGdlRmFj
dG9yKTsKKyAgICBpZiAoKGEud2lkdGgoKSArIDIgKiBkZWZsYXRlRmFjdG9yID4gMCkgJiYgKGEu
aGVpZ2h0KCkgKyAyICogZGVmbGF0ZUZhY3RvciA+IDApKQorICAgICAgICBhLmluZmxhdGUoZGVm
bGF0ZUZhY3Rvcik7CiAKLSAgICBpZiAoKGIud2lkdGgoKSArIDIgKiBmdWRnZUZhY3RvciA+IDAp
ICYmIChiLmhlaWdodCgpICsgMiAqIGZ1ZGdlRmFjdG9yID4gMCkpCi0gICAgICAgIGIuaW5mbGF0
ZShmdWRnZUZhY3Rvcik7CisgICAgaWYgKChiLndpZHRoKCkgKyAyICogZGVmbGF0ZUZhY3RvciA+
IDApICYmIChiLmhlaWdodCgpICsgMiAqIGRlZmxhdGVGYWN0b3IgPiAwKSkKKyAgICAgICAgYi5p
bmZsYXRlKGRlZmxhdGVGYWN0b3IpOwogfQogCiBzdGF0aWMgYm9vbCBjaGVja05lZ2F0aXZlQ29v
cmRzRm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBJbnRSZWN0JiBjdXJSZWN0KQogewogICAgIEFT
U0VSVChub2RlIHx8IG5vZGUtPnJlbmRlcmVyKCkpOwogCiAgICAgaWYgKGN1clJlY3QueCgpID4g
MCAmJiBjdXJSZWN0LnkoKSA+IDApCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmggYi9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5h
dmlnYXRpb24uaAppbmRleCA4YjMyNjFmLi4xMmNiYTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uaAorKysgYi9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRp
b24uaApAQCAtMzYsMTYgKzM2LDIxIEBAIGNsYXNzIFJlbmRlck9iamVjdDsKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKIGlubGluZSBsb25nIGxvbmcgbWF4RGlzdGFuY2UoKQogewogICAgIHN0YXRp
YyBsb25nIGxvbmcgbWF4ID0gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7CiAgICAg
cmV0dXJuIG1heDsKIH0KIAoraW5saW5lIHVuc2lnbmVkIGludCBmdWRnZUZhY3RvcigpCit7Cisg
ICAgcmV0dXJuIDI7Cit9CisKIC8vIFNwYXRpYWxseSBzcGVha2luZywgdHdvIGdpdmVuIGVsZW1l
bnRzIGluIGEgd2ViIHBhZ2UgY2FuIGJlOgogLy8gMSkgRnVsbHkgYWxpZ25lZDogVGhlcmUgaXMg
YSBmdWxsIGludGVyc2VjdGlvbiBiZXR3ZWVuIHRoZSByZWN0cywgZWl0aGVyCiAvLyAgICB2ZXJ0
aWNhbGx5IG9yIGhvcml6b250YWxseS4KIC8vCiAvLyAqIEhvcml6b250YWxseSAgICAgICAqIFZl
cnRpY2FsbHkKIC8vICAgIF8KIC8vICAgfF98ICAgICAgICAgICAgICAgICAgIF8gXyBfIF8gXyBf
CiAvLyAgIHxffC4uLi4uLiBfICAgICAgICAgIHxffF98X3xffF98X3wKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>