<?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>72125</bug_id>
          
          <creation_ts>2011-11-11 07:57:41 -0800</creation_ts>
          <short_desc>Web Inspector: reimplement DOM search using no XPath.</short_desc>
          <delta_ts>2011-11-11 09:18:37 -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>Web Inspector (Deprecated)</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>500771</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-11 07:57:41 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500784</commentid>
    <comment_count>1</comment_count>
      <attachid>114702</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-11 08:16:03 -0800</bug_when>
    <thetext>Created attachment 114702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500824</commentid>
    <comment_count>2</comment_count>
      <attachid>114702</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-11 09:03:57 -0800</bug_when>
    <thetext>Comment on attachment 114702
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=114702&amp;action=review

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:793
&gt; +    if (!whitespaceTrimmedQuery.find(&quot;//&quot;)) {

Can we always fall back to XPath as before, otherwise it may be confusing that we limit supported XPath patterns to &quot;//...&quot;?

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:856
&gt; +                        const Attribute *attribute = attrMap-&gt;attributeItem(i);

const Attribute* attribute for consistency with other places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500836</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-11 09:18:37 -0800</bug_when>
    <thetext>Committed r99983: &lt;http://trac.webkit.org/changeset/99983&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114702</attachid>
            <date>2011-11-11 08:16:03 -0800</date>
            <delta_ts>2011-11-11 09:03:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72125-20111111201601.patch</filename>
            <type>text/plain</type>
            <size>16527</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk5NjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYWEzYmRmZGMyZTc0YmQ3
N2E1YjRiYzNmYjRkNGM1MzdmYmFkOWU1Li45MDhiZDRkZWEwMDA4NDI1NGE1ZTg4MzU1M2Y1YjBj
YzA0N2NiNDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTEtMTEtMTEgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IHJlaW1wbGVtZW50IERPTSBzZWFyY2ggdXNpbmcgbm8gWFBhdGguCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEyNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwZXJmb3JtU2Vh
cmNoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZv
ck5vZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorCisyMDEx
LTExLTExICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwogICAgICAgICBO
b3QgcmV2aWV3ZWQ6IGZpeCBTbm93IExlb3BhcmQgYnVpbGQuCiAKICAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYWM3YTgzMGRmNzkwOTcyMDA0ZWJjNzhkYzAyYTU1
ZmM0NGVkYjQ5NC4uMGY2NjA0ZTE5ZDQxYjlmZmNiYTg0MDQwNmJmMmNiMzIxMjBjMGIxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0x
MzQsMjYgKzEzNCw2IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNvbmZpZ0NvbG9yKGNvbnN0IFN0cmlu
ZyYgZmllbGROYW1lLCBJbnNwZWN0b3JPYmplY3QqIGNvbmZpZ09iCiAgICAgcmV0dXJuIHBhcnNl
Q29sb3IoJmNvbG9yT2JqZWN0KTsKIH0KIAotY2xhc3MgTWF0Y2hKb2IgewotcHVibGljOgotICAg
IHZpcnR1YWwgdm9pZCBtYXRjaChMaXN0SGFzaFNldDxOb2RlKj4mIHJlc3VsdENvbGxlY3Rvcikg
PSAwOwotICAgIHZpcnR1YWwgfk1hdGNoSm9iKCkgeyB9Ci0KLXByb3RlY3RlZDoKLSAgICBNYXRj
aEpvYihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgcXVlcnkpCi0gICAgICAgIDog
bV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAgICAgLCBtX3F1ZXJ5KHF1ZXJ5KSB7IH0KLQotICAg
IHZvaWQgYWRkTm9kZXNUb1Jlc3VsdHMoUGFzc1JlZlB0cjxOb2RlTGlzdD4gbm9kZXMsIExpc3RI
YXNoU2V0PE5vZGUqPiYgcmVzdWx0Q29sbGVjdG9yKQotICAgIHsKLSAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgbm9kZXMgJiYgaSA8IG5vZGVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICAg
ICAgcmVzdWx0Q29sbGVjdG9yLmFkZChub2Rlcy0+aXRlbShpKSk7Ci0gICAgfQotCi0gICAgRG9j
dW1lbnQqIG1fZG9jdW1lbnQ7Ci0gICAgU3RyaW5nIG1fcXVlcnk7Ci19OwotCiBjbGFzcyBSZXZh
bGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNrIHsKIHB1YmxpYzoKICAgICBSZXZhbGlkYXRlU3R5bGVB
dHRyaWJ1dGVUYXNrKEluc3BlY3RvckRPTUFnZW50Kik7CkBAIC0xNjcsMTA1ICsxNDcsNiBAQCBw
cml2YXRlOgogICAgIEhhc2hTZXQ8UmVmUHRyPEVsZW1lbnQ+ID4gbV9lbGVtZW50czsKIH07CiAK
LW5hbWVzcGFjZSB7Ci0KLWNsYXNzIE1hdGNoRXhhY3RJZEpvYiA6IHB1YmxpYyBXZWJDb3JlOjpN
YXRjaEpvYiB7Ci1wdWJsaWM6Ci0gICAgTWF0Y2hFeGFjdElkSm9iKERvY3VtZW50KiBkb2N1bWVu
dCwgY29uc3QgU3RyaW5nJiBxdWVyeSkgOiBXZWJDb3JlOjpNYXRjaEpvYihkb2N1bWVudCwgcXVl
cnkpIHsgfQotICAgIHZpcnR1YWwgfk1hdGNoRXhhY3RJZEpvYigpIHsgfQotCi1wcm90ZWN0ZWQ6
Ci0gICAgdmlydHVhbCB2b2lkIG1hdGNoKExpc3RIYXNoU2V0PE5vZGUqPiYgcmVzdWx0Q29sbGVj
dG9yKQotICAgIHsKLSAgICAgICAgaWYgKG1fcXVlcnkuaXNFbXB0eSgpKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBtX2RvY3VtZW50LT5nZXRFbGVt
ZW50QnlJZChtX3F1ZXJ5KTsKLSAgICAgICAgaWYgKGVsZW1lbnQpCi0gICAgICAgICAgICByZXN1
bHRDb2xsZWN0b3IuYWRkKGVsZW1lbnQpOwotICAgIH0KLX07Ci0KLWNsYXNzIE1hdGNoRXhhY3RD
bGFzc05hbWVzSm9iIDogcHVibGljIFdlYkNvcmU6Ok1hdGNoSm9iIHsKLXB1YmxpYzoKLSAgICBN
YXRjaEV4YWN0Q2xhc3NOYW1lc0pvYihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
cXVlcnkpIDogV2ViQ29yZTo6TWF0Y2hKb2IoZG9jdW1lbnQsIHF1ZXJ5KSB7IH0KLSAgICB2aXJ0
dWFsIH5NYXRjaEV4YWN0Q2xhc3NOYW1lc0pvYigpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIG1h
dGNoKExpc3RIYXNoU2V0PE5vZGUqPiYgcmVzdWx0Q29sbGVjdG9yKQotICAgIHsKLSAgICAgICAg
aWYgKCFtX3F1ZXJ5LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGFkZE5vZGVzVG9SZXN1bHRzKG1f
ZG9jdW1lbnQtPmdldEVsZW1lbnRzQnlDbGFzc05hbWUobV9xdWVyeSksIHJlc3VsdENvbGxlY3Rv
cik7Ci0gICAgfQotfTsKLQotY2xhc3MgTWF0Y2hFeGFjdFRhZ05hbWVzSm9iIDogcHVibGljIFdl
YkNvcmU6Ok1hdGNoSm9iIHsKLXB1YmxpYzoKLSAgICBNYXRjaEV4YWN0VGFnTmFtZXNKb2IoRG9j
dW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHF1ZXJ5KSA6IFdlYkNvcmU6Ok1hdGNoSm9i
KGRvY3VtZW50LCBxdWVyeSkgeyB9Ci0gICAgdmlydHVhbCB+TWF0Y2hFeGFjdFRhZ05hbWVzSm9i
KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgbWF0Y2goTGlzdEhhc2hTZXQ8Tm9kZSo+JiByZXN1
bHRDb2xsZWN0b3IpCi0gICAgewotICAgICAgICBpZiAoIW1fcXVlcnkuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgYWRkTm9kZXNUb1Jlc3VsdHMobV9kb2N1bWVudC0+Z2V0RWxlbWVudHNCeU5hbWUo
bV9xdWVyeSksIHJlc3VsdENvbGxlY3Rvcik7Ci0gICAgfQotfTsKLQotY2xhc3MgTWF0Y2hRdWVy
eVNlbGVjdG9yQWxsSm9iIDogcHVibGljIFdlYkNvcmU6Ok1hdGNoSm9iIHsKLXB1YmxpYzoKLSAg
ICBNYXRjaFF1ZXJ5U2VsZWN0b3JBbGxKb2IoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIHF1ZXJ5KSA6IFdlYkNvcmU6Ok1hdGNoSm9iKGRvY3VtZW50LCBxdWVyeSkgeyB9Ci0gICAg
dmlydHVhbCB+TWF0Y2hRdWVyeVNlbGVjdG9yQWxsSm9iKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgbWF0Y2goTGlzdEhhc2hTZXQ8Tm9kZSo+JiByZXN1bHRDb2xsZWN0b3IpCi0gICAgewotICAg
ICAgICBpZiAobV9xdWVyeS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIFJlZlB0cjxOb2RlTGlzdD4gbGlzdCA9
IG1fZG9jdW1lbnQtPnF1ZXJ5U2VsZWN0b3JBbGwobV9xdWVyeSwgZWMpOwotICAgICAgICBpZiAo
IWVjKQotICAgICAgICAgICAgYWRkTm9kZXNUb1Jlc3VsdHMobGlzdCwgcmVzdWx0Q29sbGVjdG9y
KTsKLSAgICB9Ci19OwotCi1jbGFzcyBNYXRjaFhQYXRoSm9iIDogcHVibGljIFdlYkNvcmU6Ok1h
dGNoSm9iIHsKLXB1YmxpYzoKLSAgICBNYXRjaFhQYXRoSm9iKERvY3VtZW50KiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiBxdWVyeSkgOiBXZWJDb3JlOjpNYXRjaEpvYihkb2N1bWVudCwgcXVlcnkp
IHsgfQotICAgIHZpcnR1YWwgfk1hdGNoWFBhdGhKb2IoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9p
ZCBtYXRjaChMaXN0SGFzaFNldDxOb2RlKj4mIHJlc3VsdENvbGxlY3RvcikKLSAgICB7Ci0gICAg
ICAgIGlmIChtX3F1ZXJ5LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgUmVmUHRyPFhQYXRoUmVzdWx0PiByZXN1
bHQgPSBtX2RvY3VtZW50LT5ldmFsdWF0ZShtX3F1ZXJ5LCBtX2RvY3VtZW50LCAwLCBYUGF0aFJl
c3VsdDo6T1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIDAsIGVjKTsKLSAgICAgICAgaWYgKGVj
IHx8ICFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdW5zaWduZWQgbG9u
ZyBzaXplID0gcmVzdWx0LT5zbmFwc2hvdExlbmd0aChlYyk7Ci0gICAgICAgIGZvciAodW5zaWdu
ZWQgbG9uZyBpID0gMDsgIWVjICYmIGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgIE5vZGUq
IG5vZGUgPSByZXN1bHQtPnNuYXBzaG90SXRlbShpLCBlYyk7Ci0gICAgICAgICAgICBpZiAoZWMp
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGlmIChub2RlLT5ub2RlVHlw
ZSgpID09IE5vZGU6OkFUVFJJQlVURV9OT0RFKQotICAgICAgICAgICAgICAgIG5vZGUgPSBzdGF0
aWNfY2FzdDxBdHRyKj4obm9kZSktPm93bmVyRWxlbWVudCgpOwotICAgICAgICAgICAgcmVzdWx0
Q29sbGVjdG9yLmFkZChub2RlKTsKLSAgICAgICAgfQotICAgIH0KLX07Ci0KLWNsYXNzIE1hdGNo
UGxhaW5UZXh0Sm9iIDogcHVibGljIE1hdGNoWFBhdGhKb2IgewotcHVibGljOgotICAgIE1hdGNo
UGxhaW5UZXh0Sm9iKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBxdWVyeSkgOiBN
YXRjaFhQYXRoSm9iKGRvY3VtZW50LCBxdWVyeSkKLSAgICB7Ci0gICAgICAgIG1fcXVlcnkgPSAi
Ly90ZXh0KClbY29udGFpbnMoLiwgJyIgKyBtX3F1ZXJ5ICsgIicpXSB8IC8vY29tbWVudCgpW2Nv
bnRhaW5zKC4sICciICsgbV9xdWVyeSArICInKV0iOwotICAgIH0KLSAgICB2aXJ0dWFsIH5NYXRj
aFBsYWluVGV4dEpvYigpIHsgfQotfTsKLQotfQotCiBSZXZhbGlkYXRlU3R5bGVBdHRyaWJ1dGVU
YXNrOjpSZXZhbGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNrKEluc3BlY3RvckRPTUFnZW50KiBkb21B
Z2VudCkKICAgICA6IG1fZG9tQWdlbnQoZG9tQWdlbnQpCiAgICAgLCBtX3RpbWVyKHRoaXMsICZS
ZXZhbGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNrOjpvblRpbWVyKQpAQCAtOTA2LDgzICs3ODcsOTEg
QEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cGVyZm9ybVNlYXJjaChFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgd2hpdGVzcGFjZVRyaW0KICAgICAvLyAyKSBUaGVyZSBpcyBubyBuZWVkIHRv
IHB1c2ggYWxsIHNlYXJjaCByZXN1bHRzIHRvIHRoZSBmcm9udC1lbmQgYXQgYSB0aW1lLCBwdXNo
aW5nIG5leHQgLyBwcmV2aW91cyByZXN1bHQKICAgICAvLyAgICBpcyBzdWZmaWNpZW50LgogCi0g
ICAgdW5zaWduZWQgcXVlcnlMZW5ndGggPSB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5Lmxlbmd0aCgp
OwotICAgIGJvb2wgc3RhcnRUYWdGb3VuZCA9ICF3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LmZpbmQo
JzwnKTsKLSAgICBib29sIGVuZFRhZ0ZvdW5kID0gd2hpdGVzcGFjZVRyaW1tZWRRdWVyeS5yZXZl
cnNlRmluZCgnPicpICsgMSA9PSBxdWVyeUxlbmd0aDsKLQotICAgIFN0cmluZyB0YWdOYW1lUXVl
cnkgPSB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5OwotICAgIGlmIChzdGFydFRhZ0ZvdW5kIHx8IGVu
ZFRhZ0ZvdW5kKQotICAgICAgICB0YWdOYW1lUXVlcnkgPSB0YWdOYW1lUXVlcnkuc3Vic3RyaW5n
KHN0YXJ0VGFnRm91bmQgPyAxIDogMCwgZW5kVGFnRm91bmQgPyBxdWVyeUxlbmd0aCAtIDEgOiBx
dWVyeUxlbmd0aCk7Ci0gICAgaWYgKCFEb2N1bWVudDo6aXNWYWxpZE5hbWUodGFnTmFtZVF1ZXJ5
KSkKLSAgICAgICAgdGFnTmFtZVF1ZXJ5ID0gIiI7Ci0KLSAgICBTdHJpbmcgYXR0cmlidXRlTmFt
ZVF1ZXJ5ID0gd2hpdGVzcGFjZVRyaW1tZWRRdWVyeTsKLSAgICBpZiAoIURvY3VtZW50Ojppc1Zh
bGlkTmFtZShhdHRyaWJ1dGVOYW1lUXVlcnkpKQotICAgICAgICBhdHRyaWJ1dGVOYW1lUXVlcnkg
PSAiIjsKLQotICAgIFN0cmluZyBlc2NhcGVkUXVlcnkgPSB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5
OwotICAgIGVzY2FwZWRRdWVyeS5yZXBsYWNlKCInIiwgIlxcJyIpOwotICAgIFN0cmluZyBlc2Nh
cGVkVGFnTmFtZVF1ZXJ5ID0gdGFnTmFtZVF1ZXJ5OwotICAgIGVzY2FwZWRUYWdOYW1lUXVlcnku
cmVwbGFjZSgiJyIsICJcXCciKTsKLQotICAgIC8vIEZpbmQgYWxsIGZyYW1lcywgaWZyYW1lcyBh
bmQgb2JqZWN0IGVsZW1lbnRzIHRvIHNlYXJjaCB0aGVpciBkb2N1bWVudHMuCi0gICAgVmVjdG9y
PERvY3VtZW50Kj4gZG9jcyA9IGRvY3VtZW50cygpOwotICAgIFZlY3RvcjxNYXRjaEpvYio+IG1h
dGNoSm9iczsKLSAgICBmb3IgKFZlY3RvcjxEb2N1bWVudCo+OjppdGVyYXRvciBpdCA9IGRvY3Mu
YmVnaW4oKTsgaXQgIT0gZG9jcy5lbmQoKTsgKytpdCkgewotICAgICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSAqaXQ7Ci0KLSAgICAgICAgaWYgKCF0YWdOYW1lUXVlcnkuaXNFbXB0eSgpICYmIHN0
YXJ0VGFnRm91bmQgJiYgZW5kVGFnRm91bmQpIHsKLSAgICAgICAgICAgIG1hdGNoSm9icy5hcHBl
bmQobmV3IE1hdGNoRXhhY3RUYWdOYW1lc0pvYihkb2N1bWVudCwgdGFnTmFtZVF1ZXJ5KSk7Ci0g
ICAgICAgICAgICBtYXRjaEpvYnMuYXBwZW5kKG5ldyBNYXRjaFBsYWluVGV4dEpvYihkb2N1bWVu
dCwgZXNjYXBlZFF1ZXJ5KSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGlmICghdGFnTmFtZVF1ZXJ5LmlzRW1wdHkoKSAmJiBzdGFydFRhZ0ZvdW5kKSB7Ci0g
ICAgICAgICAgICBtYXRjaEpvYnMuYXBwZW5kKG5ldyBNYXRjaFhQYXRoSm9iKGRvY3VtZW50LCAi
Ly8qW3N0YXJ0cy13aXRoKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1ZXJ5ICsgIicpXSIp
KTsKLSAgICAgICAgICAgIG1hdGNoSm9icy5hcHBlbmQobmV3IE1hdGNoUGxhaW5UZXh0Sm9iKGRv
Y3VtZW50LCBlc2NhcGVkUXVlcnkpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9
CisgICAgKnNlYXJjaElkID0gSWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCk7
CisgICAgU2VhcmNoUmVzdWx0czo6aXRlcmF0b3IgcmVzdWx0c0l0ID0gbV9zZWFyY2hSZXN1bHRz
LmFkZCgqc2VhcmNoSWQsIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPigpKS5maXJzdDsKIAotICAgICAg
ICBpZiAoIXRhZ05hbWVRdWVyeS5pc0VtcHR5KCkgJiYgZW5kVGFnRm91bmQpIHsKLSAgICAgICAg
ICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgaGF2ZSBhIG1hdGNoRW5kT2ZUYWdOYW1lcyBzZWFyY2gg
ZnVuY3Rpb24gaWYgZW5kVGFnRm91bmQgaXMgdHJ1ZSBidXQgbm90IHN0YXJ0VGFnRm91bmQuCi0g
ICAgICAgICAgICAvLyBUaGlzIHJlcXVpcmVzIGVuZHMtd2l0aCgpIHN1cHBvcnQgaW4gWFBhdGgs
IFdlYktpdCBvbmx5IHN1cHBvcnRzIHN0YXJ0cy13aXRoKCkgYW5kIGNvbnRhaW5zKCkuCi0gICAg
ICAgICAgICBtYXRjaEpvYnMuYXBwZW5kKG5ldyBNYXRjaFhQYXRoSm9iKGRvY3VtZW50LCAiLy8q
W2NvbnRhaW5zKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1ZXJ5ICsgIicpXSIpKTsKLSAg
ICAgICAgICAgIG1hdGNoSm9icy5hcHBlbmQobmV3IE1hdGNoUGxhaW5UZXh0Sm9iKGRvY3VtZW50
LCBlc2NhcGVkUXVlcnkpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgIGlmICghd2hpdGVz
cGFjZVRyaW1tZWRRdWVyeS5maW5kKCIvLyIpKSB7CisgICAgICAgIC8vIEZvcmNlIFhQYXRoIGV2
YWx1YXRpb24KKyAgICAgICAgVmVjdG9yPERvY3VtZW50Kj4gZG9jcyA9IGRvY3VtZW50cygpOwor
ICAgICAgICBMaXN0SGFzaFNldDxOb2RlKj4gcmVzdWx0Q29sbGVjdG9yOworICAgICAgICBmb3Ig
KFZlY3RvcjxEb2N1bWVudCo+OjppdGVyYXRvciBpdCA9IGRvY3MuYmVnaW4oKTsgaXQgIT0gZG9j
cy5lbmQoKTsgKytpdCkgeworICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKml0Owor
ICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAgICAgICBSZWZQdHI8WFBh
dGhSZXN1bHQ+IHJlc3VsdCA9IGRvY3VtZW50LT5ldmFsdWF0ZSh3aGl0ZXNwYWNlVHJpbW1lZFF1
ZXJ5LCBkb2N1bWVudCwgMCwgWFBhdGhSZXN1bHQ6Ok9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBF
LCAwLCBlYyk7CisgICAgICAgICAgICBpZiAoZWMgfHwgIXJlc3VsdCkKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplID0gcmVzdWx0LT5z
bmFwc2hvdExlbmd0aChlYyk7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7
ICFlYyAmJiBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IHJl
c3VsdC0+c25hcHNob3RJdGVtKGksIGVjKTsKKyAgICAgICAgICAgICAgICBpZiAoZWMpCisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm5vZGVU
eXBlKCkgPT0gTm9kZTo6QVRUUklCVVRFX05PREUpCisgICAgICAgICAgICAgICAgICAgIG5vZGUg
PSBzdGF0aWNfY2FzdDxBdHRyKj4obm9kZSktPm93bmVyRWxlbWVudCgpOworICAgICAgICAgICAg
ICAgIHJlc3VsdENvbGxlY3Rvci5hZGQobm9kZSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
LQotICAgICAgICBib29sIG1hdGNoZXNFdmVyeU5vZGUgPSB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5
ID09ICIvLyoiIHx8IHdoaXRlc3BhY2VUcmltbWVkUXVlcnkgPT0gIioiOwotICAgICAgICBpZiAo
bWF0Y2hlc0V2ZXJ5Tm9kZSkgewotICAgICAgICAgICAgLy8gVGhlc2UgcXVlcmllcyB3aWxsIG1h
dGNoIGV2ZXJ5IG5vZGUuIE1hdGNoaW5nIGV2ZXJ5dGhpbmcgaXNuJ3QgdXNlZnVsIGFuZCBjYW4g
YmUgc2xvdyBmb3IgbGFyZ2UgcGFnZXMsCi0gICAgICAgICAgICAvLyBzbyBsaW1pdCB0aGUgc2Vh
cmNoIGZ1bmN0aW9ucyBsaXN0IHRvIHBsYWluIHRleHQgYW5kIGF0dHJpYnV0ZSBtYXRjaGluZyBm
b3IgdGhlc2UuCi0gICAgICAgICAgICBtYXRjaEpvYnMuYXBwZW5kKG5ldyBNYXRjaFhQYXRoSm9i
KGRvY3VtZW50LCAiLy8qW2NvbnRhaW5zKEAqLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0iKSk7
Ci0gICAgICAgICAgICBtYXRjaEpvYnMuYXBwZW5kKG5ldyBNYXRjaFBsYWluVGV4dEpvYihkb2N1
bWVudCwgZXNjYXBlZFF1ZXJ5KSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZm9y
IChMaXN0SGFzaFNldDxOb2RlKj46Oml0ZXJhdG9yIGl0ID0gcmVzdWx0Q29sbGVjdG9yLmJlZ2lu
KCk7IGl0ICE9IHJlc3VsdENvbGxlY3Rvci5lbmQoKTsgKytpdCkKKyAgICAgICAgICAgIHJlc3Vs
dHNJdC0+c2Vjb25kLmFwcGVuZCgqaXQpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE1hbnVh
bCBwbGFpbiB0ZXh0IHNlYXJjaC4KKyAgICAgICAgdW5zaWduZWQgcXVlcnlMZW5ndGggPSB3aGl0
ZXNwYWNlVHJpbW1lZFF1ZXJ5Lmxlbmd0aCgpOworICAgICAgICBib29sIHN0YXJ0VGFnRm91bmQg
PSAhd2hpdGVzcGFjZVRyaW1tZWRRdWVyeS5maW5kKCc8Jyk7CisgICAgICAgIGJvb2wgZW5kVGFn
Rm91bmQgPSB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LnJldmVyc2VGaW5kKCc+JykgKyAxID09IHF1
ZXJ5TGVuZ3RoOworCisgICAgICAgIFN0cmluZyB0YWdOYW1lUXVlcnkgPSB3aGl0ZXNwYWNlVHJp
bW1lZFF1ZXJ5OworICAgICAgICBpZiAoc3RhcnRUYWdGb3VuZCkKKyAgICAgICAgICAgIHRhZ05h
bWVRdWVyeSA9IHRhZ05hbWVRdWVyeS5yaWdodCh0YWdOYW1lUXVlcnkubGVuZ3RoKCkgLSAxKTsK
KyAgICAgICAgaWYgKGVuZFRhZ0ZvdW5kKQorICAgICAgICAgICAgdGFnTmFtZVF1ZXJ5ID0gdGFn
TmFtZVF1ZXJ5LmxlZnQodGFnTmFtZVF1ZXJ5Lmxlbmd0aCgpIC0gMSk7CisKKyAgICAgICAgVmVj
dG9yPERvY3VtZW50Kj4gZG9jcyA9IGRvY3VtZW50cygpOworICAgICAgICBmb3IgKFZlY3RvcjxE
b2N1bWVudCo+OjppdGVyYXRvciBpdCA9IGRvY3MuYmVnaW4oKTsgaXQgIT0gZG9jcy5lbmQoKTsg
KytpdCkgeworICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKml0OworICAgICAgICAg
ICAgTm9kZSogbm9kZSA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKKyAgICAgICAgICAg
IHdoaWxlICgobm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoZG9jdW1lbnQtPmRvY3VtZW50
RWxlbWVudCgpKSkpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkp
IHsKKyAgICAgICAgICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKKyAgICAgICAgICAgICAg
ICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKKyAgICAgICAgICAgICAgICBjYXNlIE5vZGU6OkNE
QVRBX1NFQ1RJT05fTk9ERTogeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IG5v
ZGUtPm5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAodGV4dC5maW5kSWdub3Jp
bmdDYXNlKHdoaXRlc3BhY2VUcmltbWVkUXVlcnkpICE9IG5vdEZvdW5kKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0c0l0LT5zZWNvbmQuYXBwZW5kKG5vZGUpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBO
b2RlOjpFTEVNRU5UX05PREU6IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm5vZGVO
YW1lKCkuZmluZElnbm9yaW5nQ2FzZSh0YWdOYW1lUXVlcnkpICE9IG5vdEZvdW5kKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHRzSXQtPnNlY29uZC5hcHBlbmQobm9kZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAvLyBHbyB0aHJvdWdoIGFsbCBhdHRyaWJ1dGVzIGFuZCBzZXJpYWxpemUg
dGhlbS4KKyAgICAgICAgICAgICAgICAgICAgY29uc3QgTmFtZWROb2RlTWFwKiBhdHRyTWFwID0g
c3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLT5hdHRyaWJ1dGVzKHRydWUpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoIWF0dHJNYXApCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KworICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1BdHRycyA9IGF0dHJNYXAtPmxlbmd0
aCgpOworICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtQXR0
cnM7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGF0dHJpYnV0ZSBwYWly
CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdHRyaWJ1dGUgKmF0dHJpYnV0ZSA9IGF0
dHJNYXAtPmF0dHJpYnV0ZUl0ZW0oaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0
cmlidXRlLT5sb2NhbE5hbWUoKS5maW5kKHdoaXRlc3BhY2VUcmltbWVkUXVlcnkpICE9IG5vdEZv
dW5kKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c0l0LT5zZWNvbmQuYXBw
ZW5kKG5vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZS0+
dmFsdWUoKS5maW5kKHdoaXRlc3BhY2VUcmltbWVkUXVlcnkpICE9IG5vdEZvdW5kKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c0l0LT5zZWNvbmQuYXBwZW5kKG5vZGUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KLQotICAgICAgICBtYXRjaEpvYnMuYXBwZW5kKG5ldyBNYXRjaEV4YWN0SWRKb2IoZG9jdW1l
bnQsIHdoaXRlc3BhY2VUcmltbWVkUXVlcnkpKTsKLSAgICAgICAgbWF0Y2hKb2JzLmFwcGVuZChu
ZXcgTWF0Y2hFeGFjdENsYXNzTmFtZXNKb2IoZG9jdW1lbnQsIHdoaXRlc3BhY2VUcmltbWVkUXVl
cnkpKTsKLSAgICAgICAgbWF0Y2hKb2JzLmFwcGVuZChuZXcgTWF0Y2hFeGFjdFRhZ05hbWVzSm9i
KGRvY3VtZW50LCB0YWdOYW1lUXVlcnkpKTsKLSAgICAgICAgbWF0Y2hKb2JzLmFwcGVuZChuZXcg
TWF0Y2hRdWVyeVNlbGVjdG9yQWxsSm9iKGRvY3VtZW50LCAiWyIgKyBhdHRyaWJ1dGVOYW1lUXVl
cnkgKyAiXSIpKTsKLSAgICAgICAgbWF0Y2hKb2JzLmFwcGVuZChuZXcgTWF0Y2hRdWVyeVNlbGVj
dG9yQWxsSm9iKGRvY3VtZW50LCB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5KSk7Ci0gICAgICAgIG1h
dGNoSm9icy5hcHBlbmQobmV3IE1hdGNoWFBhdGhKb2IoZG9jdW1lbnQsICIvLypbY29udGFpbnMo
QCosICciICsgZXNjYXBlZFF1ZXJ5ICsgIicpXSIpKTsKLSAgICAgICAgaWYgKCF0YWdOYW1lUXVl
cnkuaXNFbXB0eSgpKQotICAgICAgICAgICAgbWF0Y2hKb2JzLmFwcGVuZChuZXcgTWF0Y2hYUGF0
aEpvYihkb2N1bWVudCwgIi8vKltjb250YWlucyhuYW1lKCksICciICsgZXNjYXBlZFRhZ05hbWVR
dWVyeSArICInKV0iKSk7Ci0gICAgICAgIG1hdGNoSm9icy5hcHBlbmQobmV3IE1hdGNoUGxhaW5U
ZXh0Sm9iKGRvY3VtZW50LCBlc2NhcGVkUXVlcnkpKTsKLSAgICAgICAgbWF0Y2hKb2JzLmFwcGVu
ZChuZXcgTWF0Y2hYUGF0aEpvYihkb2N1bWVudCwgd2hpdGVzcGFjZVRyaW1tZWRRdWVyeSkpOwog
ICAgIH0KIAotICAgIExpc3RIYXNoU2V0PE5vZGUqPiByZXN1bHRDb2xsZWN0b3I7Ci0gICAgZm9y
IChWZWN0b3I8TWF0Y2hKb2IqPjo6aXRlcmF0b3IgaXQgPSBtYXRjaEpvYnMuYmVnaW4oKTsgaXQg
IT0gbWF0Y2hKb2JzLmVuZCgpOyArK2l0KQotICAgICAgICAoKml0KS0+bWF0Y2gocmVzdWx0Q29s
bGVjdG9yKTsKLSAgICBkZWxldGVBbGxWYWx1ZXMobWF0Y2hKb2JzKTsKLQotICAgICpzZWFyY2hJ
ZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpOwotICAgIFNlYXJjaFJl
c3VsdHM6Oml0ZXJhdG9yIHJlc3VsdHNJdCA9IG1fc2VhcmNoUmVzdWx0cy5hZGQoKnNlYXJjaElk
LCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4oKSkuZmlyc3Q7Ci0KLSAgICBmb3IgKExpc3RIYXNoU2V0
PE5vZGUqPjo6aXRlcmF0b3IgaXQgPSByZXN1bHRDb2xsZWN0b3IuYmVnaW4oKTsgaXQgIT0gcmVz
dWx0Q29sbGVjdG9yLmVuZCgpOyArK2l0KQotICAgICAgICByZXN1bHRzSXQtPnNlY29uZC5hcHBl
bmQoKml0KTsKLQogICAgICpyZXN1bHRDb3VudCA9IHJlc3VsdHNJdC0+c2Vjb25kLnNpemUoKTsK
IH0KIApAQCAtMTI0NSwyNiArMTEzNCwyNiBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiBub2RlLCBpbgogICAg
IFN0cmluZyBub2RlVmFsdWU7CiAKICAgICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkpIHsKLSAg
ICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9O
T0RFOgotICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKLSAgICAgICAgICAg
IG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOwotICAgICAgICAgICAgaWYgKG5vZGVWYWx1
ZS5sZW5ndGgoKSA+IG1heFRleHRTaXplKSB7Ci0gICAgICAgICAgICAgICAgbm9kZVZhbHVlID0g
bm9kZVZhbHVlLmxlZnQobWF4VGV4dFNpemUpOwotICAgICAgICAgICAgICAgIG5vZGVWYWx1ZS5h
cHBlbmQoZWxsaXBzaXNVQ2hhcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICAgICAgICAgIGxvY2FsTmFt
ZSA9IG5vZGUtPmxvY2FsTmFtZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6Ci0gICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9O
T0RFOgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgbm9kZU5hbWUgPSBub2RlLT5ub2Rl
TmFtZSgpOwotICAgICAgICAgICAgbG9jYWxOYW1lID0gbm9kZS0+bG9jYWxOYW1lKCk7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKKyAgICBjYXNlIE5vZGU6
OkNPTU1FTlRfTk9ERToKKyAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAg
ICAgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7CisgICAgICAgIGlmIChub2RlVmFsdWUu
bGVuZ3RoKCkgPiBtYXhUZXh0U2l6ZSkgeworICAgICAgICAgICAgbm9kZVZhbHVlID0gbm9kZVZh
bHVlLmxlZnQobWF4VGV4dFNpemUpOworICAgICAgICAgICAgbm9kZVZhbHVlLmFwcGVuZChlbGxp
cHNpc1VDaGFyKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vZGU6OkFU
VFJJQlVURV9OT0RFOgorICAgICAgICBsb2NhbE5hbWUgPSBub2RlLT5sb2NhbE5hbWUoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CisgICAgY2FzZSBOb2Rl
OjpFTEVNRU5UX05PREU6CisgICAgZGVmYXVsdDoKKyAgICAgICAgbm9kZU5hbWUgPSBub2RlLT5u
b2RlTmFtZSgpOworICAgICAgICBsb2NhbE5hbWUgPSBub2RlLT5sb2NhbE5hbWUoKTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgdmFsdWUtPnNldE51bWJlcigibm9kZUlkIiwgaWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBjNDYy
MGY3YjI2OTYyNDU5ZDliMzFjM2Q2MWQwZjRlYjMzOTg0NzI4Li4wZjgwZDQ4Nzc4ZDZlOWRhMzZh
NmY5MzY4OGEwMTQyMzdkYTMwNzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuaApAQCAtNjAsNyArNjAsNiBAQCBjbGFzcyBJbnNwZWN0b3JGcm9udGVu
ZDsKIGNsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBIaXRU
ZXN0UmVzdWx0OwotY2xhc3MgTWF0Y2hKb2I7CiBjbGFzcyBIVE1MRWxlbWVudDsKIHN0cnVjdCBI
aWdobGlnaHREYXRhOwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VhcmNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VhcmNoLmh0bWwKaW5k
ZXggNDZhZDMzMGYyNGJlMWUzYTc3ZmJhZmM2Yjg1YmI1MDIzMmIxMTI4Ny4uZjY5MDYzOWVlOWI1
NDEwMTgwMDMzNDQxMTc2OWY4MGY1OGZjMzQ0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXNlYXJjaC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFyY2guaHRtbApAQCAtMTcs
OSArMTcsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIG5vZGUuZ2V0T3V0ZXJIVE1M
KGFkZFNlYXJjaFJlc3VsdC5iaW5kKHRoaXMsIGlzTGFzdEl0ZW0pKTsKICAgICAgICAgfQogCi0g
ICAgICAgIGZ1bmN0aW9uIGFkZFNlYXJjaFJlc3VsdChpc0xhc3RJdGVtLCBlcnJvciwgbWFya3Vw
VmFsdWUpCisgICAgICAgIGZ1bmN0aW9uIGFkZFNlYXJjaFJlc3VsdChpc0xhc3RJdGVtLCBlcnJv
ciwgbWFya3VwVmFfbHVlKQogICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdChtYXJrdXBWYWx1ZS5zcGxpdCgiIikuam9pbigiICIpKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KG1hcmt1cFZhX2x1ZS5zcGxpdCgiIikuam9pbigiICIpKTsK
ICAgICAgICAgICAgIGlmIChpc0xhc3RJdGVtKSB7CiAgICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmRvbUFnZW50LmNhbmNlbFNlYXJjaCgpOwogICAgICAgICAgICAgICAgIG5leHQoKTsK
</data>
<flag name="review"
          id="113417"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>