<?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>82481</bug_id>
          
          <creation_ts>2012-03-28 10:43:26 -0700</creation_ts>
          <short_desc>Web Inspector: refactor UI breakpoint listeners.</short_desc>
          <delta_ts>2012-04-02 06:57:36 -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 Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</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>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>590121</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-28 10:43:26 -0700</bug_when>
    <thetext>Web Inspector: refactor UI breakpoint listeners.

Breakpoint-added and breakpoint-removed events are now dispatched on UISourceCode. So handlers that manage SourceFrame&apos;s breakpoint decorations could be moved from ScriptsPanel to SourceFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590126</commentid>
    <comment_count>1</comment_count>
      <attachid>134335</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-28 10:47:34 -0700</bug_when>
    <thetext>Created attachment 134335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590132</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-28 10:51:33 -0700</bug_when>
    <thetext>Attachment 134335 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1
LayoutTests/ChangeLog:1:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590138</commentid>
    <comment_count>3</comment_count>
      <attachid>134337</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-28 10:55:25 -0700</bug_when>
    <thetext>Created attachment 134337
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590147</commentid>
    <comment_count>4</comment_count>
      <attachid>134337</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-28 11:02:48 -0700</bug_when>
    <thetext>Comment on attachment 134337
Patch

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

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:257
&gt; +        this._addBreakpointListeners(uiSourceCode);

This method adds breakpoint listeners twice now, I don&apos;t think this is what you meant to do here.

&gt; Source/WebCore/inspector/front-end/SourceFrame.js:-58
&gt; -    Loaded: &quot;loaded&quot;

Could you please mention removing of this event in the ChangeLog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593432</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-04-02 06:57:36 -0700</bug_when>
    <thetext>Committed r112875: &lt;http://trac.webkit.org/changeset/112875&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134335</attachid>
            <date>2012-03-28 10:47:34 -0700</date>
            <delta_ts>2012-03-28 10:55:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82481-20120328214732.patch</filename>
            <type>text/plain</type>
            <size>18498</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzcyYjgwZmNkZmFmOGY5
MWFjN2MwZDgzOTgzN2Y3N2Q1MzMxN2UxZS4uN2Q5YzFmYjU5ZDg0YTIzMWQ3OGY3YzE4YWZhNmQ2
NzRhYTFkZTM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEyLTAzLTI4ICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlZmFjdG9yIFVJIGJyZWFrcG9pbnQgbGlzdGVuZXJzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI0ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCcmVha3BvaW50LWFkZGVkIGFuZCBicmVh
a3BvaW50LXJlbW92ZWQgZXZlbnRzIGFyZSBjdXJyZW50bHkgZGlzcGF0Y2hlZCBvbiBVSVNvdXJj
ZUNvZGUuCisgICAgICAgIFRoYXQgYWxsb3dzIHVzIHRvIG1vdmUgaGFuZGxlcnMgdGhhdCBtYW5h
Z2UgU291cmNlRnJhbWUncyBicmVha3BvaW50IGRlY29yYXRpb25zIGZyb20gU2NyaXB0c1BhbmVs
IHRvIFNvdXJjZUZyYW1lLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSmF2
YVNjcmlwdFNvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRT
b3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LnByb3RvdHlwZS5wb3B1bGF0ZUxpbmVHdXR0ZXJDb250ZXh0TWVudS5hZGRDb25kaXRpb25hbEJy
ZWFrcG9pbnQuZGlkRWRpdEJyZWFrcG9pbnRDb25kaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUucG9wdWxhdGVMaW5lR3V0dGVyQ29u
dGV4dE1lbnUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUu
cHJvdG90eXBlLmJlZm9yZVRleHRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLmRpZEVkaXRDb250ZW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9hZGRCcmVha3BvaW50
RGVjb3JhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtwb2ludERlY29yYXRpb24pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX2JyZWFrcG9pbnRBZGRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5f
YnJlYWtwb2ludFJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3Vy
Y2VGcmFtZS5wcm90b3R5cGUub25UZXh0Vmlld2VyQ29udGVudExvYWRlZCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlQWRkZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3VpQnJlYWtwb2ludEFkZGVkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl91aUJyZWFrcG9p
bnRSZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
Ll9jcmVhdGVTb3VyY2VGcmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUu
c2V0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
Lm9uVGV4dFZpZXdlckNvbnRlbnRMb2FkZWQpOgorCisyMDEyLTAzLTI4ICBQYXZlbCBQb2Rpdmls
b3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRp
c3BhdGNoIGNvbnNvbGUtbWVzc2FnZS1hZGRlZCBhbmQgY29uc29sZS1tZXNzYWdlcy1jbGVhcmVk
IGV2ZW50cyBvbiBVSVNvdXJjZUNvZGUuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MjQ2MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5k
ZXggMGI5NzM5YTkxZGZiNTAyOTc5NmVjZjA1NTZhYWM1NWUxM2M4OGE3YS4uMmUzMGY2YzI0ZDAx
ZmFhOGYzMDc4MTBkOTRkZDRlOWUzMzY2MjQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5qcwpAQCAtMzQyLDE5ICszNDIsNiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQotICAgICAqIEByZXR1cm4ge0FycmF5LjxX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludD59Ci0gICAgICovCi0gICAgYnJlYWtwb2ludHNGb3JVSVNv
dXJjZUNvZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKLSAgICB7Ci0gICAgICAgIHZhciBicmVh
a3BvaW50c01hcCA9IHVpU291cmNlQ29kZS5icmVha3BvaW50cygpOwotICAgICAgICB2YXIgYnJl
YWtwb2ludHNMaXN0ID0gW107Ci0gICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4gYnJlYWtw
b2ludHNNYXApCi0gICAgICAgICAgICBicmVha3BvaW50c0xpc3QucHVzaChicmVha3BvaW50c01h
cFtsaW5lTnVtYmVyXSk7Ci0gICAgICAgIHJldHVybiBicmVha3BvaW50c0xpc3Q7Ci0gICAgfSwK
LQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlT
b3VyY2VDb2RlCiAgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKICAgICAgKiBAcGFy
YW0ge3N0cmluZ30gY29uZGl0aW9uCiAgICAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRT
b3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNj
cmlwdFNvdXJjZUZyYW1lLmpzCmluZGV4IGJlNDgzYTBjMWFmNTc5YTE2OTQ1NTM5OTY5NzRjYmIx
YWFjYmI5NjAuLjFiY2Q5NzUzYWU2YjJiNjM4MmI0NTk0YThiNTZkMTk0NjFlNGQ2ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJj
ZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNj
cmlwdFNvdXJjZUZyYW1lLmpzCkBAIC00OSw5ICs0OSwxMCBAQCBXZWJJbnNwZWN0b3IuSmF2YVNj
cmlwdFNvdXJjZUZyYW1lID0gZnVuY3Rpb24oc2NyaXB0c1BhbmVsLCBtb2RlbCwgdWlTb3VyY2VD
b2RlKQogICAgIHRoaXMudGV4dFZpZXdlci5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNl
ZG93biIsIHRoaXMuX29uTW91c2VEb3duLmJpbmQodGhpcyksIHRydWUpOwogICAgIHRoaXMudGV4
dFZpZXdlci5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9vbktleURv
d24uYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuQ29udGVudENoYW5nZWQsIHRo
aXMuX29uQ29udGVudENoYW5nZWQsIHRoaXMpOworICAgIHRoaXMuX3VpU291cmNlQ29kZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLkJyZWFrcG9pbnRB
ZGRlZCwgdGhpcy5fYnJlYWtwb2ludEFkZGVkLCB0aGlzKTsKKyAgICB0aGlzLl91aVNvdXJjZUNv
ZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5CcmVh
a3BvaW50UmVtb3ZlZCwgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQsIHRoaXMpOwogICAgIHRoaXMu
X3VpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUu
RXZlbnRzLkNvbnNvbGVNZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQsIHRo
aXMpOwogICAgIHRoaXMuX3VpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUuRXZlbnRzLkNvbnNvbGVNZXNzYWdlc0NsZWFyZWQsIHRoaXMuX2NvbnNv
bGVNZXNzYWdlc0NsZWFyZWQsIHRoaXMpOwotICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5fb25UZXh0Vmlld2VyQ29u
dGVudExvYWRlZCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJh
bWUucHJvdG90eXBlID0gewpAQCAtMTExLDEwICsxMTIsMTAgQEAgV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGFk
ZENvbmRpdGlvbmFsQnJlYWtwb2ludCgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
dGhpcy5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlKTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50RGVjb3JhdGlvbihsaW5lTnVtYmVy
LCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZGlk
RWRpdEJyZWFrcG9pbnRDb25kaXRpb24oY29tbWl0dGVkLCBjb25kaXRpb24pCiAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUJyZWFrcG9pbnQobGluZU51
bWJlcik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnREZWNvcmF0
aW9uKGxpbmVOdW1iZXIpOwogICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWl0dGVkKQogICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0QnJlYWtwb2ludChsaW5lTnVtYmVyLCBjb25k
aXRpb24sIHRydWUpOwogICAgICAgICAgICAgICAgIH0KQEAgLTE3Niw3ICsxNzcsNyBAQCBXZWJJ
bnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICBpZiAoYnJlYWtwb2ludCkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbC5y
ZW1vdmVCcmVha3BvaW50KHRoaXMuX3VpU291cmNlQ29kZSwgbGluZU51bWJlcik7CiAgICAgICAg
ICAgICAgICAgICAgIC8vIFJlLWFkZGluZyBkZWNvcmF0aW9uIG9ubHkuCi0gICAgICAgICAgICAg
ICAgICAgIHRoaXMuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyLCBicmVha3BvaW50LnJlc29sdmVk
LCBicmVha3BvaW50LmNvbmRpdGlvbmFsLCBicmVha3BvaW50LmVuYWJsZWQsIHRydWUpOworICAg
ICAgICAgICAgICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50RGVjb3JhdGlvbihsaW5lTnVtYmVy
LCBicmVha3BvaW50LnJlc29sdmVkLCBicmVha3BvaW50LmNvbmRpdGlvbmFsLCBicmVha3BvaW50
LmVuYWJsZWQsIHRydWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMjAxLDcgKzIwMiw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJh
bWUucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLnRleHRN
b2RlbC5nZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFrcG9pbnQiKTsKICAgICAgICAgICAg
IGlmIChicmVha3BvaW50KSB7CiAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGZha2UgZGVjb3Jh
dGlvbgotICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyKTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbihsaW5lTnVt
YmVyKTsKICAgICAgICAgICAgICAgICAvLyBTZXQgbmV3IGJyZWFrcG9pbnQKICAgICAgICAgICAg
ICAgICB0aGlzLl9zZXRCcmVha3BvaW50KGxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9u
LCBicmVha3BvaW50LmVuYWJsZWQpOwogICAgICAgICAgICAgfQpAQCAtMzE4LDcgKzMxOSw3IEBA
IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAg
ICByZXR1cm4gY29udGFpbmVyOwogICAgIH0sCiAKLSAgICBhZGRCcmVha3BvaW50OiBmdW5jdGlv
bihsaW5lTnVtYmVyLCByZXNvbHZlZCwgY29uZGl0aW9uYWwsIGVuYWJsZWQsIG11dGVkV2hpbGVF
ZGl0aW5nKQorICAgIF9hZGRCcmVha3BvaW50RGVjb3JhdGlvbjogZnVuY3Rpb24obGluZU51bWJl
ciwgcmVzb2x2ZWQsIGNvbmRpdGlvbmFsLCBlbmFibGVkLCBtdXRlZFdoaWxlRWRpdGluZykKICAg
ICB7CiAgICAgICAgIHZhciBicmVha3BvaW50ID0gewogICAgICAgICAgICAgcmVzb2x2ZWQ6IHJl
c29sdmVkLApAQCAtMzM2LDcgKzMzNyw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnRleHRWaWV3ZXIuZW5kVXBkYXRlcygp
OwogICAgIH0sCiAKLSAgICByZW1vdmVCcmVha3BvaW50OiBmdW5jdGlvbihsaW5lTnVtYmVyKQor
ICAgIF9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbjogZnVuY3Rpb24obGluZU51bWJlcikKICAg
ICB7CiAgICAgICAgIHRoaXMudGV4dE1vZGVsLnJlbW92ZUF0dHJpYnV0ZShsaW5lTnVtYmVyLCAi
YnJlYWtwb2ludCIpOwogICAgICAgICB0aGlzLnRleHRWaWV3ZXIuYmVnaW5VcGRhdGVzKCk7CkBA
IC00NjMsNiArNDY0LDIwIEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gbmV3TGluZU51bWJlcjsKICAgICB9LAogCisgICAg
X2JyZWFrcG9pbnRBZGRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgYnJl
YWtwb2ludCA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJQnJlYWtwb2ludH0gKi8gZXZlbnQu
ZGF0YTsKKyAgICAgICAgaWYgKHRoaXMubG9hZGVkKQorICAgICAgICAgICAgdGhpcy5fYWRkQnJl
YWtwb2ludERlY29yYXRpb24oYnJlYWtwb2ludC5saW5lTnVtYmVyLCBicmVha3BvaW50LnJlc29s
dmVkLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJlYWtwb2ludC5lbmFibGVkKTsKKyAgICB9LAor
CisgICAgX2JyZWFrcG9pbnRSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IHZhciBicmVha3BvaW50ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlCcmVha3BvaW50fSAq
LyBldmVudC5kYXRhOworICAgICAgICBpZiAodGhpcy5sb2FkZWQpCisgICAgICAgICAgICB0aGlz
Ll9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbihicmVha3BvaW50LmxpbmVOdW1iZXIpOworICAg
IH0sCisKICAgICBfY29uc29sZU1lc3NhZ2VBZGRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewog
ICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7CkBAIC00NzUsMTEgKzQ5MCwxNyBAQCBX
ZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5jbGVhck1lc3NhZ2VzKCk7CiAgICAgfSwKIAotICAgIF9vblRleHRWaWV3ZXJDb250ZW50
TG9hZGVkOiBmdW5jdGlvbigpCisgICAgb25UZXh0Vmlld2VyQ29udGVudExvYWRlZDogZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9leGVjdXRpb25MaW5lTnVtYmVy
ID09PSAibnVtYmVyIikKICAgICAgICAgICAgIHRoaXMuc2V0RXhlY3V0aW9uTGluZSh0aGlzLl9l
eGVjdXRpb25MaW5lTnVtYmVyKTsKIAorICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl91
aVNvdXJjZUNvZGUuYnJlYWtwb2ludHMoKTsKKyAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBp
biBicmVha3BvaW50cykgeworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50
c1tsaW5lTnVtYmVyXTsKKyAgICAgICAgICAgIHRoaXMuX2FkZEJyZWFrcG9pbnREZWNvcmF0aW9u
KGJyZWFrcG9pbnQubGluZU51bWJlciwgYnJlYWtwb2ludC5yZXNvbHZlZCwgYnJlYWtwb2ludC5j
b25kaXRpb24sIGJyZWFrcG9pbnQuZW5hYmxlZCk7CisgICAgICAgIH0KKwogICAgICAgICB2YXIg
bWVzc2FnZXMgPSB0aGlzLl91aVNvdXJjZUNvZGUuY29uc29sZU1lc3NhZ2VzKCk7CiAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAg
IHZhciBtZXNzYWdlID0gbWVzc2FnZXNbaV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDlmMzQ0MGI5Y2MzNGRmNGVhYTE1
MzhkMTgzMzdjNGYxNzdjMjkzNTEuLjFlZjk4MzFmYTkyY2Y3ZjYzNmE1MWMwNDI2YzdlODBkZTEy
NTIwY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCkBAIC0yNTQsNiArMjU0LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgX3VpU291cmNlQ29kZUFkZGVkOiBmdW5jdGlvbihldmVudCkK
ICAgICB7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGV9ICovIGV2ZW50LmRhdGE7CisgICAgICAgIHRoaXMuX2FkZEJyZWFrcG9p
bnRMaXN0ZW5lcnModWlTb3VyY2VDb2RlKTsKIAogICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB1
aVNvdXJjZUNvZGUuYnJlYWtwb2ludHMoKTsKICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBp
biBicmVha3BvaW50cykKQEAgLTMxNSwyMiArMzE2LDEyIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgIF91aUJyZWFrcG9pbnRBZGRlZDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewogICAgICAgICB2YXIgdWlCcmVha3BvaW50ID0gLyoqIEB0eXBlIHtXZWJJbnNw
ZWN0b3IuVUlCcmVha3BvaW50fSAqLyBldmVudC5kYXRhOwotCi0gICAgICAgIHZhciBzb3VyY2VG
cmFtZSA9IHRoaXMuX3NvdXJjZUZyYW1lc0J5VUlTb3VyY2VDb2RlLmdldCh1aUJyZWFrcG9pbnQu
dWlTb3VyY2VDb2RlKQotICAgICAgICBpZiAoc291cmNlRnJhbWUgJiYgc291cmNlRnJhbWUubG9h
ZGVkKQotICAgICAgICAgICAgc291cmNlRnJhbWUuYWRkQnJlYWtwb2ludCh1aUJyZWFrcG9pbnQu
bGluZU51bWJlciwgdWlCcmVha3BvaW50LnJlc29sdmVkLCB1aUJyZWFrcG9pbnQuY29uZGl0aW9u
LCB1aUJyZWFrcG9pbnQuZW5hYmxlZCk7Ci0KICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuanNC
cmVha3BvaW50cy5hZGRCcmVha3BvaW50KHVpQnJlYWtwb2ludCk7CiAgICAgfSwKIAogICAgIF91
aUJyZWFrcG9pbnRSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciB1
aUJyZWFrcG9pbnQgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5VSUJyZWFrcG9pbnR9ICovIGV2
ZW50LmRhdGE7Ci0KLSAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRnJhbWVz
QnlVSVNvdXJjZUNvZGUuZ2V0KHVpQnJlYWtwb2ludC51aVNvdXJjZUNvZGUpCi0gICAgICAgIGlm
IChzb3VyY2VGcmFtZSAmJiBzb3VyY2VGcmFtZS5sb2FkZWQpCi0gICAgICAgICAgICBzb3VyY2VG
cmFtZS5yZW1vdmVCcmVha3BvaW50KHVpQnJlYWtwb2ludC5saW5lTnVtYmVyKTsKLQogICAgICAg
ICB0aGlzLnNpZGViYXJQYW5lcy5qc0JyZWFrcG9pbnRzLnJlbW92ZUJyZWFrcG9pbnQodWlCcmVh
a3BvaW50LnVpU291cmNlQ29kZSwgdWlCcmVha3BvaW50LmxpbmVOdW1iZXIpOwogICAgIH0sCiAK
QEAgLTUyOSw3ICs1MjAsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0
U291cmNlRnJhbWUodGhpcywgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwsIHVpU291cmNlQ29kZSk7
CiAKICAgICAgICAgc291cmNlRnJhbWUuX3VpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZTsKLSAg
ICAgICAgc291cmNlRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5fc291cmNlRnJhbWVMb2FkZWQsIHRoaXMpOwogICAgICAg
ICB0aGlzLl9zb3VyY2VGcmFtZXNCeVVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzb3Vy
Y2VGcmFtZSk7CiAgICAgICAgIHJldHVybiBzb3VyY2VGcmFtZTsKICAgICB9LApAQCAtNTYyLDcg
KzU1Miw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZXNCeVVJU291cmNlQ29kZS5y
ZW1vdmUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgc291cmNlRnJhbWUuZGV0YWNoKCk7Ci0gICAg
ICAgIHNvdXJjZUZyYW1lLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLkV2ZW50cy5Mb2FkZWQsIHRoaXMuX3NvdXJjZUZyYW1lTG9hZGVkLCB0aGlzKTsKICAgICB9
LAogCiAgICAgLyoqCkBAIC01ODQsMTggKzU3Myw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludExpc3RlbmVy
cyh1aVNvdXJjZUNvZGVMaXN0W2ldKTsKICAgICB9LAogCi0gICAgX3NvdXJjZUZyYW1lTG9hZGVk
OiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IC8qKiBA
dHlwZSB7V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZX0gKi8gZXZlbnQudGFyZ2V0
OwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZTsK
LQotICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5icmVh
a3BvaW50c0ZvclVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgYnJl
YWtwb2ludCA9IGJyZWFrcG9pbnRzW2ldOwotICAgICAgICAgICAgc291cmNlRnJhbWUuYWRkQnJl
YWtwb2ludChicmVha3BvaW50LmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQucmVzb2x2ZWQsIGJyZWFr
cG9pbnQuY29uZGl0aW9uLCBicmVha3BvaW50LmVuYWJsZWQpOwotICAgICAgICB9Ci0gICAgfSwK
LQogICAgIF9jbGVhckN1cnJlbnRFeGVjdXRpb25MaW5lOiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICBpZiAodGhpcy5fZXhlY3V0aW9uU291cmNlRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCA0ODhjNGU0OGI5MGFi
MWUxYmRkM2YwNWZjYjA2ZmYzZDM1MjM3YTVhLi5mYTgzYjZlMmNlOGQzZWZlZTExYjQ3ZTYyM2U0
OWQyOWFiZTA3NDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlRnJhbWUuanMKQEAgLTU0LDEwICs1NCw2IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZSA9IGZ1bmN0aW9uKHVybCkKICAgICB0aGlzLl90ZXh0Vmlld2VyLnJlYWRPbmx5ID0gIXRo
aXMuY2FuRWRpdFNvdXJjZSgpOwogfQogCi1XZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRz
ID0gewotICAgIExvYWRlZDogImxvYWRlZCIKLX0KLQogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
LmNyZWF0ZVNlYXJjaFJlZ2V4ID0gZnVuY3Rpb24ocXVlcnkpCiB7CiAgICAgdmFyIHJlZ2V4OwpA
QCAtMjM3LDExICsyMzMsMTMgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9kZWxheWVkRmluZFNlYXJjaE1hdGNoZXM7CiAg
ICAgICAgIH0KIAotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCk7CisgICAgICAgIHRoaXMub25UZXh0Vmll
d2VyQ29udGVudExvYWRlZCgpOwogCiAgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuZW5kVXBkYXRl
cygpOwogICAgIH0sCiAKKyAgICBvblRleHRWaWV3ZXJDb250ZW50TG9hZGVkOiBmdW5jdGlvbigp
IHt9LAorCiAgICAgX3NldFRleHRWaWV3ZXJEZWNvcmF0aW9uczogZnVuY3Rpb24oKQogICAgIHsK
ICAgICAgICAgdGhpcy5fcm93TWVzc2FnZXMgPSB7fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZWI2OGZiZWRiZDRkNTFl
OGEyODY2ODRjZGExNjI0ODZmOTZmYzUxLi4wNTVjNjYyNjFjMzY0OTkxMDRjMmNmZTA3ZTAyNzY2
MTE1MWI0NTUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKwkyMDEyLTAzLTI4ICBQYXZlbCBQb2Rp
dmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IHJlZmFjdG9yIFVJIGJyZWFrcG9pbnQgbGlzdGVuZXJzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI0ODEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdCk6CisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzLXRlc3QuanM6CisgICAgICAgIChpbml0aWFs
aXplX1Jlc291cmNlVGVzdC5JbnNwZWN0b3JUZXN0LnNob3dSZXNvdXJjZS5zaG93UmVzb3VyY2VD
YWxsYmFjay52aXNpdCk6CisgICAgICAgIChpbml0aWFsaXplX1Jlc291cmNlVGVzdC5JbnNwZWN0
b3JUZXN0LnNob3dSZXNvdXJjZS5zaG93UmVzb3VyY2VDYWxsYmFjayk6CisgICAgICAgIChpbml0
aWFsaXplX1Jlc291cmNlVGVzdC5JbnNwZWN0b3JUZXN0LnNob3dSZXNvdXJjZSk6CisgICAgICAg
IChpbml0aWFsaXplX1Jlc291cmNlVGVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L2xpdmUtZWRpdC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXQtYnJlYWtw
b2ludC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUuaHRt
bDoKKwogMjAxMi0wMy0yOCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBkaXNwYXRjaCBjb25zb2xlLW1lc3NhZ2UtYWRk
ZWQgYW5kIGNvbnNvbGUtbWVzc2FnZXMtY2xlYXJlZCBldmVudHMgb24gVUlTb3VyY2VDb2RlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVz
dC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMK
aW5kZXggOTVmNDdkZDAxZGU3M2U0MGMxODcwNTk5NmI2MzllYTIzODcyMDY5Mi4uNzBhOGRhMTk0
YzMzNzA5YWFlMWQxNDJiMWE1ODA3ODViNGQ2ZmRjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCkBAIC0xNjMsNyArMTYzLDcgQEAg
SW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlT25TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbihw
YW5lbCwgc2NyaXB0TmFtZSwgY2FsbGIKICAgICAgICAgICAgIGlmIChzb3VyY2VGcmFtZS5sb2Fk
ZWQpCiAgICAgICAgICAgICAgICAgY2FsbGJhY2soc291cmNlRnJhbWUpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5Mb2FkZWQsIGNhbGxiYWNrLmJpbmQobnVsbCwgc291
cmNlRnJhbWUpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoc291
cmNlRnJhbWUsICJvblRleHRWaWV3ZXJDb250ZW50TG9hZGVkIiwgY2FsbGJhY2suYmluZChudWxs
LCBzb3VyY2VGcmFtZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzLXRl
c3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5q
cwppbmRleCA0MWY5YmNhZjk0MzAxYmE3ZTViNjNhMDU2NmQxMWNjZDUyOGY2NjkzLi43YTc2MTFh
NmY3MTliNmE5MmZiZGEyOTc2Y2FhYTE5YjUxNzBjMjMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qcwpAQCAtODEsNyArODEsNyBA
QCBJbnNwZWN0b3JUZXN0LnNob3dSZXNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlVVJMLCBjYWxs
YmFjaykKICAgICAgICAgICAgICAgICBpZiAoc291cmNlRnJhbWUubG9hZGVkKQogICAgICAgICAg
ICAgICAgICAgICBjYWxsYmFja1dyYXBwZXIoc291cmNlRnJhbWUpOwogICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc291cmNlRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwgY2FsbGJhY2tXcmFwcGVyLmJp
bmQobnVsbCwgc291cmNlRnJhbWUpKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRTbmlmZmVyKHNvdXJjZUZyYW1lLCAib25UZXh0Vmlld2VyQ29udGVudExvYWRlZCIsIGNh
bGxiYWNrV3JhcHBlci5iaW5kKG51bGwsIHNvdXJjZUZyYW1lKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRtbAppbmRleCBkMDllYTI5Y2FjNzhiZDk5MzUz
MDg0NDYxZTJlM2QxYTM1OWQ4NmMzLi40NjVmMTdjMzIyODUyNjk4YTM1Mzg2YjgzNjlkMWE3OWRh
NGU0MmI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1l
ZGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC5o
dG1sCkBAIC05MCw3ICs5MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5j
dGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihzb3VyY2VGcmFtZSwgImFkZEJy
ZWFrcG9pbnQiLCBicmVha3BvaW50QWRkZWQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkU25pZmZlcihzb3VyY2VGcmFtZSwgIl9hZGRCcmVha3BvaW50RGVjb3JhdGlvbiIsIGJy
ZWFrcG9pbnRBZGRlZCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3Bv
aW50KHNvdXJjZUZyYW1lLCAyLCAiIiwgdHJ1ZSk7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXQtYnJlYWtwb2ludC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldC1icmVha3BvaW50Lmh0bWwKaW5kZXgg
MWMxN2RhMTkzNWZkMWYwYWRmNjEwY2E0YWJjZDJiZGNjODk1NTJiOS4uNTgyYjQ0OWQzYzI0MjNj
Nzk1OGI4ZGUxZGM4ZTJmMjMwNmNjZjU5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NldC1icmVha3BvaW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NldC1icmVha3BvaW50Lmh0bWwKQEAgLTQwLDcgKzQwLDcgQEAgdmFyIHRl
c3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlNjcmlwdCBleGVjdXRpb24gcGF1c2VkLiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7CiAgICAgICAgICAgICAgICAgZHVtcEJy
ZWFrcG9pbnRTaWRlYmFyUGFuZSgpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKGN1cnJlbnRTb3VyY2VGcmFtZSwgInJlbW92ZUJyZWFrcG9pbnQiLCBicmVha3BvaW50
UmVtb3ZlZCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKGN1cnJl
bnRTb3VyY2VGcmFtZSwgIl9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbiIsIGJyZWFrcG9pbnRS
ZW1vdmVkKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQo
Y3VycmVudFNvdXJjZUZyYW1lLCAxNik7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUuaHRtbAppbmRleCBkMTE2MjQ1NzM1
N2EyYzk3ZDg1MjVhNGE0NjVlYWM3YmM1YmJjY2RmLi5iZDIzYmJlMmUwNWFhOWE5Nzc4NmM0MDE5
ZDEzYmUyYWExYjE1YTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc291cmNlLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NvdXJjZS1mcmFtZS5odG1sCkBAIC0yMCwxNCArMjAsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQogICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3Jp
cHQgc291cmNlIHdhcyBzaG93bi4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUsICJh
ZGRCcmVha3BvaW50IiwgZGlkQWRkQnJlYWtwb2ludCk7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJv
dG90eXBlLCAiX2FkZEJyZWFrcG9pbnREZWNvcmF0aW9uIiwgZGlkQWRkQnJlYWtwb2ludCk7CiAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KHNvdXJjZUZyYW1lLCAx
NywgIiIsIHRydWUpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRB
ZGRCcmVha3BvaW50KGxpbmVOdW1iZXIpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJCcmVha3BvaW50IGFkZGVkIHRvIHNvdXJjZSBmcmFtZSBh
dCBsaW5lICIgKyBsaW5lTnVtYmVyKTsKLSAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJCcmVha3BvaW50IGFkZGVkIHRvIHNvdXJj
ZSBmcmFtZSBhdCBsaW5lICIgKyBsaW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134337</attachid>
            <date>2012-03-28 10:55:25 -0700</date>
            <delta_ts>2012-03-28 11:02:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82481-20120328215523.patch</filename>
            <type>text/plain</type>
            <size>18554</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzcyYjgwZmNkZmFmOGY5
MWFjN2MwZDgzOTgzN2Y3N2Q1MzMxN2UxZS4uN2Q5YzFmYjU5ZDg0YTIzMWQ3OGY3YzE4YWZhNmQ2
NzRhYTFkZTM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEyLTAzLTI4ICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlZmFjdG9yIFVJIGJyZWFrcG9pbnQgbGlzdGVuZXJzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI0ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCcmVha3BvaW50LWFkZGVkIGFuZCBicmVh
a3BvaW50LXJlbW92ZWQgZXZlbnRzIGFyZSBjdXJyZW50bHkgZGlzcGF0Y2hlZCBvbiBVSVNvdXJj
ZUNvZGUuCisgICAgICAgIFRoYXQgYWxsb3dzIHVzIHRvIG1vdmUgaGFuZGxlcnMgdGhhdCBtYW5h
Z2UgU291cmNlRnJhbWUncyBicmVha3BvaW50IGRlY29yYXRpb25zIGZyb20gU2NyaXB0c1BhbmVs
IHRvIFNvdXJjZUZyYW1lLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSmF2
YVNjcmlwdFNvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRT
b3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LnByb3RvdHlwZS5wb3B1bGF0ZUxpbmVHdXR0ZXJDb250ZXh0TWVudS5hZGRDb25kaXRpb25hbEJy
ZWFrcG9pbnQuZGlkRWRpdEJyZWFrcG9pbnRDb25kaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUucG9wdWxhdGVMaW5lR3V0dGVyQ29u
dGV4dE1lbnUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUu
cHJvdG90eXBlLmJlZm9yZVRleHRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLmRpZEVkaXRDb250ZW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9hZGRCcmVha3BvaW50
RGVjb3JhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtwb2ludERlY29yYXRpb24pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX2JyZWFrcG9pbnRBZGRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5f
YnJlYWtwb2ludFJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3Vy
Y2VGcmFtZS5wcm90b3R5cGUub25UZXh0Vmlld2VyQ29udGVudExvYWRlZCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlQWRkZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3VpQnJlYWtwb2ludEFkZGVkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl91aUJyZWFrcG9p
bnRSZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
Ll9jcmVhdGVTb3VyY2VGcmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUu
c2V0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
Lm9uVGV4dFZpZXdlckNvbnRlbnRMb2FkZWQpOgorCisyMDEyLTAzLTI4ICBQYXZlbCBQb2Rpdmls
b3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRp
c3BhdGNoIGNvbnNvbGUtbWVzc2FnZS1hZGRlZCBhbmQgY29uc29sZS1tZXNzYWdlcy1jbGVhcmVk
IGV2ZW50cyBvbiBVSVNvdXJjZUNvZGUuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MjQ2MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5k
ZXggMGI5NzM5YTkxZGZiNTAyOTc5NmVjZjA1NTZhYWM1NWUxM2M4OGE3YS4uMmUzMGY2YzI0ZDAx
ZmFhOGYzMDc4MTBkOTRkZDRlOWUzMzY2MjQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5qcwpAQCAtMzQyLDE5ICszNDIsNiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQotICAgICAqIEByZXR1cm4ge0FycmF5LjxX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludD59Ci0gICAgICovCi0gICAgYnJlYWtwb2ludHNGb3JVSVNv
dXJjZUNvZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKLSAgICB7Ci0gICAgICAgIHZhciBicmVh
a3BvaW50c01hcCA9IHVpU291cmNlQ29kZS5icmVha3BvaW50cygpOwotICAgICAgICB2YXIgYnJl
YWtwb2ludHNMaXN0ID0gW107Ci0gICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4gYnJlYWtw
b2ludHNNYXApCi0gICAgICAgICAgICBicmVha3BvaW50c0xpc3QucHVzaChicmVha3BvaW50c01h
cFtsaW5lTnVtYmVyXSk7Ci0gICAgICAgIHJldHVybiBicmVha3BvaW50c0xpc3Q7Ci0gICAgfSwK
LQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlT
b3VyY2VDb2RlCiAgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKICAgICAgKiBAcGFy
YW0ge3N0cmluZ30gY29uZGl0aW9uCiAgICAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRT
b3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNj
cmlwdFNvdXJjZUZyYW1lLmpzCmluZGV4IGJlNDgzYTBjMWFmNTc5YTE2OTQ1NTM5OTY5NzRjYmIx
YWFjYmI5NjAuLjFiY2Q5NzUzYWU2YjJiNjM4MmI0NTk0YThiNTZkMTk0NjFlNGQ2ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJj
ZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNj
cmlwdFNvdXJjZUZyYW1lLmpzCkBAIC00OSw5ICs0OSwxMCBAQCBXZWJJbnNwZWN0b3IuSmF2YVNj
cmlwdFNvdXJjZUZyYW1lID0gZnVuY3Rpb24oc2NyaXB0c1BhbmVsLCBtb2RlbCwgdWlTb3VyY2VD
b2RlKQogICAgIHRoaXMudGV4dFZpZXdlci5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNl
ZG93biIsIHRoaXMuX29uTW91c2VEb3duLmJpbmQodGhpcyksIHRydWUpOwogICAgIHRoaXMudGV4
dFZpZXdlci5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9vbktleURv
d24uYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuQ29udGVudENoYW5nZWQsIHRo
aXMuX29uQ29udGVudENoYW5nZWQsIHRoaXMpOworICAgIHRoaXMuX3VpU291cmNlQ29kZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLkJyZWFrcG9pbnRB
ZGRlZCwgdGhpcy5fYnJlYWtwb2ludEFkZGVkLCB0aGlzKTsKKyAgICB0aGlzLl91aVNvdXJjZUNv
ZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5CcmVh
a3BvaW50UmVtb3ZlZCwgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQsIHRoaXMpOwogICAgIHRoaXMu
X3VpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUu
RXZlbnRzLkNvbnNvbGVNZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQsIHRo
aXMpOwogICAgIHRoaXMuX3VpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUuRXZlbnRzLkNvbnNvbGVNZXNzYWdlc0NsZWFyZWQsIHRoaXMuX2NvbnNv
bGVNZXNzYWdlc0NsZWFyZWQsIHRoaXMpOwotICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5fb25UZXh0Vmlld2VyQ29u
dGVudExvYWRlZCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJh
bWUucHJvdG90eXBlID0gewpAQCAtMTExLDEwICsxMTIsMTAgQEAgV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGFk
ZENvbmRpdGlvbmFsQnJlYWtwb2ludCgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
dGhpcy5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlKTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50RGVjb3JhdGlvbihsaW5lTnVtYmVy
LCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZGlk
RWRpdEJyZWFrcG9pbnRDb25kaXRpb24oY29tbWl0dGVkLCBjb25kaXRpb24pCiAgICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUJyZWFrcG9pbnQobGluZU51
bWJlcik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnREZWNvcmF0
aW9uKGxpbmVOdW1iZXIpOwogICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWl0dGVkKQogICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0QnJlYWtwb2ludChsaW5lTnVtYmVyLCBjb25k
aXRpb24sIHRydWUpOwogICAgICAgICAgICAgICAgIH0KQEAgLTE3Niw3ICsxNzcsNyBAQCBXZWJJ
bnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICBpZiAoYnJlYWtwb2ludCkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbC5y
ZW1vdmVCcmVha3BvaW50KHRoaXMuX3VpU291cmNlQ29kZSwgbGluZU51bWJlcik7CiAgICAgICAg
ICAgICAgICAgICAgIC8vIFJlLWFkZGluZyBkZWNvcmF0aW9uIG9ubHkuCi0gICAgICAgICAgICAg
ICAgICAgIHRoaXMuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyLCBicmVha3BvaW50LnJlc29sdmVk
LCBicmVha3BvaW50LmNvbmRpdGlvbmFsLCBicmVha3BvaW50LmVuYWJsZWQsIHRydWUpOworICAg
ICAgICAgICAgICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50RGVjb3JhdGlvbihsaW5lTnVtYmVy
LCBicmVha3BvaW50LnJlc29sdmVkLCBicmVha3BvaW50LmNvbmRpdGlvbmFsLCBicmVha3BvaW50
LmVuYWJsZWQsIHRydWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMjAxLDcgKzIwMiw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJh
bWUucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLnRleHRN
b2RlbC5nZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFrcG9pbnQiKTsKICAgICAgICAgICAg
IGlmIChicmVha3BvaW50KSB7CiAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGZha2UgZGVjb3Jh
dGlvbgotICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyKTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbihsaW5lTnVt
YmVyKTsKICAgICAgICAgICAgICAgICAvLyBTZXQgbmV3IGJyZWFrcG9pbnQKICAgICAgICAgICAg
ICAgICB0aGlzLl9zZXRCcmVha3BvaW50KGxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9u
LCBicmVha3BvaW50LmVuYWJsZWQpOwogICAgICAgICAgICAgfQpAQCAtMzE4LDcgKzMxOSw3IEBA
IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAg
ICByZXR1cm4gY29udGFpbmVyOwogICAgIH0sCiAKLSAgICBhZGRCcmVha3BvaW50OiBmdW5jdGlv
bihsaW5lTnVtYmVyLCByZXNvbHZlZCwgY29uZGl0aW9uYWwsIGVuYWJsZWQsIG11dGVkV2hpbGVF
ZGl0aW5nKQorICAgIF9hZGRCcmVha3BvaW50RGVjb3JhdGlvbjogZnVuY3Rpb24obGluZU51bWJl
ciwgcmVzb2x2ZWQsIGNvbmRpdGlvbmFsLCBlbmFibGVkLCBtdXRlZFdoaWxlRWRpdGluZykKICAg
ICB7CiAgICAgICAgIHZhciBicmVha3BvaW50ID0gewogICAgICAgICAgICAgcmVzb2x2ZWQ6IHJl
c29sdmVkLApAQCAtMzM2LDcgKzMzNyw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnRleHRWaWV3ZXIuZW5kVXBkYXRlcygp
OwogICAgIH0sCiAKLSAgICByZW1vdmVCcmVha3BvaW50OiBmdW5jdGlvbihsaW5lTnVtYmVyKQor
ICAgIF9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbjogZnVuY3Rpb24obGluZU51bWJlcikKICAg
ICB7CiAgICAgICAgIHRoaXMudGV4dE1vZGVsLnJlbW92ZUF0dHJpYnV0ZShsaW5lTnVtYmVyLCAi
YnJlYWtwb2ludCIpOwogICAgICAgICB0aGlzLnRleHRWaWV3ZXIuYmVnaW5VcGRhdGVzKCk7CkBA
IC00NjMsNiArNDY0LDIwIEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gbmV3TGluZU51bWJlcjsKICAgICB9LAogCisgICAg
X2JyZWFrcG9pbnRBZGRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgYnJl
YWtwb2ludCA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJQnJlYWtwb2ludH0gKi8gZXZlbnQu
ZGF0YTsKKyAgICAgICAgaWYgKHRoaXMubG9hZGVkKQorICAgICAgICAgICAgdGhpcy5fYWRkQnJl
YWtwb2ludERlY29yYXRpb24oYnJlYWtwb2ludC5saW5lTnVtYmVyLCBicmVha3BvaW50LnJlc29s
dmVkLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJlYWtwb2ludC5lbmFibGVkKTsKKyAgICB9LAor
CisgICAgX2JyZWFrcG9pbnRSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IHZhciBicmVha3BvaW50ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlCcmVha3BvaW50fSAq
LyBldmVudC5kYXRhOworICAgICAgICBpZiAodGhpcy5sb2FkZWQpCisgICAgICAgICAgICB0aGlz
Ll9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbihicmVha3BvaW50LmxpbmVOdW1iZXIpOworICAg
IH0sCisKICAgICBfY29uc29sZU1lc3NhZ2VBZGRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewog
ICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7CkBAIC00NzUsMTEgKzQ5MCwxNyBAQCBX
ZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5jbGVhck1lc3NhZ2VzKCk7CiAgICAgfSwKIAotICAgIF9vblRleHRWaWV3ZXJDb250ZW50
TG9hZGVkOiBmdW5jdGlvbigpCisgICAgb25UZXh0Vmlld2VyQ29udGVudExvYWRlZDogZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9leGVjdXRpb25MaW5lTnVtYmVy
ID09PSAibnVtYmVyIikKICAgICAgICAgICAgIHRoaXMuc2V0RXhlY3V0aW9uTGluZSh0aGlzLl9l
eGVjdXRpb25MaW5lTnVtYmVyKTsKIAorICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl91
aVNvdXJjZUNvZGUuYnJlYWtwb2ludHMoKTsKKyAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBp
biBicmVha3BvaW50cykgeworICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50
c1tsaW5lTnVtYmVyXTsKKyAgICAgICAgICAgIHRoaXMuX2FkZEJyZWFrcG9pbnREZWNvcmF0aW9u
KGJyZWFrcG9pbnQubGluZU51bWJlciwgYnJlYWtwb2ludC5yZXNvbHZlZCwgYnJlYWtwb2ludC5j
b25kaXRpb24sIGJyZWFrcG9pbnQuZW5hYmxlZCk7CisgICAgICAgIH0KKwogICAgICAgICB2YXIg
bWVzc2FnZXMgPSB0aGlzLl91aVNvdXJjZUNvZGUuY29uc29sZU1lc3NhZ2VzKCk7CiAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAg
IHZhciBtZXNzYWdlID0gbWVzc2FnZXNbaV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDlmMzQ0MGI5Y2MzNGRmNGVhYTE1
MzhkMTgzMzdjNGYxNzdjMjkzNTEuLjFlZjk4MzFmYTkyY2Y3ZjYzNmE1MWMwNDI2YzdlODBkZTEy
NTIwY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCkBAIC0yNTQsNiArMjU0LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgX3VpU291cmNlQ29kZUFkZGVkOiBmdW5jdGlvbihldmVudCkK
ICAgICB7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGV9ICovIGV2ZW50LmRhdGE7CisgICAgICAgIHRoaXMuX2FkZEJyZWFrcG9p
bnRMaXN0ZW5lcnModWlTb3VyY2VDb2RlKTsKIAogICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB1
aVNvdXJjZUNvZGUuYnJlYWtwb2ludHMoKTsKICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBp
biBicmVha3BvaW50cykKQEAgLTMxNSwyMiArMzE2LDEyIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgIF91aUJyZWFrcG9pbnRBZGRlZDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewogICAgICAgICB2YXIgdWlCcmVha3BvaW50ID0gLyoqIEB0eXBlIHtXZWJJbnNw
ZWN0b3IuVUlCcmVha3BvaW50fSAqLyBldmVudC5kYXRhOwotCi0gICAgICAgIHZhciBzb3VyY2VG
cmFtZSA9IHRoaXMuX3NvdXJjZUZyYW1lc0J5VUlTb3VyY2VDb2RlLmdldCh1aUJyZWFrcG9pbnQu
dWlTb3VyY2VDb2RlKQotICAgICAgICBpZiAoc291cmNlRnJhbWUgJiYgc291cmNlRnJhbWUubG9h
ZGVkKQotICAgICAgICAgICAgc291cmNlRnJhbWUuYWRkQnJlYWtwb2ludCh1aUJyZWFrcG9pbnQu
bGluZU51bWJlciwgdWlCcmVha3BvaW50LnJlc29sdmVkLCB1aUJyZWFrcG9pbnQuY29uZGl0aW9u
LCB1aUJyZWFrcG9pbnQuZW5hYmxlZCk7Ci0KICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuanNC
cmVha3BvaW50cy5hZGRCcmVha3BvaW50KHVpQnJlYWtwb2ludCk7CiAgICAgfSwKIAogICAgIF91
aUJyZWFrcG9pbnRSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciB1
aUJyZWFrcG9pbnQgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5VSUJyZWFrcG9pbnR9ICovIGV2
ZW50LmRhdGE7Ci0KLSAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRnJhbWVz
QnlVSVNvdXJjZUNvZGUuZ2V0KHVpQnJlYWtwb2ludC51aVNvdXJjZUNvZGUpCi0gICAgICAgIGlm
IChzb3VyY2VGcmFtZSAmJiBzb3VyY2VGcmFtZS5sb2FkZWQpCi0gICAgICAgICAgICBzb3VyY2VG
cmFtZS5yZW1vdmVCcmVha3BvaW50KHVpQnJlYWtwb2ludC5saW5lTnVtYmVyKTsKLQogICAgICAg
ICB0aGlzLnNpZGViYXJQYW5lcy5qc0JyZWFrcG9pbnRzLnJlbW92ZUJyZWFrcG9pbnQodWlCcmVh
a3BvaW50LnVpU291cmNlQ29kZSwgdWlCcmVha3BvaW50LmxpbmVOdW1iZXIpOwogICAgIH0sCiAK
QEAgLTUyOSw3ICs1MjAsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0
U291cmNlRnJhbWUodGhpcywgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwsIHVpU291cmNlQ29kZSk7
CiAKICAgICAgICAgc291cmNlRnJhbWUuX3VpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZTsKLSAg
ICAgICAgc291cmNlRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5fc291cmNlRnJhbWVMb2FkZWQsIHRoaXMpOwogICAgICAg
ICB0aGlzLl9zb3VyY2VGcmFtZXNCeVVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzb3Vy
Y2VGcmFtZSk7CiAgICAgICAgIHJldHVybiBzb3VyY2VGcmFtZTsKICAgICB9LApAQCAtNTYyLDcg
KzU1Miw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZXNCeVVJU291cmNlQ29kZS5y
ZW1vdmUodWlTb3VyY2VDb2RlKTsKICAgICAgICAgc291cmNlRnJhbWUuZGV0YWNoKCk7Ci0gICAg
ICAgIHNvdXJjZUZyYW1lLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLkV2ZW50cy5Mb2FkZWQsIHRoaXMuX3NvdXJjZUZyYW1lTG9hZGVkLCB0aGlzKTsKICAgICB9
LAogCiAgICAgLyoqCkBAIC01ODQsMTggKzU3Myw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludExpc3RlbmVy
cyh1aVNvdXJjZUNvZGVMaXN0W2ldKTsKICAgICB9LAogCi0gICAgX3NvdXJjZUZyYW1lTG9hZGVk
OiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IC8qKiBA
dHlwZSB7V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZX0gKi8gZXZlbnQudGFyZ2V0
OwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZTsK
LQotICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5icmVh
a3BvaW50c0ZvclVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgYnJl
YWtwb2ludCA9IGJyZWFrcG9pbnRzW2ldOwotICAgICAgICAgICAgc291cmNlRnJhbWUuYWRkQnJl
YWtwb2ludChicmVha3BvaW50LmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQucmVzb2x2ZWQsIGJyZWFr
cG9pbnQuY29uZGl0aW9uLCBicmVha3BvaW50LmVuYWJsZWQpOwotICAgICAgICB9Ci0gICAgfSwK
LQogICAgIF9jbGVhckN1cnJlbnRFeGVjdXRpb25MaW5lOiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICBpZiAodGhpcy5fZXhlY3V0aW9uU291cmNlRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCA0ODhjNGU0OGI5MGFi
MWUxYmRkM2YwNWZjYjA2ZmYzZDM1MjM3YTVhLi5mYTgzYjZlMmNlOGQzZWZlZTExYjQ3ZTYyM2U0
OWQyOWFiZTA3NDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlRnJhbWUuanMKQEAgLTU0LDEwICs1NCw2IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZSA9IGZ1bmN0aW9uKHVybCkKICAgICB0aGlzLl90ZXh0Vmlld2VyLnJlYWRPbmx5ID0gIXRo
aXMuY2FuRWRpdFNvdXJjZSgpOwogfQogCi1XZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRz
ID0gewotICAgIExvYWRlZDogImxvYWRlZCIKLX0KLQogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
LmNyZWF0ZVNlYXJjaFJlZ2V4ID0gZnVuY3Rpb24ocXVlcnkpCiB7CiAgICAgdmFyIHJlZ2V4OwpA
QCAtMjM3LDExICsyMzMsMTMgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9kZWxheWVkRmluZFNlYXJjaE1hdGNoZXM7CiAg
ICAgICAgIH0KIAotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCk7CisgICAgICAgIHRoaXMub25UZXh0Vmll
d2VyQ29udGVudExvYWRlZCgpOwogCiAgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuZW5kVXBkYXRl
cygpOwogICAgIH0sCiAKKyAgICBvblRleHRWaWV3ZXJDb250ZW50TG9hZGVkOiBmdW5jdGlvbigp
IHt9LAorCiAgICAgX3NldFRleHRWaWV3ZXJEZWNvcmF0aW9uczogZnVuY3Rpb24oKQogICAgIHsK
ICAgICAgICAgdGhpcy5fcm93TWVzc2FnZXMgPSB7fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZWI2OGZiZWRiZDRkNTFl
OGEyODY2ODRjZGExNjI0ODZmOTZmYzUxLi5kM2Q2NGY1NzNkN2IzNTM0MmEwNTQxOGU4N2VhODhm
NGZhNWE1YTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTItMDMtMjggIFBhdmVsIFBvZGl2
aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
cmVmYWN0b3IgVUkgYnJlYWtwb2ludCBsaXN0ZW5lcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIt
dGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0KToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxp
emVfUmVzb3VyY2VUZXN0Lkluc3BlY3RvclRlc3Quc2hvd1Jlc291cmNlLnNob3dSZXNvdXJjZUNh
bGxiYWNrLnZpc2l0KToKKyAgICAgICAgKGluaXRpYWxpemVfUmVzb3VyY2VUZXN0Lkluc3BlY3Rv
clRlc3Quc2hvd1Jlc291cmNlLnNob3dSZXNvdXJjZUNhbGxiYWNrKToKKyAgICAgICAgKGluaXRp
YWxpemVfUmVzb3VyY2VUZXN0Lkluc3BlY3RvclRlc3Quc2hvd1Jlc291cmNlKToKKyAgICAgICAg
KGluaXRpYWxpemVfUmVzb3VyY2VUZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
bGl2ZS1lZGl0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldC1icmVha3Bv
aW50Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1s
OgorCisyMDEyLTAzLTI4ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3Jn
PgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BhdGNoIGNvbnNvbGUtbWVzc2FnZS1hZGRl
ZCBhbmQgY29uc29sZS1tZXNzYWdlcy1jbGVhcmVkIGV2ZW50cyBvbiBVSVNvdXJjZUNvZGUuCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjQ2MwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcwpp
bmRleCA5NWY0N2RkMDFkZTczZTQwYzE4NzA1OTk2YjYzOWVhMjM4NzIwNjkyLi43MGE4ZGExOTRj
MzM3MDlhYWUxZDE0MmIxYTU4MDc4NWI0ZDZmZGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKQEAgLTE2Myw3ICsxNjMsNyBAQCBJ
bnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2VPblNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKHBh
bmVsLCBzY3JpcHROYW1lLCBjYWxsYgogICAgICAgICAgICAgaWYgKHNvdXJjZUZyYW1lLmxvYWRl
ZCkKICAgICAgICAgICAgICAgICBjYWxsYmFjayhzb3VyY2VGcmFtZSk7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgc291cmNlRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwgY2FsbGJhY2suYmluZChudWxsLCBzb3Vy
Y2VGcmFtZSkpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihzb3Vy
Y2VGcmFtZSwgIm9uVGV4dFZpZXdlckNvbnRlbnRMb2FkZWQiLCBjYWxsYmFjay5iaW5kKG51bGws
IHNvdXJjZUZyYW1lKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVz
dC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0Lmpz
CmluZGV4IDQxZjliY2FmOTQzMDFiYTdlNWI2M2EwNTY2ZDExY2NkNTI4ZjY2OTMuLjdhNzYxMWE2
ZjcxOWI2YTkyZmJkYTI5NzZjYWFhMTliNTE3MGMyMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzCkBAIC04MSw3ICs4MSw3IEBA
IEluc3BlY3RvclRlc3Quc2hvd1Jlc291cmNlID0gZnVuY3Rpb24ocmVzb3VyY2VVUkwsIGNhbGxi
YWNrKQogICAgICAgICAgICAgICAgIGlmIChzb3VyY2VGcmFtZS5sb2FkZWQpCiAgICAgICAgICAg
ICAgICAgICAgIGNhbGxiYWNrV3JhcHBlcihzb3VyY2VGcmFtZSk7CiAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICBzb3VyY2VGcmFtZS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMuTG9hZGVkLCBjYWxsYmFja1dyYXBwZXIuYmlu
ZChudWxsLCBzb3VyY2VGcmFtZSkpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoc291cmNlRnJhbWUsICJvblRleHRWaWV3ZXJDb250ZW50TG9hZGVkIiwgY2Fs
bGJhY2tXcmFwcGVyLmJpbmQobnVsbCwgc291cmNlRnJhbWUpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC5odG1sCmluZGV4IGQwOWVhMjljYWM3OGJkOTkzNTMw
ODQ0NjFlMmUzZDFhMzU5ZDg2YzMuLjQ2NWYxN2MzMjI4NTI2OThhMzUzODZiODM2OWQxYTc5ZGE0
ZTQyYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVk
aXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0Lmh0
bWwKQEAgLTkwLDcgKzkwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgICAgIGZ1bmN0
aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCiAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHNvdXJjZUZyYW1lLCAiYWRkQnJl
YWtwb2ludCIsIGJyZWFrcG9pbnRBZGRlZCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRTbmlmZmVyKHNvdXJjZUZyYW1lLCAiX2FkZEJyZWFrcG9pbnREZWNvcmF0aW9uIiwgYnJl
YWtwb2ludEFkZGVkKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldEJyZWFrcG9p
bnQoc291cmNlRnJhbWUsIDIsICIiLCB0cnVlKTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldC1icmVha3BvaW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0LWJyZWFrcG9pbnQuaHRtbAppbmRleCAx
YzE3ZGExOTM1ZmQxZjBhZGY2MTBjYTRhYmNkMmJkY2M4OTU1MmI5Li41ODJiNDQ5ZDNjMjQyM2M3
OTU4YjhkZTFkYzhlMmYyMzA2Y2NmNTkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2V0LWJyZWFrcG9pbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2V0LWJyZWFrcG9pbnQuaHRtbApAQCAtNDAsNyArNDAsNyBAQCB2YXIgdGVz
dCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
U2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuIik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKICAgICAgICAgICAgICAgICBkdW1wQnJl
YWtwb2ludFNpZGViYXJQYW5lKCkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNu
aWZmZXIoY3VycmVudFNvdXJjZUZyYW1lLCAicmVtb3ZlQnJlYWtwb2ludCIsIGJyZWFrcG9pbnRS
ZW1vdmVkKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoY3VycmVu
dFNvdXJjZUZyYW1lLCAiX3JlbW92ZUJyZWFrcG9pbnREZWNvcmF0aW9uIiwgYnJlYWtwb2ludFJl
bW92ZWQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVtb3ZlQnJlYWtwb2ludChj
dXJyZW50U291cmNlRnJhbWUsIDE2KTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1sCmluZGV4IGQxMTYyNDU3MzU3
YTJjOTdkODUyNWE0YTQ2NWVhYzdiYzViYmNjZGYuLmJkMjNiYmUyZTA1YWE5YTk3Nzg2YzQwMTlk
MTNiZTJhYTFiMTVhMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zb3VyY2UtZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c291cmNlLWZyYW1lLmh0bWwKQEAgLTIwLDE0ICsyMCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlw
dCBzb3VyY2Ugd2FzIHNob3duLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
U25pZmZlcihXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSwgImFk
ZEJyZWFrcG9pbnQiLCBkaWRBZGRCcmVha3BvaW50KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90
b3R5cGUsICJfYWRkQnJlYWtwb2ludERlY29yYXRpb24iLCBkaWRBZGRCcmVha3BvaW50KTsKICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldEJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDE3
LCAiIiwgdHJ1ZSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEFk
ZEJyZWFrcG9pbnQobGluZU51bWJlcikKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJyZWFrcG9pbnQgYWRkZWQgdG8gc291cmNlIGZyYW1lIGF0
IGxpbmUgIiArIGxpbmVOdW1iZXIpOwotICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJyZWFrcG9pbnQgYWRkZWQgdG8gc291cmNl
IGZyYW1lIGF0IGxpbmUgIiArIGxpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgIG5leHQoKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSwKIAo=
</data>
<flag name="review"
          id="138567"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>