<?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>109697</bug_id>
          
          <creation_ts>2013-02-13 08:02:21 -0800</creation_ts>
          <short_desc>Web Inspector: Color picker should not be available in Computed Styles pane</short_desc>
          <delta_ts>2013-02-18 06:03:39 -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>109920</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vladislav Kaznacheev">kaznacheev</reporter>
          <assigned_to name="Vladislav Kaznacheev">kaznacheev</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>831910</commentid>
    <comment_count>0</comment_count>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-13 08:02:21 -0800</bug_when>
    <thetext>Currently clicking on a color square in the Computed Style pane opens a Color Picker which does not add any useful functionality (changes are ignored and closing the picker causes a Javascript exception in the console).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831936</commentid>
    <comment_count>1</comment_count>
      <attachid>188088</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-13 08:38:57 -0800</bug_when>
    <thetext>Created attachment 188088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833052</commentid>
    <comment_count>2</comment_count>
      <attachid>188088</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 07:16:57 -0800</bug_when>
    <thetext>Comment on attachment 188088
Patch

Clearing flags on attachment: 188088

Committed r142876: &lt;http://trac.webkit.org/changeset/142876&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833053</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 07:17:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833861</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 03:38:12 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 109920</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835249</commentid>
    <comment_count>5</comment_count>
      <attachid>188828</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-18 02:07:36 -0800</bug_when>
    <thetext>Created attachment 188828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835338</commentid>
    <comment_count>6</comment_count>
      <attachid>188828</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-18 04:31:45 -0800</bug_when>
    <thetext>Comment on attachment 188828
Patch

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

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1572
&gt; +     * @return {WebInspector.DOMNode}

{?WebInspector.DOMNode}

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1580
&gt; +     * @return {WebInspector.StylesSidebarPane}

return ?WebInspector.StylesSidebarPane

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1940
&gt; +

Too much whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835346</commentid>
    <comment_count>7</comment_count>
      <attachid>188828</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-18 04:41:04 -0800</bug_when>
    <thetext>Comment on attachment 188828
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1572
&gt;&gt; +     * @return {WebInspector.DOMNode}
&gt; 
&gt; {?WebInspector.DOMNode}

Done

&gt;&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1580
&gt;&gt; +     * @return {WebInspector.StylesSidebarPane}
&gt; 
&gt; return ?WebInspector.StylesSidebarPane

Done

&gt;&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1940
&gt;&gt; +
&gt; 
&gt; Too much whitespace

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835348</commentid>
    <comment_count>8</comment_count>
      <attachid>188850</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-02-18 04:42:38 -0800</bug_when>
    <thetext>Created attachment 188850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835411</commentid>
    <comment_count>9</comment_count>
      <attachid>188850</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 06:03:35 -0800</bug_when>
    <thetext>Comment on attachment 188850
Patch

Clearing flags on attachment: 188850

Committed r143207: &lt;http://trac.webkit.org/changeset/143207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835412</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 06:03:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188088</attachid>
            <date>2013-02-13 08:38:57 -0800</date>
            <delta_ts>2013-02-18 02:07:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109697-20130213203525.patch</filename>
            <type>text/plain</type>
            <size>2228</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM3MGNkMmY5YTU1ZDA0
NmIzZjk2NmZiYTI2MGQ3NDE0N2MxOGQ3Ni4uMDkzM2IzOGM5N2NkNjYwZGE4MGJlOTNhZTE5OTdm
OTYyMjkxMjY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTEzICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENvbG9yIHBpY2tlciBzaG91bGQgbm90IGJlIGF2YWlsYWJsZSBpbiBDb21w
dXRlZCBTdHlsZXMgcGFuZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTY5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENoYW5nZWQgdGhlIHBhcmVudFBhbmUgcGFyYW1ldGVyIG9mIFdlYkluc3BlY3Rv
ci5Db21wdXRlZFN0eWxlUHJvcGVydGllc1NlY3Rpb24gdG8gdGhlIGNvcnJlY3QgdmFsdWUKKyAg
ICAgICAgKHRoZSBDb21wdXRlZFN0eWxlU2lkZWJhclBhbmUgaW5zdGFuY2UpLgorCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX3JlYnVpbGRTZWN0aW9uc0Zv
clN0eWxlUnVsZXMpOgorCiAyMDEzLTAyLTEzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBleHBlcmltZW50YWwgbmF0
aXZlIGhlYXAgZ3JhcGggdG8gVGltZWxpbmUgcGFuZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCmluZGV4IGQ1NDEw
MmRiNGU1MGJlMjRiZTY2ZWYzYzJlMGIwOGViN2NiMWNlNjQuLjE1ZWQ1ZTE0Y2M5ODVkNDE3NDg0
MjczNzU3MTY2NTU0OTljMzYyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwpAQCAtNjA1LDcgKzYwNSw3IEBA
IFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgZWRpdGFibGUgPSB0cnVlOwogCiAgICAgICAgICAgICBpZiAoY29tcHV0ZWRTdHlsZSkK
LSAgICAgICAgICAgICAgICB2YXIgc2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuQ29tcHV0ZWRT
dHlsZVByb3BlcnRpZXNTZWN0aW9uKHRoaXMsIHN0eWxlUnVsZSwgdXNlZFByb3BlcnRpZXMpOwor
ICAgICAgICAgICAgICAgIHZhciBzZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5Db21wdXRlZFN0
eWxlUHJvcGVydGllc1NlY3Rpb24odGhpcy5fY29tcHV0ZWRTdHlsZVBhbmUsIHN0eWxlUnVsZSwg
dXNlZFByb3BlcnRpZXMpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgdmFy
IHNlY3Rpb24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24odGhpcywg
c3R5bGVSdWxlLCBlZGl0YWJsZSwgc3R5bGVSdWxlLmlzSW5oZXJpdGVkLCBsYXN0V2FzU2VwYXJh
dG9yKTsKICAgICAgICAgICAgICAgICBzZWN0aW9uLl9tYXJrU2VsZWN0b3JNYXRjaGVzKCk7CkBA
IC0xMzUzLDcgKzEzNTMsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5w
cm90b3R5cGUgPSB7CiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3Bl
Y3Rvci5Qcm9wZXJ0aWVzU2VjdGlvbn0KLSAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5TdHlsZXNT
aWRlYmFyUGFuZX0gcGFyZW50UGFuZQorICogQHBhcmFtIHshV2ViSW5zcGVjdG9yLkNvbXB1dGVk
U3R5bGVTaWRlYmFyUGFuZX0gcGFyZW50UGFuZQogICogQHBhcmFtIHshT2JqZWN0fSBzdHlsZVJ1
bGUKICAqIEBwYXJhbSB7IU9iamVjdC48c3RyaW5nLCBib29sZWFuPn0gdXNlZFByb3BlcnRpZXMK
ICAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188828</attachid>
            <date>2013-02-18 02:07:36 -0800</date>
            <delta_ts>2013-02-18 04:42:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109697-20130218140359.patch</filename>
            <type>text/plain</type>
            <size>28580</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk5NTEwODJmNWExMzJh
NTA3MmJiOTNiNjIwOTk2ZGI2N2VjMWZhYy4uNDgwNTRjNGE1MmE5NmMwMjViODQxYTk1NTdlNWNh
NDgxZGMxNmFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTE4ICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENvbG9yIHBpY2tlciBzaG91bGQgbm90IGJlIGF2YWlsYWJsZSBpbiBDb21w
dXRlZCBTdHlsZXMgcGFuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5Njk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3JlZCBQcm9wZXJ0aWVzU2VjdGlvbiBhbmQgVHJlZUVsZW1lbnQgaW5o
ZXJpdG9ycyBpbiBTdHlsZXNTaWRlYmFyUGFuZS5qcyBmb3IgY2xlYW5lciBzZXBhcmF0aW9uCisg
ICAgICAgIG9mIHJlYWQtb25seSBhbmQgZWRpdGFibGUgcHJvcGVydGllcy4KKworICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUub25wb3B1bGF0ZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUuYWRk
TmV3QmxhbmtQcm9wZXJ0eSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29tcHV0ZWRTdHlsZVBy
b3BlcnRpZXNTZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlUHJv
cGVydGllc1NlY3Rpb24ucHJvdG90eXBlLm9ucG9wdWxhdGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkJsYW5rU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50QmFzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5
bGVQcm9wZXJ0eVRyZWVFbGVtZW50QmFzZS5wcm90b3R5cGUubm9kZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50QmFzZS5wcm90b3R5cGUuZWRpdGFibGVQ
YW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnRCYXNl
LnByb3RvdHlwZS5vbmF0dGFjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0
eVRyZWVFbGVtZW50QmFzZS5wcm90b3R5cGUudXBkYXRlVGl0bGUubGlua2lmeVVSTCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50QmFzZS5wcm90b3R5cGUu
dXBkYXRlVGl0bGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVs
ZW1lbnRCYXNlLnByb3RvdHlwZSk6CisgICAgICAgICguZXZlbnQpOgorICAgICAgICAoLmlzUmV2
ZXJ0KToKKwogMjAxMy0wMi0xNSAgRXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFzQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnRyb2R1Y2UgUHJvZmlsZXNQYW5lbERl
c2NyaXB0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwppbmRleCA0Y2UzYzExNWVkNTkwZjY4NzdkMzA4YTQ2Y2M0
ZWQ2MjRkZjkzZWY5Li5mODc3ZDZjM2JlMTVhNjEwYmMwNWRmMTRmZjcwMTg1MjM4MjhiNGEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGVi
YXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVz
U2lkZWJhclBhbmUuanMKQEAgLTEwNDAsNyArMTA0MCw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVBy
b3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB2YXIgaXNTaG9y
dGhhbmQgPSAhIVdlYkluc3BlY3Rvci5DU1NNZXRhZGF0YS5jc3NQcm9wZXJ0aWVzTWV0YWluZm8u
bG9uZ2hhbmRzKHByb3BlcnR5Lm5hbWUpOwogICAgICAgICAgICAgICAgIHZhciBpbmhlcml0ZWQg
PSB0aGlzLmlzUHJvcGVydHlJbmhlcml0ZWQocHJvcGVydHkubmFtZSk7CiAgICAgICAgICAgICAg
ICAgdmFyIG92ZXJsb2FkZWQgPSBwcm9wZXJ0eS5pbmFjdGl2ZSB8fCB0aGlzLmlzUHJvcGVydHlP
dmVybG9hZGVkKHByb3BlcnR5Lm5hbWUpOwotICAgICAgICAgICAgICAgIHZhciBpdGVtID0gbmV3
IFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcywgdGhpcy5fcGFyZW50
UGFuZSwgdGhpcy5zdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgaXNTaG9ydGhhbmQsIGluaGVy
aXRlZCwgb3ZlcmxvYWRlZCk7CisgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBuZXcgV2ViSW5z
cGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCh0aGlzLl9wYXJlbnRQYW5lLCB0aGlzLnN0
eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBpc1Nob3J0aGFuZCwgaW5oZXJpdGVkLCBvdmVybG9h
ZGVkKTsKICAgICAgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGluZS5hcHBlbmRD
aGlsZChpdGVtKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwNzQs
NyArMTA3NCw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICAvLyBHZW5lcmF0ZSBzeW50aGV0aWMgc2hvcnRoYW5kIHdl
IGhhdmUgYSB2YWx1ZSBmb3IuCiAgICAgICAgICAgICAgICAgdmFyIHNob3J0aGFuZFByb3BlcnR5
ID0gbmV3IFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eShzdHlsZSwgc3R5bGUuYWxsUHJvcGVydGll
cy5sZW5ndGgsIHNob3J0aGFuZCwgc3R5bGUuc2hvcnRoYW5kVmFsdWUoc2hvcnRoYW5kKSwgIiIs
ICJzdHlsZSIsIHRydWUsIHRydWUsIHVuZGVmaW5lZCk7CiAgICAgICAgICAgICAgICAgdmFyIG92
ZXJsb2FkZWQgPSBwcm9wZXJ0eS5pbmFjdGl2ZSB8fCB0aGlzLmlzUHJvcGVydHlPdmVybG9hZGVk
KHByb3BlcnR5Lm5hbWUsIHRydWUpOwotICAgICAgICAgICAgICAgIHZhciBpdGVtID0gbmV3IFdl
Ykluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcywgdGhpcy5fcGFyZW50UGFu
ZSwgdGhpcy5zdHlsZVJ1bGUsIHN0eWxlLCBzaG9ydGhhbmRQcm9wZXJ0eSwgIC8qIGlzU2hvcnRo
YW5kICovIHRydWUsIC8qIGluaGVyaXRlZCAqLyBmYWxzZSwgb3ZlcmxvYWRlZCk7CisgICAgICAg
ICAgICAgICAgdmFyIGl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxl
bWVudCh0aGlzLl9wYXJlbnRQYW5lLCB0aGlzLnN0eWxlUnVsZSwgc3R5bGUsIHNob3J0aGFuZFBy
b3BlcnR5LCAgLyogaXNTaG9ydGhhbmQgKi8gdHJ1ZSwgLyogaW5oZXJpdGVkICovIGZhbHNlLCBv
dmVybG9hZGVkKTsKICAgICAgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGluZS5h
cHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICBnZW5lcmF0ZWRTaG9ydGhhbmRzW3No
b3J0aGFuZF0gPSBzaG9ydGhhbmRQcm9wZXJ0eTsKICAgICAgICAgICAgICAgICBzaG9ydGhhbmRQ
cm9wZXJ0eUF2YWlsYWJsZSA9IHRydWU7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCBXZWJJbnNwZWN0
b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIHZh
ciBpbmhlcml0ZWQgPSB0aGlzLmlzUHJvcGVydHlJbmhlcml0ZWQocHJvcGVydHkubmFtZSk7CiAg
ICAgICAgICAgICB2YXIgb3ZlcmxvYWRlZCA9IHByb3BlcnR5LmluYWN0aXZlIHx8IHRoaXMuaXNQ
cm9wZXJ0eU92ZXJsb2FkZWQocHJvcGVydHkubmFtZSwgaXNTaG9ydGhhbmQpOwotICAgICAgICAg
ICAgdmFyIGl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCh0
aGlzLCB0aGlzLl9wYXJlbnRQYW5lLCB0aGlzLnN0eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBp
c1Nob3J0aGFuZCwgaW5oZXJpdGVkLCBvdmVybG9hZGVkKTsKKyAgICAgICAgICAgIHZhciBpdGVt
ID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcy5fcGFyZW50
UGFuZSwgdGhpcy5zdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgaXNTaG9ydGhhbmQsIGluaGVy
aXRlZCwgb3ZlcmxvYWRlZCk7CiAgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGlu
ZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgfQogICAgIH0sCkBAIC0xMTU4LDcgKzExNTgs
NyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAg
ICAgewogICAgICAgICB2YXIgc3R5bGUgPSB0aGlzLnN0eWxlUnVsZS5zdHlsZTsKICAgICAgICAg
dmFyIHByb3BlcnR5ID0gc3R5bGUubmV3QmxhbmtQcm9wZXJ0eShpbmRleCk7Ci0gICAgICAgIHZh
ciBpdGVtID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcywg
dGhpcy5fcGFyZW50UGFuZSwgdGhpcy5zdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSk7CisgICAgICAgIHZhciBpdGVtID0gbmV3IFdlYkluc3BlY3Rvci5TdHls
ZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcy5fcGFyZW50UGFuZSwgdGhpcy5zdHlsZVJ1bGUsIHN0
eWxlLCBwcm9wZXJ0eSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIGluZGV4ID0gcHJv
cGVydHkuaW5kZXg7CiAgICAgICAgIHRoaXMucHJvcGVydGllc1RyZWVPdXRsaW5lLmluc2VydENo
aWxkKGl0ZW0sIGluZGV4KTsKICAgICAgICAgaXRlbS5saXN0SXRlbUVsZW1lbnQudGV4dENvbnRl
bnQgPSAiIjsKQEAgLTEzNDcsMTYgKzEzNDcsMTYgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVy
dGllc1NlY3Rpb24ucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRl
bmRzIHtXZWJJbnNwZWN0b3IuUHJvcGVydGllc1NlY3Rpb259Ci0gKiBAcGFyYW0geyFXZWJJbnNw
ZWN0b3IuU3R5bGVzU2lkZWJhclBhbmV9IHBhcmVudFBhbmUKKyAqIEBwYXJhbSB7IVdlYkluc3Bl
Y3Rvci5TdHlsZXNTaWRlYmFyUGFuZX0gc3R5bGVzUGFuZQogICogQHBhcmFtIHshT2JqZWN0fSBz
dHlsZVJ1bGUKICAqIEBwYXJhbSB7IU9iamVjdC48c3RyaW5nLCBib29sZWFuPn0gdXNlZFByb3Bl
cnRpZXMKICAqLwotV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbiA9
IGZ1bmN0aW9uKHBhcmVudFBhbmUsIHN0eWxlUnVsZSwgdXNlZFByb3BlcnRpZXMpCitXZWJJbnNw
ZWN0b3IuQ29tcHV0ZWRTdHlsZVByb3BlcnRpZXNTZWN0aW9uID0gZnVuY3Rpb24oc3R5bGVzUGFu
ZSwgc3R5bGVSdWxlLCB1c2VkUHJvcGVydGllcykKIHsKICAgICBXZWJJbnNwZWN0b3IuUHJvcGVy
dGllc1NlY3Rpb24uY2FsbCh0aGlzLCAiIik7CiAgICAgdGhpcy5oZWFkZXJFbGVtZW50LmFkZFN0
eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAic3R5bGVz
LXNlY3Rpb24gbW9ub3NwYWNlIGZpcnN0LXN0eWxlcy1zZWN0aW9uIHJlYWQtb25seSBjb21wdXRl
ZC1zdHlsZSI7Ci0gICAgdGhpcy5fcGFyZW50UGFuZSA9IHBhcmVudFBhbmU7CisgICAgdGhpcy5f
c3R5bGVzUGFuZSA9IHN0eWxlc1BhbmU7CiAgICAgdGhpcy5zdHlsZVJ1bGUgPSBzdHlsZVJ1bGU7
CiAgICAgdGhpcy5fdXNlZFByb3BlcnRpZXMgPSB1c2VkUHJvcGVydGllczsKICAgICB0aGlzLl9h
bHdheXNTaG93Q29tcHV0ZWRQcm9wZXJ0aWVzID0geyAiZGlzcGxheSI6IHRydWUsICJoZWlnaHQi
OiB0cnVlLCAid2lkdGgiOiB0cnVlIH07CkBAIC0xMzY2LDExICsxMzY2LDYgQEAgV2ViSW5zcGVj
dG9yLkNvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbiA9IGZ1bmN0aW9uKHBhcmVudFBhbmUs
IHN0eWxlUnVsZSwgdXMKIH0KIAogV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVQcm9wZXJ0aWVz
U2VjdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IHBhbmUoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX3BhcmVudFBhbmU7Ci0gICAgfSwKLQogICAgIGNvbGxhcHNlOiBmdW5jdGlvbihk
b250UmVtZW1iZXJTdGF0ZSkKICAgICB7CiAgICAgICAgIC8vIE92ZXJyaWRpbmcgd2l0aCBlbXB0
eSBib2R5LgpAQCAtMTQxNSw3ICsxNDEwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVQ
cm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdW5pcXVlUHJvcGVydGllcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHByb3Bl
cnR5ID0gdW5pcXVlUHJvcGVydGllc1tpXTsKICAgICAgICAgICAgIHZhciBpbmhlcml0ZWQgPSB0
aGlzLl9pc1Byb3BlcnR5SW5oZXJpdGVkKHByb3BlcnR5Lm5hbWUpOwotICAgICAgICAgICAgdmFy
IGl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCh0aGlzLCB0
aGlzLl9wYXJlbnRQYW5lLCB0aGlzLnN0eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBmYWxzZSwg
aW5oZXJpdGVkLCBmYWxzZSk7CisgICAgICAgICAgICB2YXIgaXRlbSA9IG5ldyBXZWJJbnNwZWN0
b3IuQ29tcHV0ZWRTdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcy5fc3R5bGVzUGFuZSwgdGhp
cy5zdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgaW5oZXJpdGVkKTsKICAgICAgICAgICAgIHRo
aXMucHJvcGVydGllc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKGl0ZW0pOwogICAgICAgICAgICAg
dGhpcy5fcHJvcGVydHlUcmVlRWxlbWVudHNbcHJvcGVydHkubmFtZV0gPSBpdGVtOwogICAgICAg
ICB9CkBAIC0xNDcwLDEwICsxNDY1LDEyIEBAIFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlUHJv
cGVydGllc1NlY3Rpb24ucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbn0KKyAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lfSBzdHlsZXNQYW5lCisgKiBAcGFyYW0ge3N0
cmluZ30gZGVmYXVsdFNlbGVjdG9yVGV4dAogICovCi1XZWJJbnNwZWN0b3IuQmxhbmtTdHlsZVBy
b3BlcnRpZXNTZWN0aW9uID0gZnVuY3Rpb24ocGFyZW50UGFuZSwgZGVmYXVsdFNlbGVjdG9yVGV4
dCkKK1dlYkluc3BlY3Rvci5CbGFua1N0eWxlUHJvcGVydGllc1NlY3Rpb24gPSBmdW5jdGlvbihz
dHlsZXNQYW5lLCBkZWZhdWx0U2VsZWN0b3JUZXh0KQogewotICAgIFdlYkluc3BlY3Rvci5TdHls
ZVByb3BlcnRpZXNTZWN0aW9uLmNhbGwodGhpcywgcGFyZW50UGFuZSwge3NlbGVjdG9yVGV4dDog
ZGVmYXVsdFNlbGVjdG9yVGV4dCwgcnVsZToge2lzVmlhSW5zcGVjdG9yOiB0cnVlfX0sIHRydWUs
IGZhbHNlLCBmYWxzZSk7CisgICAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24u
Y2FsbCh0aGlzLCBzdHlsZXNQYW5lLCB7c2VsZWN0b3JUZXh0OiBkZWZhdWx0U2VsZWN0b3JUZXh0
LCBydWxlOiB7aXNWaWFJbnNwZWN0b3I6IHRydWV9fSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsKICAg
ICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYmxhbmstc2VjdGlvbiIpOwogfQogCkBAIC0x
NTQ5LDMzICsxNTQ2LDQ0IEBAIFdlYkluc3BlY3Rvci5CbGFua1N0eWxlUHJvcGVydGllc1NlY3Rp
b24ucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtUcmVl
RWxlbWVudH0KLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb258
V2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbn0gc2VjdGlvbgotICog
QHBhcmFtIHs/V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lfSBwYXJlbnRQYW5lCiAgKiBA
cGFyYW0ge09iamVjdH0gc3R5bGVSdWxlCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5DU1NTdHls
ZURlY2xhcmF0aW9ufSBzdHlsZQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHl9
IHByb3BlcnR5Ci0gKiBAcGFyYW0ge2Jvb2xlYW59IGlzU2hvcnRoYW5kCiAgKiBAcGFyYW0ge2Jv
b2xlYW59IGluaGVyaXRlZAogICogQHBhcmFtIHtib29sZWFufSBvdmVybG9hZGVkCisgKiBAcGFy
YW0ge2Jvb2xlYW59IGhhc0NoaWxkcmVuCiAgKi8KLVdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5
VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihzZWN0aW9uLCBwYXJlbnRQYW5lLCBzdHlsZVJ1bGUsIHN0
eWxlLCBwcm9wZXJ0eSwgaXNTaG9ydGhhbmQsIGluaGVyaXRlZCwgb3ZlcmxvYWRlZCkKK1dlYklu
c3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnRCYXNlID0gZnVuY3Rpb24oc3R5bGVSdWxl
LCBzdHlsZSwgcHJvcGVydHksIGluaGVyaXRlZCwgb3ZlcmxvYWRlZCwgaGFzQ2hpbGRyZW4pCiB7
Ci0gICAgdGhpcy5zZWN0aW9uID0gc2VjdGlvbjsKLSAgICB0aGlzLl9wYXJlbnRQYW5lID0gcGFy
ZW50UGFuZTsKICAgICB0aGlzLl9zdHlsZVJ1bGUgPSBzdHlsZVJ1bGU7CiAgICAgdGhpcy5zdHls
ZSA9IHN0eWxlOwogICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eTsKLSAgICB0aGlzLmlzU2hv
cnRoYW5kID0gaXNTaG9ydGhhbmQ7CiAgICAgdGhpcy5faW5oZXJpdGVkID0gaW5oZXJpdGVkOwog
ICAgIHRoaXMuX292ZXJsb2FkZWQgPSBvdmVybG9hZGVkOwogCiAgICAgLy8gUGFzcyBhbiBlbXB0
eSB0aXRsZSwgdGhlIHRpdGxlIGdldHMgbWFkZSBsYXRlciBpbiBvbmF0dGFjaC4KLSAgICBUcmVl
RWxlbWVudC5jYWxsKHRoaXMsICIiLCBudWxsLCBpc1Nob3J0aGFuZCk7CisgICAgVHJlZUVsZW1l
bnQuY2FsbCh0aGlzLCAiIiwgbnVsbCwgaGFzQ2hpbGRyZW4pOwogCiAgICAgdGhpcy5zZWxlY3Rh
YmxlID0gZmFsc2U7CiB9CiAKLVdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQu
cHJvdG90eXBlID0geworV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudEJhc2Uu
cHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5ET01O
b2RlfQorICAgICAqLworICAgIG5vZGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBudWxsOyAgLy8gT3ZlcnJpZGRlbiBieSBhbmNlc3RvcnMuCisgICAgfSwKKworICAgIC8qKgor
ICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZX0KKyAgICAgKi8K
KyAgICBlZGl0YWJsZVBhbmU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBudWxs
OyAgLy8gT3ZlcnJpZGRlbiBieSBhbmNlc3RvcnMuCisgICAgfSwKKwogICAgIGdldCBpbmhlcml0
ZWQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2luaGVyaXRlZDsKQEAgLTE2NTIsMjcg
KzE2NjAsNiBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICBvbmF0dGFjaDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy51cGRh
dGVUaXRsZSgpOwotICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJtb3VzZWRvd24iLCB0aGlzLl9tb3VzZURvd24uYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMu
bGlzdEl0ZW1FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLl9yZXNldE1v
dXNlRG93bkVsZW1lbnQuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fbW91c2VDbGljay5iaW5kKHRoaXMpKTsK
LSAgICB9LAotCi0gICAgX21vdXNlRG93bjogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAg
ICBpZiAodGhpcy5fcGFyZW50UGFuZSkgewotICAgICAgICAgICAgdGhpcy5fcGFyZW50UGFuZS5f
bW91c2VEb3duVHJlZUVsZW1lbnQgPSB0aGlzOwotICAgICAgICAgICAgdGhpcy5fcGFyZW50UGFu
ZS5fbW91c2VEb3duVHJlZUVsZW1lbnRJc05hbWUgPSB0aGlzLl9pc05hbWVFbGVtZW50KGV2ZW50
LnRhcmdldCk7Ci0gICAgICAgICAgICB0aGlzLl9wYXJlbnRQYW5lLl9tb3VzZURvd25UcmVlRWxl
bWVudElzVmFsdWUgPSB0aGlzLl9pc1ZhbHVlRWxlbWVudChldmVudC50YXJnZXQpOwotICAgICAg
ICB9Ci0gICAgfSwKLQotICAgIF9yZXNldE1vdXNlRG93bkVsZW1lbnQ6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl9wYXJlbnRQYW5lKSB7Ci0gICAgICAgICAgICBkZWxldGUg
dGhpcy5fcGFyZW50UGFuZS5fbW91c2VEb3duVHJlZUVsZW1lbnQ7Ci0gICAgICAgICAgICBkZWxl
dGUgdGhpcy5fcGFyZW50UGFuZS5fbW91c2VEb3duVHJlZUVsZW1lbnRJc05hbWU7Ci0gICAgICAg
ICAgICBkZWxldGUgdGhpcy5fcGFyZW50UGFuZS5fbW91c2VEb3duVHJlZUVsZW1lbnRJc1ZhbHVl
OwotICAgICAgICB9CiAgICAgfSwKIAogICAgIHVwZGF0ZVRpdGxlOiBmdW5jdGlvbigpCkBAIC0x
NjgxLDE1ICsxNjY4LDYgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy51cGRhdGVTdGF0ZSgpOwogCi0gICAgICAgIHZh
ciBlbmFibGVkQ2hlY2tib3hFbGVtZW50OwotICAgICAgICBpZiAodGhpcy5wYXJzZWRPaykgewot
ICAgICAgICAgICAgZW5hYmxlZENoZWNrYm94RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlucHV0Iik7Ci0gICAgICAgICAgICBlbmFibGVkQ2hlY2tib3hFbGVtZW50LmNsYXNzTmFt
ZSA9ICJlbmFibGVkLWJ1dHRvbiI7Ci0gICAgICAgICAgICBlbmFibGVkQ2hlY2tib3hFbGVtZW50
LnR5cGUgPSAiY2hlY2tib3giOwotICAgICAgICAgICAgZW5hYmxlZENoZWNrYm94RWxlbWVudC5j
aGVja2VkID0gIXRoaXMuZGlzYWJsZWQ7Ci0gICAgICAgICAgICBlbmFibGVkQ2hlY2tib3hFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy50b2dnbGVFbmFibGVkLmJpbmQodGhp
cyksIGZhbHNlKTsKLSAgICAgICAgfQotCiAgICAgICAgIHZhciBuYW1lRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgbmFtZUVsZW1lbnQuY2xhc3NOYW1l
ID0gIndlYmtpdC1jc3MtcHJvcGVydHkiOwogICAgICAgICBuYW1lRWxlbWVudC50ZXh0Q29udGVu
dCA9IHRoaXMubmFtZTsKQEAgLTE3MzksOCArMTcxNyw4IEBAIFdlYkluc3BlY3Rvci5TdHlsZVBy
b3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGNvbnRhaW5l
ci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgidXJsKCIpKTsKICAgICAgICAg
ICAgICAgICBpZiAoc2VsZi5fc3R5bGVSdWxlLnNvdXJjZVVSTCkKICAgICAgICAgICAgICAgICAg
ICAgaHJlZlVybCA9IFdlYkluc3BlY3Rvci5QYXJzZWRVUkwuY29tcGxldGVVUkwoc2VsZi5fc3R5
bGVSdWxlLnNvdXJjZVVSTCwgaHJlZlVybCk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2Vs
Zi5fcGFyZW50UGFuZS5ub2RlKQotICAgICAgICAgICAgICAgICAgICBocmVmVXJsID0gc2VsZi5f
cGFyZW50UGFuZS5ub2RlLnJlc29sdmVVUkwoaHJlZlVybCk7CisgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoc2VsZi5ub2RlKCkpCisgICAgICAgICAgICAgICAgICAgIGhyZWZVcmwgPSBzZWxmLm5v
ZGUoKS5yZXNvbHZlVVJMKGhyZWZVcmwpOwogICAgICAgICAgICAgICAgIHZhciBoYXNSZXNvdXJj
ZSA9ICEhV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKGhyZWZVcmwpOwogICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSgpIHNob3VsZCByZWFs
bHkgdXNlIGJhc2VVUkkuCiAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKFdl
Ykluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKGhyZWZVcmwsIHVybCwgdW5kZWZpbmVkLCAhaGFz
UmVzb3VyY2UpKTsKQEAgLTE3NTIsMTMgKzE3MzAsMTIgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJv
cGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgdmFyIGNvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlKHRleHQpOwogCi0gICAg
ICAgICAgICAgICAgLy8gV2UgY2FuIGJlIGNhbGxlZCB3aXRoIHZhbGlkIG5vbi1jb2xvciB2YWx1
ZXMgb2YgfHRleHR8IChsaWtlICdub25lJyBmcm9tIGJvcmRlciBzdHlsZSkgCi0gICAgICAgICAg
ICAgICAgaWYgKCFjb2xvcikgCisgICAgICAgICAgICAgICAgLy8gV2UgY2FuIGJlIGNhbGxlZCB3
aXRoIHZhbGlkIG5vbi1jb2xvciB2YWx1ZXMgb2YgfHRleHR8IChsaWtlICdub25lJyBmcm9tIGJv
cmRlciBzdHlsZSkKKyAgICAgICAgICAgICAgICBpZiAoIWNvbG9yKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCk7Ci0gICAgICAgICAgICAg
ICAgCisKICAgICAgICAgICAgICAgICB2YXIgZm9ybWF0ID0gZ2V0Rm9ybWF0KCk7Ci0gICAgICAg
ICAgICAgICAgdmFyIGhhc1NwZWN0cnVtID0gc2VsZi5fcGFyZW50UGFuZTsKLSAgICAgICAgICAg
ICAgICB2YXIgc3BlY3RydW1IZWxwZXIgPSBoYXNTcGVjdHJ1bSA/IHNlbGYuX3BhcmVudFBhbmUu
X3NwZWN0cnVtSGVscGVyIDogbnVsbDsKKyAgICAgICAgICAgICAgICB2YXIgc3BlY3RydW1IZWxw
ZXIgPSBzZWxmLmVkaXRhYmxlUGFuZSgpICYmIHNlbGYuZWRpdGFibGVQYW5lKCkuX3NwZWN0cnVt
SGVscGVyOwogICAgICAgICAgICAgICAgIHZhciBzcGVjdHJ1bSA9IHNwZWN0cnVtSGVscGVyID8g
c3BlY3RydW1IZWxwZXIuc3BlY3RydW0oKSA6IG51bGw7CiAKICAgICAgICAgICAgICAgICB2YXIg
Y29sb3JTd2F0Y2ggPSBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yU3dhdGNoKCk7CkBAIC0xNzg3LDcg
KzE3NjQsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICAgICAgc3BlY3RydW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuU3BlY3RydW0uRXZlbnRzLkNvbG9yQ2hhbmdlZCwgc3BlY3RydW1DaGFuZ2Vk
KTsKICAgICAgICAgICAgICAgICAgICAgc3BlY3RydW1IZWxwZXIucmVtb3ZlRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuU3BlY3RydW1Qb3B1cEhlbHBlci5FdmVudHMuSGlkZGVuLCBzcGVjdHJ1
bUhpZGRlbik7CiAKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHNlbGYuX3BhcmVudFBhbmUu
X2lzRWRpdGluZ1N0eWxlOworICAgICAgICAgICAgICAgICAgICBkZWxldGUgc2VsZi5lZGl0YWJs
ZVBhbmUoKS5faXNFZGl0aW5nU3R5bGU7CiAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBzZWxm
Lm9yaWdpbmFsUHJvcGVydHlUZXh0OwogICAgICAgICAgICAgICAgIH0KIApAQCAtMTgwOCw3ICsx
Nzg1LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNwZWN0cnVtLmRpc3BsYXlUZXh0ID0gY29sb3IudG9TdHJpbmcoZm9y
bWF0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm9yaWdpbmFsUHJvcGVydHlU
ZXh0ID0gc2VsZi5wcm9wZXJ0eS5wcm9wZXJ0eVRleHQ7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcGFyZW50UGFuZS5faXNFZGl0aW5nU3R5bGUgPSB0cnVlOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuZWRpdGFibGVQYW5lKCkuX2lzRWRpdGluZ1N0eWxlID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjdHJ1bS5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5TcGVjdHJ1bS5FdmVudHMuQ29sb3JDaGFuZ2VkLCBzcGVjdHJ1bUNo
YW5nZWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWN0cnVtSGVscGVyLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNwZWN0cnVtUG9wdXBIZWxwZXIuRXZlbnRzLkhpZGRl
biwgc3BlY3RydW1IaWRkZW4pOwogCkBAIC0xOTE3LDkgKzE4OTQsNiBAQCBXZWJJbnNwZWN0b3Iu
U3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlz
LnRyZWVPdXRsaW5lKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIEFwcGVuZCB0
aGUgY2hlY2tib3ggZm9yIHJvb3QgZWxlbWVudHMgb2YgYW4gZWRpdGFibGUgc2VjdGlvbi4KLSAg
ICAgICAgaWYgKGVuYWJsZWRDaGVja2JveEVsZW1lbnQgJiYgdGhpcy50cmVlT3V0bGluZS5zZWN0
aW9uICYmIHRoaXMucGFyZW50LnJvb3QgJiYgIXRoaXMuc2VjdGlvbi5jb21wdXRlZFN0eWxlKQot
ICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQoZW5hYmxlZENoZWNr
Ym94RWxlbWVudCk7CiAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKG5h
bWVFbGVtZW50KTsKICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIjogIikpOwogICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLl9leHBhbmRFbGVtZW50KTsKQEAgLTE5MzgsMTAgKzE5MTIsMTE5
IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaW5hY3RpdmUi
KTsKICAgICB9LAogCisgICAgdXBkYXRlU3RhdGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IGlmICghdGhpcy5saXN0SXRlbUVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgaWYgKHRoaXMuc3R5bGUuaXNQcm9wZXJ0eUltcGxpY2l0KHRoaXMubmFtZSkgfHwgdGhpcy52
YWx1ZSA9PT0gImluaXRpYWwiKQorICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYWRk
U3R5bGVDbGFzcygiaW1wbGljaXQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5s
aXN0SXRlbUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaW1wbGljaXQiKTsKKworICAgICAgICBp
ZiAodGhpcy5pbmhlcml0ZWQpCisgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJpbmhlcml0ZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5s
aXN0SXRlbUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaW5oZXJpdGVkIik7CisKKyAgICAgICAg
aWYgKHRoaXMub3ZlcmxvYWRlZCkKKyAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFk
ZFN0eWxlQ2xhc3MoIm92ZXJsb2FkZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhp
cy5saXN0SXRlbUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygib3ZlcmxvYWRlZCIpOworCisgICAg
ICAgIGlmICh0aGlzLmRpc2FibGVkKQorICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQu
YWRkU3R5bGVDbGFzcygiZGlzYWJsZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhp
cy5saXN0SXRlbUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiZGlzYWJsZWQiKTsKKyAgICB9LAor
CisKKyAgICBfX3Byb3RvX186IFRyZWVFbGVtZW50LnByb3RvdHlwZQorfQorCisvKioKKyAqIEBj
b25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVs
ZW1lbnRCYXNlfQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmV9IHN0
eWxlc1BhbmUKKyAqIEBwYXJhbSB7T2JqZWN0fSBzdHlsZVJ1bGUKKyAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5DU1NQcm9wZXJ0eX0gcHJvcGVydHkKKyAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5oZXJpdGVkCisg
Ki8KK1dlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCA9IGZ1bmN0
aW9uKHN0eWxlc1BhbmUsIHN0eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBpbmhlcml0ZWQpCit7
CisgICAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudEJhc2UuY2FsbCh0aGlz
LCBzdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgaW5oZXJpdGVkLCBmYWxzZSwgZmFsc2UpOwor
ICAgIHRoaXMuX3N0eWxlc1BhbmUgPSBzdHlsZXNQYW5lOworfQorCitXZWJJbnNwZWN0b3IuQ29t
cHV0ZWRTdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0geworICAgIC8qKgorICAg
ICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5ET01Ob2RlfQorICAgICAqLworICAgIG5vZGU6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zdHlsZXNQYW5lLm5vZGU7Cisg
ICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5TdHlsZXNTaWRl
YmFyUGFuZX0KKyAgICAgKi8KKyAgICBlZGl0YWJsZVBhbmU6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBudWxsOworICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rv
ci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnRCYXNlLnByb3RvdHlwZQorfQorCisvKioKKyAqIEBj
b25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVs
ZW1lbnRCYXNlfQorICogQHBhcmFtIHs/V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lfSBz
dHlsZXNQYW5lCisgKiBAcGFyYW0ge09iamVjdH0gc3R5bGVSdWxlCisgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9ufSBzdHlsZQorICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuQ1NTUHJvcGVydHl9IHByb3BlcnR5CisgKiBAcGFyYW0ge2Jvb2xlYW59IGlzU2hvcnRoYW5k
CisgKiBAcGFyYW0ge2Jvb2xlYW59IGluaGVyaXRlZAorICogQHBhcmFtIHtib29sZWFufSBvdmVy
bG9hZGVkCisgKi8KK1dlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQgPSBmdW5j
dGlvbihzdHlsZXNQYW5lLCBzdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgaXNTaG9ydGhhbmQs
IGluaGVyaXRlZCwgb3ZlcmxvYWRlZCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0
eVRyZWVFbGVtZW50QmFzZS5jYWxsKHRoaXMsIHN0eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBp
bmhlcml0ZWQsIG92ZXJsb2FkZWQsIGlzU2hvcnRoYW5kKTsKKyAgICB0aGlzLl9wYXJlbnRQYW5l
ID0gc3R5bGVzUGFuZTsKKyAgICB0aGlzLmlzU2hvcnRoYW5kID0gaXNTaG9ydGhhbmQ7Cit9CisK
K1dlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0geworICAg
IC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5ET01Ob2RlfQorICAgICAqLworICAg
IG5vZGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRQYW5l
Lm5vZGU7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5T
dHlsZXNTaWRlYmFyUGFuZX0KKyAgICAgKi8KKyAgICBlZGl0YWJsZVBhbmU6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRQYW5lOworICAgIH0sCisKKyAgICAv
KioKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbn0K
KyAgICAgKi8KKyAgICBzZWN0aW9uOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy50cmVlT3V0bGluZSAmJiB0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb247CisgICAgfSwKKwog
ICAgIF91cGRhdGVQYW5lOiBmdW5jdGlvbih1c2VyQ2FsbGJhY2spCiAgICAgewotICAgICAgICBp
ZiAodGhpcy50cmVlT3V0bGluZSAmJiB0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24gJiYgdGhpcy50
cmVlT3V0bGluZS5zZWN0aW9uLnBhbmUpCi0gICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnNl
Y3Rpb24ucGFuZS5fcmVmcmVzaFVwZGF0ZSh0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24sIGZhbHNl
LCB1c2VyQ2FsbGJhY2spOworICAgICAgICB2YXIgc2VjdGlvbiA9IHRoaXMuc2VjdGlvbigpOwor
ICAgICAgICBpZiAoc2VjdGlvbiAmJiBzZWN0aW9uLnBhbmUpCisgICAgICAgICAgICBzZWN0aW9u
LnBhbmUuX3JlZnJlc2hVcGRhdGUoc2VjdGlvbiwgZmFsc2UsIHVzZXJDYWxsYmFjayk7CiAgICAg
ICAgIGVsc2UgIHsKICAgICAgICAgICAgIGlmICh1c2VyQ2FsbGJhY2spCiAgICAgICAgICAgICAg
ICAgdXNlckNhbGxiYWNrKCk7CkBAIC0xOTYwLDggKzIwNDMsOSBAQCBXZWJJbnNwZWN0b3IuU3R5
bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuc3R5
bGUgPSBuZXdTdHlsZTsKICAgICAgICAgICAgIHRoaXMuX3N0eWxlUnVsZS5zdHlsZSA9IG5ld1N0
eWxlOwogCi0gICAgICAgICAgICBpZiAodGhpcy50cmVlT3V0bGluZS5zZWN0aW9uICYmIHRoaXMu
dHJlZU91dGxpbmUuc2VjdGlvbi5wYW5lKQotICAgICAgICAgICAgICAgIHRoaXMudHJlZU91dGxp
bmUuc2VjdGlvbi5wYW5lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygic3R5bGUgcHJvcGVydHkg
dG9nZ2xlZCIpOworICAgICAgICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLnNlY3Rpb24oKTsKKyAg
ICAgICAgICAgIGlmIChzZWN0aW9uICYmIHNlY3Rpb24ucGFuZSkKKyAgICAgICAgICAgICAgICBz
ZWN0aW9uLnBhbmUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJzdHlsZSBwcm9wZXJ0eSB0b2dn
bGVkIik7CiAKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBhbmUoKTsKIApAQCAtMTk3MywzMiAr
MjA1Nyw2IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBl
ID0gewogICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgfSwKIAotICAgIHVwZGF0ZVN0YXRl
OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMubGlzdEl0ZW1FbGVtZW50KQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0aGlzLnN0eWxlLmlzUHJvcGVydHlJ
bXBsaWNpdCh0aGlzLm5hbWUpIHx8IHRoaXMudmFsdWUgPT09ICJpbml0aWFsIikKLSAgICAgICAg
ICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFkZFN0eWxlQ2xhc3MoImltcGxpY2l0Iik7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LnJlbW92ZVN0eWxlQ2xh
c3MoImltcGxpY2l0Iik7Ci0KLSAgICAgICAgaWYgKHRoaXMuaW5oZXJpdGVkKQotICAgICAgICAg
ICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaW5oZXJpdGVkIik7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LnJlbW92ZVN0eWxlQ2xh
c3MoImluaGVyaXRlZCIpOwotCi0gICAgICAgIGlmICh0aGlzLm92ZXJsb2FkZWQpCi0gICAgICAg
ICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJvdmVybG9hZGVkIik7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LnJlbW92ZVN0eWxl
Q2xhc3MoIm92ZXJsb2FkZWQiKTsKLQotICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkKLSAgICAg
ICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFkZFN0eWxlQ2xhc3MoImRpc2FibGVkIik7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LnJlbW92ZVN0eWxl
Q2xhc3MoImRpc2FibGVkIik7Ci0gICAgfSwKLQogICAgIG9ucG9wdWxhdGU6IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIC8vIE9ubHkgcG9wdWxhdGUgb25jZSBhbmQgaWYgdGhpcyBwcm9wZXJ0
eSBpcyBhIHNob3J0aGFuZC4KQEAgLTIwMDksMTYgKzIwNjcsMTcgQEAgV2ViSW5zcGVjdG9yLlN0
eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbG9uZ2hhbmRQcm9wZXJ0aWVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2
YXIgbmFtZSA9IGxvbmdoYW5kUHJvcGVydGllc1tpXS5uYW1lOwogCi0gICAgICAgICAgICBpZiAo
dGhpcy50cmVlT3V0bGluZS5zZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGluaGVyaXRl
ZCA9IHRoaXMudHJlZU91dGxpbmUuc2VjdGlvbi5pc1Byb3BlcnR5SW5oZXJpdGVkKG5hbWUpOwot
ICAgICAgICAgICAgICAgIHZhciBvdmVybG9hZGVkID0gdGhpcy50cmVlT3V0bGluZS5zZWN0aW9u
LmlzUHJvcGVydHlPdmVybG9hZGVkKG5hbWUpOworICAgICAgICAgICAgdmFyIHNlY3Rpb24gPSB0
aGlzLnNlY3Rpb24oKTsKKyAgICAgICAgICAgIGlmIChzZWN0aW9uKSB7CisgICAgICAgICAgICAg
ICAgdmFyIGluaGVyaXRlZCA9IHNlY3Rpb24uaXNQcm9wZXJ0eUluaGVyaXRlZChuYW1lKTsKKyAg
ICAgICAgICAgICAgICB2YXIgb3ZlcmxvYWRlZCA9IHNlY3Rpb24uaXNQcm9wZXJ0eU92ZXJsb2Fk
ZWQobmFtZSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHZhciBsaXZlUHJvcGVydHkg
PSB0aGlzLnN0eWxlLmdldExpdmVQcm9wZXJ0eShuYW1lKTsKICAgICAgICAgICAgIGlmICghbGl2
ZVByb3BlcnR5KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICB2YXIg
aXRlbSA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50KHRoaXMuc2Vj
dGlvbiwgdGhpcy5fcGFyZW50UGFuZSwgdGhpcy5fc3R5bGVSdWxlLCB0aGlzLnN0eWxlLCBsaXZl
UHJvcGVydHksIGZhbHNlLCBpbmhlcml0ZWQsIG92ZXJsb2FkZWQpOworICAgICAgICAgICAgdmFy
IGl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCh0aGlzLl9w
YXJlbnRQYW5lLCB0aGlzLl9zdHlsZVJ1bGUsIHRoaXMuc3R5bGUsIGxpdmVQcm9wZXJ0eSwgZmFs
c2UsIGluaGVyaXRlZCwgb3ZlcmxvYWRlZCk7CiAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxk
KGl0ZW0pOwogICAgICAgICB9CiAgICAgfSwKQEAgLTIwMzUsNiArMjA5NCw0NyBAQCBXZWJJbnNw
ZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5saXN0SXRlbUVsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMubmFtZUVsZW1lbnQsIHRoaXMubGlz
dEl0ZW1FbGVtZW50LmZpcnN0Q2hpbGQpOwogICAgIH0sCiAKKyAgICBvbmF0dGFjaDogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVu
dEJhc2UucHJvdG90eXBlLm9uYXR0YWNoLmNhbGwodGhpcyk7CisKKyAgICAgICAgdGhpcy5saXN0
SXRlbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3du
LmJpbmQodGhpcykpOworICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJtb3VzZXVwIiwgdGhpcy5fcmVzZXRNb3VzZURvd25FbGVtZW50LmJpbmQodGhpcykpOwor
ICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRo
aXMuX21vdXNlQ2xpY2suYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIF9tb3VzZURvd246IGZ1
bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3BhcmVudFBhbmUpIHsKKyAg
ICAgICAgICAgIHRoaXMuX3BhcmVudFBhbmUuX21vdXNlRG93blRyZWVFbGVtZW50ID0gdGhpczsK
KyAgICAgICAgICAgIHRoaXMuX3BhcmVudFBhbmUuX21vdXNlRG93blRyZWVFbGVtZW50SXNOYW1l
ID0gdGhpcy5faXNOYW1lRWxlbWVudChldmVudC50YXJnZXQpOworICAgICAgICAgICAgdGhpcy5f
cGFyZW50UGFuZS5fbW91c2VEb3duVHJlZUVsZW1lbnRJc1ZhbHVlID0gdGhpcy5faXNWYWx1ZUVs
ZW1lbnQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfcmVzZXRNb3Vz
ZURvd25FbGVtZW50OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fcGFyZW50
UGFuZSkgeworICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3BhcmVudFBhbmUuX21vdXNlRG93blRy
ZWVFbGVtZW50OworICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3BhcmVudFBhbmUuX21vdXNlRG93
blRyZWVFbGVtZW50SXNOYW1lOworICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3BhcmVudFBhbmUu
X21vdXNlRG93blRyZWVFbGVtZW50SXNWYWx1ZTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICB1
cGRhdGVUaXRsZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlN0eWxl
UHJvcGVydHlUcmVlRWxlbWVudEJhc2UucHJvdG90eXBlLnVwZGF0ZVRpdGxlLmNhbGwodGhpcyk7
CisKKyAgICAgICAgaWYgKHRoaXMucGFyc2VkT2sgJiYgdGhpcy5zZWN0aW9uKCkgJiYgdGhpcy5w
YXJlbnQucm9vdCkgeworICAgICAgICAgICAgdmFyIGVuYWJsZWRDaGVja2JveEVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgICAgICAgICAgZW5hYmxlZENoZWNr
Ym94RWxlbWVudC5jbGFzc05hbWUgPSAiZW5hYmxlZC1idXR0b24iOworICAgICAgICAgICAgZW5h
YmxlZENoZWNrYm94RWxlbWVudC50eXBlID0gImNoZWNrYm94IjsKKyAgICAgICAgICAgIGVuYWJs
ZWRDaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9ICF0aGlzLmRpc2FibGVkOworICAgICAgICAgICAg
ZW5hYmxlZENoZWNrYm94RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMudG9n
Z2xlRW5hYmxlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgICAgICAgICB0aGlzLmxpc3RJdGVt
RWxlbWVudC5hcHBlbmRDaGlsZChlbmFibGVkQ2hlY2tib3hFbGVtZW50KTsKKyAgICAgICAgfQor
ICAgIH0sCisKICAgICBfbW91c2VDbGljazogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAg
ICBpZiAoIXdpbmRvdy5nZXRTZWxlY3Rpb24oKS5pc0NvbGxhcHNlZCkKQEAgLTIwNDMsMTIgKzIx
NDMsMTMgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGV2ZW50LmNvbnN1bWUodHJ1ZSk7CiAKICAgICAgICAgaWYgKGV2ZW50LnRh
cmdldCA9PT0gdGhpcy5saXN0SXRlbUVsZW1lbnQpIHsKLSAgICAgICAgICAgIGlmICghdGhpcy5z
ZWN0aW9uLmVkaXRhYmxlKSAKKyAgICAgICAgICAgIHZhciBzZWN0aW9uID0gdGhpcy5zZWN0aW9u
KCk7CisgICAgICAgICAgICBpZiAoIXNlY3Rpb24gfHwgIXNlY3Rpb24uZWRpdGFibGUpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBpZiAodGhpcy5zZWN0aW9uLl9jaGVj
a1dpbGxDYW5jZWxFZGl0aW5nKCkpCisgICAgICAgICAgICBpZiAoc2VjdGlvbi5fY2hlY2tXaWxs
Q2FuY2VsRWRpdGluZygpKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHRo
aXMuc2VjdGlvbi5hZGROZXdCbGFua1Byb3BlcnR5KHRoaXMucHJvcGVydHkuaW5kZXggKyAxKS5z
dGFydEVkaXRpbmcoKTsKKyAgICAgICAgICAgIHNlY3Rpb24uYWRkTmV3QmxhbmtQcm9wZXJ0eSh0
aGlzLnByb3BlcnR5LmluZGV4ICsgMSkuc3RhcnRFZGl0aW5nKCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIApAQCAtMjA3NCw3ICsyMTc1LDggQEAgV2ViSW5zcGVjdG9yLlN0eWxl
UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChzZWxlY3RFbGVt
ZW50ID09PSB0aGlzLl9leHBhbmRFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24gJiYgIXRoaXMudHJlZU91dGxpbmUuc2Vj
dGlvbi5lZGl0YWJsZSkKKyAgICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLnNlY3Rpb24oKTsKKyAg
ICAgICAgaWYgKHNlY3Rpb24gJiYgIXNlY3Rpb24uZWRpdGFibGUpCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgaWYgKCFzZWxlY3RFbGVtZW50KQpAQCAtMjMzMCw4ICsyNDMyLDkgQEAg
V2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHZhciBpc0RhdGFQYXN0ZWQgPSAib3JpZ2luYWxOYW1lIiBpbiBjb250ZXh0OwogICAgICAg
ICB2YXIgaXNEaXJ0eVZpYVBhc3RlID0gaXNEYXRhUGFzdGVkICYmICh0aGlzLm5hbWVFbGVtZW50
LnRleHRDb250ZW50ICE9PSBjb250ZXh0Lm9yaWdpbmFsTmFtZSB8fCB0aGlzLnZhbHVlRWxlbWVu
dC50ZXh0Q29udGVudCAhPT0gY29udGV4dC5vcmlnaW5hbFZhbHVlKTsKICAgICAgICAgdmFyIHNo
b3VsZENvbW1pdE5ld1Byb3BlcnR5ID0gdGhpcy5fbmV3UHJvcGVydHkgJiYgKG1vdmVUb090aGVy
IHx8ICghbW92ZURpcmVjdGlvbiAmJiAhaXNFZGl0aW5nTmFtZSkgfHwgKGlzRWRpdGluZ05hbWUg
JiYgYmxhbmtJbnB1dCkpOworICAgICAgICB2YXIgc2VjdGlvbiA9IHRoaXMuc2VjdGlvbigpOwog
ICAgICAgICBpZiAoKCh1c2VySW5wdXQgIT09IHByZXZpb3VzQ29udGVudCB8fCBpc0RpcnR5Vmlh
UGFzdGUpICYmICF0aGlzLl9uZXdQcm9wZXJ0eSkgfHwgc2hvdWxkQ29tbWl0TmV3UHJvcGVydHkp
IHsKLSAgICAgICAgICAgIHRoaXMudHJlZU91dGxpbmUuc2VjdGlvbi5fYWZ0ZXJVcGRhdGUgPSBt
b3ZlVG9OZXh0Q2FsbGJhY2suYmluZCh0aGlzLCB0aGlzLl9uZXdQcm9wZXJ0eSwgIWJsYW5rSW5w
dXQsIHRoaXMudHJlZU91dGxpbmUuc2VjdGlvbik7CisgICAgICAgICAgICBzZWN0aW9uLl9hZnRl
clVwZGF0ZSA9IG1vdmVUb05leHRDYWxsYmFjay5iaW5kKHRoaXMsIHRoaXMuX25ld1Byb3BlcnR5
LCAhYmxhbmtJbnB1dCwgc2VjdGlvbik7CiAgICAgICAgICAgICB2YXIgcHJvcGVydHlUZXh0Owog
ICAgICAgICAgICAgaWYgKGJsYW5rSW5wdXQgfHwgKHRoaXMuX25ld1Byb3BlcnR5ICYmIC9eXHMq
JC8udGVzdCh0aGlzLnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCkpKQogICAgICAgICAgICAgICAg
IHByb3BlcnR5VGV4dCA9ICIiOwpAQCAtMjM0NSw3ICsyNDQ4LDcgQEAgV2ViSW5zcGVjdG9yLlN0
eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBpZiAoIWlzRGF0YVBhc3RlZCAmJiAhdGhpcy5fbmV3UHJvcGVydHkpCiAgICAg
ICAgICAgICAgICAgdGhpcy51cGRhdGVUaXRsZSgpOwotICAgICAgICAgICAgbW92ZVRvTmV4dENh
bGxiYWNrLmNhbGwodGhpcywgdGhpcy5fbmV3UHJvcGVydHksIGZhbHNlLCB0aGlzLnRyZWVPdXRs
aW5lLnNlY3Rpb24pOworICAgICAgICAgICAgbW92ZVRvTmV4dENhbGxiYWNrLmNhbGwodGhpcywg
dGhpcy5fbmV3UHJvcGVydHksIGZhbHNlLCBzZWN0aW9uKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIFRoZSBDYWxsYmFjayB0byBzdGFydCBlZGl0aW5nIHRoZSBuZXh0L3ByZXZpb3VzIHByb3Bl
cnR5L3NlbGVjdG9yLgpAQCAtMjQ0NSw3ICsyNTQ4LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJv
cGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdGhpcy50cmVlT3V0
bGluZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB2YXIgc2VjdGlvbiA9IHRoaXMu
dHJlZU91dGxpbmUuc2VjdGlvbjsKKyAgICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLnNlY3Rpb24o
KTsKICAgICAgICAgc3R5bGVUZXh0ID0gc3R5bGVUZXh0LnJlcGxhY2UoL1xzL2csICIgIikudHJp
bSgpOyAvLyBSZXBsYWNlICZuYnNwOyB3aXRoIHdoaXRlc3BhY2UuCiAgICAgICAgIHZhciBzdHls
ZVRleHRMZW5ndGggPSBzdHlsZVRleHQubGVuZ3RoOwogICAgICAgICBpZiAoIXN0eWxlVGV4dExl
bmd0aCAmJiB1cGRhdGVJbnRlcmZhY2UgJiYgIWlzUmV2ZXJ0ICYmIHRoaXMuX25ld1Byb3BlcnR5
ICYmICF0aGlzLl9oYXNCZWVuTW9kaWZpZWRJbmNyZW1lbnRhbGx5KCkpIHsKQEAgLTI0NzksNyAr
MjU4Miw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgaWYgKHNlY3Rpb24gJiYgc2VjdGlvbi5wYW5lKQogICAgICAgICAg
ICAgICAgIHNlY3Rpb24ucGFuZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoInN0eWxlIGVkaXRl
ZCIpOwogCi0gICAgICAgICAgICBpZiAodXBkYXRlSW50ZXJmYWNlICYmIGN1cnJlbnROb2RlID09
PSBzZWN0aW9uLnBhbmUubm9kZSkgeworICAgICAgICAgICAgaWYgKHVwZGF0ZUludGVyZmFjZSAm
JiBjdXJyZW50Tm9kZSA9PT0gdGhpcy5ub2RlKCkpIHsKICAgICAgICAgICAgICAgICB0aGlzLl91
cGRhdGVQYW5lKHVzZXJDYWxsYmFjayk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQpAQCAtMjUwMiwxMiArMjYwNSwxMCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0
eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIGlzRXZlbnRXaXRoaW5EaXNjbG9zdXJl
VHJpYW5nbGU6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnNlY3Rp
b24uY29tcHV0ZWRTdHlsZSkKLSAgICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQgPT09IHRo
aXMuX2V4cGFuZEVsZW1lbnQ7Ci0gICAgICAgIHJldHVybiBUcmVlRWxlbWVudC5wcm90b3R5cGUu
aXNFdmVudFdpdGhpbkRpc2Nsb3N1cmVUcmlhbmdsZS5jYWxsKHRoaXMsIGV2ZW50KTsKKyAgICAg
ICAgcmV0dXJuIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fZXhwYW5kRWxlbWVudDsKICAgICB9LAog
Ci0gICAgX19wcm90b19fOiBUcmVlRWxlbWVudC5wcm90b3R5cGUKKyAgICBfX3Byb3RvX186IFdl
Ykluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnRCYXNlLnByb3RvdHlwZQogfQogCiAv
KioKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBmZGUxYzRjNDY5MzFhM2E4YTEyZGM0MTNlM2VmYjJmMmRkODBkMzM4Li40Y2Ez
ODlhOGNkNGQyZThjMjU2Y2YwNjQzY2U3ODFhNjc2OGY2N2M0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTMtMDItMTggIFZsYWRpc2xhdiBLYXpuYWNoZWV2ICA8a2F6bmFjaGVldkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29sb3IgcGlja2VyIHNob3VsZCBub3Qg
YmUgYXZhaWxhYmxlIGluIENvbXB1dGVkIFN0eWxlcyBwYW5lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdW5kby1hZGQt
cHJvcGVydHkuaHRtbDoKKwogMjAxMy0wMi0xOCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXByb3BlcnR5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXByb3BlcnR5Lmh0bWwKaW5kZXggZjgx
NTAxNGU0MzdiY2FmNWVmY2NlOTQyNGE2NDNkOGNjMmY1YWRlYy4uZGQxZDMxYzNmZWRlZGUzYmRl
ZDliMjE2ODBkN2YzMzRlYjdlNGZmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy91bmRvLWFkZC1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvdW5kby1hZGQtcHJvcGVydHkuaHRtbApAQCAtNDAsNyArNDAsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVz
KHRydWUpOwogCiAgICAgICAgIHZhciB0cmVlSXRlbSA9IEluc3BlY3RvclRlc3QuZ2V0TWF0Y2hl
ZFN0eWxlUHJvcGVydHlUcmVlSXRlbSgiZm9udC13ZWlnaHQiKTsKLSAgICAgICAgdmFyIHRyZWVF
bGVtZW50ID0gdHJlZUl0ZW0uc2VjdGlvbi5hZGROZXdCbGFua1Byb3BlcnR5KGluZGV4KTsKKyAg
ICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdHJlZUl0ZW0uc2VjdGlvbigpLmFkZE5ld0JsYW5rUHJv
cGVydHkoaW5kZXgpOwogICAgICAgICB0cmVlRWxlbWVudC5hcHBseVN0eWxlVGV4dChwcm9wZXJ0
eVRleHQsIHRydWUsIHRydWUpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMo
ImNvbnRhaW5lciIsIHN0ZXAxKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188850</attachid>
            <date>2013-02-18 04:42:38 -0800</date>
            <delta_ts>2013-02-18 06:03:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109697-20130218163901.patch</filename>
            <type>text/plain</type>
            <size>28584</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk5NTEwODJmNWExMzJh
NTA3MmJiOTNiNjIwOTk2ZGI2N2VjMWZhYy4uNDgwNTRjNGE1MmE5NmMwMjViODQxYTk1NTdlNWNh
NDgxZGMxNmFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTE4ICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENvbG9yIHBpY2tlciBzaG91bGQgbm90IGJlIGF2YWlsYWJsZSBpbiBDb21w
dXRlZCBTdHlsZXMgcGFuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5Njk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3JlZCBQcm9wZXJ0aWVzU2VjdGlvbiBhbmQgVHJlZUVsZW1lbnQgaW5o
ZXJpdG9ycyBpbiBTdHlsZXNTaWRlYmFyUGFuZS5qcyBmb3IgY2xlYW5lciBzZXBhcmF0aW9uCisg
ICAgICAgIG9mIHJlYWQtb25seSBhbmQgZWRpdGFibGUgcHJvcGVydGllcy4KKworICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUub25wb3B1bGF0ZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUuYWRk
TmV3QmxhbmtQcm9wZXJ0eSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29tcHV0ZWRTdHlsZVBy
b3BlcnRpZXNTZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlUHJv
cGVydGllc1NlY3Rpb24ucHJvdG90eXBlLm9ucG9wdWxhdGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkJsYW5rU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50QmFzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5
bGVQcm9wZXJ0eVRyZWVFbGVtZW50QmFzZS5wcm90b3R5cGUubm9kZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50QmFzZS5wcm90b3R5cGUuZWRpdGFibGVQ
YW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnRCYXNl
LnByb3RvdHlwZS5vbmF0dGFjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0
eVRyZWVFbGVtZW50QmFzZS5wcm90b3R5cGUudXBkYXRlVGl0bGUubGlua2lmeVVSTCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50QmFzZS5wcm90b3R5cGUu
dXBkYXRlVGl0bGUuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVs
ZW1lbnRCYXNlLnByb3RvdHlwZSk6CisgICAgICAgICguZXZlbnQpOgorICAgICAgICAoLmlzUmV2
ZXJ0KToKKwogMjAxMy0wMi0xNSAgRXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFzQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnRyb2R1Y2UgUHJvZmlsZXNQYW5lbERl
c2NyaXB0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwppbmRleCA0Y2UzYzExNWVkNTkwZjY4NzdkMzA4YTQ2Y2M0
ZWQ2MjRkZjkzZWY5Li4wYjNlYmJkOTRmMDk1OWZkYzA3ZTdmNjdiMDJiMzNlMjUyZTJiY2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGVi
YXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVz
U2lkZWJhclBhbmUuanMKQEAgLTEwNDAsNyArMTA0MCw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVBy
b3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB2YXIgaXNTaG9y
dGhhbmQgPSAhIVdlYkluc3BlY3Rvci5DU1NNZXRhZGF0YS5jc3NQcm9wZXJ0aWVzTWV0YWluZm8u
bG9uZ2hhbmRzKHByb3BlcnR5Lm5hbWUpOwogICAgICAgICAgICAgICAgIHZhciBpbmhlcml0ZWQg
PSB0aGlzLmlzUHJvcGVydHlJbmhlcml0ZWQocHJvcGVydHkubmFtZSk7CiAgICAgICAgICAgICAg
ICAgdmFyIG92ZXJsb2FkZWQgPSBwcm9wZXJ0eS5pbmFjdGl2ZSB8fCB0aGlzLmlzUHJvcGVydHlP
dmVybG9hZGVkKHByb3BlcnR5Lm5hbWUpOwotICAgICAgICAgICAgICAgIHZhciBpdGVtID0gbmV3
IFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcywgdGhpcy5fcGFyZW50
UGFuZSwgdGhpcy5zdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgaXNTaG9ydGhhbmQsIGluaGVy
aXRlZCwgb3ZlcmxvYWRlZCk7CisgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBuZXcgV2ViSW5z
cGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCh0aGlzLl9wYXJlbnRQYW5lLCB0aGlzLnN0
eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBpc1Nob3J0aGFuZCwgaW5oZXJpdGVkLCBvdmVybG9h
ZGVkKTsKICAgICAgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGluZS5hcHBlbmRD
aGlsZChpdGVtKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwNzQs
NyArMTA3NCw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICAvLyBHZW5lcmF0ZSBzeW50aGV0aWMgc2hvcnRoYW5kIHdl
IGhhdmUgYSB2YWx1ZSBmb3IuCiAgICAgICAgICAgICAgICAgdmFyIHNob3J0aGFuZFByb3BlcnR5
ID0gbmV3IFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eShzdHlsZSwgc3R5bGUuYWxsUHJvcGVydGll
cy5sZW5ndGgsIHNob3J0aGFuZCwgc3R5bGUuc2hvcnRoYW5kVmFsdWUoc2hvcnRoYW5kKSwgIiIs
ICJzdHlsZSIsIHRydWUsIHRydWUsIHVuZGVmaW5lZCk7CiAgICAgICAgICAgICAgICAgdmFyIG92
ZXJsb2FkZWQgPSBwcm9wZXJ0eS5pbmFjdGl2ZSB8fCB0aGlzLmlzUHJvcGVydHlPdmVybG9hZGVk
KHByb3BlcnR5Lm5hbWUsIHRydWUpOwotICAgICAgICAgICAgICAgIHZhciBpdGVtID0gbmV3IFdl
Ykluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcywgdGhpcy5fcGFyZW50UGFu
ZSwgdGhpcy5zdHlsZVJ1bGUsIHN0eWxlLCBzaG9ydGhhbmRQcm9wZXJ0eSwgIC8qIGlzU2hvcnRo
YW5kICovIHRydWUsIC8qIGluaGVyaXRlZCAqLyBmYWxzZSwgb3ZlcmxvYWRlZCk7CisgICAgICAg
ICAgICAgICAgdmFyIGl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxl
bWVudCh0aGlzLl9wYXJlbnRQYW5lLCB0aGlzLnN0eWxlUnVsZSwgc3R5bGUsIHNob3J0aGFuZFBy
b3BlcnR5LCAgLyogaXNTaG9ydGhhbmQgKi8gdHJ1ZSwgLyogaW5oZXJpdGVkICovIGZhbHNlLCBv
dmVybG9hZGVkKTsKICAgICAgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGluZS5h
cHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICBnZW5lcmF0ZWRTaG9ydGhhbmRzW3No
b3J0aGFuZF0gPSBzaG9ydGhhbmRQcm9wZXJ0eTsKICAgICAgICAgICAgICAgICBzaG9ydGhhbmRQ
cm9wZXJ0eUF2YWlsYWJsZSA9IHRydWU7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCBXZWJJbnNwZWN0
b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIHZh
ciBpbmhlcml0ZWQgPSB0aGlzLmlzUHJvcGVydHlJbmhlcml0ZWQocHJvcGVydHkubmFtZSk7CiAg
ICAgICAgICAgICB2YXIgb3ZlcmxvYWRlZCA9IHByb3BlcnR5LmluYWN0aXZlIHx8IHRoaXMuaXNQ
cm9wZXJ0eU92ZXJsb2FkZWQocHJvcGVydHkubmFtZSwgaXNTaG9ydGhhbmQpOwotICAgICAgICAg
ICAgdmFyIGl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCh0
aGlzLCB0aGlzLl9wYXJlbnRQYW5lLCB0aGlzLnN0eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBp
c1Nob3J0aGFuZCwgaW5oZXJpdGVkLCBvdmVybG9hZGVkKTsKKyAgICAgICAgICAgIHZhciBpdGVt
ID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcy5fcGFyZW50
UGFuZSwgdGhpcy5zdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgaXNTaG9ydGhhbmQsIGluaGVy
aXRlZCwgb3ZlcmxvYWRlZCk7CiAgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGlu
ZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgfQogICAgIH0sCkBAIC0xMTU4LDcgKzExNTgs
NyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAg
ICAgewogICAgICAgICB2YXIgc3R5bGUgPSB0aGlzLnN0eWxlUnVsZS5zdHlsZTsKICAgICAgICAg
dmFyIHByb3BlcnR5ID0gc3R5bGUubmV3QmxhbmtQcm9wZXJ0eShpbmRleCk7Ci0gICAgICAgIHZh
ciBpdGVtID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcywg
dGhpcy5fcGFyZW50UGFuZSwgdGhpcy5zdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSk7CisgICAgICAgIHZhciBpdGVtID0gbmV3IFdlYkluc3BlY3Rvci5TdHls
ZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcy5fcGFyZW50UGFuZSwgdGhpcy5zdHlsZVJ1bGUsIHN0
eWxlLCBwcm9wZXJ0eSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIGluZGV4ID0gcHJv
cGVydHkuaW5kZXg7CiAgICAgICAgIHRoaXMucHJvcGVydGllc1RyZWVPdXRsaW5lLmluc2VydENo
aWxkKGl0ZW0sIGluZGV4KTsKICAgICAgICAgaXRlbS5saXN0SXRlbUVsZW1lbnQudGV4dENvbnRl
bnQgPSAiIjsKQEAgLTEzNDcsMTYgKzEzNDcsMTYgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVy
dGllc1NlY3Rpb24ucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRl
bmRzIHtXZWJJbnNwZWN0b3IuUHJvcGVydGllc1NlY3Rpb259Ci0gKiBAcGFyYW0geyFXZWJJbnNw
ZWN0b3IuU3R5bGVzU2lkZWJhclBhbmV9IHBhcmVudFBhbmUKKyAqIEBwYXJhbSB7IVdlYkluc3Bl
Y3Rvci5TdHlsZXNTaWRlYmFyUGFuZX0gc3R5bGVzUGFuZQogICogQHBhcmFtIHshT2JqZWN0fSBz
dHlsZVJ1bGUKICAqIEBwYXJhbSB7IU9iamVjdC48c3RyaW5nLCBib29sZWFuPn0gdXNlZFByb3Bl
cnRpZXMKICAqLwotV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbiA9
IGZ1bmN0aW9uKHBhcmVudFBhbmUsIHN0eWxlUnVsZSwgdXNlZFByb3BlcnRpZXMpCitXZWJJbnNw
ZWN0b3IuQ29tcHV0ZWRTdHlsZVByb3BlcnRpZXNTZWN0aW9uID0gZnVuY3Rpb24oc3R5bGVzUGFu
ZSwgc3R5bGVSdWxlLCB1c2VkUHJvcGVydGllcykKIHsKICAgICBXZWJJbnNwZWN0b3IuUHJvcGVy
dGllc1NlY3Rpb24uY2FsbCh0aGlzLCAiIik7CiAgICAgdGhpcy5oZWFkZXJFbGVtZW50LmFkZFN0
eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAic3R5bGVz
LXNlY3Rpb24gbW9ub3NwYWNlIGZpcnN0LXN0eWxlcy1zZWN0aW9uIHJlYWQtb25seSBjb21wdXRl
ZC1zdHlsZSI7Ci0gICAgdGhpcy5fcGFyZW50UGFuZSA9IHBhcmVudFBhbmU7CisgICAgdGhpcy5f
c3R5bGVzUGFuZSA9IHN0eWxlc1BhbmU7CiAgICAgdGhpcy5zdHlsZVJ1bGUgPSBzdHlsZVJ1bGU7
CiAgICAgdGhpcy5fdXNlZFByb3BlcnRpZXMgPSB1c2VkUHJvcGVydGllczsKICAgICB0aGlzLl9h
bHdheXNTaG93Q29tcHV0ZWRQcm9wZXJ0aWVzID0geyAiZGlzcGxheSI6IHRydWUsICJoZWlnaHQi
OiB0cnVlLCAid2lkdGgiOiB0cnVlIH07CkBAIC0xMzY2LDExICsxMzY2LDYgQEAgV2ViSW5zcGVj
dG9yLkNvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbiA9IGZ1bmN0aW9uKHBhcmVudFBhbmUs
IHN0eWxlUnVsZSwgdXMKIH0KIAogV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVQcm9wZXJ0aWVz
U2VjdGlvbi5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0IHBhbmUoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX3BhcmVudFBhbmU7Ci0gICAgfSwKLQogICAgIGNvbGxhcHNlOiBmdW5jdGlvbihk
b250UmVtZW1iZXJTdGF0ZSkKICAgICB7CiAgICAgICAgIC8vIE92ZXJyaWRpbmcgd2l0aCBlbXB0
eSBib2R5LgpAQCAtMTQxNSw3ICsxNDEwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVQ
cm9wZXJ0aWVzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdW5pcXVlUHJvcGVydGllcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHByb3Bl
cnR5ID0gdW5pcXVlUHJvcGVydGllc1tpXTsKICAgICAgICAgICAgIHZhciBpbmhlcml0ZWQgPSB0
aGlzLl9pc1Byb3BlcnR5SW5oZXJpdGVkKHByb3BlcnR5Lm5hbWUpOwotICAgICAgICAgICAgdmFy
IGl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCh0aGlzLCB0
aGlzLl9wYXJlbnRQYW5lLCB0aGlzLnN0eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBmYWxzZSwg
aW5oZXJpdGVkLCBmYWxzZSk7CisgICAgICAgICAgICB2YXIgaXRlbSA9IG5ldyBXZWJJbnNwZWN0
b3IuQ29tcHV0ZWRTdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhpcy5fc3R5bGVzUGFuZSwgdGhp
cy5zdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgaW5oZXJpdGVkKTsKICAgICAgICAgICAgIHRo
aXMucHJvcGVydGllc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKGl0ZW0pOwogICAgICAgICAgICAg
dGhpcy5fcHJvcGVydHlUcmVlRWxlbWVudHNbcHJvcGVydHkubmFtZV0gPSBpdGVtOwogICAgICAg
ICB9CkBAIC0xNDcwLDEwICsxNDY1LDEyIEBAIFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlUHJv
cGVydGllc1NlY3Rpb24ucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbn0KKyAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lfSBzdHlsZXNQYW5lCisgKiBAcGFyYW0ge3N0
cmluZ30gZGVmYXVsdFNlbGVjdG9yVGV4dAogICovCi1XZWJJbnNwZWN0b3IuQmxhbmtTdHlsZVBy
b3BlcnRpZXNTZWN0aW9uID0gZnVuY3Rpb24ocGFyZW50UGFuZSwgZGVmYXVsdFNlbGVjdG9yVGV4
dCkKK1dlYkluc3BlY3Rvci5CbGFua1N0eWxlUHJvcGVydGllc1NlY3Rpb24gPSBmdW5jdGlvbihz
dHlsZXNQYW5lLCBkZWZhdWx0U2VsZWN0b3JUZXh0KQogewotICAgIFdlYkluc3BlY3Rvci5TdHls
ZVByb3BlcnRpZXNTZWN0aW9uLmNhbGwodGhpcywgcGFyZW50UGFuZSwge3NlbGVjdG9yVGV4dDog
ZGVmYXVsdFNlbGVjdG9yVGV4dCwgcnVsZToge2lzVmlhSW5zcGVjdG9yOiB0cnVlfX0sIHRydWUs
IGZhbHNlLCBmYWxzZSk7CisgICAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24u
Y2FsbCh0aGlzLCBzdHlsZXNQYW5lLCB7c2VsZWN0b3JUZXh0OiBkZWZhdWx0U2VsZWN0b3JUZXh0
LCBydWxlOiB7aXNWaWFJbnNwZWN0b3I6IHRydWV9fSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsKICAg
ICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYmxhbmstc2VjdGlvbiIpOwogfQogCkBAIC0x
NTQ5LDMzICsxNTQ2LDQ0IEBAIFdlYkluc3BlY3Rvci5CbGFua1N0eWxlUHJvcGVydGllc1NlY3Rp
b24ucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtUcmVl
RWxlbWVudH0KLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb258
V2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbn0gc2VjdGlvbgotICog
QHBhcmFtIHs/V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lfSBwYXJlbnRQYW5lCiAgKiBA
cGFyYW0ge09iamVjdH0gc3R5bGVSdWxlCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5DU1NTdHls
ZURlY2xhcmF0aW9ufSBzdHlsZQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHl9
IHByb3BlcnR5Ci0gKiBAcGFyYW0ge2Jvb2xlYW59IGlzU2hvcnRoYW5kCiAgKiBAcGFyYW0ge2Jv
b2xlYW59IGluaGVyaXRlZAogICogQHBhcmFtIHtib29sZWFufSBvdmVybG9hZGVkCisgKiBAcGFy
YW0ge2Jvb2xlYW59IGhhc0NoaWxkcmVuCiAgKi8KLVdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5
VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihzZWN0aW9uLCBwYXJlbnRQYW5lLCBzdHlsZVJ1bGUsIHN0
eWxlLCBwcm9wZXJ0eSwgaXNTaG9ydGhhbmQsIGluaGVyaXRlZCwgb3ZlcmxvYWRlZCkKK1dlYklu
c3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnRCYXNlID0gZnVuY3Rpb24oc3R5bGVSdWxl
LCBzdHlsZSwgcHJvcGVydHksIGluaGVyaXRlZCwgb3ZlcmxvYWRlZCwgaGFzQ2hpbGRyZW4pCiB7
Ci0gICAgdGhpcy5zZWN0aW9uID0gc2VjdGlvbjsKLSAgICB0aGlzLl9wYXJlbnRQYW5lID0gcGFy
ZW50UGFuZTsKICAgICB0aGlzLl9zdHlsZVJ1bGUgPSBzdHlsZVJ1bGU7CiAgICAgdGhpcy5zdHls
ZSA9IHN0eWxlOwogICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eTsKLSAgICB0aGlzLmlzU2hv
cnRoYW5kID0gaXNTaG9ydGhhbmQ7CiAgICAgdGhpcy5faW5oZXJpdGVkID0gaW5oZXJpdGVkOwog
ICAgIHRoaXMuX292ZXJsb2FkZWQgPSBvdmVybG9hZGVkOwogCiAgICAgLy8gUGFzcyBhbiBlbXB0
eSB0aXRsZSwgdGhlIHRpdGxlIGdldHMgbWFkZSBsYXRlciBpbiBvbmF0dGFjaC4KLSAgICBUcmVl
RWxlbWVudC5jYWxsKHRoaXMsICIiLCBudWxsLCBpc1Nob3J0aGFuZCk7CisgICAgVHJlZUVsZW1l
bnQuY2FsbCh0aGlzLCAiIiwgbnVsbCwgaGFzQ2hpbGRyZW4pOwogCiAgICAgdGhpcy5zZWxlY3Rh
YmxlID0gZmFsc2U7CiB9CiAKLVdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQu
cHJvdG90eXBlID0geworV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudEJhc2Uu
cHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEByZXR1cm4gez9XZWJJbnNwZWN0b3IuRE9N
Tm9kZX0KKyAgICAgKi8KKyAgICBub2RlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1
cm4gbnVsbDsgIC8vIE92ZXJyaWRkZW4gYnkgYW5jZXN0b3JzLgorICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lfQorICAgICAq
LworICAgIGVkaXRhYmxlUGFuZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG51
bGw7ICAvLyBPdmVycmlkZGVuIGJ5IGFuY2VzdG9ycy4KKyAgICB9LAorCiAgICAgZ2V0IGluaGVy
aXRlZCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5faW5oZXJpdGVkOwpAQCAtMTY1Miwy
NyArMTY2MCw2IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgIG9uYXR0YWNoOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLnVw
ZGF0ZVRpdGxlKCk7Ci0gICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlZG93biIsIHRoaXMuX21vdXNlRG93bi5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhp
cy5saXN0SXRlbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHRoaXMuX3Jlc2V0
TW91c2VEb3duRWxlbWVudC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9tb3VzZUNsaWNrLmJpbmQodGhpcykp
OwotICAgIH0sCi0KLSAgICBfbW91c2VEb3duOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAg
ICAgIGlmICh0aGlzLl9wYXJlbnRQYW5lKSB7Ci0gICAgICAgICAgICB0aGlzLl9wYXJlbnRQYW5l
Ll9tb3VzZURvd25UcmVlRWxlbWVudCA9IHRoaXM7Ci0gICAgICAgICAgICB0aGlzLl9wYXJlbnRQ
YW5lLl9tb3VzZURvd25UcmVlRWxlbWVudElzTmFtZSA9IHRoaXMuX2lzTmFtZUVsZW1lbnQoZXZl
bnQudGFyZ2V0KTsKLSAgICAgICAgICAgIHRoaXMuX3BhcmVudFBhbmUuX21vdXNlRG93blRyZWVF
bGVtZW50SXNWYWx1ZSA9IHRoaXMuX2lzVmFsdWVFbGVtZW50KGV2ZW50LnRhcmdldCk7Ci0gICAg
ICAgIH0KLSAgICB9LAotCi0gICAgX3Jlc2V0TW91c2VEb3duRWxlbWVudDogZnVuY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3BhcmVudFBhbmUpIHsKLSAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLl9wYXJlbnRQYW5lLl9tb3VzZURvd25UcmVlRWxlbWVudDsKLSAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLl9wYXJlbnRQYW5lLl9tb3VzZURvd25UcmVlRWxlbWVudElzTmFtZTsKLSAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9wYXJlbnRQYW5lLl9tb3VzZURvd25UcmVlRWxlbWVudElzVmFs
dWU7Ci0gICAgICAgIH0KICAgICB9LAogCiAgICAgdXBkYXRlVGl0bGU6IGZ1bmN0aW9uKCkKQEAg
LTE2ODEsMTUgKzE2NjgsNiBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKCk7CiAKLSAgICAgICAg
dmFyIGVuYWJsZWRDaGVja2JveEVsZW1lbnQ7Ci0gICAgICAgIGlmICh0aGlzLnBhcnNlZE9rKSB7
Ci0gICAgICAgICAgICBlbmFibGVkQ2hlY2tib3hFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKTsKLSAgICAgICAgICAgIGVuYWJsZWRDaGVja2JveEVsZW1lbnQuY2xhc3NO
YW1lID0gImVuYWJsZWQtYnV0dG9uIjsKLSAgICAgICAgICAgIGVuYWJsZWRDaGVja2JveEVsZW1l
bnQudHlwZSA9ICJjaGVja2JveCI7Ci0gICAgICAgICAgICBlbmFibGVkQ2hlY2tib3hFbGVtZW50
LmNoZWNrZWQgPSAhdGhpcy5kaXNhYmxlZDsKLSAgICAgICAgICAgIGVuYWJsZWRDaGVja2JveEVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLnRvZ2dsZUVuYWJsZWQuYmluZCh0
aGlzKSwgZmFsc2UpOwotICAgICAgICB9Ci0KICAgICAgICAgdmFyIG5hbWVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICBuYW1lRWxlbWVudC5jbGFzc05h
bWUgPSAid2Via2l0LWNzcy1wcm9wZXJ0eSI7CiAgICAgICAgIG5hbWVFbGVtZW50LnRleHRDb250
ZW50ID0gdGhpcy5uYW1lOwpAQCAtMTczOSw4ICsxNzE3LDggQEAgV2ViSW5zcGVjdG9yLlN0eWxl
UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY29udGFp
bmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ1cmwoIikpOwogICAgICAg
ICAgICAgICAgIGlmIChzZWxmLl9zdHlsZVJ1bGUuc291cmNlVVJMKQogICAgICAgICAgICAgICAg
ICAgICBocmVmVXJsID0gV2ViSW5zcGVjdG9yLlBhcnNlZFVSTC5jb21wbGV0ZVVSTChzZWxmLl9z
dHlsZVJ1bGUuc291cmNlVVJMLCBocmVmVXJsKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChz
ZWxmLl9wYXJlbnRQYW5lLm5vZGUpCi0gICAgICAgICAgICAgICAgICAgIGhyZWZVcmwgPSBzZWxm
Ll9wYXJlbnRQYW5lLm5vZGUucmVzb2x2ZVVSTChocmVmVXJsKTsKKyAgICAgICAgICAgICAgICBl
bHNlIGlmIChzZWxmLm5vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgaHJlZlVybCA9IHNlbGYu
bm9kZSgpLnJlc29sdmVVUkwoaHJlZlVybCk7CiAgICAgICAgICAgICAgICAgdmFyIGhhc1Jlc291
cmNlID0gISFXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoaHJlZlVybCk7CiAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKCkgc2hvdWxkIHJl
YWxseSB1c2UgYmFzZVVSSS4KICAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
V2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUoaHJlZlVybCwgdXJsLCB1bmRlZmluZWQsICFo
YXNSZXNvdXJjZSkpOwpAQCAtMTc1MiwxMyArMTczMCwxMiBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQ
cm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICB2YXIgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IucGFyc2UodGV4dCk7CiAKLSAg
ICAgICAgICAgICAgICAvLyBXZSBjYW4gYmUgY2FsbGVkIHdpdGggdmFsaWQgbm9uLWNvbG9yIHZh
bHVlcyBvZiB8dGV4dHwgKGxpa2UgJ25vbmUnIGZyb20gYm9yZGVyIHN0eWxlKSAKLSAgICAgICAg
ICAgICAgICBpZiAoIWNvbG9yKSAKKyAgICAgICAgICAgICAgICAvLyBXZSBjYW4gYmUgY2FsbGVk
IHdpdGggdmFsaWQgbm9uLWNvbG9yIHZhbHVlcyBvZiB8dGV4dHwgKGxpa2UgJ25vbmUnIGZyb20g
Ym9yZGVyIHN0eWxlKQorICAgICAgICAgICAgICAgIGlmICghY29sb3IpCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KTsKLSAgICAgICAgICAg
ICAgICAKKwogICAgICAgICAgICAgICAgIHZhciBmb3JtYXQgPSBnZXRGb3JtYXQoKTsKLSAgICAg
ICAgICAgICAgICB2YXIgaGFzU3BlY3RydW0gPSBzZWxmLl9wYXJlbnRQYW5lOwotICAgICAgICAg
ICAgICAgIHZhciBzcGVjdHJ1bUhlbHBlciA9IGhhc1NwZWN0cnVtID8gc2VsZi5fcGFyZW50UGFu
ZS5fc3BlY3RydW1IZWxwZXIgOiBudWxsOworICAgICAgICAgICAgICAgIHZhciBzcGVjdHJ1bUhl
bHBlciA9IHNlbGYuZWRpdGFibGVQYW5lKCkgJiYgc2VsZi5lZGl0YWJsZVBhbmUoKS5fc3BlY3Ry
dW1IZWxwZXI7CiAgICAgICAgICAgICAgICAgdmFyIHNwZWN0cnVtID0gc3BlY3RydW1IZWxwZXIg
PyBzcGVjdHJ1bUhlbHBlci5zcGVjdHJ1bSgpIDogbnVsbDsKIAogICAgICAgICAgICAgICAgIHZh
ciBjb2xvclN3YXRjaCA9IG5ldyBXZWJJbnNwZWN0b3IuQ29sb3JTd2F0Y2goKTsKQEAgLTE3ODcs
NyArMTc2NCw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgICAgICBzcGVjdHJ1bS5yZW1vdmVFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5TcGVjdHJ1bS5FdmVudHMuQ29sb3JDaGFuZ2VkLCBzcGVjdHJ1bUNoYW5n
ZWQpOwogICAgICAgICAgICAgICAgICAgICBzcGVjdHJ1bUhlbHBlci5yZW1vdmVFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5TcGVjdHJ1bVBvcHVwSGVscGVyLkV2ZW50cy5IaWRkZW4sIHNwZWN0
cnVtSGlkZGVuKTsKIAotICAgICAgICAgICAgICAgICAgICBkZWxldGUgc2VsZi5fcGFyZW50UGFu
ZS5faXNFZGl0aW5nU3R5bGU7CisgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBzZWxmLmVkaXRh
YmxlUGFuZSgpLl9pc0VkaXRpbmdTdHlsZTsKICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHNl
bGYub3JpZ2luYWxQcm9wZXJ0eVRleHQ7CiAgICAgICAgICAgICAgICAgfQogCkBAIC0xODA4LDcg
KzE3ODUsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aXNpYmxlKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3BlY3RydW0uZGlzcGxheVRleHQgPSBjb2xvci50b1N0cmluZyhm
b3JtYXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub3JpZ2luYWxQcm9wZXJ0
eVRleHQgPSBzZWxmLnByb3BlcnR5LnByb3BlcnR5VGV4dDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9wYXJlbnRQYW5lLl9pc0VkaXRpbmdTdHlsZSA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5lZGl0YWJsZVBhbmUoKS5faXNFZGl0aW5nU3R5bGUg
PSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWN0cnVtLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlNwZWN0cnVtLkV2ZW50cy5Db2xvckNoYW5nZWQsIHNwZWN0cnVt
Q2hhbmdlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY3RydW1IZWxwZXIuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU3BlY3RydW1Qb3B1cEhlbHBlci5FdmVudHMuSGlk
ZGVuLCBzcGVjdHJ1bUhpZGRlbik7CiAKQEAgLTE5MTcsOSArMTg5NCw2IEBAIFdlYkluc3BlY3Rv
ci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRo
aXMudHJlZU91dGxpbmUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgLy8gQXBwZW5k
IHRoZSBjaGVja2JveCBmb3Igcm9vdCBlbGVtZW50cyBvZiBhbiBlZGl0YWJsZSBzZWN0aW9uLgot
ICAgICAgICBpZiAoZW5hYmxlZENoZWNrYm94RWxlbWVudCAmJiB0aGlzLnRyZWVPdXRsaW5lLnNl
Y3Rpb24gJiYgdGhpcy5wYXJlbnQucm9vdCAmJiAhdGhpcy5zZWN0aW9uLmNvbXB1dGVkU3R5bGUp
Ci0gICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZChlbmFibGVkQ2hl
Y2tib3hFbGVtZW50KTsKICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQo
bmFtZUVsZW1lbnQpOwogICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiOiAiKSk7CiAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVt
ZW50LmFwcGVuZENoaWxkKHRoaXMuX2V4cGFuZEVsZW1lbnQpOwpAQCAtMTkzOCwxMCArMTkxMiwx
MTggQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJpbmFjdGl2
ZSIpOwogICAgIH0sCiAKKyAgICB1cGRhdGVTdGF0ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgaWYgKCF0aGlzLmxpc3RJdGVtRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBpZiAodGhpcy5zdHlsZS5pc1Byb3BlcnR5SW1wbGljaXQodGhpcy5uYW1lKSB8fCB0aGlz
LnZhbHVlID09PSAiaW5pdGlhbCIpCisgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5h
ZGRTdHlsZUNsYXNzKCJpbXBsaWNpdCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlz
Lmxpc3RJdGVtRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJpbXBsaWNpdCIpOworCisgICAgICAg
IGlmICh0aGlzLmluaGVyaXRlZCkKKyAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFk
ZFN0eWxlQ2xhc3MoImluaGVyaXRlZCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlz
Lmxpc3RJdGVtRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJpbmhlcml0ZWQiKTsKKworICAgICAg
ICBpZiAodGhpcy5vdmVybG9hZGVkKQorICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQu
YWRkU3R5bGVDbGFzcygib3ZlcmxvYWRlZCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
aGlzLmxpc3RJdGVtRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJvdmVybG9hZGVkIik7CisKKyAg
ICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpCisgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVu
dC5hZGRTdHlsZUNsYXNzKCJkaXNhYmxlZCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
aGlzLmxpc3RJdGVtRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJkaXNhYmxlZCIpOworICAgIH0s
CisKKyAgICBfX3Byb3RvX186IFRyZWVFbGVtZW50LnByb3RvdHlwZQorfQorCisvKioKKyAqIEBj
b25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVs
ZW1lbnRCYXNlfQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmV9IHN0
eWxlc1BhbmUKKyAqIEBwYXJhbSB7T2JqZWN0fSBzdHlsZVJ1bGUKKyAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5DU1NQcm9wZXJ0eX0gcHJvcGVydHkKKyAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5oZXJpdGVkCisg
Ki8KK1dlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCA9IGZ1bmN0
aW9uKHN0eWxlc1BhbmUsIHN0eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBpbmhlcml0ZWQpCit7
CisgICAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudEJhc2UuY2FsbCh0aGlz
LCBzdHlsZVJ1bGUsIHN0eWxlLCBwcm9wZXJ0eSwgaW5oZXJpdGVkLCBmYWxzZSwgZmFsc2UpOwor
ICAgIHRoaXMuX3N0eWxlc1BhbmUgPSBzdHlsZXNQYW5lOworfQorCitXZWJJbnNwZWN0b3IuQ29t
cHV0ZWRTdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0geworICAgIC8qKgorICAg
ICAqIEByZXR1cm4gez9XZWJJbnNwZWN0b3IuRE9NTm9kZX0KKyAgICAgKi8KKyAgICBub2RlOiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc3R5bGVzUGFuZS5ub2RlOwor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLlN0eWxlc1Np
ZGViYXJQYW5lfQorICAgICAqLworICAgIGVkaXRhYmxlUGFuZTogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfSwKKworICAgIF9fcHJvdG9fXzogV2ViSW5zcGVj
dG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudEJhc2UucHJvdG90eXBlCit9CisKKy8qKgorICog
QGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVl
RWxlbWVudEJhc2V9CisgKiBAcGFyYW0gez9XZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmV9
IHN0eWxlc1BhbmUKKyAqIEBwYXJhbSB7T2JqZWN0fSBzdHlsZVJ1bGUKKyAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlCisgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5DU1NQcm9wZXJ0eX0gcHJvcGVydHkKKyAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNTaG9ydGhh
bmQKKyAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5oZXJpdGVkCisgKiBAcGFyYW0ge2Jvb2xlYW59IG92
ZXJsb2FkZWQKKyAqLworV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCA9IGZ1
bmN0aW9uKHN0eWxlc1BhbmUsIHN0eWxlUnVsZSwgc3R5bGUsIHByb3BlcnR5LCBpc1Nob3J0aGFu
ZCwgaW5oZXJpdGVkLCBvdmVybG9hZGVkKQoreworICAgIFdlYkluc3BlY3Rvci5TdHlsZVByb3Bl
cnR5VHJlZUVsZW1lbnRCYXNlLmNhbGwodGhpcywgc3R5bGVSdWxlLCBzdHlsZSwgcHJvcGVydHks
IGluaGVyaXRlZCwgb3ZlcmxvYWRlZCwgaXNTaG9ydGhhbmQpOworICAgIHRoaXMuX3BhcmVudFBh
bmUgPSBzdHlsZXNQYW5lOworICAgIHRoaXMuaXNTaG9ydGhhbmQgPSBpc1Nob3J0aGFuZDsKK30K
KworV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7Cisg
ICAgLyoqCisgICAgICogQHJldHVybiB7P1dlYkluc3BlY3Rvci5ET01Ob2RlfQorICAgICAqLwor
ICAgIG5vZGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRQ
YW5lLm5vZGU7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4gez9XZWJJbnNwZWN0
b3IuU3R5bGVzU2lkZWJhclBhbmV9CisgICAgICovCisgICAgZWRpdGFibGVQYW5lOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50UGFuZTsKKyAgICB9LAorCisg
ICAgLyoqCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rp
b259CisgICAgICovCisgICAgc2VjdGlvbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMudHJlZU91dGxpbmUgJiYgdGhpcy50cmVlT3V0bGluZS5zZWN0aW9uOworICAgIH0s
CisKICAgICBfdXBkYXRlUGFuZTogZnVuY3Rpb24odXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMudHJlZU91dGxpbmUgJiYgdGhpcy50cmVlT3V0bGluZS5zZWN0aW9uICYmIHRo
aXMudHJlZU91dGxpbmUuc2VjdGlvbi5wYW5lKQotICAgICAgICAgICAgdGhpcy50cmVlT3V0bGlu
ZS5zZWN0aW9uLnBhbmUuX3JlZnJlc2hVcGRhdGUodGhpcy50cmVlT3V0bGluZS5zZWN0aW9uLCBm
YWxzZSwgdXNlckNhbGxiYWNrKTsKKyAgICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLnNlY3Rpb24o
KTsKKyAgICAgICAgaWYgKHNlY3Rpb24gJiYgc2VjdGlvbi5wYW5lKQorICAgICAgICAgICAgc2Vj
dGlvbi5wYW5lLl9yZWZyZXNoVXBkYXRlKHNlY3Rpb24sIGZhbHNlLCB1c2VyQ2FsbGJhY2spOwog
ICAgICAgICBlbHNlICB7CiAgICAgICAgICAgICBpZiAodXNlckNhbGxiYWNrKQogICAgICAgICAg
ICAgICAgIHVzZXJDYWxsYmFjaygpOwpAQCAtMTk2MCw4ICsyMDQyLDkgQEAgV2ViSW5zcGVjdG9y
LlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlz
LnN0eWxlID0gbmV3U3R5bGU7CiAgICAgICAgICAgICB0aGlzLl9zdHlsZVJ1bGUuc3R5bGUgPSBu
ZXdTdHlsZTsKIAotICAgICAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUuc2VjdGlvbiAmJiB0
aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24ucGFuZSkKLSAgICAgICAgICAgICAgICB0aGlzLnRyZWVP
dXRsaW5lLnNlY3Rpb24ucGFuZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoInN0eWxlIHByb3Bl
cnR5IHRvZ2dsZWQiKTsKKyAgICAgICAgICAgIHZhciBzZWN0aW9uID0gdGhpcy5zZWN0aW9uKCk7
CisgICAgICAgICAgICBpZiAoc2VjdGlvbiAmJiBzZWN0aW9uLnBhbmUpCisgICAgICAgICAgICAg
ICAgc2VjdGlvbi5wYW5lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygic3R5bGUgcHJvcGVydHkg
dG9nZ2xlZCIpOwogCiAgICAgICAgICAgICB0aGlzLl91cGRhdGVQYW5lKCk7CiAKQEAgLTE5NzMs
MzIgKzIwNTYsNiBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgIH0sCiAKLSAgICB1cGRhdGVT
dGF0ZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLmxpc3RJdGVtRWxlbWVu
dCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodGhpcy5zdHlsZS5pc1Byb3Bl
cnR5SW1wbGljaXQodGhpcy5uYW1lKSB8fCB0aGlzLnZhbHVlID09PSAiaW5pdGlhbCIpCi0gICAg
ICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJpbXBsaWNpdCIpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5yZW1vdmVTdHls
ZUNsYXNzKCJpbXBsaWNpdCIpOwotCi0gICAgICAgIGlmICh0aGlzLmluaGVyaXRlZCkKLSAgICAg
ICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFkZFN0eWxlQ2xhc3MoImluaGVyaXRlZCIpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5yZW1vdmVTdHls
ZUNsYXNzKCJpbmhlcml0ZWQiKTsKLQotICAgICAgICBpZiAodGhpcy5vdmVybG9hZGVkKQotICAg
ICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygib3ZlcmxvYWRlZCIp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5yZW1vdmVT
dHlsZUNsYXNzKCJvdmVybG9hZGVkIik7Ci0KLSAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpCi0g
ICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJkaXNhYmxlZCIp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5yZW1vdmVT
dHlsZUNsYXNzKCJkaXNhYmxlZCIpOwotICAgIH0sCi0KICAgICBvbnBvcHVsYXRlOiBmdW5jdGlv
bigpCiAgICAgewogICAgICAgICAvLyBPbmx5IHBvcHVsYXRlIG9uY2UgYW5kIGlmIHRoaXMgcHJv
cGVydHkgaXMgYSBzaG9ydGhhbmQuCkBAIC0yMDA5LDE2ICsyMDY2LDE3IEBAIFdlYkluc3BlY3Rv
ci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGxvbmdoYW5kUHJvcGVydGllcy5sZW5ndGg7ICsraSkgewogICAgICAgICAg
ICAgdmFyIG5hbWUgPSBsb25naGFuZFByb3BlcnRpZXNbaV0ubmFtZTsKIAotICAgICAgICAgICAg
aWYgKHRoaXMudHJlZU91dGxpbmUuc2VjdGlvbikgewotICAgICAgICAgICAgICAgIHZhciBpbmhl
cml0ZWQgPSB0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24uaXNQcm9wZXJ0eUluaGVyaXRlZChuYW1l
KTsKLSAgICAgICAgICAgICAgICB2YXIgb3ZlcmxvYWRlZCA9IHRoaXMudHJlZU91dGxpbmUuc2Vj
dGlvbi5pc1Byb3BlcnR5T3ZlcmxvYWRlZChuYW1lKTsKKyAgICAgICAgICAgIHZhciBzZWN0aW9u
ID0gdGhpcy5zZWN0aW9uKCk7CisgICAgICAgICAgICBpZiAoc2VjdGlvbikgeworICAgICAgICAg
ICAgICAgIHZhciBpbmhlcml0ZWQgPSBzZWN0aW9uLmlzUHJvcGVydHlJbmhlcml0ZWQobmFtZSk7
CisgICAgICAgICAgICAgICAgdmFyIG92ZXJsb2FkZWQgPSBzZWN0aW9uLmlzUHJvcGVydHlPdmVy
bG9hZGVkKG5hbWUpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB2YXIgbGl2ZVByb3Bl
cnR5ID0gdGhpcy5zdHlsZS5nZXRMaXZlUHJvcGVydHkobmFtZSk7CiAgICAgICAgICAgICBpZiAo
IWxpdmVQcm9wZXJ0eSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAg
dmFyIGl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudCh0aGlz
LnNlY3Rpb24sIHRoaXMuX3BhcmVudFBhbmUsIHRoaXMuX3N0eWxlUnVsZSwgdGhpcy5zdHlsZSwg
bGl2ZVByb3BlcnR5LCBmYWxzZSwgaW5oZXJpdGVkLCBvdmVybG9hZGVkKTsKKyAgICAgICAgICAg
IHZhciBpdGVtID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQodGhp
cy5fcGFyZW50UGFuZSwgdGhpcy5fc3R5bGVSdWxlLCB0aGlzLnN0eWxlLCBsaXZlUHJvcGVydHks
IGZhbHNlLCBpbmhlcml0ZWQsIG92ZXJsb2FkZWQpOwogICAgICAgICAgICAgdGhpcy5hcHBlbmRD
aGlsZChpdGVtKTsKICAgICAgICAgfQogICAgIH0sCkBAIC0yMDM1LDYgKzIwOTMsNDcgQEAgV2Vi
SW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMubGlzdEl0ZW1FbGVtZW50Lmluc2VydEJlZm9yZSh0aGlzLm5hbWVFbGVtZW50LCB0aGlz
Lmxpc3RJdGVtRWxlbWVudC5maXJzdENoaWxkKTsKICAgICB9LAogCisgICAgb25hdHRhY2g6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVs
ZW1lbnRCYXNlLnByb3RvdHlwZS5vbmF0dGFjaC5jYWxsKHRoaXMpOworCisgICAgICAgIHRoaXMu
bGlzdEl0ZW1FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX21vdXNl
RG93bi5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2V1cCIsIHRoaXMuX3Jlc2V0TW91c2VEb3duRWxlbWVudC5iaW5kKHRoaXMp
KTsKKyAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCB0aGlzLl9tb3VzZUNsaWNrLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBfbW91c2VEb3du
OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9wYXJlbnRQYW5lKSB7
CisgICAgICAgICAgICB0aGlzLl9wYXJlbnRQYW5lLl9tb3VzZURvd25UcmVlRWxlbWVudCA9IHRo
aXM7CisgICAgICAgICAgICB0aGlzLl9wYXJlbnRQYW5lLl9tb3VzZURvd25UcmVlRWxlbWVudElz
TmFtZSA9IHRoaXMuX2lzTmFtZUVsZW1lbnQoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgICAgIHRo
aXMuX3BhcmVudFBhbmUuX21vdXNlRG93blRyZWVFbGVtZW50SXNWYWx1ZSA9IHRoaXMuX2lzVmFs
dWVFbGVtZW50KGV2ZW50LnRhcmdldCk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX3Jlc2V0
TW91c2VEb3duRWxlbWVudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3Bh
cmVudFBhbmUpIHsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wYXJlbnRQYW5lLl9tb3VzZURv
d25UcmVlRWxlbWVudDsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wYXJlbnRQYW5lLl9tb3Vz
ZURvd25UcmVlRWxlbWVudElzTmFtZTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wYXJlbnRQ
YW5lLl9tb3VzZURvd25UcmVlRWxlbWVudElzVmFsdWU7CisgICAgICAgIH0KKyAgICB9LAorCisg
ICAgdXBkYXRlVGl0bGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5T
dHlsZVByb3BlcnR5VHJlZUVsZW1lbnRCYXNlLnByb3RvdHlwZS51cGRhdGVUaXRsZS5jYWxsKHRo
aXMpOworCisgICAgICAgIGlmICh0aGlzLnBhcnNlZE9rICYmIHRoaXMuc2VjdGlvbigpICYmIHRo
aXMucGFyZW50LnJvb3QpIHsKKyAgICAgICAgICAgIHZhciBlbmFibGVkQ2hlY2tib3hFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgICAgIGVuYWJsZWRD
aGVja2JveEVsZW1lbnQuY2xhc3NOYW1lID0gImVuYWJsZWQtYnV0dG9uIjsKKyAgICAgICAgICAg
IGVuYWJsZWRDaGVja2JveEVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CisgICAgICAgICAgICBl
bmFibGVkQ2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSAhdGhpcy5kaXNhYmxlZDsKKyAgICAgICAg
ICAgIGVuYWJsZWRDaGVja2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
LnRvZ2dsZUVuYWJsZWQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgICAgICAgICAgdGhpcy5saXN0
SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQoZW5hYmxlZENoZWNrYm94RWxlbWVudCk7CisgICAgICAg
IH0KKyAgICB9LAorCiAgICAgX21vdXNlQ2xpY2s6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAg
ICAgICAgaWYgKCF3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuaXNDb2xsYXBzZWQpCkBAIC0yMDQzLDEy
ICsyMTQyLDEzIEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICBldmVudC5jb25zdW1lKHRydWUpOwogCiAgICAgICAgIGlmIChldmVu
dC50YXJnZXQgPT09IHRoaXMubGlzdEl0ZW1FbGVtZW50KSB7Ci0gICAgICAgICAgICBpZiAoIXRo
aXMuc2VjdGlvbi5lZGl0YWJsZSkgCisgICAgICAgICAgICB2YXIgc2VjdGlvbiA9IHRoaXMuc2Vj
dGlvbigpOworICAgICAgICAgICAgaWYgKCFzZWN0aW9uIHx8ICFzZWN0aW9uLmVkaXRhYmxlKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgaWYgKHRoaXMuc2VjdGlvbi5f
Y2hlY2tXaWxsQ2FuY2VsRWRpdGluZygpKQorICAgICAgICAgICAgaWYgKHNlY3Rpb24uX2NoZWNr
V2lsbENhbmNlbEVkaXRpbmcoKSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICB0aGlzLnNlY3Rpb24uYWRkTmV3QmxhbmtQcm9wZXJ0eSh0aGlzLnByb3BlcnR5LmluZGV4ICsg
MSkuc3RhcnRFZGl0aW5nKCk7CisgICAgICAgICAgICBzZWN0aW9uLmFkZE5ld0JsYW5rUHJvcGVy
dHkodGhpcy5wcm9wZXJ0eS5pbmRleCArIDEpLnN0YXJ0RWRpdGluZygpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKQEAgLTIwNzQsNyArMjE3NCw4IEBAIFdlYkluc3BlY3Rvci5T
dHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBpZiAoc2VsZWN0
RWxlbWVudCA9PT0gdGhpcy5fZXhwYW5kRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBpZiAodGhpcy50cmVlT3V0bGluZS5zZWN0aW9uICYmICF0aGlzLnRyZWVPdXRsaW5l
LnNlY3Rpb24uZWRpdGFibGUpCisgICAgICAgIHZhciBzZWN0aW9uID0gdGhpcy5zZWN0aW9uKCk7
CisgICAgICAgIGlmIChzZWN0aW9uICYmICFzZWN0aW9uLmVkaXRhYmxlKQogICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgIGlmICghc2VsZWN0RWxlbWVudCkKQEAgLTIzMzAsOCArMjQzMSw5
IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
ICAgICAgICB2YXIgaXNEYXRhUGFzdGVkID0gIm9yaWdpbmFsTmFtZSIgaW4gY29udGV4dDsKICAg
ICAgICAgdmFyIGlzRGlydHlWaWFQYXN0ZSA9IGlzRGF0YVBhc3RlZCAmJiAodGhpcy5uYW1lRWxl
bWVudC50ZXh0Q29udGVudCAhPT0gY29udGV4dC5vcmlnaW5hbE5hbWUgfHwgdGhpcy52YWx1ZUVs
ZW1lbnQudGV4dENvbnRlbnQgIT09IGNvbnRleHQub3JpZ2luYWxWYWx1ZSk7CiAgICAgICAgIHZh
ciBzaG91bGRDb21taXROZXdQcm9wZXJ0eSA9IHRoaXMuX25ld1Byb3BlcnR5ICYmIChtb3ZlVG9P
dGhlciB8fCAoIW1vdmVEaXJlY3Rpb24gJiYgIWlzRWRpdGluZ05hbWUpIHx8IChpc0VkaXRpbmdO
YW1lICYmIGJsYW5rSW5wdXQpKTsKKyAgICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLnNlY3Rpb24o
KTsKICAgICAgICAgaWYgKCgodXNlcklucHV0ICE9PSBwcmV2aW91c0NvbnRlbnQgfHwgaXNEaXJ0
eVZpYVBhc3RlKSAmJiAhdGhpcy5fbmV3UHJvcGVydHkpIHx8IHNob3VsZENvbW1pdE5ld1Byb3Bl
cnR5KSB7Ci0gICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24uX2FmdGVyVXBkYXRl
ID0gbW92ZVRvTmV4dENhbGxiYWNrLmJpbmQodGhpcywgdGhpcy5fbmV3UHJvcGVydHksICFibGFu
a0lucHV0LCB0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24pOworICAgICAgICAgICAgc2VjdGlvbi5f
YWZ0ZXJVcGRhdGUgPSBtb3ZlVG9OZXh0Q2FsbGJhY2suYmluZCh0aGlzLCB0aGlzLl9uZXdQcm9w
ZXJ0eSwgIWJsYW5rSW5wdXQsIHNlY3Rpb24pOwogICAgICAgICAgICAgdmFyIHByb3BlcnR5VGV4
dDsKICAgICAgICAgICAgIGlmIChibGFua0lucHV0IHx8ICh0aGlzLl9uZXdQcm9wZXJ0eSAmJiAv
XlxzKiQvLnRlc3QodGhpcy52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQpKSkKICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eVRleHQgPSAiIjsKQEAgLTIzNDUsNyArMjQ0Nyw3IEBAIFdlYkluc3BlY3Rv
ci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgaWYgKCFpc0RhdGFQYXN0ZWQgJiYgIXRoaXMuX25ld1Byb3BlcnR5KQog
ICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGl0bGUoKTsKLSAgICAgICAgICAgIG1vdmVUb05l
eHRDYWxsYmFjay5jYWxsKHRoaXMsIHRoaXMuX25ld1Byb3BlcnR5LCBmYWxzZSwgdGhpcy50cmVl
T3V0bGluZS5zZWN0aW9uKTsKKyAgICAgICAgICAgIG1vdmVUb05leHRDYWxsYmFjay5jYWxsKHRo
aXMsIHRoaXMuX25ld1Byb3BlcnR5LCBmYWxzZSwgc2VjdGlvbik7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyBUaGUgQ2FsbGJhY2sgdG8gc3RhcnQgZWRpdGluZyB0aGUgbmV4dC9wcmV2aW91cyBw
cm9wZXJ0eS9zZWxlY3Rvci4KQEAgLTI0NDUsNyArMjU0Nyw3IEBAIFdlYkluc3BlY3Rvci5TdHls
ZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMudHJl
ZU91dGxpbmUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIHNlY3Rpb24gPSB0
aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb247CisgICAgICAgIHZhciBzZWN0aW9uID0gdGhpcy5zZWN0
aW9uKCk7CiAgICAgICAgIHN0eWxlVGV4dCA9IHN0eWxlVGV4dC5yZXBsYWNlKC9ccy9nLCAiICIp
LnRyaW0oKTsgLy8gUmVwbGFjZSAmbmJzcDsgd2l0aCB3aGl0ZXNwYWNlLgogICAgICAgICB2YXIg
c3R5bGVUZXh0TGVuZ3RoID0gc3R5bGVUZXh0Lmxlbmd0aDsKICAgICAgICAgaWYgKCFzdHlsZVRl
eHRMZW5ndGggJiYgdXBkYXRlSW50ZXJmYWNlICYmICFpc1JldmVydCAmJiB0aGlzLl9uZXdQcm9w
ZXJ0eSAmJiAhdGhpcy5faGFzQmVlbk1vZGlmaWVkSW5jcmVtZW50YWxseSgpKSB7CkBAIC0yNDc5
LDcgKzI1ODEsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIGlmIChzZWN0aW9uICYmIHNlY3Rpb24ucGFuZSkKICAgICAg
ICAgICAgICAgICBzZWN0aW9uLnBhbmUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJzdHlsZSBl
ZGl0ZWQiKTsKIAotICAgICAgICAgICAgaWYgKHVwZGF0ZUludGVyZmFjZSAmJiBjdXJyZW50Tm9k
ZSA9PT0gc2VjdGlvbi5wYW5lLm5vZGUpIHsKKyAgICAgICAgICAgIGlmICh1cGRhdGVJbnRlcmZh
Y2UgJiYgY3VycmVudE5vZGUgPT09IHRoaXMubm9kZSgpKSB7CiAgICAgICAgICAgICAgICAgdGhp
cy5fdXBkYXRlUGFuZSh1c2VyQ2FsbGJhY2spOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KQEAgLTI1MDIsMTIgKzI2MDQsMTAgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJv
cGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBpc0V2ZW50V2l0aGluRGlzY2xv
c3VyZVRyaWFuZ2xlOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5z
ZWN0aW9uLmNvbXB1dGVkU3R5bGUpCi0gICAgICAgICAgICByZXR1cm4gZXZlbnQudGFyZ2V0ID09
PSB0aGlzLl9leHBhbmRFbGVtZW50OwotICAgICAgICByZXR1cm4gVHJlZUVsZW1lbnQucHJvdG90
eXBlLmlzRXZlbnRXaXRoaW5EaXNjbG9zdXJlVHJpYW5nbGUuY2FsbCh0aGlzLCBldmVudCk7Cisg
ICAgICAgIHJldHVybiBldmVudC50YXJnZXQgPT09IHRoaXMuX2V4cGFuZEVsZW1lbnQ7CiAgICAg
fSwKIAotICAgIF9fcHJvdG9fXzogVHJlZUVsZW1lbnQucHJvdG90eXBlCisgICAgX19wcm90b19f
OiBXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50QmFzZS5wcm90b3R5cGUKIH0K
IAogLyoqCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZmRlMWM0YzQ2OTMxYTNhOGExMmRjNDEzZTNlZmIyZjJkZDgwZDMzOC4u
NGNhMzg5YThjZDRkMmU4YzI1NmNmMDY0M2NlNzgxYTY3NjhmNjdjNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDEzLTAyLTE4ICBWbGFkaXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENvbG9yIHBpY2tlciBzaG91bGQg
bm90IGJlIGF2YWlsYWJsZSBpbiBDb21wdXRlZCBTdHlsZXMgcGFuZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Njk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3VuZG8t
YWRkLXByb3BlcnR5Lmh0bWw6CisKIDIwMTMtMDItMTggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1wcm9wZXJ0eS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1wcm9wZXJ0eS5odG1sCmluZGV4
IGY4MTUwMTRlNDM3YmNhZjVlZmNjZTk0MjRhNjQzZDhjYzJmNWFkZWMuLmRkMWQzMWMzZmVkZWRl
M2JkZWQ5YjIxNjgwZDdmMzM0ZWI3ZTRmZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvdW5kby1hZGQtcHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXByb3BlcnR5Lmh0bWwKQEAgLTQwLDcgKzQwLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0
eWxlcyh0cnVlKTsKIAogICAgICAgICB2YXIgdHJlZUl0ZW0gPSBJbnNwZWN0b3JUZXN0LmdldE1h
dGNoZWRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oImZvbnQtd2VpZ2h0Iik7Ci0gICAgICAgIHZhciB0
cmVlRWxlbWVudCA9IHRyZWVJdGVtLnNlY3Rpb24uYWRkTmV3QmxhbmtQcm9wZXJ0eShpbmRleCk7
CisgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRyZWVJdGVtLnNlY3Rpb24oKS5hZGROZXdCbGFu
a1Byb3BlcnR5KGluZGV4KTsKICAgICAgICAgdHJlZUVsZW1lbnQuYXBwbHlTdHlsZVRleHQocHJv
cGVydHlUZXh0LCB0cnVlLCB0cnVlKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5
bGVzKCJjb250YWluZXIiLCBzdGVwMSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>