<?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>43699</bug_id>
          
          <creation_ts>2010-08-08 18:02:17 -0700</creation_ts>
          <short_desc>Use getIdentifierValue to obtain direction and unicode-bidi properties in ApplyStyleCommand</short_desc>
          <delta_ts>2011-05-25 22:39:15 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>261948</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-08 18:02:17 -0700</bug_when>
    <thetext>Currently ApplyStyleCommand uses getPropertyCSSValue and static cast to CSSPrimitiveValue.  We should simplify this by calling getIdentifierValue in all places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261949</commentid>
    <comment_count>1</comment_count>
      <attachid>63853</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-08 18:27:06 -0700</bug_when>
    <thetext>Created attachment 63853
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261962</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-08 20:08:13 -0700</bug_when>
    <thetext>Attachment 63853 did not build on win:
Build output: http://queues.webkit.org/results/3635539</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262192</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-09 09:46:36 -0700</bug_when>
    <thetext>Attachment 63853 did not build on mac:
Build output: http://queues.webkit.org/results/3637508</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262284</commentid>
    <comment_count>4</comment_count>
      <attachid>63922</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-09 13:18:02 -0700</bug_when>
    <thetext>Created attachment 63922
initialized highestAncestorUnicodeBidi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262311</commentid>
    <comment_count>5</comment_count>
      <attachid>63922</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-08-09 14:02:06 -0700</bug_when>
    <thetext>Comment on attachment 63922
initialized highestAncestorUnicodeBidi

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262386</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-09 16:18:48 -0700</bug_when>
    <thetext>Committed r65013: &lt;http://trac.webkit.org/changeset/65013&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262422</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-09 17:06:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 63922 [details])
&gt; OK

Thanks for the review, Tony.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410200</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-25 22:39:15 -0700</bug_when>
    <thetext>I don&apos;t think the bug 60803 is anything to do with this one.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63853</attachid>
            <date>2010-08-08 18:27:06 -0700</date>
            <delta_ts>2010-08-09 13:17:59 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-43699-20100808182705.patch</filename>
            <type>text/plain</type>
            <size>14947</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDk1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDgtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IGdldElkZW50aWZpZXJWYWx1ZSB0byBvYnRhaW4gZGlyZWN0aW9uIGFuZCB1bmljb2RlLWJpZGkg
cHJvcGVydGllcyBpbiBBcHBseVN0eWxlQ29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM2OTkKKworICAgICAgICBEZXBsb3llZCBnZXRJZGVu
dGlmaWVyVmFsdWUgaW4gdmFyaW91cyBwYXJ0cyBvZiBBcHBseVN0eWxlQ29tbWFuZCB3aGVyZQor
ICAgICAgICBkaXJlY3Rpb24gYW5kIHVuaWNvZGUtYmlkaSBwcm9wZXJ0aWVzIHdlcmUgb2J0YWlu
ZWQgbWFudWFsbHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIHRoaXMgaXMgYSBjbGVh
bnVwLgorCisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRJZGVudGlmaWVyVmFsdWUpOiBUYWtlcyBDU1NTdHlsZURlY2xhcmF0aW9u
IGluc3RlYWQgb2YgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVN0eWxlQ29tbWFuZDo6c3BsaXRBbmNlc3RvcnNXaXRoVW5pY29kZUJpZGkpOiBDYWxs
cyBnZXRJZGVudGlmaWVyVmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFu
ZDo6cmVtb3ZlRW1iZWRkaW5nVXBUb0VuY2xvc2luZ0Jsb2NrKTogQ2FsbHMgZ2V0SWRlbnRpZmll
clZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5l
U3R5bGUpOiBDYWxscyBnZXRJZGVudGlmaWVyVmFsdWUuCisgICAgICAgICogZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5oOgorCiAyMDEwLTA4LTA4ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHJldmlzaW9uIDY0NjMxKQorKysgV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQy
LDcgKzE0Miw3IEBAIHZvaWQgU3R5bGVDaGFuZ2U6OnJlY29uY2lsZVRleHREZWNvcmF0aW8KICAg
ICAgICAgc3R5bGUtPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24pOwog
fQogCi1zdGF0aWMgaW50IGdldElkZW50aWZpZXJWYWx1ZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiogc3R5bGUsIGludCBwcm9wZXJ0eUlEKQorc3RhdGljIGludCBnZXRJZGVudGlmaWVyVmFs
dWUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIGludCBwcm9wZXJ0eUlEKQogewogICAgIGlm
ICghc3R5bGUpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNDc3LDcgKzQ3Nyw3IEBAIHZvaWQgcmVt
b3ZlU3R5bGVzQWRkZWRCeU5vZGUoQ1NTTXV0YWJsZVMKICAgICBwYXJlbnRTdHlsZS0+ZGlmZihz
dHlsZS5nZXQoKSk7CiAgICAgc3R5bGUtPmRpZmYoZWRpdGluZ1N0eWxlKTsKIH0KLSAgICAKKwog
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50KiBkb2N1bWVudCwg
Q1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVBy
b3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKICAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRv
Y3VtZW50KQogICAgICwgbV9zdHlsZShzdHlsZS0+bWFrZU11dGFibGUoKSkKQEAgLTc5Myw3ICs3
OTMsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpjbGVhbnVwVW5zdHlsZWRBCiAgICAgfQog
fQogCi1IVE1MRWxlbWVudCogQXBwbHlTdHlsZUNvbW1hbmQ6OnNwbGl0QW5jZXN0b3JzV2l0aFVu
aWNvZGVCaWRpKE5vZGUqIG5vZGUsIGJvb2wgYmVmb3JlLCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IGFsbG93ZWREaXJlY3Rpb24pCitIVE1MRWxlbWVudCogQXBwbHlTdHlsZUNvbW1hbmQ6OnNw
bGl0QW5jZXN0b3JzV2l0aFVuaWNvZGVCaWRpKE5vZGUqIG5vZGUsIGJvb2wgYmVmb3JlLCBpbnQg
YWxsb3dlZERpcmVjdGlvbikKIHsKICAgICAvLyBXZSBhcmUgYWxsb3dlZCB0byBsZWF2ZSB0aGUg
aGlnaGVzdCBhbmNlc3RvciB3aXRoIHVuaWNvZGUtYmlkaSB1bnNwbGl0IGlmIGl0IGlzIHVuaWNv
ZGUtYmlkaTogZW1iZWQgYW5kIGRpcmVjdGlvbjogYWxsb3dlZERpcmVjdGlvbi4KICAgICAvLyBJ
biB0aGF0IGNhc2UsIHdlIHJldHVybiB0aGUgdW5zcGxpdCBhbmNlc3Rvci4gT3RoZXJ3aXNlLCB3
ZSByZXR1cm4gMC4KQEAgLTgwMywxNiArODAzLDEzIEBAIEhUTUxFbGVtZW50KiBBcHBseVN0eWxl
Q29tbWFuZDo6c3BsaXRBbmMKIAogICAgIE5vZGUqIGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2Rl
QmlkaSA9IDA7CiAgICAgTm9kZSogbmV4dEhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSA9
IDA7Ci0gICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBoaWdoZXN0QW5jZXN0b3JVbmljb2Rl
QmlkaTsKKyAgICBpbnQgaGlnaGVzdEFuY2VzdG9yVW5pY29kZUJpZGk7CiAgICAgZm9yIChOb2Rl
KiBuID0gbm9kZS0+cGFyZW50KCk7IG4gIT0gYmxvY2s7IG4gPSBuLT5wYXJlbnQoKSkgewotICAg
ICAgICBSZWZQdHI8Q1NTVmFsdWU+IHVuaWNvZGVCaWRpID0gY29tcHV0ZWRTdHlsZShuKS0+Z2V0
UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsKLSAgICAgICAgaWYgKHVu
aWNvZGVCaWRpKSB7Ci0gICAgICAgICAgICBBU1NFUlQodW5pY29kZUJpZGktPmlzUHJpbWl0aXZl
VmFsdWUoKSk7Ci0gICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih1bmljb2RlQmlkaS5nZXQoKSktPmdldElkZW50KCkgIT0gQ1NTVmFsdWVOb3JtYWwpIHsKLSAg
ICAgICAgICAgICAgICBoaWdoZXN0QW5jZXN0b3JVbmljb2RlQmlkaSA9IHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4odW5pY29kZUJpZGkuZ2V0KCkpOwotICAgICAgICAgICAgICAgIG5l
eHRIaWdoZXN0QW5jZXN0b3JXaXRoVW5pY29kZUJpZGkgPSBoaWdoZXN0QW5jZXN0b3JXaXRoVW5p
Y29kZUJpZGk7Ci0gICAgICAgICAgICAgICAgaGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRp
ID0gbjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgaW50IHVuaWNvZGVCaWRpID0gZ2V0SWRlbnRp
ZmllclZhbHVlKGNvbXB1dGVkU3R5bGUobikuZ2V0KCksIENTU1Byb3BlcnR5VW5pY29kZUJpZGkp
OworICAgICAgICBpZiAodW5pY29kZUJpZGkgJiYgdW5pY29kZUJpZGkgIT0gQ1NTVmFsdWVOb3Jt
YWwpIHsKKyAgICAgICAgICAgIGhpZ2hlc3RBbmNlc3RvclVuaWNvZGVCaWRpID0gdW5pY29kZUJp
ZGk7CisgICAgICAgICAgICBuZXh0SGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpID0gaGln
aGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpOworICAgICAgICAgICAgaGlnaGVzdEFuY2VzdG9y
V2l0aFVuaWNvZGVCaWRpID0gbjsKICAgICAgICAgfQogICAgIH0KIApAQCAtODIxLDE2ICs4MTgs
MTQgQEAgSFRNTEVsZW1lbnQqIEFwcGx5U3R5bGVDb21tYW5kOjpzcGxpdEFuYwogCiAgICAgSFRN
TEVsZW1lbnQqIHVuc3BsaXRBbmNlc3RvciA9IDA7CiAKLSAgICBpZiAoYWxsb3dlZERpcmVjdGlv
biAmJiBoaWdoZXN0QW5jZXN0b3JVbmljb2RlQmlkaS0+Z2V0SWRlbnQoKSAhPSBDU1NWYWx1ZUJp
ZGlPdmVycmlkZSkgewotICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IGhpZ2hlc3RBbmNlc3RvckRp
cmVjdGlvbiA9IGNvbXB1dGVkU3R5bGUoaGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpKS0+
Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eURpcmVjdGlvbik7Ci0gICAgICAgIEFTU0VS
VChoaWdoZXN0QW5jZXN0b3JEaXJlY3Rpb24tPmlzUHJpbWl0aXZlVmFsdWUoKSk7Ci0gICAgICAg
IGlmIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGhpZ2hlc3RBbmNlc3RvckRpcmVj
dGlvbi5nZXQoKSktPmdldElkZW50KCkgPT0gYWxsb3dlZERpcmVjdGlvbi0+Z2V0SWRlbnQoKSAm
JiBoaWdoZXN0QW5jZXN0b3JXaXRoVW5pY29kZUJpZGktPmlzSFRNTEVsZW1lbnQoKSkgewotICAg
ICAgICAgICAgaWYgKCFuZXh0SGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpKQotICAgICAg
ICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGhpZ2hlc3RBbmNlc3Rv
cldpdGhVbmljb2RlQmlkaSk7CisgICAgaWYgKGFsbG93ZWREaXJlY3Rpb24gJiYgaGlnaGVzdEFu
Y2VzdG9yVW5pY29kZUJpZGkgIT0gQ1NTVmFsdWVCaWRpT3ZlcnJpZGUKKyAgICAgICAgJiYgZ2V0
SWRlbnRpZmllclZhbHVlKGNvbXB1dGVkU3R5bGUoaGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVC
aWRpKS5nZXQoKSwgQ1NTUHJvcGVydHlEaXJlY3Rpb24pID09IGFsbG93ZWREaXJlY3Rpb24KKyAg
ICAgICAgJiYgaGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpLT5pc0hUTUxFbGVtZW50KCkp
IHsKKyAgICAgICAgaWYgKCFuZXh0SGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpKQorICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oaGlnaGVzdEFuY2VzdG9y
V2l0aFVuaWNvZGVCaWRpKTsKIAotICAgICAgICAgICAgdW5zcGxpdEFuY2VzdG9yID0gc3RhdGlj
X2Nhc3Q8SFRNTEVsZW1lbnQqPihoaWdoZXN0QW5jZXN0b3JXaXRoVW5pY29kZUJpZGkpOwotICAg
ICAgICAgICAgaGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpID0gbmV4dEhpZ2hlc3RBbmNl
c3RvcldpdGhVbmljb2RlQmlkaTsKLSAgICAgICAgfQorICAgICAgICB1bnNwbGl0QW5jZXN0b3Ig
PSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlk
aSk7CisgICAgICAgIGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSA9IG5leHRIaWdoZXN0
QW5jZXN0b3JXaXRoVW5pY29kZUJpZGk7CiAgICAgfQogCiAgICAgLy8gU3BsaXQgZXZlcnkgYW5j
ZXN0b3IgdGhyb3VnaCBoaWdoZXN0IGFuY2VzdG9yIHdpdGggZW1iZWRkaW5nLgpAQCAtODUyLDM5
ICs4NDcsMzQgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlRW1iZWRkaW5nVQogICAg
IGlmICghYmxvY2spCiAgICAgICAgIHJldHVybjsKIAotICAgIE5vZGUqIG4gPSBub2RlLT5wYXJl
bnQoKTsKLSAgICB3aGlsZSAobiAhPSBibG9jayAmJiBuICE9IHVuc3BsaXRBbmNlc3Rvcikgewot
ICAgICAgICBOb2RlKiBwYXJlbnQgPSBuLT5wYXJlbnQoKTsKLSAgICAgICAgaWYgKCFuLT5pc1N0
eWxlZEVsZW1lbnQoKSkgewotICAgICAgICAgICAgbiA9IHBhcmVudDsKKyAgICBOb2RlKiBwYXJl
bnQgPSAwOworICAgIGZvciAoTm9kZSogbiA9IG5vZGUtPnBhcmVudCgpOyBuICE9IGJsb2NrICYm
IG4gIT0gdW5zcGxpdEFuY2VzdG9yOyBuID0gcGFyZW50KSB7CisgICAgICAgIHBhcmVudCA9IG4t
PnBhcmVudCgpOworICAgICAgICBpZiAoIW4tPmlzU3R5bGVkRWxlbWVudCgpKQogICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIH0KIAogICAgICAgICBTdHlsZWRFbGVtZW50KiBlbGVtZW50
ID0gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KG4pOwotICAgICAgICBSZWZQdHI8Q1NTVmFs
dWU+IHVuaWNvZGVCaWRpID0gY29tcHV0ZWRTdHlsZShlbGVtZW50KS0+Z2V0UHJvcGVydHlDU1NW
YWx1ZShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsKLSAgICAgICAgaWYgKHVuaWNvZGVCaWRpKSB7
Ci0gICAgICAgICAgICBBU1NFUlQodW5pY29kZUJpZGktPmlzUHJpbWl0aXZlVmFsdWUoKSk7Ci0g
ICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih1bmljb2RlQmlk
aS5nZXQoKSktPmdldElkZW50KCkgIT0gQ1NTVmFsdWVOb3JtYWwpIHsKLSAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogVGhpcyBjb2RlIHNob3VsZCByZWFsbHkgY29uc2lkZXIgdGhlIG1hcHBlZCBh
dHRyaWJ1dGUgJ2RpcicsIHRoZSBpbmxpbmUgc3R5bGUgZGVjbGFyYXRpb24sCi0gICAgICAgICAg
ICAgICAgLy8gYW5kIGFsbCBtYXRjaGluZyBzdHlsZSBydWxlcyBpbiBvcmRlciB0byBkZXRlcm1p
bmUgaG93IHRvIGJlc3Qgc2V0IHRoZSB1bmljb2RlLWJpZGkgcHJvcGVydHkgdG8gJ25vcm1hbCcu
Ci0gICAgICAgICAgICAgICAgLy8gRm9yIG5vdywgaXQgYXNzdW1lcyB0aGF0IGlmIHRoZSAnZGly
JyBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgdGhlbiByZW1vdmluZyBpdCB3aWxsIHN1ZmZpY2UsIGFu
ZAotICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSBpdCBzZXRzIHRoZSBwcm9wZXJ0eSBpbiB0
aGUgaW5saW5lIHN0eWxlIGRlY2xhcmF0aW9uLgotICAgICAgICAgICAgICAgIGlmIChlbGVtZW50
LT5oYXNBdHRyaWJ1dGUoZGlyQXR0cikpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6
IElmIHRoaXMgaXMgYSBCRE8gZWxlbWVudCwgd2Ugc2hvdWxkIHByb2JhYmx5IGp1c3QgcmVtb3Zl
IGl0IGlmIGl0IGhhcyBubwotICAgICAgICAgICAgICAgICAgICAvLyBvdGhlciBhdHRyaWJ1dGVz
LCBsaWtlIHdlIChzaG91bGQpIGRvIHdpdGggQiBhbmQgSSBlbGVtZW50cy4KLSAgICAgICAgICAg
ICAgICAgICAgcmVtb3ZlTm9kZUF0dHJpYnV0ZShlbGVtZW50LCBkaXJBdHRyKTsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24+IGlubGluZVN0eWxlID0gZWxlbWVudC0+Z2V0SW5saW5lU3R5bGVEZWNs
KCktPmNvcHkoKTsKLSAgICAgICAgICAgICAgICAgICAgaW5saW5lU3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIENTU1ZhbHVlTm9ybWFsKTsKLSAgICAgICAgICAgICAg
ICAgICAgaW5saW5lU3R5bGUtPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uKTsK
LSAgICAgICAgICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZUF0dHIs
IGlubGluZVN0eWxlLT5jc3NUZXh0KCkpOwotICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
c2hvdWxkIHRoaXMgYmUgaXNTcGFuV2l0aG91dEF0dHJpYnV0ZXNPclVuc3R5bGVTdHlsZVNwYW4/
ICBOZWVkIGEgdGVzdC4KLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzVW5zdHlsZWRTdHlsZVNw
YW4oZWxlbWVudCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuKGVsZW1lbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAg
ICAgICAgaW50IHVuaWNvZGVCaWRpID0gZ2V0SWRlbnRpZmllclZhbHVlKGNvbXB1dGVkU3R5bGUo
ZWxlbWVudCkuZ2V0KCksIENTU1Byb3BlcnR5VW5pY29kZUJpZGkpOworICAgICAgICBpZiAoIXVu
aWNvZGVCaWRpIHx8IHVuaWNvZGVCaWRpID09IENTU1ZhbHVlTm9ybWFsKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBzaG91bGQgcmVhbGx5IGNv
bnNpZGVyIHRoZSBtYXBwZWQgYXR0cmlidXRlICdkaXInLCB0aGUgaW5saW5lIHN0eWxlIGRlY2xh
cmF0aW9uLAorICAgICAgICAvLyBhbmQgYWxsIG1hdGNoaW5nIHN0eWxlIHJ1bGVzIGluIG9yZGVy
IHRvIGRldGVybWluZSBob3cgdG8gYmVzdCBzZXQgdGhlIHVuaWNvZGUtYmlkaSBwcm9wZXJ0eSB0
byAnbm9ybWFsJy4KKyAgICAgICAgLy8gRm9yIG5vdywgaXQgYXNzdW1lcyB0aGF0IGlmIHRoZSAn
ZGlyJyBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgdGhlbiByZW1vdmluZyBpdCB3aWxsIHN1ZmZpY2Us
IGFuZAorICAgICAgICAvLyBvdGhlcndpc2UgaXQgc2V0cyB0aGUgcHJvcGVydHkgaW4gdGhlIGlu
bGluZSBzdHlsZSBkZWNsYXJhdGlvbi4KKyAgICAgICAgaWYgKGVsZW1lbnQtPmhhc0F0dHJpYnV0
ZShkaXJBdHRyKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgYSBCRE8gZWxl
bWVudCwgd2Ugc2hvdWxkIHByb2JhYmx5IGp1c3QgcmVtb3ZlIGl0IGlmIGl0IGhhcyBubworICAg
ICAgICAgICAgLy8gb3RoZXIgYXR0cmlidXRlcywgbGlrZSB3ZSAoc2hvdWxkKSBkbyB3aXRoIEIg
YW5kIEkgZWxlbWVudHMuCisgICAgICAgICAgICByZW1vdmVOb2RlQXR0cmlidXRlKGVsZW1lbnQs
IGRpckF0dHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgUmVmUHRyPENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uPiBpbmxpbmVTdHlsZSA9IGVsZW1lbnQtPmdldElubGluZVN0eWxl
RGVjbCgpLT5jb3B5KCk7CisgICAgICAgICAgICBpbmxpbmVTdHlsZS0+c2V0UHJvcGVydHkoQ1NT
UHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICAgICAgaW5saW5l
U3R5bGUtPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uKTsKKyAgICAgICAgICAg
IHNldE5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVBdHRyLCBpbmxpbmVTdHlsZS0+Y3NzVGV4
dCgpKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhpcyBiZSBpc1NwYW5XaXRob3V0
QXR0cmlidXRlc09yVW5zdHlsZVN0eWxlU3Bhbj8gIE5lZWQgYSB0ZXN0LgorICAgICAgICAgICAg
aWYgKGlzVW5zdHlsZWRTdHlsZVNwYW4oZWxlbWVudCkpCisgICAgICAgICAgICAgICAgcmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbihlbGVtZW50KTsKICAgICAgICAgfQotICAgICAgICBuID0g
cGFyZW50OwogICAgIH0KIH0KIApAQCAtOTMxLDIxICs5MjEsMTYgQEAgdm9pZCBBcHBseVN0eWxl
Q29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZQogICAgICAgICBlbmREdW1teVNwYW5BbmNlc3RvciA9
IGR1bW15U3BhbkFuY2VzdG9yRm9yTm9kZShlbmQubm9kZSgpKTsKICAgICB9CiAKLSAgICBSZWZQ
dHI8Q1NTVmFsdWU+IHVuaWNvZGVCaWRpID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NT
UHJvcGVydHlVbmljb2RlQmlkaSk7Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBkaXJlY3Rpb247Cisg
ICAgaW50IHVuaWNvZGVCaWRpID0gZ2V0SWRlbnRpZmllclZhbHVlKHN0eWxlLCBDU1NQcm9wZXJ0
eVVuaWNvZGVCaWRpKTsKKyAgICBpbnQgZGlyZWN0aW9uID0gMDsKICAgICBIVE1MRWxlbWVudCog
c3RhcnRVbnNwbGl0QW5jZXN0b3IgPSAwOwogICAgIEhUTUxFbGVtZW50KiBlbmRVbnNwbGl0QW5j
ZXN0b3IgPSAwOwogICAgIGlmICh1bmljb2RlQmlkaSkgewotICAgICAgICBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IGFsbG93ZWREaXJlY3Rpb247Ci0gICAgICAgIEFTU0VSVCh1bmljb2RlQmlk
aS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odW5pY29kZUJpZGkuZ2V0KCkpLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRW1i
ZWQpIHsKLSAgICAgICAgICAgIC8vIExlYXZlIGFsb25lIGFuIGFuY2VzdG9yIHRoYXQgcHJvdmlk
ZXMgdGhlIGRlc2lyZWQgc2luZ2xlIGxldmVsIGVtYmVkZGluZywgaWYgdGhlcmUgaXMgb25lLgot
ICAgICAgICAgICAgZGlyZWN0aW9uID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJv
cGVydHlEaXJlY3Rpb24pOwotICAgICAgICAgICAgQVNTRVJUKGRpcmVjdGlvbi0+aXNQcmltaXRp
dmVWYWx1ZSgpKTsKLSAgICAgICAgICAgIGFsbG93ZWREaXJlY3Rpb24gPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KGRpcmVjdGlvbi5nZXQoKSk7Ci0gICAgICAgIH0KLSAgICAgICAg
c3RhcnRVbnNwbGl0QW5jZXN0b3IgPSBzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2RlQmlkaShzdGFy
dC5ub2RlKCksIHRydWUsIGFsbG93ZWREaXJlY3Rpb24pOwotICAgICAgICBlbmRVbnNwbGl0QW5j
ZXN0b3IgPSBzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2RlQmlkaShlbmQubm9kZSgpLCBmYWxzZSwg
YWxsb3dlZERpcmVjdGlvbik7CisgICAgICAgIC8vIExlYXZlIGFsb25lIGFuIGFuY2VzdG9yIHRo
YXQgcHJvdmlkZXMgdGhlIGRlc2lyZWQgc2luZ2xlIGxldmVsIGVtYmVkZGluZywgaWYgdGhlcmUg
aXMgb25lLgorICAgICAgICBpZiAodW5pY29kZUJpZGkgPT0gQ1NTVmFsdWVFbWJlZCkKKyAgICAg
ICAgICAgIGRpcmVjdGlvbiA9IGdldElkZW50aWZpZXJWYWx1ZShzdHlsZSwgQ1NTUHJvcGVydHlE
aXJlY3Rpb24pOworICAgICAgICBzdGFydFVuc3BsaXRBbmNlc3RvciA9IHNwbGl0QW5jZXN0b3Jz
V2l0aFVuaWNvZGVCaWRpKHN0YXJ0Lm5vZGUoKSwgdHJ1ZSwgZGlyZWN0aW9uKTsKKyAgICAgICAg
ZW5kVW5zcGxpdEFuY2VzdG9yID0gc3BsaXRBbmNlc3RvcnNXaXRoVW5pY29kZUJpZGkoZW5kLm5v
ZGUoKSwgZmFsc2UsIGRpcmVjdGlvbik7CiAgICAgICAgIHJlbW92ZUVtYmVkZGluZ1VwVG9FbmNs
b3NpbmdCbG9jayhzdGFydC5ub2RlKCksIHN0YXJ0VW5zcGxpdEFuY2VzdG9yKTsKICAgICAgICAg
cmVtb3ZlRW1iZWRkaW5nVXBUb0VuY2xvc2luZ0Jsb2NrKGVuZC5ub2RlKCksIGVuZFVuc3BsaXRB
bmNlc3Rvcik7CiAgICAgfQpAQCAtOTY5LDcgKzk1NCw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1h
bmQ6OmFwcGx5SW5saW5lU3R5bGUKICAgICBpZiAoZW1iZWRkaW5nUmVtb3ZlU3RhcnQgIT0gcmVt
b3ZlU3RhcnQgfHwgZW1iZWRkaW5nUmVtb3ZlRW5kICE9IGVuZCkgewogICAgICAgICBSZWZQdHI8
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGVtYmVkZGluZ1N0eWxlID0gQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgpOwogICAgICAgICBlbWJlZGRpbmdTdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVFbWJlZCk7Ci0gICAgICAgIGVt
YmVkZGluZ1N0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJlY3Rpb24uZ2V0KCkpLT5nZXRJZGVudCgpKTsKKyAg
ICAgICAgZW1iZWRkaW5nU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBk
aXJlY3Rpb24pOwogICAgICAgICBpZiAoY29tcGFyZVBvc2l0aW9ucyhlbWJlZGRpbmdSZW1vdmVT
dGFydCwgZW1iZWRkaW5nUmVtb3ZlRW5kKSA8PSAwKQogICAgICAgICAgICAgcmVtb3ZlSW5saW5l
U3R5bGUoZW1iZWRkaW5nU3R5bGUsIGVtYmVkZGluZ1JlbW92ZVN0YXJ0LCBlbWJlZGRpbmdSZW1v
dmVFbmQpOwogCkBAIC0xMDA4LDI5ICs5OTMsMTcgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlJbmxpbmVTdHlsZQogICAgICAgICAvLyBBdm9pZCBhcHBseWluZyB0aGUgdW5pY29kZS1i
aWRpIGFuZCBkaXJlY3Rpb24gcHJvcGVydGllcyBiZW5lYXRoIGFuY2VzdG9ycyB0aGF0IGFscmVh
ZHkgaGF2ZSB0aGVtLgogICAgICAgICBOb2RlKiBzdGFydEVuY2xvc2luZ0Jsb2NrID0gZW5jbG9z
aW5nQmxvY2soc3RhcnQubm9kZSgpKTsKICAgICAgICAgZm9yIChOb2RlKiBuID0gc3RhcnQubm9k
ZSgpOyBuICE9IHN0YXJ0RW5jbG9zaW5nQmxvY2s7IG4gPSBuLT5wYXJlbnQoKSkgewotICAgICAg
ICAgICAgaWYgKG4tPmlzSFRNTEVsZW1lbnQoKSkgewotICAgICAgICAgICAgICAgIFJlZlB0cjxD
U1NWYWx1ZT4gYW5jZXN0b3JVbmljb2RlQmlkaSA9IGNvbXB1dGVkU3R5bGUobiktPmdldFByb3Bl
cnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSk7Ci0gICAgICAgICAgICAgICAgaWYg
KGFuY2VzdG9yVW5pY29kZUJpZGkpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGFuY2Vz
dG9yVW5pY29kZUJpZGktPmlzUHJpbWl0aXZlVmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGFuY2VzdG9yVW5pY29kZUJpZGku
Z2V0KCkpLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRW1iZWQpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGVtYmVkZGluZ0FwcGx5U3RhcnQgPSBwb3NpdGlvbkluUGFyZW50QWZ0ZXJOb2RlKG4p
OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobi0+aXNIVE1MRWxlbWVudCgpICYm
IGdldElkZW50aWZpZXJWYWx1ZShjb21wdXRlZFN0eWxlKG4pLmdldCgpLCBDU1NQcm9wZXJ0eVVu
aWNvZGVCaWRpKSA9PSBDU1NWYWx1ZUVtYmVkKSB7CisgICAgICAgICAgICAgICAgZW1iZWRkaW5n
QXBwbHlTdGFydCA9IHBvc2l0aW9uSW5QYXJlbnRBZnRlck5vZGUobik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBOb2RlKiBlbmRF
bmNsb3NpbmdCbG9jayA9IGVuY2xvc2luZ0Jsb2NrKGVuZC5ub2RlKCkpOwogICAgICAgICBmb3Ig
KE5vZGUqIG4gPSBlbmQubm9kZSgpOyBuICE9IGVuZEVuY2xvc2luZ0Jsb2NrOyBuID0gbi0+cGFy
ZW50KCkpIHsKLSAgICAgICAgICAgIGlmIChuLT5pc0hUTUxFbGVtZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IGFuY2VzdG9yVW5pY29kZUJpZGkgPSBjb21wdXRlZFN0
eWxlKG4pLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5VW5pY29kZUJpZGkpOwotICAg
ICAgICAgICAgICAgIGlmIChhbmNlc3RvclVuaWNvZGVCaWRpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIEFTU0VSVChhbmNlc3RvclVuaWNvZGVCaWRpLT5pc1ByaW1pdGl2ZVZhbHVlKCkpOwotICAg
ICAgICAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihhbmNl
c3RvclVuaWNvZGVCaWRpLmdldCgpKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUVtYmVkKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBlbWJlZGRpbmdBcHBseUVuZCA9IHBvc2l0aW9uSW5QYXJl
bnRCZWZvcmVOb2RlKG4pOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobi0+aXNI
VE1MRWxlbWVudCgpICYmIGdldElkZW50aWZpZXJWYWx1ZShjb21wdXRlZFN0eWxlKG4pLmdldCgp
LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKSA9PSBDU1NWYWx1ZUVtYmVkKSB7CisgICAgICAgICAg
ICAgICAgZW1iZWRkaW5nQXBwbHlFbmQgPSBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShuKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
QEAgLTEwMzksNyArMTAxMiw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5l
U3R5bGUKICAgICAgICAgaWYgKGVtYmVkZGluZ0FwcGx5U3RhcnQuaXNOb3ROdWxsKCkgJiYgZW1i
ZWRkaW5nQXBwbHlFbmQuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbj4gZW1iZWRkaW5nU3R5bGUgPSBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbjo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBlbWJlZGRpbmdTdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVFbWJlZCk7Ci0gICAgICAgICAgICBl
bWJlZGRpbmdTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sIHN0YXRpY19j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oZGlyZWN0aW9uLmdldCgpKS0+Z2V0SWRlbnQoKSk7Cisg
ICAgICAgICAgICBlbWJlZGRpbmdTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rp
b24sIGRpcmVjdGlvbik7CiAgICAgICAgICAgICBhcHBseUlubGluZVN0eWxlVG9SYW5nZShlbWJl
ZGRpbmdTdHlsZS5nZXQoKSwgZW1iZWRkaW5nQXBwbHlTdGFydCwgZW1iZWRkaW5nQXBwbHlFbmQp
OwogICAgICAgICB9CiAKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCShyZXZp
c2lvbiA2NDYzMSkKKysrIFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBjb21wdXRl
ZEZvbnRTaXplKGNvbnN0IE5vZGUqKTsKICAgICB2b2lkIGpvaW5DaGlsZFRleHROb2RlcyhOb2Rl
KiwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kKTsKIAotICAgIEhU
TUxFbGVtZW50KiBzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2RlQmlkaShOb2RlKiwgYm9vbCBiZWZv
cmUsIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gYWxsb3dlZERpcmVjdGlvbik7CisgICAgSFRN
TEVsZW1lbnQqIHNwbGl0QW5jZXN0b3JzV2l0aFVuaWNvZGVCaWRpKE5vZGUqLCBib29sIGJlZm9y
ZSwgaW50IGFsbG93ZWREaXJlY3Rpb24pOwogICAgIHZvaWQgcmVtb3ZlRW1iZWRkaW5nVXBUb0Vu
Y2xvc2luZ0Jsb2NrKE5vZGUqIG5vZGUsIE5vZGUqIHVuc3BsaXRBbmNlc3Rvcik7CiAKICAgICB2
b2lkIHVwZGF0ZVN0YXJ0RW5kKGNvbnN0IFBvc2l0aW9uJiBuZXdTdGFydCwgY29uc3QgUG9zaXRp
b24mIG5ld0VuZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63922</attachid>
            <date>2010-08-09 13:18:02 -0700</date>
            <delta_ts>2010-08-09 14:02:05 -0700</delta_ts>
            <desc>initialized highestAncestorUnicodeBidi</desc>
            <filename>bug-43699-20100809131801.patch</filename>
            <type>text/plain</type>
            <size>14951</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDk5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDgtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IGdldElkZW50aWZpZXJWYWx1ZSB0byBvYnRhaW4gZGlyZWN0aW9uIGFuZCB1bmljb2RlLWJpZGkg
cHJvcGVydGllcyBpbiBBcHBseVN0eWxlQ29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM2OTkKKworICAgICAgICBEZXBsb3llZCBnZXRJZGVu
dGlmaWVyVmFsdWUgaW4gdmFyaW91cyBwYXJ0cyBvZiBBcHBseVN0eWxlQ29tbWFuZCB3aGVyZQor
ICAgICAgICBkaXJlY3Rpb24gYW5kIHVuaWNvZGUtYmlkaSBwcm9wZXJ0aWVzIHdlcmUgb2J0YWlu
ZWQgbWFudWFsbHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIHRoaXMgaXMgYSBjbGVh
bnVwLgorCisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRJZGVudGlmaWVyVmFsdWUpOiBUYWtlcyBDU1NTdHlsZURlY2xhcmF0aW9u
IGluc3RlYWQgb2YgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVN0eWxlQ29tbWFuZDo6c3BsaXRBbmNlc3RvcnNXaXRoVW5pY29kZUJpZGkpOiBDYWxs
cyBnZXRJZGVudGlmaWVyVmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFu
ZDo6cmVtb3ZlRW1iZWRkaW5nVXBUb0VuY2xvc2luZ0Jsb2NrKTogQ2FsbHMgZ2V0SWRlbnRpZmll
clZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5l
U3R5bGUpOiBDYWxscyBnZXRJZGVudGlmaWVyVmFsdWUuCisgICAgICAgICogZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5oOgorCiAyMDEwLTA4LTA5ICBNYXJjdXMgQnVsYWNoICA8YnVsYWNoQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHJldmlzaW9uIDY0OTk2KQorKysgV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQy
LDcgKzE0Miw3IEBAIHZvaWQgU3R5bGVDaGFuZ2U6OnJlY29uY2lsZVRleHREZWNvcmF0aW8KICAg
ICAgICAgc3R5bGUtPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24pOwog
fQogCi1zdGF0aWMgaW50IGdldElkZW50aWZpZXJWYWx1ZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiogc3R5bGUsIGludCBwcm9wZXJ0eUlEKQorc3RhdGljIGludCBnZXRJZGVudGlmaWVyVmFs
dWUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIGludCBwcm9wZXJ0eUlEKQogewogICAgIGlm
ICghc3R5bGUpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNDc3LDcgKzQ3Nyw3IEBAIHZvaWQgcmVt
b3ZlU3R5bGVzQWRkZWRCeU5vZGUoQ1NTTXV0YWJsZVMKICAgICBwYXJlbnRTdHlsZS0+ZGlmZihz
dHlsZS5nZXQoKSk7CiAgICAgc3R5bGUtPmRpZmYoZWRpdGluZ1N0eWxlKTsKIH0KLSAgICAKKwog
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50KiBkb2N1bWVudCwg
Q1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVBy
b3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKICAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRv
Y3VtZW50KQogICAgICwgbV9zdHlsZShzdHlsZS0+bWFrZU11dGFibGUoKSkKQEAgLTc5Myw3ICs3
OTMsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpjbGVhbnVwVW5zdHlsZWRBCiAgICAgfQog
fQogCi1IVE1MRWxlbWVudCogQXBwbHlTdHlsZUNvbW1hbmQ6OnNwbGl0QW5jZXN0b3JzV2l0aFVu
aWNvZGVCaWRpKE5vZGUqIG5vZGUsIGJvb2wgYmVmb3JlLCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IGFsbG93ZWREaXJlY3Rpb24pCitIVE1MRWxlbWVudCogQXBwbHlTdHlsZUNvbW1hbmQ6OnNw
bGl0QW5jZXN0b3JzV2l0aFVuaWNvZGVCaWRpKE5vZGUqIG5vZGUsIGJvb2wgYmVmb3JlLCBpbnQg
YWxsb3dlZERpcmVjdGlvbikKIHsKICAgICAvLyBXZSBhcmUgYWxsb3dlZCB0byBsZWF2ZSB0aGUg
aGlnaGVzdCBhbmNlc3RvciB3aXRoIHVuaWNvZGUtYmlkaSB1bnNwbGl0IGlmIGl0IGlzIHVuaWNv
ZGUtYmlkaTogZW1iZWQgYW5kIGRpcmVjdGlvbjogYWxsb3dlZERpcmVjdGlvbi4KICAgICAvLyBJ
biB0aGF0IGNhc2UsIHdlIHJldHVybiB0aGUgdW5zcGxpdCBhbmNlc3Rvci4gT3RoZXJ3aXNlLCB3
ZSByZXR1cm4gMC4KQEAgLTgwMywxNiArODAzLDEzIEBAIEhUTUxFbGVtZW50KiBBcHBseVN0eWxl
Q29tbWFuZDo6c3BsaXRBbmMKIAogICAgIE5vZGUqIGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2Rl
QmlkaSA9IDA7CiAgICAgTm9kZSogbmV4dEhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSA9
IDA7Ci0gICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBoaWdoZXN0QW5jZXN0b3JVbmljb2Rl
QmlkaTsKKyAgICBpbnQgaGlnaGVzdEFuY2VzdG9yVW5pY29kZUJpZGkgPSAwOwogICAgIGZvciAo
Tm9kZSogbiA9IG5vZGUtPnBhcmVudCgpOyBuICE9IGJsb2NrOyBuID0gbi0+cGFyZW50KCkpIHsK
LSAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB1bmljb2RlQmlkaSA9IGNvbXB1dGVkU3R5bGUobikt
PmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSk7Ci0gICAgICAgIGlm
ICh1bmljb2RlQmlkaSkgewotICAgICAgICAgICAgQVNTRVJUKHVuaWNvZGVCaWRpLT5pc1ByaW1p
dGl2ZVZhbHVlKCkpOwotICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlKj4odW5pY29kZUJpZGkuZ2V0KCkpLT5nZXRJZGVudCgpICE9IENTU1ZhbHVlTm9ybWFsKSB7
Ci0gICAgICAgICAgICAgICAgaGlnaGVzdEFuY2VzdG9yVW5pY29kZUJpZGkgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHVuaWNvZGVCaWRpLmdldCgpKTsKLSAgICAgICAgICAgICAg
ICBuZXh0SGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpID0gaGlnaGVzdEFuY2VzdG9yV2l0
aFVuaWNvZGVCaWRpOwotICAgICAgICAgICAgICAgIGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2Rl
QmlkaSA9IG47Ci0gICAgICAgICAgICB9CisgICAgICAgIGludCB1bmljb2RlQmlkaSA9IGdldElk
ZW50aWZpZXJWYWx1ZShjb21wdXRlZFN0eWxlKG4pLmdldCgpLCBDU1NQcm9wZXJ0eVVuaWNvZGVC
aWRpKTsKKyAgICAgICAgaWYgKHVuaWNvZGVCaWRpICYmIHVuaWNvZGVCaWRpICE9IENTU1ZhbHVl
Tm9ybWFsKSB7CisgICAgICAgICAgICBoaWdoZXN0QW5jZXN0b3JVbmljb2RlQmlkaSA9IHVuaWNv
ZGVCaWRpOworICAgICAgICAgICAgbmV4dEhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSA9
IGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaTsKKyAgICAgICAgICAgIGhpZ2hlc3RBbmNl
c3RvcldpdGhVbmljb2RlQmlkaSA9IG47CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTgyMSwxNiAr
ODE4LDE0IEBAIEhUTUxFbGVtZW50KiBBcHBseVN0eWxlQ29tbWFuZDo6c3BsaXRBbmMKIAogICAg
IEhUTUxFbGVtZW50KiB1bnNwbGl0QW5jZXN0b3IgPSAwOwogCi0gICAgaWYgKGFsbG93ZWREaXJl
Y3Rpb24gJiYgaGlnaGVzdEFuY2VzdG9yVW5pY29kZUJpZGktPmdldElkZW50KCkgIT0gQ1NTVmFs
dWVCaWRpT3ZlcnJpZGUpIHsKLSAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiBoaWdoZXN0QW5jZXN0
b3JEaXJlY3Rpb24gPSBjb21wdXRlZFN0eWxlKGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlk
aSktPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlEaXJlY3Rpb24pOwotICAgICAgICBB
U1NFUlQoaGlnaGVzdEFuY2VzdG9yRGlyZWN0aW9uLT5pc1ByaW1pdGl2ZVZhbHVlKCkpOwotICAg
ICAgICBpZiAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihoaWdoZXN0QW5jZXN0b3JE
aXJlY3Rpb24uZ2V0KCkpLT5nZXRJZGVudCgpID09IGFsbG93ZWREaXJlY3Rpb24tPmdldElkZW50
KCkgJiYgaGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpLT5pc0hUTUxFbGVtZW50KCkpIHsK
LSAgICAgICAgICAgIGlmICghbmV4dEhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihoaWdoZXN0QW5j
ZXN0b3JXaXRoVW5pY29kZUJpZGkpOworICAgIGlmIChhbGxvd2VkRGlyZWN0aW9uICYmIGhpZ2hl
c3RBbmNlc3RvclVuaWNvZGVCaWRpICE9IENTU1ZhbHVlQmlkaU92ZXJyaWRlCisgICAgICAgICYm
IGdldElkZW50aWZpZXJWYWx1ZShjb21wdXRlZFN0eWxlKGhpZ2hlc3RBbmNlc3RvcldpdGhVbmlj
b2RlQmlkaSkuZ2V0KCksIENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSBhbGxvd2VkRGlyZWN0aW9u
CisgICAgICAgICYmIGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaS0+aXNIVE1MRWxlbWVu
dCgpKSB7CisgICAgICAgIGlmICghbmV4dEhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSkK
KyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGhpZ2hlc3RBbmNl
c3RvcldpdGhVbmljb2RlQmlkaSk7CiAKLSAgICAgICAgICAgIHVuc3BsaXRBbmNlc3RvciA9IHN0
YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oaGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpKTsK
LSAgICAgICAgICAgIGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSA9IG5leHRIaWdoZXN0
QW5jZXN0b3JXaXRoVW5pY29kZUJpZGk7Ci0gICAgICAgIH0KKyAgICAgICAgdW5zcGxpdEFuY2Vz
dG9yID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihoaWdoZXN0QW5jZXN0b3JXaXRoVW5pY29k
ZUJpZGkpOworICAgICAgICBoaWdoZXN0QW5jZXN0b3JXaXRoVW5pY29kZUJpZGkgPSBuZXh0SGln
aGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpOwogICAgIH0KIAogICAgIC8vIFNwbGl0IGV2ZXJ5
IGFuY2VzdG9yIHRocm91Z2ggaGlnaGVzdCBhbmNlc3RvciB3aXRoIGVtYmVkZGluZy4KQEAgLTg1
MiwzOSArODQ3LDM0IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUVtYmVkZGluZ1UK
ICAgICBpZiAoIWJsb2NrKQogICAgICAgICByZXR1cm47CiAKLSAgICBOb2RlKiBuID0gbm9kZS0+
cGFyZW50KCk7Ci0gICAgd2hpbGUgKG4gIT0gYmxvY2sgJiYgbiAhPSB1bnNwbGl0QW5jZXN0b3Ip
IHsKLSAgICAgICAgTm9kZSogcGFyZW50ID0gbi0+cGFyZW50KCk7Ci0gICAgICAgIGlmICghbi0+
aXNTdHlsZWRFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIG4gPSBwYXJlbnQ7CisgICAgTm9kZSog
cGFyZW50ID0gMDsKKyAgICBmb3IgKE5vZGUqIG4gPSBub2RlLT5wYXJlbnQoKTsgbiAhPSBibG9j
ayAmJiBuICE9IHVuc3BsaXRBbmNlc3RvcjsgbiA9IHBhcmVudCkgeworICAgICAgICBwYXJlbnQg
PSBuLT5wYXJlbnQoKTsKKyAgICAgICAgaWYgKCFuLT5pc1N0eWxlZEVsZW1lbnQoKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9CiAKICAgICAgICAgU3R5bGVkRWxlbWVudCogZWxl
bWVudCA9IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihuKTsKLSAgICAgICAgUmVmUHRyPENT
U1ZhbHVlPiB1bmljb2RlQmlkaSA9IGNvbXB1dGVkU3R5bGUoZWxlbWVudCktPmdldFByb3BlcnR5
Q1NTVmFsdWUoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSk7Ci0gICAgICAgIGlmICh1bmljb2RlQmlk
aSkgewotICAgICAgICAgICAgQVNTRVJUKHVuaWNvZGVCaWRpLT5pc1ByaW1pdGl2ZVZhbHVlKCkp
OwotICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odW5pY29k
ZUJpZGkuZ2V0KCkpLT5nZXRJZGVudCgpICE9IENTU1ZhbHVlTm9ybWFsKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBzaG91bGQgcmVhbGx5IGNvbnNpZGVyIHRoZSBtYXBw
ZWQgYXR0cmlidXRlICdkaXInLCB0aGUgaW5saW5lIHN0eWxlIGRlY2xhcmF0aW9uLAotICAgICAg
ICAgICAgICAgIC8vIGFuZCBhbGwgbWF0Y2hpbmcgc3R5bGUgcnVsZXMgaW4gb3JkZXIgdG8gZGV0
ZXJtaW5lIGhvdyB0byBiZXN0IHNldCB0aGUgdW5pY29kZS1iaWRpIHByb3BlcnR5IHRvICdub3Jt
YWwnLgotICAgICAgICAgICAgICAgIC8vIEZvciBub3csIGl0IGFzc3VtZXMgdGhhdCBpZiB0aGUg
J2RpcicgYXR0cmlidXRlIGlzIHByZXNlbnQsIHRoZW4gcmVtb3ZpbmcgaXQgd2lsbCBzdWZmaWNl
LCBhbmQKLSAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgaXQgc2V0cyB0aGUgcHJvcGVydHkg
aW4gdGhlIGlubGluZSBzdHlsZSBkZWNsYXJhdGlvbi4KLSAgICAgICAgICAgICAgICBpZiAoZWxl
bWVudC0+aGFzQXR0cmlidXRlKGRpckF0dHIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBJZiB0aGlzIGlzIGEgQkRPIGVsZW1lbnQsIHdlIHNob3VsZCBwcm9iYWJseSBqdXN0IHJl
bW92ZSBpdCBpZiBpdCBoYXMgbm8KLSAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXIgYXR0cmli
dXRlcywgbGlrZSB3ZSAoc2hvdWxkKSBkbyB3aXRoIEIgYW5kIEkgZWxlbWVudHMuCi0gICAgICAg
ICAgICAgICAgICAgIHJlbW92ZU5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgZGlyQXR0cik7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgUmVmUHRyPENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uPiBpbmxpbmVTdHlsZSA9IGVsZW1lbnQtPmdldElubGluZVN0eWxl
RGVjbCgpLT5jb3B5KCk7Ci0gICAgICAgICAgICAgICAgICAgIGlubGluZVN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCBDU1NWYWx1ZU5vcm1hbCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGlubGluZVN0eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlv
bik7Ci0gICAgICAgICAgICAgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVB
dHRyLCBpbmxpbmVTdHlsZS0+Y3NzVGV4dCgpKTsKLSAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IHNob3VsZCB0aGlzIGJlIGlzU3BhbldpdGhvdXRBdHRyaWJ1dGVzT3JVbnN0eWxlU3R5bGVT
cGFuPyAgTmVlZCBhIHRlc3QuCi0gICAgICAgICAgICAgICAgICAgIGlmIChpc1Vuc3R5bGVkU3R5
bGVTcGFuKGVsZW1lbnQpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbihlbGVtZW50KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
CisgICAgICAgIGludCB1bmljb2RlQmlkaSA9IGdldElkZW50aWZpZXJWYWx1ZShjb21wdXRlZFN0
eWxlKGVsZW1lbnQpLmdldCgpLCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsKKyAgICAgICAgaWYg
KCF1bmljb2RlQmlkaSB8fCB1bmljb2RlQmlkaSA9PSBDU1NWYWx1ZU5vcm1hbCkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgc2hvdWxkIHJlYWxs
eSBjb25zaWRlciB0aGUgbWFwcGVkIGF0dHJpYnV0ZSAnZGlyJywgdGhlIGlubGluZSBzdHlsZSBk
ZWNsYXJhdGlvbiwKKyAgICAgICAgLy8gYW5kIGFsbCBtYXRjaGluZyBzdHlsZSBydWxlcyBpbiBv
cmRlciB0byBkZXRlcm1pbmUgaG93IHRvIGJlc3Qgc2V0IHRoZSB1bmljb2RlLWJpZGkgcHJvcGVy
dHkgdG8gJ25vcm1hbCcuCisgICAgICAgIC8vIEZvciBub3csIGl0IGFzc3VtZXMgdGhhdCBpZiB0
aGUgJ2RpcicgYXR0cmlidXRlIGlzIHByZXNlbnQsIHRoZW4gcmVtb3ZpbmcgaXQgd2lsbCBzdWZm
aWNlLCBhbmQKKyAgICAgICAgLy8gb3RoZXJ3aXNlIGl0IHNldHMgdGhlIHByb3BlcnR5IGluIHRo
ZSBpbmxpbmUgc3R5bGUgZGVjbGFyYXRpb24uCisgICAgICAgIGlmIChlbGVtZW50LT5oYXNBdHRy
aWJ1dGUoZGlyQXR0cikpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJZiB0aGlzIGlzIGEgQkRP
IGVsZW1lbnQsIHdlIHNob3VsZCBwcm9iYWJseSBqdXN0IHJlbW92ZSBpdCBpZiBpdCBoYXMgbm8K
KyAgICAgICAgICAgIC8vIG90aGVyIGF0dHJpYnV0ZXMsIGxpa2Ugd2UgKHNob3VsZCkgZG8gd2l0
aCBCIGFuZCBJIGVsZW1lbnRzLgorICAgICAgICAgICAgcmVtb3ZlTm9kZUF0dHJpYnV0ZShlbGVt
ZW50LCBkaXJBdHRyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gaW5saW5lU3R5bGUgPSBlbGVtZW50LT5nZXRJbmxpbmVT
dHlsZURlY2woKS0+Y29weSgpOworICAgICAgICAgICAgaW5saW5lU3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIENTU1ZhbHVlTm9ybWFsKTsKKyAgICAgICAgICAgIGlu
bGluZVN0eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbik7CisgICAgICAg
ICAgICBzZXROb2RlQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgaW5saW5lU3R5bGUtPmNz
c1RleHQoKSk7CisgICAgICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoaXMgYmUgaXNTcGFuV2l0
aG91dEF0dHJpYnV0ZXNPclVuc3R5bGVTdHlsZVNwYW4/ICBOZWVkIGEgdGVzdC4KKyAgICAgICAg
ICAgIGlmIChpc1Vuc3R5bGVkU3R5bGVTcGFuKGVsZW1lbnQpKQorICAgICAgICAgICAgICAgIHJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxlbWVudCk7CiAgICAgICAgIH0KLSAgICAgICAg
biA9IHBhcmVudDsKICAgICB9CiB9CiAKQEAgLTkzMSwyMSArOTIxLDE2IEBAIHZvaWQgQXBwbHlT
dHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGUKICAgICAgICAgZW5kRHVtbXlTcGFuQW5jZXN0
b3IgPSBkdW1teVNwYW5BbmNlc3RvckZvck5vZGUoZW5kLm5vZGUoKSk7CiAgICAgfQogCi0gICAg
UmVmUHRyPENTU1ZhbHVlPiB1bmljb2RlQmlkaSA9IHN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KENTU1Byb3BlcnR5VW5pY29kZUJpZGkpOwotICAgIFJlZlB0cjxDU1NWYWx1ZT4gZGlyZWN0aW9u
OworICAgIGludCB1bmljb2RlQmlkaSA9IGdldElkZW50aWZpZXJWYWx1ZShzdHlsZSwgQ1NTUHJv
cGVydHlVbmljb2RlQmlkaSk7CisgICAgaW50IGRpcmVjdGlvbiA9IDA7CiAgICAgSFRNTEVsZW1l
bnQqIHN0YXJ0VW5zcGxpdEFuY2VzdG9yID0gMDsKICAgICBIVE1MRWxlbWVudCogZW5kVW5zcGxp
dEFuY2VzdG9yID0gMDsKICAgICBpZiAodW5pY29kZUJpZGkpIHsKLSAgICAgICAgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBhbGxvd2VkRGlyZWN0aW9uOwotICAgICAgICBBU1NFUlQodW5pY29k
ZUJpZGktPmlzUHJpbWl0aXZlVmFsdWUoKSk7Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHVuaWNvZGVCaWRpLmdldCgpKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1
ZUVtYmVkKSB7Ci0gICAgICAgICAgICAvLyBMZWF2ZSBhbG9uZSBhbiBhbmNlc3RvciB0aGF0IHBy
b3ZpZGVzIHRoZSBkZXNpcmVkIHNpbmdsZSBsZXZlbCBlbWJlZGRpbmcsIGlmIHRoZXJlIGlzIG9u
ZS4KLSAgICAgICAgICAgIGRpcmVjdGlvbiA9IHN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENT
U1Byb3BlcnR5RGlyZWN0aW9uKTsKLSAgICAgICAgICAgIEFTU0VSVChkaXJlY3Rpb24tPmlzUHJp
bWl0aXZlVmFsdWUoKSk7Ci0gICAgICAgICAgICBhbGxvd2VkRGlyZWN0aW9uID0gc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJlY3Rpb24uZ2V0KCkpOwotICAgICAgICB9Ci0gICAg
ICAgIHN0YXJ0VW5zcGxpdEFuY2VzdG9yID0gc3BsaXRBbmNlc3RvcnNXaXRoVW5pY29kZUJpZGko
c3RhcnQubm9kZSgpLCB0cnVlLCBhbGxvd2VkRGlyZWN0aW9uKTsKLSAgICAgICAgZW5kVW5zcGxp
dEFuY2VzdG9yID0gc3BsaXRBbmNlc3RvcnNXaXRoVW5pY29kZUJpZGkoZW5kLm5vZGUoKSwgZmFs
c2UsIGFsbG93ZWREaXJlY3Rpb24pOworICAgICAgICAvLyBMZWF2ZSBhbG9uZSBhbiBhbmNlc3Rv
ciB0aGF0IHByb3ZpZGVzIHRoZSBkZXNpcmVkIHNpbmdsZSBsZXZlbCBlbWJlZGRpbmcsIGlmIHRo
ZXJlIGlzIG9uZS4KKyAgICAgICAgaWYgKHVuaWNvZGVCaWRpID09IENTU1ZhbHVlRW1iZWQpCisg
ICAgICAgICAgICBkaXJlY3Rpb24gPSBnZXRJZGVudGlmaWVyVmFsdWUoc3R5bGUsIENTU1Byb3Bl
cnR5RGlyZWN0aW9uKTsKKyAgICAgICAgc3RhcnRVbnNwbGl0QW5jZXN0b3IgPSBzcGxpdEFuY2Vz
dG9yc1dpdGhVbmljb2RlQmlkaShzdGFydC5ub2RlKCksIHRydWUsIGRpcmVjdGlvbik7CisgICAg
ICAgIGVuZFVuc3BsaXRBbmNlc3RvciA9IHNwbGl0QW5jZXN0b3JzV2l0aFVuaWNvZGVCaWRpKGVu
ZC5ub2RlKCksIGZhbHNlLCBkaXJlY3Rpb24pOwogICAgICAgICByZW1vdmVFbWJlZGRpbmdVcFRv
RW5jbG9zaW5nQmxvY2soc3RhcnQubm9kZSgpLCBzdGFydFVuc3BsaXRBbmNlc3Rvcik7CiAgICAg
ICAgIHJlbW92ZUVtYmVkZGluZ1VwVG9FbmNsb3NpbmdCbG9jayhlbmQubm9kZSgpLCBlbmRVbnNw
bGl0QW5jZXN0b3IpOwogICAgIH0KQEAgLTk2OSw3ICs5NTQsNyBAQCB2b2lkIEFwcGx5U3R5bGVD
b21tYW5kOjphcHBseUlubGluZVN0eWxlCiAgICAgaWYgKGVtYmVkZGluZ1JlbW92ZVN0YXJ0ICE9
IHJlbW92ZVN0YXJ0IHx8IGVtYmVkZGluZ1JlbW92ZUVuZCAhPSBlbmQpIHsKICAgICAgICAgUmVm
UHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBlbWJlZGRpbmdTdHlsZSA9IENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoKTsKICAgICAgICAgZW1iZWRkaW5nU3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIENTU1ZhbHVlRW1iZWQpOwotICAgICAg
ICBlbWJlZGRpbmdTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sIHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oZGlyZWN0aW9uLmdldCgpKS0+Z2V0SWRlbnQoKSk7
CisgICAgICAgIGVtYmVkZGluZ1N0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlv
biwgZGlyZWN0aW9uKTsKICAgICAgICAgaWYgKGNvbXBhcmVQb3NpdGlvbnMoZW1iZWRkaW5nUmVt
b3ZlU3RhcnQsIGVtYmVkZGluZ1JlbW92ZUVuZCkgPD0gMCkKICAgICAgICAgICAgIHJlbW92ZUlu
bGluZVN0eWxlKGVtYmVkZGluZ1N0eWxlLCBlbWJlZGRpbmdSZW1vdmVTdGFydCwgZW1iZWRkaW5n
UmVtb3ZlRW5kKTsKIApAQCAtMTAwOCwyOSArOTkzLDE3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1h
bmQ6OmFwcGx5SW5saW5lU3R5bGUKICAgICAgICAgLy8gQXZvaWQgYXBwbHlpbmcgdGhlIHVuaWNv
ZGUtYmlkaSBhbmQgZGlyZWN0aW9uIHByb3BlcnRpZXMgYmVuZWF0aCBhbmNlc3RvcnMgdGhhdCBh
bHJlYWR5IGhhdmUgdGhlbS4KICAgICAgICAgTm9kZSogc3RhcnRFbmNsb3NpbmdCbG9jayA9IGVu
Y2xvc2luZ0Jsb2NrKHN0YXJ0Lm5vZGUoKSk7CiAgICAgICAgIGZvciAoTm9kZSogbiA9IHN0YXJ0
Lm5vZGUoKTsgbiAhPSBzdGFydEVuY2xvc2luZ0Jsb2NrOyBuID0gbi0+cGFyZW50KCkpIHsKLSAg
ICAgICAgICAgIGlmIChuLT5pc0hUTUxFbGVtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBSZWZQ
dHI8Q1NTVmFsdWU+IGFuY2VzdG9yVW5pY29kZUJpZGkgPSBjb21wdXRlZFN0eWxlKG4pLT5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5VW5pY29kZUJpZGkpOwotICAgICAgICAgICAgICAg
IGlmIChhbmNlc3RvclVuaWNvZGVCaWRpKSB7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChh
bmNlc3RvclVuaWNvZGVCaWRpLT5pc1ByaW1pdGl2ZVZhbHVlKCkpOwotICAgICAgICAgICAgICAg
ICAgICBpZiAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihhbmNlc3RvclVuaWNvZGVC
aWRpLmdldCgpKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUVtYmVkKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBlbWJlZGRpbmdBcHBseVN0YXJ0ID0gcG9zaXRpb25JblBhcmVudEFmdGVyTm9k
ZShuKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG4tPmlzSFRNTEVsZW1lbnQo
KSAmJiBnZXRJZGVudGlmaWVyVmFsdWUoY29tcHV0ZWRTdHlsZShuKS5nZXQoKSwgQ1NTUHJvcGVy
dHlVbmljb2RlQmlkaSkgPT0gQ1NTVmFsdWVFbWJlZCkgeworICAgICAgICAgICAgICAgIGVtYmVk
ZGluZ0FwcGx5U3RhcnQgPSBwb3NpdGlvbkluUGFyZW50QWZ0ZXJOb2RlKG4pOworICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgTm9kZSog
ZW5kRW5jbG9zaW5nQmxvY2sgPSBlbmNsb3NpbmdCbG9jayhlbmQubm9kZSgpKTsKICAgICAgICAg
Zm9yIChOb2RlKiBuID0gZW5kLm5vZGUoKTsgbiAhPSBlbmRFbmNsb3NpbmdCbG9jazsgbiA9IG4t
PnBhcmVudCgpKSB7Ci0gICAgICAgICAgICBpZiAobi0+aXNIVE1MRWxlbWVudCgpKSB7Ci0gICAg
ICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiBhbmNlc3RvclVuaWNvZGVCaWRpID0gY29tcHV0
ZWRTdHlsZShuKS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
LSAgICAgICAgICAgICAgICBpZiAoYW5jZXN0b3JVbmljb2RlQmlkaSkgewotICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoYW5jZXN0b3JVbmljb2RlQmlkaS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
YW5jZXN0b3JVbmljb2RlQmlkaS5nZXQoKSktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVFbWJlZCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgZW1iZWRkaW5nQXBwbHlFbmQgPSBwb3NpdGlvbklu
UGFyZW50QmVmb3JlTm9kZShuKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG4t
PmlzSFRNTEVsZW1lbnQoKSAmJiBnZXRJZGVudGlmaWVyVmFsdWUoY29tcHV0ZWRTdHlsZShuKS5n
ZXQoKSwgQ1NTUHJvcGVydHlVbmljb2RlQmlkaSkgPT0gQ1NTVmFsdWVFbWJlZCkgeworICAgICAg
ICAgICAgICAgIGVtYmVkZGluZ0FwcGx5RW5kID0gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUo
bik7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9CkBAIC0xMDM5LDcgKzEwMTIsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseUlu
bGluZVN0eWxlCiAgICAgICAgIGlmIChlbWJlZGRpbmdBcHBseVN0YXJ0LmlzTm90TnVsbCgpICYm
IGVtYmVkZGluZ0FwcGx5RW5kLmlzTm90TnVsbCgpKSB7CiAgICAgICAgICAgICBSZWZQdHI8Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGVtYmVkZGluZ1N0eWxlID0gQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246OmNyZWF0ZSgpOwogICAgICAgICAgICAgZW1iZWRkaW5nU3R5bGUtPnNldFBy
b3BlcnR5KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIENTU1ZhbHVlRW1iZWQpOwotICAgICAgICAg
ICAgZW1iZWRkaW5nU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGRpcmVjdGlvbi5nZXQoKSktPmdldElkZW50KCkp
OworICAgICAgICAgICAgZW1iZWRkaW5nU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGly
ZWN0aW9uLCBkaXJlY3Rpb24pOwogICAgICAgICAgICAgYXBwbHlJbmxpbmVTdHlsZVRvUmFuZ2Uo
ZW1iZWRkaW5nU3R5bGUuZ2V0KCksIGVtYmVkZGluZ0FwcGx5U3RhcnQsIGVtYmVkZGluZ0FwcGx5
RW5kKTsKICAgICAgICAgfQogCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAko
cmV2aXNpb24gNjQ5OTYpCisrKyBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAko
d29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgY29t
cHV0ZWRGb250U2l6ZShjb25zdCBOb2RlKik7CiAgICAgdm9pZCBqb2luQ2hpbGRUZXh0Tm9kZXMo
Tm9kZSosIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCk7CiAKLSAg
ICBIVE1MRWxlbWVudCogc3BsaXRBbmNlc3RvcnNXaXRoVW5pY29kZUJpZGkoTm9kZSosIGJvb2wg
YmVmb3JlLCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGFsbG93ZWREaXJlY3Rpb24pOworICAg
IEhUTUxFbGVtZW50KiBzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2RlQmlkaShOb2RlKiwgYm9vbCBi
ZWZvcmUsIGludCBhbGxvd2VkRGlyZWN0aW9uKTsKICAgICB2b2lkIHJlbW92ZUVtYmVkZGluZ1Vw
VG9FbmNsb3NpbmdCbG9jayhOb2RlKiBub2RlLCBOb2RlKiB1bnNwbGl0QW5jZXN0b3IpOwogCiAg
ICAgdm9pZCB1cGRhdGVTdGFydEVuZChjb25zdCBQb3NpdGlvbiYgbmV3U3RhcnQsIGNvbnN0IFBv
c2l0aW9uJiBuZXdFbmQpOwo=
</data>
<flag name="review"
          id="52368"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>