<?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>78985</bug_id>
          
          <creation_ts>2012-02-18 17:52:11 -0800</creation_ts>
          <short_desc>Web Inspector: Audit rules to recommend unprefixing supported CSS properties</short_desc>
          <delta_ts>2012-02-22 02:42:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>peter</cc>
    
    <cc>pfeldman</cc>
    
    <cc>phiw2</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>559850</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-02-18 17:52:11 -0800</bug_when>
    <thetext>I think it would be useful to have an audit rule that suggests unprefixing CSS properties if
the standard, unprefixed version, is now supported. I could see:

    .rounded { 
        -webkit-border-radius: 5px;
    }

producing a warning like: (wording could use some work)

  CSS: &lt;a&gt;foo.css:85&lt;/a&gt; &quot;-webkit-border-radius&quot; is used, but &quot;border-radius&quot; is supported.

I would expect this to be smart enough to check the entire scope. Since having the prefix&apos;d versions
might still exist in order to support legacy browsers. For example I would not expect a warning for:

  .rounded-with-legacy-support {
      -vender-border-radius: 5px;
      -webkit-border-radius: 5px;
      border-radius: 5px;
  }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560247</commentid>
    <comment_count>1</comment_count>
      <attachid>127823</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-20 08:58:06 -0800</bug_when>
    <thetext>Created attachment 127823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560250</commentid>
    <comment_count>2</comment_count>
      <attachid>127824</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-20 09:04:51 -0800</bug_when>
    <thetext>Created attachment 127824
[PATCH] A better test that covers both prefixed and unprefixed versions present in the same rule</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560776</commentid>
    <comment_count>3</comment_count>
      <attachid>127949</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-21 03:16:52 -0800</bug_when>
    <thetext>Created attachment 127949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560792</commentid>
    <comment_count>4</comment_count>
      <attachid>127949</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-21 03:42:01 -0800</bug_when>
    <thetext>Comment on attachment 127949
Patch

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

&gt; Source/WebCore/inspector/front-end/AuditRules.js:988
&gt; +WebInspector.AuditRules.VendorPrefixedCSSProperties.prototype = {

Although this implementation looks Ok, I think it would make sense to generalize it. I.e. create a base CSS rule that would traverse through all the CSSRules / CSSProperties and collect violations. That way it would be easier to add new CSS rules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560822</commentid>
    <comment_count>5</comment_count>
      <attachid>127956</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-21 05:36:43 -0800</bug_when>
    <thetext>Created attachment 127956
[PATCH] Implement a visitor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560823</commentid>
    <comment_count>6</comment_count>
      <attachid>127956</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-02-21 05:46:04 -0800</bug_when>
    <thetext>Comment on attachment 127956
[PATCH] Implement a visitor

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

&gt; Source/WebCore/inspector/front-end/AuditRules.js:1077
&gt; +    this._webkitPrefix = &quot;-webkit-&quot;;

WebKit aliases &quot;-apple-&quot; and &quot;-khtml-&quot; to &quot;-webkit-&quot; as well, i.e. &quot;-apple-box-sizing&quot; would effectively yield the same effect. Should we warn about these cases as well? Maybe this could be used to discourage usage of -apple- and -khtml- prefixed properties altogether, given that they got removed in -the reverted- r63854.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560833</commentid>
    <comment_count>7</comment_count>
      <attachid>127956</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 06:20:06 -0800</bug_when>
    <thetext>Comment on attachment 127956
[PATCH] Implement a visitor

Attachment 127956 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11556129

New failing tests:
inspector/audits/audits-panel-functional.html
inspector/audits/audits-panel-noimages-functional.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560855</commentid>
    <comment_count>8</comment_count>
      <attachid>127966</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-21 07:07:15 -0800</bug_when>
    <thetext>Created attachment 127966
[PATCH] Fixed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560927</commentid>
    <comment_count>9</comment_count>
      <attachid>127966</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-21 08:53:36 -0800</bug_when>
    <thetext>Comment on attachment 127966
[PATCH] Fixed patch

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

&gt; Source/WebCore/inspector/front-end/AuditRules.js:1109
&gt; +    visitProperty: function(property, result)

You should pass styleSheet and rule here instead of making ancestors cache data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560953</commentid>
    <comment_count>10</comment_count>
      <attachid>127985</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-21 09:30:52 -0800</bug_when>
    <thetext>Created attachment 127985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561788</commentid>
    <comment_count>11</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-22 02:42:35 -0800</bug_when>
    <thetext>Committed r108473: &lt;http://trac.webkit.org/changeset/108473&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127823</attachid>
            <date>2012-02-20 08:58:06 -0800</date>
            <delta_ts>2012-02-20 09:04:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78985-20120220205804.patch</filename>
            <type>text/plain</type>
            <size>11989</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzYWE1MzY5YTMzZmIy
MGFiYjhkNjY3YjM4MzJhMTlmZTFhNWVkYy4uNzNhMGU4Y2Q3YzAwYmUxZDI3ZjBhNWU3ZGU1ZDcx
YmMwNjYxNDBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDEyLTAyLTIwICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQXVkaXQgcnVsZXMgdG8gcmVjb21tZW5kIHVucHJlZml4aW5nIHN1cHBvcnRlZCBDU1Mg
cHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzg5ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcmllcy5QYWdlUGVyZm9ybWFuY2UucHJvdG90eXBlLmluaXRp
YWxpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGll
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1By
b3BlcnRpZXMucHJvdG90eXBlLmRvUnVuLnNoZWV0c0NhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUu
ZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRD
U1NQcm9wZXJ0aWVzLnByb3RvdHlwZS5fY2hlY2tTdHlsZVNoZWV0LnNoZWV0Q2FsbGJhY2spOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0
aWVzLnByb3RvdHlwZS5fY2hlY2tTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
dWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUuX2NoZWNrUnVs
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzOgorCisy
MDEyLTAyLTIwICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogRE9NQXR0ck1vZGlmaWVkIHNob3VsZCBub3QgYmUgZmlyZWQg
aWYgdGhlIGF0dHJpYnV0ZSB2YWx1ZSByZW1haW5zIHRoZSBzYW1lCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTAyNQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0Q2F0ZWdvcmllcy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzCmluZGV4IGFj
OWU1MTgzNTczNWYzOGJiZGRlY2JjMDg5MmI1N2QzODc4ZWUxYjUuLmIzMmI0MThkMGEyYWFkMDgx
MWU5NzljNDdkMzNhYzg1MjhkM2ViNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzCkBAIC00NCw2ICs0NCw3IEBAIFdl
Ykluc3BlY3Rvci5BdWRpdENhdGVnb3JpZXMuUGFnZVBlcmZvcm1hbmNlLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5hZGRSdWxlKG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRD
c3NSdWxlKCksIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGUuU2V2ZXJpdHkuV2FybmluZyk7CiAgICAg
ICAgIHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVs
ZSgpLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLlNldmVyaXR5LlNldmVyZSk7CiAgICAgICAgIHRo
aXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVy
UnVsZSgpLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLlNldmVyaXR5LlNldmVyZSk7CisgICAgICAg
IHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRD
U1NQcm9wZXJ0aWVzKCksIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGUuU2V2ZXJpdHkuV2FybmluZyk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UnVsZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1
ZGl0UnVsZXMuanMKaW5kZXggODQzMGZmYTFlMGFmZWE0ZDU1NTAzNmY2MGYxZjAzNjgzOWIwOTIw
ZC4uOWM2ZmFhM2ViZjUxNTA2MDRhYWY0NTczYjA2YjIzMGFlYmQ4MjVkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwpAQCAtOTc0LDYg
Kzk3NCwxMzMgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVyUnVs
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG8KICAqIEBjb25zdHJ1Y3RvcgogICog
QGV4dGVuZHMge1dlYkluc3BlY3Rvci5BdWRpdFJ1bGV9CiAgKi8KK1dlYkluc3BlY3Rvci5BdWRp
dFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkKK3sKKyAgICBX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlLmNhbGwodGhpcywgInBhZ2UtdmVuZG9ycHJlZml4ZWRjc3Mi
LCAiVXNlIG5vcm1hbCBDU1MgcHJvcGVydHkgbmFtZXMgaW5zdGVhZCBvZiB2ZW5kb3ItcHJlZml4
ZWQgb25lcyIpOworfQorCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENT
U1Byb3BlcnRpZXMuc3VwcG9ydGVkUHJvcGVydGllcyA9IFsKKyAgICAiYmFja2dyb3VuZC1jbGlw
IiwgImJhY2tncm91bmQtb3JpZ2luIiwgImJhY2tncm91bmQtc2l6ZSIsCisgICAgImJvcmRlci1y
YWRpdXMiLCAiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsICJib3JkZXItYm90dG9tLXJpZ2h0
LXJhZGl1cyIsICJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwgImJvcmRlci10b3AtcmlnaHQtcmFk
aXVzIiwKKyAgICAiYm94LXNoYWRvdyIsICJib3gtc2l6aW5nIiwgIm9wYWNpdHkiLCAidGV4dC1z
aGFkb3ciCitdLmtleVNldCgpOworCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVm
aXhlZENTU1Byb3BlcnRpZXMucHJvdG90eXBlID0geworICAgIGRvUnVuOiBmdW5jdGlvbihyZXNv
dXJjZXMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvcikKKyAgICB7CisgICAgICAg
IENTU0FnZW50LmdldEFsbFN0eWxlU2hlZXRzKHNoZWV0c0NhbGxiYWNrLmJpbmQodGhpcykpOwor
CisgICAgICAgIHZhciB2aW9sYXRpb25zID0ge307CisgICAgICAgIGNvbnN0IHdlYmtpdFByZWZp
eCA9ICItd2Via2l0LSI7IAorCisgICAgICAgIGZ1bmN0aW9uIHNoZWV0c0NhbGxiYWNrKGVycm9y
LCBoZWFkZXJzKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwpOworCisgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGhlYWRlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgaGVhZGVy
ID0gaGVhZGVyc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAoaGVhZGVyLmRpc2FibGVkKQorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gRG8gbm90IGNoZWNrIGRpc2FibGVkIHN0eWxl
c2hlZXRzLgorCisgICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tTdHlsZVNoZWV0KGhlYWRlci5z
dHlsZVNoZWV0SWQsIGhlYWRlci5zb3VyY2VVUkwsIHdlYmtpdFByZWZpeCwgdmlvbGF0aW9ucywg
aSA9PT0gaGVhZGVycy5sZW5ndGggLSAxID8gZmluaXNoZWRDYWxsYmFjay5iaW5kKHRoaXMpIDog
bnVsbCwgcHJvZ3Jlc3NNb25pdG9yLCBpID09PSBoZWFkZXJzLmxlbmd0aCAtIDEpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoZWRDYWxsYmFjaygp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBsYXN0UmVzb3VyY2U7CisgICAgICAgICAgICB2
YXIgbGFzdExpbmVOdW1iZXI7CisgICAgICAgICAgICB2YXIgbGFzdFNlbGVjdG9yOworICAgICAg
ICAgICAgdmFyIHJlc291cmNlRW50cnk7CisgICAgICAgICAgICB2YXIgcnVsZUVudHJ5OworICAg
ICAgICAgICAgZm9yICh2YXIga2V5IGluIHZpb2xhdGlvbnMpIHsKKyAgICAgICAgICAgICAgICB2
YXIgc2VnbWVudHMgPSBrZXkuc3BsaXQoIl4iKTsKKyAgICAgICAgICAgICAgICBpZiAoc2VnbWVu
dHMubGVuZ3RoICE9PSAzKSAvLyBTb21ldGhpbmcgaXMgYnJva2VuLgorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB2YXIgcmVzb3VyY2VVUkwgPSBzZWdtZW50
c1swXTsKKyAgICAgICAgICAgICAgICB2YXIgbGluZU51bWJlciA9IHNlZ21lbnRzWzFdID8gcGFy
c2VJbnQoc2VnbWVudHNbMV0sIDEwKSAtIDEgOiB1bmRlZmluZWQ7CisgICAgICAgICAgICAgICAg
dmFyIHNlbGVjdG9yVGV4dCA9IHNlZ21lbnRzWzJdOworCisgICAgICAgICAgICAgICAgaWYgKHJl
c291cmNlVVJMICE9PSBsYXN0UmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdFJl
c291cmNlID0gcmVzb3VyY2VVUkw7CisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlRW50cnkg
PSByZXN1bHQuYWRkQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZShyZXNv
dXJjZVVSTCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGFzdExp
bmVOdW1iZXIgIT09IGxpbmVOdW1iZXIgfHwgc2VsZWN0b3JUZXh0ICE9PSBsYXN0U2VsZWN0b3Ip
IHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOworICAg
ICAgICAgICAgICAgICAgICBsYXN0U2VsZWN0b3IgPSBzZWxlY3RvclRleHQ7CisgICAgICAgICAg
ICAgICAgICAgIHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZShyZXNv
dXJjZVVSTCwgc2VsZWN0b3JUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgYW5jaG9yLnByZWZl
cnJlZFBhbmVsID0gInJlc291cmNlcyI7CisgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lTnVt
YmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yLmxpbmVOdW1iZXIgPSBsaW5lTnVt
YmVyOworICAgICAgICAgICAgICAgICAgICBydWxlRW50cnkgPSByZXNvdXJjZUVudHJ5LmFkZENo
aWxkKGFuY2hvcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdmFyIHJ1
bGVWaW9sYXRpb25zID0gdmlvbGF0aW9uc1trZXldOworICAgICAgICAgICAgICAgIHZhciBydWxl
VmlvbGF0aW9uc0xlbmd0aCA9IHJ1bGVWaW9sYXRpb25zLmxlbmd0aDsKKyAgICAgICAgICAgICAg
ICByZXN1bHQudmlvbGF0aW9uQ291bnQgKz0gcnVsZVZpb2xhdGlvbnNMZW5ndGg7CisgICAgICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlVmlvbGF0aW9uc0xlbmd0aDsgKytpKQor
ICAgICAgICAgICAgICAgICAgICBydWxlRW50cnkuYWRkU25pcHBldChTdHJpbmcuc3ByaW50Zigi
XCIiICsgd2Via2l0UHJlZml4ICsgIiVzXCIgaXMgdXNlZCwgYnV0IFwiJXNcIiBpcyBzdXBwb3J0
ZWQuIiwgcnVsZVZpb2xhdGlvbnNbaV0sIHJ1bGVWaW9sYXRpb25zW2ldKSk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9LAor
CisgICAgX2NoZWNrU3R5bGVTaGVldDogZnVuY3Rpb24oc3R5bGVTaGVldElkLCBzb3VyY2VVUkws
IHByZWZpeCwgdmlvbGF0aW9ucywgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvciwgaXNMYXN0KQor
ICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQoc3R5
bGVTaGVldElkLCBzaGVldENhbGxiYWNrLmJpbmQodGhpcykpOworCisgICAgICAgIGZ1bmN0aW9u
IHNoZWV0Q2FsbGJhY2soc3R5bGVTaGVldCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBy
b2dyZXNzTW9uaXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIGlmICghc3R5bGVTaGVldCkgeworICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykK
KyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVT
aGVldC5ydWxlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1J1bGUo
c3R5bGVTaGVldC5ydWxlc1tpXSwgdmlvbGF0aW9ucywgcHJlZml4KTsKKworICAgICAgICAgICAg
aWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0KKyAg
ICB9LAorCisgICAgX2NoZWNrUnVsZTogZnVuY3Rpb24ocnVsZSwgdmlvbGF0aW9ucywgcHJlZml4
KQorICAgIHsKKyAgICAgICAgdmFyIGtleSA9IChydWxlLnNvdXJjZVVSTCB8fCAiIikgKyAiXiIg
KyAocnVsZS5zb3VyY2VMaW5lIHx8ICIiKSArICJeIiArIHJ1bGUuc2VsZWN0b3JUZXh0OworICAg
ICAgICB2YXIgc3R5bGUgPSBydWxlLnN0eWxlOworICAgICAgICB2YXIgYWxsUHJvcGVydGllcyA9
IHN0eWxlLmFsbFByb3BlcnRpZXM7CisgICAgICAgIHZhciBtZW50aW9uZWRQcm9wZXJ0aWVzID0g
e307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVydGllcy5sZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gYWxsUHJvcGVydGllc1tpXTsKKyAgICAg
ICAgICAgIGlmIChwcm9wZXJ0eS5uYW1lLmluZGV4T2YocHJlZml4KSAhPT0gMCkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHZhciBub3JtYWxQcm9wZXJ0eU5hbWUgPSBw
cm9wZXJ0eS5uYW1lLnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKS50b0xvd2VyQ2FzZSgpOyAvLyBT
dGFydCBqdXN0IGFmdGVyIHRoZSAiLXdlYmtpdC0iIHByZWZpeC4KKyAgICAgICAgICAgIGlmIChX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMuc3VwcG9y
dGVkUHJvcGVydGllc1tub3JtYWxQcm9wZXJ0eU5hbWVdICYmICFtZW50aW9uZWRQcm9wZXJ0aWVz
W25vcm1hbFByb3BlcnR5TmFtZV0pIHsKKyAgICAgICAgICAgICAgICB2YXIgbGl2ZVByb3BlcnR5
ID0gc3R5bGUuZ2V0TGl2ZVByb3BlcnR5KG5vcm1hbFByb3BlcnR5TmFtZSk7CisgICAgICAgICAg
ICAgICAgaWYgKGxpdmVQcm9wZXJ0eSAmJiAhbGl2ZVByb3BlcnR5LnN0eWxlQmFzZWQpCisgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBXZWJDb3JlIGNhbiBwcm92aWRlIG5vcm1hbCB2
ZXJzaW9ucyBvZiBwcmVmaXhlZCBwcm9wZXJ0aWVzIGF1dG9tYXRpY2FsbHksIHNvIGJlIGNhcmVm
dWwgdG8gc2tpcCBvbmx5IG5vcm1hbCBzb3VyY2UtYmFzZWQgcHJvcGVydGllcy4KKyAgICAgICAg
ICAgICAgICBtZW50aW9uZWRQcm9wZXJ0aWVzW25vcm1hbFByb3BlcnR5TmFtZV0gPSB0cnVlOwor
ICAgICAgICAgICAgICAgIGlmICghdmlvbGF0aW9uc1trZXldKQorICAgICAgICAgICAgICAgICAg
ICB2aW9sYXRpb25zW2tleV0gPSBbXTsKKyAgICAgICAgICAgICAgICBpZiAodmlvbGF0aW9uc1tr
ZXldLmluZGV4T2Yobm9ybWFsUHJvcGVydHlOYW1lKSA9PT0gLTEpCisgICAgICAgICAgICAgICAg
ICAgIHZpb2xhdGlvbnNba2V5XS5wdXNoKG5vcm1hbFByb3BlcnR5TmFtZSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRv
clByZWZpeGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZS5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5k
cyB7V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZX0KKyAqLwogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMu
Q29va2llUnVsZUJhc2UgPSBmdW5jdGlvbihpZCwgbmFtZSkKIHsKICAgICBXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlLmNhbGwodGhpcywgaWQsIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzCmluZGV4IGMwYTMxYmY1MjVmZDNm
ZGVlM2Y4YjZiMThkMDhhYmJiNDM0MGFkNjYuLjUwMWRmMTBlYWQ5ZTEwNGVkYzc4YzY3MTBkY2Y0
ZWViYmU3ZWZlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VVdGlscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlVXRpbHMuanMKQEAgLTE5MCw3ICsxOTAsNyBAQCBXZWJJbnNwZWN0b3IuZm9y
bWF0TGlua1RleHQgPSBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIpCiAKIC8qKgogICogQHBhcmFt
IHtzdHJpbmd9IHVybAotICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAqIEBwYXJhbSB7
bnVtYmVyPX0gbGluZU51bWJlcgogICogQHBhcmFtIHtzdHJpbmc9fSBjbGFzc2VzCiAgKiBAcGFy
YW0ge3N0cmluZz19IHRvb2x0aXBUZXh0CiAgKiBAcmV0dXJuIHtFbGVtZW50fQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJi
NDJhY2I0NmU1NjhlMGNiMjZhNmE4ZjU2ZDMxYjYxZGZkNmM2NmEuLjRmNWFhYWRkOTliM2VhMGQ3
YTgyMDBkZmJiYTcxZDVjOTY4Yzg5ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxMi0wMi0y
MCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IEF1ZGl0IHJ1bGVzIHRvIHJlY29tbWVuZCB1bnByZWZpeGluZyBzdXBwb3J0
ZWQgQ1NTIHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlv
bmFsLmh0bWw6CisKKzIwMTItMDItMjAgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9t
aXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBET01BdHRyTW9kaWZpZWQgc2hvdWxk
IG5vdCBiZSBmaXJlZCBpZiB0aGUgYXR0cmlidXRlIHZhbHVlIHJlbWFpbnMgdGhlIHNhbWUKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDI1CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0
aW9uYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMt
cGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKaW5kZXggNGY1ZTI3N2NlZTY4OWFkMjA3YjQz
ZjFhZTdlNmRhNTk3N2IyZTNlZC4uNGJmZDEzMDRjODgwYWM5ZjM3OGJmNDBkMTE3ZDEwZmRmY2Ix
MDdkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFu
ZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1
ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKQEAgLTIzLDE1ICsyMywy
MSBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBkb2N1bWVu
dCBoZWFkIGluIAogICAgICAgYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbAogICAgIFJlbW92
ZSB1bnVzZWQgQ1NTIHJ1bGVzICg0KQotICAgICAxNDFCICgxMDAlKSBvZiBDU1MgaXMgbm90IHVz
ZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAgIElubGluZSBibG9jayAjMTogMjlCICgxMDAl
KSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAxOTNCICgxMDAlKSBvZiBD
U1MgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgIElubGluZSBibG9jayAj
MTogNTNCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAgICAgIC51
bnVzZWQKICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwogICAgICAgOiA0M0IgKDEwMCUpIGlzIG5v
dCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnNvbWUtc3R5bGUKLSAgICAgIElu
bGluZSBibG9jayAjMjogMjZCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdl
LgorICAgICAgSW5saW5lIGJsb2NrICMyOiA1NEIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBj
dXJyZW50IHBhZ2UuCiAgICAgICAgLnZpb2xhdGlvbgogICAgICAgIGF1ZGl0cy1zdHlsZTEuY3Nz
CiAgICAgICA6IDQzQiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAg
ICAgICAuc29tZS1zdHlsZQorICAgIFVzZSBub3JtYWwgQ1NTIHByb3BlcnR5IG5hbWVzIGluc3Rl
YWQgb2YgdmVuZG9yLXByZWZpeGVkIG9uZXMgKDIpCisgICAgICBhdWRpdHMtcGFuZWwtZnVuY3Rp
b25hbC5odG1sCisgICAgICAgLnVudXNlZAorICAgICAgICItd2Via2l0LW9wYWNpdHkiIGlzIHVz
ZWQsIGJ1dCAib3BhY2l0eSIgaXMgc3VwcG9ydGVkLgorICAgICAgIC52aW9sYXRpb24KKyAgICAg
ICAiLXdlYmtpdC1ib3JkZXItcmFkaXVzIiBpcyB1c2VkLCBidXQgImJvcmRlci1yYWRpdXMiIGlz
IHN1cHBvcnRlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9h
dWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0
cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sCmluZGV4IGM1MDVkMDYxNDIxMGMxMWQ2ZThj
NGQyMDVmMzE1MzM3NGE0ZGVmOTcuLmQ0MGZkMTI5YzZiZjQwM2UwZTNkMjJjZTZiMDhjMGU4MjZl
ZjlkMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBh
bmVsLWZ1bmN0aW9uYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1
ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWwKQEAgLTQsNiArNCw3IEBACiA8c3R5bGU+CiAudW51
c2VkIHsKICAgICBjb2xvcjogZ3JlZW47CisgICAgLXdlYmtpdC1vcGFjaXR5OiAxOwogfQogPC9z
dHlsZT4KIDxzY3JpcHQ+CkBAIC00Nyw3ICs0OCw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQog
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgogVGVzdHMgYXVkaXQgcnVsZXMuCiA8c3R5bGU+Ci0u
dmlvbGF0aW9uIHsgY29sb3I6IHJlZDsgfQorLnZpb2xhdGlvbiB7IGNvbG9yOiByZWQ7IC13ZWJr
aXQtYm9yZGVyLXJhZGl1czogM3B4OyB9CiA8L3N0eWxlPgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJyZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3MiIHR5cGU9InRleHQvY3NzIj4KIDxp
bWcgc3JjPSJmb28xLmpwZyI+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127824</attachid>
            <date>2012-02-20 09:04:51 -0800</date>
            <delta_ts>2012-02-21 03:16:45 -0800</delta_ts>
            <desc>[PATCH] A better test that covers both prefixed and unprefixed versions present in the same rule</desc>
            <filename>bug-78985-20120220210449.patch</filename>
            <type>text/plain</type>
            <size>11927</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzYWE1MzY5YTMzZmIy
MGFiYjhkNjY3YjM4MzJhMTlmZTFhNWVkYy4uNzNhMGU4Y2Q3YzAwYmUxZDI3ZjBhNWU3ZGU1ZDcx
YmMwNjYxNDBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDEyLTAyLTIwICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQXVkaXQgcnVsZXMgdG8gcmVjb21tZW5kIHVucHJlZml4aW5nIHN1cHBvcnRlZCBDU1Mg
cHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzg5ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcmllcy5QYWdlUGVyZm9ybWFuY2UucHJvdG90eXBlLmluaXRp
YWxpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGll
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1By
b3BlcnRpZXMucHJvdG90eXBlLmRvUnVuLnNoZWV0c0NhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUu
ZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRD
U1NQcm9wZXJ0aWVzLnByb3RvdHlwZS5fY2hlY2tTdHlsZVNoZWV0LnNoZWV0Q2FsbGJhY2spOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0
aWVzLnByb3RvdHlwZS5fY2hlY2tTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
dWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUuX2NoZWNrUnVs
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzOgorCisy
MDEyLTAyLTIwICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogRE9NQXR0ck1vZGlmaWVkIHNob3VsZCBub3QgYmUgZmlyZWQg
aWYgdGhlIGF0dHJpYnV0ZSB2YWx1ZSByZW1haW5zIHRoZSBzYW1lCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTAyNQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0Q2F0ZWdvcmllcy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzCmluZGV4IGFj
OWU1MTgzNTczNWYzOGJiZGRlY2JjMDg5MmI1N2QzODc4ZWUxYjUuLmIzMmI0MThkMGEyYWFkMDgx
MWU5NzljNDdkMzNhYzg1MjhkM2ViNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzCkBAIC00NCw2ICs0NCw3IEBAIFdl
Ykluc3BlY3Rvci5BdWRpdENhdGVnb3JpZXMuUGFnZVBlcmZvcm1hbmNlLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5hZGRSdWxlKG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRD
c3NSdWxlKCksIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGUuU2V2ZXJpdHkuV2FybmluZyk7CiAgICAg
ICAgIHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVs
ZSgpLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLlNldmVyaXR5LlNldmVyZSk7CiAgICAgICAgIHRo
aXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVy
UnVsZSgpLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLlNldmVyaXR5LlNldmVyZSk7CisgICAgICAg
IHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRD
U1NQcm9wZXJ0aWVzKCksIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGUuU2V2ZXJpdHkuV2FybmluZyk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UnVsZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1
ZGl0UnVsZXMuanMKaW5kZXggODQzMGZmYTFlMGFmZWE0ZDU1NTAzNmY2MGYxZjAzNjgzOWIwOTIw
ZC4uOWM2ZmFhM2ViZjUxNTA2MDRhYWY0NTczYjA2YjIzMGFlYmQ4MjVkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwpAQCAtOTc0LDYg
Kzk3NCwxMzMgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVyUnVs
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG8KICAqIEBjb25zdHJ1Y3RvcgogICog
QGV4dGVuZHMge1dlYkluc3BlY3Rvci5BdWRpdFJ1bGV9CiAgKi8KK1dlYkluc3BlY3Rvci5BdWRp
dFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkKK3sKKyAgICBX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlLmNhbGwodGhpcywgInBhZ2UtdmVuZG9ycHJlZml4ZWRjc3Mi
LCAiVXNlIG5vcm1hbCBDU1MgcHJvcGVydHkgbmFtZXMgaW5zdGVhZCBvZiB2ZW5kb3ItcHJlZml4
ZWQgb25lcyIpOworfQorCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENT
U1Byb3BlcnRpZXMuc3VwcG9ydGVkUHJvcGVydGllcyA9IFsKKyAgICAiYmFja2dyb3VuZC1jbGlw
IiwgImJhY2tncm91bmQtb3JpZ2luIiwgImJhY2tncm91bmQtc2l6ZSIsCisgICAgImJvcmRlci1y
YWRpdXMiLCAiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsICJib3JkZXItYm90dG9tLXJpZ2h0
LXJhZGl1cyIsICJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwgImJvcmRlci10b3AtcmlnaHQtcmFk
aXVzIiwKKyAgICAiYm94LXNoYWRvdyIsICJib3gtc2l6aW5nIiwgIm9wYWNpdHkiLCAidGV4dC1z
aGFkb3ciCitdLmtleVNldCgpOworCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVm
aXhlZENTU1Byb3BlcnRpZXMucHJvdG90eXBlID0geworICAgIGRvUnVuOiBmdW5jdGlvbihyZXNv
dXJjZXMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvcikKKyAgICB7CisgICAgICAg
IENTU0FnZW50LmdldEFsbFN0eWxlU2hlZXRzKHNoZWV0c0NhbGxiYWNrLmJpbmQodGhpcykpOwor
CisgICAgICAgIHZhciB2aW9sYXRpb25zID0ge307CisgICAgICAgIGNvbnN0IHdlYmtpdFByZWZp
eCA9ICItd2Via2l0LSI7IAorCisgICAgICAgIGZ1bmN0aW9uIHNoZWV0c0NhbGxiYWNrKGVycm9y
LCBoZWFkZXJzKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwpOworCisgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGhlYWRlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgaGVhZGVy
ID0gaGVhZGVyc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAoaGVhZGVyLmRpc2FibGVkKQorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gRG8gbm90IGNoZWNrIGRpc2FibGVkIHN0eWxl
c2hlZXRzLgorCisgICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tTdHlsZVNoZWV0KGhlYWRlci5z
dHlsZVNoZWV0SWQsIGhlYWRlci5zb3VyY2VVUkwsIHdlYmtpdFByZWZpeCwgdmlvbGF0aW9ucywg
aSA9PT0gaGVhZGVycy5sZW5ndGggLSAxID8gZmluaXNoZWRDYWxsYmFjay5iaW5kKHRoaXMpIDog
bnVsbCwgcHJvZ3Jlc3NNb25pdG9yLCBpID09PSBoZWFkZXJzLmxlbmd0aCAtIDEpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoZWRDYWxsYmFjaygp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBsYXN0UmVzb3VyY2U7CisgICAgICAgICAgICB2
YXIgbGFzdExpbmVOdW1iZXI7CisgICAgICAgICAgICB2YXIgbGFzdFNlbGVjdG9yOworICAgICAg
ICAgICAgdmFyIHJlc291cmNlRW50cnk7CisgICAgICAgICAgICB2YXIgcnVsZUVudHJ5OworICAg
ICAgICAgICAgZm9yICh2YXIga2V5IGluIHZpb2xhdGlvbnMpIHsKKyAgICAgICAgICAgICAgICB2
YXIgc2VnbWVudHMgPSBrZXkuc3BsaXQoIl4iKTsKKyAgICAgICAgICAgICAgICBpZiAoc2VnbWVu
dHMubGVuZ3RoICE9PSAzKSAvLyBTb21ldGhpbmcgaXMgYnJva2VuLgorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB2YXIgcmVzb3VyY2VVUkwgPSBzZWdtZW50
c1swXTsKKyAgICAgICAgICAgICAgICB2YXIgbGluZU51bWJlciA9IHNlZ21lbnRzWzFdID8gcGFy
c2VJbnQoc2VnbWVudHNbMV0sIDEwKSAtIDEgOiB1bmRlZmluZWQ7CisgICAgICAgICAgICAgICAg
dmFyIHNlbGVjdG9yVGV4dCA9IHNlZ21lbnRzWzJdOworCisgICAgICAgICAgICAgICAgaWYgKHJl
c291cmNlVVJMICE9PSBsYXN0UmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdFJl
c291cmNlID0gcmVzb3VyY2VVUkw7CisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlRW50cnkg
PSByZXN1bHQuYWRkQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZShyZXNv
dXJjZVVSTCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGFzdExp
bmVOdW1iZXIgIT09IGxpbmVOdW1iZXIgfHwgc2VsZWN0b3JUZXh0ICE9PSBsYXN0U2VsZWN0b3Ip
IHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdExpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOworICAg
ICAgICAgICAgICAgICAgICBsYXN0U2VsZWN0b3IgPSBzZWxlY3RvclRleHQ7CisgICAgICAgICAg
ICAgICAgICAgIHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZShyZXNv
dXJjZVVSTCwgc2VsZWN0b3JUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgYW5jaG9yLnByZWZl
cnJlZFBhbmVsID0gInJlc291cmNlcyI7CisgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lTnVt
YmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yLmxpbmVOdW1iZXIgPSBsaW5lTnVt
YmVyOworICAgICAgICAgICAgICAgICAgICBydWxlRW50cnkgPSByZXNvdXJjZUVudHJ5LmFkZENo
aWxkKGFuY2hvcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdmFyIHJ1
bGVWaW9sYXRpb25zID0gdmlvbGF0aW9uc1trZXldOworICAgICAgICAgICAgICAgIHZhciBydWxl
VmlvbGF0aW9uc0xlbmd0aCA9IHJ1bGVWaW9sYXRpb25zLmxlbmd0aDsKKyAgICAgICAgICAgICAg
ICByZXN1bHQudmlvbGF0aW9uQ291bnQgKz0gcnVsZVZpb2xhdGlvbnNMZW5ndGg7CisgICAgICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlVmlvbGF0aW9uc0xlbmd0aDsgKytpKQor
ICAgICAgICAgICAgICAgICAgICBydWxlRW50cnkuYWRkU25pcHBldChTdHJpbmcuc3ByaW50Zigi
XCIiICsgd2Via2l0UHJlZml4ICsgIiVzXCIgaXMgdXNlZCwgYnV0IFwiJXNcIiBpcyBzdXBwb3J0
ZWQuIiwgcnVsZVZpb2xhdGlvbnNbaV0sIHJ1bGVWaW9sYXRpb25zW2ldKSk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9LAor
CisgICAgX2NoZWNrU3R5bGVTaGVldDogZnVuY3Rpb24oc3R5bGVTaGVldElkLCBzb3VyY2VVUkws
IHByZWZpeCwgdmlvbGF0aW9ucywgY2FsbGJhY2ssIHByb2dyZXNzTW9uaXRvciwgaXNMYXN0KQor
ICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQoc3R5
bGVTaGVldElkLCBzaGVldENhbGxiYWNrLmJpbmQodGhpcykpOworCisgICAgICAgIGZ1bmN0aW9u
IHNoZWV0Q2FsbGJhY2soc3R5bGVTaGVldCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBy
b2dyZXNzTW9uaXRvci5jYW5jZWxlZCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIGlmICghc3R5bGVTaGVldCkgeworICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykK
KyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVT
aGVldC5ydWxlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1J1bGUo
c3R5bGVTaGVldC5ydWxlc1tpXSwgdmlvbGF0aW9ucywgcHJlZml4KTsKKworICAgICAgICAgICAg
aWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0KKyAg
ICB9LAorCisgICAgX2NoZWNrUnVsZTogZnVuY3Rpb24ocnVsZSwgdmlvbGF0aW9ucywgcHJlZml4
KQorICAgIHsKKyAgICAgICAgdmFyIGtleSA9IChydWxlLnNvdXJjZVVSTCB8fCAiIikgKyAiXiIg
KyAocnVsZS5zb3VyY2VMaW5lIHx8ICIiKSArICJeIiArIHJ1bGUuc2VsZWN0b3JUZXh0OworICAg
ICAgICB2YXIgc3R5bGUgPSBydWxlLnN0eWxlOworICAgICAgICB2YXIgYWxsUHJvcGVydGllcyA9
IHN0eWxlLmFsbFByb3BlcnRpZXM7CisgICAgICAgIHZhciBtZW50aW9uZWRQcm9wZXJ0aWVzID0g
e307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVydGllcy5sZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gYWxsUHJvcGVydGllc1tpXTsKKyAgICAg
ICAgICAgIGlmIChwcm9wZXJ0eS5uYW1lLmluZGV4T2YocHJlZml4KSAhPT0gMCkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHZhciBub3JtYWxQcm9wZXJ0eU5hbWUgPSBw
cm9wZXJ0eS5uYW1lLnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKS50b0xvd2VyQ2FzZSgpOyAvLyBT
dGFydCBqdXN0IGFmdGVyIHRoZSAiLXdlYmtpdC0iIHByZWZpeC4KKyAgICAgICAgICAgIGlmIChX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMuc3VwcG9y
dGVkUHJvcGVydGllc1tub3JtYWxQcm9wZXJ0eU5hbWVdICYmICFtZW50aW9uZWRQcm9wZXJ0aWVz
W25vcm1hbFByb3BlcnR5TmFtZV0pIHsKKyAgICAgICAgICAgICAgICB2YXIgbGl2ZVByb3BlcnR5
ID0gc3R5bGUuZ2V0TGl2ZVByb3BlcnR5KG5vcm1hbFByb3BlcnR5TmFtZSk7CisgICAgICAgICAg
ICAgICAgaWYgKGxpdmVQcm9wZXJ0eSAmJiAhbGl2ZVByb3BlcnR5LnN0eWxlQmFzZWQpCisgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBXZWJDb3JlIGNhbiBwcm92aWRlIG5vcm1hbCB2
ZXJzaW9ucyBvZiBwcmVmaXhlZCBwcm9wZXJ0aWVzIGF1dG9tYXRpY2FsbHksIHNvIGJlIGNhcmVm
dWwgdG8gc2tpcCBvbmx5IG5vcm1hbCBzb3VyY2UtYmFzZWQgcHJvcGVydGllcy4KKyAgICAgICAg
ICAgICAgICBtZW50aW9uZWRQcm9wZXJ0aWVzW25vcm1hbFByb3BlcnR5TmFtZV0gPSB0cnVlOwor
ICAgICAgICAgICAgICAgIGlmICghdmlvbGF0aW9uc1trZXldKQorICAgICAgICAgICAgICAgICAg
ICB2aW9sYXRpb25zW2tleV0gPSBbXTsKKyAgICAgICAgICAgICAgICBpZiAodmlvbGF0aW9uc1tr
ZXldLmluZGV4T2Yobm9ybWFsUHJvcGVydHlOYW1lKSA9PT0gLTEpCisgICAgICAgICAgICAgICAg
ICAgIHZpb2xhdGlvbnNba2V5XS5wdXNoKG5vcm1hbFByb3BlcnR5TmFtZSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRv
clByZWZpeGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZS5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5k
cyB7V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZX0KKyAqLwogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMu
Q29va2llUnVsZUJhc2UgPSBmdW5jdGlvbihpZCwgbmFtZSkKIHsKICAgICBXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlLmNhbGwodGhpcywgaWQsIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzCmluZGV4IGMwYTMxYmY1MjVmZDNm
ZGVlM2Y4YjZiMThkMDhhYmJiNDM0MGFkNjYuLjUwMWRmMTBlYWQ5ZTEwNGVkYzc4YzY3MTBkY2Y0
ZWViYmU3ZWZlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VVdGlscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlVXRpbHMuanMKQEAgLTE5MCw3ICsxOTAsNyBAQCBXZWJJbnNwZWN0b3IuZm9y
bWF0TGlua1RleHQgPSBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIpCiAKIC8qKgogICogQHBhcmFt
IHtzdHJpbmd9IHVybAotICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAqIEBwYXJhbSB7
bnVtYmVyPX0gbGluZU51bWJlcgogICogQHBhcmFtIHtzdHJpbmc9fSBjbGFzc2VzCiAgKiBAcGFy
YW0ge3N0cmluZz19IHRvb2x0aXBUZXh0CiAgKiBAcmV0dXJuIHtFbGVtZW50fQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJi
NDJhY2I0NmU1NjhlMGNiMjZhNmE4ZjU2ZDMxYjYxZGZkNmM2NmEuLjRmNWFhYWRkOTliM2VhMGQ3
YTgyMDBkZmJiYTcxZDVjOTY4Yzg5ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxMi0wMi0y
MCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IEF1ZGl0IHJ1bGVzIHRvIHJlY29tbWVuZCB1bnByZWZpeGluZyBzdXBwb3J0
ZWQgQ1NTIHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlv
bmFsLmh0bWw6CisKKzIwMTItMDItMjAgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9t
aXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBET01BdHRyTW9kaWZpZWQgc2hvdWxk
IG5vdCBiZSBmaXJlZCBpZiB0aGUgYXR0cmlidXRlIHZhbHVlIHJlbWFpbnMgdGhlIHNhbWUKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDI1CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0
aW9uYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMt
cGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKaW5kZXggNGY1ZTI3N2NlZTY4OWFkMjA3YjQz
ZjFhZTdlNmRhNTk3N2IyZTNlZC4uNDc5Y2ViN2YwZTYyOThmZWFlYWMxNWZmMDkyYmE5NzA2Y2Fl
YmYyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFu
ZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1
ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKQEAgLTIzLDE1ICsyMywx
OSBAQCBQYWdlIHJlbG9hZGVkLgogICAgICAgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBkb2N1bWVu
dCBoZWFkIGluIAogICAgICAgYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbAogICAgIFJlbW92
ZSB1bnVzZWQgQ1NTIHJ1bGVzICg0KQotICAgICAxNDFCICgxMDAlKSBvZiBDU1MgaXMgbm90IHVz
ZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAgIElubGluZSBibG9jayAjMTogMjlCICgxMDAl
KSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAyMDlCICgxMDAlKSBvZiBD
U1MgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgIElubGluZSBibG9jayAj
MTogNjlCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAgICAgIC51
bnVzZWQKICAgICAgICBhdWRpdHMtc3R5bGUxLmNzcwogICAgICAgOiA0M0IgKDEwMCUpIGlzIG5v
dCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnNvbWUtc3R5bGUKLSAgICAgIElu
bGluZSBibG9jayAjMjogMjZCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdl
LgorICAgICAgSW5saW5lIGJsb2NrICMyOiA1NEIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBj
dXJyZW50IHBhZ2UuCiAgICAgICAgLnZpb2xhdGlvbgogICAgICAgIGF1ZGl0cy1zdHlsZTEuY3Nz
CiAgICAgICA6IDQzQiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAg
ICAgICAuc29tZS1zdHlsZQorICAgIFVzZSBub3JtYWwgQ1NTIHByb3BlcnR5IG5hbWVzIGluc3Rl
YWQgb2YgdmVuZG9yLXByZWZpeGVkIG9uZXMgKDEpCisgICAgICBhdWRpdHMtcGFuZWwtZnVuY3Rp
b25hbC5odG1sCisgICAgICAgLnZpb2xhdGlvbgorICAgICAgICItd2Via2l0LWJvcmRlci1yYWRp
dXMiIGlzIHVzZWQsIGJ1dCAiYm9yZGVyLXJhZGl1cyIgaXMgc3VwcG9ydGVkLgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFs
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlv
bmFsLmh0bWwKaW5kZXggYzUwNWQwNjE0MjEwYzExZDZlOGM0ZDIwNWYzMTUzMzc0YTRkZWY5Ny4u
NDhlNWMzZDM3MTQ5NzNmOTVhMWQwZjVjOGZiZDk0YTY1ZWVjMmNiMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwu
aHRtbApAQCAtNCw2ICs0LDggQEAKIDxzdHlsZT4KIC51bnVzZWQgewogICAgIGNvbG9yOiBncmVl
bjsKKyAgICAtd2Via2l0LW9wYWNpdHk6IDE7CisgICAgb3BhY2l0eTogMTsKIH0KIDwvc3R5bGU+
CiA8c2NyaXB0PgpAQCAtNDcsNyArNDksNyBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIDxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KIFRlc3RzIGF1ZGl0IHJ1bGVzLgogPHN0eWxlPgotLnZpb2xh
dGlvbiB7IGNvbG9yOiByZWQ7IH0KKy52aW9sYXRpb24geyBjb2xvcjogcmVkOyAtd2Via2l0LWJv
cmRlci1yYWRpdXM6IDNweDsgfQogPC9zdHlsZT4KIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0icmVzb3VyY2VzL2F1ZGl0cy1zdHlsZTEuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiA8aW1nIHNy
Yz0iZm9vMS5qcGciPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127949</attachid>
            <date>2012-02-21 03:16:52 -0800</date>
            <delta_ts>2012-02-21 05:36:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78985-20120221151650.patch</filename>
            <type>text/plain</type>
            <size>11772</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRjYThhMWVmOTI1MTUz
YTNmN2MxNjhhOTMyYmRmODA4NTc5OGQzYy4uMWZiMzM2OWYzYzMwNDlhNmU2N2Q4ODkyN2VjOGI3
NDRmYTA0NzQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAyLTIwICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQXVkaXQgcnVsZXMgdG8gcmVjb21tZW5kIHVucHJlZml4aW5nIHN1cHBvcnRlZCBDU1Mg
cHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzg5ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcmllcy5QYWdlUGVyZm9ybWFuY2UucHJvdG90eXBlLmluaXRp
YWxpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGll
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1By
b3BlcnRpZXMucHJvdG90eXBlLmRvUnVuLnNoZWV0c0NhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUu
ZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRD
U1NQcm9wZXJ0aWVzLnByb3RvdHlwZS5fY2hlY2tTdHlsZVNoZWV0LnNoZWV0Q2FsbGJhY2spOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0
aWVzLnByb3RvdHlwZS5fY2hlY2tTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
dWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUuX2NoZWNrUnVs
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzOgorCiAy
MDEyLTAyLTIxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtWOF0gV2ViIEluc3BlY3Rvcjogc2ltcGxpZnkgd29ya2VyIGRlYnVnZ2VyIGltcGxlbWVu
dGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1
ZGl0Q2F0ZWdvcmllcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRDYXRlZ29yaWVzLmpzCmluZGV4IGFjOWU1MTgzNTczNWYzOGJiZGRlY2JjMDg5MmI1N2QzODc4
ZWUxYjUuLmIzMmI0MThkMGEyYWFkMDgxMWU5NzljNDdkMzNhYzg1MjhkM2ViNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVz
LmpzCkBAIC00NCw2ICs0NCw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdENhdGVnb3JpZXMuUGFnZVBl
cmZvcm1hbmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5hZGRSdWxlKG5ldyBXZWJJbnNw
ZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlKCksIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGUu
U2V2ZXJpdHkuV2FybmluZyk7CiAgICAgICAgIHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZSgpLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLlNldmVy
aXR5LlNldmVyZSk7CiAgICAgICAgIHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0
UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVyUnVsZSgpLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLlNl
dmVyaXR5LlNldmVyZSk7CisgICAgICAgIHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1
ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0aWVzKCksIFdlYkluc3BlY3Rvci5BdWRp
dFJ1bGUuU2V2ZXJpdHkuV2FybmluZyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKaW5kZXggODQzMGZmYTFlMGFmZWE0
ZDU1NTAzNmY2MGYxZjAzNjgzOWIwOTIwZC4uYjExZTI3NDY5ZWViZmYxM2Y0OWJhMmE3MTQ1NzRk
Y2VlZGQ1YWUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QXVkaXRSdWxlcy5qcwpAQCAtOTc0LDYgKzk3NCwxMzMgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZXMuU3R5bGVzU2NyaXB0c09yZGVyUnVsZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG8KICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5BdWRpdFJ1bGV9
CiAgKi8KK1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGll
cyA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLmNhbGwodGhpcywg
InBhZ2UtdmVuZG9ycHJlZml4ZWRjc3MiLCAiVXNlIG5vcm1hbCBDU1MgcHJvcGVydHkgbmFtZXMg
aW5zdGVhZCBvZiB2ZW5kb3ItcHJlZml4ZWQgb25lcyIpOworfQorCitXZWJJbnNwZWN0b3IuQXVk
aXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMuc3VwcG9ydGVkUHJvcGVydGllcyA9
IFsKKyAgICAiYmFja2dyb3VuZC1jbGlwIiwgImJhY2tncm91bmQtb3JpZ2luIiwgImJhY2tncm91
bmQtc2l6ZSIsCisgICAgImJvcmRlci1yYWRpdXMiLCAiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1
cyIsICJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyIsICJib3JkZXItdG9wLWxlZnQtcmFkaXVz
IiwgImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwKKyAgICAiYm94LXNoYWRvdyIsICJib3gtc2l6
aW5nIiwgIm9wYWNpdHkiLCAidGV4dC1zaGFkb3ciCitdLmtleVNldCgpOworCitXZWJJbnNwZWN0
b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMucHJvdG90eXBlID0gewor
ICAgIGRvUnVuOiBmdW5jdGlvbihyZXNvdXJjZXMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dyZXNz
TW9uaXRvcikKKyAgICB7CisgICAgICAgIENTU0FnZW50LmdldEFsbFN0eWxlU2hlZXRzKHNoZWV0
c0NhbGxiYWNrLmJpbmQodGhpcykpOworCisgICAgICAgIHZhciB2aW9sYXRpb25zID0ge307Cisg
ICAgICAgIGNvbnN0IHdlYmtpdFByZWZpeCA9ICItd2Via2l0LSI7CisKKyAgICAgICAgZnVuY3Rp
b24gc2hlZXRzQ2FsbGJhY2soZXJyb3IsIGhlYWRlcnMpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCk7CisKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGVhZGVycy5sZW5ndGg7ICsraSkgeworICAg
ICAgICAgICAgICAgIHZhciBoZWFkZXIgPSBoZWFkZXJzW2ldOworICAgICAgICAgICAgICAgIGlm
IChoZWFkZXIuZGlzYWJsZWQpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBEbyBu
b3QgY2hlY2sgZGlzYWJsZWQgc3R5bGVzaGVldHMuCisKKyAgICAgICAgICAgICAgICB0aGlzLl9j
aGVja1N0eWxlU2hlZXQoaGVhZGVyLnN0eWxlU2hlZXRJZCwgaGVhZGVyLnNvdXJjZVVSTCwgd2Vi
a2l0UHJlZml4LCB2aW9sYXRpb25zLCBpID09PSBoZWFkZXJzLmxlbmd0aCAtIDEgPyBmaW5pc2hl
ZENhbGxiYWNrLmJpbmQodGhpcykgOiBudWxsLCBwcm9ncmVzc01vbml0b3IsIGkgPT09IGhlYWRl
cnMubGVuZ3RoIC0gMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hlZENhbGxiYWNrKCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGxhc3RS
ZXNvdXJjZTsKKyAgICAgICAgICAgIHZhciBsYXN0TGluZU51bWJlcjsKKyAgICAgICAgICAgIHZh
ciBsYXN0U2VsZWN0b3I7CisgICAgICAgICAgICB2YXIgcmVzb3VyY2VFbnRyeTsKKyAgICAgICAg
ICAgIHZhciBydWxlRW50cnk7CisgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gdmlvbGF0aW9u
cykgeworICAgICAgICAgICAgICAgIHZhciBzZWdtZW50cyA9IGtleS5zcGxpdCgiXiIpOworICAg
ICAgICAgICAgICAgIGlmIChzZWdtZW50cy5sZW5ndGggIT09IDMpIC8vIFNvbWV0aGluZyBpcyBi
cm9rZW4uCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHZh
ciByZXNvdXJjZVVSTCA9IHNlZ21lbnRzWzBdOworICAgICAgICAgICAgICAgIHZhciBsaW5lTnVt
YmVyID0gc2VnbWVudHNbMV0gPyBwYXJzZUludChzZWdtZW50c1sxXSwgMTApIC0gMSA6IHVuZGVm
aW5lZDsKKyAgICAgICAgICAgICAgICB2YXIgc2VsZWN0b3JUZXh0ID0gc2VnbWVudHNbMl07CisK
KyAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2VVUkwgIT09IGxhc3RSZXNvdXJjZSkgeworICAg
ICAgICAgICAgICAgICAgICBsYXN0UmVzb3VyY2UgPSByZXNvdXJjZVVSTDsKKyAgICAgICAgICAg
ICAgICAgICAgcmVzb3VyY2VFbnRyeSA9IHJlc3VsdC5hZGRDaGlsZChXZWJJbnNwZWN0b3IubGlu
a2lmeVJlc291cmNlQXNOb2RlKHJlc291cmNlVVJMKSk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGlmIChsYXN0TGluZU51bWJlciAhPT0gbGluZU51bWJlciB8fCBzZWxlY3Rv
clRleHQgIT09IGxhc3RTZWxlY3RvcikgeworICAgICAgICAgICAgICAgICAgICBsYXN0TGluZU51
bWJlciA9IGxpbmVOdW1iZXI7CisgICAgICAgICAgICAgICAgICAgIGxhc3RTZWxlY3RvciA9IHNl
bGVjdG9yVGV4dDsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rv
ci5saW5raWZ5VVJMQXNOb2RlKHJlc291cmNlVVJMLCBzZWxlY3RvclRleHQpOworICAgICAgICAg
ICAgICAgICAgICBhbmNob3IucHJlZmVycmVkUGFuZWwgPSAicmVzb3VyY2VzIjsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCFpc05hTihsaW5lTnVtYmVyKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFuY2hvci5saW5lTnVtYmVyID0gbGluZU51bWJlciArIDE7CisgICAgICAgICAgICAgICAg
ICAgIHJ1bGVFbnRyeSA9IHJlc291cmNlRW50cnkuYWRkQ2hpbGQoYW5jaG9yKTsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB2YXIgcnVsZVZpb2xhdGlvbnMgPSB2aW9sYXRp
b25zW2tleV07CisgICAgICAgICAgICAgICAgdmFyIHJ1bGVWaW9sYXRpb25zTGVuZ3RoID0gcnVs
ZVZpb2xhdGlvbnMubGVuZ3RoOworICAgICAgICAgICAgICAgIHJlc3VsdC52aW9sYXRpb25Db3Vu
dCArPSBydWxlVmlvbGF0aW9uc0xlbmd0aDsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJ1bGVWaW9sYXRpb25zTGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHJ1
bGVFbnRyeS5hZGRTbmlwcGV0KFN0cmluZy5zcHJpbnRmKCJcIiIgKyB3ZWJraXRQcmVmaXggKyAi
JXNcIiBpcyB1c2VkLCBidXQgXCIlc1wiIGlzIHN1cHBvcnRlZC4iLCBydWxlVmlvbGF0aW9uc1tp
XSwgcnVsZVZpb2xhdGlvbnNbaV0pKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2Fs
bGJhY2socmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfY2hlY2tTdHlsZVNoZWV0
OiBmdW5jdGlvbihzdHlsZVNoZWV0SWQsIHNvdXJjZVVSTCwgcHJlZml4LCB2aW9sYXRpb25zLCBj
YWxsYmFjaywgcHJvZ3Jlc3NNb25pdG9yLCBpc0xhc3QpCisgICAgeworICAgICAgICBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVTaGVldC5jcmVhdGVGb3JJZChzdHlsZVNoZWV0SWQsIHNoZWV0Q2FsbGJh
Y2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgZnVuY3Rpb24gc2hlZXRDYWxsYmFjayhzdHlsZVNo
ZWV0KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb25pdG9yLmNhbmNlbGVk
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCFzdHlsZVNoZWV0
KSB7CisgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgICAgICBj
YWxsYmFjaygpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZVNoZWV0LnJ1bGVzLmxlbmd0aDsgKytp
KQorICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrUnVsZShzdHlsZVNoZWV0LnJ1bGVzW2ldLCB2
aW9sYXRpb25zLCBwcmVmaXgpOworCisgICAgICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAg
ICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfY2hlY2tSdWxl
OiBmdW5jdGlvbihydWxlLCB2aW9sYXRpb25zLCBwcmVmaXgpCisgICAgeworICAgICAgICB2YXIg
a2V5ID0gKHJ1bGUuc291cmNlVVJMIHx8ICIiKSArICJeIiArIChydWxlLnNvdXJjZUxpbmUgfHwg
IiIpICsgIl4iICsgcnVsZS5zZWxlY3RvclRleHQ7CisgICAgICAgIHZhciBzdHlsZSA9IHJ1bGUu
c3R5bGU7CisgICAgICAgIHZhciBhbGxQcm9wZXJ0aWVzID0gc3R5bGUuYWxsUHJvcGVydGllczsK
KyAgICAgICAgdmFyIG1lbnRpb25lZFByb3BlcnRpZXMgPSB7fTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBhbGxQcm9wZXJ0aWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIg
cHJvcGVydHkgPSBhbGxQcm9wZXJ0aWVzW2ldOworICAgICAgICAgICAgaWYgKHByb3BlcnR5Lm5h
bWUuaW5kZXhPZihwcmVmaXgpICE9PSAwKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgdmFyIG5vcm1hbFByb3BlcnR5TmFtZSA9IHByb3BlcnR5Lm5hbWUuc3Vic3RyaW5n
KHByZWZpeC5sZW5ndGgpLnRvTG93ZXJDYXNlKCk7IC8vIFN0YXJ0IGp1c3QgYWZ0ZXIgdGhlICIt
d2Via2l0LSIgcHJlZml4LgorICAgICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVz
LlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcy5zdXBwb3J0ZWRQcm9wZXJ0aWVzW25vcm1hbFBy
b3BlcnR5TmFtZV0gJiYgIW1lbnRpb25lZFByb3BlcnRpZXNbbm9ybWFsUHJvcGVydHlOYW1lXSkg
eworICAgICAgICAgICAgICAgIHZhciBsaXZlUHJvcGVydHkgPSBzdHlsZS5nZXRMaXZlUHJvcGVy
dHkobm9ybWFsUHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAobGl2ZVByb3BlcnR5
ICYmICFsaXZlUHJvcGVydHkuc3R5bGVCYXNlZCkKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7IC8vIFdlYkNvcmUgY2FuIHByb3ZpZGUgbm9ybWFsIHZlcnNpb25zIG9mIHByZWZpeGVkIHBy
b3BlcnRpZXMgYXV0b21hdGljYWxseSwgc28gYmUgY2FyZWZ1bCB0byBza2lwIG9ubHkgbm9ybWFs
IHNvdXJjZS1iYXNlZCBwcm9wZXJ0aWVzLgorICAgICAgICAgICAgICAgIG1lbnRpb25lZFByb3Bl
cnRpZXNbbm9ybWFsUHJvcGVydHlOYW1lXSA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKCF2
aW9sYXRpb25zW2tleV0pCisgICAgICAgICAgICAgICAgICAgIHZpb2xhdGlvbnNba2V5XSA9IFtd
OworICAgICAgICAgICAgICAgIGlmICh2aW9sYXRpb25zW2tleV0uaW5kZXhPZihub3JtYWxQcm9w
ZXJ0eU5hbWUpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdmlvbGF0aW9uc1trZXldLnB1
c2gobm9ybWFsUHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
K30KKworV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0aWVz
LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLnByb3RvdHlwZTsK
KworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuQXVkaXRS
dWxlfQorICovCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Db29raWVSdWxlQmFzZSA9IGZ1bmN0
aW9uKGlkLCBuYW1lKQogewogICAgIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGUuY2FsbCh0aGlzLCBp
ZCwgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlVXRpbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlVXRpbHMuanMKaW5kZXggYzBhMzFiZjUyNWZkM2ZkZWUzZjhiNmIxOGQwOGFiYmI0MzQw
YWQ2Ni4uNTAxZGYxMGVhZDllMTA0ZWRjNzhjNjcxMGRjZjRlZWJiZTdlZmVlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcwpA
QCAtMTkwLDcgKzE5MCw3IEBAIFdlYkluc3BlY3Rvci5mb3JtYXRMaW5rVGV4dCA9IGZ1bmN0aW9u
KHVybCwgbGluZU51bWJlcikKIAogLyoqCiAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCi0gKiBAcGFy
YW0ge251bWJlcn0gbGluZU51bWJlcgorICogQHBhcmFtIHtudW1iZXI9fSBsaW5lTnVtYmVyCiAg
KiBAcGFyYW0ge3N0cmluZz19IGNsYXNzZXMKICAqIEBwYXJhbSB7c3RyaW5nPX0gdG9vbHRpcFRl
eHQKICAqIEByZXR1cm4ge0VsZW1lbnR9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmZkNGUzZDNiNzBkOGJiMmQ3ZmI2ODEz
OGY2N2VhNGE3NmFhMWRkNy4uYTEzNmMyYTlhYjg2MDNlY2MyMWZjNDlhMzAwNGVkNzdhN2JkOTUy
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIwICBBbGV4YW5kZXIgUGF2bG92ICA8
YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQXVkaXQgcnVs
ZXMgdG8gcmVjb21tZW5kIHVucHJlZml4aW5nIHN1cHBvcnRlZCBDU1MgcHJvcGVydGllcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5ODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9h
dWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbDoKKwogMjAxMi0wMi0y
MSAgWXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21p
dW1dIFVucmV2aWV3ZWQsIHVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucyB0byByZWZsZWN0IHJlY2Vu
dCBmbGFraW5lc3MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1
ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CmluZGV4IDRmNWUy
NzdjZWU2ODlhZDIwN2I0M2YxYWU3ZTZkYTU5NzdiMmUzZWQuLjQ3OWNlYjdmMGU2Mjk4ZmVhZWFj
MTVmZjA5MmJhOTcwNmNhZWJmMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9h
dWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0
CkBAIC0yMywxNSArMjMsMTkgQEAgUGFnZSByZWxvYWRlZC4KICAgICAgIHNob3VsZCBiZSBtb3Zl
ZCB0byB0aGUgZG9jdW1lbnQgaGVhZCBpbiAKICAgICAgIGF1ZGl0cy1wYW5lbC1mdW5jdGlvbmFs
Lmh0bWwKICAgICBSZW1vdmUgdW51c2VkIENTUyBydWxlcyAoNCkKLSAgICAgMTQxQiAoMTAwJSkg
b2YgQ1NTIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCi0gICAgICBJbmxpbmUgYmxv
Y2sgIzE6IDI5QiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAg
MjA5QiAoMTAwJSkgb2YgQ1NTIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAg
ICBJbmxpbmUgYmxvY2sgIzE6IDY5QiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQg
cGFnZS4KICAgICAgICAudW51c2VkCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKICAgICAgIDog
NDNCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAgICAgIC5zb21l
LXN0eWxlCi0gICAgICBJbmxpbmUgYmxvY2sgIzI6IDI2QiAoMTAwJSkgaXMgbm90IHVzZWQgYnkg
dGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgIElubGluZSBibG9jayAjMjogNTRCICgxMDAlKSBpcyBu
b3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAgICAgIC52aW9sYXRpb24KICAgICAgICBh
dWRpdHMtc3R5bGUxLmNzcwogICAgICAgOiA0M0IgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBj
dXJyZW50IHBhZ2UuCiAgICAgICAgLnNvbWUtc3R5bGUKKyAgICBVc2Ugbm9ybWFsIENTUyBwcm9w
ZXJ0eSBuYW1lcyBpbnN0ZWFkIG9mIHZlbmRvci1wcmVmaXhlZCBvbmVzICgxKQorICAgICAgYXVk
aXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbAorICAgICAgIC52aW9sYXRpb24KKyAgICAgICAiLXdl
YmtpdC1ib3JkZXItcmFkaXVzIiBpcyB1c2VkLCBidXQgImJvcmRlci1yYWRpdXMiIGlzIHN1cHBv
cnRlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMt
cGFuZWwtZnVuY3Rpb25hbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRp
dHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sCmluZGV4IGM1MDVkMDYxNDIxMGMxMWQ2ZThjNGQyMDVm
MzE1MzM3NGE0ZGVmOTcuLjQ4ZTVjM2QzNzE0OTczZjk1YTFkMGY1YzhmYmQ5NGE2NWVlYzJjYjIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1
bmN0aW9uYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1w
YW5lbC1mdW5jdGlvbmFsLmh0bWwKQEAgLTQsNiArNCw4IEBACiA8c3R5bGU+CiAudW51c2VkIHsK
ICAgICBjb2xvcjogZ3JlZW47CisgICAgLXdlYmtpdC1vcGFjaXR5OiAxOworICAgIG9wYWNpdHk6
IDE7CiB9CiA8L3N0eWxlPgogPHNjcmlwdD4KQEAgLTQ3LDcgKzQ5LDcgQEAgdmFyIHRlc3QgPSBm
dW5jdGlvbigpCiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CiBUZXN0cyBhdWRpdCBydWxlcy4K
IDxzdHlsZT4KLS52aW9sYXRpb24geyBjb2xvcjogcmVkOyB9CisudmlvbGF0aW9uIHsgY29sb3I6
IHJlZDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7IH0KIDwvc3R5bGU+CiA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9hdWRpdHMtc3R5bGUxLmNzcyIgdHlwZT0idGV4
dC9jc3MiPgogPGltZyBzcmM9ImZvbzEuanBnIj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127956</attachid>
            <date>2012-02-21 05:36:43 -0800</date>
            <delta_ts>2012-02-21 07:07:06 -0800</delta_ts>
            <desc>[PATCH] Implement a visitor</desc>
            <filename>bug-78985-20120221173641.patch</filename>
            <type>text/plain</type>
            <size>13057</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJmYTYwYjE5NWU3YjUy
YjQ4NDJhYTg3ZmM1MWViMzIxM2U0ZGRmOS4uZjI3NTJhNThkOWE0NGFkOGUzM2Y2NGRhNzA2NWUz
NTRlN2RmNzQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTAyLTIxICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQXVkaXQgcnVsZXMgdG8gcmVjb21tZW5kIHVucHJlZml4aW5nIHN1cHBvcnRlZCBDU1Mg
cHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzg5ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcmllcy5QYWdlUGVyZm9ybWFuY2UucHJvdG90eXBlLmluaXRp
YWxpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS5kb1J1bi5zaGVldHND
YWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5w
cm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVs
ZUJhc2UucHJvdG90eXBlLl92aXNpdFN0eWxlU2hlZXQuc2hlZXRDYWxsYmFjayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5wcm90b3R5cGUuX3Zpc2l0U3R5
bGVTaGVldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5w
cm90b3R5cGUuX3Zpc2l0UnVsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5D
U1NSdWxlQmFzZS5wcm90b3R5cGUud2lsbFZpc2l0U3R5bGVTaGVldHMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2UucHJvdG90eXBlLmRpZFZpc2l0U3R5bGVT
aGVldHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2UucHJv
dG90eXBlLnZpc2l0U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxl
cy5DU1NSdWxlQmFzZS5wcm90b3R5cGUudmlzaXRSdWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS52aXNpdFByb3BlcnR5KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3Bl
cnRpZXMucHJvdG90eXBlLmRpZFZpc2l0U3R5bGVTaGVldHMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0aWVzLnByb3RvdHlwZS52aXNp
dFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJl
Zml4ZWRDU1NQcm9wZXJ0aWVzLnByb3RvdHlwZS52aXNpdFJ1bGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0aWVzLnByb3RvdHlwZS52
aXNpdFByb3BlcnR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvb2tpZVJ1
bGVCYXNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvb2tpZVJ1bGVCYXNl
LnByb3RvdHlwZS5kb1J1bi5yZXN1bHRDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlcy5Db29raWVSdWxlQmFzZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ29va2llUnVsZUJhc2UucHJvdG90eXBlLm1hcFJlc291cmNl
Q29va2llcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpz
OgorCisyMDEyLTAyLTIxICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+
CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1N0eWxlc10gUnVsZSBzb3VyY2UgVVJMIHRvb2x0
aXAgc2hvdWxkIHNob3cgbGluZSBudW1iZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc5MDg3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdENhdGVnb3JpZXMuanMKaW5kZXggYWM5ZTUxODM1NzM1ZjM4
YmJkZGVjYmMwODkyYjU3ZDM4NzhlZTFiNS4uYjMyYjQxOGQwYTJhYWQwODExZTk3OWM0N2QzM2Fj
ODUyOGQzZWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BdWRpdENhdGVnb3JpZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9BdWRpdENhdGVnb3JpZXMuanMKQEAgLTQ0LDYgKzQ0LDcgQEAgV2ViSW5zcGVjdG9yLkF1
ZGl0Q2F0ZWdvcmllcy5QYWdlUGVyZm9ybWFuY2UucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
LmFkZFJ1bGUobmV3IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUoKSwgV2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZS5TZXZlcml0eS5XYXJuaW5nKTsKICAgICAgICAgdGhpcy5hZGRS
dWxlKG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Dc3NJbkhlYWRSdWxlKCksIFdlYkluc3Bl
Y3Rvci5BdWRpdFJ1bGUuU2V2ZXJpdHkuU2V2ZXJlKTsKICAgICAgICAgdGhpcy5hZGRSdWxlKG5l
dyBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5TdHlsZXNTY3JpcHRzT3JkZXJSdWxlKCksIFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGUuU2V2ZXJpdHkuU2V2ZXJlKTsKKyAgICAgICAgdGhpcy5hZGRSdWxl
KG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMo
KSwgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZS5TZXZlcml0eS5XYXJuaW5nKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxl
cy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwpp
bmRleCA4NDMwZmZhMWUwYWZlYTRkNTU1MDM2ZjYwZjFmMDM2ODM5YjA5MjBkLi41ZTBhMGJlNjQ5
NjgwYzgwZDBiYTdiNzM1NDBjNTAxZTY0YTYyMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCkBAIC05NzQsNiArOTc0LDE3MiBAQCBX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5TdHlsZXNTY3JpcHRzT3JkZXJSdWxlLnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0bwogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZX0KICAqLworV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVs
ZUJhc2UgPSBmdW5jdGlvbihpZCwgbmFtZSkKK3sKKyAgICBXZWJJbnNwZWN0b3IuQXVkaXRSdWxl
LmNhbGwodGhpcywgaWQsIG5hbWUpOworfQorCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NS
dWxlQmFzZS5wcm90b3R5cGUgPSB7CisgICAgZG9SdW46IGZ1bmN0aW9uKHJlc291cmNlcywgcmVz
dWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3NNb25pdG9yKQorICAgIHsKKyAgICAgICAgQ1NTQWdlbnQu
Z2V0QWxsU3R5bGVTaGVldHMoc2hlZXRzQ2FsbGJhY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAg
ZnVuY3Rpb24gc2hlZXRzQ2FsbGJhY2soZXJyb3IsIGhlYWRlcnMpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCk7
CisKKyAgICAgICAgICAgIHRoaXMud2lsbFZpc2l0U3R5bGVTaGVldHMoaGVhZGVycy5sZW5ndGgs
IHJlc3VsdCk7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhlYWRlcnMubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgaGVhZGVyID0gaGVhZGVyc1tpXTsKKyAgICAg
ICAgICAgICAgICBpZiAoaGVhZGVyLmRpc2FibGVkKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsgLy8gRG8gbm90IGNoZWNrIGRpc2FibGVkIHN0eWxlc2hlZXRzLgorCisgICAgICAgICAg
ICAgICAgdGhpcy5fdmlzaXRTdHlsZVNoZWV0KGhlYWRlci5zdHlsZVNoZWV0SWQsIGkgPT09IGhl
YWRlcnMubGVuZ3RoIC0gMSA/IGZpbmlzaGVkQ2FsbGJhY2suYmluZCh0aGlzKSA6IG51bGwsIHJl
c3VsdCwgcHJvZ3Jlc3NNb25pdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGZpbmlzaGVkQ2FsbGJhY2soKQorICAgICAgICB7CisgICAgICAgICAgICB0
aGlzLmRpZFZpc2l0U3R5bGVTaGVldHMocmVzdWx0KTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHJl
c3VsdCk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX3Zpc2l0U3R5bGVTaGVldDogZnVuY3Rp
b24oc3R5bGVTaGVldElkLCBjYWxsYmFjaywgcmVzdWx0LCBwcm9ncmVzc01vbml0b3IpCisgICAg
eworICAgICAgICBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5jcmVhdGVGb3JJZChzdHlsZVNo
ZWV0SWQsIHNoZWV0Q2FsbGJhY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgZnVuY3Rpb24gc2hl
ZXRDYWxsYmFjayhzdHlsZVNoZWV0KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocHJvZ3Jl
c3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgaWYgKCFzdHlsZVNoZWV0KSB7CisgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAg
ICAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy52aXNpdFN0eWxlU2hlZXQoc3R5bGVTaGVl
dCwgcmVzdWx0KTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZVNoZWV0
LnJ1bGVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHRoaXMuX3Zpc2l0UnVsZShzdHls
ZVNoZWV0LnJ1bGVzW2ldLCByZXN1bHQpOworCisgICAgICAgICAgICBpZiAoY2FsbGJhY2spCisg
ICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfdmlz
aXRSdWxlOiBmdW5jdGlvbihydWxlLCByZXN1bHQpCisgICAgeworICAgICAgICB0aGlzLnZpc2l0
UnVsZShydWxlLCByZXN1bHQpOworICAgICAgICB2YXIgYWxsUHJvcGVydGllcyA9IHJ1bGUuYWxs
UHJvcGVydGllczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxQcm9wZXJ0aWVzLmxl
bmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy52aXNpdFByb3BlcnR5KGFsbFByb3BlcnRpZXNb
aV0sIHJlc3VsdCk7CisgICAgfSwKKworICAgIHdpbGxWaXNpdFN0eWxlU2hlZXRzOiBmdW5jdGlv
bihzdHlsZVNoZWV0Q291bnQsIHJlc3VsdCkKKyAgICB7CisgICAgICAgIC8vIFN1YmNsYXNzZXMg
Y2FuIGltcGxlbWVudC4KKyAgICB9LAorCisgICAgZGlkVmlzaXRTdHlsZVNoZWV0czogZnVuY3Rp
b24ocmVzdWx0KQorICAgIHsKKyAgICAgICAgLy8gU3ViY2xhc3NlcyBjYW4gaW1wbGVtZW50Lgor
ICAgIH0sCisKKyAgICB2aXNpdFN0eWxlU2hlZXQ6IGZ1bmN0aW9uKHN0eWxlU2hlZXQsIHJlc3Vs
dCkKKyAgICB7CisgICAgICAgIC8vIFN1YmNsYXNzZXMgY2FuIGltcGxlbWVudC4KKyAgICB9LAor
CisgICAgdmlzaXRSdWxlOiBmdW5jdGlvbihydWxlLCByZXN1bHQpCisgICAgeworICAgICAgICAv
LyBTdWJjbGFzc2VzIGNhbiBpbXBsZW1lbnQuCisgICAgfSwKKworICAgIHZpc2l0UHJvcGVydHk6
IGZ1bmN0aW9uKHByb3BlcnR5LCByZXN1bHQpCisgICAgeworICAgICAgICAvLyBTdWJjbGFzc2Vz
IGNhbiBpbXBsZW1lbnQuCisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NS
dWxlQmFzZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZS5wcm90
b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2V9CisgKi8KK1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZl
bmRvclByZWZpeGVkQ1NTUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0
b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5jYWxsKHRoaXMsICJwYWdlLXZlbmRvcnByZWZpeGVk
Y3NzIiwgIlVzZSBub3JtYWwgQ1NTIHByb3BlcnR5IG5hbWVzIGluc3RlYWQgb2YgdmVuZG9yLXBy
ZWZpeGVkIG9uZXMiKTsKKyAgICB0aGlzLl93ZWJraXRQcmVmaXggPSAiLXdlYmtpdC0iOworfQor
CitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMuc3Vw
cG9ydGVkUHJvcGVydGllcyA9IFsKKyAgICAiYmFja2dyb3VuZC1jbGlwIiwgImJhY2tncm91bmQt
b3JpZ2luIiwgImJhY2tncm91bmQtc2l6ZSIsCisgICAgImJvcmRlci1yYWRpdXMiLCAiYm9yZGVy
LWJvdHRvbS1sZWZ0LXJhZGl1cyIsICJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyIsICJib3Jk
ZXItdG9wLWxlZnQtcmFkaXVzIiwgImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwKKyAgICAiYm94
LXNoYWRvdyIsICJib3gtc2l6aW5nIiwgIm9wYWNpdHkiLCAidGV4dC1zaGFkb3ciCitdLmtleVNl
dCgpOworCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRp
ZXMucHJvdG90eXBlID0geworICAgIGRpZFZpc2l0U3R5bGVTaGVldHM6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50U3R5bGVTaGVldDsKKyAgICAgICAgZGVs
ZXRlIHRoaXMuX3N0eWxlU2hlZXRSZXN1bHQ7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50
UnVsZTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3J1bGVSZXN1bHQ7CisgICAgICAgIGRlbGV0ZSB0
aGlzLl9tZW50aW9uZWRQcm9wZXJ0aWVzOworICAgIH0sCisKKyAgICB2aXNpdFN0eWxlU2hlZXQ6
IGZ1bmN0aW9uKHN0eWxlU2hlZXQpCisgICAgeworICAgICAgICB0aGlzLl9jdXJyZW50U3R5bGVT
aGVldCA9IHN0eWxlU2hlZXQ7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9zdHlsZVNoZWV0UmVzdWx0
OworICAgIH0sCisKKyAgICB2aXNpdFJ1bGU6IGZ1bmN0aW9uKHJ1bGUpCisgICAgeworICAgICAg
ICB0aGlzLl9jdXJyZW50UnVsZSA9IHJ1bGU7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9ydWxlUmVz
dWx0OworICAgICAgICB0aGlzLl9tZW50aW9uZWRQcm9wZXJ0aWVzID0ge307CisgICAgfSwKKwor
ICAgIHZpc2l0UHJvcGVydHk6IGZ1bmN0aW9uKHByb3BlcnR5LCByZXN1bHQpCisgICAgeworICAg
ICAgICB2YXIgcnVsZSA9IHRoaXMuX2N1cnJlbnRSdWxlOworICAgICAgICB2YXIgc3R5bGUgPSBy
dWxlLnN0eWxlOworICAgICAgICB2YXIgYWxsUHJvcGVydGllcyA9IHN0eWxlLmFsbFByb3BlcnRp
ZXM7CisKKyAgICAgICAgaWYgKHByb3BlcnR5Lm5hbWUuaW5kZXhPZih0aGlzLl93ZWJraXRQcmVm
aXgpICE9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgbm9ybWFsUHJvcGVy
dHlOYW1lID0gcHJvcGVydHkubmFtZS5zdWJzdHJpbmcodGhpcy5fd2Via2l0UHJlZml4Lmxlbmd0
aCkudG9Mb3dlckNhc2UoKTsgLy8gU3RhcnQganVzdCBhZnRlciB0aGUgIi13ZWJraXQtIiBwcmVm
aXguCisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENT
U1Byb3BlcnRpZXMuc3VwcG9ydGVkUHJvcGVydGllc1tub3JtYWxQcm9wZXJ0eU5hbWVdICYmICF0
aGlzLl9tZW50aW9uZWRQcm9wZXJ0aWVzW25vcm1hbFByb3BlcnR5TmFtZV0pIHsKKyAgICAgICAg
ICAgIHZhciBsaXZlUHJvcGVydHkgPSBzdHlsZS5nZXRMaXZlUHJvcGVydHkobm9ybWFsUHJvcGVy
dHlOYW1lKTsKKyAgICAgICAgICAgIGlmIChsaXZlUHJvcGVydHkgJiYgIWxpdmVQcm9wZXJ0eS5z
dHlsZUJhc2VkKQorICAgICAgICAgICAgICAgIHJldHVybjsgLy8gV2ViQ29yZSBjYW4gcHJvdmlk
ZSBub3JtYWwgdmVyc2lvbnMgb2YgcHJlZml4ZWQgcHJvcGVydGllcyBhdXRvbWF0aWNhbGx5LCBz
byBiZSBjYXJlZnVsIHRvIHNraXAgb25seSBub3JtYWwgc291cmNlLWJhc2VkIHByb3BlcnRpZXMu
CisgICAgICAgICAgICB0aGlzLl9tZW50aW9uZWRQcm9wZXJ0aWVzW25vcm1hbFByb3BlcnR5TmFt
ZV0gPSB0cnVlOworICAgICAgICAgICAgaWYgKCF0aGlzLl9zdHlsZVNoZWV0UmVzdWx0KQorICAg
ICAgICAgICAgICAgIHRoaXMuX3N0eWxlU2hlZXRSZXN1bHQgPSByZXN1bHQuYWRkQ2hpbGQocnVs
ZS5zb3VyY2VVUkwgPyBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHJ1bGUuc291
cmNlVVJMKSA6ICI8dW5rbm93bj4iKTsKKyAgICAgICAgICAgIGlmICghdGhpcy5fcnVsZVJlc3Vs
dCkgeworICAgICAgICAgICAgICAgIHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVS
TEFzTm9kZShydWxlLnNvdXJjZVVSTCwgcnVsZS5zZWxlY3RvclRleHQpOworICAgICAgICAgICAg
ICAgIGFuY2hvci5wcmVmZXJyZWRQYW5lbCA9ICJyZXNvdXJjZXMiOworICAgICAgICAgICAgICAg
IGFuY2hvci5saW5lTnVtYmVyID0gcnVsZS5zb3VyY2VMaW5lICsgMTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9ydWxlUmVzdWx0ID0gdGhpcy5fc3R5bGVTaGVldFJlc3VsdC5hZGRDaGlsZChhbmNo
b3IpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytyZXN1bHQudmlvbGF0aW9uQ291bnQ7
CisgICAgICAgICAgICB0aGlzLl9ydWxlUmVzdWx0LmFkZFNuaXBwZXQoU3RyaW5nLnNwcmludGYo
IlwiIiArIHRoaXMuX3dlYmtpdFByZWZpeCArICIlc1wiIGlzIHVzZWQsIGJ1dCBcIiVzXCIgaXMg
c3VwcG9ydGVkLiIsIG5vcm1hbFByb3BlcnR5TmFtZSwgbm9ybWFsUHJvcGVydHlOYW1lKSk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZp
eGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkF1ZGl0
UnVsZS5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZX0KKyAqLwogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ29va2ll
UnVsZUJhc2UgPSBmdW5jdGlvbihpZCwgbmFtZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuQXVkaXRS
dWxlLmNhbGwodGhpcywgaWQsIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzCmluZGV4IGMwYTMxYmY1MjVmZDNmZGVlM2Y4
YjZiMThkMDhhYmJiNDM0MGFkNjYuLjUwMWRmMTBlYWQ5ZTEwNGVkYzc4YzY3MTBkY2Y0ZWViYmU3
ZWZlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VVdGlscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlVXRpbHMuanMKQEAgLTE5MCw3ICsxOTAsNyBAQCBXZWJJbnNwZWN0b3IuZm9ybWF0TGlu
a1RleHQgPSBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIpCiAKIC8qKgogICogQHBhcmFtIHtzdHJp
bmd9IHVybAotICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAqIEBwYXJhbSB7bnVtYmVy
PX0gbGluZU51bWJlcgogICogQHBhcmFtIHtzdHJpbmc9fSBjbGFzc2VzCiAgKiBAcGFyYW0ge3N0
cmluZz19IHRvb2x0aXBUZXh0CiAgKiBAcmV0dXJuIHtFbGVtZW50fQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ2NmYzMjY1
MWY5MzY5NTBlM2FlNTAyZTBkZDk0YzRmODQwNDI1MWEuLjM1MjNjMWM5ZTIxZDc0YzA5YWNiOTlk
NTVjNTg3YWY1MThlMjMyMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0yMSAgQWxl
eGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEF1ZGl0IHJ1bGVzIHRvIHJlY29tbWVuZCB1bnByZWZpeGluZyBzdXBwb3J0ZWQgQ1NT
IHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc4OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0
bWw6CisKIDIwMTItMDItMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHU3RyZWFtZXJdIG1lZGlhL1czQyBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5j
dGlvbmFsLWV4cGVjdGVkLnR4dAppbmRleCA0ZjVlMjc3Y2VlNjg5YWQyMDdiNDNmMWFlN2U2ZGE1
OTc3YjJlM2VkLi40NzljZWI3ZjBlNjI5OGZlYWVhYzE1ZmYwOTJiYTk3MDZjYWViZjIxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlv
bmFsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0
cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dApAQCAtMjMsMTUgKzIzLDE5IEBAIFBhZ2Ug
cmVsb2FkZWQuCiAgICAgICBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIGRvY3VtZW50IGhlYWQgaW4g
CiAgICAgICBhdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sCiAgICAgUmVtb3ZlIHVudXNlZCBD
U1MgcnVsZXMgKDQpCi0gICAgIDE0MUIgKDEwMCUpIG9mIENTUyBpcyBub3QgdXNlZCBieSB0aGUg
Y3VycmVudCBwYWdlLgotICAgICAgSW5saW5lIGJsb2NrICMxOiAyOUIgKDEwMCUpIGlzIG5vdCB1
c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgIDIwOUIgKDEwMCUpIG9mIENTUyBpcyBub3Qg
dXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAgSW5saW5lIGJsb2NrICMxOiA2OUIgKDEw
MCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnVudXNlZAogICAg
ICAgIGF1ZGl0cy1zdHlsZTEuY3NzCiAgICAgICA6IDQzQiAoMTAwJSkgaXMgbm90IHVzZWQgYnkg
dGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAuc29tZS1zdHlsZQotICAgICAgSW5saW5lIGJsb2Nr
ICMyOiAyNkIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgICBJ
bmxpbmUgYmxvY2sgIzI6IDU0QiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFn
ZS4KICAgICAgICAudmlvbGF0aW9uCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKICAgICAgIDog
NDNCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAgICAgIC5zb21l
LXN0eWxlCisgICAgVXNlIG5vcm1hbCBDU1MgcHJvcGVydHkgbmFtZXMgaW5zdGVhZCBvZiB2ZW5k
b3ItcHJlZml4ZWQgb25lcyAoMSkKKyAgICAgIGF1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWwK
KyAgICAgICAudmlvbGF0aW9uCisgICAgICAgIi13ZWJraXQtYm9yZGVyLXJhZGl1cyIgaXMgdXNl
ZCwgYnV0ICJib3JkZXItcmFkaXVzIiBpcyBzdXBwb3J0ZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbApp
bmRleCBjNTA1ZDA2MTQyMTBjMTFkNmU4YzRkMjA1ZjMxNTMzNzRhNGRlZjk3Li40OGU1YzNkMzcx
NDk3M2Y5NWExZDBmNWM4ZmJkOTRhNjVlZWMyY2IyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sCkBAIC00
LDYgKzQsOCBAQAogPHN0eWxlPgogLnVudXNlZCB7CiAgICAgY29sb3I6IGdyZWVuOworICAgIC13
ZWJraXQtb3BhY2l0eTogMTsKKyAgICBvcGFjaXR5OiAxOwogfQogPC9zdHlsZT4KIDxzY3JpcHQ+
CkBAIC00Nyw3ICs0OSw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgogVGVzdHMgYXVkaXQgcnVsZXMuCiA8c3R5bGU+Ci0udmlvbGF0aW9uIHsgY29s
b3I6IHJlZDsgfQorLnZpb2xhdGlvbiB7IGNvbG9yOiByZWQ7IC13ZWJraXQtYm9yZGVyLXJhZGl1
czogM3B4OyB9CiA8L3N0eWxlPgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJj
ZXMvYXVkaXRzLXN0eWxlMS5jc3MiIHR5cGU9InRleHQvY3NzIj4KIDxpbWcgc3JjPSJmb28xLmpw
ZyI+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127966</attachid>
            <date>2012-02-21 07:07:15 -0800</date>
            <delta_ts>2012-02-21 09:30:43 -0800</delta_ts>
            <desc>[PATCH] Fixed patch</desc>
            <filename>bug-78985-20120221190712.patch</filename>
            <type>text/plain</type>
            <size>13072</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJmYTYwYjE5NWU3YjUy
YjQ4NDJhYTg3ZmM1MWViMzIxM2U0ZGRmOS4uZjI3NTJhNThkOWE0NGFkOGUzM2Y2NGRhNzA2NWUz
NTRlN2RmNzQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTAyLTIxICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQXVkaXQgcnVsZXMgdG8gcmVjb21tZW5kIHVucHJlZml4aW5nIHN1cHBvcnRlZCBDU1Mg
cHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzg5ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcmllcy5QYWdlUGVyZm9ybWFuY2UucHJvdG90eXBlLmluaXRp
YWxpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS5kb1J1bi5zaGVldHND
YWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5w
cm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVs
ZUJhc2UucHJvdG90eXBlLl92aXNpdFN0eWxlU2hlZXQuc2hlZXRDYWxsYmFjayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5wcm90b3R5cGUuX3Zpc2l0U3R5
bGVTaGVldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5w
cm90b3R5cGUuX3Zpc2l0UnVsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5D
U1NSdWxlQmFzZS5wcm90b3R5cGUud2lsbFZpc2l0U3R5bGVTaGVldHMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2UucHJvdG90eXBlLmRpZFZpc2l0U3R5bGVT
aGVldHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2UucHJv
dG90eXBlLnZpc2l0U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxl
cy5DU1NSdWxlQmFzZS5wcm90b3R5cGUudmlzaXRSdWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS52aXNpdFByb3BlcnR5KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3Bl
cnRpZXMucHJvdG90eXBlLmRpZFZpc2l0U3R5bGVTaGVldHMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0aWVzLnByb3RvdHlwZS52aXNp
dFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJl
Zml4ZWRDU1NQcm9wZXJ0aWVzLnByb3RvdHlwZS52aXNpdFJ1bGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0aWVzLnByb3RvdHlwZS52
aXNpdFByb3BlcnR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvb2tpZVJ1
bGVCYXNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvb2tpZVJ1bGVCYXNl
LnByb3RvdHlwZS5kb1J1bi5yZXN1bHRDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlcy5Db29raWVSdWxlQmFzZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ29va2llUnVsZUJhc2UucHJvdG90eXBlLm1hcFJlc291cmNl
Q29va2llcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpz
OgorCisyMDEyLTAyLTIxICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+
CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1N0eWxlc10gUnVsZSBzb3VyY2UgVVJMIHRvb2x0
aXAgc2hvdWxkIHNob3cgbGluZSBudW1iZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc5MDg3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdENhdGVnb3JpZXMuanMKaW5kZXggYWM5ZTUxODM1NzM1ZjM4
YmJkZGVjYmMwODkyYjU3ZDM4NzhlZTFiNS4uYjMyYjQxOGQwYTJhYWQwODExZTk3OWM0N2QzM2Fj
ODUyOGQzZWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BdWRpdENhdGVnb3JpZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9BdWRpdENhdGVnb3JpZXMuanMKQEAgLTQ0LDYgKzQ0LDcgQEAgV2ViSW5zcGVjdG9yLkF1
ZGl0Q2F0ZWdvcmllcy5QYWdlUGVyZm9ybWFuY2UucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
LmFkZFJ1bGUobmV3IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUoKSwgV2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZS5TZXZlcml0eS5XYXJuaW5nKTsKICAgICAgICAgdGhpcy5hZGRS
dWxlKG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Dc3NJbkhlYWRSdWxlKCksIFdlYkluc3Bl
Y3Rvci5BdWRpdFJ1bGUuU2V2ZXJpdHkuU2V2ZXJlKTsKICAgICAgICAgdGhpcy5hZGRSdWxlKG5l
dyBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5TdHlsZXNTY3JpcHRzT3JkZXJSdWxlKCksIFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGUuU2V2ZXJpdHkuU2V2ZXJlKTsKKyAgICAgICAgdGhpcy5hZGRSdWxl
KG5ldyBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMo
KSwgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZS5TZXZlcml0eS5XYXJuaW5nKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxl
cy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwpp
bmRleCA4NDMwZmZhMWUwYWZlYTRkNTU1MDM2ZjYwZjFmMDM2ODM5YjA5MjBkLi43ODNhODAwZjUx
MzNmMGMzY2E1YmM2NWJjNjI1MGQ2ODcyYWMyZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCkBAIC05NzQsNiArOTc0LDE3MiBAQCBX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5TdHlsZXNTY3JpcHRzT3JkZXJSdWxlLnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0bwogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLkF1ZGl0UnVsZX0KICAqLworV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVs
ZUJhc2UgPSBmdW5jdGlvbihpZCwgbmFtZSkKK3sKKyAgICBXZWJJbnNwZWN0b3IuQXVkaXRSdWxl
LmNhbGwodGhpcywgaWQsIG5hbWUpOworfQorCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NS
dWxlQmFzZS5wcm90b3R5cGUgPSB7CisgICAgZG9SdW46IGZ1bmN0aW9uKHJlc291cmNlcywgcmVz
dWx0LCBjYWxsYmFjaywgcHJvZ3Jlc3NNb25pdG9yKQorICAgIHsKKyAgICAgICAgQ1NTQWdlbnQu
Z2V0QWxsU3R5bGVTaGVldHMoc2hlZXRzQ2FsbGJhY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAg
ZnVuY3Rpb24gc2hlZXRzQ2FsbGJhY2soZXJyb3IsIGhlYWRlcnMpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCk7
CisKKyAgICAgICAgICAgIHRoaXMud2lsbFZpc2l0U3R5bGVTaGVldHMoaGVhZGVycy5sZW5ndGgs
IHJlc3VsdCk7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhlYWRlcnMubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgaGVhZGVyID0gaGVhZGVyc1tpXTsKKyAgICAg
ICAgICAgICAgICBpZiAoaGVhZGVyLmRpc2FibGVkKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsgLy8gRG8gbm90IGNoZWNrIGRpc2FibGVkIHN0eWxlc2hlZXRzLgorCisgICAgICAgICAg
ICAgICAgdGhpcy5fdmlzaXRTdHlsZVNoZWV0KGhlYWRlci5zdHlsZVNoZWV0SWQsIGkgPT09IGhl
YWRlcnMubGVuZ3RoIC0gMSA/IGZpbmlzaGVkQ2FsbGJhY2suYmluZCh0aGlzKSA6IG51bGwsIHJl
c3VsdCwgcHJvZ3Jlc3NNb25pdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGZpbmlzaGVkQ2FsbGJhY2soKQorICAgICAgICB7CisgICAgICAgICAgICB0
aGlzLmRpZFZpc2l0U3R5bGVTaGVldHMocmVzdWx0KTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHJl
c3VsdCk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX3Zpc2l0U3R5bGVTaGVldDogZnVuY3Rp
b24oc3R5bGVTaGVldElkLCBjYWxsYmFjaywgcmVzdWx0LCBwcm9ncmVzc01vbml0b3IpCisgICAg
eworICAgICAgICBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5jcmVhdGVGb3JJZChzdHlsZVNo
ZWV0SWQsIHNoZWV0Q2FsbGJhY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgZnVuY3Rpb24gc2hl
ZXRDYWxsYmFjayhzdHlsZVNoZWV0KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocHJvZ3Jl
c3NNb25pdG9yLmNhbmNlbGVkKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgaWYgKCFzdHlsZVNoZWV0KSB7CisgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAg
ICAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy52aXNpdFN0eWxlU2hlZXQoc3R5bGVTaGVl
dCwgcmVzdWx0KTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZVNoZWV0
LnJ1bGVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHRoaXMuX3Zpc2l0UnVsZShzdHls
ZVNoZWV0LnJ1bGVzW2ldLCByZXN1bHQpOworCisgICAgICAgICAgICBpZiAoY2FsbGJhY2spCisg
ICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfdmlz
aXRSdWxlOiBmdW5jdGlvbihydWxlLCByZXN1bHQpCisgICAgeworICAgICAgICB0aGlzLnZpc2l0
UnVsZShydWxlLCByZXN1bHQpOworICAgICAgICB2YXIgYWxsUHJvcGVydGllcyA9IHJ1bGUuc3R5
bGUuYWxsUHJvcGVydGllczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxQcm9wZXJ0
aWVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy52aXNpdFByb3BlcnR5KGFsbFByb3Bl
cnRpZXNbaV0sIHJlc3VsdCk7CisgICAgfSwKKworICAgIHdpbGxWaXNpdFN0eWxlU2hlZXRzOiBm
dW5jdGlvbihzdHlsZVNoZWV0Q291bnQsIHJlc3VsdCkKKyAgICB7CisgICAgICAgIC8vIFN1YmNs
YXNzZXMgY2FuIGltcGxlbWVudC4KKyAgICB9LAorCisgICAgZGlkVmlzaXRTdHlsZVNoZWV0czog
ZnVuY3Rpb24ocmVzdWx0KQorICAgIHsKKyAgICAgICAgLy8gU3ViY2xhc3NlcyBjYW4gaW1wbGVt
ZW50LgorICAgIH0sCisKKyAgICB2aXNpdFN0eWxlU2hlZXQ6IGZ1bmN0aW9uKHN0eWxlU2hlZXQs
IHJlc3VsdCkKKyAgICB7CisgICAgICAgIC8vIFN1YmNsYXNzZXMgY2FuIGltcGxlbWVudC4KKyAg
ICB9LAorCisgICAgdmlzaXRSdWxlOiBmdW5jdGlvbihydWxlLCByZXN1bHQpCisgICAgeworICAg
ICAgICAvLyBTdWJjbGFzc2VzIGNhbiBpbXBsZW1lbnQuCisgICAgfSwKKworICAgIHZpc2l0UHJv
cGVydHk6IGZ1bmN0aW9uKHByb3BlcnR5LCByZXN1bHQpCisgICAgeworICAgICAgICAvLyBTdWJj
bGFzc2VzIGNhbiBpbXBsZW1lbnQuCisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxl
cy5DU1NSdWxlQmFzZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZS5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5z
cGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2V9CisgKi8KK1dlYkluc3BlY3Rvci5BdWRpdFJ1
bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJ
bnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5jYWxsKHRoaXMsICJwYWdlLXZlbmRvcnBy
ZWZpeGVkY3NzIiwgIlVzZSBub3JtYWwgQ1NTIHByb3BlcnR5IG5hbWVzIGluc3RlYWQgb2YgdmVu
ZG9yLXByZWZpeGVkIG9uZXMiKTsKKyAgICB0aGlzLl93ZWJraXRQcmVmaXggPSAiLXdlYmtpdC0i
OworfQorCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRp
ZXMuc3VwcG9ydGVkUHJvcGVydGllcyA9IFsKKyAgICAiYmFja2dyb3VuZC1jbGlwIiwgImJhY2tn
cm91bmQtb3JpZ2luIiwgImJhY2tncm91bmQtc2l6ZSIsCisgICAgImJvcmRlci1yYWRpdXMiLCAi
Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsICJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyIs
ICJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwgImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwKKyAg
ICAiYm94LXNoYWRvdyIsICJib3gtc2l6aW5nIiwgIm9wYWNpdHkiLCAidGV4dC1zaGFkb3ciCitd
LmtleVNldCgpOworCitXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1By
b3BlcnRpZXMucHJvdG90eXBlID0geworICAgIGRpZFZpc2l0U3R5bGVTaGVldHM6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50U3R5bGVTaGVldDsKKyAgICAg
ICAgZGVsZXRlIHRoaXMuX3N0eWxlU2hlZXRSZXN1bHQ7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9j
dXJyZW50UnVsZTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3J1bGVSZXN1bHQ7CisgICAgICAgIGRl
bGV0ZSB0aGlzLl9tZW50aW9uZWRQcm9wZXJ0aWVzOworICAgIH0sCisKKyAgICB2aXNpdFN0eWxl
U2hlZXQ6IGZ1bmN0aW9uKHN0eWxlU2hlZXQpCisgICAgeworICAgICAgICB0aGlzLl9jdXJyZW50
U3R5bGVTaGVldCA9IHN0eWxlU2hlZXQ7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9zdHlsZVNoZWV0
UmVzdWx0OworICAgIH0sCisKKyAgICB2aXNpdFJ1bGU6IGZ1bmN0aW9uKHJ1bGUpCisgICAgewor
ICAgICAgICB0aGlzLl9jdXJyZW50UnVsZSA9IHJ1bGU7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9y
dWxlUmVzdWx0OworICAgICAgICB0aGlzLl9tZW50aW9uZWRQcm9wZXJ0aWVzID0ge307CisgICAg
fSwKKworICAgIHZpc2l0UHJvcGVydHk6IGZ1bmN0aW9uKHByb3BlcnR5LCByZXN1bHQpCisgICAg
eworICAgICAgICB2YXIgcnVsZSA9IHRoaXMuX2N1cnJlbnRSdWxlOworICAgICAgICB2YXIgc3R5
bGUgPSBydWxlLnN0eWxlOworICAgICAgICB2YXIgYWxsUHJvcGVydGllcyA9IHN0eWxlLmFsbFBy
b3BlcnRpZXM7CisKKyAgICAgICAgaWYgKHByb3BlcnR5Lm5hbWUuaW5kZXhPZih0aGlzLl93ZWJr
aXRQcmVmaXgpICE9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgbm9ybWFs
UHJvcGVydHlOYW1lID0gcHJvcGVydHkubmFtZS5zdWJzdHJpbmcodGhpcy5fd2Via2l0UHJlZml4
Lmxlbmd0aCkudG9Mb3dlckNhc2UoKTsgLy8gU3RhcnQganVzdCBhZnRlciB0aGUgIi13ZWJraXQt
IiBwcmVmaXguCisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVm
aXhlZENTU1Byb3BlcnRpZXMuc3VwcG9ydGVkUHJvcGVydGllc1tub3JtYWxQcm9wZXJ0eU5hbWVd
ICYmICF0aGlzLl9tZW50aW9uZWRQcm9wZXJ0aWVzW25vcm1hbFByb3BlcnR5TmFtZV0pIHsKKyAg
ICAgICAgICAgIHZhciBsaXZlUHJvcGVydHkgPSBzdHlsZS5nZXRMaXZlUHJvcGVydHkobm9ybWFs
UHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIGlmIChsaXZlUHJvcGVydHkgJiYgIWxpdmVQcm9w
ZXJ0eS5zdHlsZUJhc2VkKQorICAgICAgICAgICAgICAgIHJldHVybjsgLy8gV2ViQ29yZSBjYW4g
cHJvdmlkZSBub3JtYWwgdmVyc2lvbnMgb2YgcHJlZml4ZWQgcHJvcGVydGllcyBhdXRvbWF0aWNh
bGx5LCBzbyBiZSBjYXJlZnVsIHRvIHNraXAgb25seSBub3JtYWwgc291cmNlLWJhc2VkIHByb3Bl
cnRpZXMuCisgICAgICAgICAgICB0aGlzLl9tZW50aW9uZWRQcm9wZXJ0aWVzW25vcm1hbFByb3Bl
cnR5TmFtZV0gPSB0cnVlOworICAgICAgICAgICAgaWYgKCF0aGlzLl9zdHlsZVNoZWV0UmVzdWx0
KQorICAgICAgICAgICAgICAgIHRoaXMuX3N0eWxlU2hlZXRSZXN1bHQgPSByZXN1bHQuYWRkQ2hp
bGQocnVsZS5zb3VyY2VVUkwgPyBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHJ1
bGUuc291cmNlVVJMKSA6ICI8dW5rbm93bj4iKTsKKyAgICAgICAgICAgIGlmICghdGhpcy5fcnVs
ZVJlc3VsdCkgeworICAgICAgICAgICAgICAgIHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlu
a2lmeVVSTEFzTm9kZShydWxlLnNvdXJjZVVSTCwgcnVsZS5zZWxlY3RvclRleHQpOworICAgICAg
ICAgICAgICAgIGFuY2hvci5wcmVmZXJyZWRQYW5lbCA9ICJyZXNvdXJjZXMiOworICAgICAgICAg
ICAgICAgIGFuY2hvci5saW5lTnVtYmVyID0gcnVsZS5zb3VyY2VMaW5lOworICAgICAgICAgICAg
ICAgIHRoaXMuX3J1bGVSZXN1bHQgPSB0aGlzLl9zdHlsZVNoZWV0UmVzdWx0LmFkZENoaWxkKGFu
Y2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK3Jlc3VsdC52aW9sYXRpb25Db3Vu
dDsKKyAgICAgICAgICAgIHRoaXMuX3J1bGVSZXN1bHQuYWRkU25pcHBldChTdHJpbmcuc3ByaW50
ZigiXCIiICsgdGhpcy5fd2Via2l0UHJlZml4ICsgIiVzXCIgaXMgdXNlZCwgYnV0IFwiJXNcIiBp
cyBzdXBwb3J0ZWQuIiwgbm9ybWFsUHJvcGVydHlOYW1lLCBub3JtYWxQcm9wZXJ0eU5hbWUpKTsK
KyAgICAgICAgfQorICAgIH0KK30KKworV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJl
Zml4ZWRDU1NQcm9wZXJ0aWVzLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQXVk
aXRSdWxlcy5DU1NSdWxlQmFzZS5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisg
KiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZX0KKyAqLwogV2ViSW5zcGVjdG9yLkF1
ZGl0UnVsZXMuQ29va2llUnVsZUJhc2UgPSBmdW5jdGlvbihpZCwgbmFtZSkKIHsKICAgICBXZWJJ
bnNwZWN0b3IuQXVkaXRSdWxlLmNhbGwodGhpcywgaWQsIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzCmluZGV4IGMwYTMx
YmY1MjVmZDNmZGVlM2Y4YjZiMThkMDhhYmJiNDM0MGFkNjYuLjUwMWRmMTBlYWQ5ZTEwNGVkYzc4
YzY3MTBkY2Y0ZWViYmU3ZWZlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMuanMKQEAgLTE5MCw3ICsxOTAsNyBAQCBXZWJJbnNw
ZWN0b3IuZm9ybWF0TGlua1RleHQgPSBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIpCiAKIC8qKgog
ICogQHBhcmFtIHtzdHJpbmd9IHVybAotICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAq
IEBwYXJhbSB7bnVtYmVyPX0gbGluZU51bWJlcgogICogQHBhcmFtIHtzdHJpbmc9fSBjbGFzc2Vz
CiAgKiBAcGFyYW0ge3N0cmluZz19IHRvb2x0aXBUZXh0CiAgKiBAcmV0dXJuIHtFbGVtZW50fQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGQ2NmYzMjY1MWY5MzY5NTBlM2FlNTAyZTBkZDk0YzRmODQwNDI1MWEuLjM1MjNjMWM5
ZTIxZDc0YzA5YWNiOTlkNTVjNTg3YWY1MThlMjMyMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0wMi0yMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IEF1ZGl0IHJ1bGVzIHRvIHJlY29tbWVuZCB1bnByZWZpeGlu
ZyBzdXBwb3J0ZWQgQ1NTIHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlv
bmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5l
bC1mdW5jdGlvbmFsLmh0bWw6CisKIDIwMTItMDItMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIG1lZGlhL1czQyBmYWlsdXJl
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwt
ZnVuY3Rpb25hbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1
ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAppbmRleCA0ZjVlMjc3Y2VlNjg5YWQy
MDdiNDNmMWFlN2U2ZGE1OTc3YjJlM2VkLi40NzljZWI3ZjBlNjI5OGZlYWVhYzE1ZmYwOTJiYTk3
MDZjYWViZjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0
cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dApAQCAtMjMsMTUg
KzIzLDE5IEBAIFBhZ2UgcmVsb2FkZWQuCiAgICAgICBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIGRv
Y3VtZW50IGhlYWQgaW4gCiAgICAgICBhdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sCiAgICAg
UmVtb3ZlIHVudXNlZCBDU1MgcnVsZXMgKDQpCi0gICAgIDE0MUIgKDEwMCUpIG9mIENTUyBpcyBu
b3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgotICAgICAgSW5saW5lIGJsb2NrICMxOiAyOUIg
KDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgIDIwOUIgKDEwMCUp
IG9mIENTUyBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgorICAgICAgSW5saW5lIGJs
b2NrICMxOiA2OUIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAg
ICAgLnVudXNlZAogICAgICAgIGF1ZGl0cy1zdHlsZTEuY3NzCiAgICAgICA6IDQzQiAoMTAwJSkg
aXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAuc29tZS1zdHlsZQotICAg
ICAgSW5saW5lIGJsb2NrICMyOiAyNkIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50
IHBhZ2UuCisgICAgICBJbmxpbmUgYmxvY2sgIzI6IDU0QiAoMTAwJSkgaXMgbm90IHVzZWQgYnkg
dGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAudmlvbGF0aW9uCiAgICAgICAgYXVkaXRzLXN0eWxl
MS5jc3MKICAgICAgIDogNDNCICgxMDAlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdl
LgogICAgICAgIC5zb21lLXN0eWxlCisgICAgVXNlIG5vcm1hbCBDU1MgcHJvcGVydHkgbmFtZXMg
aW5zdGVhZCBvZiB2ZW5kb3ItcHJlZml4ZWQgb25lcyAoMSkKKyAgICAgIGF1ZGl0cy1wYW5lbC1m
dW5jdGlvbmFsLmh0bWwKKyAgICAgICAudmlvbGF0aW9uCisgICAgICAgIi13ZWJraXQtYm9yZGVy
LXJhZGl1cyIgaXMgdXNlZCwgYnV0ICJib3JkZXItcmFkaXVzIiBpcyBzdXBwb3J0ZWQuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0
aW9uYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1
bmN0aW9uYWwuaHRtbAppbmRleCBjNTA1ZDA2MTQyMTBjMTFkNmU4YzRkMjA1ZjMxNTMzNzRhNGRl
Zjk3Li40OGU1YzNkMzcxNDk3M2Y5NWExZDBmNWM4ZmJkOTRhNjVlZWMyY2IyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rp
b25hbC5odG1sCkBAIC00LDYgKzQsOCBAQAogPHN0eWxlPgogLnVudXNlZCB7CiAgICAgY29sb3I6
IGdyZWVuOworICAgIC13ZWJraXQtb3BhY2l0eTogMTsKKyAgICBvcGFjaXR5OiAxOwogfQogPC9z
dHlsZT4KIDxzY3JpcHQ+CkBAIC00Nyw3ICs0OSw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQog
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgogVGVzdHMgYXVkaXQgcnVsZXMuCiA8c3R5bGU+Ci0u
dmlvbGF0aW9uIHsgY29sb3I6IHJlZDsgfQorLnZpb2xhdGlvbiB7IGNvbG9yOiByZWQ7IC13ZWJr
aXQtYm9yZGVyLXJhZGl1czogM3B4OyB9CiA8L3N0eWxlPgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJyZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3MiIHR5cGU9InRleHQvY3NzIj4KIDxp
bWcgc3JjPSJmb28xLmpwZyI+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127985</attachid>
            <date>2012-02-21 09:30:52 -0800</date>
            <delta_ts>2012-02-21 10:11:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78985-20120221213050.patch</filename>
            <type>text/plain</type>
            <size>12583</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY4ZmZkZWM3NDkyMjlh
N2NkY2M5MzM2MThhNTc4M2U4ZGFkYTRmMy4uY2IxNTU3OGM2NTFhMDljMTYzODY5NTI2ZDI3ZjAy
Y2QwYTdmZmMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAyLTIxICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQXVkaXQgcnVsZXMgdG8gcmVjb21tZW5kIHVucHJlZml4aW5nIHN1cHBvcnRlZCBDU1Mg
cHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzg5ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcmllcy5QYWdlUGVyZm9ybWFuY2UucHJvdG90eXBlLmluaXRp
YWxpemUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS5kb1J1bi5zaGVldHND
YWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5w
cm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVs
ZUJhc2UucHJvdG90eXBlLl92aXNpdFN0eWxlU2hlZXQuc2hlZXRDYWxsYmFjayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5wcm90b3R5cGUuX3Zpc2l0U3R5
bGVTaGVldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZS5w
cm90b3R5cGUuX3Zpc2l0UnVsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5D
U1NSdWxlQmFzZS5wcm90b3R5cGUudmlzaXRTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS5kaWRWaXNpdFN0eWxlU2hlZXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2UucHJvdG90eXBl
LnZpc2l0UnVsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFz
ZS5wcm90b3R5cGUuZGlkVmlzaXRSdWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1
bGVzLkNTU1J1bGVCYXNlLnByb3RvdHlwZS52aXNpdFByb3BlcnR5KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMucHJv
dG90eXBlLmRpZFZpc2l0U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRS
dWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMucHJvdG90eXBlLnZpc2l0UnVsZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRp
ZXMucHJvdG90eXBlLmRpZFZpc2l0UnVsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRS
dWxlcy5WZW5kb3JQcmVmaXhlZENTU1Byb3BlcnRpZXMucHJvdG90eXBlLnZpc2l0UHJvcGVydHkp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qczoKKwogMjAx
Mi0wMi0yMSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogW2NyYXNoXSB1cG9uIHN0eWxlIG1vZGlmaWNhdGlvbiBhZnRlciBuYXZp
Z2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1
ZGl0Q2F0ZWdvcmllcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRDYXRlZ29yaWVzLmpzCmluZGV4IGFjOWU1MTgzNTczNWYzOGJiZGRlY2JjMDg5MmI1N2QzODc4
ZWUxYjUuLmIzMmI0MThkMGEyYWFkMDgxMWU5NzljNDdkMzNhYzg1MjhkM2ViNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVz
LmpzCkBAIC00NCw2ICs0NCw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdENhdGVnb3JpZXMuUGFnZVBl
cmZvcm1hbmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5hZGRSdWxlKG5ldyBXZWJJbnNw
ZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlKCksIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGUu
U2V2ZXJpdHkuV2FybmluZyk7CiAgICAgICAgIHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZSgpLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLlNldmVy
aXR5LlNldmVyZSk7CiAgICAgICAgIHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0
UnVsZXMuU3R5bGVzU2NyaXB0c09yZGVyUnVsZSgpLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlLlNl
dmVyaXR5LlNldmVyZSk7CisgICAgICAgIHRoaXMuYWRkUnVsZShuZXcgV2ViSW5zcGVjdG9yLkF1
ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0aWVzKCksIFdlYkluc3BlY3Rvci5BdWRp
dFJ1bGUuU2V2ZXJpdHkuV2FybmluZyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKaW5kZXggODQzMGZmYTFlMGFmZWE0
ZDU1NTAzNmY2MGYxZjAzNjgzOWIwOTIwZC4uMWEwZGQ5ODM5NTM5YTVjNDBjYTk4MmJmNmVjZWI2
ZDAwMWRhYWY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QXVkaXRSdWxlcy5qcwpAQCAtOTc0LDYgKzk3NCwxNjcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZXMuU3R5bGVzU2NyaXB0c09yZGVyUnVsZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG8KICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5BdWRpdFJ1bGV9
CiAgKi8KK1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlID0gZnVuY3Rpb24oaWQs
IG5hbWUpCit7CisgICAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZS5jYWxsKHRoaXMsIGlkLCBuYW1l
KTsKK30KKworV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2UucHJvdG90eXBlID0g
eworICAgIGRvUnVuOiBmdW5jdGlvbihyZXNvdXJjZXMsIHJlc3VsdCwgY2FsbGJhY2ssIHByb2dy
ZXNzTW9uaXRvcikKKyAgICB7CisgICAgICAgIENTU0FnZW50LmdldEFsbFN0eWxlU2hlZXRzKHNo
ZWV0c0NhbGxiYWNrLmJpbmQodGhpcykpOworCisgICAgICAgIGZ1bmN0aW9uIHNoZWV0c0NhbGxi
YWNrKGVycm9yLCBoZWFkZXJzKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwpOworCisgICAgICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGhlYWRlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2
YXIgaGVhZGVyID0gaGVhZGVyc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAoaGVhZGVyLmRpc2Fi
bGVkKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gRG8gbm90IGNoZWNrIGRpc2Fi
bGVkIHN0eWxlc2hlZXRzLgorCisgICAgICAgICAgICAgICAgdGhpcy5fdmlzaXRTdHlsZVNoZWV0
KGhlYWRlci5zdHlsZVNoZWV0SWQsIGkgPT09IGhlYWRlcnMubGVuZ3RoIC0gMSA/IGZpbmlzaGVk
Q2FsbGJhY2sgOiBudWxsLCByZXN1bHQsIHByb2dyZXNzTW9uaXRvcik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hlZENhbGxiYWNrKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0sCisK
KyAgICBfdmlzaXRTdHlsZVNoZWV0OiBmdW5jdGlvbihzdHlsZVNoZWV0SWQsIGNhbGxiYWNrLCBy
ZXN1bHQsIHByb2dyZXNzTW9uaXRvcikKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5DU1NT
dHlsZVNoZWV0LmNyZWF0ZUZvcklkKHN0eWxlU2hlZXRJZCwgc2hlZXRDYWxsYmFjay5iaW5kKHRo
aXMpKTsKKworICAgICAgICBmdW5jdGlvbiBzaGVldENhbGxiYWNrKHN0eWxlU2hlZXQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmIChwcm9ncmVzc01vbml0b3IuY2FuY2VsZWQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIXN0eWxlU2hlZXQpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0
aGlzLnZpc2l0U3R5bGVTaGVldChzdHlsZVNoZWV0LCByZXN1bHQpOworCisgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHN0eWxlU2hlZXQucnVsZXMubGVuZ3RoOyArK2kpCisgICAgICAg
ICAgICAgICAgdGhpcy5fdmlzaXRSdWxlKHN0eWxlU2hlZXQsIHN0eWxlU2hlZXQucnVsZXNbaV0s
IHJlc3VsdCk7CisKKyAgICAgICAgICAgIHRoaXMuZGlkVmlzaXRTdHlsZVNoZWV0KHN0eWxlU2hl
ZXQsIHJlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgICAgICAg
ICBjYWxsYmFjaygpOworICAgICAgICB9CisgICAgfSwKKworICAgIF92aXNpdFJ1bGU6IGZ1bmN0
aW9uKHN0eWxlU2hlZXQsIHJ1bGUsIHJlc3VsdCkKKyAgICB7CisgICAgICAgIHRoaXMudmlzaXRS
dWxlKHN0eWxlU2hlZXQsIHJ1bGUsIHJlc3VsdCk7CisgICAgICAgIHZhciBhbGxQcm9wZXJ0aWVz
ID0gcnVsZS5zdHlsZS5hbGxQcm9wZXJ0aWVzOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGFsbFByb3BlcnRpZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLnZpc2l0UHJvcGVy
dHkoc3R5bGVTaGVldCwgYWxsUHJvcGVydGllc1tpXSwgcmVzdWx0KTsKKyAgICAgICAgdGhpcy5k
aWRWaXNpdFJ1bGUoc3R5bGVTaGVldCwgcnVsZSwgcmVzdWx0KTsKKyAgICB9LAorCisgICAgdmlz
aXRTdHlsZVNoZWV0OiBmdW5jdGlvbihzdHlsZVNoZWV0LCByZXN1bHQpCisgICAgeworICAgICAg
ICAvLyBTdWJjbGFzc2VzIGNhbiBpbXBsZW1lbnQuCisgICAgfSwKKworICAgIGRpZFZpc2l0U3R5
bGVTaGVldDogZnVuY3Rpb24oc3R5bGVTaGVldCwgcmVzdWx0KQorICAgIHsKKyAgICAgICAgLy8g
U3ViY2xhc3NlcyBjYW4gaW1wbGVtZW50LgorICAgIH0sCisgICAgCisgICAgdmlzaXRSdWxlOiBm
dW5jdGlvbihzdHlsZVNoZWV0LCBydWxlLCByZXN1bHQpCisgICAgeworICAgICAgICAvLyBTdWJj
bGFzc2VzIGNhbiBpbXBsZW1lbnQuCisgICAgfSwKKworICAgIGRpZFZpc2l0UnVsZTogZnVuY3Rp
b24oc3R5bGVTaGVldCwgcnVsZSwgcmVzdWx0KQorICAgIHsKKyAgICAgICAgLy8gU3ViY2xhc3Nl
cyBjYW4gaW1wbGVtZW50LgorICAgIH0sCisgICAgCisgICAgdmlzaXRQcm9wZXJ0eTogZnVuY3Rp
b24oc3R5bGVTaGVldCwgcHJvcGVydHksIHJlc3VsdCkKKyAgICB7CisgICAgICAgIC8vIFN1YmNs
YXNzZXMgY2FuIGltcGxlbWVudC4KKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVz
LkNTU1J1bGVCYXNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQXVkaXRSdWxl
LnByb3RvdHlwZTsKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNw
ZWN0b3IuQXVkaXRSdWxlcy5DU1NSdWxlQmFzZX0KKyAqLworV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZXMuVmVuZG9yUHJlZml4ZWRDU1NQcm9wZXJ0aWVzID0gZnVuY3Rpb24oKQoreworICAgIFdlYklu
c3BlY3Rvci5BdWRpdFJ1bGVzLkNTU1J1bGVCYXNlLmNhbGwodGhpcywgInBhZ2UtdmVuZG9ycHJl
Zml4ZWRjc3MiLCAiVXNlIG5vcm1hbCBDU1MgcHJvcGVydHkgbmFtZXMgaW5zdGVhZCBvZiB2ZW5k
b3ItcHJlZml4ZWQgb25lcyIpOworICAgIHRoaXMuX3dlYmtpdFByZWZpeCA9ICItd2Via2l0LSI7
Cit9CisKK1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGll
cy5zdXBwb3J0ZWRQcm9wZXJ0aWVzID0gWworICAgICJiYWNrZ3JvdW5kLWNsaXAiLCAiYmFja2dy
b3VuZC1vcmlnaW4iLCAiYmFja2dyb3VuZC1zaXplIiwKKyAgICAiYm9yZGVyLXJhZGl1cyIsICJi
b3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIiwgImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIiwg
ImJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCAiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMiLAorICAg
ICJib3gtc2hhZG93IiwgImJveC1zaXppbmciLCAib3BhY2l0eSIsICJ0ZXh0LXNoYWRvdyIKK10u
a2V5U2V0KCk7CisKK1dlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJv
cGVydGllcy5wcm90b3R5cGUgPSB7CisgICAgZGlkVmlzaXRTdHlsZVNoZWV0OiBmdW5jdGlvbihz
dHlsZVNoZWV0KQorICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3N0eWxlU2hlZXRSZXN1bHQ7
CisgICAgfSwKKworICAgIHZpc2l0UnVsZTogZnVuY3Rpb24ocnVsZSkKKyAgICB7CisgICAgICAg
IHRoaXMuX21lbnRpb25lZFByb3BlcnRpZXMgPSB7fTsKKyAgICB9LAorCisgICAgZGlkVmlzaXRS
dWxlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBkZWxldGUgdGhpcy5fcnVsZVJlc3VsdDsK
KyAgICAgICAgZGVsZXRlIHRoaXMuX21lbnRpb25lZFByb3BlcnRpZXM7CisgICAgfSwKKworICAg
IHZpc2l0UHJvcGVydHk6IGZ1bmN0aW9uKHN0eWxlU2hlZXQsIHByb3BlcnR5LCByZXN1bHQpCisg
ICAgeworICAgICAgICBpZiAocHJvcGVydHkubmFtZS5pbmRleE9mKHRoaXMuX3dlYmtpdFByZWZp
eCkgIT09IDApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIG5vcm1hbFByb3Bl
cnR5TmFtZSA9IHByb3BlcnR5Lm5hbWUuc3Vic3RyaW5nKHRoaXMuX3dlYmtpdFByZWZpeC5sZW5n
dGgpLnRvTG93ZXJDYXNlKCk7IC8vIFN0YXJ0IGp1c3QgYWZ0ZXIgdGhlICItd2Via2l0LSIgcHJl
Zml4LgorICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVmVuZG9yUHJlZml4ZWRD
U1NQcm9wZXJ0aWVzLnN1cHBvcnRlZFByb3BlcnRpZXNbbm9ybWFsUHJvcGVydHlOYW1lXSAmJiAh
dGhpcy5fbWVudGlvbmVkUHJvcGVydGllc1tub3JtYWxQcm9wZXJ0eU5hbWVdKSB7CisgICAgICAg
ICAgICB2YXIgc3R5bGUgPSBwcm9wZXJ0eS5vd25lclN0eWxlOworICAgICAgICAgICAgdmFyIGxp
dmVQcm9wZXJ0eSA9IHN0eWxlLmdldExpdmVQcm9wZXJ0eShub3JtYWxQcm9wZXJ0eU5hbWUpOwor
ICAgICAgICAgICAgaWYgKGxpdmVQcm9wZXJ0eSAmJiAhbGl2ZVByb3BlcnR5LnN0eWxlQmFzZWQp
CisgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBXZWJDb3JlIGNhbiBwcm92aWRlIG5vcm1hbCB2
ZXJzaW9ucyBvZiBwcmVmaXhlZCBwcm9wZXJ0aWVzIGF1dG9tYXRpY2FsbHksIHNvIGJlIGNhcmVm
dWwgdG8gc2tpcCBvbmx5IG5vcm1hbCBzb3VyY2UtYmFzZWQgcHJvcGVydGllcy4KKworICAgICAg
ICAgICAgdmFyIHJ1bGUgPSBzdHlsZS5wYXJlbnRSdWxlOworICAgICAgICAgICAgdGhpcy5fbWVu
dGlvbmVkUHJvcGVydGllc1tub3JtYWxQcm9wZXJ0eU5hbWVdID0gdHJ1ZTsKKyAgICAgICAgICAg
IGlmICghdGhpcy5fc3R5bGVTaGVldFJlc3VsdCkKKyAgICAgICAgICAgICAgICB0aGlzLl9zdHls
ZVNoZWV0UmVzdWx0ID0gcmVzdWx0LmFkZENoaWxkKHJ1bGUuc291cmNlVVJMID8gV2ViSW5zcGVj
dG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZShydWxlLnNvdXJjZVVSTCkgOiAiPHVua25vd24+Iik7
CisgICAgICAgICAgICBpZiAoIXRoaXMuX3J1bGVSZXN1bHQpIHsKKyAgICAgICAgICAgICAgICB2
YXIgYW5jaG9yID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUocnVsZS5zb3VyY2VVUkws
IHJ1bGUuc2VsZWN0b3JUZXh0KTsKKyAgICAgICAgICAgICAgICBhbmNob3IucHJlZmVycmVkUGFu
ZWwgPSAicmVzb3VyY2VzIjsKKyAgICAgICAgICAgICAgICBhbmNob3IubGluZU51bWJlciA9IHJ1
bGUuc291cmNlTGluZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9ydWxlUmVzdWx0ID0gdGhpcy5f
c3R5bGVTaGVldFJlc3VsdC5hZGRDaGlsZChhbmNob3IpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgKytyZXN1bHQudmlvbGF0aW9uQ291bnQ7CisgICAgICAgICAgICB0aGlzLl9ydWxlUmVz
dWx0LmFkZFNuaXBwZXQoU3RyaW5nLnNwcmludGYoIlwiIiArIHRoaXMuX3dlYmtpdFByZWZpeCAr
ICIlc1wiIGlzIHVzZWQsIGJ1dCBcIiVzXCIgaXMgc3VwcG9ydGVkLiIsIG5vcm1hbFByb3BlcnR5
TmFtZSwgbm9ybWFsUHJvcGVydHlOYW1lKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1dlYklu
c3BlY3Rvci5BdWRpdFJ1bGVzLlZlbmRvclByZWZpeGVkQ1NTUHJvcGVydGllcy5wcm90b3R5cGUu
X19wcm90b19fID0gV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ1NTUnVsZUJhc2UucHJvdG90eXBl
OworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5BdWRp
dFJ1bGV9CisgKi8KIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNvb2tpZVJ1bGVCYXNlID0gZnVu
Y3Rpb24oaWQsIG5hbWUpCiB7CiAgICAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZS5jYWxsKHRoaXMs
IGlkLCBuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VVdGlscy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VVdGlscy5qcwppbmRleCBjMGEzMWJmNTI1ZmQzZmRlZTNmOGI2YjE4ZDA4YWJiYjQz
NDBhZDY2Li41MDFkZjEwZWFkOWUxMDRlZGM3OGM2NzEwZGNmNGVlYmJlN2VmZWU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpz
CkBAIC0xOTAsNyArMTkwLDcgQEAgV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0ID0gZnVuY3Rp
b24odXJsLCBsaW5lTnVtYmVyKQogCiAvKioKICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKLSAqIEBw
YXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgKiBAcGFyYW0ge251bWJlcj19IGxpbmVOdW1iZXIK
ICAqIEBwYXJhbSB7c3RyaW5nPX0gY2xhc3NlcwogICogQHBhcmFtIHtzdHJpbmc9fSB0b29sdGlw
VGV4dAogICogQHJldHVybiB7RWxlbWVudH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNGQzMmI5OTAwZTc2YjIxZjIwNmMw
MDdhYmNkYzYxNTE1ZjJjZDEyLi40ZWZlM2Y2M2UyODcyOTc2ODA0ZDhhM2Q1MjdmNTZhOTllMjAz
MzIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMjEgIEFsZXhhbmRlciBQYXZsb3Yg
IDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBdWRpdCBy
dWxlcyB0byByZWNvbW1lbmQgdW5wcmVmaXhpbmcgc3VwcG9ydGVkIENTUyBwcm9wZXJ0aWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODk4NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9y
L2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sOgorCiAyMDEyLTAy
LTIxICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0
XSBVbnJldmlld2VkIGdhcmRlbmluZywgc2tpcCBuZXcgZmFpbGluZyBhbmQgY3Jhc2hpbmcgdGVz
dCB0byBwYWludCB0aGUgYm90IGdyZWVuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4
dAppbmRleCA0ZjVlMjc3Y2VlNjg5YWQyMDdiNDNmMWFlN2U2ZGE1OTc3YjJlM2VkLi40NzljZWI3
ZjBlNjI5OGZlYWVhYzE1ZmYwOTJiYTk3MDZjYWViZjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFs
LWV4cGVjdGVkLnR4dApAQCAtMjMsMTUgKzIzLDE5IEBAIFBhZ2UgcmVsb2FkZWQuCiAgICAgICBz
aG91bGQgYmUgbW92ZWQgdG8gdGhlIGRvY3VtZW50IGhlYWQgaW4gCiAgICAgICBhdWRpdHMtcGFu
ZWwtZnVuY3Rpb25hbC5odG1sCiAgICAgUmVtb3ZlIHVudXNlZCBDU1MgcnVsZXMgKDQpCi0gICAg
IDE0MUIgKDEwMCUpIG9mIENTUyBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgotICAg
ICAgSW5saW5lIGJsb2NrICMxOiAyOUIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50
IHBhZ2UuCisgICAgIDIwOUIgKDEwMCUpIG9mIENTUyBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVu
dCBwYWdlLgorICAgICAgSW5saW5lIGJsb2NrICMxOiA2OUIgKDEwMCUpIGlzIG5vdCB1c2VkIGJ5
IHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgLnVudXNlZAogICAgICAgIGF1ZGl0cy1zdHlsZTEu
Y3NzCiAgICAgICA6IDQzQiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4K
ICAgICAgICAuc29tZS1zdHlsZQotICAgICAgSW5saW5lIGJsb2NrICMyOiAyNkIgKDEwMCUpIGlz
IG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuCisgICAgICBJbmxpbmUgYmxvY2sgIzI6IDU0
QiAoMTAwJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KICAgICAgICAudmlvbGF0
aW9uCiAgICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKICAgICAgIDogNDNCICgxMDAlKSBpcyBub3Qg
dXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgogICAgICAgIC5zb21lLXN0eWxlCisgICAgVXNlIG5v
cm1hbCBDU1MgcHJvcGVydHkgbmFtZXMgaW5zdGVhZCBvZiB2ZW5kb3ItcHJlZml4ZWQgb25lcyAo
MSkKKyAgICAgIGF1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWwKKyAgICAgICAudmlvbGF0aW9u
CisgICAgICAgIi13ZWJraXQtYm9yZGVyLXJhZGl1cyIgaXMgdXNlZCwgYnV0ICJib3JkZXItcmFk
aXVzIiBpcyBzdXBwb3J0ZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9h
dWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbAppbmRleCBjNTA1ZDA2MTQyMTBj
MTFkNmU4YzRkMjA1ZjMxNTMzNzRhNGRlZjk3Li40OGU1YzNkMzcxNDk3M2Y5NWExZDBmNWM4ZmJk
OTRhNjVlZWMyY2IyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1
ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1
ZGl0cy9hdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sCkBAIC00LDYgKzQsOCBAQAogPHN0eWxl
PgogLnVudXNlZCB7CiAgICAgY29sb3I6IGdyZWVuOworICAgIC13ZWJraXQtb3BhY2l0eTogMTsK
KyAgICBvcGFjaXR5OiAxOwogfQogPC9zdHlsZT4KIDxzY3JpcHQ+CkBAIC00Nyw3ICs0OSw3IEBA
IHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgogVGVzdHMg
YXVkaXQgcnVsZXMuCiA8c3R5bGU+Ci0udmlvbGF0aW9uIHsgY29sb3I6IHJlZDsgfQorLnZpb2xh
dGlvbiB7IGNvbG9yOiByZWQ7IC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OyB9CiA8L3N0eWxl
PgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5j
c3MiIHR5cGU9InRleHQvY3NzIj4KIDxpbWcgc3JjPSJmb28xLmpwZyI+Cg==
</data>
<flag name="review"
          id="130257"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>