<?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>23389</bug_id>
          
          <creation_ts>2009-01-16 14:30:21 -0800</creation_ts>
          <short_desc>Clean up ApplyStyleCommand and deploy a bit more PassRefPtr</short_desc>
          <delta_ts>2009-01-16 16:35:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Nobody">webkit-unassigned</assigned_to>
          <cc>justin.garcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>106114</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-16 14:30:21 -0800</bug_when>
    <thetext>Clean up ApplyStyleCommand and deploy a bit more PassRefPtr

Patch coming...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106115</commentid>
    <comment_count>1</comment_count>
      <attachid>26807</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-16 14:34:48 -0800</bug_when>
    <thetext>Created attachment 26807
Small cleanups

 WebCore/ChangeLog                                  |   37 ++++++++++++++++++++
 WebCore/editing/ApplyStyleCommand.cpp              |   35 ++++++-------------
 WebCore/editing/ApplyStyleCommand.h                |    2 +-
 WebCore/editing/CompositeEditCommand.cpp           |    7 ++--
 WebCore/editing/IndentOutdentCommand.cpp           |    4 +-
 WebCore/editing/InsertLineBreakCommand.cpp         |    8 ++--
 .../editing/InsertParagraphSeparatorCommand.cpp    |    2 +-
 WebCore/editing/InsertTextCommand.cpp              |    2 +-
 WebCore/editing/ModifySelectionListLevel.cpp       |    4 +-
 WebCore/editing/ReplaceSelectionCommand.cpp        |   24 ++++++------
 WebCore/editing/ReplaceSelectionCommand.h          |    6 ++--
 11 files changed, 77 insertions(+), 54 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106117</commentid>
    <comment_count>2</comment_count>
      <attachid>26807</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-01-16 14:43:21 -0800</bug_when>
    <thetext>Comment on attachment 26807
Small cleanups

-    if (styleChange.applyBold()) {
-        RefPtr&lt;Element&gt; boldElement = document()-&gt;createElementNS(xhtmlNamespaceURI, &quot;b&quot;, ec);
-        ASSERT(ec == 0);
-        insertNodeBefore(boldElement.get(), startNode);
-        surroundNodeRangeWithElement(startNode, endNode, boldElement.get());
-    }
+    if (styleChange.applyBold())
+        surroundNodeRangeWithElement(startNode, endNode, document()-&gt;createElementNS(xhtmlNamespaceURI, &quot;b&quot;, ec));

You no longer ASSERT that createElementNS completed without error, I suppose if it encounters an error it will return 0 and that will be caught by surroundNodeRangeWithElement, ya?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106143</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-16 16:35:22 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/editing/ApplyStyleCommand.cpp
	M	WebCore/editing/ApplyStyleCommand.h
	M	WebCore/editing/CompositeEditCommand.cpp
	M	WebCore/editing/IndentOutdentCommand.cpp
	M	WebCore/editing/InsertLineBreakCommand.cpp
	M	WebCore/editing/InsertParagraphSeparatorCommand.cpp
	M	WebCore/editing/InsertTextCommand.cpp
	M	WebCore/editing/ModifySelectionListLevel.cpp
	M	WebCore/editing/ReplaceSelectionCommand.cpp
	M	WebCore/editing/ReplaceSelectionCommand.h
Committed r39997

Yeah, the ASSERT was unnecessary.  Thanks for the review!
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26807</attachid>
            <date>2009-01-16 14:34:48 -0800</date>
            <delta_ts>2009-01-16 14:43:21 -0800</delta_ts>
            <desc>Small cleanups</desc>
            <filename>Small-cleanups.patch</filename>
            <type>text/plain</type>
            <size>17007</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MDVlZDYzNGFlYWEyZGMxMWI1MjMyOWI0MWJjNzk5OTU2MzFjZDRhNQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NzY2NmExLi5jN2E3ZmI0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQwIEBACisyMDA5LTAxLTE2ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IHN1cnJvdW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQgY2FsbCBpbnNlcnROb2RlQmVmb3JlIGltcGxp
Y2l0bHkKKyAgICAgICAgTWFrZSBpbnNlcnROb2RlQmVmb3JlIHRha2UgUGFzc1JlZlB0cgorICAg
ICAgICBDbGVhbiB1cCB0aGUgdXNlIG9mIFBhc3NSZWZQdHIgdnMuIHJhdyBwb2ludGVycyBhIGZl
dyBwbGFjZXMgaW4gdGhlIGVkaXRpbmcgY29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg5CisKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjphcHBs
eVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVD
b21tYW5kOjphcHBseVRleHREZWNvcmF0aW9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlTdHlsZUNvbW1hbmQ6OnN1cnJvdW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFkZElubGluZVN0eWxlSWZOZWVkZWQpOgorICAg
ICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnROb2RlQXQpOgorICAgICAgICAqIGVkaXRpbmcvSW5kZW50T3V0ZGVudENv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5kZW50T3V0ZGVudENvbW1hbmQ6OnByZXBh
cmVCbG9ja3F1b3RlTGV2ZWxGb3JJbnNlcnRpb24pOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
TGluZUJyZWFrQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRMaW5lQnJlYWtD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGFiKToK
KyAgICAgICAgKiBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbENvbW1hbmQ6OmRvQXBwbHkpOgor
ICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVwbGFjZW1lbnRGcmFnbWVudDo6cmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bik6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlbWVudEZyYWdtZW50OjppbnNlcnROb2RlQmVm
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VtZW50RnJhZ21lbnQ6OnJlbW92ZUludGVy
Y2hhbmdlTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omlu
c2VydE5vZGVBZnRlckFuZFVwZGF0ZU5vZGVzSW5zZXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVBdEFuZFVwZGF0ZU5vZGVzSW5zZXJ0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmVBbmRVcGRhdGVOb2Rlc0luc2VydGVkKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmg6CisKIDIwMDktMDEtMTYgIERhdmlkIEh5YXR0ICA8aHlhdHRA
YXBwbGUuY29tPgogCiAgICAgICAgIElubGluZSB0aGUgbWV0aG9kcyBvZiBGb250IGZvciBvYnRh
aW5pbmcgbWV0cmljcyBzdWNoIGFzIGFzY2VudCwgZGVzY2VudCBhbmQgbGluZSBzcGFjaW5nLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggODk4OGRjZS4uNmE2MTk5MSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC01MjcsNyArNTI3LDYgQEAg
dm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbgogICAgICAgICAgICAgLy8gTGFzdCBzdHlsZWQgbm9kZSB3
YXMgbm90IHBhcmVudCBub2RlIG9mIHRoaXMgdGV4dCBub2RlLCBidXQgd2Ugd2lzaCB0byBzdHls
ZSB0aGlzCiAgICAgICAgICAgICAvLyB0ZXh0IG5vZGUuIFRvIG1ha2UgdGhpcyBwb3NzaWJsZSwg
YWRkIGEgc3R5bGUgc3BhbiB0byBzdXJyb3VuZCB0aGlzIHRleHQgbm9kZS4KICAgICAgICAgICAg
IFJlZlB0cjxIVE1MRWxlbWVudD4gc3BhbiA9IGNyZWF0ZVN0eWxlU3BhbkVsZW1lbnQoZG9jdW1l
bnQoKSk7Ci0gICAgICAgICAgICBpbnNlcnROb2RlQmVmb3JlKHNwYW4uZ2V0KCksIG5vZGUpOwog
ICAgICAgICAgICAgc3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChub2RlLCBub2RlLCBzcGFu
LmdldCgpKTsKICAgICAgICAgICAgIGVsZW1lbnQgPSBzcGFuLnJlbGVhc2UoKTsKICAgICAgICAg
fSAgZWxzZSB7CkBAIC0xMDkwLDcgKzEwODksNiBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjph
cHBseVRleHREZWNvcmF0aW9uU3R5bGUoTm9kZSAqbm9kZSwgQ1NTTXV0YWJsZVN0eWxlRGVjbAog
CiAgICAgaWYgKG5vZGUtPmlzVGV4dE5vZGUoKSkgewogICAgICAgICBSZWZQdHI8SFRNTEVsZW1l
bnQ+IHN0eWxlU3BhbiA9IGNyZWF0ZVN0eWxlU3BhbkVsZW1lbnQoZG9jdW1lbnQoKSk7Ci0gICAg
ICAgIGluc2VydE5vZGVCZWZvcmUoc3R5bGVTcGFuLmdldCgpLCBub2RlKTsKICAgICAgICAgc3Vy
cm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChub2RlLCBub2RlLCBzdHlsZVNwYW4uZ2V0KCkpOwog
ICAgICAgICBub2RlID0gc3R5bGVTcGFuLmdldCgpOwogICAgIH0KQEAgLTE0MjgsMTMgKzE0MjYs
MTUgQEAgYm9vbCBBcHBseVN0eWxlQ29tbWFuZDo6bWVyZ2VFbmRXaXRoTmV4dElmSWRlbnRpY2Fs
KGNvbnN0IFBvc2l0aW9uICZzdGFydCwgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgQXBwbHlTdHlsZUNvbW1hbmQ6OnN1cnJvdW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQoTm9kZSAq
c3RhcnROb2RlLCBOb2RlICplbmROb2RlLCBFbGVtZW50ICplbGVtZW50KQordm9pZCBBcHBseVN0
eWxlQ29tbWFuZDo6c3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChOb2RlKiBzdGFydE5vZGUs
IE5vZGUqIGVuZE5vZGUsIFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKIHsKICAgICBBU1NF
UlQoc3RhcnROb2RlKTsKICAgICBBU1NFUlQoZW5kTm9kZSk7CiAgICAgQVNTRVJUKGVsZW1lbnQp
OworCisgICAgaW5zZXJ0Tm9kZUJlZm9yZShlbGVtZW50LCBzdGFydE5vZGUpOwogICAgIAotICAg
IE5vZGUgKm5vZGUgPSBzdGFydE5vZGU7CisgICAgTm9kZSogbm9kZSA9IHN0YXJ0Tm9kZTsKICAg
ICB3aGlsZSAoMSkgewogICAgICAgICBOb2RlICpuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9k
ZSgpOwogICAgICAgICBpZiAobm9kZS0+Y2hpbGROb2RlQ291bnQoKSA9PSAwICYmIG5vZGUtPnJl
bmRlcmVyKCkgJiYgbm9kZS0+cmVuZGVyZXIoKS0+aXNJbmxpbmUoKSkgewpAQCAtMTUxMyw3ICsx
NTEzLDYgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5saW5lU3R5bGVJZk5lZWRlZChD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiAqc3R5bGUKICAgICAgICAgaWYgKGZvbnRDb2xvckNo
YW5nZXNDb21wdXRlZFN0eWxlKGNvbXB1dGVkU3R5bGUsIHN0eWxlQ2hhbmdlKQogICAgICAgICAg
ICAgICAgIHx8IGZvbnRGYWNlQ2hhbmdlc0NvbXB1dGVkU3R5bGUoY29tcHV0ZWRTdHlsZSwgc3R5
bGVDaGFuZ2UpCiAgICAgICAgICAgICAgICAgfHwgZm9udFNpemVDaGFuZ2VzQ29tcHV0ZWRTdHls
ZShjb21wdXRlZFN0eWxlLCBzdHlsZUNoYW5nZSkpIHsKLSAgICAgICAgICAgIGluc2VydE5vZGVC
ZWZvcmUoZm9udEVsZW1lbnQuZ2V0KCksIHN0YXJ0Tm9kZSk7CiAgICAgICAgICAgICBpZiAoc3R5
bGVDaGFuZ2UuYXBwbHlGb250Q29sb3IoKSkKICAgICAgICAgICAgICAgICBmb250RWxlbWVudC0+
c2V0QXR0cmlidXRlKGNvbG9yQXR0ciwgc3R5bGVDaGFuZ2UuZm9udENvbG9yKCkpOwogICAgICAg
ICAgICAgaWYgKHN0eWxlQ2hhbmdlLmFwcGx5Rm9udEZhY2UoKSkKQEAgLTE1MjcsMjkgKzE1MjYs
MTcgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5saW5lU3R5bGVJZk5lZWRlZChDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbiAqc3R5bGUKICAgICBpZiAoc3R5bGVDaGFuZ2UuY3NzU3R5
bGUoKS5sZW5ndGgoKSA+IDApIHsKICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IHN0eWxlRWxlbWVu
dCA9IGNyZWF0ZVN0eWxlU3BhbkVsZW1lbnQoZG9jdW1lbnQoKSk7CiAgICAgICAgIHN0eWxlRWxl
bWVudC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgc3R5bGVDaGFuZ2UuY3NzU3R5bGUoKSk7Ci0g
ICAgICAgIGluc2VydE5vZGVCZWZvcmUoc3R5bGVFbGVtZW50LmdldCgpLCBzdGFydE5vZGUpOwot
ICAgICAgICBzdXJyb3VuZE5vZGVSYW5nZVdpdGhFbGVtZW50KHN0YXJ0Tm9kZSwgZW5kTm9kZSwg
c3R5bGVFbGVtZW50LmdldCgpKTsKKyAgICAgICAgc3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVu
dChzdGFydE5vZGUsIGVuZE5vZGUsIHN0eWxlRWxlbWVudC5yZWxlYXNlKCkpOwogICAgIH0KIAot
ICAgIGlmIChzdHlsZUNoYW5nZS5hcHBseUJvbGQoKSkgewotICAgICAgICBSZWZQdHI8RWxlbWVu
dD4gYm9sZEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50TlMoeGh0bWxOYW1lc3Bh
Y2VVUkksICJiIiwgZWMpOwotICAgICAgICBBU1NFUlQoZWMgPT0gMCk7Ci0gICAgICAgIGluc2Vy
dE5vZGVCZWZvcmUoYm9sZEVsZW1lbnQuZ2V0KCksIHN0YXJ0Tm9kZSk7Ci0gICAgICAgIHN1cnJv
dW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQoc3RhcnROb2RlLCBlbmROb2RlLCBib2xkRWxlbWVudC5n
ZXQoKSk7Ci0gICAgfQorICAgIGlmIChzdHlsZUNoYW5nZS5hcHBseUJvbGQoKSkKKyAgICAgICAg
c3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChzdGFydE5vZGUsIGVuZE5vZGUsIGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnROUyh4aHRtbE5hbWVzcGFjZVVSSSwgImIiLCBlYykpOwogCi0gICAg
aWYgKHN0eWxlQ2hhbmdlLmFwcGx5SXRhbGljKCkpIHsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+
IGl0YWxpY0VsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50TlMoeGh0bWxOYW1lc3Bh
Y2VVUkksICJpIiwgZWMpOwotICAgICAgICBBU1NFUlQoZWMgPT0gMCk7Ci0gICAgICAgIGluc2Vy
dE5vZGVCZWZvcmUoaXRhbGljRWxlbWVudC5nZXQoKSwgc3RhcnROb2RlKTsKLSAgICAgICAgc3Vy
cm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChzdGFydE5vZGUsIGVuZE5vZGUsIGl0YWxpY0VsZW1l
bnQuZ2V0KCkpOwotICAgIH0KKyAgICBpZiAoc3R5bGVDaGFuZ2UuYXBwbHlJdGFsaWMoKSkKKyAg
ICAgICAgc3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChzdGFydE5vZGUsIGVuZE5vZGUsIGRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnROUyh4aHRtbE5hbWVzcGFjZVVSSSwgImkiLCBlYykpOwog
ICAgIAotICAgIGlmIChtX3N0eWxlZElubGluZUVsZW1lbnQpIHsKLSAgICAgICAgUmVmUHRyPEVs
ZW1lbnQ+IGNsb25lZEVsZW1lbnQgPSBtX3N0eWxlZElubGluZUVsZW1lbnQtPmNsb25lRWxlbWVu
dCgpOwotICAgICAgICBpbnNlcnROb2RlQmVmb3JlKGNsb25lZEVsZW1lbnQuZ2V0KCksIHN0YXJ0
Tm9kZSk7Ci0gICAgICAgIHN1cnJvdW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQoc3RhcnROb2RlLCBl
bmROb2RlLCBjbG9uZWRFbGVtZW50LmdldCgpKTsKLSAgICB9CisgICAgaWYgKG1fc3R5bGVkSW5s
aW5lRWxlbWVudCkKKyAgICAgICAgc3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChzdGFydE5v
ZGUsIGVuZE5vZGUsIG1fc3R5bGVkSW5saW5lRWxlbWVudC0+Y2xvbmVFbGVtZW50KCkpOwogfQog
CiBmbG9hdCBBcHBseVN0eWxlQ29tbWFuZDo6Y29tcHV0ZWRGb250U2l6ZShjb25zdCBOb2RlICpu
b2RlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmggYi9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAppbmRleCA1ZDhiZWJmLi5hNDIyMjVk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAorKysgYi9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaApAQCAtOTEsNyArOTEsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbWVyZ2VFbmRXaXRoTmV4dElmSWRlbnRpY2FsKGNvbnN0IFBvc2l0aW9u
JiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCk7CiAgICAgdm9pZCBjbGVhbnVwVW5zdHlsZWRB
cHBsZVN0eWxlU3BhbnMoTm9kZSogZHVtbXlTcGFuQW5jZXN0b3IpOwogCi0gICAgdm9pZCBzdXJy
b3VuZE5vZGVSYW5nZVdpdGhFbGVtZW50KE5vZGUqIHN0YXJ0LCBOb2RlKiBlbmQsIEVsZW1lbnQq
IGVsZW1lbnQpOworICAgIHZvaWQgc3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChOb2RlKiBz
dGFydCwgTm9kZSogZW5kLCBQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICBmbG9hdCBjb21wdXRl
ZEZvbnRTaXplKGNvbnN0IE5vZGUqKTsKICAgICB2b2lkIGpvaW5DaGlsZFRleHROb2RlcyhOb2Rl
KiwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kKTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggZDc1YWE4Mi4uN2RkYjY1YiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysg
Yi9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0xNjUsMTQgKzE2
NSwxMyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFzc1JlZlB0
cjxOb2RlPiBpbnNlcnRDaGlsZCwgY29uc3QgUG9zaQogICAgICAgICAgICAgaW5zZXJ0Tm9kZUJl
Zm9yZShpbnNlcnRDaGlsZCwgY2hpbGQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhcHBl
bmROb2RlKGluc2VydENoaWxkLCBzdGF0aWNfY2FzdDxFbGVtZW50Kj4ocmVmQ2hpbGQpKTsKLSAg
ICB9IGVsc2UgaWYgKGNhcmV0TWluT2Zmc2V0KHJlZkNoaWxkKSA+PSBvZmZzZXQpIHsKKyAgICB9
IGVsc2UgaWYgKGNhcmV0TWluT2Zmc2V0KHJlZkNoaWxkKSA+PSBvZmZzZXQpCiAgICAgICAgIGlu
c2VydE5vZGVCZWZvcmUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkKTsKLSAgICB9IGVsc2UgaWYgKHJl
ZkNoaWxkLT5pc1RleHROb2RlKCkgJiYgY2FyZXRNYXhPZmZzZXQocmVmQ2hpbGQpID4gb2Zmc2V0
KSB7CisgICAgZWxzZSBpZiAocmVmQ2hpbGQtPmlzVGV4dE5vZGUoKSAmJiBjYXJldE1heE9mZnNl
dChyZWZDaGlsZCkgPiBvZmZzZXQpIHsKICAgICAgICAgc3BsaXRUZXh0Tm9kZShzdGF0aWNfY2Fz
dDxUZXh0ICo+KHJlZkNoaWxkKSwgb2Zmc2V0KTsKICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQpOwotICAgIH0gZWxzZSB7CisgICAgfSBlbHNlCiAgICAgICAg
IGluc2VydE5vZGVBZnRlcihpbnNlcnRDaGlsZCwgcmVmQ2hpbGQpOwotICAgIH0KIH0KIAogdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5kTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IFBhc3NSZWZQdHI8RWxlbWVudD4gcGFyZW50KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5n
L0luZGVudE91dGRlbnRDb21tYW5kLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50
Q29tbWFuZC5jcHAKaW5kZXggMDNjNTlkMy4uMjQyYWViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9l
ZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvSW5k
ZW50T3V0ZGVudENvbW1hbmQuY3BwCkBAIC0xMDMsOCArMTAzLDggQEAgUGFzc1JlZlB0cjxFbGVt
ZW50PiBJbmRlbnRPdXRkZW50Q29tbWFuZDo6cHJlcGFyZUJsb2NrcXVvdGVMZXZlbEZvckluc2Vy
dGlvbihWaXMKICAgICAvLyBBZGQgYW5vdGhlciBiciBiZWZvcmUgdGhlIHBsYWNlaG9sZGVyIGlm
IGl0IGNvbGxhcHNlZC4KICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvcyhQb3NpdGlvbihw
bGFjZWhvbGRlci5nZXQoKSwgMCkpOwogICAgIGlmICghaXNTdGFydE9mUGFyYWdyYXBoKHZpc2li
bGVQb3MpKQotICAgICAgICBpbnNlcnROb2RlQmVmb3JlKGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1
bWVudCgpKS5nZXQoKSwgcGxhY2Vob2xkZXIuZ2V0KCkpOwotICAgIHJldHVybiBwbGFjZWhvbGRl
ci5nZXQoKTsKKyAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShjcmVhdGVCcmVha0VsZW1lbnQoZG9j
dW1lbnQoKSksIHBsYWNlaG9sZGVyKTsKKyAgICByZXR1cm4gcGxhY2Vob2xkZXIucmVsZWFzZSgp
OwogfQogCiB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRSZWdpb24oKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwIGIvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwCmluZGV4IDA3ZjRjYjYuLjJlYzcx
YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNw
cAorKysgYi9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5jcHAKQEAgLTEx
Myw3ICsxMTMsNyBAQCB2b2lkIEluc2VydExpbmVCcmVha0NvbW1hbmQ6OmRvQXBwbHkoKQogICAg
ICAgICBpbnNlcnROb2RlQXQobm9kZVRvSW5zZXJ0LmdldCgpLCBwb3MpOwogICAgICAgICAKICAg
ICAgICAgaWYgKG5lZWRFeHRyYUxpbmVCcmVhaykKLSAgICAgICAgICAgIGluc2VydE5vZGVCZWZv
cmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFsc2UpLmdldCgpLCBub2RlVG9JbnNlcnQuZ2V0
KCkpOworICAgICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShub2RlVG9JbnNlcnQtPmNsb25lTm9k
ZShmYWxzZSksIG5vZGVUb0luc2VydCk7CiAgICAgICAgIAogICAgICAgICBWaXNpYmxlUG9zaXRp
b24gZW5kaW5nUG9zaXRpb24oUG9zaXRpb24obm9kZVRvSW5zZXJ0LmdldCgpLCAwKSk7CiAgICAg
ICAgIHNldEVuZGluZ1NlbGVjdGlvbihTZWxlY3Rpb24oZW5kaW5nUG9zaXRpb24pKTsKQEAgLTEz
NiwxMSArMTM2LDExIEBAIHZvaWQgSW5zZXJ0TGluZUJyZWFrQ29tbWFuZDo6ZG9BcHBseSgpCiAg
ICAgICAgIAogICAgICAgICAvLyBEbyB0aGUgc3BsaXQKICAgICAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgICAgIFRleHQgKnRleHROb2RlID0gc3RhdGljX2Nhc3Q8VGV4dCAqPihwb3Mu
bm9kZSgpKTsKKyAgICAgICAgVGV4dCogdGV4dE5vZGUgPSBzdGF0aWNfY2FzdDxUZXh0Kj4ocG9z
Lm5vZGUoKSk7CiAgICAgICAgIFJlZlB0cjxUZXh0PiB0ZXh0QmVmb3JlTm9kZSA9IGRvY3VtZW50
KCktPmNyZWF0ZVRleHROb2RlKHRleHROb2RlLT5zdWJzdHJpbmdEYXRhKDAsIHNlbGVjdGlvbi5z
dGFydCgpLm9mZnNldCgpLCBlYykpOwogICAgICAgICBkZWxldGVUZXh0RnJvbU5vZGUodGV4dE5v
ZGUsIDAsIHBvcy5vZmZzZXQoKSk7Ci0gICAgICAgIGluc2VydE5vZGVCZWZvcmUodGV4dEJlZm9y
ZU5vZGUuZ2V0KCksIHRleHROb2RlKTsKLSAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShub2RlVG9J
bnNlcnQuZ2V0KCksIHRleHROb2RlKTsKKyAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZSh0ZXh0QmVm
b3JlTm9kZSwgdGV4dE5vZGUpOworICAgICAgICBpbnNlcnROb2RlQmVmb3JlKG5vZGVUb0luc2Vy
dCwgdGV4dE5vZGUpOwogICAgICAgICBQb3NpdGlvbiBlbmRpbmdQb3NpdGlvbiA9IFBvc2l0aW9u
KHRleHROb2RlLCAwKTsKICAgICAgICAgCiAgICAgICAgIC8vIEhhbmRsZSB3aGl0ZXNwYWNlIHRo
YXQgb2NjdXJzIGFmdGVyIHRoZSBzcGxpdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCmluZGV4IDhkODI4MzYuLjMwZTAwNmUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5k
LmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZC5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICAvLyBmaW5kIGVuZGluZyBzZWxlY3Rpb24gcG9zaXRp
b24gZWFzaWx5IGJlZm9yZSBpbnNlcnRpbmcgdGhlIHBhcmFncmFwaAogICAgICAgICBwb3MgPSBw
b3MuZG93bnN0cmVhbSgpOwogICAgICAgICAKLSAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShibG9j
a1RvSW5zZXJ0LmdldCgpLCByZWZOb2RlKTsKKyAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShibG9j
a1RvSW5zZXJ0LCByZWZOb2RlKTsKICAgICAgICAgYXBwZW5kQmxvY2tQbGFjZWhvbGRlcihibG9j
a1RvSW5zZXJ0LmdldCgpKTsKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFNlbGVjdGlvbihQ
b3NpdGlvbihibG9ja1RvSW5zZXJ0LmdldCgpLCAwKSwgRE9XTlNUUkVBTSkpOwogICAgICAgICBh
cHBseVN0eWxlQWZ0ZXJJbnNlcnRpb24oc3RhcnRCbG9jayk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRl
eHRDb21tYW5kLmNwcAppbmRleCAyZjQyZjcyLi40NmU5YTk0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRUZXh0Q29tbWFuZC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBAQCBQb3NpdGlvbiBJbnNlcnRUZXh0
Q29tbWFuZDo6aW5zZXJ0VGFiKGNvbnN0IFBvc2l0aW9uJiBwb3MpCiAgICAgICAgICAgICAvLyBp
bnNlcnQgdGhlIHNwYW4gYmVmb3JlIGl0LgogICAgICAgICAgICAgaWYgKG9mZnNldCA+IDApCiAg
ICAgICAgICAgICAgICAgc3BsaXRUZXh0Tm9kZSh0ZXh0Tm9kZSwgb2Zmc2V0KTsKLSAgICAgICAg
ICAgIGluc2VydE5vZGVCZWZvcmUoc3Bhbk5vZGUuZ2V0KCksIHRleHROb2RlKTsKKyAgICAgICAg
ICAgIGluc2VydE5vZGVCZWZvcmUoc3Bhbk5vZGUsIHRleHROb2RlKTsKICAgICAgICAgfQogICAg
IH0KICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0
TGV2ZWwuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAK
aW5kZXggN2MxNDg2OC4uOWJjNzNjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL01vZGlm
eVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL01vZGlmeVNlbGVj
dGlvbkxpc3RMZXZlbC5jcHAKQEAgLTE5Niw5ICsxOTYsOSBAQCB2b2lkIEluY3JlYXNlU2VsZWN0
aW9uTGlzdExldmVsQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgICAgICAgICAgbmV3UGFyZW50
ID0gY3JlYXRlVW5vcmRlcmVkTGlzdEVsZW1lbnQoZG9jdW1lbnQoKSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShuZXdQYXJlbnQu
Z2V0KCksIHN0YXJ0TGlzdENoaWxkKTsKKyAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShuZXdQYXJl
bnQsIHN0YXJ0TGlzdENoaWxkKTsKICAgICAgICAgYXBwZW5kU2libGluZ05vZGVSYW5nZShzdGFy
dExpc3RDaGlsZCwgZW5kTGlzdENoaWxkLCBuZXdQYXJlbnQuZ2V0KCkpOwotICAgICAgICBtX2xp
c3RFbGVtZW50ID0gbmV3UGFyZW50LmdldCgpOworICAgICAgICBtX2xpc3RFbGVtZW50ID0gbmV3
UGFyZW50LnJlbGVhc2UoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDBhMTljNWUuLjM2M2VkMWIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtODAsNyArODAsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVzdG9yZVRlc3RSZW5kZXJpbmdOb2Rlc1RvRnJhZ21lbnQoTm9kZSop
OwogICAgIHZvaWQgcmVtb3ZlSW50ZXJjaGFuZ2VOb2RlcyhOb2RlKik7CiAgICAgCi0gICAgdm9p
ZCBpbnNlcnROb2RlQmVmb3JlKE5vZGUqIG5vZGUsIE5vZGUqIHJlZk5vZGUpOworICAgIHZvaWQg
aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIE5vZGUqIHJlZk5vZGUpOwog
CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBtX2ZyYWdtZW50OwpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgUmVwbGFjZW1lbnRG
cmFnbWVudDo6cmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihOb2RlICpub2RlKQogCiAgICAg
d2hpbGUgKFJlZlB0cjxOb2RlPiBuID0gbm9kZS0+Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAgIHJl
bW92ZU5vZGUobik7Ci0gICAgICAgIGluc2VydE5vZGVCZWZvcmUobi5nZXQoKSwgbm9kZSk7Cisg
ICAgICAgIGluc2VydE5vZGVCZWZvcmUobi5yZWxlYXNlKCksIG5vZGUpOwogICAgIH0KICAgICBy
ZW1vdmVOb2RlKG5vZGUpOwogfQpAQCAtMjAxLDEyICsyMDEsMTIgQEAgdm9pZCBSZXBsYWNlbWVu
dEZyYWdtZW50OjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKICAgICBBU1NFUlQo
ZWMgPT0gMCk7CiB9CiAKLXZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6aW5zZXJ0Tm9kZUJlZm9y
ZShOb2RlICpub2RlLCBOb2RlICpyZWZOb2RlKQordm9pZCBSZXBsYWNlbWVudEZyYWdtZW50Ojpp
bnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgTm9kZSogcmVmTm9kZSkKIHsK
ICAgICBpZiAoIW5vZGUgfHwgIXJlZk5vZGUpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0g
ICAgTm9kZSAqcGFyZW50ID0gcmVmTm9kZS0+cGFyZW50Tm9kZSgpOworICAgIE5vZGUqIHBhcmVu
dCA9IHJlZk5vZGUtPnBhcmVudE5vZGUoKTsKICAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0
dXJuOwogICAgICAgICAKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIFJlcGxhY2VtZW50RnJhZ21l
bnQ6OnJlbW92ZUludGVyY2hhbmdlTm9kZXMoTm9kZSogY29udGFpbmVyKQogICAgICAgICAgICAg
UmVmUHRyPE5vZGU+IG4gPSAwOwogICAgICAgICAgICAgd2hpbGUgKChuID0gbm9kZS0+Zmlyc3RD
aGlsZCgpKSkgewogICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUobik7Ci0gICAgICAgICAgICAg
ICAgaW5zZXJ0Tm9kZUJlZm9yZShuLmdldCgpLCBub2RlKTsKKyAgICAgICAgICAgICAgICBpbnNl
cnROb2RlQmVmb3JlKG4sIG5vZGUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmVtb3Zl
Tm9kZShub2RlKTsKICAgICAgICAgICAgIGlmIChuKQpAQCAtOTU1LDcgKzk1NSw3IEBAIHZvaWQg
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICAgICAgICAgIFJlZlB0
cjxOb2RlPiBub2RlID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWRpdGluZ1RleHROb2RlKGNvbGxhcHNl
V2hpdGVTcGFjZSA/IG5vbkJyZWFraW5nU3BhY2VTdHJpbmcoKSA6ICIgIik7CiAgICAgICAgICAg
ICAgICAgLy8gRG9uJ3QgdXBkYXRlTm9kZXNJbnNlcnRlZC4gIERvaW5nIHNvIHdvdWxkIHNldCBt
X2xhc3RMZWFmSW5zZXJ0ZWQgdG8gYmUgdGhlIG5vZGUgY29udGFpbmluZyB0aGUgCiAgICAgICAg
ICAgICAgICAgLy8gbGVhZGluZyBzcGFjZSwgYnV0IG1fbGFzdExlYWZJbnNlcnRlZCBpcyBzdXBw
b3NlZCB0byBtYXJrIHRoZSBlbmQgb2YgcGFzdGVkIGNvbnRlbnQuCi0gICAgICAgICAgICAgICAg
aW5zZXJ0Tm9kZUJlZm9yZShub2RlLmdldCgpLCBzdGFydE5vZGUpOworICAgICAgICAgICAgICAg
IGluc2VydE5vZGVCZWZvcmUobm9kZSwgc3RhcnROb2RlKTsKICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogVXNlIHBvc2l0aW9ucyB0byB0cmFjayB0aGUgc3RhcnQvZW5kIG9mIGluc2VydGVkIGNv
bnRlbnQuCiAgICAgICAgICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IG5vZGU7CiAgICAg
ICAgICAgICB9CkBAIC0xMDIzLDIyICsxMDIzLDIyIEBAIEVkaXRBY3Rpb24gUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAogICAgIHJldHVybiBtX2VkaXRBY3Rp
b247CiB9CiAKLXZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVBZnRlckFu
ZFVwZGF0ZU5vZGVzSW5zZXJ0ZWQoTm9kZSAqaW5zZXJ0Q2hpbGQsIE5vZGUgKnJlZkNoaWxkKQor
dm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyQW5kVXBkYXRlTm9k
ZXNJbnNlcnRlZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBOb2RlKiByZWZDaGlsZCkK
IHsKICAgICBpbnNlcnROb2RlQWZ0ZXIoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkKTsKLSAgICB1cGRh
dGVOb2Rlc0luc2VydGVkKGluc2VydENoaWxkKTsKKyAgICB1cGRhdGVOb2Rlc0luc2VydGVkKGlu
c2VydENoaWxkLmdldCgpKTsKIH0KIAotdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5z
ZXJ0Tm9kZUF0QW5kVXBkYXRlTm9kZXNJbnNlcnRlZChOb2RlICppbnNlcnRDaGlsZCwgY29uc3Qg
UG9zaXRpb24mIHApCit2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQXRB
bmRVcGRhdGVOb2Rlc0luc2VydGVkKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIGNvbnN0
IFBvc2l0aW9uJiBwKQogewogICAgIGluc2VydE5vZGVBdChpbnNlcnRDaGlsZCwgcCk7Ci0gICAg
dXBkYXRlTm9kZXNJbnNlcnRlZChpbnNlcnRDaGlsZCk7CisgICAgdXBkYXRlTm9kZXNJbnNlcnRl
ZChpbnNlcnRDaGlsZC5nZXQoKSk7CiB9CiAKLXZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
Omluc2VydE5vZGVCZWZvcmVBbmRVcGRhdGVOb2Rlc0luc2VydGVkKE5vZGUgKmluc2VydENoaWxk
LCBOb2RlICpyZWZDaGlsZCkKK3ZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmVBbmRVcGRhdGVOb2Rlc0luc2VydGVkKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hp
bGQsIE5vZGUqIHJlZkNoaWxkKQogewogICAgIGluc2VydE5vZGVCZWZvcmUoaW5zZXJ0Q2hpbGQs
IHJlZkNoaWxkKTsKLSAgICB1cGRhdGVOb2Rlc0luc2VydGVkKGluc2VydENoaWxkKTsKKyAgICB1
cGRhdGVOb2Rlc0luc2VydGVkKGluc2VydENoaWxkLmdldCgpKTsKIH0KIAogdm9pZCBSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2RlICpub2RlKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCA3NmYwYTU4Li4xOGRmZmE1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAor
KysgYi9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtNTAsOSAr
NTAsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21wbGV0ZUhUTUxSZXBsYWNlbWVudChjb25z
dCBQb3NpdGlvbiYgbGFzdFBvc2l0aW9uVG9TZWxlY3QpOwogCi0gICAgdm9pZCBpbnNlcnROb2Rl
QWZ0ZXJBbmRVcGRhdGVOb2Rlc0luc2VydGVkKE5vZGUqIGluc2VydENoaWxkLCBOb2RlKiByZWZD
aGlsZCk7Ci0gICAgdm9pZCBpbnNlcnROb2RlQXRBbmRVcGRhdGVOb2Rlc0luc2VydGVkKE5vZGUq
LCBjb25zdCBQb3NpdGlvbiYpOwotICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZUFuZFVwZGF0ZU5v
ZGVzSW5zZXJ0ZWQoTm9kZSogaW5zZXJ0Q2hpbGQsIE5vZGUqIHJlZkNoaWxkKTsKKyAgICB2b2lk
IGluc2VydE5vZGVBZnRlckFuZFVwZGF0ZU5vZGVzSW5zZXJ0ZWQoUGFzc1JlZlB0cjxOb2RlPiBp
bnNlcnRDaGlsZCwgTm9kZSogcmVmQ2hpbGQpOworICAgIHZvaWQgaW5zZXJ0Tm9kZUF0QW5kVXBk
YXRlTm9kZXNJbnNlcnRlZChQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOworICAg
IHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZUFuZFVwZGF0ZU5vZGVzSW5zZXJ0ZWQoUGFzc1JlZlB0cjxO
b2RlPiBpbnNlcnRDaGlsZCwgTm9kZSogcmVmQ2hpbGQpOwogCiAgICAgdm9pZCB1cGRhdGVOb2Rl
c0luc2VydGVkKE5vZGUqKTsKICAgICBib29sIHNob3VsZFJlbW92ZUVuZEJSKE5vZGUqLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsK
</data>
<flag name="review"
          id="12799"
          type_id="1"
          status="+"
          setter="justin.garcia"
    />
          </attachment>
      

    </bug>

</bugzilla>