<?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>69439</bug_id>
          
          <creation_ts>2011-10-05 10:14:14 -0700</creation_ts>
          <short_desc>Web Inspector: make ElementsTreeOutline compile</short_desc>
          <delta_ts>2011-10-06 06:13:33 -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>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>478467</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-05 10:14:14 -0700</bug_when>
    <thetext>patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478470</commentid>
    <comment_count>1</comment_count>
      <attachid>109817</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-05 10:16:26 -0700</bug_when>
    <thetext>Created attachment 109817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479036</commentid>
    <comment_count>2</comment_count>
      <attachid>109937</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-06 03:13:39 -0700</bug_when>
    <thetext>Created attachment 109937
[Patch] Same with highlightDOMNode extern resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479105</commentid>
    <comment_count>3</comment_count>
      <attachid>109937</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-06 06:03:20 -0700</bug_when>
    <thetext>Comment on attachment 109937
[Patch] Same with highlightDOMNode extern resolved.

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

&gt; Source/WebCore/inspector/front-end/ElementsTreeOutline.js:1272
&gt; +

config.setMultiline(true) is missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479109</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-06 06:13:33 -0700</bug_when>
    <thetext>Committed r96805: &lt;http://trac.webkit.org/changeset/96805&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109817</attachid>
            <date>2011-10-05 10:16:26 -0700</date>
            <delta_ts>2011-10-06 03:13:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69439-20111005211624.patch</filename>
            <type>text/plain</type>
            <size>20678</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY3MTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NjZhM2MyMjQzMWUyOTY5
MWViNWZhM2Y4MmU3MjYxOTllN2IxM2NjLi43OTNiNzkyOTY0MWM1YjhjOTk3MDI3Yzc4NTZjN2Iy
NThkYTQ3NmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzggQEAKIDIwMTEtMTAtMDUgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1ha2UgRWxlbWVudHNUcmVlT3V0bGluZSBjb21waWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTQzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNo
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01TeW50YXhIaWdobGlnaHRlci5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRWxlbWVudHNQYW5lbC5nZXQgdGhpcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVu
dHNQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUu
X3BvcHVsYXRlQ29udGV4dE1lbnUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFu
ZWwucHJvdG90eXBlLl9pbnNwZWN0RWxlbWVudFJlcXVlc3RlZCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZU91dGxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZU91dGxpbmUucHJvdG90eXBlLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuZm9jdXNFbGVtZW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZS5f
Y29udGV4dE1lbnVFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Ry
ZWVPdXRsaW5lLnByb3RvdHlwZS5fdXBkYXRlTW9kaWZpZWROb2Rlcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuX3BvcHVsYXRlQ29udGV4dE1l
bnUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBl
Ll9wb3B1bGF0ZVRhZ0NvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5n
VGV4dE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJv
dG90eXBlLl9zdGFydEVkaXRpbmdUYWdOYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nQXNIVE1MKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdGFnTmFtZUVkaXRp
bmdDb21taXR0ZWQuY2hhbmdlVGFnTmFtZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdGFnTmFtZUVkaXRpbmdDb21taXR0ZWQp
OgorICAgICAgICAoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuaGlnaGxpZ2h0RE9NTm9kZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IucmVzb3VyY2VVUkxGb3JSZWxhdGVkTm9kZSk6CisKKzIwMTEtMTAtMDUgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1vdmUgZWxlbWVudHMgcGFuZWwgdXBkYXRlIHNlbWFudGljcyBmcm9tIEVsZW1lbnRzUGFuZWwg
dG8gRWxlbWVudHNUcmVlT3V0bGluZS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5NDMxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9jb21waWxlLWZyb250LWVuZC5zaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21w
aWxlLWZyb250LWVuZC5zaAppbmRleCBiOWRmZmYwOWU4MTQ3ZWJhOTFhNzA2MmU4OWUzYTgyMzU1
MzBiYTdjLi44ZGJkNTg5NmIxZDBmZmQzZDlmZjY5YzMwYzJhMzQzNWVlNzk1ZDgwIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2gKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNoCkBAIC02OCwxMSAr
NjgsMTIgQEAgamF2YSAtamFyIH4vY2xvc3VyZS9jb21waWxlci5qYXIgLS1jb21waWxhdGlvbl9s
ZXZlbCBTSU1QTEVfT1BUSU1JWkFUSU9OUyAtLXdhcm4KICAgICAgICAgLS1qcyBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzIFwKICAgICAgICAgLS1qcyBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIFwKICAgICAg
ICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5q
cyBcCi0gICAgLS1tb2R1bGUganNtb2R1bGVfdWk6Mjg6anNtb2R1bGVfY29tbW9uIFwKKyAgICAt
LW1vZHVsZSBqc21vZHVsZV91aToyOTpqc21vZHVsZV9jb21tb24gXAogICAgICAgICAtLWpzIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2hlY2tib3guanMgXAogICAgICAgICAt
LWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29sb3IuanMgXAogICAgICAg
ICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29udGV4dE1lbnUuanMg
XAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2ll
c1RhYmxlLmpzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTVN5bnRheEhpZ2hsaWdodGVyLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcyBcCiAgICAgICAgIC0tanMgU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanMgXApAQCAtOTcsOSAr
OTgsMTAgQEAgamF2YSAtamFyIH4vY2xvc3VyZS9jb21waWxlci5qYXIgLS1jb21waWxhdGlvbl9s
ZXZlbCBTSU1QTEVfT1BUSU1JWkFUSU9OUyAtLXdhcm4KICAgICAgICAgLS1qcyBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rvb2xiYXIuanMgXAogICAgICAgICAtLWpzIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlVdGlscy5qcyBcCiAgICAgICAgIC0tanMg
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzIFwKLSAgICAtLW1vZHVs
ZSBqc21vZHVsZV9pbnNwZWN0b3I6MTg6anNtb2R1bGVfc2RrLGpzbW9kdWxlX3VpIFwKKyAgICAt
LW1vZHVsZSBqc21vZHVsZV9pbnNwZWN0b3I6MTk6anNtb2R1bGVfc2RrLGpzbW9kdWxlX3VpIFwK
ICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVN
ZXNzYWdlLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVWaWV3LmpzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgXAogICAgICAgICAtLWpzIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMgXAogICAgICAgICAtLWpz
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VWaWV3LmpzIFwKICAgICAg
ICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250
ZXh0TWFuYWdlci5qcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RPTUFnZW50LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
T01BZ2VudC5qcwppbmRleCBiYjQxMWEyZmI4MTUzNTYxNWU2MmEzODQwNDM0YzUxZGExMzlhMDc5
Li5kZmE5ZjYwMGJhNmMwZDIwYTdlYWM2ZDZjOGUyOGZiMGUyNWE4OWZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKQEAgLTYxNyw2ICs2MTcs
OSBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUg
dGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtudW1iZXJ9IG5vZGVJZAorICAgICAqLwogICAgIGluc3BlY3RFbGVtZW50OiBmdW5jdGlv
bihub2RlSWQpCiAgICAgewogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2lkVG9ET01Ob2RlW25v
ZGVJZF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TVN5bnRheEhpZ2hsaWdodGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9ET01TeW50YXhIaWdobGlnaHRlci5qcwppbmRleCBmNzk0OWE1MTFlZDAyY2FiODUwMTI5MWQ5
OWYwMzc4N2E5YjA2MzE4Li5mNDZkMDFjY2E2ZTA2YWM1NmNjYjY0Y2U5MmQyYzMzOTk3MDk0NjY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN5bnRh
eEhpZ2hsaWdodGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RE9NU3ludGF4SGlnaGxpZ2h0ZXIuanMKQEAgLTI4LDYgKzI4LDkgQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9yLkRPTVN5bnRh
eEhpZ2hsaWdodGVyID0gZnVuY3Rpb24obWltZVR5cGUsIHN0cmlwRXh0cmFXaGl0ZXNwYWNlKQog
ewogICAgIHRoaXMuX3Rva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVn
aXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIobWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDJk
ZjI0NmQ2MmFlZWI3MDI0NzM4Mzg0YzIzN2YxMTM0ZDY3NDE4MjkuLjljODY2Y2JjNWQ2NmQwNGZk
OWYyNjY0NjU5MzIyMmM4MjY1MGFjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAgLTQxLDcgKzQxLDcgQEAgV2ViSW5z
cGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLmNvbnRlbnRFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5fY29udGV4dE1lbnVFdmVu
dEZpcmVkLmJpbmQodGhpcyksIHRydWUpOwogCi0gICAgdGhpcy50cmVlT3V0bGluZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZSh0cnVlLCB0cnVlKTsKKyAgICB0aGlzLnRy
ZWVPdXRsaW5lID0gbmV3IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lKHRydWUsIHRy
dWUsIGZhbHNlLCB0aGlzLl9wb3B1bGF0ZUNvbnRleHRNZW51LmJpbmQodGhpcykpOwogICAgIHRo
aXMudHJlZU91dGxpbmUud2lyZVRvRG9tQWdlbnQoKTsKIAogICAgIHRoaXMudHJlZU91dGxpbmUu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5FdmVudHMu
U2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcy5fc2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcyk7CkBA
IC05Nyw2ICs5Nyw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQog
CiAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRPTUFnZW50LkV2ZW50cy5Ob2RlUmVtb3ZlZCwgdGhpcy5fbm9kZVJlbW92ZWQsIHRoaXMpOwog
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
T01BZ2VudC5FdmVudHMuRG9jdW1lbnRVcGRhdGVkLCB0aGlzLl9kb2N1bWVudFVwZGF0ZWQsIHRo
aXMpOworICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5ET01BZ2VudC5FdmVudHMuSW5zcGVjdEVsZW1lbnRSZXF1ZXN0ZWQsIHRoaXMuX2luc3Bl
Y3RFbGVtZW50UmVxdWVzdGVkLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFu
ZWwucHJvdG90eXBlID0gewpAQCAtMjg2LDYgKzI4NywxNiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc2VsZWN0RE9NTm9kZShub2RlLCB0
cnVlKTsKICAgICB9LAogCisgICAgX3BvcHVsYXRlQ29udGV4dE1lbnU6IGZ1bmN0aW9uKGNvbnRl
eHRNZW51LCBub2RlKQorICAgIHsKKyAgICAgICAgaWYgKFByZWZlcmVuY2VzLm5hdGl2ZUluc3Ry
dW1lbnRhdGlvbkVuYWJsZWQpIHsKKyAgICAgICAgICAgIC8vIEFkZCBkZWJidWdpbmctcmVsYXRl
ZCBhY3Rpb25zCisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKyAg
ICAgICAgICAgIHZhciBwYW5lID0gdGhpcy5zaWRlYmFyUGFuZXMuZG9tQnJlYWtwb2ludHM7Cisg
ICAgICAgICAgICBwYW5lLnBvcHVsYXRlTm9kZUNvbnRleHRNZW51KG5vZGUsIGNvbnRleHRNZW51
KTsKKyAgICAgICAgfQorICAgIH0sCisKICAgICBfdXBkYXRlTWF0Y2hlc0NvdW50OiBmdW5jdGlv
bigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci51cGRhdGVT
ZWFyY2hNYXRjaGVzQ291bnQodGhpcy5fc2VhcmNoUmVzdWx0cy5sZW5ndGgsIHRoaXMpOwpAQCAt
OTg0LDYgKzk5NSwxMiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUudXBkYXRlU2VsZWN0aW9uKCk7CiAgICAgfSwKIAor
ICAgIF9pbnNwZWN0RWxlbWVudFJlcXVlc3RlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAg
ICAgICB2YXIgbm9kZSA9IGV2ZW50LmRhdGE7CisgICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVG
b2N1c2VkTm9kZShub2RlLmlkKTsKKyAgICB9LAorCiAgICAgdXBkYXRlRm9jdXNlZE5vZGU6IGZ1
bmN0aW9uKG5vZGVJZCkKICAgICB7CiAgICAgICAgIHZhciBub2RlID0gV2ViSW5zcGVjdG9yLmRv
bUFnZW50Lm5vZGVGb3JJZChub2RlSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IDliYzNmZDVh
YmQ2YTE4NWM0Y2ExOTRhZGY4MjYyMTEyMGVjOGU2MjIuLjc2M2FiNTNiZTVkMzEzMDk3ODVkNDFj
MTExZDI2Y2MwOTYyNjAzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTM0LDggKzM0LDkgQEAK
ICAqIEBwYXJhbSB7Ym9vbGVhbj19IG9taXRSb290RE9NTm9kZQogICogQHBhcmFtIHtib29sZWFu
PX0gc2VsZWN0RW5hYmxlZAogICogQHBhcmFtIHtib29sZWFuPX0gc2hvd0luRWxlbWVudHNQYW5l
bEVuYWJsZWQKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51LCBX
ZWJJbnNwZWN0b3IuRE9NTm9kZSk9fSBjb250ZXh0TWVudUNhbGxiYWNrCiAgKi8KLVdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lID0gZnVuY3Rpb24ob21pdFJvb3RET01Ob2RlLCBzZWxl
Y3RFbmFibGVkLCBzaG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZCkKK1dlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVPdXRsaW5lID0gZnVuY3Rpb24ob21pdFJvb3RET01Ob2RlLCBzZWxlY3RFbmFibGVk
LCBzaG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZCwgY29udGV4dE1lbnVDYWxsYmFjaykKIHsKICAg
ICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIpOwogICAgIHRoaXMu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9vbm1vdXNlZG93bi5i
aW5kKHRoaXMpLCBmYWxzZSk7CkBAIC02MCw2ICs2MSw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVPdXRsaW5lID0gZnVuY3Rpb24ob21pdFJvb3RET01Ob2RlLCBzZWxlY3RFbmFibGVkLCBz
aG93CiAgICAgdGhpcy5fdmlzaWJsZSA9IGZhbHNlOwogCiAgICAgdGhpcy5lbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5fY29udGV4dE1lbnVFdmVudEZpcmVkLmJp
bmQodGhpcyksIHRydWUpOworICAgIHRoaXMuX2NvbnRleHRNZW51Q2FsbGJhY2sgPSBjb250ZXh0
TWVudUNhbGxiYWNrOwogfQogCiBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5FdmVu
dHMgPSB7CkBAIC00NDgsNyArNDUwLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxp
bmUucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGZvY3VzRWxlbWVudCgpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc3dpdGNoVG9B
bmRGb2N1cyh0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCk7CisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tQWdlbnQuaW5zcGVjdEVsZW1lbnQodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRP
YmplY3QuaWQpOwogICAgICAgICB9CiAgICAgICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJ
bnNwZWN0b3IuQ29udGV4dE1lbnUoKTsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJldmVhbCBpbiBFbGVtZW50cyBQYW5lbCIpLCBmb2N1c0Vs
ZW1lbnQuYmluZCh0aGlzKSk7CkBAIC00ODcsNiArNDg5LDEyIEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9l
bGVtZW50c1RyZWVVcGRhdGVyKQogICAgICAgICAgICAgdGhpcy5fZWxlbWVudHNUcmVlVXBkYXRl
ci5fdXBkYXRlTW9kaWZpZWROb2RlcygpOworICAgIH0sCisKKyAgICBfcG9wdWxhdGVDb250ZXh0
TWVudTogZnVuY3Rpb24oY29udGV4dE1lbnUsIG5vZGUpCisgICAgeworICAgICAgICBpZiAodGhp
cy5fY29udGV4dE1lbnVDYWxsYmFjaykKKyAgICAgICAgICAgIHRoaXMuX2NvbnRleHRNZW51Q2Fs
bGJhY2soY29udGV4dE1lbnUsIG5vZGUpOwogICAgIH0KIH0KIApAQCAtNzM1LDYgKzc0Myw5IEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy51cGRhdGVDaGlsZHJlbigpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e2Jvb2xlYW49fSBmdWxsUmVmcmVzaAorICAgICAqLwogICAgIHVwZGF0ZUNoaWxkcmVuOiBmdW5j
dGlvbihmdWxsUmVmcmVzaCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9lbGVtZW50Q2xvc2VU
YWcpCkBAIC03NDIsNiArNzUzLDkgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmdldENoaWxkTm9k
ZXModGhpcy5fdXBkYXRlQ2hpbGRyZW4uYmluZCh0aGlzLCBmdWxsUmVmcmVzaCkpOwogICAgIH0s
CiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBjbG9zaW5nVGFnCisgICAgICov
CiAgICAgaW5zZXJ0Q2hpbGRFbGVtZW50OiBmdW5jdGlvbihjaGlsZCwgaW5kZXgsIGNsb3NpbmdU
YWcpCiAgICAgewogICAgICAgICB2YXIgbmV3RWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlRWxlbWVudChjaGlsZCwgY2xvc2luZ1RhZyk7CkBAIC03NTksNiArNzczLDkgQEAg
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgY2hpbGQuc2VsZWN0KCk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9v
bGVhbj19IGZ1bGxSZWZyZXNoCisgICAgICovCiAgICAgX3VwZGF0ZUNoaWxkcmVuOiBmdW5jdGlv
bihmdWxsUmVmcmVzaCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl91cGRhdGVDaGlsZHJlbklu
UHJvZ3Jlc3MpCkBAIC03NjYsNyArNzgzLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuSW5Qcm9n
cmVzcyA9IHRydWU7CiAgICAgICAgIHZhciBzZWxlY3RlZE5vZGUgPSB0aGlzLnRyZWVPdXRsaW5l
LnNlbGVjdGVkRE9NTm9kZSgpOwotICAgICAgICB2YXIgb3JpZ2luYWxTY3JvbGxUb3A7CisgICAg
ICAgIHZhciBvcmlnaW5hbFNjcm9sbFRvcCA9IDA7CiAgICAgICAgIGlmIChmdWxsUmVmcmVzaCkg
ewogICAgICAgICAgICAgdmFyIHRyZWVPdXRsaW5lQ29udGFpbmVyRWxlbWVudCA9IHRoaXMudHJl
ZU91dGxpbmUuZWxlbWVudC5wYXJlbnROb2RlOwogICAgICAgICAgICAgb3JpZ2luYWxTY3JvbGxU
b3AgPSB0cmVlT3V0bGluZUNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wOwpAQCAtMTAzNSwxMiAr
MTA1Miw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNv
cHkgYXMgSFRNTCIpLCB0aGlzLl9jb3B5SFRNTC5iaW5kKHRoaXMpKTsKICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoV2ViSW5zcGVjdG9yLnVzZUxv
d2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJEZWxldGUgbm9kZSIgOiAiRGVsZXRlIE5vZGUiKSwgdGhp
cy5yZW1vdmUuYmluZCh0aGlzKSk7CiAKLSAgICAgICAgaWYgKFByZWZlcmVuY2VzLm5hdGl2ZUlu
c3RydW1lbnRhdGlvbkVuYWJsZWQpIHsKLSAgICAgICAgICAgIC8vIEFkZCBkZWJidWdpbmctcmVs
YXRlZCBhY3Rpb25zCi0gICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsK
LSAgICAgICAgICAgIHZhciBwYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRl
YmFyUGFuZXMuZG9tQnJlYWtwb2ludHM7Ci0gICAgICAgICAgICBwYW5lLnBvcHVsYXRlTm9kZUNv
bnRleHRNZW51KHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIGNvbnRleHRNZW51KTsKLSAgICAgICAg
fQorICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLl9wb3B1bGF0ZUNvbnRleHRNZW51KGNvbnRleHRN
ZW51LCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0KTsKICAgICB9LAogCiAgICAgX3BvcHVsYXRlVGV4
dENvbnRleHRNZW51OiBmdW5jdGlvbihjb250ZXh0TWVudSwgdGV4dE5vZGUpCkBAIC0xMTMwLDEx
ICsxMTQyLDEyIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9
IHsKICAgICAgICAgLy8gUmVtb3ZlIHplcm8td2lkdGggc3BhY2VzIHRoYXQgd2VyZSBhZGRlZCBi
eSBub2RlVGl0bGVJbmZvLgogICAgICAgICByZW1vdmVaZXJvV2lkdGhTcGFjZVJlY3Vyc2l2ZShh
dHRyaWJ1dGUpOwogCi0gICAgICAgIHRoaXMuX2VkaXRpbmcgPSBXZWJJbnNwZWN0b3Iuc3RhcnRF
ZGl0aW5nKGF0dHJpYnV0ZSwgewotICAgICAgICAgICAgY29udGV4dDogYXR0cmlidXRlTmFtZSwK
LSAgICAgICAgICAgIGNvbW1pdEhhbmRsZXI6IHRoaXMuX2F0dHJpYnV0ZUVkaXRpbmdDb21taXR0
ZWQuYmluZCh0aGlzKSwKLSAgICAgICAgICAgIGNhbmNlbEhhbmRsZXI6IHRoaXMuX2VkaXRpbmdD
YW5jZWxsZWQuYmluZCh0aGlzKQotICAgICAgICB9KTsKKyAgICAgICAgdmFyIGNvbmZpZyA9IG5l
dyBXZWJJbnNwZWN0b3IuRWRpdGluZ0NvbmZpZygpOworICAgICAgICBjb25maWcuc2V0Q29udGV4
dChhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgY29uZmlnLnNldENvbW1pdEhhbmRsZXIodGhpcy5f
YXR0cmlidXRlRWRpdGluZ0NvbW1pdHRlZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgY29uZmlnLnNl
dENhbmNlbEhhbmRsZXIodGhpcy5fZWRpdGluZ0NhbmNlbGxlZC5iaW5kKHRoaXMpKTsKKyAgICAg
ICAgdGhpcy5fZWRpdGluZyA9IFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcoYXR0cmlidXRlLCBj
b25maWcpOworCiAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50
KGVsZW1lbnRGb3JTZWxlY3Rpb24sIDAsIGVsZW1lbnRGb3JTZWxlY3Rpb24sIDEpOwogCiAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtMTE0NSwxMSArMTE1OCwxMSBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3Iu
aXNCZWluZ0VkaXRlZCh0ZXh0Tm9kZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
ICAgICB0aGlzLl9lZGl0aW5nID0gV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyh0ZXh0Tm9kZSwg
ewotICAgICAgICAgICAgY29udGV4dDogbnVsbCwKLSAgICAgICAgICAgIGNvbW1pdEhhbmRsZXI6
IHRoaXMuX3RleHROb2RlRWRpdGluZ0NvbW1pdHRlZC5iaW5kKHRoaXMpLAotICAgICAgICAgICAg
Y2FuY2VsSGFuZGxlcjogdGhpcy5fZWRpdGluZ0NhbmNlbGxlZC5iaW5kKHRoaXMpCi0gICAgICAg
IH0pOworICAgICAgICB2YXIgY29uZmlnID0gbmV3IFdlYkluc3BlY3Rvci5FZGl0aW5nQ29uZmln
KCk7CisgICAgICAgIGNvbmZpZy5zZXRDb21taXRIYW5kbGVyKHRoaXMuX3RleHROb2RlRWRpdGlu
Z0NvbW1pdHRlZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgY29uZmlnLnNldENhbmNlbEhhbmRsZXIo
dGhpcy5fZWRpdGluZ0NhbmNlbGxlZC5iaW5kKHRoaXMpKTsKKworICAgICAgICB0aGlzLl9lZGl0
aW5nID0gV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyh0ZXh0Tm9kZSwgY29uZmlnKTsKICAgICAg
ICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGV4dE5vZGUsIDAsIHRl
eHROb2RlLCAxKTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExOTIsMTEgKzEyMDUsMTIg
QEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAg
ICAgIHRhZ05hbWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywga2V5dXBMaXN0ZW5l
ciwgZmFsc2UpOwogCi0gICAgICAgIHRoaXMuX2VkaXRpbmcgPSBXZWJJbnNwZWN0b3Iuc3RhcnRF
ZGl0aW5nKHRhZ05hbWVFbGVtZW50LCB7Ci0gICAgICAgICAgICBjb250ZXh0OiB0YWdOYW1lLAot
ICAgICAgICAgICAgY29tbWl0SGFuZGxlcjogZWRpdGluZ0NvbWl0dGVkLmJpbmQodGhpcyksCi0g
ICAgICAgICAgICBjYW5jZWxIYW5kbGVyOiBlZGl0aW5nQ2FuY2VsbGVkLmJpbmQodGhpcykKLSAg
ICAgICAgfSk7CisgICAgICAgIHZhciBjb25maWcgPSBuZXcgV2ViSW5zcGVjdG9yLkVkaXRpbmdD
b25maWcoKTsKKyAgICAgICAgY29uZmlnLnNldENvbnRleHQodGFnTmFtZSk7CisgICAgICAgIGNv
bmZpZy5zZXRDb21taXRIYW5kbGVyKGVkaXRpbmdDb21pdHRlZC5iaW5kKHRoaXMpKTsKKyAgICAg
ICAgY29uZmlnLnNldENhbmNlbEhhbmRsZXIoZWRpdGluZ0NhbmNlbGxlZC5iaW5kKHRoaXMpKTsK
KworICAgICAgICB0aGlzLl9lZGl0aW5nID0gV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyh0YWdO
YW1lRWxlbWVudCwgY29uZmlnKTsKICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJh
c2VBbmRFeHRlbnQodGFnTmFtZUVsZW1lbnQsIDAsIHRhZ05hbWVFbGVtZW50LCAxKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfSwKQEAgLTEyNTIsMTIgKzEyNjYsMTEgQEAgV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy51
cGRhdGVTZWxlY3Rpb24oKTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2VkaXRpbmcgPSBX
ZWJJbnNwZWN0b3Iuc3RhcnRFZGl0aW5nKHRoaXMuX2h0bWxFZGl0RWxlbWVudCwgewotICAgICAg
ICAgICAgY29udGV4dDogbnVsbCwKLSAgICAgICAgICAgIGNvbW1pdEhhbmRsZXI6IGNvbW1pdC5i
aW5kKHRoaXMpLAotICAgICAgICAgICAgY2FuY2VsSGFuZGxlcjogZGlzcG9zZS5iaW5kKHRoaXMp
LAotICAgICAgICAgICAgbXVsdGlsaW5lOiB0cnVlCi0gICAgICAgIH0pOworICAgICAgICB2YXIg
Y29uZmlnID0gbmV3IFdlYkluc3BlY3Rvci5FZGl0aW5nQ29uZmlnKCk7CisgICAgICAgIGNvbmZp
Zy5zZXRDb21taXRIYW5kbGVyKGNvbW1pdC5iaW5kKHRoaXMpKTsKKyAgICAgICAgY29uZmlnLnNl
dENhbmNlbEhhbmRsZXIoZGlzcG9zZS5iaW5kKHRoaXMpKTsKKworICAgICAgICB0aGlzLl9lZGl0
aW5nID0gV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyh0aGlzLl9odG1sRWRpdEVsZW1lbnQsIGNv
bmZpZyk7CiAgICAgfSwKIAogICAgIF9hdHRyaWJ1dGVFZGl0aW5nQ29tbWl0dGVkOiBmdW5jdGlv
bihlbGVtZW50LCBuZXdUZXh0LCBvbGRUZXh0LCBhdHRyaWJ1dGVOYW1lLCBtb3ZlRGlyZWN0aW9u
KQpAQCAtMTM2MiwxMSArMTM3NSwxMyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVu
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQog
CisgICAgICAgICAgICB2YXIgbm9kZSA9IFdlYkluc3BlY3Rvci5kb21BZ2VudC5ub2RlRm9ySWQo
bm9kZUlkKTsKKwogICAgICAgICAgICAgLy8gU2VsZWN0IGl0IGFuZCBleHBhbmQgaWYgbmVjZXNz
YXJ5LiBXZSBmb3JjZSB0cmVlIHVwZGF0ZSBzbyB0aGF0IGl0IHByb2Nlc3NlcyBkb20gZXZlbnRz
IGFuZCBpcyB1cCB0byBkYXRlLgogICAgICAgICAgICAgdHJlZU91dGxpbmUuX3VwZGF0ZU1vZGlm
aWVkTm9kZXMoKTsKKyAgICAgICAgICAgIHRyZWVPdXRsaW5lLnNlbGVjdERPTU5vZGUobm9kZSwg
dHJ1ZSk7CiAKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZShub2Rl
SWQpOwotICAgICAgICAgICAgdmFyIG5ld1RyZWVJdGVtID0gdHJlZU91dGxpbmUuZmluZFRyZWVF
bGVtZW50KFdlYkluc3BlY3Rvci5kb21BZ2VudC5ub2RlRm9ySWQobm9kZUlkKSk7CisgICAgICAg
ICAgICB2YXIgbmV3VHJlZUl0ZW0gPSB0cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQobm9kZSk7
CiAgICAgICAgICAgICBpZiAod2FzRXhwYW5kZWQpCiAgICAgICAgICAgICAgICAgbmV3VHJlZUl0
ZW0uZXhwYW5kKCk7CiAKQEAgLTE0MTcsNiArMTQzMiw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuICh0YWdzLmxlbmd0aCA9
PT0gMSA/IG51bGwgOiB0YWdzW3RhZ3MubGVuZ3RoLTFdKTsKICAgICB9LAogCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtib29sZWFuPX0gb25seVNlYXJjaFF1ZXJ5Q2hhbmdlZAorICAgICAqLwog
ICAgIHVwZGF0ZVRpdGxlOiBmdW5jdGlvbihvbmx5U2VhcmNoUXVlcnlDaGFuZ2VkKQogICAgIHsK
ICAgICAgICAgLy8gSWYgd2UgYXJlIGVkaXRpbmcsIHJldHVybiBlYXJseSB0byBwcmV2ZW50IGNh
bmNlbGluZyB0aGUgZWRpdC4KQEAgLTE0NDEsNiArMTQ1OSwxMCBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFNl
YXJjaFJlc3VsdHMoKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuRE9NTm9kZT19IG5vZGUKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZywgc3Ry
aW5nLCBzdHJpbmcsIGJvb2xlYW49LCBzdHJpbmc9KT19IGxpbmtpZnkKKyAgICAgKi8KICAgICBf
YnVpbGRBdHRyaWJ1dGVET006IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQsIG5hbWUsIHZhbHVlLCBu
b2RlLCBsaW5raWZ5KQogICAgIHsKICAgICAgICAgdmFyIGhhc1RleHQgPSAodmFsdWUubGVuZ3Ro
ID4gMCk7CkBAIC0xNDY1LDkgKzE0ODcsMTIgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgYXR0clNwYW5FbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcIiIpKTsKICAgICB9LAogCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcsIHN0cmluZywgc3RyaW5nLCBib29sZWFuPSwg
c3RyaW5nPSk9fSBsaW5raWZ5CisgICAgICovCiAgICAgX2J1aWxkVGFnRE9NOiBmdW5jdGlvbihw
YXJlbnRFbGVtZW50LCB0YWdOYW1lLCBpc0Nsb3NpbmdUYWcsIGlzRGlzdGluY3RUcmVlRWxlbWVu
dCwgbGlua2lmeSkKICAgICB7Ci0gICAgICAgIHZhciBub2RlID0gdGhpcy5yZXByZXNlbnRlZE9i
amVjdDsKKyAgICAgICAgdmFyIG5vZGUgPSAvKiogQHR5cGUgV2ViSW5zcGVjdG9yLkRPTU5vZGUg
Ki8gdGhpcy5yZXByZXNlbnRlZE9iamVjdDsKICAgICAgICAgdmFyIGNsYXNzZXMgPSBbICJ3ZWJr
aXQtaHRtbC10YWciIF07CiAgICAgICAgIGlmIChpc0Nsb3NpbmdUYWcgJiYgaXNEaXN0aW5jdFRy
ZWVFbGVtZW50KQogICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCJjbG9zZSIpOwpAQCAtMTUyNSw3
ICsxNTUwLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE5vZGVFbGVtZW50LnRleHRDb250ZW50ID0g
Ilx1MjAyNiI7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlRE9NLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKSk7CiAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fYnVpbGRUYWdET00oaW5mby50aXRsZURP
TSwgdGFnTmFtZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGhp
cy5fYnVpbGRUYWdET00oaW5mby50aXRsZURPTSwgdGFnTmFtZSwgdHJ1ZSwgZmFsc2UpOwogICAg
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgZWxlbWVudCBvbmx5
IGhhcyBhIHNpbmdsZSBjaGlsZCB0aGF0IGlzIGEgdGV4dCBub2RlLApAQCAtMTY0NiwxMiArMTY3
MSwxMyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICBpZiAoZXJyb3IgfHwgIW5vZGVJZCkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKKyAgICAgICAgICAgIHZhciBub2RlID0gV2ViSW5zcGVjdG9yLmRvbUFnZW50Lm5vZGVGb3JJ
ZChub2RlSWQpOwogICAgICAgICAgICAgLy8gU2VsZWN0IGl0IGFuZCBleHBhbmQgaWYgbmVjZXNz
YXJ5LiBXZSBmb3JjZSB0cmVlIHVwZGF0ZSBzbyB0aGF0IGl0IHByb2Nlc3NlcyBkb20gZXZlbnRz
IGFuZCBpcyB1cCB0byBkYXRlLgogICAgICAgICAgICAgdHJlZU91dGxpbmUuX3VwZGF0ZU1vZGlm
aWVkTm9kZXMoKTsKKyAgICAgICAgICAgIHRyZWVPdXRsaW5lLnNlbGVjdERPTU5vZGUobm9kZSwg
dHJ1ZSk7CiAKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZShub2Rl
SWQpOwogICAgICAgICAgICAgaWYgKHdhc0V4cGFuZGVkKSB7Ci0gICAgICAgICAgICAgICAgdmFy
IG5ld1RyZWVJdGVtID0gdHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KFdlYkluc3BlY3Rvci5k
b21BZ2VudC5ub2RlRm9ySWQobm9kZUlkKSk7CisgICAgICAgICAgICAgICAgdmFyIG5ld1RyZWVJ
dGVtID0gdHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOwogICAgICAgICAgICAgICAg
IGlmIChuZXdUcmVlSXRlbSkKICAgICAgICAgICAgICAgICAgICAgbmV3VHJlZUl0ZW0uZXhwYW5k
KCk7CiAgICAgICAgICAgICB9CkBAIC0xNzEzLDcgKzE3MzksNiBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlVXBkYXRlciA9IGZ1bmN0aW9uKHRyZWVPdXRsaW5lKQogICAgIFdlYkluc3BlY3Rv
ci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMu
Q2hhcmFjdGVyRGF0YU1vZGlmaWVkLCB0aGlzLl9jaGFyYWN0ZXJEYXRhTW9kaWZpZWQsIHRoaXMp
OwogICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5FdmVudHMuRG9jdW1lbnRVcGRhdGVkLCB0aGlzLl9kb2N1bWVudFVwZGF0ZWQs
IHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5ET01BZ2VudC5FdmVudHMuQ2hpbGROb2RlQ291bnRVcGRhdGVkLCB0aGlzLl9jaGls
ZE5vZGVDb3VudFVwZGF0ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuSW5zcGVjdEVsZW1lbnRS
ZXF1ZXN0ZWQsIHRoaXMuX2luc3BlY3RFbGVtZW50UmVxdWVzdGVkLCB0aGlzKTsKIAogICAgIHRo
aXMuX3RyZWVPdXRsaW5lID0gdHJlZU91dGxpbmU7CiAgICAgdGhpcy5fcmVjZW50bHlNb2RpZmll
ZE5vZGVzID0gW107CkBAIC0xNzY3LDEyICsxNzkyLDYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZVVwZGF0ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdHJlZUVsZW1lbnQuaGFzQ2hp
bGRyZW4gPSBldmVudC5kYXRhLmhhc0NoaWxkTm9kZXMoKTsKICAgICB9LAogCi0gICAgX2luc3Bl
Y3RFbGVtZW50UmVxdWVzdGVkOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciBu
b2RlID0gZXZlbnQuZGF0YTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0ZUZvY3VzZWROb2Rl
KG5vZGUuaWQpOwotICAgIH0sCi0KICAgICBfdXBkYXRlTW9kaWZpZWROb2Rlc1Nvb246IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl91cGRhdGVNb2RpZmllZE5vZGVzVGltZW91
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJu
cy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcwppbmRl
eCBiNTIyMmQxNzgwMGU4YjJiNDI3NTExMzFiMGI3ZDVjZGQ2ZjdmYTk4Li5kYmFlOThmM2RjNDY0
ZGZlYjRhODg0NTM2NzgzMWZmZDZmMWFiZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCkBAIC0xMDYsMTcgKzEwNiw2IEBAIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsID0gewogfQogCiAvKioKLSAqIEBjb25zdHJ1Y3Rv
cgotICogQGV4dGVuZHMge1RyZWVPdXRsaW5lfQotICogQHBhcmFtIHtib29sZWFuPX0gb21pdFJv
b3RET01Ob2RlCi0gKiBAcGFyYW0ge2Jvb2xlYW49fSBzZWxlY3RFbmFibGVkCi0gKiBAcGFyYW0g
e2Jvb2xlYW49fSBzaG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZAotICovCi1XZWJJbnNwZWN0b3Iu
RWxlbWVudHNUcmVlT3V0bGluZSA9IGZ1bmN0aW9uKG9taXRSb290RE9NTm9kZSwgc2VsZWN0RW5h
YmxlZCwgc2hvd0luRWxlbWVudHNQYW5lbEVuYWJsZWQpCi17Ci19Ci0KLS8qKgogICogQHBhcmFt
IHtOZXR3b3JrQWdlbnQuUmVxdWVzdElkfSByZXF1ZXN0SWQKICAqIEByZXR1cm4gez9XZWJJbnNw
ZWN0b3IuUmVzb3VyY2V9CiAgKi8KQEAgLTIwMiwzICsxOTEsNyBAQCBFdmVudC5wcm90b3R5cGUu
aW5pdFdlYktpdFdoZWVsRXZlbnQgPSBmdW5jdGlvbih2YXJhcmcpIHt9CiAgKiBAcGFyYW0ge2Jv
b2xlYW49fSBzaG93Q29uc29sZQogICovCiBXZWJJbnNwZWN0b3IubG9nID0gZnVuY3Rpb24obWVz
c2FnZSwgbWVzc2FnZUxldmVsLCBzaG93Q29uc29sZSkge30KKworV2ViSW5zcGVjdG9yLmhpZ2hs
aWdodERPTU5vZGUgPSBmdW5jdGlvbihub2RlSWQpIHt9CisKK1dlYkluc3BlY3Rvci5yZXNvdXJj
ZVVSTEZvclJlbGF0ZWROb2RlID0gZnVuY3Rpb24obm9kZSwgdXJsKSB7fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109937</attachid>
            <date>2011-10-06 03:13:39 -0700</date>
            <delta_ts>2011-10-06 06:03:20 -0700</delta_ts>
            <desc>[Patch] Same with highlightDOMNode extern resolved.</desc>
            <filename>bug-69439-20111006141337.patch</filename>
            <type>text/plain</type>
            <size>31714</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY3OTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmOGVhOTc3ODZiNGJlOWI0
NTc4MGI4YjM3ODY1ODhiM2Q5ODllN2MzLi45MWYxOTcxMDU3NTZhMWE2YjVlZDY3YjIxNmU4NzM1
MjllN2M5NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMTAtMDUgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1ha2UgRWxlbWVudHNUcmVlT3V0bGluZSBjb21waWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTQzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNo
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01TeW50YXhIaWdobGlnaHRlci5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRWxlbWVudHNQYW5lbC5nZXQgdGhpcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVu
dHNQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUu
X3BvcHVsYXRlQ29udGV4dE1lbnUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFu
ZWwucHJvdG90eXBlLl9pbnNwZWN0RWxlbWVudFJlcXVlc3RlZCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZU91dGxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZU91dGxpbmUucHJvdG90eXBlLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuZm9jdXNFbGVtZW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZS5f
Y29udGV4dE1lbnVFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Ry
ZWVPdXRsaW5lLnByb3RvdHlwZS5fdXBkYXRlTW9kaWZpZWROb2Rlcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuX3BvcHVsYXRlQ29udGV4dE1l
bnUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBl
Ll9wb3B1bGF0ZVRhZ0NvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5n
VGV4dE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJv
dG90eXBlLl9zdGFydEVkaXRpbmdUYWdOYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nQXNIVE1MKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdGFnTmFtZUVkaXRp
bmdDb21taXR0ZWQuY2hhbmdlVGFnTmFtZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdGFnTmFtZUVkaXRpbmdDb21taXR0ZWQp
OgorICAgICAgICAoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuaGlnaGxpZ2h0RE9NTm9kZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IucmVzb3VyY2VVUkxGb3JSZWxhdGVkTm9kZSk6CisKIDIwMTEtMTAtMDYgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJl
bW92ZSBVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpIGZyb20gdGhlIHRyZWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaAppbmRleCBiOWRmZmYwOWU4MTQ3
ZWJhOTFhNzA2MmU4OWUzYTgyMzU1MzBiYTdjLi44ZGJkNTg5NmIxZDBmZmQzZDlmZjY5YzMwYzJh
MzQzNWVlNzk1ZDgwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGls
ZS1mcm9udC1lbmQuc2gKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJv
bnQtZW5kLnNoCkBAIC02OCwxMSArNjgsMTIgQEAgamF2YSAtamFyIH4vY2xvc3VyZS9jb21waWxl
ci5qYXIgLS1jb21waWxhdGlvbl9sZXZlbCBTSU1QTEVfT1BUSU1JWkFUSU9OUyAtLXdhcm4KICAg
ICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpz
IFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtNYW5hZ2VyLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1VJU291cmNlQ29kZS5qcyBcCi0gICAgLS1tb2R1bGUganNtb2R1bGVfdWk6Mjg6anNt
b2R1bGVfY29tbW9uIFwKKyAgICAtLW1vZHVsZSBqc21vZHVsZV91aToyOTpqc21vZHVsZV9jb21t
b24gXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2hl
Y2tib3guanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29sb3IuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29udGV4dE1lbnUuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29va2llc1RhYmxlLmpzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN5bnRheEhpZ2hsaWdodGVyLmpzIFwKICAgICAg
ICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzIFwK
ICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5q
cyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0
eVZpZXcuanMgXApAQCAtOTcsOSArOTgsMTAgQEAgamF2YSAtamFyIH4vY2xvc3VyZS9jb21waWxl
ci5qYXIgLS1jb21waWxhdGlvbl9sZXZlbCBTSU1QTEVfT1BUSU1JWkFUSU9OUyAtLXdhcm4KICAg
ICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rvb2xiYXIuanMg
XAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlVdGls
cy5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9W
aWV3LmpzIFwKLSAgICAtLW1vZHVsZSBqc21vZHVsZV9pbnNwZWN0b3I6MTg6anNtb2R1bGVfc2Rr
LGpzbW9kdWxlX3VpIFwKKyAgICAtLW1vZHVsZSBqc21vZHVsZV9pbnNwZWN0b3I6MTk6anNtb2R1
bGVfc2RrLGpzbW9kdWxlX3VpIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIFwKKyAgICAgICAgLS1qcyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMg
XAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZp
ZXcuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SW1hZ2VWaWV3LmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwppbmRleCBiYjQxMWEyZmI4MTUzNTYxNWU2
MmEzODQwNDM0YzUxZGExMzlhMDc5Li5iZjBkNzAzNjQyMTE2M2UxMDJjMzhhNmY4MTJkMmM2MTkz
Y2NiNjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TUFnZW50LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdl
bnQuanMKQEAgLTYxNyw2ICs2MTcsOSBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBl
ID0gewogICAgICAgICBkZWxldGUgdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKICAgICB9LAog
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IG5vZGVJZAorICAgICAqLwogICAgIGlu
c3BlY3RFbGVtZW50OiBmdW5jdGlvbihub2RlSWQpCiAgICAgewogICAgICAgICB2YXIgbm9kZSA9
IHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07CkBAIC02NDQsNiArNjQ3LDYyIEBAIFdlYkluc3Bl
Y3Rvci5ET01BZ2VudC5wcm90b3R5cGUgPSB7CiAgICAgcXVlcnlTZWxlY3RvckFsbDogZnVuY3Rp
b24obm9kZUlkLCBzZWxlY3RvcnMsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgRE9NQWdlbnQu
cXVlcnlTZWxlY3RvckFsbChub2RlSWQsIHNlbGVjdG9ycywgdGhpcy5fd3JhcENsaWVudENhbGxi
YWNrKGNhbGxiYWNrKSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7P251bWJl
cn0gbm9kZUlkCisgICAgICogQHBhcmFtIHtzdHJpbmc9fSBtb2RlCisgICAgICovCisgICAgaGln
aGxpZ2h0RE9NTm9kZTogZnVuY3Rpb24obm9kZUlkLCBtb2RlKQorICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuX2hpZGVET01Ob2RlSGlnaGxpZ2h0VGltZW91dCkgeworICAgICAgICAgICAgY2xlYXJU
aW1lb3V0KHRoaXMuX2hpZGVET01Ob2RlSGlnaGxpZ2h0VGltZW91dCk7CisgICAgICAgICAgICBk
ZWxldGUgdGhpcy5faGlkZURPTU5vZGVIaWdobGlnaHRUaW1lb3V0OworICAgICAgICB9CisKKyAg
ICAgICAgdGhpcy5faGlnaGxpZ2h0ZWRET01Ob2RlSWQgPSBub2RlSWQ7CisgICAgICAgIGlmIChu
b2RlSWQpCisgICAgICAgICAgICBET01BZ2VudC5oaWdobGlnaHROb2RlKG5vZGVJZCwgdGhpcy5f
YnVpbGRIaWdobGlnaHRDb25maWcobW9kZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBE
T01BZ2VudC5oaWRlSGlnaGxpZ2h0KCk7CisgICAgfSwKKworICAgIGhpZGVET01Ob2RlSGlnaGxp
Z2h0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLmhpZ2hsaWdodERPTU5vZGUoMCk7
CisgICAgfSwKKworICAgIGhpZ2hsaWdodERPTU5vZGVGb3JUd29TZWNvbmRzOiBmdW5jdGlvbihu
b2RlSWQpCisgICAgeworICAgICAgICB0aGlzLmhpZ2hsaWdodERPTU5vZGUobm9kZUlkKTsKKyAg
ICAgICAgdGhpcy5faGlkZURPTU5vZGVIaWdobGlnaHRUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlz
LmhpZGVET01Ob2RlSGlnaGxpZ2h0LmJpbmQodGhpcyksIDIwMDApOworICAgIH0sCisKKyAgICBz
ZXRJbnNwZWN0TW9kZUVuYWJsZWQ6IGZ1bmN0aW9uKGVuYWJsZWQsIGNhbGxiYWNrKQorICAgIHsK
KyAgICAgICAgRE9NQWdlbnQuc2V0SW5zcGVjdE1vZGVFbmFibGVkKGVuYWJsZWQsIHRoaXMuX2J1
aWxkSGlnaGxpZ2h0Q29uZmlnKCksIGNhbGxiYWNrKTsKKyAgICB9LAorCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtzdHJpbmc9fSBtb2RlCisgICAgICovCisgICAgX2J1aWxkSGlnaGxpZ2h0Q29u
ZmlnOiBmdW5jdGlvbihtb2RlKQorICAgIHsKKyAgICAgICAgbW9kZSA9IG1vZGUgfHwgImFsbCI7
CisgICAgICAgIHZhciBoaWdobGlnaHRDb25maWcgPSB7IHNob3dJbmZvOiBtb2RlID09PSAiYWxs
IiB9OworICAgICAgICBpZiAobW9kZSA9PT0gImFsbCIgfHwgbW9kZSA9PT0gImNvbnRlbnQiKQor
ICAgICAgICAgICAgaGlnaGxpZ2h0Q29uZmlnLmNvbnRlbnRDb2xvciA9IFdlYkluc3BlY3Rvci5D
b2xvci5QYWdlSGlnaGxpZ2h0LkNvbnRlbnQudG9Qcm90b2NvbFJHQkEoKTsKKworICAgICAgICBp
ZiAobW9kZSA9PT0gImFsbCIgfHwgbW9kZSA9PT0gInBhZGRpbmciKQorICAgICAgICAgICAgaGln
aGxpZ2h0Q29uZmlnLnBhZGRpbmdDb2xvciA9IFdlYkluc3BlY3Rvci5Db2xvci5QYWdlSGlnaGxp
Z2h0LlBhZGRpbmcudG9Qcm90b2NvbFJHQkEoKTsKKworICAgICAgICBpZiAobW9kZSA9PT0gImFs
bCIgfHwgbW9kZSA9PT0gImJvcmRlciIpCisgICAgICAgICAgICBoaWdobGlnaHRDb25maWcuYm9y
ZGVyQ29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuUGFnZUhpZ2hsaWdodC5Cb3JkZXIudG9Qcm90
b2NvbFJHQkEoKTsKKworICAgICAgICBpZiAobW9kZSA9PT0gImFsbCIgfHwgbW9kZSA9PT0gIm1h
cmdpbiIpCisgICAgICAgICAgICBoaWdobGlnaHRDb25maWcubWFyZ2luQ29sb3IgPSBXZWJJbnNw
ZWN0b3IuQ29sb3IuUGFnZUhpZ2hsaWdodC5NYXJnaW4udG9Qcm90b2NvbFJHQkEoKTsKKworICAg
ICAgICByZXR1cm4gaGlnaGxpZ2h0Q29uZmlnOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TeW50YXhIaWdobGlnaHRlci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3ludGF4SGlnaGxpZ2h0ZXIu
anMKaW5kZXggZjc5NDlhNTExZWQwMmNhYjg1MDEyOTFkOTlmMDM3ODdhOWIwNjMxOC4uZjQ2ZDAx
Y2NhNmUwNmFjNTZjY2I2NGNlOTJkMmMzMzk5NzA5NDY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TeW50YXhIaWdobGlnaHRlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN5bnRheEhpZ2hsaWdodGVyLmpz
CkBAIC0yOCw2ICsyOCw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8qKgorICogQGNvbnN0
cnVjdG9yCisgKi8KIFdlYkluc3BlY3Rvci5ET01TeW50YXhIaWdobGlnaHRlciA9IGZ1bmN0aW9u
KG1pbWVUeXBlLCBzdHJpcEV4dHJhV2hpdGVzcGFjZSkKIHsKICAgICB0aGlzLl90b2tlbml6ZXIg
PSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0
VG9rZW5pemVyKG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRleCAyZGYyNDZkNjJhZWViNzAyNDczODM4NGMy
MzdmMTEzNGQ2NzQxODI5Li40YWM2Njk3MGJlYzIyZjQ0MTVlNzIxZGEwYzIzMjgzNzVmZWU4ZTk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50
c1BhbmVsLmpzCkBAIC00MSw3ICs0MSw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0g
ZnVuY3Rpb24oKQogCiAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
b250ZXh0bWVudSIsIHRoaXMuX2NvbnRleHRNZW51RXZlbnRGaXJlZC5iaW5kKHRoaXMpLCB0cnVl
KTsKIAotICAgIHRoaXMudHJlZU91dGxpbmUgPSBuZXcgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZU91dGxpbmUodHJ1ZSwgdHJ1ZSk7CisgICAgdGhpcy50cmVlT3V0bGluZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZSh0cnVlLCB0cnVlLCBmYWxzZSwgdGhpcy5fcG9wdWxh
dGVDb250ZXh0TWVudS5iaW5kKHRoaXMpKTsKICAgICB0aGlzLnRyZWVPdXRsaW5lLndpcmVUb0Rv
bUFnZW50KCk7CiAKICAgICB0aGlzLnRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUuRXZlbnRzLlNlbGVjdGVkTm9kZUNoYW5nZWQsIHRo
aXMuX3NlbGVjdGVkTm9kZUNoYW5nZWQsIHRoaXMpOwpAQCAtOTcsNiArOTcsNyBAQCBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNQYW5lbCA9IGZ1bmN0aW9uKCkKIAogICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuTm9kZVJl
bW92ZWQsIHRoaXMuX25vZGVSZW1vdmVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZG9tQWdl
bnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkRvY3VtZW50
VXBkYXRlZCwgdGhpcy5fZG9jdW1lbnRVcGRhdGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3Iu
ZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLklu
c3BlY3RFbGVtZW50UmVxdWVzdGVkLCB0aGlzLl9pbnNwZWN0RWxlbWVudFJlcXVlc3RlZCwgdGhp
cyk7CiB9CiAKIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKQEAgLTEz
Niw3ICsxMzcsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlz
KTsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuaGlnaGxpZ2h0RE9NTm9kZSgwKTsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CiAgICAgICAgIHRo
aXMuc2V0U2VhcmNoaW5nRm9yTm9kZShmYWxzZSk7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUu
c2V0VmlzaWJsZShmYWxzZSk7CiAgICAgfSwKQEAgLTI4Niw2ICsyODcsMTYgQEAgV2ViSW5zcGVj
dG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnNlbGVjdERPTU5v
ZGUobm9kZSwgdHJ1ZSk7CiAgICAgfSwKIAorICAgIF9wb3B1bGF0ZUNvbnRleHRNZW51OiBmdW5j
dGlvbihjb250ZXh0TWVudSwgbm9kZSkKKyAgICB7CisgICAgICAgIGlmIChQcmVmZXJlbmNlcy5u
YXRpdmVJbnN0cnVtZW50YXRpb25FbmFibGVkKSB7CisgICAgICAgICAgICAvLyBBZGQgZGViYnVn
aW5nLXJlbGF0ZWQgYWN0aW9ucworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJh
dG9yKCk7CisgICAgICAgICAgICB2YXIgcGFuZSA9IHRoaXMuc2lkZWJhclBhbmVzLmRvbUJyZWFr
cG9pbnRzOworICAgICAgICAgICAgcGFuZS5wb3B1bGF0ZU5vZGVDb250ZXh0TWVudShub2RlLCBj
b250ZXh0TWVudSk7CisgICAgICAgIH0KKyAgICB9LAorCiAgICAgX3VwZGF0ZU1hdGNoZXNDb3Vu
dDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xs
ZXIudXBkYXRlU2VhcmNoTWF0Y2hlc0NvdW50KHRoaXMuX3NlYXJjaFJlc3VsdHMubGVuZ3RoLCB0
aGlzKTsKQEAgLTQxNCw3ICs0MjUsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciBub2RlVW5kZXJNb3VzZSA9IGRvY3VtZW50LmVsZW1lbnRG
cm9tUG9pbnQoZXZlbnQucGFnZVgsIGV2ZW50LnBhZ2VZKTsKICAgICAgICAgdmFyIGNydW1iRWxl
bWVudCA9IG5vZGVVbmRlck1vdXNlLmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoImNydW1i
Iik7CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLmhpZ2hsaWdodERPTU5vZGUoY3J1bWJFbGVtZW50
ID8gY3J1bWJFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LmlkIDogMCk7CisgICAgICAgIFdlYklu
c3BlY3Rvci5kb21BZ2VudC5oaWdobGlnaHRET01Ob2RlKGNydW1iRWxlbWVudCA/IGNydW1iRWxl
bWVudC5yZXByZXNlbnRlZE9iamVjdC5pZCA6IDApOwogCiAgICAgICAgIGlmICgiX21vdXNlT3V0
T2ZDcnVtYnNUaW1lb3V0IiBpbiB0aGlzKSB7CiAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhp
cy5fbW91c2VPdXRPZkNydW1ic1RpbWVvdXQpOwpAQCAtNDI4LDcgKzQzOSw3IEBAIFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKG5vZGVVbmRlck1v
dXNlICYmIG5vZGVVbmRlck1vdXNlLmlzRGVzY2VuZGFudCh0aGlzLmNydW1ic0VsZW1lbnQpKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIFdlYkluc3BlY3Rvci5oaWdobGlnaHRET01O
b2RlKDApOworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuaGlkZURPTU5vZGVIaWdobGln
aHQoKTsKIAogICAgICAgICB0aGlzLl9tb3VzZU91dE9mQ3J1bWJzVGltZW91dCA9IHNldFRpbWVv
dXQodGhpcy51cGRhdGVCcmVhZGNydW1iU2l6ZXMuYmluZCh0aGlzKSwgMTAwMCk7CiAgICAgfSwK
QEAgLTYwNyw3ICs2MTgsMTEgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
ICAgICAgICAgbGluay5jbGFzc05hbWUgPSAibm9kZS1saW5rIjsKICAgICAgICAgdGhpcy5kZWNv
cmF0ZU5vZGVMYWJlbChub2RlLCBsaW5rKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLndpcmVFbGVt
ZW50V2l0aERPTU5vZGUobGluaywgbm9kZS5pZCk7CisKKyAgICAgICAgbGluay5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIHRoaXMucmV2ZWFsQW5kU2VsZWN0Tm9kZS5iaW5kKHRoaXMsIG5vZGUu
aWQpLCBmYWxzZSk7CisgICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LmhpZ2hsaWdodERPTU5vZGUuYmluZChXZWJJbnNwZWN0b3Iu
ZG9tQWdlbnQsIG5vZGUuaWQsICIiKSwgZmFsc2UpOworICAgICAgICBsaW5rLmFkZEV2ZW50TGlz
dGVuZXIoIm1vdXNlb3V0IiwgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmhpZGVET01Ob2RlSGlnaGxp
Z2h0LmJpbmQoV2ViSW5zcGVjdG9yLmRvbUFnZW50KSwgZmFsc2UpOworCiAgICAgICAgIHJldHVy
biBsaW5rOwogICAgIH0sCiAKQEAgLTk4NCwxMiArOTk5LDIxIEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy50cmVlT3V0bGluZS51cGRhdGVT
ZWxlY3Rpb24oKTsKICAgICB9LAogCi0gICAgdXBkYXRlRm9jdXNlZE5vZGU6IGZ1bmN0aW9uKG5v
ZGVJZCkKKyAgICBfaW5zcGVjdEVsZW1lbnRSZXF1ZXN0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKKyAgICAgICAgdmFyIG5vZGUgPSBldmVudC5kYXRhOworICAgICAgICB0aGlzLnJldmVhbEFu
ZFNlbGVjdE5vZGUobm9kZS5pZCk7CisgICAgfSwKKworICAgIHJldmVhbEFuZFNlbGVjdE5vZGU6
IGZ1bmN0aW9uKG5vZGVJZCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50
UGFuZWwodGhpcyk7CisKICAgICAgICAgdmFyIG5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQu
bm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVy
bjsKIAorICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuaGlnaGxpZ2h0RE9NTm9kZUZvclR3
b1NlY29uZHMobm9kZUlkKTsKICAgICAgICAgdGhpcy5zZWxlY3RET01Ob2RlKG5vZGUsIHRydWUp
OwogICAgICAgICBpZiAodGhpcy5ub2RlU2VhcmNoQnV0dG9uLnRvZ2dsZWQpIHsKICAgICAgICAg
ICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5icmluZ1RvRnJvbnQoKTsKQEAgLTk5NywxNCArMTAy
MSwxNCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IH0KICAgICB9LAogCi0gICAgX3NldFNlYXJjaGluZ0Zvck5vZGU6IGZ1bmN0aW9uKGVuYWJsZWQp
Ci0gICAgewotICAgICAgICB0aGlzLm5vZGVTZWFyY2hCdXR0b24udG9nZ2xlZCA9IGVuYWJsZWQ7
Ci0gICAgfSwKLQogICAgIHNldFNlYXJjaGluZ0Zvck5vZGU6IGZ1bmN0aW9uKGVuYWJsZWQpCiAg
ICAgewotICAgICAgICBET01BZ2VudC5zZXRJbnNwZWN0TW9kZUVuYWJsZWQoZW5hYmxlZCwgV2Vi
SW5zcGVjdG9yLmJ1aWxkSGlnaGxpZ2h0Q29uZmlnKCksIHRoaXMuX3NldFNlYXJjaGluZ0Zvck5v
ZGUuYmluZCh0aGlzLCBlbmFibGVkKSk7CisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9y
KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIWVycm9yKQorICAgICAgICAgICAgICAgIHRo
aXMubm9kZVNlYXJjaEJ1dHRvbi50b2dnbGVkID0gZW5hYmxlZDsKKyAgICAgICAgfQorICAgICAg
ICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuc2V0SW5zcGVjdE1vZGVFbmFibGVkKGVuYWJsZWQsIGNh
bGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICB0b2dnbGVTZWFyY2hpbmdGb3JOb2Rl
OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggOWJjM2ZkNWFiZDZhMTg1YzRjYTE5
NGFkZjgyNjIxMTIwZWM4ZTYyMi4uMWRhNTE2MGZhODNjNmIxNDJhMDBjNTZkZTA1MDZmZTBlNWUz
NmUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtMzQsOCArMzQsOSBAQAogICogQHBhcmFtIHti
b29sZWFuPX0gb21pdFJvb3RET01Ob2RlCiAgKiBAcGFyYW0ge2Jvb2xlYW49fSBzZWxlY3RFbmFi
bGVkCiAgKiBAcGFyYW0ge2Jvb2xlYW49fSBzaG93SW5FbGVtZW50c1BhbmVsRW5hYmxlZAorICog
QHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUsIFdlYkluc3BlY3Rvci5E
T01Ob2RlKT19IGNvbnRleHRNZW51Q2FsbGJhY2sKICAqLwotV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZU91dGxpbmUgPSBmdW5jdGlvbihvbWl0Um9vdERPTU5vZGUsIHNlbGVjdEVuYWJsZWQsIHNo
b3dJbkVsZW1lbnRzUGFuZWxFbmFibGVkKQorV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxp
bmUgPSBmdW5jdGlvbihvbWl0Um9vdERPTU5vZGUsIHNlbGVjdEVuYWJsZWQsIHNob3dJbkVsZW1l
bnRzUGFuZWxFbmFibGVkLCBjb250ZXh0TWVudUNhbGxiYWNrKQogewogICAgIHRoaXMuZWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7CiAgICAgdGhpcy5lbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX29ubW91c2Vkb3duLmJpbmQodGhpcyksIGZh
bHNlKTsKQEAgLTYwLDYgKzYxLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUg
PSBmdW5jdGlvbihvbWl0Um9vdERPTU5vZGUsIHNlbGVjdEVuYWJsZWQsIHNob3cKICAgICB0aGlz
Ll92aXNpYmxlID0gZmFsc2U7CiAKICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y29udGV4dG1lbnUiLCB0aGlzLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuYmluZCh0aGlzKSwgdHJ1
ZSk7CisgICAgdGhpcy5fY29udGV4dE1lbnVDYWxsYmFjayA9IGNvbnRleHRNZW51Q2FsbGJhY2s7
CiB9CiAKIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLkV2ZW50cyA9IHsKQEAgLTMw
NCw3ICszMDYsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgZWxlbWVudC5fY3JlYXRlVG9vbHRpcEZvck5vZGUoKTsKICAg
ICAgICAgfQogCi0gICAgICAgIFdlYkluc3BlY3Rvci5oaWdobGlnaHRET01Ob2RlKGVsZW1lbnQg
PyBlbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LmlkIDogMCk7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5kb21BZ2VudC5oaWdobGlnaHRET01Ob2RlKGVsZW1lbnQgPyBlbGVtZW50LnJlcHJlc2VudGVk
T2JqZWN0LmlkIDogMCk7CiAgICAgfSwKIAogICAgIF9vbm1vdXNlb3V0OiBmdW5jdGlvbihldmVu
dCkKQEAgLTMxOCw3ICszMjAsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fcHJldmlvdXNIb3ZlcmVkRWxl
bWVudDsKICAgICAgICAgfQogCi0gICAgICAgIFdlYkluc3BlY3Rvci5oaWdobGlnaHRET01Ob2Rl
KDApOworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuaGlkZURPTU5vZGVIaWdobGlnaHQo
KTsKICAgICB9LAogCiAgICAgX29uZHJhZ3N0YXJ0OiBmdW5jdGlvbihldmVudCkKQEAgLTMzNyw3
ICszMzksNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gImNvcHlNb3ZlIjsK
ICAgICAgICAgdGhpcy5fbm9kZUJlaW5nRHJhZ2dlZCA9IHRyZWVFbGVtZW50LnJlcHJlc2VudGVk
T2JqZWN0OwogCi0gICAgICAgIFdlYkluc3BlY3Rvci5oaWdobGlnaHRET01Ob2RlKDApOworICAg
ICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKIAogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LApAQCAtNDQ4LDcgKzQ1MCw3IEBAIFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBm
b2N1c0VsZW1lbnQoKQogICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxz
LmVsZW1lbnRzLnN3aXRjaFRvQW5kRm9jdXModHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Qp
OworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50Lmluc3BlY3RFbGVtZW50KHRyZWVF
bGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LmlkKTsKICAgICAgICAgfQogICAgICAgICB2YXIgY29u
dGV4dE1lbnUgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51KCk7CiAgICAgICAgIGNvbnRl
eHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXZlYWwgaW4gRWxlbWVu
dHMgUGFuZWwiKSwgZm9jdXNFbGVtZW50LmJpbmQodGhpcykpOwpAQCAtNDg3LDYgKzQ4OSwxMiBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAgICAgewog
ICAgICAgICBpZiAodGhpcy5fZWxlbWVudHNUcmVlVXBkYXRlcikKICAgICAgICAgICAgIHRoaXMu
X2VsZW1lbnRzVHJlZVVwZGF0ZXIuX3VwZGF0ZU1vZGlmaWVkTm9kZXMoKTsKKyAgICB9LAorCisg
ICAgX3BvcHVsYXRlQ29udGV4dE1lbnU6IGZ1bmN0aW9uKGNvbnRleHRNZW51LCBub2RlKQorICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuX2NvbnRleHRNZW51Q2FsbGJhY2spCisgICAgICAgICAgICB0
aGlzLl9jb250ZXh0TWVudUNhbGxiYWNrKGNvbnRleHRNZW51LCBub2RlKTsKICAgICB9CiB9CiAK
QEAgLTczNSw2ICs3NDMsOSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMudXBkYXRlQ2hpbGRyZW4oKTsKICAgICB9LAogCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtib29sZWFuPX0gZnVsbFJlZnJlc2gKKyAgICAgKi8KICAgICB1
cGRhdGVDaGlsZHJlbjogZnVuY3Rpb24oZnVsbFJlZnJlc2gpCiAgICAgewogICAgICAgICBpZiAo
dGhpcy5fZWxlbWVudENsb3NlVGFnKQpAQCAtNzQyLDYgKzc1Myw5IEBAIFdlYkluc3BlY3Rvci5F
bGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5nZXRDaGlsZE5vZGVzKHRoaXMuX3VwZGF0ZUNoaWxkcmVuLmJpbmQodGhpcywgZnVs
bFJlZnJlc2gpKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtib29sZWFuPX0g
Y2xvc2luZ1RhZworICAgICAqLwogICAgIGluc2VydENoaWxkRWxlbWVudDogZnVuY3Rpb24oY2hp
bGQsIGluZGV4LCBjbG9zaW5nVGFnKQogICAgIHsKICAgICAgICAgdmFyIG5ld0VsZW1lbnQgPSBu
ZXcgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQoY2hpbGQsIGNsb3NpbmdUYWcpOwpA
QCAtNzU5LDYgKzc3Myw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIGNoaWxkLnNlbGVjdCgpOwogICAgIH0sCiAKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBmdWxsUmVmcmVzaAorICAgICAqLwogICAgIF91cGRh
dGVDaGlsZHJlbjogZnVuY3Rpb24oZnVsbFJlZnJlc2gpCiAgICAgewogICAgICAgICBpZiAodGhp
cy5fdXBkYXRlQ2hpbGRyZW5JblByb2dyZXNzKQpAQCAtNzY2LDcgKzc4Myw3IEBAIFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl91
cGRhdGVDaGlsZHJlbkluUHJvZ3Jlc3MgPSB0cnVlOwogICAgICAgICB2YXIgc2VsZWN0ZWROb2Rl
ID0gdGhpcy50cmVlT3V0bGluZS5zZWxlY3RlZERPTU5vZGUoKTsKLSAgICAgICAgdmFyIG9yaWdp
bmFsU2Nyb2xsVG9wOworICAgICAgICB2YXIgb3JpZ2luYWxTY3JvbGxUb3AgPSAwOwogICAgICAg
ICBpZiAoZnVsbFJlZnJlc2gpIHsKICAgICAgICAgICAgIHZhciB0cmVlT3V0bGluZUNvbnRhaW5l
ckVsZW1lbnQgPSB0aGlzLnRyZWVPdXRsaW5lLmVsZW1lbnQucGFyZW50Tm9kZTsKICAgICAgICAg
ICAgIG9yaWdpbmFsU2Nyb2xsVG9wID0gdHJlZU91dGxpbmVDb250YWluZXJFbGVtZW50LnNjcm9s
bFRvcDsKQEAgLTkyMyw3ICs5NDAsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVu
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUuc3VwcHJlc3NSZXZlYWxB
bmRTZWxlY3QgPSB0cnVlOwogICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnNlbGVjdERPTU5vZGUo
dGhpcy5yZXByZXNlbnRlZE9iamVjdCwgc2VsZWN0ZWRCeVVzZXIpOwogICAgICAgICBpZiAoc2Vs
ZWN0ZWRCeVVzZXIpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuaGlnaGxpZ2h0RE9NTm9kZSh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlkKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC5oaWdobGlnaHRET01Ob2RlKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaWQpOwogICAgICAg
ICB0aGlzLnVwZGF0ZVNlbGVjdGlvbigpOwogICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnN1cHBy
ZXNzUmV2ZWFsQW5kU2VsZWN0ID0gZmFsc2U7CiAgICAgfSwKQEAgLTEwMzUsMTIgKzEwNTIsNyBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb3B5IGFzIEhU
TUwiKSwgdGhpcy5fY29weUhUTUwuYmluZCh0aGlzKSk7CiAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dlckNhc2VN
ZW51VGl0bGVzKCkgPyAiRGVsZXRlIG5vZGUiIDogIkRlbGV0ZSBOb2RlIiksIHRoaXMucmVtb3Zl
LmJpbmQodGhpcykpOwogCi0gICAgICAgIGlmIChQcmVmZXJlbmNlcy5uYXRpdmVJbnN0cnVtZW50
YXRpb25FbmFibGVkKSB7Ci0gICAgICAgICAgICAvLyBBZGQgZGViYnVnaW5nLXJlbGF0ZWQgYWN0
aW9ucwotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7Ci0gICAgICAg
ICAgICB2YXIgcGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVz
LmRvbUJyZWFrcG9pbnRzOwotICAgICAgICAgICAgcGFuZS5wb3B1bGF0ZU5vZGVDb250ZXh0TWVu
dSh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBjb250ZXh0TWVudSk7Ci0gICAgICAgIH0KKyAgICAg
ICAgdGhpcy50cmVlT3V0bGluZS5fcG9wdWxhdGVDb250ZXh0TWVudShjb250ZXh0TWVudSwgdGhp
cy5yZXByZXNlbnRlZE9iamVjdCk7CiAgICAgfSwKIAogICAgIF9wb3B1bGF0ZVRleHRDb250ZXh0
TWVudTogZnVuY3Rpb24oY29udGV4dE1lbnUsIHRleHROb2RlKQpAQCAtMTEzMCwxMSArMTE0Miwx
MiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIC8vIFJlbW92ZSB6ZXJvLXdpZHRoIHNwYWNlcyB0aGF0IHdlcmUgYWRkZWQgYnkgbm9kZVRp
dGxlSW5mby4KICAgICAgICAgcmVtb3ZlWmVyb1dpZHRoU3BhY2VSZWN1cnNpdmUoYXR0cmlidXRl
KTsKIAotICAgICAgICB0aGlzLl9lZGl0aW5nID0gV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyhh
dHRyaWJ1dGUsIHsKLSAgICAgICAgICAgIGNvbnRleHQ6IGF0dHJpYnV0ZU5hbWUsCi0gICAgICAg
ICAgICBjb21taXRIYW5kbGVyOiB0aGlzLl9hdHRyaWJ1dGVFZGl0aW5nQ29tbWl0dGVkLmJpbmQo
dGhpcyksCi0gICAgICAgICAgICBjYW5jZWxIYW5kbGVyOiB0aGlzLl9lZGl0aW5nQ2FuY2VsbGVk
LmJpbmQodGhpcykKLSAgICAgICAgfSk7CisgICAgICAgIHZhciBjb25maWcgPSBuZXcgV2ViSW5z
cGVjdG9yLkVkaXRpbmdDb25maWcoKTsKKyAgICAgICAgY29uZmlnLnNldENvbnRleHQoYXR0cmli
dXRlTmFtZSk7CisgICAgICAgIGNvbmZpZy5zZXRDb21taXRIYW5kbGVyKHRoaXMuX2F0dHJpYnV0
ZUVkaXRpbmdDb21taXR0ZWQuYmluZCh0aGlzKSk7CisgICAgICAgIGNvbmZpZy5zZXRDYW5jZWxI
YW5kbGVyKHRoaXMuX2VkaXRpbmdDYW5jZWxsZWQuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMu
X2VkaXRpbmcgPSBXZWJJbnNwZWN0b3Iuc3RhcnRFZGl0aW5nKGF0dHJpYnV0ZSwgY29uZmlnKTsK
KwogICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChlbGVtZW50
Rm9yU2VsZWN0aW9uLCAwLCBlbGVtZW50Rm9yU2VsZWN0aW9uLCAxKTsKIAogICAgICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTExNDUsMTEgKzExNTgsMTEgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmlzQmVpbmdF
ZGl0ZWQodGV4dE5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAgICAgdGhp
cy5fZWRpdGluZyA9IFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcodGV4dE5vZGUsIHsKLSAgICAg
ICAgICAgIGNvbnRleHQ6IG51bGwsCi0gICAgICAgICAgICBjb21taXRIYW5kbGVyOiB0aGlzLl90
ZXh0Tm9kZUVkaXRpbmdDb21taXR0ZWQuYmluZCh0aGlzKSwKLSAgICAgICAgICAgIGNhbmNlbEhh
bmRsZXI6IHRoaXMuX2VkaXRpbmdDYW5jZWxsZWQuYmluZCh0aGlzKQotICAgICAgICB9KTsKKyAg
ICAgICAgdmFyIGNvbmZpZyA9IG5ldyBXZWJJbnNwZWN0b3IuRWRpdGluZ0NvbmZpZygpOworICAg
ICAgICBjb25maWcuc2V0Q29tbWl0SGFuZGxlcih0aGlzLl90ZXh0Tm9kZUVkaXRpbmdDb21taXR0
ZWQuYmluZCh0aGlzKSk7CisgICAgICAgIGNvbmZpZy5zZXRDYW5jZWxIYW5kbGVyKHRoaXMuX2Vk
aXRpbmdDYW5jZWxsZWQuYmluZCh0aGlzKSk7CisKKyAgICAgICAgdGhpcy5fZWRpdGluZyA9IFdl
Ykluc3BlY3Rvci5zdGFydEVkaXRpbmcodGV4dE5vZGUsIGNvbmZpZyk7CiAgICAgICAgIHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRleHROb2RlLCAwLCB0ZXh0Tm9kZSwg
MSk7CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMTkyLDExICsxMjA1LDEyIEBAIFdlYklu
c3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0YWdO
YW1lRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGtleXVwTGlzdGVuZXIsIGZhbHNl
KTsKIAotICAgICAgICB0aGlzLl9lZGl0aW5nID0gV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyh0
YWdOYW1lRWxlbWVudCwgewotICAgICAgICAgICAgY29udGV4dDogdGFnTmFtZSwKLSAgICAgICAg
ICAgIGNvbW1pdEhhbmRsZXI6IGVkaXRpbmdDb21pdHRlZC5iaW5kKHRoaXMpLAotICAgICAgICAg
ICAgY2FuY2VsSGFuZGxlcjogZWRpdGluZ0NhbmNlbGxlZC5iaW5kKHRoaXMpCi0gICAgICAgIH0p
OworICAgICAgICB2YXIgY29uZmlnID0gbmV3IFdlYkluc3BlY3Rvci5FZGl0aW5nQ29uZmlnKCk7
CisgICAgICAgIGNvbmZpZy5zZXRDb250ZXh0KHRhZ05hbWUpOworICAgICAgICBjb25maWcuc2V0
Q29tbWl0SGFuZGxlcihlZGl0aW5nQ29taXR0ZWQuYmluZCh0aGlzKSk7CisgICAgICAgIGNvbmZp
Zy5zZXRDYW5jZWxIYW5kbGVyKGVkaXRpbmdDYW5jZWxsZWQuYmluZCh0aGlzKSk7CisKKyAgICAg
ICAgdGhpcy5fZWRpdGluZyA9IFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcodGFnTmFtZUVsZW1l
bnQsIGNvbmZpZyk7CiAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0
ZW50KHRhZ05hbWVFbGVtZW50LCAwLCB0YWdOYW1lRWxlbWVudCwgMSk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0sCkBAIC0xMjUyLDEyICsxMjY2LDExIEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMudXBkYXRlU2Vs
ZWN0aW9uKCk7CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9lZGl0aW5nID0gV2ViSW5zcGVj
dG9yLnN0YXJ0RWRpdGluZyh0aGlzLl9odG1sRWRpdEVsZW1lbnQsIHsKLSAgICAgICAgICAgIGNv
bnRleHQ6IG51bGwsCi0gICAgICAgICAgICBjb21taXRIYW5kbGVyOiBjb21taXQuYmluZCh0aGlz
KSwKLSAgICAgICAgICAgIGNhbmNlbEhhbmRsZXI6IGRpc3Bvc2UuYmluZCh0aGlzKSwKLSAgICAg
ICAgICAgIG11bHRpbGluZTogdHJ1ZQotICAgICAgICB9KTsKKyAgICAgICAgdmFyIGNvbmZpZyA9
IG5ldyBXZWJJbnNwZWN0b3IuRWRpdGluZ0NvbmZpZygpOworICAgICAgICBjb25maWcuc2V0Q29t
bWl0SGFuZGxlcihjb21taXQuYmluZCh0aGlzKSk7CisgICAgICAgIGNvbmZpZy5zZXRDYW5jZWxI
YW5kbGVyKGRpc3Bvc2UuYmluZCh0aGlzKSk7CisKKyAgICAgICAgdGhpcy5fZWRpdGluZyA9IFdl
Ykluc3BlY3Rvci5zdGFydEVkaXRpbmcodGhpcy5faHRtbEVkaXRFbGVtZW50LCBjb25maWcpOwog
ICAgIH0sCiAKICAgICBfYXR0cmlidXRlRWRpdGluZ0NvbW1pdHRlZDogZnVuY3Rpb24oZWxlbWVu
dCwgbmV3VGV4dCwgb2xkVGV4dCwgYXR0cmlidXRlTmFtZSwgbW92ZURpcmVjdGlvbikKQEAgLTEz
NjIsMTEgKzEzNzUsMTMgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAorICAgICAg
ICAgICAgdmFyIG5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKG5vZGVJZCk7
CisKICAgICAgICAgICAgIC8vIFNlbGVjdCBpdCBhbmQgZXhwYW5kIGlmIG5lY2Vzc2FyeS4gV2Ug
Zm9yY2UgdHJlZSB1cGRhdGUgc28gdGhhdCBpdCBwcm9jZXNzZXMgZG9tIGV2ZW50cyBhbmQgaXMg
dXAgdG8gZGF0ZS4KICAgICAgICAgICAgIHRyZWVPdXRsaW5lLl91cGRhdGVNb2RpZmllZE5vZGVz
KCk7CisgICAgICAgICAgICB0cmVlT3V0bGluZS5zZWxlY3RET01Ob2RlKG5vZGUsIHRydWUpOwog
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IudXBkYXRlRm9jdXNlZE5vZGUobm9kZUlkKTsKLSAg
ICAgICAgICAgIHZhciBuZXdUcmVlSXRlbSA9IHRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChX
ZWJJbnNwZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKG5vZGVJZCkpOworICAgICAgICAgICAgdmFy
IG5ld1RyZWVJdGVtID0gdHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOwogICAgICAg
ICAgICAgaWYgKHdhc0V4cGFuZGVkKQogICAgICAgICAgICAgICAgIG5ld1RyZWVJdGVtLmV4cGFu
ZCgpOwogCkBAIC0xNDE3LDYgKzE0MzIsOSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxl
bWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiAodGFncy5sZW5ndGggPT09IDEgPyBu
dWxsIDogdGFnc1t0YWdzLmxlbmd0aC0xXSk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBw
YXJhbSB7Ym9vbGVhbj19IG9ubHlTZWFyY2hRdWVyeUNoYW5nZWQKKyAgICAgKi8KICAgICB1cGRh
dGVUaXRsZTogZnVuY3Rpb24ob25seVNlYXJjaFF1ZXJ5Q2hhbmdlZCkKICAgICB7CiAgICAgICAg
IC8vIElmIHdlIGFyZSBlZGl0aW5nLCByZXR1cm4gZWFybHkgdG8gcHJldmVudCBjYW5jZWxpbmcg
dGhlIGVkaXQuCkBAIC0xNDQxLDYgKzE0NTksMTAgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9oaWdobGlnaHRTZWFyY2hSZXN1
bHRzKCk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRP
TU5vZGU9fSBub2RlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcsIHN0cmluZywgc3Ry
aW5nLCBib29sZWFuPSwgc3RyaW5nPSk9fSBsaW5raWZ5CisgICAgICovCiAgICAgX2J1aWxkQXR0
cmlidXRlRE9NOiBmdW5jdGlvbihwYXJlbnRFbGVtZW50LCBuYW1lLCB2YWx1ZSwgbm9kZSwgbGlu
a2lmeSkKICAgICB7CiAgICAgICAgIHZhciBoYXNUZXh0ID0gKHZhbHVlLmxlbmd0aCA+IDApOwpA
QCAtMTQ2NSw5ICsxNDg3LDEyIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIGF0dHJTcGFuRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiXCIiKSk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBw
YXJhbSB7ZnVuY3Rpb24oc3RyaW5nLCBzdHJpbmcsIHN0cmluZywgYm9vbGVhbj0sIHN0cmluZz0p
PX0gbGlua2lmeQorICAgICAqLwogICAgIF9idWlsZFRhZ0RPTTogZnVuY3Rpb24ocGFyZW50RWxl
bWVudCwgdGFnTmFtZSwgaXNDbG9zaW5nVGFnLCBpc0Rpc3RpbmN0VHJlZUVsZW1lbnQsIGxpbmtp
ZnkpCiAgICAgewotICAgICAgICB2YXIgbm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7Cisg
ICAgICAgIHZhciBub2RlID0gLyoqIEB0eXBlIFdlYkluc3BlY3Rvci5ET01Ob2RlICovIHRoaXMu
cmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgIHZhciBjbGFzc2VzID0gWyAid2Via2l0LWh0bWwt
dGFnIiBdOwogICAgICAgICBpZiAoaXNDbG9zaW5nVGFnICYmIGlzRGlzdGluY3RUcmVlRWxlbWVu
dCkKICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgiY2xvc2UiKTsKQEAgLTE1MjUsNyArMTU1MCw3
IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIHRleHROb2RlRWxlbWVudC50ZXh0Q29udGVudCA9ICJcdTIwMjYi
OwogICAgICAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZURPTS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiXHUyMDBCIikpOwogICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkVGFnRE9NKGluZm8udGl0bGVET00sIHRhZ05h
bWUsIHRydWUsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxk
VGFnRE9NKGluZm8udGl0bGVET00sIHRhZ05hbWUsIHRydWUsIGZhbHNlKTsKICAgICAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGVsZW1lbnQgb25seSBoYXMgYSBz
aW5nbGUgY2hpbGQgdGhhdCBpcyBhIHRleHQgbm9kZSwKQEAgLTE2NDYsMTIgKzE2NzEsMTMgQEAg
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgaWYgKGVycm9yIHx8ICFub2RlSWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCisgICAg
ICAgICAgICB2YXIgbm9kZSA9IFdlYkluc3BlY3Rvci5kb21BZ2VudC5ub2RlRm9ySWQobm9kZUlk
KTsKICAgICAgICAgICAgIC8vIFNlbGVjdCBpdCBhbmQgZXhwYW5kIGlmIG5lY2Vzc2FyeS4gV2Ug
Zm9yY2UgdHJlZSB1cGRhdGUgc28gdGhhdCBpdCBwcm9jZXNzZXMgZG9tIGV2ZW50cyBhbmQgaXMg
dXAgdG8gZGF0ZS4KICAgICAgICAgICAgIHRyZWVPdXRsaW5lLl91cGRhdGVNb2RpZmllZE5vZGVz
KCk7CisgICAgICAgICAgICB0cmVlT3V0bGluZS5zZWxlY3RET01Ob2RlKG5vZGUsIHRydWUpOwog
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IudXBkYXRlRm9jdXNlZE5vZGUobm9kZUlkKTsKICAg
ICAgICAgICAgIGlmICh3YXNFeHBhbmRlZCkgewotICAgICAgICAgICAgICAgIHZhciBuZXdUcmVl
SXRlbSA9IHRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChXZWJJbnNwZWN0b3IuZG9tQWdlbnQu
bm9kZUZvcklkKG5vZGVJZCkpOworICAgICAgICAgICAgICAgIHZhciBuZXdUcmVlSXRlbSA9IHRy
ZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKICAgICAgICAgICAgICAgICBpZiAobmV3
VHJlZUl0ZW0pCiAgICAgICAgICAgICAgICAgICAgIG5ld1RyZWVJdGVtLmV4cGFuZCgpOwogICAg
ICAgICAgICAgfQpAQCAtMTcxMyw3ICsxNzM5LDYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZVVwZGF0ZXIgPSBmdW5jdGlvbih0cmVlT3V0bGluZSkKICAgICBXZWJJbnNwZWN0b3IuZG9tQWdl
bnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkNoYXJhY3Rl
ckRhdGFNb2RpZmllZCwgdGhpcy5fY2hhcmFjdGVyRGF0YU1vZGlmaWVkLCB0aGlzKTsKICAgICBX
ZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdl
bnQuRXZlbnRzLkRvY3VtZW50VXBkYXRlZCwgdGhpcy5fZG9jdW1lbnRVcGRhdGVkLCB0aGlzKTsK
ICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RE9NQWdlbnQuRXZlbnRzLkNoaWxkTm9kZUNvdW50VXBkYXRlZCwgdGhpcy5fY2hpbGROb2RlQ291
bnRVcGRhdGVkLCB0aGlzKTsKLSAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLkluc3BlY3RFbGVtZW50UmVxdWVzdGVk
LCB0aGlzLl9pbnNwZWN0RWxlbWVudFJlcXVlc3RlZCwgdGhpcyk7CiAKICAgICB0aGlzLl90cmVl
T3V0bGluZSA9IHRyZWVPdXRsaW5lOwogICAgIHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2RlcyA9
IFtdOwpAQCAtMTc2NywxMiArMTc5Miw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVVcGRh
dGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRyZWVFbGVtZW50Lmhhc0NoaWxkcmVuID0g
ZXZlbnQuZGF0YS5oYXNDaGlsZE5vZGVzKCk7CiAgICAgfSwKIAotICAgIF9pbnNwZWN0RWxlbWVu
dFJlcXVlc3RlZDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgbm9kZSA9IGV2
ZW50LmRhdGE7Ci0gICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZShub2RlLmlk
KTsKLSAgICB9LAotCiAgICAgX3VwZGF0ZU1vZGlmaWVkTm9kZXNTb29uOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICBpZiAodGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1RpbWVvdXQpCkBAIC0x
ODIxLDcgKzE4NDAsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlVXBkYXRlci5wcm90b3R5
cGUgPSB7CiAgICAgewogICAgICAgICB0aGlzLl90cmVlT3V0bGluZS5yb290RE9NTm9kZSA9IG51
bGw7CiAgICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLnNlbGVjdERPTU5vZGUobnVsbCwgZmFsc2Up
OwotICAgICAgICBXZWJJbnNwZWN0b3IuaGlnaGxpZ2h0RE9NTm9kZSgwKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbUFnZW50LmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CiAgICAgICAgIHRoaXMu
X3JlY2VudGx5TW9kaWZpZWROb2RlcyA9IFtdOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWV0cmljc1NpZGViYXJQYW5lLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZXRyaWNzU2lkZWJhclBhbmUuanMKaW5k
ZXggMTQ2ODkyOGRhOTZkNGM3NjBiMzdjODIyNTFhNWZmOWMzZDQ0YmIxNC4uMThiZTgxM2NlMGFk
MjdhMjEyMmZlOGQwZTFjMDRlYjA0MmJmZWMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9NZXRyaWNzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZXRyaWNzU2lkZWJhclBhbmUuanMKQEAgLTEwOCwx
MCArMTA4LDEwIEBAIFdlYkluc3BlY3Rvci5NZXRyaWNzU2lkZWJhclBhbmUucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgaWYgKHRoaXMuX2hpZ2hsaWdodE1vZGUgPT09IG1vZGUpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0TW9kZSA9IG1vZGU7
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuaGlnaGxpZ2h0RE9NTm9kZShub2RlSWQsIG1vZGUp
OworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmhpZ2hsaWdodERPTU5vZGUobm9k
ZUlkLCBtb2RlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9o
aWdobGlnaHRNb2RlOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmhpZ2hsaWdodERPTU5vZGUo
MCwgIiIpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmhpZGVET01Ob2RlSGln
aGxpZ2h0KCk7CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgdGhpcy5fYm94
RWxlbWVudHMgJiYgaSA8IHRoaXMuX2JveEVsZW1lbnRzLmxlbmd0aDsgKytpKSB7CkBAIC00MTks
OCArNDE5LDcgQEAgV2ViSW5zcGVjdG9yLk1ldHJpY3NTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgc2VsZi5vcmlnaW5hbFByb3BlcnR5RGF0YSA9IHNlbGYucHJldmlv
dXNQcm9wZXJ0eURhdGFDYW5kaWRhdGU7CiAKICAgICAgICAgICAgIGlmICh0eXBlb2Ygc2VsZi5f
aGlnaGxpZ2h0TW9kZSAhPT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuaGlnaGxpZ2h0RE9NTm9kZSgwLCAiIik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmhpZ2hsaWdodERPTU5vZGUoc2VsZi5ub2RlLmlkLCBzZWxmLl9oaWdobGlnaHRNb2RlKTsK
KyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuaGlnaGxpZ2h0RE9NTm9kZShz
ZWxmLm5vZGUuaWQsIHNlbGYuX2hpZ2hsaWdodE1vZGUpOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICBpZiAoY29tbWl0RWRpdG9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2V4dGVybnMuanMKaW5kZXggYjUyMjJkMTc4MDBlOGIyYjQyNzUxMTMxYjBiN2Q1
Y2RkNmY3ZmE5OC4uNDcyNDA1OThiMTMzMjU5MzBiNzNjMjBjNTMwNThiMjgyMjI2MWY5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcwpAQCAtMTA2
LDE3ICsxMDYsNiBAQCBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IHsK
IH0KIAogLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtUcmVlT3V0bGluZX0KLSAq
IEBwYXJhbSB7Ym9vbGVhbj19IG9taXRSb290RE9NTm9kZQotICogQHBhcmFtIHtib29sZWFuPX0g
c2VsZWN0RW5hYmxlZAotICogQHBhcmFtIHtib29sZWFuPX0gc2hvd0luRWxlbWVudHNQYW5lbEVu
YWJsZWQKLSAqLwotV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUgPSBmdW5jdGlvbihv
bWl0Um9vdERPTU5vZGUsIHNlbGVjdEVuYWJsZWQsIHNob3dJbkVsZW1lbnRzUGFuZWxFbmFibGVk
KQotewotfQotCi0vKioKICAqIEBwYXJhbSB7TmV0d29ya0FnZW50LlJlcXVlc3RJZH0gcmVxdWVz
dElkCiAgKiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLlJlc291cmNlfQogICovCkBAIC0yMDIsMyAr
MTkxLDUgQEAgRXZlbnQucHJvdG90eXBlLmluaXRXZWJLaXRXaGVlbEV2ZW50ID0gZnVuY3Rpb24o
dmFyYXJnKSB7fQogICogQHBhcmFtIHtib29sZWFuPX0gc2hvd0NvbnNvbGUKICAqLwogV2ViSW5z
cGVjdG9yLmxvZyA9IGZ1bmN0aW9uKG1lc3NhZ2UsIG1lc3NhZ2VMZXZlbCwgc2hvd0NvbnNvbGUp
IHt9CisKK1dlYkluc3BlY3Rvci5yZXNvdXJjZVVSTEZvclJlbGF0ZWROb2RlID0gZnVuY3Rpb24o
bm9kZSwgdXJsKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qcwppbmRleCAxOWIzMzc3YmIyYjQxOTAxMmFmZDA5ZjAzZWRkYTE1MzJkZGNkMjRh
Li5iYzAzY2M3MWZlYjE5NWM1YTg5YTdkZTNkNTBhMzcyZjE1NzRkYmZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtMzY0LDU4ICsz
NjQsNiBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICAgICAgZXJyb3JXYXJuaW5nRWxl
bWVudC50aXRsZSA9IG51bGw7CiAgICAgfSwKIAotICAgIGJ1aWxkSGlnaGxpZ2h0Q29uZmlnOiBm
dW5jdGlvbihtb2RlKQotICAgIHsKLSAgICAgICAgbW9kZSA9IG1vZGUgfHwgImFsbCI7Ci0gICAg
ICAgIHZhciBoaWdobGlnaHRDb25maWcgPSB7IHNob3dJbmZvOiBtb2RlID09PSAiYWxsIiB9Owot
ICAgICAgICBpZiAobW9kZSA9PT0gImFsbCIgfHwgbW9kZSA9PT0gImNvbnRlbnQiKQotICAgICAg
ICAgICAgaGlnaGxpZ2h0Q29uZmlnLmNvbnRlbnRDb2xvciA9IFdlYkluc3BlY3Rvci5Db2xvci5Q
YWdlSGlnaGxpZ2h0LkNvbnRlbnQudG9Qcm90b2NvbFJHQkEoKTsKLQotICAgICAgICBpZiAobW9k
ZSA9PT0gImFsbCIgfHwgbW9kZSA9PT0gInBhZGRpbmciKQotICAgICAgICAgICAgaGlnaGxpZ2h0
Q29uZmlnLnBhZGRpbmdDb2xvciA9IFdlYkluc3BlY3Rvci5Db2xvci5QYWdlSGlnaGxpZ2h0LlBh
ZGRpbmcudG9Qcm90b2NvbFJHQkEoKTsKLQotICAgICAgICBpZiAobW9kZSA9PT0gImFsbCIgfHwg
bW9kZSA9PT0gImJvcmRlciIpCi0gICAgICAgICAgICBoaWdobGlnaHRDb25maWcuYm9yZGVyQ29s
b3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuUGFnZUhpZ2hsaWdodC5Cb3JkZXIudG9Qcm90b2NvbFJH
QkEoKTsKLQotICAgICAgICBpZiAobW9kZSA9PT0gImFsbCIgfHwgbW9kZSA9PT0gIm1hcmdpbiIp
Ci0gICAgICAgICAgICBoaWdobGlnaHRDb25maWcubWFyZ2luQ29sb3IgPSBXZWJJbnNwZWN0b3Iu
Q29sb3IuUGFnZUhpZ2hsaWdodC5NYXJnaW4udG9Qcm90b2NvbFJHQkEoKTsKLQotICAgICAgICBy
ZXR1cm4gaGlnaGxpZ2h0Q29uZmlnOwotICAgIH0sCi0KLSAgICBoaWdobGlnaHRET01Ob2RlOiBm
dW5jdGlvbihub2RlSWQsIG1vZGUpCi0gICAgewotICAgICAgICBpZiAoIl9oaWRlRE9NTm9kZUhp
Z2hsaWdodFRpbWVvdXQiIGluIHRoaXMpIHsKLSAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlz
Ll9oaWRlRE9NTm9kZUhpZ2hsaWdodFRpbWVvdXQpOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X2hpZGVET01Ob2RlSGlnaGxpZ2h0VGltZW91dDsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMu
X2hpZ2hsaWdodGVkRE9NTm9kZUlkID0gbm9kZUlkOwotICAgICAgICBpZiAobm9kZUlkKQotICAg
ICAgICAgICAgRE9NQWdlbnQuaGlnaGxpZ2h0Tm9kZShub2RlSWQsIHRoaXMuYnVpbGRIaWdobGln
aHRDb25maWcobW9kZSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBET01BZ2VudC5oaWRl
SGlnaGxpZ2h0KCk7Ci0gICAgfSwKLQotICAgIGhpZ2hsaWdodERPTU5vZGVGb3JUd29TZWNvbmRz
OiBmdW5jdGlvbihub2RlSWQpCi0gICAgewotICAgICAgICB0aGlzLmhpZ2hsaWdodERPTU5vZGUo
bm9kZUlkKTsKLSAgICAgICAgdGhpcy5faGlkZURPTU5vZGVIaWdobGlnaHRUaW1lb3V0ID0gc2V0
VGltZW91dCh0aGlzLmhpZ2hsaWdodERPTU5vZGUuYmluZCh0aGlzLCAwKSwgMjAwMCk7Ci0gICAg
fSwKLQotICAgIHdpcmVFbGVtZW50V2l0aERPTU5vZGU6IGZ1bmN0aW9uKGVsZW1lbnQsIG5vZGVJ
ZCkKLSAgICB7Ci0gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll91cGRhdGVGb2N1c2VkTm9kZS5iaW5kKHRoaXMsIG5vZGVJZCksIGZhbHNlKTsKLSAgICAgICAg
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCB0aGlzLmhpZ2hsaWdodERPTU5v
ZGUuYmluZCh0aGlzLCBub2RlSWQsICJhbGwiKSwgZmFsc2UpOwotICAgICAgICBlbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5oaWdobGlnaHRET01Ob2RlLmJpbmQodGhp
cywgMCksIGZhbHNlKTsKLSAgICB9LAotCi0gICAgX3VwZGF0ZUZvY3VzZWROb2RlOiBmdW5jdGlv
bihub2RlSWQpCi0gICAgewotICAgICAgICB0aGlzLnNldEN1cnJlbnRQYW5lbCh0aGlzLnBhbmVs
cy5lbGVtZW50cyk7Ci0gICAgICAgIHRoaXMucGFuZWxzLmVsZW1lbnRzLnVwZGF0ZUZvY3VzZWRO
b2RlKG5vZGVJZCk7Ci0gICAgfSwKLQogICAgIG5ldHdvcmtSZXNvdXJjZUJ5SWQ6IGZ1bmN0aW9u
KGlkKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMucGFuZWxzLm5ldHdvcmsucmVzb3VyY2VC
eUlkKGlkKTsKQEAgLTkzMCw3ICs4NzgsNyBAQCBXZWJJbnNwZWN0b3IucmVzZXQgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICBwYW5lbC5yZXNldCgpOwogICAgIH0KIAotICAgIHRoaXMuaGlnaGxp
Z2h0RE9NTm9kZSgwKTsKKyAgICB0aGlzLmRvbUFnZW50LmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7
CiAKICAgICBpZiAoIVdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcmVzZXJ2ZUNvbnNvbGVMb2cuZ2V0
KCkpCiAgICAgICAgIHRoaXMuY29uc29sZS5jbGVhck1lc3NhZ2VzKCk7CkBAIC0xMDcxLDggKzEw
MTksNyBAQCBXZWJJbnNwZWN0b3IuaW5zcGVjdCA9IGZ1bmN0aW9uKHBheWxvYWQsIGhpbnRzKQog
CiBXZWJJbnNwZWN0b3IudXBkYXRlRm9jdXNlZE5vZGUgPSBmdW5jdGlvbihub2RlSWQpCiB7Ci0g
ICAgdGhpcy5fdXBkYXRlRm9jdXNlZE5vZGUobm9kZUlkKTsKLSAgICB0aGlzLmhpZ2hsaWdodERP
TU5vZGVGb3JUd29TZWNvbmRzKG5vZGVJZCk7CisgICAgdGhpcy5wYW5lbHMuZWxlbWVudHMucmV2
ZWFsQW5kU2VsZWN0Tm9kZShub2RlSWQpOwogfQogCiBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVG
b3JVUkwgPSBmdW5jdGlvbih1cmwpCg==
</data>
<flag name="review"
          id="107281"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>