<?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>24854</bug_id>
          
          <creation_ts>2009-03-26 13:44:07 -0700</creation_ts>
          <short_desc>Rename PositionIterator members in hope of further clarity</short_desc>
          <delta_ts>2009-06-02 16:10:11 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>darin</cc>
    
    <cc>justin.garcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>115399</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-26 13:44:07 -0700</bug_when>
    <thetext>I&apos;m going to make a bunch more small position cleanups today, before I start my 5th attempt to re-write positions. :)  Hopefully these cleanups will continue to clarify and simplify the code, and continue to solidify my understanding of the mess that is position handling code. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115402</commentid>
    <comment_count>1</comment_count>
      <attachid>28981</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-26 13:51:14 -0700</bug_when>
    <thetext>Created attachment 28981
Rename PositionIterator members in hope of futher clarity

 WebCore/ChangeLog                |   28 ++++++++++
 WebCore/dom/PositionIterator.cpp |  112 +++++++++++++++++++-------------------
 WebCore/dom/PositionIterator.h   |   22 ++++----
 3 files changed, 95 insertions(+), 67 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115403</commentid>
    <comment_count>2</comment_count>
      <attachid>28982</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-26 13:51:17 -0700</bug_when>
    <thetext>Created attachment 28982
Rename PositionIterator::atStart/atEnd atStartOfTree/atEndOfTree

 WebCore/ChangeLog                |   20 ++++++++++++++++++++
 WebCore/dom/Position.cpp         |    4 ++--
 WebCore/dom/PositionIterator.cpp |    4 ++--
 WebCore/dom/PositionIterator.h   |    4 ++--
 WebCore/editing/htmlediting.cpp  |    4 ++--
 5 files changed, 28 insertions(+), 8 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115433</commentid>
    <comment_count>3</comment_count>
      <attachid>28982</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-26 15:31:39 -0700</bug_when>
    <thetext>Comment on attachment 28982
Rename PositionIterator::atStart/atEnd atStartOfTree/atEndOfTree

Gonna remake this second patch to include more renames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115434</commentid>
    <comment_count>4</comment_count>
      <attachid>28990</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-26 15:31:56 -0700</bug_when>
    <thetext>Created attachment 28990
More cleanup and renaming to PositionIterator

 WebCore/ChangeLog                 |   35 +++++++++++++-
 WebCore/dom/Position.cpp          |   14 +++---
 WebCore/dom/PositionIterator.cpp  |   98 +++++++++++++++++++++++--------------
 WebCore/dom/PositionIterator.h    |   14 +++--
 WebCore/editing/VisiblePosition.h |    5 ++
 WebCore/editing/htmlediting.cpp   |    4 +-
 6 files changed, 118 insertions(+), 52 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115440</commentid>
    <comment_count>5</comment_count>
      <attachid>28990</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-26 15:53:53 -0700</bug_when>
    <thetext>Comment on attachment 28990
More cleanup and renaming to PositionIterator

There is a missing return.  Will upload fixed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122517</commentid>
    <comment_count>6</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-21 20:04:42 -0700</bug_when>
    <thetext>It would be good for someone familiar with PositionIterator such as Justin or Darin to chime in,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122678</commentid>
    <comment_count>7</comment_count>
      <attachid>28981</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-22 09:08:50 -0700</bug_when>
    <thetext>Comment on attachment 28981
Rename PositionIterator members in hope of futher clarity

I think &quot;anchor&quot; is a little vague, but the names seem fine here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123567</commentid>
    <comment_count>8</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-05-29 11:06:33 -0700</bug_when>
    <thetext>Assigned to Eric for landing his own patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124073</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-02 16:10:11 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/dom/PositionIterator.cpp
	M	WebCore/dom/PositionIterator.h
Committed r44374
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28981</attachid>
            <date>2009-03-26 13:51:14 -0700</date>
            <delta_ts>2009-05-22 09:08:50 -0700</delta_ts>
            <desc>Rename PositionIterator members in hope of futher clarity</desc>
            <filename>Rename-PositionIterator-members-in-hope-of-futher-clarity.patch</filename>
            <type>text/plain</type>
            <size>10561</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">OWVkOTgzYjdhODE1YjQyZjhiOGU5NDE2ZjlmOTQyYmFlOWU5ZmUxNApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBjMmZiLi40MzkxYWUx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMxIEBACisyMDA5LTAzLTI2ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5h
bWUgUG9zaXRpb25JdGVyYXRvciBtZW1iZXJzIGluIGhvcGUgb2YgZnV0aGVyIGNsYXJpdHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0ODU0CisKKyAg
ICAgICAgUmVuYW1lIG1fcGFyZW50IHRvIG1fYW5jaG9yTm9kZSAoc2luY2UgYWx0aG91Z2ggaXQn
cyBhbHdheXMgdGhlIHBhcmVudAorICAgICAgICBvZiB0aGUgcHJldmlvdXMgbV9jaGlsZCBtZW1i
ZXIsIGl0IGlzIG5vdCBhbHdheXMgdGhlIHBhcmVudCBvZiB0aGUgZWZmZWN0aXZlIHBvc2l0aW9u
KQorICAgICAgICBSZW5hbWUgbV9jaGlsZCB0byBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3Ig
dG8gbWFrZSBjbGVhciB0aGF0IGl0J3MgdGhlIG5vZGUKKyAgICAgICAgZGlyZWN0bHkgZm9sbG93
aW5nIHRoZSBwb3NpdGlvbi4gIFRoaXMgbWVtYmVyIGlzIG9mdGVuIE5VTEwsIGJ1dCBpcyBhbHdh
eXMKKyAgICAgICAgYSBjaGlsZCBvZiBtX3BhcmVudCwgbm93IG1fYW5jaG9yTm9kZSBpZiBzZXQu
CisgICAgICAgIFJlbmFtZSBtX29mZnNldCB0byBtX29mZnNldEluQW5jaG9yIChzaW5jZSBpdCdz
IGludGVycHJldGVkIHJlbGF0aXZlIHRvIG1fYW5jaG9yTm9kZSkKKworICAgICAgICAqIGRvbS9Q
b3NpdGlvbkl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uSXRlcmF0b3I6
Om9wZXJhdG9yIFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uSXRlcmF0b3I6
OmluY3JlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjpkZWNyZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6YXRTdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjphdEVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3NpdGlvbkl0ZXJhdG9yOjphdFN0YXJ0T2ZOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBv
c2l0aW9uSXRlcmF0b3I6OmF0RW5kT2ZOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9u
SXRlcmF0b3I6OmlzQ2FuZGlkYXRlKToKKyAgICAgICAgKiBkb20vUG9zaXRpb25JdGVyYXRvci5o
OgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6UG9zaXRpb25JdGVyYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjpub2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBvc2l0aW9uSXRlcmF0b3I6Om9mZnNldEluTGVhZk5vZGUpOgorCiAyMDA5LTAzLTI2
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhdmUgSHlhdHQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0
b3IuY3BwIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKaW5kZXggNzgxZDM1Mi4u
YTAyOWI1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKKysr
IGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKQEAgLTM2LDExMSArMzYsMTExIEBA
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFBvc2l0aW9uSXRlcmF0b3I6Om9wZXJhdG9y
IFBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBpZiAobV9jaGlsZCkgewotICAgICAgICBBU1NFUlQo
bV9jaGlsZC0+cGFyZW50Tm9kZSgpID09IG1fcGFyZW50KTsKLSAgICAgICAgcmV0dXJuIHBvc2l0
aW9uQmVmb3JlTm9kZShtX2NoaWxkKTsKKyAgICBpZiAobV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5j
aG9yKSB7CisgICAgICAgIEFTU0VSVChtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3ItPnBhcmVu
dE5vZGUoKSA9PSBtX2FuY2hvck5vZGUpOworICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVO
b2RlKG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvcik7CiAgICAgfQotICAgIGlmIChtX3BhcmVu
dC0+aGFzQ2hpbGROb2RlcygpKQotICAgICAgICByZXR1cm4gbGFzdERlZXBFZGl0aW5nUG9zaXRp
b25Gb3JOb2RlKG1fcGFyZW50KTsKLSAgICByZXR1cm4gUG9zaXRpb24obV9wYXJlbnQsIG1fb2Zm
c2V0KTsKKyAgICBpZiAobV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgIHJl
dHVybiBsYXN0RGVlcEVkaXRpbmdQb3NpdGlvbkZvck5vZGUobV9hbmNob3JOb2RlKTsKKyAgICBy
ZXR1cm4gUG9zaXRpb24obV9hbmNob3JOb2RlLCBtX29mZnNldEluQW5jaG9yKTsKIH0KIAogdm9p
ZCBQb3NpdGlvbkl0ZXJhdG9yOjppbmNyZW1lbnQoKQogewotICAgIGlmICghbV9wYXJlbnQpCisg
ICAgaWYgKCFtX2FuY2hvck5vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2NoaWxk
KSB7Ci0gICAgICAgIG1fcGFyZW50ID0gbV9jaGlsZDsKLSAgICAgICAgbV9jaGlsZCA9IG1fcGFy
ZW50LT5maXJzdENoaWxkKCk7Ci0gICAgICAgIG1fb2Zmc2V0ID0gMDsKKyAgICBpZiAobV9ub2Rl
QWZ0ZXJQb3NpdGlvbkluQW5jaG9yKSB7CisgICAgICAgIG1fYW5jaG9yTm9kZSA9IG1fbm9kZUFm
dGVyUG9zaXRpb25JbkFuY2hvcjsKKyAgICAgICAgbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9y
ID0gbV9hbmNob3JOb2RlLT5maXJzdENoaWxkKCk7CisgICAgICAgIG1fb2Zmc2V0SW5BbmNob3Ig
PSAwOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFtX3BhcmVudC0+aGFzQ2hp
bGROb2RlcygpICYmIG1fb2Zmc2V0IDwgbGFzdE9mZnNldEZvckVkaXRpbmcobV9wYXJlbnQpKQot
ICAgICAgICBtX29mZnNldCA9IFBvc2l0aW9uOjp1bmNoZWNrZWROZXh0T2Zmc2V0KG1fcGFyZW50
LCBtX29mZnNldCk7CisgICAgaWYgKCFtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSAmJiBt
X29mZnNldEluQW5jaG9yIDwgbGFzdE9mZnNldEZvckVkaXRpbmcobV9hbmNob3JOb2RlKSkKKyAg
ICAgICAgbV9vZmZzZXRJbkFuY2hvciA9IFBvc2l0aW9uOjp1bmNoZWNrZWROZXh0T2Zmc2V0KG1f
YW5jaG9yTm9kZSwgbV9vZmZzZXRJbkFuY2hvcik7CiAgICAgZWxzZSB7Ci0gICAgICAgIG1fY2hp
bGQgPSBtX3BhcmVudDsKLSAgICAgICAgbV9wYXJlbnQgPSBtX2NoaWxkLT5wYXJlbnROb2RlKCk7
Ci0gICAgICAgIG1fY2hpbGQgPSBtX2NoaWxkLT5uZXh0U2libGluZygpOwotICAgICAgICBtX29m
ZnNldCA9IDA7CisgICAgICAgIG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvciA9IG1fYW5jaG9y
Tm9kZTsKKyAgICAgICAgbV9hbmNob3JOb2RlID0gbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9y
LT5wYXJlbnROb2RlKCk7CisgICAgICAgIG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvciA9IG1f
bm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvci0+bmV4dFNpYmxpbmcoKTsKKyAgICAgICAgbV9vZmZz
ZXRJbkFuY2hvciA9IDA7CiAgICAgfQogfQogCiB2b2lkIFBvc2l0aW9uSXRlcmF0b3I6OmRlY3Jl
bWVudCgpCiB7Ci0gICAgaWYgKCFtX3BhcmVudCkKKyAgICBpZiAoIW1fYW5jaG9yTm9kZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY2hpbGQpIHsKLSAgICAgICAgbV9wYXJlbnQgPSBt
X2NoaWxkLT5wcmV2aW91c1NpYmxpbmcoKTsKLSAgICAgICAgaWYgKG1fcGFyZW50KSB7Ci0gICAg
ICAgICAgICBtX2NoaWxkID0gMDsKLSAgICAgICAgICAgIG1fb2Zmc2V0ID0gbV9wYXJlbnQtPmhh
c0NoaWxkTm9kZXMoKSA/IDAgOiBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX3BhcmVudCk7CisgICAg
aWYgKG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvcikgeworICAgICAgICBtX2FuY2hvck5vZGUg
PSBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3ItPnByZXZpb3VzU2libGluZygpOworICAgICAg
ICBpZiAobV9hbmNob3JOb2RlKSB7CisgICAgICAgICAgICBtX25vZGVBZnRlclBvc2l0aW9uSW5B
bmNob3IgPSAwOworICAgICAgICAgICAgbV9vZmZzZXRJbkFuY2hvciA9IG1fYW5jaG9yTm9kZS0+
aGFzQ2hpbGROb2RlcygpID8gMCA6IGxhc3RPZmZzZXRGb3JFZGl0aW5nKG1fYW5jaG9yTm9kZSk7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2NoaWxkID0gbV9jaGlsZC0+cGFyZW50
Tm9kZSgpOwotICAgICAgICAgICAgbV9wYXJlbnQgPSBtX2NoaWxkLT5wYXJlbnROb2RlKCk7Ci0g
ICAgICAgICAgICBtX29mZnNldCA9IDA7CisgICAgICAgICAgICBtX25vZGVBZnRlclBvc2l0aW9u
SW5BbmNob3IgPSBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3ItPnBhcmVudE5vZGUoKTsKKyAg
ICAgICAgICAgIG1fYW5jaG9yTm9kZSA9IG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvci0+cGFy
ZW50Tm9kZSgpOworICAgICAgICAgICAgbV9vZmZzZXRJbkFuY2hvciA9IDA7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX29mZnNldCkgewotICAgICAgICBt
X29mZnNldCA9IFBvc2l0aW9uOjp1bmNoZWNrZWRQcmV2aW91c09mZnNldChtX3BhcmVudCwgbV9v
ZmZzZXQpOworICAgIGlmIChtX29mZnNldEluQW5jaG9yKSB7CisgICAgICAgIG1fb2Zmc2V0SW5B
bmNob3IgPSBQb3NpdGlvbjo6dW5jaGVja2VkUHJldmlvdXNPZmZzZXQobV9hbmNob3JOb2RlLCBt
X29mZnNldEluQW5jaG9yKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAobV9wYXJlbnQtPmhh
c0NoaWxkTm9kZXMoKSkgewotICAgICAgICAgICAgbV9wYXJlbnQgPSBtX3BhcmVudC0+bGFzdENo
aWxkKCk7Ci0gICAgICAgICAgICBpZiAoIW1fcGFyZW50LT5oYXNDaGlsZE5vZGVzKCkpCi0gICAg
ICAgICAgICAgICAgbV9vZmZzZXQgPSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX3BhcmVudCk7Cisg
ICAgICAgIGlmIChtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSkgeworICAgICAgICAgICAg
bV9hbmNob3JOb2RlID0gbV9hbmNob3JOb2RlLT5sYXN0Q2hpbGQoKTsKKyAgICAgICAgICAgIGlm
ICghbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgICAgICAgICAgbV9vZmZz
ZXRJbkFuY2hvciA9IGxhc3RPZmZzZXRGb3JFZGl0aW5nKG1fYW5jaG9yTm9kZSk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2NoaWxkID0gbV9wYXJlbnQ7Ci0gICAgICAgICAgICBt
X3BhcmVudCA9IG1fcGFyZW50LT5wYXJlbnROb2RlKCk7CisgICAgICAgICAgICBtX25vZGVBZnRl
clBvc2l0aW9uSW5BbmNob3IgPSBtX2FuY2hvck5vZGU7CisgICAgICAgICAgICBtX2FuY2hvck5v
ZGUgPSBtX2FuY2hvck5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgfQogICAgIH0KIH0KIAog
Ym9vbCBQb3NpdGlvbkl0ZXJhdG9yOjphdFN0YXJ0KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcGFy
ZW50KQorICAgIGlmICghbV9hbmNob3JOb2RlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBp
ZiAobV9wYXJlbnQtPnBhcmVudE5vZGUoKSkKKyAgICBpZiAobV9hbmNob3JOb2RlLT5wYXJlbnRO
b2RlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gKCFtX3BhcmVudC0+aGFz
Q2hpbGROb2RlcygpICYmICFtX29mZnNldCkgfHwgKG1fY2hpbGQgJiYgIW1fY2hpbGQtPnByZXZp
b3VzU2libGluZygpKTsKKyAgICByZXR1cm4gKCFtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMo
KSAmJiAhbV9vZmZzZXRJbkFuY2hvcikgfHwgKG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvciAm
JiAhbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yLT5wcmV2aW91c1NpYmxpbmcoKSk7CiB9CiAK
IGJvb2wgUG9zaXRpb25JdGVyYXRvcjo6YXRFbmQoKSBjb25zdAogewotICAgIGlmICghbV9wYXJl
bnQpCisgICAgaWYgKCFtX2FuY2hvck5vZGUpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlm
IChtX2NoaWxkKQorICAgIGlmIChtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gIW1fcGFyZW50LT5wYXJlbnROb2RlKCkgJiYgKG1f
cGFyZW50LT5oYXNDaGlsZE5vZGVzKCkgfHwgbV9vZmZzZXQgPj0gbGFzdE9mZnNldEZvckVkaXRp
bmcobV9wYXJlbnQpKTsKKyAgICByZXR1cm4gIW1fYW5jaG9yTm9kZS0+cGFyZW50Tm9kZSgpICYm
IChtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSB8fCBtX29mZnNldEluQW5jaG9yID49IGxh
c3RPZmZzZXRGb3JFZGl0aW5nKG1fYW5jaG9yTm9kZSkpOwogfQogCiBib29sIFBvc2l0aW9uSXRl
cmF0b3I6OmF0U3RhcnRPZk5vZGUoKSBjb25zdAogewotICAgIGlmICghbV9wYXJlbnQpCisgICAg
aWYgKCFtX2FuY2hvck5vZGUpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICghbV9jaGls
ZCkKLSAgICAgICAgcmV0dXJuICFtX3BhcmVudC0+aGFzQ2hpbGROb2RlcygpICYmICFtX29mZnNl
dDsKLSAgICByZXR1cm4gIW1fY2hpbGQtPnByZXZpb3VzU2libGluZygpOworICAgIGlmICghbV9u
b2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yKQorICAgICAgICByZXR1cm4gIW1fYW5jaG9yTm9kZS0+
aGFzQ2hpbGROb2RlcygpICYmICFtX29mZnNldEluQW5jaG9yOworICAgIHJldHVybiAhbV9ub2Rl
QWZ0ZXJQb3NpdGlvbkluQW5jaG9yLT5wcmV2aW91c1NpYmxpbmcoKTsKIH0KIAogYm9vbCBQb3Np
dGlvbkl0ZXJhdG9yOjphdEVuZE9mTm9kZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3BhcmVudCkK
KyAgICBpZiAoIW1fYW5jaG9yTm9kZSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1f
Y2hpbGQpCisgICAgaWYgKG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIHJldHVybiBtX3BhcmVudC0+aGFzQ2hpbGROb2RlcygpIHx8IG1fb2Zm
c2V0ID49IGxhc3RPZmZzZXRGb3JFZGl0aW5nKG1fcGFyZW50KTsKKyAgICByZXR1cm4gbV9hbmNo
b3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkgfHwgbV9vZmZzZXRJbkFuY2hvciA+PSBsYXN0T2Zmc2V0
Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpOwogfQogCiBib29sIFBvc2l0aW9uSXRlcmF0b3I6Omlz
Q2FuZGlkYXRlKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcGFyZW50KQorICAgIGlmICghbV9hbmNo
b3JOb2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gbV9wYXJlbnQtPnJlbmRlcmVyKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IG1fYW5jaG9yTm9kZS0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCkBAIC0xNDgsMTcgKzE0OCwxNyBAQCBib29sIFBvc2l0aW9uSXRl
cmF0b3I6OmlzQ2FuZGlkYXRlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKHJlbmRlcmVyLT5pc0JSKCkpCi0gICAgICAgIHJldHVybiAhbV9vZmZzZXQgJiYgIVBvc2l0
aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShtX3BhcmVudC0+cGFyZW50KCkpOworICAgICAgICBy
ZXR1cm4gIW1fb2Zmc2V0SW5BbmNob3IgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9u
ZShtX2FuY2hvck5vZGUtPnBhcmVudCgpKTsKIAogICAgIGlmIChyZW5kZXJlci0+aXNUZXh0KCkp
Ci0gICAgICAgIHJldHVybiBQb3NpdGlvbigqdGhpcykuaW5SZW5kZXJlZFRleHQoKSAmJiAhUG9z
aXRpb246Om5vZGVJc1VzZXJTZWxlY3ROb25lKG1fcGFyZW50KTsKKyAgICAgICAgcmV0dXJuIFBv
c2l0aW9uKCp0aGlzKS5pblJlbmRlcmVkVGV4dCgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNl
bGVjdE5vbmUobV9hbmNob3JOb2RlKTsKIAotICAgIGlmIChpc1RhYmxlRWxlbWVudChtX3BhcmVu
dCkgfHwgZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fcGFyZW50KSkKLSAgICAgICAgcmV0dXJuIChh
dFN0YXJ0T2ZOb2RlKCkgfHwgYXRFbmRPZk5vZGUoKSkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2Vy
U2VsZWN0Tm9uZShtX3BhcmVudC0+cGFyZW50KCkpOworICAgIGlmIChpc1RhYmxlRWxlbWVudCht
X2FuY2hvck5vZGUpIHx8IGVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUpKQorICAg
ICAgICByZXR1cm4gKGF0U3RhcnRPZk5vZGUoKSB8fCBhdEVuZE9mTm9kZSgpKSAmJiAhUG9zaXRp
b246Om5vZGVJc1VzZXJTZWxlY3ROb25lKG1fYW5jaG9yTm9kZS0+cGFyZW50KCkpOwogCi0gICAg
aWYgKCFtX3BhcmVudC0+aGFzVGFnTmFtZShodG1sVGFnKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zs
b3coKSAmJiAhUG9zaXRpb246Omhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRo
SGVpZ2h0KHJlbmRlcmVyKSAmJgotICAgICAgICh0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+aGVp
Z2h0KCkgfHwgbV9wYXJlbnQtPmhhc1RhZ05hbWUoYm9keVRhZykpKQotICAgICAgICByZXR1cm4g
YXRTdGFydE9mTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUobV9wYXJl
bnQpOworICAgIGlmICghbV9hbmNob3JOb2RlLT5oYXNUYWdOYW1lKGh0bWxUYWcpICYmIHJlbmRl
cmVyLT5pc0Jsb2NrRmxvdygpICYmICFQb3NpdGlvbjo6aGFzUmVuZGVyZWROb25Bbm9ueW1vdXNE
ZXNjZW5kYW50c1dpdGhIZWlnaHQocmVuZGVyZXIpICYmCisgICAgICAgKHRvUmVuZGVyQmxvY2so
cmVuZGVyZXIpLT5oZWlnaHQoKSB8fCBtX2FuY2hvck5vZGUtPmhhc1RhZ05hbWUoYm9keVRhZykp
KQorICAgICAgICByZXR1cm4gYXRTdGFydE9mTm9kZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNl
clNlbGVjdE5vbmUobV9hbmNob3JOb2RlKTsKICAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmggYi9XZWJDb3JlL2RvbS9Q
b3NpdGlvbkl0ZXJhdG9yLmgKaW5kZXggOThhMmNjYi4uMTRmMTIzNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCisrKyBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRl
cmF0b3IuaApAQCAtMzcsMTYgKzM3LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFBv
c2l0aW9uSXRlcmF0b3IgewogcHVibGljOgogICAgIFBvc2l0aW9uSXRlcmF0b3IoKQotICAgICAg
ICA6IG1fcGFyZW50KDApCi0gICAgICAgICwgbV9jaGlsZCgwKQotICAgICAgICAsIG1fb2Zmc2V0
KDApCisgICAgICAgIDogbV9hbmNob3JOb2RlKDApCisgICAgICAgICwgbV9ub2RlQWZ0ZXJQb3Np
dGlvbkluQW5jaG9yKDApCisgICAgICAgICwgbV9vZmZzZXRJbkFuY2hvcigwKQogICAgIHsKICAg
ICB9CiAKICAgICBQb3NpdGlvbkl0ZXJhdG9yKGNvbnN0IFBvc2l0aW9uJiBwb3MpCi0gICAgICAg
IDogbV9wYXJlbnQocG9zLm5vZGUoKSkKLSAgICAgICAgLCBtX2NoaWxkKG1fcGFyZW50LT5jaGls
ZE5vZGUocG9zLm1fb2Zmc2V0KSkKLSAgICAgICAgLCBtX29mZnNldChtX2NoaWxkID8gMCA6IHBv
cy5tX29mZnNldCkKKyAgICAgICAgOiBtX2FuY2hvck5vZGUocG9zLmFuY2hvck5vZGUoKSkKKyAg
ICAgICAgLCBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IobV9hbmNob3JOb2RlLT5jaGlsZE5v
ZGUocG9zLm1fb2Zmc2V0KSkKKyAgICAgICAgLCBtX29mZnNldEluQW5jaG9yKG1fbm9kZUFmdGVy
UG9zaXRpb25JbkFuY2hvciA/IDAgOiBwb3MubV9vZmZzZXQpCiAgICAgewogICAgIH0KICAgICBv
cGVyYXRvciBQb3NpdGlvbigpIGNvbnN0OwpAQCAtNTQsOCArNTQsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBpbmNyZW1lbnQoKTsKICAgICB2b2lkIGRlY3JlbWVudCgpOwogCi0gICAgTm9kZSogbm9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9Ci0gICAgaW50IG9mZnNldEluTGVhZk5vZGUo
KSBjb25zdCB7IHJldHVybiBtX29mZnNldDsgfQorICAgIE5vZGUqIG5vZGUoKSBjb25zdCB7IHJl
dHVybiBtX2FuY2hvck5vZGU7IH0KKyAgICBpbnQgb2Zmc2V0SW5MZWFmTm9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fb2Zmc2V0SW5BbmNob3I7IH0KIAogICAgIGJvb2wgYXRTdGFydCgpIGNvbnN0Owog
ICAgIGJvb2wgYXRFbmQoKSBjb25zdDsKQEAgLTY0LDkgKzY0LDkgQEAgcHVibGljOgogICAgIGJv
b2wgaXNDYW5kaWRhdGUoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBOb2RlKiBtX3BhcmVudDsK
LSAgICBOb2RlKiBtX2NoaWxkOwotICAgIGludCBtX29mZnNldDsKKyAgICBOb2RlKiBtX2FuY2hv
ck5vZGU7CisgICAgTm9kZSogbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yOyAvLyBJZiB0aGlz
IGlzIG5vbi1udWxsLCBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3ItPnBhcmVudE5vZGUoKSA9
PSBtX2FuY2hvck5vZGU7CisgICAgaW50IG1fb2Zmc2V0SW5BbmNob3I7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="14340"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28982</attachid>
            <date>2009-03-26 13:51:17 -0700</date>
            <delta_ts>2009-03-26 15:31:39 -0700</delta_ts>
            <desc>Rename PositionIterator::atStart/atEnd atStartOfTree/atEndOfTree</desc>
            <filename>Rename-PositionIterator-atStart-atEnd-atStartOfTree-atEndOfTree.patch</filename>
            <type>text/plain</type>
            <size>4183</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZjZkMmNkYTc5YzljNmE1NzZiYzE3MGZjOWE2Y2E4NDViMDA4NmM0ZgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MzkxYWUxLi4zZGY2ZDk2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDI2IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgUmVuYW1lIFBvc2l0aW9uSXRlcmF0b3I6OmF0U3RhcnQvYXRFbmQgYXRTdGFydE9m
VHJlZS9hdEVuZE9mVHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjQ4NTQKKworICAgICAgICBUaGVzZSByZW5hbWVzIG1hdGNoIGVhcmxpZXIgcmVu
YW1lcyBpbiBQb3NpdGlvbi4KKworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQb3NpdGlvbjo6dXBzdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRp
b246OmRvd25zdHJlYW0pOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uSXRlcmF0b3I6OmF0U3RhcnRPZlRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6YXRFbmRPZlRyZWUpOgorICAgICAgICAqIGRv
bS9Qb3NpdGlvbkl0ZXJhdG9yLmg6CisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpuZXh0Q2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnBy
ZXZpb3VzQ2FuZGlkYXRlKToKKworMjAwOS0wMy0yNiAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAg
UmVuYW1lIFBvc2l0aW9uSXRlcmF0b3IgbWVtYmVycyBpbiBob3BlIG9mIGZ1dGhlciBjbGFyaXR5
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDg1NAog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5jcHAKaW5kZXggYTI1OTFiYS4uNWUzY2U2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
UG9zaXRpb24uY3BwCisrKyBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtMzQ4LDcgKzM0
OCw3IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjp1cHN0cmVhbSgpIGNvbnN0CiAgICAgUG9zaXRpb25J
dGVyYXRvciBjdXJyZW50UG9zID0gbGFzdFZpc2libGU7CiAgICAgYm9vbCBzdGFydEVkaXRhYmxl
ID0gc3RhcnROb2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpOwogICAgIE5vZGUqIGxhc3ROb2RlID0g
c3RhcnROb2RlOwotICAgIGZvciAoOyAhY3VycmVudFBvcy5hdFN0YXJ0KCk7IGN1cnJlbnRQb3Mu
ZGVjcmVtZW50KCkpIHsKKyAgICBmb3IgKDsgIWN1cnJlbnRQb3MuYXRTdGFydE9mVHJlZSgpOyBj
dXJyZW50UG9zLmRlY3JlbWVudCgpKSB7CiAgICAgICAgIE5vZGUqIGN1cnJlbnROb2RlID0gY3Vy
cmVudFBvcy5ub2RlKCk7CiAgICAgICAgIAogICAgICAgICAvLyBEb24ndCBjaGVjayBmb3IgYW4g
ZWRpdGFiaWxpdHkgY2hhbmdlIGlmIHdlIGhhdmVuJ3QgbW92ZWQgdG8gYSBkaWZmZXJlbnQgbm9k
ZSwKQEAgLTQ2MCw3ICs0NjAsNyBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6ZG93bnN0cmVhbSgpIGNv
bnN0CiAgICAgUG9zaXRpb25JdGVyYXRvciBjdXJyZW50UG9zID0gbGFzdFZpc2libGU7CiAgICAg
Ym9vbCBzdGFydEVkaXRhYmxlID0gc3RhcnROb2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpOwogICAg
IE5vZGUqIGxhc3ROb2RlID0gc3RhcnROb2RlOwotICAgIGZvciAoOyAhY3VycmVudFBvcy5hdEVu
ZCgpOyBjdXJyZW50UG9zLmluY3JlbWVudCgpKSB7ICAgCisgICAgZm9yICg7ICFjdXJyZW50UG9z
LmF0RW5kT2ZUcmVlKCk7IGN1cnJlbnRQb3MuaW5jcmVtZW50KCkpIHsKICAgICAgICAgTm9kZSog
Y3VycmVudE5vZGUgPSBjdXJyZW50UG9zLm5vZGUoKTsKICAgICAgICAgCiAgICAgICAgIC8vIERv
bid0IGNoZWNrIGZvciBhbiBlZGl0YWJpbGl0eSBjaGFuZ2UgaWYgd2UgaGF2ZW4ndCBtb3ZlZCB0
byBhIGRpZmZlcmVudCBub2RlLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVy
YXRvci5jcHAgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAppbmRleCBhMDI5YjVl
Li4yOTQwMWEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAor
KysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcApAQCAtOTksNyArOTksNyBAQCB2
b2lkIFBvc2l0aW9uSXRlcmF0b3I6OmRlY3JlbWVudCgpCiAgICAgfQogfQogCi1ib29sIFBvc2l0
aW9uSXRlcmF0b3I6OmF0U3RhcnQoKSBjb25zdAorYm9vbCBQb3NpdGlvbkl0ZXJhdG9yOjphdFN0
YXJ0T2ZUcmVlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fYW5jaG9yTm9kZSkKICAgICAgICAgcmV0
dXJuIHRydWU7CkBAIC0xMDgsNyArMTA4LDcgQEAgYm9vbCBQb3NpdGlvbkl0ZXJhdG9yOjphdFN0
YXJ0KCkgY29uc3QKICAgICByZXR1cm4gKCFtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSAm
JiAhbV9vZmZzZXRJbkFuY2hvcikgfHwgKG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvciAmJiAh
bV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yLT5wcmV2aW91c1NpYmxpbmcoKSk7CiB9CiAKLWJv
b2wgUG9zaXRpb25JdGVyYXRvcjo6YXRFbmQoKSBjb25zdAorYm9vbCBQb3NpdGlvbkl0ZXJhdG9y
OjphdEVuZE9mVHJlZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2FuY2hvck5vZGUpCiAgICAgICAg
IHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5o
IGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCmluZGV4IDE0ZjEyMzUuLmFkYTdiYWYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAorKysgYi9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKQEAgLTU3LDggKzU3LDggQEAgcHVibGljOgogICAgIE5v
ZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBtX2FuY2hvck5vZGU7IH0KICAgICBpbnQgb2Zmc2V0
SW5MZWFmTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0SW5BbmNob3I7IH0KIAotICAgIGJv
b2wgYXRTdGFydCgpIGNvbnN0OwotICAgIGJvb2wgYXRFbmQoKSBjb25zdDsKKyAgICBib29sIGF0
U3RhcnRPZlRyZWUoKSBjb25zdDsKKyAgICBib29sIGF0RW5kT2ZUcmVlKCkgY29uc3Q7CiAgICAg
Ym9vbCBhdFN0YXJ0T2ZOb2RlKCkgY29uc3Q7CiAgICAgYm9vbCBhdEVuZE9mTm9kZSgpIGNvbnN0
OwogICAgIGJvb2wgaXNDYW5kaWRhdGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCmlu
ZGV4IDA1NWMzYTcuLmYzMzI0MjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtMjA5LDcg
KzIwOSw3IEBAIGJvb2wgaXNDb250ZW50RWRpdGFibGUoY29uc3QgTm9kZSogbm9kZSkKIFBvc2l0
aW9uIG5leHRDYW5kaWRhdGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIFBvc2l0
aW9uSXRlcmF0b3IgcCA9IHBvc2l0aW9uOwotICAgIHdoaWxlICghcC5hdEVuZCgpKSB7CisgICAg
d2hpbGUgKCFwLmF0RW5kT2ZUcmVlKCkpIHsKICAgICAgICAgcC5pbmNyZW1lbnQoKTsKICAgICAg
ICAgaWYgKHAuaXNDYW5kaWRhdGUoKSkKICAgICAgICAgICAgIHJldHVybiBwOwpAQCAtMjMyLDcg
KzIzMiw3IEBAIFBvc2l0aW9uIG5leHRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKGNvbnN0IFBv
c2l0aW9uJiBwb3NpdGlvbikKIFBvc2l0aW9uIHByZXZpb3VzQ2FuZGlkYXRlKGNvbnN0IFBvc2l0
aW9uJiBwb3NpdGlvbikKIHsKICAgICBQb3NpdGlvbkl0ZXJhdG9yIHAgPSBwb3NpdGlvbjsKLSAg
ICB3aGlsZSAoIXAuYXRTdGFydCgpKSB7CisgICAgd2hpbGUgKCFwLmF0U3RhcnRPZlRyZWUoKSkg
ewogICAgICAgICBwLmRlY3JlbWVudCgpOwogICAgICAgICBpZiAocC5pc0NhbmRpZGF0ZSgpKQog
ICAgICAgICAgICAgcmV0dXJuIHA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28990</attachid>
            <date>2009-03-26 15:31:56 -0700</date>
            <delta_ts>2009-03-26 15:53:53 -0700</delta_ts>
            <desc>More cleanup and renaming to PositionIterator</desc>
            <filename>More-cleanup-and-renaming-to-PositionIterator.patch</filename>
            <type>text/plain</type>
            <size>15712</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZWQzMGM5MzgzMzJiMDEzMmVjYThiZDE4MmQ3NWFhNDUyOWQxNzlhNwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MzkxYWUxLi5iY2RlYjVh
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw3ICsyLDQwIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
LSAgICAgICAgUmVuYW1lIFBvc2l0aW9uSXRlcmF0b3IgbWVtYmVycyBpbiBob3BlIG9mIGZ1dGhl
ciBjbGFyaXR5CisgICAgICAgIE1vcmUgY2xlYW51cCBhbmQgcmVuYW1pbmcgaW4gUG9zaXRpb25J
dGVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQ4NTQKKworICAgICAgICBDbGVhbiB1cCBQb3NpdGlvbkl0ZXJhdG9yOjppbmNyZW1lbnQgYW5k
IGRlY3JlbWVudCB3aXRoIHNvbWUgY29tbWVudHMuCisgICAgICAgIFJlbmFtZSBQb3NpdGlvbkl0
ZXJhdG9yOjphdFN0YXJ0T2ZOb2RlLCBhdEVuZE9mTm9kZQorICAgICAgICB0byBhdEZpcnN0RWRp
dGluZ1Bvc2l0aW9uRm9yTm9kZSwgYXRMYXN0RWRpdGluZ1Bvc2l0aW9uRm9yTm9kZSB0byBtYXRj
aCBQb3NpdGlvbiBuYW1lcy4KKyAgICAgICAgUmVuYW1lIFBvc2l0aW9uSXRlcmF0b3I6OmF0U3Rh
cnQvYXRFbmQgYXRTdGFydE9mVHJlZS9hdEVuZE9mVHJlZQorCisgICAgICAgIFRoZXNlIHJlbmFt
ZXMgbWF0Y2ggZWFybGllciByZW5hbWVzIGluIFBvc2l0aW9uLgorCisgICAgICAgICogZG9tL1Bv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU3RyZWFtZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UG9zaXRpb246OnVwc3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpp
c0NhbmRpZGF0ZSk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6b3BlcmF0b3IgUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6aW5jcmVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlBvc2l0aW9uSXRlcmF0b3I6OmRlY3JlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3Np
dGlvbkl0ZXJhdG9yOjphdFN0YXJ0T2ZUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9u
SXRlcmF0b3I6OmF0RW5kT2ZUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uSXRlcmF0
b3I6OmF0Rmlyc3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBv
c2l0aW9uSXRlcmF0b3I6OmF0TGFzdEVkaXRpbmdQb3NpdGlvbkZvck5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6aXNDYW5kaWRhdGUpOgorICAgICAgICAqIGRvbS9Q
b3NpdGlvbkl0ZXJhdG9yLmg6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaDoK
KyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5l
eHRDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNDYW5kaWRhdGUpOgorCisy
MDA5LTAzLTI2ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgUG9zaXRpb25JdGVyYXRv
ciBtZW1iZXJzIGluIGhvcGUgb2YgZnVydGhlciBjbGFyaXR5CiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDg1NAogCiAgICAgICAgIFJlbmFtZSBtX3Bh
cmVudCB0byBtX2FuY2hvck5vZGUgKHNpbmNlIGFsdGhvdWdoIGl0J3MgYWx3YXlzIHRoZSBwYXJl
bnQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmNwcAppbmRleCBhMjU5MWJhLi5kYTQyZmFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9Qb3NpdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0zMjcsNyAr
MzI3LDcgQEAgc3RhdGljIGJvb2wgaXNTdHJlYW1lcihjb25zdCBQb3NpdGlvbkl0ZXJhdG9yJiBw
b3MpCiAgICAgaWYgKGlzQXRvbWljTm9kZShwb3Mubm9kZSgpKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIAotICAgIHJldHVybiBwb3MuYXRTdGFydE9mTm9kZSgpOworICAgIHJldHVy
biBwb3MuYXRGaXJzdEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoKTsKIH0KIAogLy8gVGhpcyBmdW5j
dGlvbiBhbmQgZG93bnN0cmVhbSgpIGFyZSB1c2VkIGZvciBtb3ZpbmcgYmFjayBhbmQgZm9ydGgg
YmV0d2VlbiB2aXN1YWxseSBlcXVpdmFsZW50IGNhbmRpZGF0ZXMuCkBAIC0zNDgsNyArMzQ4LDcg
QEAgUG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKCkgY29uc3QKICAgICBQb3NpdGlvbkl0ZXJh
dG9yIGN1cnJlbnRQb3MgPSBsYXN0VmlzaWJsZTsKICAgICBib29sIHN0YXJ0RWRpdGFibGUgPSBz
dGFydE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCk7CiAgICAgTm9kZSogbGFzdE5vZGUgPSBzdGFy
dE5vZGU7Ci0gICAgZm9yICg7ICFjdXJyZW50UG9zLmF0U3RhcnQoKTsgY3VycmVudFBvcy5kZWNy
ZW1lbnQoKSkgeworICAgIGZvciAoOyAhY3VycmVudFBvcy5hdFN0YXJ0T2ZUcmVlKCk7IGN1cnJl
bnRQb3MuZGVjcmVtZW50KCkpIHsKICAgICAgICAgTm9kZSogY3VycmVudE5vZGUgPSBjdXJyZW50
UG9zLm5vZGUoKTsKICAgICAgICAgCiAgICAgICAgIC8vIERvbid0IGNoZWNrIGZvciBhbiBlZGl0
YWJpbGl0eSBjaGFuZ2UgaWYgd2UgaGF2ZW4ndCBtb3ZlZCB0byBhIGRpZmZlcmVudCBub2RlLApA
QCAtMzc3LDEyICszNzcsMTIgQEAgUG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKCkgY29uc3QK
ICAgICAgICAgCiAgICAgICAgIC8vIERvbid0IG1vdmUgcGFzdCBhIHBvc2l0aW9uIHRoYXQgaXMg
dmlzdWFsbHkgZGlzdGluY3QuICBXZSBjb3VsZCByZWx5IG9uIGNvZGUgYWJvdmUgdG8gdGVybWlu
YXRlIGFuZCAKICAgICAgICAgLy8gcmV0dXJuIGxhc3RWaXNpYmxlIG9uIHRoZSBuZXh0IGl0ZXJh
dGlvbiwgYnV0IHdlIHRlcm1pbmF0ZSBlYXJseSB0byBhdm9pZCBkb2luZyBhIG5vZGVJbmRleCgp
IGNhbGwuCi0gICAgICAgIGlmIChlbmRzT2ZOb2RlQXJlVmlzdWFsbHlEaXN0aW5jdFBvc2l0aW9u
cyhjdXJyZW50Tm9kZSkgJiYgY3VycmVudFBvcy5hdFN0YXJ0T2ZOb2RlKCkpCisgICAgICAgIGlm
IChlbmRzT2ZOb2RlQXJlVmlzdWFsbHlEaXN0aW5jdFBvc2l0aW9ucyhjdXJyZW50Tm9kZSkgJiYg
Y3VycmVudFBvcy5hdEZpcnN0RWRpdGluZ1Bvc2l0aW9uRm9yTm9kZSgpKQogICAgICAgICAgICAg
cmV0dXJuIGxhc3RWaXNpYmxlOwogCiAgICAgICAgIC8vIFJldHVybiBwb3NpdGlvbiBhZnRlciB0
YWJsZXMgYW5kIG5vZGVzIHdoaWNoIGhhdmUgY29udGVudCB0aGF0IGNhbiBiZSBpZ25vcmVkLgog
ICAgICAgICBpZiAoZWRpdGluZ0lnbm9yZXNDb250ZW50KGN1cnJlbnROb2RlKSB8fCBpc1RhYmxl
RWxlbWVudChjdXJyZW50Tm9kZSkpIHsKLSAgICAgICAgICAgIGlmIChjdXJyZW50UG9zLmF0RW5k
T2ZOb2RlKCkpCisgICAgICAgICAgICBpZiAoY3VycmVudFBvcy5hdExhc3RFZGl0aW5nUG9zaXRp
b25Gb3JOb2RlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3REZWVwRWRpdGluZ1Bvc2l0
aW9uRm9yTm9kZShjdXJyZW50Tm9kZSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQpAQCAtNDYwLDcgKzQ2MCw3IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjpkb3duc3RyZWFtKCkgY29u
c3QKICAgICBQb3NpdGlvbkl0ZXJhdG9yIGN1cnJlbnRQb3MgPSBsYXN0VmlzaWJsZTsKICAgICBi
b29sIHN0YXJ0RWRpdGFibGUgPSBzdGFydE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCk7CiAgICAg
Tm9kZSogbGFzdE5vZGUgPSBzdGFydE5vZGU7Ci0gICAgZm9yICg7ICFjdXJyZW50UG9zLmF0RW5k
KCk7IGN1cnJlbnRQb3MuaW5jcmVtZW50KCkpIHsgICAKKyAgICBmb3IgKDsgIWN1cnJlbnRQb3Mu
YXRFbmRPZlRyZWUoKTsgY3VycmVudFBvcy5pbmNyZW1lbnQoKSkgewogICAgICAgICBOb2RlKiBj
dXJyZW50Tm9kZSA9IGN1cnJlbnRQb3Mubm9kZSgpOwogICAgICAgICAKICAgICAgICAgLy8gRG9u
J3QgY2hlY2sgZm9yIGFuIGVkaXRhYmlsaXR5IGNoYW5nZSBpZiB3ZSBoYXZlbid0IG1vdmVkIHRv
IGEgZGlmZmVyZW50IG5vZGUsCkBAIC00NzUsNyArNDc1LDcgQEAgUG9zaXRpb24gUG9zaXRpb246
OmRvd25zdHJlYW0oKSBjb25zdAogCiAgICAgICAgIC8vIHN0b3AgYmVmb3JlIGdvaW5nIGFib3Zl
IHRoZSBib2R5LCB1cCBpbnRvIHRoZSBoZWFkCiAgICAgICAgIC8vIHJldHVybiB0aGUgbGFzdCB2
aXNpYmxlIHN0cmVhbWVyIHBvc2l0aW9uCi0gICAgICAgIGlmIChjdXJyZW50Tm9kZS0+aGFzVGFn
TmFtZShib2R5VGFnKSAmJiBjdXJyZW50UG9zLmF0RW5kT2ZOb2RlKCkpCisgICAgICAgIGlmIChj
dXJyZW50Tm9kZS0+aGFzVGFnTmFtZShib2R5VGFnKSAmJiBjdXJyZW50UG9zLmF0TGFzdEVkaXRp
bmdQb3NpdGlvbkZvck5vZGUoKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAg
ICAgICAgIC8vIERvIG5vdCBtb3ZlIHRvIGEgdmlzdWFsbHkgZGlzdGluY3QgcG9zaXRpb24uCkBA
IC01MDYsNyArNTA2LDcgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oKSBjb25zdAog
ICAgICAgICAvLyByZXR1cm4gY3VycmVudCBwb3NpdGlvbiBpZiBpdCBpcyBpbiByZW5kZXJlZCB0
ZXh0CiAgICAgICAgIGlmIChyZW5kZXJlci0+aXNUZXh0KCkgJiYgdG9SZW5kZXJUZXh0KHJlbmRl
cmVyKS0+Zmlyc3RUZXh0Qm94KCkpIHsKICAgICAgICAgICAgIGlmIChjdXJyZW50Tm9kZSAhPSBz
dGFydE5vZGUpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoY3VycmVudFBvcy5hdFN0YXJ0T2ZO
b2RlKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChjdXJyZW50UG9zLmF0Rmlyc3RFZGl0aW5n
UG9zaXRpb25Gb3JOb2RlKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBQb3NpdGlvbihjdXJy
ZW50Tm9kZSwgcmVuZGVyZXItPmNhcmV0TWluT2Zmc2V0KCkpOwogICAgICAgICAgICAgfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcCBiL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uSXRlcmF0b3IuY3BwCmluZGV4IGEwMjliNWUuLjE1YzA2MjggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uSXRlcmF0b3IuY3BwCkBAIC0zNiwxMiArMzYsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAogUG9zaXRpb25JdGVyYXRvcjo6b3BlcmF0b3IgUG9zaXRpb24oKSBjb25zdAogewot
ICAgIGlmIChtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IpIHsKLSAgICAgICAgQVNTRVJUKG1f
bm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvci0+cGFyZW50Tm9kZSgpID09IG1fYW5jaG9yTm9kZSk7
Ci0gICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUobV9ub2RlQWZ0ZXJQb3NpdGlvbklu
QW5jaG9yKTsKLSAgICB9Ci0gICAgaWYgKG1fYW5jaG9yTm9kZS0+aGFzQ2hpbGROb2RlcygpKQor
ICAgIC8vIEZvciBub2RlcyB3aXRoIGNoaWxkIG5vZGVzLCB3ZSB0cmFjayBtX25vZGVBZnRlclBv
c2l0aW9uSW5BbmNob3IgaW5zdGVhZCBvZiBhbiBvZmZzZXQuCisgICAgaWYgKG1fYW5jaG9yTm9k
ZS0+aGFzQ2hpbGROb2RlcygpKSB7CisgICAgICAgIEFTU0VSVChtX29mZnNldEluQW5jaG9yID09
IDApOworICAgICAgICBpZiAobV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yKSB7CisgICAgICAg
ICAgICBBU1NFUlQobV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yLT5wYXJlbnROb2RlKCkgPT0g
bV9hbmNob3JOb2RlKTsKKyAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUobV9u
b2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yKTsKKyAgICAgICAgfQorICAgICAgICAvLyBJZiAhbV9u
b2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yIHdlIG11c3QgYmUgYXQgdGhlIGxhc3QgcG9zaXRpb24g
aW4gdGhlIG5vZGUKICAgICAgICAgcmV0dXJuIGxhc3REZWVwRWRpdGluZ1Bvc2l0aW9uRm9yTm9k
ZShtX2FuY2hvck5vZGUpOworICAgIH0KICAgICByZXR1cm4gUG9zaXRpb24obV9hbmNob3JOb2Rl
LCBtX29mZnNldEluQW5jaG9yKTsKIH0KIApAQCAtNTAsNiArNTQsNyBAQCB2b2lkIFBvc2l0aW9u
SXRlcmF0b3I6OmluY3JlbWVudCgpCiAgICAgaWYgKCFtX2FuY2hvck5vZGUpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIC8vIElmIHdlIGhhdmUgbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yIHdl
J3JlIGluIGEgY29udGFpbmVyIG5vZGU7IGp1bXAgaW50byB0aGUgZmlyc3QgcG9zaXRpb24gb2Yg
dGhlIG5vZGUgYWZ0ZXIgdGhpcyBwb3NpdGlvbi4KICAgICBpZiAobV9ub2RlQWZ0ZXJQb3NpdGlv
bkluQW5jaG9yKSB7CiAgICAgICAgIG1fYW5jaG9yTm9kZSA9IG1fbm9kZUFmdGVyUG9zaXRpb25J
bkFuY2hvcjsKICAgICAgICAgbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yID0gbV9hbmNob3JO
b2RlLT5maXJzdENoaWxkKCk7CkBAIC01NywxNCArNjIsMTYgQEAgdm9pZCBQb3NpdGlvbkl0ZXJh
dG9yOjppbmNyZW1lbnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFtX2Fu
Y2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSAmJiBtX29mZnNldEluQW5jaG9yIDwgbGFzdE9mZnNl
dEZvckVkaXRpbmcobV9hbmNob3JOb2RlKSkKKyAgICBpZiAoIW1fYW5jaG9yTm9kZS0+aGFzQ2hp
bGROb2RlcygpICYmIG1fb2Zmc2V0SW5BbmNob3IgPCBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2Fu
Y2hvck5vZGUpKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5BbmNob3IgPSBQb3NpdGlvbjo6dW5jaGVj
a2VkTmV4dE9mZnNldChtX2FuY2hvck5vZGUsIG1fb2Zmc2V0SW5BbmNob3IpOwotICAgIGVsc2Ug
ewotICAgICAgICBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IgPSBtX2FuY2hvck5vZGU7Ci0g
ICAgICAgIG1fYW5jaG9yTm9kZSA9IG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvci0+cGFyZW50
Tm9kZSgpOwotICAgICAgICBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IgPSBtX25vZGVBZnRl
clBvc2l0aW9uSW5BbmNob3ItPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIG1fb2Zmc2V0SW5BbmNo
b3IgPSAwOworICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgLy8gV2UgbXVzdCBiZSBhdCB0
aGUgbGFzdCBwb3NpdGlvbiBpbiB0aGlzIG5vZGUsIGdvIHRvIHRoZSBuZXh0IHBvc2l0aW9uIGlu
IHRoZSBwYXJlbnQKKyAgICBBU1NFUlQobV9hbmNob3JOb2RlLT5wYXJlbnROb2RlKCkpOworICAg
IG1fYW5jaG9yTm9kZSA9IG1fYW5jaG9yTm9kZS0+cGFyZW50Tm9kZSgpOworICAgIG1fbm9kZUFm
dGVyUG9zaXRpb25JbkFuY2hvciA9IG1fYW5jaG9yTm9kZS0+bmV4dFNpYmxpbmcoKTsKKyAgICBt
X29mZnNldEluQW5jaG9yID0gMDsKIH0KIAogdm9pZCBQb3NpdGlvbkl0ZXJhdG9yOjpkZWNyZW1l
bnQoKQpAQCAtNzIsMzQgKzc5LDQwIEBAIHZvaWQgUG9zaXRpb25JdGVyYXRvcjo6ZGVjcmVtZW50
KCkKICAgICBpZiAoIW1fYW5jaG9yTm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1f
bm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvcikgewotICAgICAgICBtX2FuY2hvck5vZGUgPSBtX25v
ZGVBZnRlclBvc2l0aW9uSW5BbmNob3ItPnByZXZpb3VzU2libGluZygpOwotICAgICAgICBpZiAo
bV9hbmNob3JOb2RlKSB7Ci0gICAgICAgICAgICBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3Ig
PSAwOwotICAgICAgICAgICAgbV9vZmZzZXRJbkFuY2hvciA9IG1fYW5jaG9yTm9kZS0+aGFzQ2hp
bGROb2RlcygpID8gMCA6IGxhc3RPZmZzZXRGb3JFZGl0aW5nKG1fYW5jaG9yTm9kZSk7Ci0gICAg
ICAgIH0gZWxzZSB7CisgICAgaWYgKG1fYW5jaG9yTm9kZS0+aGFzQ2hpbGROb2RlcygpKSB7Cisg
ICAgICAgIGlmIChtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IpIHsKKyAgICAgICAgICAgIE5v
ZGUqIG5vZGVCZWZvcmVQb3NpdGlvbiA9IG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvci0+cHJl
dmlvdXNTaWJsaW5nKCk7CisgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIG5vZGUgYmVmb3Jl
IHRoaXMgcG9zaXRpb24sIGp1bXAgaW50byB0aGUgbGFzdCBwb3NpdGlvbiBpbiB0aGF0IG5vZGUK
KyAgICAgICAgICAgIGlmIChub2RlQmVmb3JlUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBt
X25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IgPSAwOworICAgICAgICAgICAgICAgIG1fb2Zmc2V0
SW5BbmNob3IgPSBub2RlQmVmb3JlUG9zaXRpb24tPmhhc0NoaWxkTm9kZXMoKSA/IDAgOiBsYXN0
T2Zmc2V0Rm9yRWRpdGluZyhub2RlQmVmb3JlUG9zaXRpb24pOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSB3ZSdyZSBpbiB0
aGUgZmlyc3QgcG9zaXRpb24gaW4gYSBjb250YWluZXIgbm9kZSwganVtcCBvdXQgdG8gYmVmb3Jl
IHRoZSBjb250YWluZXIgaW4gdGhlIHBhcmVudC4KKyAgICAgICAgICAgIEFTU0VSVChtX25vZGVB
ZnRlclBvc2l0aW9uSW5BbmNob3ItPnBhcmVudE5vZGUoKSk7CiAgICAgICAgICAgICBtX25vZGVB
ZnRlclBvc2l0aW9uSW5BbmNob3IgPSBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3ItPnBhcmVu
dE5vZGUoKTsKICAgICAgICAgICAgIG1fYW5jaG9yTm9kZSA9IG1fbm9kZUFmdGVyUG9zaXRpb25J
bkFuY2hvci0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgbV9vZmZzZXRJbkFuY2hvciA9IDA7
CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuOworICAgICAg
ICAvLyBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IgaXMgbnVsbCwgc28gd2UgbXVzdCBiZSBh
dCB0aGUgbGFzdCBwb3NpdGlvbiBpbiBhIGNvbnRhaW5lciBub2RlCisgICAgICAgIC8vIGp1bXAg
aW50byB0aGUgY2hpbGQgbm9kZSBpbiB0aGlzIGNvbnRhaW5lci4KKyAgICAgICAgbV9hbmNob3JO
b2RlID0gbV9hbmNob3JOb2RlLT5sYXN0Q2hpbGQoKTsKKyAgICAgICAgaWYgKCFtX2FuY2hvck5v
ZGUtPmhhc0NoaWxkTm9kZXMoKSkKKyAgICAgICAgICAgIG1fb2Zmc2V0SW5BbmNob3IgPSBsYXN0
T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpOwogICAgIH0KIAogICAgIGlmIChtX29mZnNl
dEluQW5jaG9yKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5BbmNob3IgPSBQb3NpdGlvbjo6dW5jaGVj
a2VkUHJldmlvdXNPZmZzZXQobV9hbmNob3JOb2RlLCBtX29mZnNldEluQW5jaG9yKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBpZiAobV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpIHsKLSAg
ICAgICAgICAgIG1fYW5jaG9yTm9kZSA9IG1fYW5jaG9yTm9kZS0+bGFzdENoaWxkKCk7Ci0gICAg
ICAgICAgICBpZiAoIW1fYW5jaG9yTm9kZS0+aGFzQ2hpbGROb2RlcygpKQotICAgICAgICAgICAg
ICAgIG1fb2Zmc2V0SW5BbmNob3IgPSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5j
aG9yID0gbV9hbmNob3JOb2RlOwotICAgICAgICAgICAgbV9hbmNob3JOb2RlID0gbV9hbmNob3JO
b2RlLT5wYXJlbnROb2RlKCk7Ci0gICAgICAgIH0KKyAgICAgICAgcmV0dXJuOwogICAgIH0KKwor
ICAgIC8vIFdlIG11c3QgYmUgYXQgdGhlIGZpcnN0IHBvc2l0aW9uIGluIGEgbm9uLWNvbnRhaW5l
ciAodGV4dCkgbm9kZQorICAgIG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvciA9IG1fYW5jaG9y
Tm9kZTsKKyAgICBtX2FuY2hvck5vZGUgPSBtX2FuY2hvck5vZGUtPnBhcmVudE5vZGUoKTsKIH0K
IAotYm9vbCBQb3NpdGlvbkl0ZXJhdG9yOjphdFN0YXJ0KCkgY29uc3QKK2Jvb2wgUG9zaXRpb25J
dGVyYXRvcjo6YXRTdGFydE9mVHJlZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2FuY2hvck5vZGUp
CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTA4LDcgKzEyMSw3IEBAIGJvb2wgUG9zaXRpb25J
dGVyYXRvcjo6YXRTdGFydCgpIGNvbnN0CiAgICAgcmV0dXJuICghbV9hbmNob3JOb2RlLT5oYXND
aGlsZE5vZGVzKCkgJiYgIW1fb2Zmc2V0SW5BbmNob3IpIHx8IChtX25vZGVBZnRlclBvc2l0aW9u
SW5BbmNob3IgJiYgIW1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvci0+cHJldmlvdXNTaWJsaW5n
KCkpOwogfQogCi1ib29sIFBvc2l0aW9uSXRlcmF0b3I6OmF0RW5kKCkgY29uc3QKK2Jvb2wgUG9z
aXRpb25JdGVyYXRvcjo6YXRFbmRPZlRyZWUoKSBjb25zdAogewogICAgIGlmICghbV9hbmNob3JO
b2RlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExNywyMiArMTMwLDMzIEBAIGJvb2wgUG9z
aXRpb25JdGVyYXRvcjo6YXRFbmQoKSBjb25zdAogICAgIHJldHVybiAhbV9hbmNob3JOb2RlLT5w
YXJlbnROb2RlKCkgJiYgKG1fYW5jaG9yTm9kZS0+aGFzQ2hpbGROb2RlcygpIHx8IG1fb2Zmc2V0
SW5BbmNob3IgPj0gbGFzdE9mZnNldEZvckVkaXRpbmcobV9hbmNob3JOb2RlKSk7CiB9CiAKLWJv
b2wgUG9zaXRpb25JdGVyYXRvcjo6YXRTdGFydE9mTm9kZSgpIGNvbnN0Citib29sIFBvc2l0aW9u
SXRlcmF0b3I6OmF0Rmlyc3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCkgY29uc3QKIHsKICAgICBp
ZiAoIW1fYW5jaG9yTm9kZSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKCFtX25vZGVB
ZnRlclBvc2l0aW9uSW5BbmNob3IpCi0gICAgICAgIHJldHVybiAhbV9hbmNob3JOb2RlLT5oYXND
aGlsZE5vZGVzKCkgJiYgIW1fb2Zmc2V0SW5BbmNob3I7Ci0gICAgcmV0dXJuICFtX25vZGVBZnRl
clBvc2l0aW9uSW5BbmNob3ItPnByZXZpb3VzU2libGluZygpOworICAgIC8vIElmIHdlJ3JlIHRy
YWNraW5nIHdoYXQgdGhlIG5vZGUgYWZ0ZXIgdGhlIHBvc2l0aW9uIGlzLCB0aGVuIHRoaXMKKyAg
ICAvLyBpcyB0aGUgZmlyc3QgcG9zaXRpb24gaWYgdGhlcmUgYXJlIG5vIG5vZGVzIGJlZm9yZSB0
aGF0IG5vZGUuCisgICAgaWYgKG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvcikgeworICAgICAg
ICBBU1NFUlQobV9vZmZzZXRJbkFuY2hvciA9PSAwKTsKKyAgICAgICAgcmV0dXJuICFtX25vZGVB
ZnRlclBvc2l0aW9uSW5BbmNob3ItPnByZXZpb3VzU2libGluZygpOworICAgIH0KKyAgICByZXR1
cm4gIW1fYW5jaG9yTm9kZS0+aGFzQ2hpbGROb2RlcygpICYmICFtX29mZnNldEluQW5jaG9yOwog
fQogCi1ib29sIFBvc2l0aW9uSXRlcmF0b3I6OmF0RW5kT2ZOb2RlKCkgY29uc3QKK2Jvb2wgUG9z
aXRpb25JdGVyYXRvcjo6YXRMYXN0RWRpdGluZ1Bvc2l0aW9uRm9yTm9kZSgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2FuY2hvck5vZGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChtX25v
ZGVBZnRlclBvc2l0aW9uSW5BbmNob3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1
cm4gbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkgfHwgbV9vZmZzZXRJbkFuY2hvciA+PSBs
YXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpOworICAgIC8vIElmIHRoZSBub2RlIGhh
cyBjaGlsZCBub2RlcywgdGhlbiB3ZSB0cmFjayBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IK
KyAgICAvLyBpbnN0ZWFkIG9mIHRoZSBvZmZzZXQgaW50byB0aGUgbm9kZSwgc28gaWYgbV9ub2Rl
QWZ0ZXJQb3NpdGlvbkluQW5jaG9yCisgICAgLy8gaXMgbnVsbCBhbmQgdGhpcyBoYXMgY2hpbGQg
bm9kZXMsIHRoZW4gd2UncmUgYWxyZWFkeSBhdCB0aGUgbGFzdCBwb3NpdGlvbi4KKyAgICBpZiAo
bV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpIHsKKyAgICAgICAgQVNTRVJUKG1fb2Zmc2V0
SW5BbmNob3IgPT0gMCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4g
bV9vZmZzZXRJbkFuY2hvciA+PSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpOwog
fQogCiBib29sIFBvc2l0aW9uSXRlcmF0b3I6OmlzQ2FuZGlkYXRlKCkgY29uc3QKQEAgLTE1NCwx
MSArMTc4LDExIEBAIGJvb2wgUG9zaXRpb25JdGVyYXRvcjo6aXNDYW5kaWRhdGUoKSBjb25zdAog
ICAgICAgICByZXR1cm4gUG9zaXRpb24oKnRoaXMpLmluUmVuZGVyZWRUZXh0KCkgJiYgIVBvc2l0
aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShtX2FuY2hvck5vZGUpOwogCiAgICAgaWYgKGlzVGFi
bGVFbGVtZW50KG1fYW5jaG9yTm9kZSkgfHwgZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9y
Tm9kZSkpCi0gICAgICAgIHJldHVybiAoYXRTdGFydE9mTm9kZSgpIHx8IGF0RW5kT2ZOb2RlKCkp
ICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUobV9hbmNob3JOb2RlLT5wYXJlbnQo
KSk7CisgICAgICAgIHJldHVybiAoYXRGaXJzdEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoKSB8fCBh
dExhc3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCkpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNl
bGVjdE5vbmUobV9hbmNob3JOb2RlLT5wYXJlbnQoKSk7CiAKICAgICBpZiAoIW1fYW5jaG9yTm9k
ZS0+aGFzVGFnTmFtZShodG1sVGFnKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSAmJiAhUG9z
aXRpb246Omhhc1JlbmRlcmVkTm9uQW5vbnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KHJlbmRl
cmVyKSAmJgogICAgICAgICh0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+aGVpZ2h0KCkgfHwgbV9h
bmNob3JOb2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKSkKLSAgICAgICAgcmV0dXJuIGF0U3RhcnRP
Zk5vZGUoKSAmJiAhUG9zaXRpb246Om5vZGVJc1VzZXJTZWxlY3ROb25lKG1fYW5jaG9yTm9kZSk7
CisgICAgICAgIHJldHVybiBhdEZpcnN0RWRpdGluZ1Bvc2l0aW9uRm9yTm9kZSgpICYmICFQb3Np
dGlvbjo6bm9kZUlzVXNlclNlbGVjdE5vbmUobV9hbmNob3JOb2RlKTsKICAgICAKICAgICByZXR1
cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgg
Yi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKaW5kZXggMTRmMTIzNS4uYWViNjk0YSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCisrKyBiL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaApAQCAtNTcsMTYgKzU3LDIwIEBAIHB1YmxpYzoKICAgICBO
b2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gbV9hbmNob3JOb2RlOyB9CiAgICAgaW50IG9mZnNl
dEluTGVhZk5vZGUoKSBjb25zdCB7IHJldHVybiBtX29mZnNldEluQW5jaG9yOyB9CiAKLSAgICBi
b29sIGF0U3RhcnQoKSBjb25zdDsKLSAgICBib29sIGF0RW5kKCkgY29uc3Q7Ci0gICAgYm9vbCBh
dFN0YXJ0T2ZOb2RlKCkgY29uc3Q7Ci0gICAgYm9vbCBhdEVuZE9mTm9kZSgpIGNvbnN0OworICAg
IC8vIFRoZXNlIGNhbiBiZSBlaXRoZXIgaW5zaWRlIG9yIGp1c3QgYmVmb3JlL2FmdGVyIHRoZSBu
b2RlLCBkZXBlbmRpbmcgb24KKyAgICAvLyBpZiB0aGUgbm9kZSBpcyBpZ25vcmVkIGJ5IGVkaXRp
bmcgb3Igbm90LgorICAgIGJvb2wgYXRGaXJzdEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoKSBjb25z
dDsKKyAgICBib29sIGF0TGFzdEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoKSBjb25zdDsKKworICAg
IGJvb2wgYXRTdGFydE9mVHJlZSgpIGNvbnN0OworICAgIGJvb2wgYXRFbmRPZlRyZWUoKSBjb25z
dDsKKwogICAgIGJvb2wgaXNDYW5kaWRhdGUoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBOb2Rl
KiBtX2FuY2hvck5vZGU7CiAgICAgTm9kZSogbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yOyAv
LyBJZiB0aGlzIGlzIG5vbi1udWxsLCBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3ItPnBhcmVu
dE5vZGUoKSA9PSBtX2FuY2hvck5vZGU7Ci0gICAgaW50IG1fb2Zmc2V0SW5BbmNob3I7CisgICAg
aW50IG1fb2Zmc2V0SW5BbmNob3I7IC8vIFRoaXMgaXMgMCB3aGVuIG1fbm9kZUFmdGVyUG9zaXRp
b25JbkFuY2hvciBpcyBub24tbnVsbAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5oIGIvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVQb3NpdGlvbi5oCmluZGV4IDQwM2M4MTYuLjY0ZjljZWUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaAorKysgYi9XZWJDb3JlL2VkaXRpbmcv
VmlzaWJsZVBvc2l0aW9uLmgKQEAgLTQ2LDcgKzQ2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICNkZWZpbmUgVlBfVVBTVFJFQU1fSUZfUE9TU0lCTEUgVVBTVFJFQU0KIAogY2xhc3MgSW5saW5l
Qm94OworY2xhc3MgUG9zaXRpb25JdGVyYXRvcjsKIAorLy8gVmlzaWJsZVBvc2l0aW9ucyBhcmUg
c3VwcG9zZWQgdG8gYmUgcG9zaXRpb25zIHRoZSB1c2VyIGNhbiBnZW5lcmF0ZSB1c2luZyBhbiBp
bnB1dCBkZXZpY2UuCisvLyBUaGVyZSBhcmUgbWFueSBQb3NpdGlvbiBvYmplY3RzIHdoaWNoIG5v
cm1hbGl6ZSB0byB0aGUgc2FtZSBWaXNpYmxlUG9zaXRpb24KKy8vIFZpc2libGVQb3NpdGlvbnMg
YXJlIG5vdCB0aGUgb25seSBQb3NpdGlvbnMgYXQgd2hpY2ggdGV4dCBpbnNlcnRpb24gd291bGQg
YmUKKy8vIHZhbGlkIGluIHRoZSBET00sIGJ1dCBjdXJyZW50bHkgYXJlIHRoZSBvbmx5IHBvc2l0
aW9ucyB3ZSBhbGxvdyB0ZXh0IGluc2VydGlvbiAoYnVnIDE1MjU2KS4KIGNsYXNzIFZpc2libGVQ
b3NpdGlvbiB7CiBwdWJsaWM6CiAgICAgLy8gTk9URTogVVBTVFJFQU0gYWZmaW5pdHkgd2lsbCBi
ZSB1c2VkIG9ubHkgaWYgcG9zIGlzIGF0IGVuZCBvZiBhIHdyYXBwZWQgbGluZSwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuY3BwCmluZGV4IDA1NWMzYTcuLmYzMzI0MjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZWRpdGluZy9odG1sZWRpdGluZy5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIGJvb2wgaXNDb250ZW50RWRpdGFibGUoY29uc3QgTm9k
ZSogbm9kZSkKIFBvc2l0aW9uIG5leHRDYW5kaWRhdGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9u
KQogewogICAgIFBvc2l0aW9uSXRlcmF0b3IgcCA9IHBvc2l0aW9uOwotICAgIHdoaWxlICghcC5h
dEVuZCgpKSB7CisgICAgd2hpbGUgKCFwLmF0RW5kT2ZUcmVlKCkpIHsKICAgICAgICAgcC5pbmNy
ZW1lbnQoKTsKICAgICAgICAgaWYgKHAuaXNDYW5kaWRhdGUoKSkKICAgICAgICAgICAgIHJldHVy
biBwOwpAQCAtMjMyLDcgKzIzMiw3IEBAIFBvc2l0aW9uIG5leHRWaXN1YWxseURpc3RpbmN0Q2Fu
ZGlkYXRlKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikKIFBvc2l0aW9uIHByZXZpb3VzQ2FuZGlk
YXRlKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBQb3NpdGlvbkl0ZXJhdG9yIHAg
PSBwb3NpdGlvbjsKLSAgICB3aGlsZSAoIXAuYXRTdGFydCgpKSB7CisgICAgd2hpbGUgKCFwLmF0
U3RhcnRPZlRyZWUoKSkgewogICAgICAgICBwLmRlY3JlbWVudCgpOwogICAgICAgICBpZiAocC5p
c0NhbmRpZGF0ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHA7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>