<?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>111301</bug_id>
          
          <creation_ts>2013-03-04 04:24:21 -0800</creation_ts>
          <short_desc>Web Inspector: Refactorings: Prepare SuggestBox for reuse.</short_desc>
          <delta_ts>2013-03-07 01:51:55 -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>
          <dependson>111427</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eugene Klyuchnikov">eustas</reporter>
          <assigned_to name="Eugene Klyuchnikov">eustas</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>846329</commentid>
    <comment_count>0</comment_count>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-03-04 04:24:21 -0800</bug_when>
    <thetext>1) Remove userEnteredText from delegate interface. Pass prefix to updateSuggestions instead.
2) Clarify that suggestions array is never null.
3) Add option to align suggestion box to element specified during construction.

4) Avoid possible NPE in StylesSidebarPane.
5) Add some JSDocs to CSSMetadata and StylesSidebarPane.CSSPropertyPrompt.
6) Remove unused parameter of StylesSidebarPane.CSSPropertyPrompt constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846334</commentid>
    <comment_count>1</comment_count>
      <attachid>191203</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-03-04 04:35:59 -0800</bug_when>
    <thetext>Created attachment 191203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846354</commentid>
    <comment_count>2</comment_count>
      <attachid>191203</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-03-04 05:28:17 -0800</bug_when>
    <thetext>Comment on attachment 191203
Patch

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

It is quite hard to track the changes in this patch even for the author of this code. Let us separate the patch into a few others, and not land provisional code (you can make the respective changes in the patch that uses the new code.)

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:2649
&gt; + * @param {?WebInspector.CSSMetadata} cssCompletions

Why is it nullable???

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:-2714
&gt; -        if (!word)

Unnecessary change.

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:2730
&gt; +        var cssCompletions = this._cssCompletions;

Ditto.

&gt; Source/WebCore/inspector/front-end/SuggestBox.js:60
&gt; +    this._anchorElement = anchorElement;

This field is unused, hence may be removed altogether.

&gt; Source/WebCore/inspector/front-end/SuggestBox.js:98
&gt; +     * @param {AnchorBox=} anchorBox

Any cases where the anchorBox is not supplied to _updateBoxPosition()?

&gt; Source/WebCore/inspector/front-end/SuggestBox.js:330
&gt; +        if (this._canShowBox(completions, !!canShowForSingleItem, userEnteredText)) {

Why &quot;!!canShowForSingleItem&quot; if it is mandatory?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847613</commentid>
    <comment_count>3</comment_count>
      <attachid>191203</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-03-05 06:26:35 -0800</bug_when>
    <thetext>Comment on attachment 191203
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/SuggestBox.js:60
&gt;&gt; +    this._anchorElement = anchorElement;
&gt; 
&gt; This field is unused, hence may be removed altogether.

_anchorElement is now used in _updateBoxPosition

&gt;&gt; Source/WebCore/inspector/front-end/SuggestBox.js:98
&gt;&gt; +     * @param {AnchorBox=} anchorBox
&gt; 
&gt; Any cases where the anchorBox is not supplied to _updateBoxPosition()?

My next patch uses SuggestionBox this way.
But I think you are right - this change could be separate from refactoring.

&gt;&gt; Source/WebCore/inspector/front-end/SuggestBox.js:330
&gt;&gt; +        if (this._canShowBox(completions, !!canShowForSingleItem, userEnteredText)) {
&gt; 
&gt; Why &quot;!!canShowForSingleItem&quot; if it is mandatory?

oops. That was mandatory for previous signature. I&apos;ll revert this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847644</commentid>
    <comment_count>4</comment_count>
      <attachid>191490</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-03-05 06:57:09 -0800</bug_when>
    <thetext>Created attachment 191490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849880</commentid>
    <comment_count>5</comment_count>
      <attachid>191490</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-07 01:51:52 -0800</bug_when>
    <thetext>Comment on attachment 191490
Patch

Clearing flags on attachment: 191490

Committed r145054: &lt;http://trac.webkit.org/changeset/145054&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849881</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-07 01:51:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191203</attachid>
            <date>2013-03-04 04:35:59 -0800</date>
            <delta_ts>2013-03-05 06:57:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111301-20130304163207.patch</filename>
            <type>text/plain</type>
            <size>16964</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWJmOTVkYmYxNGI1MGJl
Mzg2MjZlZmFmOGVkYmU5MzJjOThhODU1YS4uZmI0YzYyMGQwZDY3Y2NkMTQ5NTVmNWE3ZmY0MzA2
NTNlY2VlNzAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAzLTA0ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJlZmFjdG9yaW5nczogUHJlcGFyZSBTdWdnZXN0Qm94IGZvciByZXVzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTMwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gUmVtb3ZlIHVzZXJF
bnRlcmVkVGV4dCBmcm9tIGRlbGVnYXRlIGludGVyZmFjZS4KKyAgICAgICAgICBQYXNzIHByZWZp
eCB0byB1cGRhdGVTdWdnZXN0aW9ucyBpbnN0ZWFkLgorICAgICAgICAtIENsYXJpZnkgdGhhdCBz
dWdnZXN0aW9ucyBhcnJheSBpcyBuZXZlciBudWxsLgorICAgICAgICAtIEFkZCBvcHRpb24gdG8g
YWxpZ24gc3VnZ2VzdGlvbiBib3ggdG8gZWxlbWVudCBwYXNzZWQgdG8gY29uc3RydWN0b3IuCisK
KyAgICAgICAgQWRkaXRpb25hbCBjaGFuZ2VzOgorICAgICAgICAtIEF2b2lkIHBvc3NpYmxlIE5Q
RSBpbiBTdHlsZXNTaWRlYmFyUGFuZS5DU1NQcm9wZXJ0eVByb21wdC4KKyAgICAgICAgLSBBZGQg
c29tZSBKU0RvY3MgdG8gQ1NTTWV0YWRhdGEuCisgICAgICAgIC0gQWRkIHNvbWUgSlNEb2NzIHRv
IFN0eWxlc1NpZGViYXJQYW5lLkNTU1Byb3BlcnR5UHJvbXB0LgorICAgICAgICAtIFJlbW92ZSB1
bnVzZWQgcGFyYW1ldGVyIG9mIFN0eWxlc1NpZGViYXJQYW5lLkNTU1Byb3BlcnR5UHJvbXB0Lgor
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NNZXRhZGF0YS5qczogQWRkZWQgSlNE
b2NzLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanM6
IEZpeGVkIEpTRG9jcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1J1bnRpbWVNb2Rl
bC5qczogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFy
UGFuZS5qczogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdWdnZXN0Qm94
LmpzOgorICAgICAgICBDbGFyaWZpZWQgcGFyYW1ldGVycyBhbmQgY2hhbmdlZCBvcmRlciwgcmVk
dWNlZCBkZWxlZ2F0ZSBpbnRlcmZhY2UuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9U
ZXh0UHJvbXB0LmpzOiBBZG9wdGVkIGNoYW5nZXMuCisKIDIwMTMtMDMtMDQgIEFuZHJleSBMdXNo
bmlrb3YgIDxsdXNobmlrb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGFkZCBBY2UgZWRpdG9yIGV4cGVyaW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ1NTTWV0YWRhdGEuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NTU01ldGFkYXRhLmpzCmluZGV4IDFmOGFjZGI5ZmFiYjBiYjhkMDIxN2Qz
YmE0OWYzMTU5MDBlNTgwOGEuLjQ2NjA1Yjk4MWMyN2U0ZDg2OTZhN2VhM2M4ZWE4NDIxNWY1MTdl
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTTWV0
YWRhdGEuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NNZXRh
ZGF0YS5qcwpAQCAtMzYsNyArMzYsNyBAQAogICovCiBXZWJJbnNwZWN0b3IuQ1NTTWV0YWRhdGEg
PSBmdW5jdGlvbihwcm9wZXJ0aWVzKQogewotICAgIHRoaXMuX3ZhbHVlcyA9IFtdOworICAgIHRo
aXMuX3ZhbHVlcyA9IC8qKiAhQXJyYXkuPHN0cmluZz4gKi8gKFtdKTsKICAgICB0aGlzLl9sb25n
aGFuZHMgPSB7fTsKICAgICB0aGlzLl9zaG9ydGhhbmRzID0ge307CiAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgKytpKSB7CkBAIC02NzMsNyArNjczLDcgQEAgV2Vi
SW5zcGVjdG9yLkNTU01ldGFkYXRhLl9wcm9wZXJ0eURhdGFNYXAgPSB7CiAKIC8qKgogICogQHBh
cmFtIHtzdHJpbmd9IHByb3BlcnR5TmFtZQotICogQHJldHVybiB7V2ViSW5zcGVjdG9yLkNTU01l
dGFkYXRhfQorICogQHJldHVybiB7IVdlYkluc3BlY3Rvci5DU1NNZXRhZGF0YX0KICAqLwogV2Vi
SW5zcGVjdG9yLkNTU01ldGFkYXRhLmtleXdvcmRzRm9yUHJvcGVydHkgPSBmdW5jdGlvbihwcm9w
ZXJ0eU5hbWUpCiB7CkBAIC04NDEsNiArODQxLDEwIEBAIFdlYkluc3BlY3Rvci5DU1NNZXRhZGF0
YS5XZWlnaHQgPSB7CiAKIAogV2ViSW5zcGVjdG9yLkNTU01ldGFkYXRhLnByb3RvdHlwZSA9IHsK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4CisgICAgICogQHJldHVybiB7
IUFycmF5LjxzdHJpbmc+fQorICAgICAqLwogICAgIHN0YXJ0c1dpdGg6IGZ1bmN0aW9uKHByZWZp
eCkKICAgICB7CiAgICAgICAgIHZhciBmaXJzdEluZGV4ID0gdGhpcy5fZmlyc3RJbmRleE9mUHJl
Zml4KHByZWZpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwppbmRleCA1YTQ0YWI0NWMxODI5MWI1MTdlZTcyODU0
NWQ1OGY3ZGMwMWVkMDgyLi5mZDZjZTlmMGVjYTkyNjJmY2Y2OTI4YTkwNmQ3NGY4MjNhZjIzYjZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNl
UXVlcnlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0
YWJhc2VRdWVyeVZpZXcuanMKQEAgLTY1LDcgKzY1LDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNl
UXVlcnlWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHByb3h5RWxl
bWVudAogICAgICAqIEBwYXJhbSB7UmFuZ2V9IHdvcmRSYW5nZQogICAgICAqIEBwYXJhbSB7Ym9v
bGVhbn0gZm9yY2UKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxzdHJpbmc+LCBudW1i
ZXI9KX0gY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbigh
QXJyYXkuPHN0cmluZz4sIG51bWJlcj0pfSBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2sKICAgICAg
Ki8KICAgICBjb21wbGV0aW9uczogZnVuY3Rpb24ocHJveHlFbGVtZW50LCB3b3JkUmFuZ2UsIGZv
cmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SdW50aW1lTW9kZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1J1bnRpbWVNb2RlbC5qcwppbmRleCBiZWY5MTc3NDhk
OTkyMTg3NDA5ZWUzYTUyZTExZDJkNTQzZDQ2NWRkLi5jNWJkZWViMGE5NDI2Yzg4MzRiMTNjN2Rh
YzRjOTUyNmY2MGFhMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1J1bnRpbWVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1J1bnRpbWVNb2RlbC5qcwpAQCAtMTY5LDcgKzE2OSw3IEBAIFdlYkluc3BlY3Rvci5S
dW50aW1lTW9kZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7RWxlbWVudH0gcHJveHlF
bGVtZW50CiAgICAgICogQHBhcmFtIHtSYW5nZX0gd29yZFJhbmdlCiAgICAgICogQHBhcmFtIHti
b29sZWFufSBmb3JjZQotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPHN0cmluZz4sIG51
bWJlcj0pfSBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9u
KCFBcnJheS48c3RyaW5nPiwgbnVtYmVyPSl9IGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjawogICAg
ICAqLwogICAgIGNvbXBsZXRpb25zRm9yVGV4dFByb21wdDogZnVuY3Rpb24ocHJveHlFbGVtZW50
LCB3b3JkUmFuZ2UsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAgICAgewpAQCAt
MTg0LDcgKzE4NCw3IEBAIFdlYkluc3BlY3Rvci5SdW50aW1lTW9kZWwucHJvdG90eXBlID0gewog
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBleHByZXNzaW9uU3RyaW5nCiAgICAgICogQHBhcmFtIHtz
dHJpbmd9IHByZWZpeAogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZm9yY2UKLSAgICAgKiBAcGFy
YW0ge2Z1bmN0aW9uKEFycmF5LjxzdHJpbmc+LCBudW1iZXI9KX0gY29tcGxldGlvbnNSZWFkeUNh
bGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbighQXJyYXkuPHN0cmluZz4sIG51bWJlcj0p
fSBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2sKICAgICAgKi8KICAgICBfY29tcGxldGlvbnNGb3JF
eHByZXNzaW9uOiBmdW5jdGlvbihleHByZXNzaW9uU3RyaW5nLCBwcmVmaXgsIGZvcmNlLCBjb21w
bGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAgICAgewpAQCAtMjc2LDcgKzI3Niw3IEBAIFdlYkluc3Bl
Y3Rvci5SdW50aW1lTW9kZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAg
KiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxzdHJpbmc+LCBudW1iZXI9KX0gY29tcGxldGlvbnNS
ZWFkeUNhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbighQXJyYXkuPHN0cmluZz4sIG51
bWJlcj0pfSBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2sKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IGRvdE5vdGF0aW9uCiAgICAgICogQHBhcmFtIHtib29sZWFufSBicmFja2V0Tm90YXRpb24KICAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gZXhwcmVzc2lvblN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKaW5kZXgg
ZmRiZmM5M2I3ZWU4MTg4NWE5MmM0NmEzMDYyMTk5YTM1YTlkMWQ3OC4uODkwMDgyMWY1NDM4MmFk
Y2U0OWE2NWQwYTg3OGVhZDEwYTUzNWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC0yMjIwLDcgKzIy
MjAsNiBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9
IHsKICAgICAgICAgaWYgKCFpc0VkaXRpbmdOYW1lKSB7CiAgICAgICAgICAgICBpZiAoc2VsZWN0
RWxlbWVudCAhPT0gdGhpcy52YWx1ZUVsZW1lbnQpIHsKICAgICAgICAgICAgICAgICAvLyBDbGlj
ayBpbiB0aGUgTEkgLSBzdGFydCBlZGl0aW5nIHZhbHVlLgotICAgICAgICAgICAgICAgIGlzRWRp
dGluZ05hbWUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBzZWxlY3RFbGVtZW50ID0gdGhpcy52
YWx1ZUVsZW1lbnQ7CiAgICAgICAgICAgICB9CiAKQEAgLTI2NDcsOSArMjY0NiwxMSBAQCBXZWJJ
bnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIC8qKgogICog
QGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlRleHRQcm9tcHR9Ci0gKiBA
cGFyYW0ge2Z1bmN0aW9uKCopPX0gYWNjZXB0Q2FsbGJhY2sKKyAqIEBwYXJhbSB7P1dlYkluc3Bl
Y3Rvci5DU1NNZXRhZGF0YX0gY3NzQ29tcGxldGlvbnMKKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rv
ci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnR9IHNpZGViYXJQYW5lCisgKiBAcGFyYW0ge2Jvb2xl
YW59IGlzRWRpdGluZ05hbWUKICAqLwotV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLkNT
U1Byb3BlcnR5UHJvbXB0ID0gZnVuY3Rpb24oY3NzQ29tcGxldGlvbnMsIHNpZGViYXJQYW5lLCBp
c0VkaXRpbmdOYW1lLCBhY2NlcHRDYWxsYmFjaykKK1dlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFy
UGFuZS5DU1NQcm9wZXJ0eVByb21wdCA9IGZ1bmN0aW9uKGNzc0NvbXBsZXRpb25zLCBzaWRlYmFy
UGFuZSwgaXNFZGl0aW5nTmFtZSkKIHsKICAgICAvLyBVc2UgdGhlIHNhbWUgY2FsbGJhY2sgYm90
aCBmb3IgYXBwbHlJdGVtQ2FsbGJhY2sgYW5kIGFjY2VwdEl0ZW1DYWxsYmFjay4KICAgICBXZWJJ
bnNwZWN0b3IuVGV4dFByb21wdC5jYWxsKHRoaXMsIHRoaXMuX2J1aWxkUHJvcGVydHlDb21wbGV0
aW9ucy5iaW5kKHRoaXMpLCBXZWJJbnNwZWN0b3IuU3R5bGVWYWx1ZURlbGltaXRlcnMpOwpAQCAt
MjcxMSwyNiArMjcxMiwzMCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ1NTUHJv
cGVydHlQcm9tcHQucHJvdG90eXBlID0gewogCiAgICAgX2lzVmFsdWVTdWdnZXN0aW9uOiBmdW5j
dGlvbih3b3JkKQogICAgIHsKLSAgICAgICAgaWYgKCF3b3JkKQorICAgICAgICB2YXIgY3NzQ29t
cGxldGlvbnMgPSB0aGlzLl9jc3NDb21wbGV0aW9uczsKKyAgICAgICAgaWYgKCFjc3NDb21wbGV0
aW9ucyB8fCAhd29yZCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgd29yZCA9
IHdvcmQudG9Mb3dlckNhc2UoKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2Nzc0NvbXBsZXRpb25z
LmtleVNldCgpLmhhc093blByb3BlcnR5KHdvcmQpOworICAgICAgICByZXR1cm4gY3NzQ29tcGxl
dGlvbnMua2V5U2V0KCkuaGFzT3duUHJvcGVydHkod29yZCk7CiAgICAgfSwKIAogICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7RWxlbWVudH0gcHJveHlFbGVtZW50CiAgICAgICogQHBhcmFtIHtSYW5n
ZX0gd29yZFJhbmdlCiAgICAgICogQHBhcmFtIHtib29sZWFufSBmb3JjZQotICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oQXJyYXkuPHN0cmluZz4sIG51bWJlcj0pfSBjb21wbGV0aW9uc1JlYWR5Q2Fs
bGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKCFBcnJheS48c3RyaW5nPiwgbnVtYmVyPSl9
IGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjawogICAgICAqLwogICAgIF9idWlsZFByb3BlcnR5Q29t
cGxldGlvbnM6IGZ1bmN0aW9uKHByb3h5RWxlbWVudCwgd29yZFJhbmdlLCBmb3JjZSwgY29tcGxl
dGlvbnNSZWFkeUNhbGxiYWNrKQogICAgIHsKKyAgICAgICAgdmFyIGNzc0NvbXBsZXRpb25zID0g
dGhpcy5fY3NzQ29tcGxldGlvbnM7CisgICAgICAgIGlmICghY3NzQ29tcGxldGlvbnMpCisgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciBwcmVmaXggPSB3b3JkUmFuZ2UudG9TdHJpbmco
KS50b0xvd2VyQ2FzZSgpOwogICAgICAgICBpZiAoIXByZWZpeCAmJiAhZm9yY2UpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIHJlc3VsdHMgPSB0aGlzLl9jc3NDb21wbGV0aW9u
cy5zdGFydHNXaXRoKHByZWZpeCk7Ci0gICAgICAgIHZhciBzZWxlY3RlZEluZGV4ID0gdGhpcy5f
Y3NzQ29tcGxldGlvbnMubW9zdFVzZWRPZihyZXN1bHRzKTsKKyAgICAgICAgdmFyIHJlc3VsdHMg
PSBjc3NDb21wbGV0aW9ucy5zdGFydHNXaXRoKHByZWZpeCk7CisgICAgICAgIHZhciBzZWxlY3Rl
ZEluZGV4ID0gY3NzQ29tcGxldGlvbnMubW9zdFVzZWRPZihyZXN1bHRzKTsKICAgICAgICAgY29t
cGxldGlvbnNSZWFkeUNhbGxiYWNrKHJlc3VsdHMsIHNlbGVjdGVkSW5kZXgpOwogICAgIH0sCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3VnZ2VzdEJv
eC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3VnZ2VzdEJveC5qcwpp
bmRleCBiOTNiZWQ4Yjc2ZTk1NjEzYTg3M2ZlNDFmYzQyNGUxZTg0NWZjZDhmLi42ZGI5Y2ZiMDEx
NmUwNDhjMjFkOGRlMDEyMzVjZTBiZTk4ZDNlZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N1Z2dlc3RCb3guanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TdWdnZXN0Qm94LmpzCkBAIC00NiwyMyArNDYsMTggQEAgV2Vi
SW5zcGVjdG9yLlN1Z2dlc3RCb3hEZWxlZ2F0ZS5wcm90b3R5cGUgPSB7CiAgICAgICogYWNjZXB0
U3VnZ2VzdGlvbiB3aWxsIGJlIGFsd2F5cyBjYWxsZWQgYWZ0ZXIgY2FsbCB0byBhcHBseVN1Z2dl
c3Rpb24gd2l0aCBpc0ludGVybWVkaWF0ZVN1Z2dlc3Rpb24gYmVpbmcgZXF1YWwgdG8gZmFsc2Uu
CiAgICAgICovCiAgICAgYWNjZXB0U3VnZ2VzdGlvbjogZnVuY3Rpb24oKSB7IH0sCi0KLSAgICAv
KioKLSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Ci0gICAgICovCi0gICAgdXNlckVudGVyZWRUZXh0
OiBmdW5jdGlvbigpIHsgfQogfQogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuU3VnZ2VzdEJveERlbGVnYXRlfSBzdWdnZXN0Qm94RGVsZWdhdGUKLSAqIEBw
YXJhbSB7RWxlbWVudH0gaW5wdXRFbGVtZW50Ci0gKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1l
CisgKiBAcGFyYW0ge0VsZW1lbnR9IGFuY2hvckVsZW1lbnQKKyAqIEBwYXJhbSB7c3RyaW5nPX0g
Y2xhc3NOYW1lCiAgKi8KLVdlYkluc3BlY3Rvci5TdWdnZXN0Qm94ID0gZnVuY3Rpb24oc3VnZ2Vz
dEJveERlbGVnYXRlLCBpbnB1dEVsZW1lbnQsIGNsYXNzTmFtZSkKK1dlYkluc3BlY3Rvci5TdWdn
ZXN0Qm94ID0gZnVuY3Rpb24oc3VnZ2VzdEJveERlbGVnYXRlLCBhbmNob3JFbGVtZW50LCBjbGFz
c05hbWUpCiB7CiAgICAgdGhpcy5fc3VnZ2VzdEJveERlbGVnYXRlID0gc3VnZ2VzdEJveERlbGVn
YXRlOwotICAgIHRoaXMuX2lucHV0RWxlbWVudCA9IGlucHV0RWxlbWVudDsKKyAgICB0aGlzLl9h
bmNob3JFbGVtZW50ID0gYW5jaG9yRWxlbWVudDsKICAgICB0aGlzLl9sZW5ndGggPSAwOwogICAg
IHRoaXMuX3NlbGVjdGVkSW5kZXggPSAtMTsKICAgICB0aGlzLl9zZWxlY3RlZEVsZW1lbnQgPSBu
dWxsOwpAQCAtNzEsOCArNjYsOCBAQCBXZWJJbnNwZWN0b3IuU3VnZ2VzdEJveCA9IGZ1bmN0aW9u
KHN1Z2dlc3RCb3hEZWxlZ2F0ZSwgaW5wdXRFbGVtZW50LCBjbGFzc05hbWUpCiAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMuX2JvdW5kT25TY3JvbGwsIHRydWUpOwog
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCB0aGlzLl9ib3VuZE9uUmVzaXpl
LCB0cnVlKTsKIAotICAgIHRoaXMuX2JvZHlFbGVtZW50ID0gaW5wdXRFbGVtZW50Lm93bmVyRG9j
dW1lbnQuYm9keTsKLSAgICB0aGlzLl9lbGVtZW50ID0gaW5wdXRFbGVtZW50Lm93bmVyRG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgdGhpcy5fYm9keUVsZW1lbnQgPSBhbmNob3JF
bGVtZW50Lm93bmVyRG9jdW1lbnQuYm9keTsKKyAgICB0aGlzLl9lbGVtZW50ID0gYW5jaG9yRWxl
bWVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMuX2VsZW1l
bnQuY2xhc3NOYW1lID0gInN1Z2dlc3QtYm94ICIgKyAoY2xhc3NOYW1lIHx8ICIiKTsKICAgICB0
aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX29uQm94TW91
c2VEb3duLmJpbmQodGhpcyksIHRydWUpOwogICAgIHRoaXMuY29udGFpbmVyRWxlbWVudCA9IHRo
aXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJjb250YWluZXIiKTsKQEAgLTk2LDE5ICs5
MSwxNiBAQCBXZWJJbnNwZWN0b3IuU3VnZ2VzdEJveC5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICBpZiAoaXNTY3JvbGwgJiYgdGhpcy5fZWxlbWVudC5pc0FuY2VzdG9yKGV2ZW50LnRhcmdl
dCkgfHwgIXRoaXMudmlzaWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlz
Ll91cGRhdGVCb3hQb3NpdGlvbldpdGhFeGlzdGluZ0FuY2hvcigpOwotICAgIH0sCi0KLSAgICBf
dXBkYXRlQm94UG9zaXRpb25XaXRoRXhpc3RpbmdBbmNob3I6IGZ1bmN0aW9uKCkKLSAgICB7CiAg
ICAgICAgIHRoaXMuX3VwZGF0ZUJveFBvc2l0aW9uKHRoaXMuX2FuY2hvckJveCk7CiAgICAgfSwK
IAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7QW5jaG9yQm94fSBhbmNob3JCb3gKKyAgICAgKiBA
cGFyYW0ge0FuY2hvckJveD19IGFuY2hvckJveAogICAgICAqLwogICAgIF91cGRhdGVCb3hQb3Np
dGlvbjogZnVuY3Rpb24oYW5jaG9yQm94KQogICAgIHsKKyAgICAgICAgdGhpcy5fYW5jaG9yQm94
ID0gYW5jaG9yQm94ID0gYW5jaG9yQm94IHx8IHRoaXMuX2FuY2hvckVsZW1lbnQuYm94SW5XaW5k
b3cod2luZG93KTsKKwogICAgICAgICAvLyBNZWFzdXJlIHRoZSBjb250ZW50IGVsZW1lbnQgYm94
LgogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lLWJs
b2NrIjsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRlbnRFbGVt
ZW50KTsKQEAgLTExOCwxMSArMTEwLDEwIEBAIFdlYkluc3BlY3Rvci5TdWdnZXN0Qm94LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gImJs
b2NrIjsKICAgICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuY29u
dGVudEVsZW1lbnQpOwogCi0gICAgICAgIC8vIExheSBvdXQgdGhlIHN1Z2dlc3QtYm94IHJlbGF0
aXZlIHRvIHRoZSBhbmNob3JCb3guCi0gICAgICAgIHRoaXMuX2FuY2hvckJveCA9IGFuY2hvckJv
eDsKICAgICAgICAgY29uc3Qgc3BhY2VyID0gNjsKLQogICAgICAgICBjb25zdCBzdWdnZXN0Qm94
UGFkZGluZ1ggPSAyMTsKKyAgICAgICAgY29uc3Qgc3VnZ2VzdEJveFBhZGRpbmdZID0gMjsKKwog
ICAgICAgICB2YXIgbWF4V2lkdGggPSBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoIC0gYW5jaG9y
Qm94LnggLSBzcGFjZXI7CiAgICAgICAgIHZhciB3aWR0aCA9IE1hdGgubWluKGNvbnRlbnRXaWR0
aCwgbWF4V2lkdGggLSBzdWdnZXN0Qm94UGFkZGluZ1gpICsgc3VnZ2VzdEJveFBhZGRpbmdYOwog
ICAgICAgICB2YXIgcGFkZGVkV2lkdGggPSBjb250ZW50V2lkdGggKyBzdWdnZXN0Qm94UGFkZGlu
Z1g7CkBAIC0xMzQsNyArMTI1LDYgQEAgV2ViSW5zcGVjdG9yLlN1Z2dlc3RCb3gucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgYm94WCA9IGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggLSB3aWR0
aDsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IHN1Z2dlc3RCb3hQYWRkaW5nWSA9IDI7CiAg
ICAgICAgIHZhciBib3hZOwogICAgICAgICB2YXIgYWJvdmVIZWlnaHQgPSBhbmNob3JCb3gueTsK
ICAgICAgICAgdmFyIHVuZGVySGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgLSBh
bmNob3JCb3gueSAtIGFuY2hvckJveC5oZWlnaHQ7CkBAIC0yNjgsMTUgKzI1OCwxNSBAQCBXZWJJ
bnNwZWN0b3IuU3VnZ2VzdEJveC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz49fSBpdGVtcwotICAgICAqIEBwYXJhbSB7bnVtYmVy
PX0gc2VsZWN0ZWRJbmRleAorICAgICAqIEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSBpdGVtcwor
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzZWxlY3RlZEluZGV4CisgICAgICogQHBhcmFtIHtzdHJp
bmd9IHVzZXJFbnRlcmVkVGV4dAogICAgICAqLwotICAgIF91cGRhdGVJdGVtczogZnVuY3Rpb24o
aXRlbXMsIHNlbGVjdGVkSW5kZXgpCisgICAgX3VwZGF0ZUl0ZW1zOiBmdW5jdGlvbihpdGVtcywg
c2VsZWN0ZWRJbmRleCwgdXNlckVudGVyZWRUZXh0KQogICAgIHsKICAgICAgICAgdGhpcy5fbGVu
Z3RoID0gaXRlbXMubGVuZ3RoOwogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnJlbW92ZUNo
aWxkcmVuKCk7CiAKLSAgICAgICAgdmFyIHVzZXJFbnRlcmVkVGV4dCA9IHRoaXMuX3N1Z2dlc3RC
b3hEZWxlZ2F0ZS51c2VyRW50ZXJlZFRleHQoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBpdGVtcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGl0ZW0gPSBpdGVtc1tpXTsK
ICAgICAgICAgICAgIHZhciBjdXJyZW50SXRlbUVsZW1lbnQgPSB0aGlzLl9jcmVhdGVJdGVtRWxl
bWVudCh1c2VyRW50ZXJlZFRleHQsIGl0ZW0pOwpAQCAtMzA0LDEwICsyOTQsMTEgQEAgV2ViSW5z
cGVjdG9yLlN1Z2dlc3RCb3gucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAg
KiBAcGFyYW0ge0FycmF5LjxzdHJpbmc+PX0gY29tcGxldGlvbnMKLSAgICAgKiBAcGFyYW0ge2Jv
b2xlYW49fSBjYW5TaG93Rm9yU2luZ2xlSXRlbQorICAgICAqIEBwYXJhbSB7IUFycmF5LjxzdHJp
bmc+fSBjb21wbGV0aW9ucworICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2FuU2hvd0ZvclNpbmds
ZUl0ZW0KKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXNlckVudGVyZWRUZXh0CiAgICAgICovCi0g
ICAgX2NhblNob3dCb3g6IGZ1bmN0aW9uKGNvbXBsZXRpb25zLCBjYW5TaG93Rm9yU2luZ2xlSXRl
bSkKKyAgICBfY2FuU2hvd0JveDogZnVuY3Rpb24oY29tcGxldGlvbnMsIGNhblNob3dGb3JTaW5n
bGVJdGVtLCB1c2VyRW50ZXJlZFRleHQpCiAgICAgewogICAgICAgICBpZiAoIWNvbXBsZXRpb25z
IHx8ICFjb21wbGV0aW9ucy5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0z
MTYsNyArMzA3LDcgQEAgV2ViSW5zcGVjdG9yLlN1Z2dlc3RCb3gucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgLy8gRG8gbm90IHNob3cgYSBzaW5nbGUg
c3VnZ2VzdGlvbiBpZiBpdCBpcyB0aGUgc2FtZSBhcyB1c2VyLWVudGVyZWQgcHJlZml4LCBldmVu
IGlmIGFsbG93ZWQgdG8gc2hvdyBzaW5nbGUtaXRlbSBzdWdnZXN0IGJveGVzLgotICAgICAgICBy
ZXR1cm4gY2FuU2hvd0ZvclNpbmdsZUl0ZW0gJiYgY29tcGxldGlvbnNbMF0gIT09IHRoaXMuX3N1
Z2dlc3RCb3hEZWxlZ2F0ZS51c2VyRW50ZXJlZFRleHQoKTsKKyAgICAgICAgcmV0dXJuIGNhblNo
b3dGb3JTaW5nbGVJdGVtICYmIGNvbXBsZXRpb25zWzBdICE9PSB1c2VyRW50ZXJlZFRleHQ7CiAg
ICAgfSwKIAogICAgIF9yZW1lbWJlclJvd0NvdW50UGVyVmlld3BvcnQ6IGZ1bmN0aW9uKCkKQEAg
LTMyOCwxNSArMzE5LDE2IEBAIFdlYkluc3BlY3Rvci5TdWdnZXN0Qm94LnByb3RvdHlwZSA9IHsK
ICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtBbmNob3JCb3h9IGFuY2hvckJveAot
ICAgICAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz49fSBjb21wbGV0aW9ucwotICAgICAqIEBwYXJh
bSB7bnVtYmVyPX0gc2VsZWN0ZWRJbmRleAotICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGNhblNo
b3dGb3JTaW5nbGVJdGVtCisgICAgICogQHBhcmFtIHshQXJyYXkuPHN0cmluZz59IGNvbXBsZXRp
b25zCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHNlbGVjdGVkSW5kZXgKKyAgICAgKiBAcGFyYW0g
e2Jvb2xlYW59IGNhblNob3dGb3JTaW5nbGVJdGVtCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHVz
ZXJFbnRlcmVkVGV4dAorICAgICAqIEBwYXJhbSB7QW5jaG9yQm94PX0gYW5jaG9yQm94CiAgICAg
ICovCi0gICAgdXBkYXRlU3VnZ2VzdGlvbnM6IGZ1bmN0aW9uKGFuY2hvckJveCwgY29tcGxldGlv
bnMsIHNlbGVjdGVkSW5kZXgsIGNhblNob3dGb3JTaW5nbGVJdGVtKQorICAgIHVwZGF0ZVN1Z2dl
c3Rpb25zOiBmdW5jdGlvbihjb21wbGV0aW9ucywgc2VsZWN0ZWRJbmRleCwgY2FuU2hvd0ZvclNp
bmdsZUl0ZW0sIHVzZXJFbnRlcmVkVGV4dCwgYW5jaG9yQm94KQogICAgIHsKLSAgICAgICAgaWYg
KHRoaXMuX2NhblNob3dCb3goY29tcGxldGlvbnMsIGNhblNob3dGb3JTaW5nbGVJdGVtKSkgewot
ICAgICAgICAgICAgdGhpcy5fdXBkYXRlSXRlbXMoY29tcGxldGlvbnMsIHNlbGVjdGVkSW5kZXgp
OworICAgICAgICBpZiAodGhpcy5fY2FuU2hvd0JveChjb21wbGV0aW9ucywgISFjYW5TaG93Rm9y
U2luZ2xlSXRlbSwgdXNlckVudGVyZWRUZXh0KSkgeworICAgICAgICAgICAgdGhpcy5fdXBkYXRl
SXRlbXMoY29tcGxldGlvbnMsIHNlbGVjdGVkSW5kZXgsIHVzZXJFbnRlcmVkVGV4dCk7CiAgICAg
ICAgICAgICB0aGlzLl91cGRhdGVCb3hQb3NpdGlvbihhbmNob3JCb3gpOwogICAgICAgICAgICAg
aWYgKCF0aGlzLnZpc2libGUoKSkKICAgICAgICAgICAgICAgICB0aGlzLl9ib2R5RWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGV4dFByb21wdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGV4dFByb21wdC5qcwppbmRleCBlNTFmMDgzZjYxNmViYTA0YTU1NzQ2NWVm
MGU0MTVmYzE4NjFmZDY4Li4xN2I3Y2U2MGU5ZWRmMmI0YTQ2YmQzNGIxMzViMjlmNDhkN2FhYWMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9t
cHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0
LmpzCkBAIC0zMSw3ICszMSw3IEBACiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYmplY3QKICAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuU3VnZ2VzdEJveERl
bGVnYXRlfQotICogQHBhcmFtIHtmdW5jdGlvbihFbGVtZW50LCBSYW5nZSwgYm9vbGVhbiwgZnVu
Y3Rpb24oQXJyYXkuPHN0cmluZz4sIG51bWJlcj0pKX0gY29tcGxldGlvbnMKKyAqIEBwYXJhbSB7
ZnVuY3Rpb24oRWxlbWVudCwgUmFuZ2UsIGJvb2xlYW4sIGZ1bmN0aW9uKCFBcnJheS48c3RyaW5n
PiwgbnVtYmVyPSkpfSBjb21wbGV0aW9ucwogICogQHBhcmFtIHtzdHJpbmc9fSBzdG9wQ2hhcmFj
dGVycwogICovCiBXZWJJbnNwZWN0b3IuVGV4dFByb21wdCA9IGZ1bmN0aW9uKGNvbXBsZXRpb25z
LCBzdG9wQ2hhcmFjdGVycykKQEAgLTUyLDExICs1Miw2IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJv
bXB0LkV2ZW50cyA9IHsKIH07CiAKIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9
IHsKLSAgICB1c2VyRW50ZXJlZFRleHQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl91c2VyRW50ZXJlZFRleHQ7Ci0gICAgfSwKLQogICAgIGdldCBwcm94eUVsZW1lbnQo
KQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3h5RWxlbWVudDsKQEAgLTQzOCwxMiAr
NDMzLDEyIEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgKiBA
cGFyYW0ge2Jvb2xlYW59IGF1dG8KICAgICAgKiBAcGFyYW0ge1JhbmdlfSBvcmlnaW5hbFdvcmRQ
cmVmaXhSYW5nZQogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmV2ZXJzZQotICAgICAqIEBwYXJh
bSB7QXJyYXkuPHN0cmluZz49fSBjb21wbGV0aW9ucworICAgICAqIEBwYXJhbSB7IUFycmF5Ljxz
dHJpbmc+fSBjb21wbGV0aW9ucwogICAgICAqIEBwYXJhbSB7bnVtYmVyPX0gc2VsZWN0ZWRJbmRl
eAogICAgICAqLwogICAgIF9jb21wbGV0aW9uc1JlYWR5OiBmdW5jdGlvbihzZWxlY3Rpb24sIGF1
dG8sIG9yaWdpbmFsV29yZFByZWZpeFJhbmdlLCByZXZlcnNlLCBjb21wbGV0aW9ucywgc2VsZWN0
ZWRJbmRleCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fd2FpdGluZ0ZvckNvbXBsZXRpb25z
IHx8ICFjb21wbGV0aW9ucyB8fCAhY29tcGxldGlvbnMubGVuZ3RoKSB7CisgICAgICAgIGlmICgh
dGhpcy5fd2FpdGluZ0ZvckNvbXBsZXRpb25zIHx8ICFjb21wbGV0aW9ucy5sZW5ndGgpIHsKICAg
ICAgICAgICAgIHRoaXMuaGlkZVN1Z2dlc3RCb3goKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpAQCAtNDY0LDcgKzQ1OSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5fdXNlckVudGVyZWRUZXh0ID0gZnVsbFdvcmRSYW5nZS50
b1N0cmluZygpOwogCiAgICAgICAgIGlmICh0aGlzLl9zdWdnZXN0Qm94KQotICAgICAgICAgICAg
dGhpcy5fc3VnZ2VzdEJveC51cGRhdGVTdWdnZXN0aW9ucyh0aGlzLl9ib3hGb3JBbmNob3JBdFN0
YXJ0KHNlbGVjdGlvbiwgZnVsbFdvcmRSYW5nZSksIGNvbXBsZXRpb25zLCBzZWxlY3RlZEluZGV4
LCAhdGhpcy5pc0NhcmV0QXRFbmRPZlByb21wdCgpKTsKKyAgICAgICAgICAgIHRoaXMuX3N1Z2dl
c3RCb3gudXBkYXRlU3VnZ2VzdGlvbnMoY29tcGxldGlvbnMsIHNlbGVjdGVkSW5kZXgsICF0aGlz
LmlzQ2FyZXRBdEVuZE9mUHJvbXB0KCksIHRoaXMuX3VzZXJFbnRlcmVkVGV4dCwgdGhpcy5fYm94
Rm9yQW5jaG9yQXRTdGFydChzZWxlY3Rpb24sIGZ1bGxXb3JkUmFuZ2UpKTsKIAogICAgICAgICB2
YXIgd29yZFByZWZpeExlbmd0aCA9IG9yaWdpbmFsV29yZFByZWZpeFJhbmdlLnRvU3RyaW5nKCku
bGVuZ3RoOwogCkBAIC03NzgsNyArNzczLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJv
dG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0
b3IuVGV4dFByb21wdH0KLSAqIEBwYXJhbSB7ZnVuY3Rpb24oRWxlbWVudCwgUmFuZ2UsIGJvb2xl
YW4sIGZ1bmN0aW9uKEFycmF5LjxzdHJpbmc+LG51bWJlcj0pKX0gY29tcGxldGlvbnMKKyAqIEBw
YXJhbSB7ZnVuY3Rpb24oRWxlbWVudCwgUmFuZ2UsIGJvb2xlYW4sIGZ1bmN0aW9uKCFBcnJheS48
c3RyaW5nPiwgbnVtYmVyPSkpfSBjb21wbGV0aW9ucwogICogQHBhcmFtIHtzdHJpbmc9fSBzdG9w
Q2hhcmFjdGVycwogICovCiBXZWJJbnNwZWN0b3IuVGV4dFByb21wdFdpdGhIaXN0b3J5ID0gZnVu
Y3Rpb24oY29tcGxldGlvbnMsIHN0b3BDaGFyYWN0ZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191490</attachid>
            <date>2013-03-05 06:57:09 -0800</date>
            <delta_ts>2013-03-07 01:51:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111301-20130305185315.patch</filename>
            <type>text/plain</type>
            <size>12890</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZmMTJiMDEyMjY0ZTli
Mzk5OTBlY2M3NGJjMGU5OTY0NGIzMjBhMy4uNTljMmVkMDA4YTkyZDFhYTZlODBhN2M4MWJkYjRk
MGUzNzNmYzEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEzLTAzLTA1ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJlZmFjdG9yaW5nczogUHJlcGFyZSBTdWdnZXN0Qm94IGZvciByZXVzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTMwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDEpIFJlbW92ZSB1c2Vy
RW50ZXJlZFRleHQgZnJvbSBkZWxlZ2F0ZSBpbnRlcmZhY2UuCisgICAgICAgICAgIFBhc3MgcHJl
Zml4IHRvIHVwZGF0ZVN1Z2dlc3Rpb25zIGluc3RlYWQuCisgICAgICAgIDIpIENsYXJpZnkgdGhh
dCBzdWdnZXN0aW9ucyBhcnJheSBpcyBuZXZlciBudWxsLgorCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TdWdnZXN0Qm94LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN1Z2dlc3RC
b3gpOiBSZW5hbWVkIHBhcmFtZXRlci9tZW1iZXIuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU3Vn
Z2VzdEJveC5wcm90b3R5cGUuX3VwZGF0ZUl0ZW1zKToKKyAgICAgICAgTWlub3IgcmVhZGFiaWxp
dHkgY2hhbmdlcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdWdnZXN0Qm94LnByb3RvdHlwZS5f
Y2FuU2hvd0JveCk6CisgICAgICAgIFVzZSB1c2VyRW50ZXJlZFRleHQgcGFyYW1ldGVyLgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlN1Z2dlc3RCb3gucHJvdG90eXBlLnVwZGF0ZVN1Z2dlc3Rpb25z
KToKKyAgICAgICAgUGFzcyB1c2VyRW50ZXJlZFRleHQgdG8gX2NhblNob3dCb3guCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qczogRml4IEpTRG9jcy4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1J1bnRpbWVNb2RlbC5qczogRGl0dG8uCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzOiBEaXR0by4KKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5fY29tcGxldGlvbnNSZWFkeSk6
CisgICAgICAgIFBhc3MgdXNlckVudGVyZWRUZXh0IHRvIHVwZGF0ZVN1Z2dlc3Rpb25zLgorCisy
MDEzLTAzLTA1ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IENsYXJpZnkgc29tZSBTdHlsZXNTaWRlYmFyUGFuZWwgYW5k
IENTU01ldGFkYXRhIEpTRG9jcy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMTQyNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwppbmRleCA1YTQ0YWI0NWMxODI5MWI1
MTdlZTcyODU0NWQ1OGY3ZGMwMWVkMDgyLi5mZDZjZTlmMGVjYTkyNjJmY2Y2OTI4YTkwNmQ3NGY4
MjNhZjIzYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RhdGFiYXNlUXVlcnlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMKQEAgLTY1LDcgKzY1LDcgQEAgV2ViSW5zcGVjdG9y
LkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge0VsZW1lbnR9
IHByb3h5RWxlbWVudAogICAgICAqIEBwYXJhbSB7UmFuZ2V9IHdvcmRSYW5nZQogICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gZm9yY2UKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxzdHJp
bmc+LCBudW1iZXI9KX0gY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrCisgICAgICogQHBhcmFtIHtm
dW5jdGlvbighQXJyYXkuPHN0cmluZz4sIG51bWJlcj0pfSBjb21wbGV0aW9uc1JlYWR5Q2FsbGJh
Y2sKICAgICAgKi8KICAgICBjb21wbGV0aW9uczogZnVuY3Rpb24ocHJveHlFbGVtZW50LCB3b3Jk
UmFuZ2UsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SdW50aW1lTW9kZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1J1bnRpbWVNb2RlbC5qcwppbmRleCBi
ZWY5MTc3NDhkOTkyMTg3NDA5ZWUzYTUyZTExZDJkNTQzZDQ2NWRkLi5jNWJkZWViMGE5NDI2Yzg4
MzRiMTNjN2RhYzRjOTUyNmY2MGFhMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1J1bnRpbWVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1J1bnRpbWVNb2RlbC5qcwpAQCAtMTY5LDcgKzE2OSw3IEBAIFdlYklu
c3BlY3Rvci5SdW50aW1lTW9kZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7RWxlbWVu
dH0gcHJveHlFbGVtZW50CiAgICAgICogQHBhcmFtIHtSYW5nZX0gd29yZFJhbmdlCiAgICAgICog
QHBhcmFtIHtib29sZWFufSBmb3JjZQotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPHN0
cmluZz4sIG51bWJlcj0pfSBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2sKKyAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKCFBcnJheS48c3RyaW5nPiwgbnVtYmVyPSl9IGNvbXBsZXRpb25zUmVhZHlDYWxs
YmFjawogICAgICAqLwogICAgIGNvbXBsZXRpb25zRm9yVGV4dFByb21wdDogZnVuY3Rpb24ocHJv
eHlFbGVtZW50LCB3b3JkUmFuZ2UsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAg
ICAgewpAQCAtMTg0LDcgKzE4NCw3IEBAIFdlYkluc3BlY3Rvci5SdW50aW1lTW9kZWwucHJvdG90
eXBlID0gewogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBleHByZXNzaW9uU3RyaW5nCiAgICAgICog
QHBhcmFtIHtzdHJpbmd9IHByZWZpeAogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZm9yY2UKLSAg
ICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxzdHJpbmc+LCBudW1iZXI9KX0gY29tcGxldGlv
bnNSZWFkeUNhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbighQXJyYXkuPHN0cmluZz4s
IG51bWJlcj0pfSBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2sKICAgICAgKi8KICAgICBfY29tcGxl
dGlvbnNGb3JFeHByZXNzaW9uOiBmdW5jdGlvbihleHByZXNzaW9uU3RyaW5nLCBwcmVmaXgsIGZv
cmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAgICAgewpAQCAtMjc2LDcgKzI3Niw3IEBA
IFdlYkluc3BlY3Rvci5SdW50aW1lTW9kZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxzdHJpbmc+LCBudW1iZXI9KX0gY29t
cGxldGlvbnNSZWFkeUNhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbighQXJyYXkuPHN0
cmluZz4sIG51bWJlcj0pfSBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2sKICAgICAgKiBAcGFyYW0g
e2Jvb2xlYW59IGRvdE5vdGF0aW9uCiAgICAgICogQHBhcmFtIHtib29sZWFufSBicmFja2V0Tm90
YXRpb24KICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXhwcmVzc2lvblN0cmluZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdWdnZXN0Qm94LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdWdnZXN0Qm94LmpzCmluZGV4IGI5M2Jl
ZDhiNzZlOTU2MTNhODczZmU0MWZjNDI0ZTFlODQ1ZmNkOGYuLjEzYTRlNDk2MzZkY2E4M2VjZDQy
Nzg0ZmMxNGI0NTRlOWQ1Nzc5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU3VnZ2VzdEJveC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1N1Z2dlc3RCb3guanMKQEAgLTQ2LDIzICs0NiwxOCBAQCBXZWJJbnNwZWN0b3Iu
U3VnZ2VzdEJveERlbGVnYXRlLnByb3RvdHlwZSA9IHsKICAgICAgKiBhY2NlcHRTdWdnZXN0aW9u
IHdpbGwgYmUgYWx3YXlzIGNhbGxlZCBhZnRlciBjYWxsIHRvIGFwcGx5U3VnZ2VzdGlvbiB3aXRo
IGlzSW50ZXJtZWRpYXRlU3VnZ2VzdGlvbiBiZWluZyBlcXVhbCB0byBmYWxzZS4KICAgICAgKi8K
ICAgICBhY2NlcHRTdWdnZXN0aW9uOiBmdW5jdGlvbigpIHsgfSwKLQotICAgIC8qKgotICAgICAq
IEByZXR1cm4ge3N0cmluZ30KLSAgICAgKi8KLSAgICB1c2VyRW50ZXJlZFRleHQ6IGZ1bmN0aW9u
KCkgeyB9CiB9CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5TdWdnZXN0Qm94RGVsZWdhdGV9IHN1Z2dlc3RCb3hEZWxlZ2F0ZQotICogQHBhcmFtIHtFbGVt
ZW50fSBpbnB1dEVsZW1lbnQKLSAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWUKKyAqIEBwYXJh
bSB7RWxlbWVudH0gYW5jaG9yRWxlbWVudAorICogQHBhcmFtIHtzdHJpbmc9fSBjbGFzc05hbWUK
ICAqLwotV2ViSW5zcGVjdG9yLlN1Z2dlc3RCb3ggPSBmdW5jdGlvbihzdWdnZXN0Qm94RGVsZWdh
dGUsIGlucHV0RWxlbWVudCwgY2xhc3NOYW1lKQorV2ViSW5zcGVjdG9yLlN1Z2dlc3RCb3ggPSBm
dW5jdGlvbihzdWdnZXN0Qm94RGVsZWdhdGUsIGFuY2hvckVsZW1lbnQsIGNsYXNzTmFtZSkKIHsK
ICAgICB0aGlzLl9zdWdnZXN0Qm94RGVsZWdhdGUgPSBzdWdnZXN0Qm94RGVsZWdhdGU7Ci0gICAg
dGhpcy5faW5wdXRFbGVtZW50ID0gaW5wdXRFbGVtZW50OworICAgIHRoaXMuX2FuY2hvckVsZW1l
bnQgPSBhbmNob3JFbGVtZW50OwogICAgIHRoaXMuX2xlbmd0aCA9IDA7CiAgICAgdGhpcy5fc2Vs
ZWN0ZWRJbmRleCA9IC0xOwogICAgIHRoaXMuX3NlbGVjdGVkRWxlbWVudCA9IG51bGw7CkBAIC03
MSw4ICs2Niw4IEBAIFdlYkluc3BlY3Rvci5TdWdnZXN0Qm94ID0gZnVuY3Rpb24oc3VnZ2VzdEJv
eERlbGVnYXRlLCBpbnB1dEVsZW1lbnQsIGNsYXNzTmFtZSkKICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigic2Nyb2xsIiwgdGhpcy5fYm91bmRPblNjcm9sbCwgdHJ1ZSk7CiAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHRoaXMuX2JvdW5kT25SZXNpemUsIHRydWUpOwog
Ci0gICAgdGhpcy5fYm9keUVsZW1lbnQgPSBpbnB1dEVsZW1lbnQub3duZXJEb2N1bWVudC5ib2R5
OwotICAgIHRoaXMuX2VsZW1lbnQgPSBpbnB1dEVsZW1lbnQub3duZXJEb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKKyAgICB0aGlzLl9ib2R5RWxlbWVudCA9IGFuY2hvckVsZW1lbnQub3du
ZXJEb2N1bWVudC5ib2R5OworICAgIHRoaXMuX2VsZW1lbnQgPSBhbmNob3JFbGVtZW50Lm93bmVy
RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5fZWxlbWVudC5jbGFzc05h
bWUgPSAic3VnZ2VzdC1ib3ggIiArIChjbGFzc05hbWUgfHwgIiIpOwogICAgIHRoaXMuX2VsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fb25Cb3hNb3VzZURvd24uYmlu
ZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5jb250YWluZXJFbGVtZW50ID0gdGhpcy5fZWxlbWVu
dC5jcmVhdGVDaGlsZCgiZGl2IiwgImNvbnRhaW5lciIpOwpAQCAtOTYsMTEgKzkxLDYgQEAgV2Vi
SW5zcGVjdG9yLlN1Z2dlc3RCb3gucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKGlz
U2Nyb2xsICYmIHRoaXMuX2VsZW1lbnQuaXNBbmNlc3RvcihldmVudC50YXJnZXQpIHx8ICF0aGlz
LnZpc2libGUoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fdXBkYXRlQm94
UG9zaXRpb25XaXRoRXhpc3RpbmdBbmNob3IoKTsKLSAgICB9LAotCi0gICAgX3VwZGF0ZUJveFBv
c2l0aW9uV2l0aEV4aXN0aW5nQW5jaG9yOiBmdW5jdGlvbigpCi0gICAgewogICAgICAgICB0aGlz
Ll91cGRhdGVCb3hQb3NpdGlvbih0aGlzLl9hbmNob3JCb3gpOwogICAgIH0sCiAKQEAgLTEwOSw2
ICs5OSw4IEBAIFdlYkluc3BlY3Rvci5TdWdnZXN0Qm94LnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICBfdXBkYXRlQm94UG9zaXRpb246IGZ1bmN0aW9uKGFuY2hvckJveCkKICAgICB7CisgICAg
ICAgIHRoaXMuX2FuY2hvckJveCA9IGFuY2hvckJveDsKKwogICAgICAgICAvLyBNZWFzdXJlIHRo
ZSBjb250ZW50IGVsZW1lbnQgYm94LgogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnN0eWxl
LmRpc3BsYXkgPSAiaW5saW5lLWJsb2NrIjsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZCh0aGlzLmNvbnRlbnRFbGVtZW50KTsKQEAgLTExOCwxMSArMTEwLDEwIEBAIFdlYkluc3Bl
Y3Rvci5TdWdnZXN0Qm94LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVu
dC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50
LmFwcGVuZENoaWxkKHRoaXMuY29udGVudEVsZW1lbnQpOwogCi0gICAgICAgIC8vIExheSBvdXQg
dGhlIHN1Z2dlc3QtYm94IHJlbGF0aXZlIHRvIHRoZSBhbmNob3JCb3guCi0gICAgICAgIHRoaXMu
X2FuY2hvckJveCA9IGFuY2hvckJveDsKICAgICAgICAgY29uc3Qgc3BhY2VyID0gNjsKLQogICAg
ICAgICBjb25zdCBzdWdnZXN0Qm94UGFkZGluZ1ggPSAyMTsKKyAgICAgICAgY29uc3Qgc3VnZ2Vz
dEJveFBhZGRpbmdZID0gMjsKKwogICAgICAgICB2YXIgbWF4V2lkdGggPSBkb2N1bWVudC5ib2R5
Lm9mZnNldFdpZHRoIC0gYW5jaG9yQm94LnggLSBzcGFjZXI7CiAgICAgICAgIHZhciB3aWR0aCA9
IE1hdGgubWluKGNvbnRlbnRXaWR0aCwgbWF4V2lkdGggLSBzdWdnZXN0Qm94UGFkZGluZ1gpICsg
c3VnZ2VzdEJveFBhZGRpbmdYOwogICAgICAgICB2YXIgcGFkZGVkV2lkdGggPSBjb250ZW50V2lk
dGggKyBzdWdnZXN0Qm94UGFkZGluZ1g7CkBAIC0xMzQsNyArMTI1LDYgQEAgV2ViSW5zcGVjdG9y
LlN1Z2dlc3RCb3gucHJvdG90eXBlID0gewogICAgICAgICAgICAgYm94WCA9IGRvY3VtZW50LmJv
ZHkub2Zmc2V0V2lkdGggLSB3aWR0aDsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IHN1Z2dl
c3RCb3hQYWRkaW5nWSA9IDI7CiAgICAgICAgIHZhciBib3hZOwogICAgICAgICB2YXIgYWJvdmVI
ZWlnaHQgPSBhbmNob3JCb3gueTsKICAgICAgICAgdmFyIHVuZGVySGVpZ2h0ID0gZG9jdW1lbnQu
Ym9keS5vZmZzZXRIZWlnaHQgLSBhbmNob3JCb3gueSAtIGFuY2hvckJveC5oZWlnaHQ7CkBAIC0y
NjgsMTUgKzI1OCwxNSBAQCBXZWJJbnNwZWN0b3IuU3VnZ2VzdEJveC5wcm90b3R5cGUgPSB7CiAg
ICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz49fSBpdGVtcwot
ICAgICAqIEBwYXJhbSB7bnVtYmVyPX0gc2VsZWN0ZWRJbmRleAorICAgICAqIEBwYXJhbSB7IUFy
cmF5LjxzdHJpbmc+fSBpdGVtcworICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzZWxlY3RlZEluZGV4
CisgICAgICogQHBhcmFtIHtzdHJpbmd9IHVzZXJFbnRlcmVkVGV4dAogICAgICAqLwotICAgIF91
cGRhdGVJdGVtczogZnVuY3Rpb24oaXRlbXMsIHNlbGVjdGVkSW5kZXgpCisgICAgX3VwZGF0ZUl0
ZW1zOiBmdW5jdGlvbihpdGVtcywgc2VsZWN0ZWRJbmRleCwgdXNlckVudGVyZWRUZXh0KQogICAg
IHsKICAgICAgICAgdGhpcy5fbGVuZ3RoID0gaXRlbXMubGVuZ3RoOwogICAgICAgICB0aGlzLmNv
bnRlbnRFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAKLSAgICAgICAgdmFyIHVzZXJFbnRlcmVk
VGV4dCA9IHRoaXMuX3N1Z2dlc3RCb3hEZWxlZ2F0ZS51c2VyRW50ZXJlZFRleHQoKTsKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAg
dmFyIGl0ZW0gPSBpdGVtc1tpXTsKICAgICAgICAgICAgIHZhciBjdXJyZW50SXRlbUVsZW1lbnQg
PSB0aGlzLl9jcmVhdGVJdGVtRWxlbWVudCh1c2VyRW50ZXJlZFRleHQsIGl0ZW0pOwpAQCAtMzA0
LDEwICsyOTQsMTEgQEAgV2ViSW5zcGVjdG9yLlN1Z2dlc3RCb3gucHJvdG90eXBlID0gewogICAg
IH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0FycmF5LjxzdHJpbmc+PX0gY29tcGxldGlv
bnMKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBjYW5TaG93Rm9yU2luZ2xlSXRlbQorICAgICAq
IEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSBjb21wbGV0aW9ucworICAgICAqIEBwYXJhbSB7Ym9v
bGVhbn0gY2FuU2hvd0ZvclNpbmdsZUl0ZW0KKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXNlckVu
dGVyZWRUZXh0CiAgICAgICovCi0gICAgX2NhblNob3dCb3g6IGZ1bmN0aW9uKGNvbXBsZXRpb25z
LCBjYW5TaG93Rm9yU2luZ2xlSXRlbSkKKyAgICBfY2FuU2hvd0JveDogZnVuY3Rpb24oY29tcGxl
dGlvbnMsIGNhblNob3dGb3JTaW5nbGVJdGVtLCB1c2VyRW50ZXJlZFRleHQpCiAgICAgewogICAg
ICAgICBpZiAoIWNvbXBsZXRpb25zIHx8ICFjb21wbGV0aW9ucy5sZW5ndGgpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0zMTYsNyArMzA3LDcgQEAgV2ViSW5zcGVjdG9yLlN1Z2dlc3RC
b3gucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgLy8g
RG8gbm90IHNob3cgYSBzaW5nbGUgc3VnZ2VzdGlvbiBpZiBpdCBpcyB0aGUgc2FtZSBhcyB1c2Vy
LWVudGVyZWQgcHJlZml4LCBldmVuIGlmIGFsbG93ZWQgdG8gc2hvdyBzaW5nbGUtaXRlbSBzdWdn
ZXN0IGJveGVzLgotICAgICAgICByZXR1cm4gY2FuU2hvd0ZvclNpbmdsZUl0ZW0gJiYgY29tcGxl
dGlvbnNbMF0gIT09IHRoaXMuX3N1Z2dlc3RCb3hEZWxlZ2F0ZS51c2VyRW50ZXJlZFRleHQoKTsK
KyAgICAgICAgcmV0dXJuIGNhblNob3dGb3JTaW5nbGVJdGVtICYmIGNvbXBsZXRpb25zWzBdICE9
PSB1c2VyRW50ZXJlZFRleHQ7CiAgICAgfSwKIAogICAgIF9yZW1lbWJlclJvd0NvdW50UGVyVmll
d3BvcnQ6IGZ1bmN0aW9uKCkKQEAgLTMyOSwxNCArMzIwLDE1IEBAIFdlYkluc3BlY3Rvci5TdWdn
ZXN0Qm94LnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7QW5jaG9yQm94
fSBhbmNob3JCb3gKLSAgICAgKiBAcGFyYW0ge0FycmF5LjxzdHJpbmc+PX0gY29tcGxldGlvbnMK
LSAgICAgKiBAcGFyYW0ge251bWJlcj19IHNlbGVjdGVkSW5kZXgKLSAgICAgKiBAcGFyYW0ge2Jv
b2xlYW49fSBjYW5TaG93Rm9yU2luZ2xlSXRlbQorICAgICAqIEBwYXJhbSB7IUFycmF5LjxzdHJp
bmc+fSBjb21wbGV0aW9ucworICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzZWxlY3RlZEluZGV4Cisg
ICAgICogQHBhcmFtIHtib29sZWFufSBjYW5TaG93Rm9yU2luZ2xlSXRlbQorICAgICAqIEBwYXJh
bSB7c3RyaW5nfSB1c2VyRW50ZXJlZFRleHQKICAgICAgKi8KLSAgICB1cGRhdGVTdWdnZXN0aW9u
czogZnVuY3Rpb24oYW5jaG9yQm94LCBjb21wbGV0aW9ucywgc2VsZWN0ZWRJbmRleCwgY2FuU2hv
d0ZvclNpbmdsZUl0ZW0pCisgICAgdXBkYXRlU3VnZ2VzdGlvbnM6IGZ1bmN0aW9uKGFuY2hvckJv
eCwgY29tcGxldGlvbnMsIHNlbGVjdGVkSW5kZXgsIGNhblNob3dGb3JTaW5nbGVJdGVtLCB1c2Vy
RW50ZXJlZFRleHQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fY2FuU2hvd0JveChjb21wbGV0
aW9ucywgY2FuU2hvd0ZvclNpbmdsZUl0ZW0pKSB7Ci0gICAgICAgICAgICB0aGlzLl91cGRhdGVJ
dGVtcyhjb21wbGV0aW9ucywgc2VsZWN0ZWRJbmRleCk7CisgICAgICAgIGlmICh0aGlzLl9jYW5T
aG93Qm94KGNvbXBsZXRpb25zLCBjYW5TaG93Rm9yU2luZ2xlSXRlbSwgdXNlckVudGVyZWRUZXh0
KSkgeworICAgICAgICAgICAgdGhpcy5fdXBkYXRlSXRlbXMoY29tcGxldGlvbnMsIHNlbGVjdGVk
SW5kZXgsIHVzZXJFbnRlcmVkVGV4dCk7CiAgICAgICAgICAgICB0aGlzLl91cGRhdGVCb3hQb3Np
dGlvbihhbmNob3JCb3gpOwogICAgICAgICAgICAgaWYgKCF0aGlzLnZpc2libGUoKSkKICAgICAg
ICAgICAgICAgICB0aGlzLl9ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFByb21w
dC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFByb21wdC5qcwpp
bmRleCBlNTFmMDgzZjYxNmViYTA0YTU1NzQ2NWVmMGU0MTVmYzE4NjFmZDY4Li43NzQ0M2Y4NmVl
ZjcyYTRiOTBkMGFhYjJiNjllZDljOTFlZTc2MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzCkBAIC0zMSw3ICszMSw3IEBACiAgKiBA
Y29uc3RydWN0b3IKICAqIEBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAqIEBpbXBsZW1l
bnRzIHtXZWJJbnNwZWN0b3IuU3VnZ2VzdEJveERlbGVnYXRlfQotICogQHBhcmFtIHtmdW5jdGlv
bihFbGVtZW50LCBSYW5nZSwgYm9vbGVhbiwgZnVuY3Rpb24oQXJyYXkuPHN0cmluZz4sIG51bWJl
cj0pKX0gY29tcGxldGlvbnMKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oRWxlbWVudCwgUmFuZ2UsIGJv
b2xlYW4sIGZ1bmN0aW9uKCFBcnJheS48c3RyaW5nPiwgbnVtYmVyPSkpfSBjb21wbGV0aW9ucwog
ICogQHBhcmFtIHtzdHJpbmc9fSBzdG9wQ2hhcmFjdGVycwogICovCiBXZWJJbnNwZWN0b3IuVGV4
dFByb21wdCA9IGZ1bmN0aW9uKGNvbXBsZXRpb25zLCBzdG9wQ2hhcmFjdGVycykKQEAgLTUyLDEx
ICs1Miw2IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LkV2ZW50cyA9IHsKIH07CiAKIFdlYklu
c3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsKLSAgICB1c2VyRW50ZXJlZFRleHQ6IGZ1
bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl91c2VyRW50ZXJlZFRleHQ7Ci0g
ICAgfSwKLQogICAgIGdldCBwcm94eUVsZW1lbnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRo
aXMuX3Byb3h5RWxlbWVudDsKQEAgLTQzOCwxMiArNDMzLDEyIEBAIFdlYkluc3BlY3Rvci5UZXh0
UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGF1dG8KICAgICAg
KiBAcGFyYW0ge1JhbmdlfSBvcmlnaW5hbFdvcmRQcmVmaXhSYW5nZQogICAgICAqIEBwYXJhbSB7
Ym9vbGVhbn0gcmV2ZXJzZQotICAgICAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz49fSBjb21wbGV0
aW9ucworICAgICAqIEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSBjb21wbGV0aW9ucwogICAgICAq
IEBwYXJhbSB7bnVtYmVyPX0gc2VsZWN0ZWRJbmRleAogICAgICAqLwogICAgIF9jb21wbGV0aW9u
c1JlYWR5OiBmdW5jdGlvbihzZWxlY3Rpb24sIGF1dG8sIG9yaWdpbmFsV29yZFByZWZpeFJhbmdl
LCByZXZlcnNlLCBjb21wbGV0aW9ucywgc2VsZWN0ZWRJbmRleCkKICAgICB7Ci0gICAgICAgIGlm
ICghdGhpcy5fd2FpdGluZ0ZvckNvbXBsZXRpb25zIHx8ICFjb21wbGV0aW9ucyB8fCAhY29tcGxl
dGlvbnMubGVuZ3RoKSB7CisgICAgICAgIGlmICghdGhpcy5fd2FpdGluZ0ZvckNvbXBsZXRpb25z
IHx8ICFjb21wbGV0aW9ucy5sZW5ndGgpIHsKICAgICAgICAgICAgIHRoaXMuaGlkZVN1Z2dlc3RC
b3goKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDY0LDcgKzQ1OSw3IEBA
IFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdXNl
ckVudGVyZWRUZXh0ID0gZnVsbFdvcmRSYW5nZS50b1N0cmluZygpOwogCiAgICAgICAgIGlmICh0
aGlzLl9zdWdnZXN0Qm94KQotICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdEJveC51cGRhdGVTdWdn
ZXN0aW9ucyh0aGlzLl9ib3hGb3JBbmNob3JBdFN0YXJ0KHNlbGVjdGlvbiwgZnVsbFdvcmRSYW5n
ZSksIGNvbXBsZXRpb25zLCBzZWxlY3RlZEluZGV4LCAhdGhpcy5pc0NhcmV0QXRFbmRPZlByb21w
dCgpKTsKKyAgICAgICAgICAgIHRoaXMuX3N1Z2dlc3RCb3gudXBkYXRlU3VnZ2VzdGlvbnModGhp
cy5fYm94Rm9yQW5jaG9yQXRTdGFydChzZWxlY3Rpb24sIGZ1bGxXb3JkUmFuZ2UpLCBjb21wbGV0
aW9ucywgc2VsZWN0ZWRJbmRleCwgIXRoaXMuaXNDYXJldEF0RW5kT2ZQcm9tcHQoKSwgdGhpcy5f
dXNlckVudGVyZWRUZXh0KTsKIAogICAgICAgICB2YXIgd29yZFByZWZpeExlbmd0aCA9IG9yaWdp
bmFsV29yZFByZWZpeFJhbmdlLnRvU3RyaW5nKCkubGVuZ3RoOwogCkBAIC03NzgsNyArNzczLDcg
QEAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3Ry
dWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVGV4dFByb21wdH0KLSAqIEBwYXJhbSB7
ZnVuY3Rpb24oRWxlbWVudCwgUmFuZ2UsIGJvb2xlYW4sIGZ1bmN0aW9uKEFycmF5LjxzdHJpbmc+
LG51bWJlcj0pKX0gY29tcGxldGlvbnMKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oRWxlbWVudCwgUmFu
Z2UsIGJvb2xlYW4sIGZ1bmN0aW9uKCFBcnJheS48c3RyaW5nPiwgbnVtYmVyPSkpfSBjb21wbGV0
aW9ucwogICogQHBhcmFtIHtzdHJpbmc9fSBzdG9wQ2hhcmFjdGVycwogICovCiBXZWJJbnNwZWN0
b3IuVGV4dFByb21wdFdpdGhIaXN0b3J5ID0gZnVuY3Rpb24oY29tcGxldGlvbnMsIHN0b3BDaGFy
YWN0ZXJzKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>