<?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>176067</bug_id>
          
          <creation_ts>2017-08-29 14:39:51 -0700</creation_ts>
          <short_desc>Web Inspector: Convert all methods in Utilities.js to ECMAScript 2015 shorthand syntax</short_desc>
          <delta_ts>2017-08-29 16:46:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343227</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-08-29 14:39:51 -0700</bug_when>
    <thetext>Convert:

    {
        value: function(object) {}
    }

to:

    {
        value(object) {}
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343236</commentid>
    <comment_count>1</comment_count>
      <attachid>319287</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-08-29 14:52:40 -0700</bug_when>
    <thetext>Created attachment 319287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343256</commentid>
    <comment_count>2</comment_count>
      <attachid>319287</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-08-29 15:22:39 -0700</bug_when>
    <thetext>Comment on attachment 319287
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343257</commentid>
    <comment_count>3</comment_count>
      <attachid>319287</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-08-29 15:22:55 -0700</bug_when>
    <thetext>Comment on attachment 319287
Patch

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

&gt; Source/WebInspectorUI/ChangeLog:33
&gt; +        (window.handlePromiseException.window.handlePromiseException):

Heh, you could remove this line it seems wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343262</commentid>
    <comment_count>4</comment_count>
      <attachid>319292</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-08-29 15:37:35 -0700</bug_when>
    <thetext>Created attachment 319292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343311</commentid>
    <comment_count>5</comment_count>
      <attachid>319292</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-29 16:45:22 -0700</bug_when>
    <thetext>Comment on attachment 319292
Patch

Clearing flags on attachment: 319292

Committed r221324: &lt;http://trac.webkit.org/changeset/221324&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343312</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-29 16:45:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343314</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-29 16:46:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/34146802&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319287</attachid>
            <date>2017-08-29 14:52:40 -0700</date>
            <delta_ts>2017-08-29 15:37:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20687</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDM3YTYxZmUuLjA0YmQyMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE3LTA4LTI5ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENvbnZl
cnQgYWxsIG1ldGhvZHMgaW4gVXRpbGl0aWVzLmpzIHRvIEVDTUFTY3JpcHQgMjAxNSBzaG9ydGhh
bmQgc3ludGF4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzYwNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanM6CisgICAgICAgIChnZXQgcmV0dXJu
KToKKyAgICAgICAgKGFkZFN0cmluZ1Rva2VuKToKKyAgICAgICAgKHByZXR0eUZ1bmN0aW9uTmFt
ZSk6CisgICAgICAgICh3YXJuKToKKyAgICAgICAgKGVycm9yKToKKyAgICAgICAgKGlzRW1wdHlP
YmplY3QpOgorICAgICAgICAoaXNFbnRlcktleSk6CisgICAgICAgIChyZXNvbHZlRG90c0luUGF0
aCk6CisgICAgICAgIChwYXJzZU1JTUVUeXBlKToKKyAgICAgICAgKHNpbXBsZUdsb2JTdHJpbmdU
b1JlZ0V4cCk6CisgICAgICAgIChkZWZhdWx0Q29tcGFyYXRvcik6CisgICAgICAgIChnZXQgT2Jq
ZWN0KToKKyAgICAgICAgKGFwcGVuZFdlYkluc3BlY3RvclNvdXJjZVVSTCk6CisgICAgICAgIChh
cHBlbmRXZWJJbnNwZWN0b3JDb25zb2xlRXZhbHVhdGlvblNvdXJjZVVSTCk6CisgICAgICAgIChp
c1dlYkluc3BlY3RvckludGVybmFsU2NyaXB0KToKKyAgICAgICAgKGlzV2ViSW5zcGVjdG9yQ29u
c29sZUV2YWx1YXRpb25TY3JpcHQpOgorICAgICAgICAoaXNXZWJLaXRJbmplY3RlZFNjcmlwdCk6
CisgICAgICAgIChpc1dlYktpdEludGVybmFsU2NyaXB0KToKKyAgICAgICAgKGlzRnVuY3Rpb25T
dHJpbmdOYXRpdmVDb2RlKToKKyAgICAgICAgKGlzVGV4dExpa2VseU1pbmlmaWVkKToKKyAgICAg
ICAgKGRvdWJsZVF1b3RlZFN0cmluZyk6CisgICAgICAgIChpbnNlcnRpb25JbmRleEZvck9iamVj
dEluTGlzdFNvcnRlZEJ5RnVuY3Rpb24pOgorICAgICAgICAoaW5zZXJ0T2JqZWN0SW50b1NvcnRl
ZEFycmF5KToKKyAgICAgICAgKGRlY29kZUJhc2U2NFRvQmxvYik6CisgICAgICAgICh3aW5kb3cu
aGFuZGxlUHJvbWlzZUV4Y2VwdGlvbi53aW5kb3cuaGFuZGxlUHJvbWlzZUV4Y2VwdGlvbik6CisK
KzIwMTctMDgtMjkgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogT3B0aW1pemUgVmlldy5wcm90b3R5cGUucmVtb3ZlU3Vidmll
dwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MDQx
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2Uv
VXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9V
dGlsaXRpZXMuanMKaW5kZXggNmEyOWI1Mi4uYmM3YjZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKQEAgLTMxLDcg
KzMxLDcgQEAgdmFyIHplcm9XaWR0aFNwYWNlID0gIlx1MjAwYiI7CiAKIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShPYmplY3QsICJzaGFsbG93Q29weSIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKG9i
amVjdCkKKyAgICB2YWx1ZShvYmplY3QpCiAgICAgewogICAgICAgICAvLyBNYWtlIGEgbmV3IG9i
amVjdCBhbmQgY29weSBhbGwgdGhlIGtleS92YWx1ZXMuIFRoZSB2YWx1ZXMgYXJlIG5vdCBjb3Bp
ZWQuCiAgICAgICAgIHZhciBjb3B5ID0ge307CkBAIC00NCw3ICs0NCw3IEBAIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShPYmplY3QsICJzaGFsbG93Q29weSIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShPYmplY3QsICJzaGFsbG93RXF1YWwiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihhLCBiKQor
ICAgIHZhbHVlKGEsIGIpCiAgICAgewogICAgICAgICAvLyBDaGVja3MgaWYgdHdvIG9iamVjdHMg
aGF2ZSB0aGUgc2FtZSB0b3AtbGV2ZWwgcHJvcGVydGllcy4KIApAQCAtMTAyLDcgKzEwMiw3IEBA
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QsICJzaGFsbG93TWVyZ2UiLAogCiBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgInZhbHVlRm9yQ2FzZUluc2Vuc2l0aXZl
S2V5IiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oa2V5KQorICAgIHZhbHVlKGtleSkKICAgICB7
CiAgICAgICAgIGlmICh0aGlzLmhhc093blByb3BlcnR5KGtleSkpCiAgICAgICAgICAgICByZXR1
cm4gdGhpc1trZXldOwpAQCAtMTE5LDcgKzExOSw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShP
YmplY3QucHJvdG90eXBlLCAidmFsdWVGb3JDYXNlSW5zZW5zaXRpdmVLZXkiLAogCiBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoTWFwLCAiZnJvbU9iamVjdCIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9u
KG9iamVjdCkKKyAgICB2YWx1ZShvYmplY3QpCiAgICAgewogICAgICAgICBsZXQgbWFwID0gbmV3
IE1hcDsKICAgICAgICAgZm9yIChsZXQga2V5IGluIG9iamVjdCkKQEAgLTEzMCw3ICsxMzAsNyBA
QCBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWFwLCAiZnJvbU9iamVjdCIsCiAKIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShNYXAucHJvdG90eXBlLCAidGFrZSIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9u
KGtleSkKKyAgICB2YWx1ZShrZXkpCiAgICAgewogICAgICAgICB2YXIgZGVsZXRlZFZhbHVlID0g
dGhpcy5nZXQoa2V5KTsKICAgICAgICAgdGhpcy5kZWxldGUoa2V5KTsKQEAgLTE0MCw3ICsxNDAs
NyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWFwLnByb3RvdHlwZSwgInRha2UiLAogCiBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJlbmNsb3NpbmdOb2RlT3JTZWxmV2l0
aENsYXNzIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oY2xhc3NOYW1lKQorICAgIHZhbHVlKGNs
YXNzTmFtZSkKICAgICB7CiAgICAgICAgIGZvciAodmFyIG5vZGUgPSB0aGlzOyBub2RlICYmIG5v
ZGUgIT09IHRoaXMub3duZXJEb2N1bWVudDsgbm9kZSA9IG5vZGUucGFyZW50Tm9kZSkKICAgICAg
ICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiBub2RlLmNs
YXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKQpAQCAtMTUxLDcgKzE1MSw3IEBAIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgImVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xh
c3MiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJlbmNsb3NpbmdO
b2RlT3JTZWxmV2l0aE5vZGVOYW1lSW5BcnJheSIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKG5h
bWVBcnJheSkKKyAgICB2YWx1ZShuYW1lQXJyYXkpCiAgICAgewogICAgICAgICB2YXIgbG93ZXJD
YXNlTmFtZUFycmF5ID0gbmFtZUFycmF5Lm1hcChmdW5jdGlvbihuYW1lKSB7IHJldHVybiBuYW1l
LnRvTG93ZXJDYXNlKCk7IH0pOwogICAgICAgICBmb3IgKHZhciBub2RlID0gdGhpczsgbm9kZSAm
JiBub2RlICE9PSB0aGlzLm93bmVyRG9jdW1lbnQ7IG5vZGUgPSBub2RlLnBhcmVudE5vZGUpIHsK
QEAgLTE2Nyw3ICsxNjcsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUs
ICJlbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lSW5BcnJheSIsCiAKIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgImVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5h
bWUiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihub2RlTmFtZSkKKyAgICB2YWx1ZShub2RlTmFt
ZSkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9k
ZU5hbWVJbkFycmF5KFtub2RlTmFtZV0pOwogICAgIH0KQEAgLTE3NSw3ICsxNzUsNyBAQCBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJlbmNsb3NpbmdOb2RlT3JTZWxmV2l0
aE5vZGVOYW1lIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLCAiaXNB
bmNlc3RvciIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKG5vZGUpCisgICAgdmFsdWUobm9kZSkK
ICAgICB7CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTE5Myw3ICsxOTMsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJp
c0FuY2VzdG9yIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLCAiaXNE
ZXNjZW5kYW50IiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oZGVzY2VuZGFudCkKKyAgICB2YWx1
ZShkZXNjZW5kYW50KQogICAgIHsKICAgICAgICAgcmV0dXJuICEhZGVzY2VuZGFudCAmJiBkZXNj
ZW5kYW50LmlzQW5jZXN0b3IodGhpcyk7CiAgICAgfQpAQCAtMjAyLDcgKzIwMiw3IEBAIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgImlzRGVzY2VuZGFudCIsCiAKIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgImlzU2VsZk9yQW5jZXN0b3IiLAogewot
ICAgIHZhbHVlOiBmdW5jdGlvbihub2RlKQorICAgIHZhbHVlKG5vZGUpCiAgICAgewogICAgICAg
ICByZXR1cm4gISFub2RlICYmIChub2RlID09PSB0aGlzIHx8IHRoaXMuaXNBbmNlc3Rvcihub2Rl
KSk7CiAgICAgfQpAQCAtMjExLDcgKzIxMSw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2Rl
LnByb3RvdHlwZSwgImlzU2VsZk9yQW5jZXN0b3IiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHko
Tm9kZS5wcm90b3R5cGUsICJpc1NlbGZPckRlc2NlbmRhbnQiLAogewotICAgIHZhbHVlOiBmdW5j
dGlvbihub2RlKQorICAgIHZhbHVlKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gISFub2Rl
ICYmIChub2RlID09PSB0aGlzIHx8IHRoaXMuaXNEZXNjZW5kYW50KG5vZGUpKTsKICAgICB9CkBA
IC0yMTksNyArMjE5LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLCAi
aXNTZWxmT3JEZXNjZW5kYW50IiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90
eXBlLCAidHJhdmVyc2VOZXh0Tm9kZSIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKHN0YXlXaXRo
aW4pCisgICAgdmFsdWUoc3RheVdpdGhpbikKICAgICB7CiAgICAgICAgIHZhciBub2RlID0gdGhp
cy5maXJzdENoaWxkOwogICAgICAgICBpZiAobm9kZSkKQEAgLTI0NCw3ICsyNDQsNyBAQCBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJ0cmF2ZXJzZU5leHROb2RlIiwKIAog
T2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLCAidHJhdmVyc2VQcmV2aW91c05v
ZGUiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihzdGF5V2l0aGluKQorICAgIHZhbHVlKHN0YXlX
aXRoaW4pCiAgICAgewogICAgICAgIGlmIChzdGF5V2l0aGluICYmIHRoaXMgPT09IHN0YXlXaXRo
aW4pCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKQEAgLTI2MCw3ICsyNjAsNyBAQCBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJ0cmF2ZXJzZVByZXZpb3VzTm9kZSIsCiAK
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgInJhbmdlT2ZXb3JkIiwKIHsK
LSAgICB2YWx1ZTogZnVuY3Rpb24ob2Zmc2V0LCBzdG9wQ2hhcmFjdGVycywgc3RheVdpdGhpbk5v
ZGUsIGRpcmVjdGlvbikKKyAgICB2YWx1ZShvZmZzZXQsIHN0b3BDaGFyYWN0ZXJzLCBzdGF5V2l0
aGluTm9kZSwgZGlyZWN0aW9uKQogICAgIHsKICAgICAgICAgdmFyIHN0YXJ0Tm9kZTsKICAgICAg
ICAgdmFyIHN0YXJ0T2Zmc2V0ID0gMDsKQEAgLTM1MSw3ICszNTEsNyBAQCBPYmplY3QuZGVmaW5l
UHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJyYW5nZU9mV29yZCIsCiAKIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwgInJlYWxPZmZzZXRXaWR0aCIsCiB7Ci0gICAgZ2V0
OiBmdW5jdGlvbigpCisgICAgZ2V0KCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoOwogICAgIH0KQEAgLTM1OSw3ICszNTksNyBAQCBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoRWxlbWVudC5wcm90b3R5cGUsICJyZWFsT2Zmc2V0V2lkdGgiLAog
CiBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWxlbWVudC5wcm90b3R5cGUsICJyZWFsT2Zmc2V0SGVp
Z2h0IiwKIHsKLSAgICBnZXQ6IGZ1bmN0aW9uKCkKKyAgICBnZXQoKQogICAgIHsKICAgICAgICAg
cmV0dXJuIHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0OwogICAgIH0KQEAgLTM2
Nyw3ICszNjcsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWxlbWVudC5wcm90b3R5cGUsICJy
ZWFsT2Zmc2V0SGVpZ2h0IiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90
eXBlLCAidG90YWxPZmZzZXRMZWZ0IiwKIHsKLSAgICBnZXQ6IGZ1bmN0aW9uKCkKKyAgICBnZXQo
KQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVm
dDsKICAgICB9CkBAIC0zNzUsNyArMzc1LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1l
bnQucHJvdG90eXBlLCAidG90YWxPZmZzZXRMZWZ0IiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5
KEVsZW1lbnQucHJvdG90eXBlLCAidG90YWxPZmZzZXRSaWdodCIsCiB7Ci0gICAgZ2V0OiBmdW5j
dGlvbigpCisgICAgZ2V0KCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLnJpZ2h0OwogICAgIH0KQEAgLTM4Myw3ICszODMsNyBAQCBPYmplY3QuZGVm
aW5lUHJvcGVydHkoRWxlbWVudC5wcm90b3R5cGUsICJ0b3RhbE9mZnNldFJpZ2h0IiwKIAogT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAidG90YWxPZmZzZXRUb3AiLAog
ewotICAgIGdldDogZnVuY3Rpb24oKQorICAgIGdldCgpCiAgICAgewogICAgICAgICByZXR1cm4g
dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7CiAgICAgfQpAQCAtMzkxLDcgKzM5MSw3
IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwgInRvdGFsT2Zmc2V0
VG9wIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAicmVtb3Zl
Q2hpbGRyZW4iLAogewotICAgIHZhbHVlOiBmdW5jdGlvbigpCisgICAgdmFsdWUoKQogICAgIHsK
ICAgICAgICAgLy8gVGhpcyBoYXMgYmVlbiB0ZXN0ZWQgdG8gYmUgdGhlIGZhc3Rlc3QgcmVtb3Zh
bCBtZXRob2QuCiAgICAgICAgIGlmICh0aGlzLmZpcnN0Q2hpbGQpCkBAIC00MDEsNyArNDAxLDcg
QEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAicmVtb3ZlQ2hpbGRy
ZW4iLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWxlbWVudC5wcm90b3R5cGUsICJpc0luc2Vy
dGlvbkNhcmV0SW5zaWRlIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oKQorICAgIHZhbHVlKCkK
ICAgICB7CiAgICAgICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiAg
ICAgICAgIGlmICghc2VsZWN0aW9uLnJhbmdlQ291bnQgfHwgIXNlbGVjdGlvbi5pc0NvbGxhcHNl
ZCkKQEAgLTQxMyw3ICs0MTMsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWxlbWVudC5wcm90
b3R5cGUsICJpc0luc2VydGlvbkNhcmV0SW5zaWRlIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5
KEVsZW1lbnQucHJvdG90eXBlLCAicmVtb3ZlTWF0Y2hpbmdTdHlsZUNsYXNzZXMiLAogewotICAg
IHZhbHVlOiBmdW5jdGlvbihjbGFzc05hbWVSZWdleCkKKyAgICB2YWx1ZShjbGFzc05hbWVSZWdl
eCkKICAgICB7CiAgICAgICAgIHZhciByZWdleCA9IG5ldyBSZWdFeHAoIihefFxccyspIiArIGNs
YXNzTmFtZVJlZ2V4ICsgIigkfFxccyspIik7CiAgICAgICAgIGlmIChyZWdleC50ZXN0KHRoaXMu
Y2xhc3NOYW1lKSkKQEAgLTQyMyw3ICs0MjMsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWxl
bWVudC5wcm90b3R5cGUsICJyZW1vdmVNYXRjaGluZ1N0eWxlQ2xhc3NlcyIsCiAKIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwgImNyZWF0ZUNoaWxkIiwKIHsKLSAgICB2
YWx1ZTogZnVuY3Rpb24oZWxlbWVudE5hbWUsIGNsYXNzTmFtZSkKKyAgICB2YWx1ZShlbGVtZW50
TmFtZSwgY2xhc3NOYW1lKQogICAgIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm93bmVy
RG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50TmFtZSk7CiAgICAgICAgIGlmIChjbGFzc05h
bWUpCkBAIC00MzUsNyArNDM1LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJv
dG90eXBlLCAiY3JlYXRlQ2hpbGQiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWxlbWVudC5w
cm90b3R5cGUsICJpc1Njcm9sbGVkVG9Cb3R0b20iLAogewotICAgIHZhbHVlOiBmdW5jdGlvbigp
CisgICAgdmFsdWUoKQogICAgIHsKICAgICAgICAgLy8gVGhpcyBjb2RlIHdvcmtzIG9ubHkgZm9y
IDAtd2lkdGggYm9yZGVyCiAgICAgICAgIHJldHVybiB0aGlzLnNjcm9sbFRvcCArIHRoaXMuY2xp
ZW50SGVpZ2h0ID09PSB0aGlzLnNjcm9sbEhlaWdodDsKQEAgLTQ0NCw3ICs0NDQsNyBAQCBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoRWxlbWVudC5wcm90b3R5cGUsICJpc1Njcm9sbGVkVG9Cb3R0b20i
LAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWxlbWVudC5wcm90b3R5cGUsICJyZWNhbGN1bGF0
ZVN0eWxlcyIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgpCiAgICAgewog
ICAgICAgICB0aGlzLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0
aGlzKTsKICAgICB9CkBAIC00NTcsNyArNDU3LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERv
Y3VtZW50RnJhZ21lbnQucHJvdG90eXBlLCAiY3JlYXRlQ2hpbGQiLAogCiBPYmplY3QuZGVmaW5l
UHJvcGVydHkoQXJyYXksICJzaGFsbG93RXF1YWwiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihh
LCBiKQorICAgIHZhbHVlKGEsIGIpCiAgICAgewogICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXko
YSkgfHwgIUFycmF5LmlzQXJyYXkoYikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00
ODQsNyArNDg0LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LCAic2hhbGxvd0VxdWFs
IiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgImxhc3RWYWx1ZSIs
CiB7Ci0gICAgZ2V0OiBmdW5jdGlvbigpCisgICAgZ2V0KCkKICAgICB7CiAgICAgICAgIGlmICgh
dGhpcy5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwpAQCAtNTE4LDcgKzUx
OCw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJyZW1vdmVBbGwi
LAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAidG9nZ2xlSW5jbHVk
ZXMiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbih2YWx1ZSwgZm9yY2UpCisgICAgdmFsdWUodmFs
dWUsIGZvcmNlKQogICAgIHsKICAgICAgICAgbGV0IGV4aXN0cyA9IHRoaXMuaW5jbHVkZXModmFs
dWUpOwogICAgICAgICBpZiAoZXhpc3RzID09PSAhIWZvcmNlKQpAQCAtNTMzLDcgKzUzMyw3IEBA
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJ0b2dnbGVJbmNsdWRlcyIs
CiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJpbnNlcnRBdEluZGV4
IiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24odmFsdWUsIGluZGV4KQorICAgIHZhbHVlKHZhbHVl
LCBpbmRleCkKICAgICB7CiAgICAgICAgIHRoaXMuc3BsaWNlKGluZGV4LCAwLCB2YWx1ZSk7CiAg
ICAgfQpAQCAtNTQxLDcgKzU0MSw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90
b3R5cGUsICJpbnNlcnRBdEluZGV4IiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnBy
b3RvdHlwZSwgImtleVNldCIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgp
CiAgICAgewogICAgICAgICBsZXQga2V5cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7ICsraSkKQEAgLTU1Miw3ICs1NTIsNyBA
QCBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAia2V5U2V0IiwKIAogT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgInBhcnRpdGlvbiIsCiB7Ci0gICAg
dmFsdWU6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHZhbHVlKGNhbGxiYWNrKQogICAgIHsKICAg
ICAgICAgbGV0IHBvc2l0aXZlID0gW107CiAgICAgICAgIGxldCBuZWdhdGl2ZSA9IFtdOwpAQCAt
NTY5LDcgKzU2OSw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJw
YXJ0aXRpb24iLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImlz
TG93ZXJDYXNlIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oKQorICAgIHZhbHVlKCkKICAgICB7
CiAgICAgICAgIHJldHVybiBTdHJpbmcodGhpcykgPT09IHRoaXMudG9Mb3dlckNhc2UoKTsKICAg
ICB9CkBAIC01NzcsNyArNTc3LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90
b3R5cGUsICJpc0xvd2VyQ2FzZSIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJv
dG90eXBlLCAiaXNVcHBlckNhc2UiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbigpCisgICAgdmFs
dWUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIFN0cmluZyh0aGlzKSA9PT0gdGhpcy50b1VwcGVy
Q2FzZSgpOwogICAgIH0KQEAgLTU4NSw3ICs1ODUsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHko
U3RyaW5nLnByb3RvdHlwZSwgImlzVXBwZXJDYXNlIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5
KFN0cmluZy5wcm90b3R5cGUsICJ0cmltTWlkZGxlIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24o
bWF4TGVuZ3RoKQorICAgIHZhbHVlKG1heExlbmd0aCkKICAgICB7CiAgICAgICAgIGlmICh0aGlz
Lmxlbmd0aCA8PSBtYXhMZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gdGhpczsKQEAgLTU5Nyw3
ICs1OTcsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgInRyaW1N
aWRkbGUiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgInRyaW1F
bmQiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihtYXhMZW5ndGgpCisgICAgdmFsdWUobWF4TGVu
Z3RoKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMubGVuZ3RoIDw9IG1heExlbmd0aCkKICAgICAg
ICAgICAgIHJldHVybiB0aGlzOwpAQCAtNjA3LDcgKzYwNyw3IEBAIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShTdHJpbmcucHJvdG90eXBlLCAidHJpbUVuZCIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShTdHJpbmcucHJvdG90eXBlLCAidHJ1bmNhdGUiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbiht
YXhMZW5ndGgpCisgICAgdmFsdWUobWF4TGVuZ3RoKQogICAgIHsKICAgICAgICAgInVzZSBzdHJp
Y3QiOwogCkBAIC02MjUsNyArNjI1LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5w
cm90b3R5cGUsICJ0cnVuY2F0ZSIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJv
dG90eXBlLCAiY29sbGFwc2VXaGl0ZXNwYWNlIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oKQor
ICAgIHZhbHVlKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLnJlcGxhY2UoL1tcc1x4QTBd
Ky9nLCAiICIpOwogICAgIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoU3RyaW5nLnByb3RvdHlwZSwgImNvbGxhcHNlV2hpdGVzcGFjZSIsCiAKIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAicmVtb3ZlV2hpdGVzcGFjZSIsCiB7Ci0gICAg
dmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhp
cy5yZXBsYWNlKC9bXHNceEEwXSsvZywgIiIpOwogICAgIH0KQEAgLTY0MSw3ICs2NDEsNyBAQCBP
YmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgInJlbW92ZVdoaXRlc3BhY2Ui
LAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImVzY2FwZUNoYXJh
Y3RlcnMiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihjaGFycykKKyAgICB2YWx1ZShjaGFycykK
ICAgICB7CiAgICAgICAgIHZhciBmb3VuZENoYXIgPSBmYWxzZTsKICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7ICsraSkgewpAQCAtNjY3LDcgKzY2Nyw3IEBAIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAiZXNjYXBlQ2hhcmFjdGVycyIsCiAK
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAiZXNjYXBlRm9yUmVnRXhw
IiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oKQorICAgIHZhbHVlKCkKICAgICB7CiAgICAgICAg
IHJldHVybiB0aGlzLmVzY2FwZUNoYXJhY3RlcnMoIl5bXXt9KClcXC4kKis/fCIpOwogICAgIH0K
QEAgLTY3NSw3ICs2NzUsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlw
ZSwgImVzY2FwZUZvclJlZ0V4cCIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJv
dG90eXBlLCAiY2FwaXRhbGl6ZSIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1
ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSAr
IHRoaXMuc2xpY2UoMSk7CiAgICAgfQpAQCAtNjkxLDcgKzY5MSw3IEBAIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAiZXh0ZW5kZWRMb2NhbGVDb21wYXJlIiwKIAogT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZywgInRva2VuaXplRm9ybWF0U3RyaW5nIiwKIHsKLSAg
ICB2YWx1ZTogZnVuY3Rpb24oZm9ybWF0KQorICAgIHZhbHVlKGZvcm1hdCkKICAgICB7CiAgICAg
ICAgIHZhciB0b2tlbnMgPSBbXTsKICAgICAgICAgdmFyIHN1YnN0aXR1dGlvbkluZGV4ID0gMDsK
QEAgLTc2MSw3ICs3NjEsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLCAidG9rZW5p
emVGb3JtYXRTdHJpbmciLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlw
ZSwgImhhc2giLAogewotICAgIGdldDogZnVuY3Rpb24oKQorICAgIGdldCgpCiAgICAgewogICAg
ICAgICAvLyBNYXRjaGVzIHRoZSB3dGYvSGFzaGVyLmggKFN1cGVyRmFzdEhhc2gpIGFsZ29yaXRo
bS4KIApAQCAtODM0LDcgKzgzNCw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcsICJz
dGFuZGFyZEZvcm1hdHRlcnMiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLCAiZm9y
bWF0IiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oZm9ybWF0LCBzdWJzdGl0dXRpb25zLCBmb3Jt
YXR0ZXJzLCBpbml0aWFsVmFsdWUsIGFwcGVuZCkKKyAgICB2YWx1ZShmb3JtYXQsIHN1YnN0aXR1
dGlvbnMsIGZvcm1hdHRlcnMsIGluaXRpYWxWYWx1ZSwgYXBwZW5kKQogICAgIHsKICAgICAgICAg
aWYgKCFmb3JtYXQgfHwgIXN1YnN0aXR1dGlvbnMgfHwgIXN1YnN0aXR1dGlvbnMubGVuZ3RoKQog
ICAgICAgICAgICAgcmV0dXJuIHtmb3JtYXR0ZWRSZXN1bHQ6IGFwcGVuZChpbml0aWFsVmFsdWUs
IGZvcm1hdCksIHVudXNlZFN1YnN0aXR1dGlvbnM6IHN1YnN0aXR1dGlvbnN9OwpAQCAtOTA0LDcg
KzkwNCw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcsICJmb3JtYXQiLAogCiBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImZvcm1hdCIsCiB7Ci0gICAgdmFs
dWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gU3RyaW5n
LmZvcm1hdCh0aGlzLCBhcmd1bWVudHMsIFN0cmluZy5zdGFuZGFyZEZvcm1hdHRlcnMsICIiLCBm
dW5jdGlvbihhLCBiKSB7IHJldHVybiBhICsgYjsgfSkuZm9ybWF0dGVkUmVzdWx0OwogICAgIH0K
QEAgLTkxMiw3ICs5MTIsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlw
ZSwgImZvcm1hdCIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAi
aW5zZXJ0V29yZEJyZWFrQ2hhcmFjdGVycyIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKCkKKyAg
ICB2YWx1ZSgpCiAgICAgewogICAgICAgICAvLyBBZGQgemVybyB3aWR0aCBzcGFjZXMgYWZ0ZXIg
Y2hhcmFjdGVycyB0aGF0IGFyZSBnb29kIHRvIGJyZWFrIGFmdGVyLgogICAgICAgICAvLyBPdGhl
cndpc2UgYSBzdHJpbmcgd2l0aCBubyBzcGFjZXMgd2lsbCBub3QgYnJlYWsgYW5kIG92ZXJmbG93
IGl0cyBjb250YWluZXIuCkBAIC05MjMsNyArOTIzLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KFN0cmluZy5wcm90b3R5cGUsICJpbnNlcnRXb3JkQnJlYWtDaGFyYWN0ZXJzIiwKIAogT2JqZWN0
LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJyZW1vdmVXb3JkQnJlYWtDaGFyYWN0
ZXJzIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oKQorICAgIHZhbHVlKCkKICAgICB7CiAgICAg
ICAgIC8vIFVuZG9lcyB3aGF0IGluc2VydFdvcmRCcmVha0NoYXJhY3RlcnMgZGlkLgogICAgICAg
ICByZXR1cm4gdGhpcy5yZXBsYWNlKC9cdTIwMGIvZywgIiIpOwpAQCAtOTMyLDcgKzkzMiw3IEBA
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAicmVtb3ZlV29yZEJyZWFr
Q2hhcmFjdGVycyIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAi
Z2V0TWF0Y2hpbmdJbmRleGVzIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24obmVlZGxlKQorICAg
IHZhbHVlKG5lZWRsZSkKICAgICB7CiAgICAgICAgIHZhciBpbmRleGVzT2ZOZWVkbGUgPSBbXTsK
ICAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5pbmRleE9mKG5lZWRsZSk7CkBAIC05NDgsNyArOTQ4
LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJnZXRNYXRjaGlu
Z0luZGV4ZXMiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImxl
dmVuc2h0ZWluRGlzdGFuY2UiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihzKQorICAgIHZhbHVl
KHMpCiAgICAgewogICAgICAgICB2YXIgbSA9IHRoaXMubGVuZ3RoOwogICAgICAgICB2YXIgbiA9
IHMubGVuZ3RoOwpAQCAtOTgxLDcgKzk4MSw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJp
bmcucHJvdG90eXBlLCAibGV2ZW5zaHRlaW5EaXN0YW5jZSIsCiAKIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShTdHJpbmcucHJvdG90eXBlLCAidG9DYW1lbENhc2UiLAogewotICAgIHZhbHVlOiBmdW5j
dGlvbigpCisgICAgdmFsdWUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMudG9Mb3dlckNh
c2UoKS5yZXBsYWNlKC9bXlx3XSsoXHcpL2csIChtYXRjaCwgZ3JvdXApID0+IGdyb3VwLnRvVXBw
ZXJDYXNlKCkpOwogICAgIH0KQEAgLTk4OSw3ICs5ODksNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoU3RyaW5nLnByb3RvdHlwZSwgInRvQ2FtZWxDYXNlIiwKIAogT2JqZWN0LmRlZmluZVByb3Bl
cnR5KFN0cmluZy5wcm90b3R5cGUsICJoYXNNYXRjaGluZ0VzY2FwZWRRdW90ZXMiLAogewotICAg
IHZhbHVlOiBmdW5jdGlvbigpCisgICAgdmFsdWUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIC9e
XCIoPzpbXlwiXFxdfFxcLikqXCIkLy50ZXN0KHRoaXMpIHx8IC9eXCcoPzpbXlwnXFxdfFxcLikq
XCckLy50ZXN0KHRoaXMpOwogICAgIH0KQEAgLTk5Nyw3ICs5OTcsNyBAQCBPYmplY3QuZGVmaW5l
UHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImhhc01hdGNoaW5nRXNjYXBlZFF1b3RlcyIsCiAK
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNYXRoLCAicm91bmRUbyIsCiB7Ci0gICAgdmFsdWU6IGZ1
bmN0aW9uKG51bSwgc3RlcCkKKyAgICB2YWx1ZShudW0sIHN0ZXApCiAgICAgewogICAgICAgICBy
ZXR1cm4gTWF0aC5yb3VuZChudW0gLyBzdGVwKSAqIHN0ZXA7CiAgICAgfQpAQCAtMTAwNSw3ICsx
MDA1LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE1hdGgsICJyb3VuZFRvIiwKIAogT2JqZWN0
LmRlZmluZVByb3BlcnR5KE51bWJlciwgImNvbnN0cmFpbiIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0
aW9uKG51bSwgbWluLCBtYXgpCisgICAgdmFsdWUobnVtLCBtaW4sIG1heCkKICAgICB7CiAgICAg
ICAgIGlmIChpc05hTihudW0pIHx8IG1heCA8IG1pbikKICAgICAgICAgICAgIHJldHVybiBtaW47
CkBAIC0xMDIwLDcgKzEwMjAsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoTnVtYmVyLCAiY29u
c3RyYWluIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KE51bWJlciwgInBlcmNlbnRhZ2VTdHJp
bmciLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihmcmFjdGlvbiwgcHJlY2lzaW9uID0gMSkKKyAg
ICB2YWx1ZShmcmFjdGlvbiwgcHJlY2lzaW9uID0gMSkKICAgICB7CiAgICAgICAgIHJldHVybiBm
cmFjdGlvbi50b0xvY2FsZVN0cmluZyh1bmRlZmluZWQsIHttaW5pbXVtRnJhY3Rpb25EaWdpdHM6
IHByZWNpc2lvbiwgc3R5bGU6ICJwZXJjZW50In0pOwogICAgIH0KQEAgLTEwMjgsNyArMTAyOCw3
IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOdW1iZXIsICJwZXJjZW50YWdlU3RyaW5nIiwKIAog
T2JqZWN0LmRlZmluZVByb3BlcnR5KE51bWJlciwgInNlY29uZHNUb01pbGxpc2Vjb25kc1N0cmlu
ZyIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKHNlY29uZHMsIGhpZ2hlclJlc29sdXRpb24pCisg
ICAgdmFsdWUoc2Vjb25kcywgaGlnaGVyUmVzb2x1dGlvbikKICAgICB7CiAgICAgICAgIGxldCBt
cyA9IHNlY29uZHMgKiAxMDAwOwogCkBAIC0xMDQwLDcgKzEwNDAsNyBAQCBPYmplY3QuZGVmaW5l
UHJvcGVydHkoTnVtYmVyLCAic2Vjb25kc1RvTWlsbGlzZWNvbmRzU3RyaW5nIiwKIAogT2JqZWN0
LmRlZmluZVByb3BlcnR5KE51bWJlciwgInNlY29uZHNUb1N0cmluZyIsCiB7Ci0gICAgdmFsdWU6
IGZ1bmN0aW9uKHNlY29uZHMsIGhpZ2hlclJlc29sdXRpb24pCisgICAgdmFsdWUoc2Vjb25kcywg
aGlnaGVyUmVzb2x1dGlvbikKICAgICB7CiAgICAgICAgIGxldCBtcyA9IHNlY29uZHMgKiAxMDAw
OwogICAgICAgICBpZiAoIW1zKQpAQCAtMTA4Myw3ICsxMDgzLDcgQEAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KE51bWJlciwgInNlY29uZHNUb1N0cmluZyIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShOdW1iZXIsICJieXRlc1RvU3RyaW5nIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oYnl0ZXMs
IGhpZ2hlclJlc29sdXRpb24pCisgICAgdmFsdWUoYnl0ZXMsIGhpZ2hlclJlc29sdXRpb24pCiAg
ICAgewogICAgICAgICBpZiAoaGlnaGVyUmVzb2x1dGlvbiA9PT0gdW5kZWZpbmVkKQogICAgICAg
ICAgICAgaGlnaGVyUmVzb2x1dGlvbiA9IHRydWU7CkBAIC0xMTE0LDcgKzExMTQsNyBAQCBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoTnVtYmVyLCAiYnl0ZXNUb1N0cmluZyIsCiAKIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShOdW1iZXIsICJhYmJyZXZpYXRlIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24o
bnVtKQorICAgIHZhbHVlKG51bSkKICAgICB7CiAgICAgICAgIGlmIChudW0gPCAxMDAwKQogICAg
ICAgICAgICAgcmV0dXJuIG51bS50b0xvY2FsZVN0cmluZygpOwpAQCAtMTE2MSw3ICsxMTYxLDcg
QEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE51bWJlci5wcm90b3R5cGUsICJtYXhEZWNpbWFscyIs
CiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVaW50MzJBcnJheSwgImlzTGl0dGxlRW5kaWFuIiwK
IHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oKQorICAgIHZhbHVlKCkKICAgICB7CiAgICAgICAgIGlm
ICgiX2lzTGl0dGxlRW5kaWFuIiBpbiB0aGlzKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lz
TGl0dGxlRW5kaWFuOwpAQCAtMTI5MCw3ICsxMjkwLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KEFycmF5LnByb3RvdHlwZSwgImxvd2VyQm91bmQiLAogICAgIC8vIHRoYW4gdGhlIHNwZWNpbWVu
IG9iamVjdC4gSWYgdGhlcmUncyBubyBzdWNoIGVsZW1lbnQgKGkuZS4gYWxsCiAgICAgLy8gZWxl
bWVudHMgYXJlIHNtYWxsZXIgdGhhbiB0aGUgc3BlY2ltZW4pIHJldHVybnMgYXJyYXkubGVuZ3Ro
LgogICAgIC8vIFRoZSBmdW5jdGlvbiB3b3JrcyBmb3Igc29ydGVkIGFycmF5LgotICAgIHZhbHVl
OiBmdW5jdGlvbihvYmplY3QsIGNvbXBhcmF0b3IpCisgICAgdmFsdWUob2JqZWN0LCBjb21wYXJh
dG9yKQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gZGVmYXVsdENvbXBhcmF0b3IoYSwgYikKICAg
ICAgICAgewpAQCAtMTMxNiw3ICsxMzE2LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5
LnByb3RvdHlwZSwgInVwcGVyQm91bmQiLAogICAgIC8vIHRoYW4gdGhlIHNwZWNpbWVuIG9iamVj
dC4gSWYgdGhlcmUncyBubyBzdWNoIGVsZW1lbnQgKGkuZS4gYWxsCiAgICAgLy8gZWxlbWVudHMg
YXJlIHNtYWxsZXIgdGhhbiB0aGUgc3BlY2ltZW4pIHJldHVybnMgYXJyYXkubGVuZ3RoLgogICAg
IC8vIFRoZSBmdW5jdGlvbiB3b3JrcyBmb3Igc29ydGVkIGFycmF5LgotICAgIHZhbHVlOiBmdW5j
dGlvbihvYmplY3QsIGNvbXBhcmF0b3IpCisgICAgdmFsdWUob2JqZWN0LCBjb21wYXJhdG9yKQog
ICAgIHsKICAgICAgICAgZnVuY3Rpb24gZGVmYXVsdENvbXBhcmF0b3IoYSwgYikKICAgICAgICAg
ewpAQCAtMTMzOCw3ICsxMzM4LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3Rv
dHlwZSwgInVwcGVyQm91bmQiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90
eXBlLCAiYmluYXJ5SW5kZXhPZiIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKHZhbHVlLCBjb21w
YXJhdG9yKQorICAgIHZhbHVlKHZhbHVlLCBjb21wYXJhdG9yKQogICAgIHsKICAgICAgICAgdmFy
IGluZGV4ID0gdGhpcy5sb3dlckJvdW5kKHZhbHVlLCBjb21wYXJhdG9yKTsKICAgICAgICAgcmV0
dXJuIGluZGV4IDwgdGhpcy5sZW5ndGggJiYgY29tcGFyYXRvcih2YWx1ZSwgdGhpc1tpbmRleF0p
ID09PSAwID8gaW5kZXggOiAtMTsKQEAgLTEzNTgsNyArMTM1OCw3IEBAIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJiaW5hcnlJbmRleE9mIiwKIAogICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAic29vbiIsCiAgICAgewotICAgICAgICBn
ZXQ6IGZ1bmN0aW9uKCkKKyAgICAgICAgZ2V0KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYg
KCF0aGlzW2RlYm91bmNlU29vblByb3h5U3ltYm9sXSkKICAgICAgICAgICAgICAgICB0aGlzW2Rl
Ym91bmNlU29vblByb3h5U3ltYm9sXSA9IHRoaXMuZGVib3VuY2UoMCk7CkBAIC0xMzY4LDcgKzEz
NjgsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiYmluYXJ5SW5k
ZXhPZiIsCiAKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgImRl
Ym91bmNlIiwKICAgICB7Ci0gICAgICAgIHZhbHVlOiBmdW5jdGlvbihkZWxheSkKKyAgICAgICAg
dmFsdWUoZGVsYXkpCiAgICAgICAgIHsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRlbGF5
ID49IDApOwogCkBAIC0xMzk1LDcgKzEzOTUsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJy
YXkucHJvdG90eXBlLCAiYmluYXJ5SW5kZXhPZiIsCiAKICAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoRnVuY3Rpb24ucHJvdG90eXBlLCAiY2FuY2VsRGVib3VuY2UiLAogICAgIHsKLSAgICAgICAg
dmFsdWU6IGZ1bmN0aW9uKCkKKyAgICAgICAgdmFsdWUoKQogICAgICAgICB7CiAgICAgICAgICAg
ICBpZiAoIXRoaXNbZGVib3VuY2VUaW1lb3V0U3ltYm9sXSkKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC0xNDEwLDcgKzE0MTAsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJv
dG90eXBlLCAiYmluYXJ5SW5kZXhPZiIsCiAKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2Jq
ZWN0LnByb3RvdHlwZSwgIm9uTmV4dEZyYW1lIiwKICAgICB7Ci0gICAgICAgIGdldDogZnVuY3Rp
b24oKQorICAgICAgICBnZXQoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIXRoaXNbcmVx
dWVzdEFuaW1hdGlvbkZyYW1lUHJveHlTeW1ib2xdKSB7CiAgICAgICAgICAgICAgICAgdGhpc1ty
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVQcm94eVN5bWJvbF0gPSBuZXcgUHJveHkodGhpcywgewo=
</data>
<flag name="review"
          id="339588"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319292</attachid>
            <date>2017-08-29 15:37:35 -0700</date>
            <delta_ts>2017-08-29 16:45:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20616</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDM3YTYxZmUuLmQ0YjNhZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE3LTA4LTI5ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENvbnZl
cnQgYWxsIG1ldGhvZHMgaW4gVXRpbGl0aWVzLmpzIHRvIEVDTUFTY3JpcHQgMjAxNSBzaG9ydGhh
bmQgc3ludGF4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzYwNjcKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzOgorICAgICAgICAoZ2V0IHJldHVy
bik6CisgICAgICAgIChhZGRTdHJpbmdUb2tlbik6CisgICAgICAgIChwcmV0dHlGdW5jdGlvbk5h
bWUpOgorICAgICAgICAod2Fybik6CisgICAgICAgIChlcnJvcik6CisgICAgICAgIChpc0VtcHR5
T2JqZWN0KToKKyAgICAgICAgKGlzRW50ZXJLZXkpOgorICAgICAgICAocmVzb2x2ZURvdHNJblBh
dGgpOgorICAgICAgICAocGFyc2VNSU1FVHlwZSk6CisgICAgICAgIChzaW1wbGVHbG9iU3RyaW5n
VG9SZWdFeHApOgorICAgICAgICAoZGVmYXVsdENvbXBhcmF0b3IpOgorICAgICAgICAoZ2V0IE9i
amVjdCk6CisgICAgICAgIChhcHBlbmRXZWJJbnNwZWN0b3JTb3VyY2VVUkwpOgorICAgICAgICAo
YXBwZW5kV2ViSW5zcGVjdG9yQ29uc29sZUV2YWx1YXRpb25Tb3VyY2VVUkwpOgorICAgICAgICAo
aXNXZWJJbnNwZWN0b3JJbnRlcm5hbFNjcmlwdCk6CisgICAgICAgIChpc1dlYkluc3BlY3RvckNv
bnNvbGVFdmFsdWF0aW9uU2NyaXB0KToKKyAgICAgICAgKGlzV2ViS2l0SW5qZWN0ZWRTY3JpcHQp
OgorICAgICAgICAoaXNXZWJLaXRJbnRlcm5hbFNjcmlwdCk6CisgICAgICAgIChpc0Z1bmN0aW9u
U3RyaW5nTmF0aXZlQ29kZSk6CisgICAgICAgIChpc1RleHRMaWtlbHlNaW5pZmllZCk6CisgICAg
ICAgIChkb3VibGVRdW90ZWRTdHJpbmcpOgorICAgICAgICAoaW5zZXJ0aW9uSW5kZXhGb3JPYmpl
Y3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKToKKyAgICAgICAgKGluc2VydE9iamVjdEludG9Tb3J0
ZWRBcnJheSk6CisgICAgICAgIChkZWNvZGVCYXNlNjRUb0Jsb2IpOgorCisyMDE3LTA4LTI5ICBO
aWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IE9wdGltaXplIFZpZXcucHJvdG90eXBlLnJlbW92ZVN1YnZpZXcKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjA0MQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCmlu
ZGV4IDZhMjliNTIuLmJjN2I2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCkBAIC0zMSw3ICszMSw3IEBAIHZhciB6
ZXJvV2lkdGhTcGFjZSA9ICJcdTIwMGIiOwogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0
LCAic2hhbGxvd0NvcHkiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihvYmplY3QpCisgICAgdmFs
dWUob2JqZWN0KQogICAgIHsKICAgICAgICAgLy8gTWFrZSBhIG5ldyBvYmplY3QgYW5kIGNvcHkg
YWxsIHRoZSBrZXkvdmFsdWVzLiBUaGUgdmFsdWVzIGFyZSBub3QgY29waWVkLgogICAgICAgICB2
YXIgY29weSA9IHt9OwpAQCAtNDQsNyArNDQsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2Jq
ZWN0LCAic2hhbGxvd0NvcHkiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LCAic2hh
bGxvd0VxdWFsIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oYSwgYikKKyAgICB2YWx1ZShhLCBi
KQogICAgIHsKICAgICAgICAgLy8gQ2hlY2tzIGlmIHR3byBvYmplY3RzIGhhdmUgdGhlIHNhbWUg
dG9wLWxldmVsIHByb3BlcnRpZXMuCiAKQEAgLTEwMiw3ICsxMDIsNyBAQCBPYmplY3QuZGVmaW5l
UHJvcGVydHkoT2JqZWN0LCAic2hhbGxvd01lcmdlIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5
KE9iamVjdC5wcm90b3R5cGUsICJ2YWx1ZUZvckNhc2VJbnNlbnNpdGl2ZUtleSIsCiB7Ci0gICAg
dmFsdWU6IGZ1bmN0aW9uKGtleSkKKyAgICB2YWx1ZShrZXkpCiAgICAgewogICAgICAgICBpZiAo
dGhpcy5oYXNPd25Qcm9wZXJ0eShrZXkpKQogICAgICAgICAgICAgcmV0dXJuIHRoaXNba2V5XTsK
QEAgLTExOSw3ICsxMTksNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlw
ZSwgInZhbHVlRm9yQ2FzZUluc2Vuc2l0aXZlS2V5IiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5
KE1hcCwgImZyb21PYmplY3QiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihvYmplY3QpCisgICAg
dmFsdWUob2JqZWN0KQogICAgIHsKICAgICAgICAgbGV0IG1hcCA9IG5ldyBNYXA7CiAgICAgICAg
IGZvciAobGV0IGtleSBpbiBvYmplY3QpCkBAIC0xMzAsNyArMTMwLDcgQEAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE1hcCwgImZyb21PYmplY3QiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWFw
LnByb3RvdHlwZSwgInRha2UiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihrZXkpCisgICAgdmFs
dWUoa2V5KQogICAgIHsKICAgICAgICAgdmFyIGRlbGV0ZWRWYWx1ZSA9IHRoaXMuZ2V0KGtleSk7
CiAgICAgICAgIHRoaXMuZGVsZXRlKGtleSk7CkBAIC0xNDAsNyArMTQwLDcgQEAgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KE1hcC5wcm90b3R5cGUsICJ0YWtlIiwKIAogT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE5vZGUucHJvdG90eXBlLCAiZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcyIsCiB7Ci0g
ICAgdmFsdWU6IGZ1bmN0aW9uKGNsYXNzTmFtZSkKKyAgICB2YWx1ZShjbGFzc05hbWUpCiAgICAg
ewogICAgICAgICBmb3IgKHZhciBub2RlID0gdGhpczsgbm9kZSAmJiBub2RlICE9PSB0aGlzLm93
bmVyRG9jdW1lbnQ7IG5vZGUgPSBub2RlLnBhcmVudE5vZGUpCiAgICAgICAgICAgICBpZiAobm9k
ZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYgbm9kZS5jbGFzc0xpc3QuY29udGFp
bnMoY2xhc3NOYW1lKSkKQEAgLTE1MSw3ICsxNTEsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHko
Tm9kZS5wcm90b3R5cGUsICJlbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzIiwKIAogT2JqZWN0
LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLCAiZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhO
b2RlTmFtZUluQXJyYXkiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihuYW1lQXJyYXkpCisgICAg
dmFsdWUobmFtZUFycmF5KQogICAgIHsKICAgICAgICAgdmFyIGxvd2VyQ2FzZU5hbWVBcnJheSA9
IG5hbWVBcnJheS5tYXAoZnVuY3Rpb24obmFtZSkgeyByZXR1cm4gbmFtZS50b0xvd2VyQ2FzZSgp
OyB9KTsKICAgICAgICAgZm9yICh2YXIgbm9kZSA9IHRoaXM7IG5vZGUgJiYgbm9kZSAhPT0gdGhp
cy5vd25lckRvY3VtZW50OyBub2RlID0gbm9kZS5wYXJlbnROb2RlKSB7CkBAIC0xNjcsNyArMTY3
LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLCAiZW5jbG9zaW5nTm9k
ZU9yU2VsZldpdGhOb2RlTmFtZUluQXJyYXkiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTm9k
ZS5wcm90b3R5cGUsICJlbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lIiwKIHsKLSAgICB2
YWx1ZTogZnVuY3Rpb24obm9kZU5hbWUpCisgICAgdmFsdWUobm9kZU5hbWUpCiAgICAgewogICAg
ICAgICByZXR1cm4gdGhpcy5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lSW5BcnJheShb
bm9kZU5hbWVdKTsKICAgICB9CkBAIC0xNzUsNyArMTc1LDcgQEAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE5vZGUucHJvdG90eXBlLCAiZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFtZSIsCiAK
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgImlzQW5jZXN0b3IiLAogewot
ICAgIHZhbHVlOiBmdW5jdGlvbihub2RlKQorICAgIHZhbHVlKG5vZGUpCiAgICAgewogICAgICAg
ICBpZiAoIW5vZGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xOTMsNyArMTkzLDcg
QEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLCAiaXNBbmNlc3RvciIsCiAK
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgImlzRGVzY2VuZGFudCIsCiB7
Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKGRlc2NlbmRhbnQpCisgICAgdmFsdWUoZGVzY2VuZGFudCkK
ICAgICB7CiAgICAgICAgIHJldHVybiAhIWRlc2NlbmRhbnQgJiYgZGVzY2VuZGFudC5pc0FuY2Vz
dG9yKHRoaXMpOwogICAgIH0KQEAgLTIwMiw3ICsyMDIsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoTm9kZS5wcm90b3R5cGUsICJpc0Rlc2NlbmRhbnQiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoTm9kZS5wcm90b3R5cGUsICJpc1NlbGZPckFuY2VzdG9yIiwKIHsKLSAgICB2YWx1ZTogZnVu
Y3Rpb24obm9kZSkKKyAgICB2YWx1ZShub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuICEhbm9k
ZSAmJiAobm9kZSA9PT0gdGhpcyB8fCB0aGlzLmlzQW5jZXN0b3Iobm9kZSkpOwogICAgIH0KQEAg
LTIxMSw3ICsyMTEsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJp
c1NlbGZPckFuY2VzdG9yIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBl
LCAiaXNTZWxmT3JEZXNjZW5kYW50IiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24obm9kZSkKKyAg
ICB2YWx1ZShub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuICEhbm9kZSAmJiAobm9kZSA9PT0g
dGhpcyB8fCB0aGlzLmlzRGVzY2VuZGFudChub2RlKSk7CiAgICAgfQpAQCAtMjE5LDcgKzIxOSw3
IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgImlzU2VsZk9yRGVzY2Vu
ZGFudCIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgInRyYXZlcnNl
TmV4dE5vZGUiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihzdGF5V2l0aGluKQorICAgIHZhbHVl
KHN0YXlXaXRoaW4pCiAgICAgewogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuZmlyc3RDaGlsZDsK
ICAgICAgICAgaWYgKG5vZGUpCkBAIC0yNDQsNyArMjQ0LDcgQEAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE5vZGUucHJvdG90eXBlLCAidHJhdmVyc2VOZXh0Tm9kZSIsCiAKIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShOb2RlLnByb3RvdHlwZSwgInRyYXZlcnNlUHJldmlvdXNOb2RlIiwKIHsKLSAgICB2
YWx1ZTogZnVuY3Rpb24oc3RheVdpdGhpbikKKyAgICB2YWx1ZShzdGF5V2l0aGluKQogICAgIHsK
ICAgICAgICBpZiAoc3RheVdpdGhpbiAmJiB0aGlzID09PSBzdGF5V2l0aGluKQogICAgICAgICAg
ICAgcmV0dXJuIG51bGw7CkBAIC0yNjAsNyArMjYwLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KE5vZGUucHJvdG90eXBlLCAidHJhdmVyc2VQcmV2aW91c05vZGUiLAogCiBPYmplY3QuZGVmaW5l
UHJvcGVydHkoTm9kZS5wcm90b3R5cGUsICJyYW5nZU9mV29yZCIsCiB7Ci0gICAgdmFsdWU6IGZ1
bmN0aW9uKG9mZnNldCwgc3RvcENoYXJhY3RlcnMsIHN0YXlXaXRoaW5Ob2RlLCBkaXJlY3Rpb24p
CisgICAgdmFsdWUob2Zmc2V0LCBzdG9wQ2hhcmFjdGVycywgc3RheVdpdGhpbk5vZGUsIGRpcmVj
dGlvbikKICAgICB7CiAgICAgICAgIHZhciBzdGFydE5vZGU7CiAgICAgICAgIHZhciBzdGFydE9m
ZnNldCA9IDA7CkBAIC0zNTEsNyArMzUxLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUu
cHJvdG90eXBlLCAicmFuZ2VPZldvcmQiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWxlbWVu
dC5wcm90b3R5cGUsICJyZWFsT2Zmc2V0V2lkdGgiLAogewotICAgIGdldDogZnVuY3Rpb24oKQor
ICAgIGdldCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS53aWR0aDsKICAgICB9CkBAIC0zNTksNyArMzU5LDcgQEAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KEVsZW1lbnQucHJvdG90eXBlLCAicmVhbE9mZnNldFdpZHRoIiwKIAogT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAicmVhbE9mZnNldEhlaWdodCIsCiB7Ci0gICAg
Z2V0OiBmdW5jdGlvbigpCisgICAgZ2V0KCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDsKICAgICB9CkBAIC0zNjcsNyArMzY3LDcgQEAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAicmVhbE9mZnNldEhlaWdo
dCIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwgInRvdGFsT2Zm
c2V0TGVmdCIsCiB7Ci0gICAgZ2V0OiBmdW5jdGlvbigpCisgICAgZ2V0KCkKICAgICB7CiAgICAg
ICAgIHJldHVybiB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7CiAgICAgfQpAQCAt
Mzc1LDcgKzM3NSw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwg
InRvdGFsT2Zmc2V0TGVmdCIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3Rv
dHlwZSwgInRvdGFsT2Zmc2V0UmlnaHQiLAogewotICAgIGdldDogZnVuY3Rpb24oKQorICAgIGdl
dCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5y
aWdodDsKICAgICB9CkBAIC0zODMsNyArMzgzLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVs
ZW1lbnQucHJvdG90eXBlLCAidG90YWxPZmZzZXRSaWdodCIsCiAKIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShFbGVtZW50LnByb3RvdHlwZSwgInRvdGFsT2Zmc2V0VG9wIiwKIHsKLSAgICBnZXQ6IGZ1
bmN0aW9uKCkKKyAgICBnZXQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkudG9wOwogICAgIH0KQEAgLTM5MSw3ICszOTEsNyBAQCBPYmplY3QuZGVm
aW5lUHJvcGVydHkoRWxlbWVudC5wcm90b3R5cGUsICJ0b3RhbE9mZnNldFRvcCIsCiAKIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwgInJlbW92ZUNoaWxkcmVuIiwKIHsK
LSAgICB2YWx1ZTogZnVuY3Rpb24oKQorICAgIHZhbHVlKCkKICAgICB7CiAgICAgICAgIC8vIFRo
aXMgaGFzIGJlZW4gdGVzdGVkIHRvIGJlIHRoZSBmYXN0ZXN0IHJlbW92YWwgbWV0aG9kLgogICAg
ICAgICBpZiAodGhpcy5maXJzdENoaWxkKQpAQCAtNDAxLDcgKzQwMSw3IEBAIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwgInJlbW92ZUNoaWxkcmVuIiwKIAogT2JqZWN0
LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAiaXNJbnNlcnRpb25DYXJldEluc2lk
ZSIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgpCiAgICAgewogICAgICAg
ICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogICAgICAgICBpZiAoIXNl
bGVjdGlvbi5yYW5nZUNvdW50IHx8ICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQpCkBAIC00MTMsNyAr
NDEzLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAiaXNJbnNl
cnRpb25DYXJldEluc2lkZSIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3Rv
dHlwZSwgInJlbW92ZU1hdGNoaW5nU3R5bGVDbGFzc2VzIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rp
b24oY2xhc3NOYW1lUmVnZXgpCisgICAgdmFsdWUoY2xhc3NOYW1lUmVnZXgpCiAgICAgewogICAg
ICAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKCIoXnxcXHMrKSIgKyBjbGFzc05hbWVSZWdleCAr
ICIoJHxcXHMrKSIpOwogICAgICAgICBpZiAocmVnZXgudGVzdCh0aGlzLmNsYXNzTmFtZSkpCkBA
IC00MjMsNyArNDIzLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBl
LCAicmVtb3ZlTWF0Y2hpbmdTdHlsZUNsYXNzZXMiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHko
RWxlbWVudC5wcm90b3R5cGUsICJjcmVhdGVDaGlsZCIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9u
KGVsZW1lbnROYW1lLCBjbGFzc05hbWUpCisgICAgdmFsdWUoZWxlbWVudE5hbWUsIGNsYXNzTmFt
ZSkKICAgICB7CiAgICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoZWxlbWVudE5hbWUpOwogICAgICAgICBpZiAoY2xhc3NOYW1lKQpAQCAtNDM1LDcg
KzQzNSw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwgImNyZWF0
ZUNoaWxkIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAiaXNT
Y3JvbGxlZFRvQm90dG9tIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oKQorICAgIHZhbHVlKCkK
ICAgICB7CiAgICAgICAgIC8vIFRoaXMgY29kZSB3b3JrcyBvbmx5IGZvciAwLXdpZHRoIGJvcmRl
cgogICAgICAgICByZXR1cm4gdGhpcy5zY3JvbGxUb3AgKyB0aGlzLmNsaWVudEhlaWdodCA9PT0g
dGhpcy5zY3JvbGxIZWlnaHQ7CkBAIC00NDQsNyArNDQ0LDcgQEAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KEVsZW1lbnQucHJvdG90eXBlLCAiaXNTY3JvbGxlZFRvQm90dG9tIiwKIAogT2JqZWN0LmRl
ZmluZVByb3BlcnR5KEVsZW1lbnQucHJvdG90eXBlLCAicmVjYWxjdWxhdGVTdHlsZXMiLAogewot
ICAgIHZhbHVlOiBmdW5jdGlvbigpCisgICAgdmFsdWUoKQogICAgIHsKICAgICAgICAgdGhpcy5v
d25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodGhpcyk7CiAgICAgfQpA
QCAtNDU3LDcgKzQ1Nyw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEb2N1bWVudEZyYWdtZW50
LnByb3RvdHlwZSwgImNyZWF0ZUNoaWxkIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5
LCAic2hhbGxvd0VxdWFsIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oYSwgYikKKyAgICB2YWx1
ZShhLCBiKQogICAgIHsKICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGEpIHx8ICFBcnJheS5p
c0FycmF5KGIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDg0LDcgKzQ4NCw3IEBA
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheSwgInNoYWxsb3dFcXVhbCIsCiAKIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJsYXN0VmFsdWUiLAogewotICAgIGdldDog
ZnVuY3Rpb24oKQorICAgIGdldCgpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMubGVuZ3RoKQog
ICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKQEAgLTUxOCw3ICs1MTgsNyBAQCBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAicmVtb3ZlQWxsIiwKIAogT2JqZWN0LmRl
ZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgInRvZ2dsZUluY2x1ZGVzIiwKIHsKLSAgICB2
YWx1ZTogZnVuY3Rpb24odmFsdWUsIGZvcmNlKQorICAgIHZhbHVlKHZhbHVlLCBmb3JjZSkKICAg
ICB7CiAgICAgICAgIGxldCBleGlzdHMgPSB0aGlzLmluY2x1ZGVzKHZhbHVlKTsKICAgICAgICAg
aWYgKGV4aXN0cyA9PT0gISFmb3JjZSkKQEAgLTUzMyw3ICs1MzMsNyBAQCBPYmplY3QuZGVmaW5l
UHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAidG9nZ2xlSW5jbHVkZXMiLAogCiBPYmplY3QuZGVm
aW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiaW5zZXJ0QXRJbmRleCIsCiB7Ci0gICAgdmFs
dWU6IGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkKKyAgICB2YWx1ZSh2YWx1ZSwgaW5kZXgpCiAgICAg
ewogICAgICAgICB0aGlzLnNwbGljZShpbmRleCwgMCwgdmFsdWUpOwogICAgIH0KQEAgLTU0MSw3
ICs1NDEsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiaW5zZXJ0
QXRJbmRleCIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJrZXlT
ZXQiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbigpCisgICAgdmFsdWUoKQogICAgIHsKICAgICAg
ICAgbGV0IGtleXMgPSBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRoaXMubGVuZ3RoOyArK2kpCkBAIC01NTIsNyArNTUyLDcgQEAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgImtleVNldCIsCiAKIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShBcnJheS5wcm90b3R5cGUsICJwYXJ0aXRpb24iLAogewotICAgIHZhbHVlOiBmdW5jdGlv
bihjYWxsYmFjaykKKyAgICB2YWx1ZShjYWxsYmFjaykKICAgICB7CiAgICAgICAgIGxldCBwb3Np
dGl2ZSA9IFtdOwogICAgICAgICBsZXQgbmVnYXRpdmUgPSBbXTsKQEAgLTU2OSw3ICs1NjksNyBA
QCBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAicGFydGl0aW9uIiwKIAog
T2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJpc0xvd2VyQ2FzZSIsCiB7
Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgpCiAgICAgewogICAgICAgICByZXR1
cm4gU3RyaW5nKHRoaXMpID09PSB0aGlzLnRvTG93ZXJDYXNlKCk7CiAgICAgfQpAQCAtNTc3LDcg
KzU3Nyw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAiaXNMb3dl
ckNhc2UiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImlzVXBw
ZXJDYXNlIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oKQorICAgIHZhbHVlKCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBTdHJpbmcodGhpcykgPT09IHRoaXMudG9VcHBlckNhc2UoKTsKICAgICB9
CkBAIC01ODUsNyArNTg1LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5
cGUsICJpc1VwcGVyQ2FzZSIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90
eXBlLCAidHJpbU1pZGRsZSIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKG1heExlbmd0aCkKKyAg
ICB2YWx1ZShtYXhMZW5ndGgpCiAgICAgewogICAgICAgICBpZiAodGhpcy5sZW5ndGggPD0gbWF4
TGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIHRoaXM7CkBAIC01OTcsNyArNTk3LDcgQEAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJ0cmltTWlkZGxlIiwKIAogT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJ0cmltRW5kIiwKIHsKLSAgICB2
YWx1ZTogZnVuY3Rpb24obWF4TGVuZ3RoKQorICAgIHZhbHVlKG1heExlbmd0aCkKICAgICB7CiAg
ICAgICAgIGlmICh0aGlzLmxlbmd0aCA8PSBtYXhMZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4g
dGhpczsKQEAgLTYwNyw3ICs2MDcsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnBy
b3RvdHlwZSwgInRyaW1FbmQiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3Rv
dHlwZSwgInRydW5jYXRlIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24obWF4TGVuZ3RoKQorICAg
IHZhbHVlKG1heExlbmd0aCkKICAgICB7CiAgICAgICAgICJ1c2Ugc3RyaWN0IjsKIApAQCAtNjI1
LDcgKzYyNSw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAidHJ1
bmNhdGUiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImNvbGxh
cHNlV2hpdGVzcGFjZSIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgpCiAg
ICAgewogICAgICAgICByZXR1cm4gdGhpcy5yZXBsYWNlKC9bXHNceEEwXSsvZywgIiAiKTsKICAg
ICB9CkBAIC02MzMsNyArNjMzLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90
b3R5cGUsICJjb2xsYXBzZVdoaXRlc3BhY2UiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3Ry
aW5nLnByb3RvdHlwZSwgInJlbW92ZVdoaXRlc3BhY2UiLAogewotICAgIHZhbHVlOiBmdW5jdGlv
bigpCisgICAgdmFsdWUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMucmVwbGFjZSgvW1xz
XHhBMF0rL2csICIiKTsKICAgICB9CkBAIC02NDEsNyArNjQxLDcgQEAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJyZW1vdmVXaGl0ZXNwYWNlIiwKIAogT2JqZWN0LmRl
ZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJlc2NhcGVDaGFyYWN0ZXJzIiwKIHsKLSAg
ICB2YWx1ZTogZnVuY3Rpb24oY2hhcnMpCisgICAgdmFsdWUoY2hhcnMpCiAgICAgewogICAgICAg
ICB2YXIgZm91bmRDaGFyID0gZmFsc2U7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hh
cnMubGVuZ3RoOyArK2kpIHsKQEAgLTY2Nyw3ICs2NjcsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoU3RyaW5nLnByb3RvdHlwZSwgImVzY2FwZUNoYXJhY3RlcnMiLAogCiBPYmplY3QuZGVmaW5l
UHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImVzY2FwZUZvclJlZ0V4cCIsCiB7Ci0gICAgdmFs
dWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5l
c2NhcGVDaGFyYWN0ZXJzKCJeW117fSgpXFwuJCorP3wiKTsKICAgICB9CkBAIC02NzUsNyArNjc1
LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJlc2NhcGVGb3JS
ZWdFeHAiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImNhcGl0
YWxpemUiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbigpCisgICAgdmFsdWUoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIHRoaXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0aGlzLnNsaWNlKDEp
OwogICAgIH0KQEAgLTY5MSw3ICs2OTEsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5n
LnByb3RvdHlwZSwgImV4dGVuZGVkTG9jYWxlQ29tcGFyZSIsCiAKIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShTdHJpbmcsICJ0b2tlbml6ZUZvcm1hdFN0cmluZyIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0
aW9uKGZvcm1hdCkKKyAgICB2YWx1ZShmb3JtYXQpCiAgICAgewogICAgICAgICB2YXIgdG9rZW5z
ID0gW107CiAgICAgICAgIHZhciBzdWJzdGl0dXRpb25JbmRleCA9IDA7CkBAIC03NjEsNyArNzYx
LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZywgInRva2VuaXplRm9ybWF0U3RyaW5n
IiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJoYXNoIiwKIHsK
LSAgICBnZXQ6IGZ1bmN0aW9uKCkKKyAgICBnZXQoKQogICAgIHsKICAgICAgICAgLy8gTWF0Y2hl
cyB0aGUgd3RmL0hhc2hlci5oIChTdXBlckZhc3RIYXNoKSBhbGdvcml0aG0uCiAKQEAgLTgzNCw3
ICs4MzQsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLCAic3RhbmRhcmRGb3JtYXR0
ZXJzIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZywgImZvcm1hdCIsCiB7Ci0gICAg
dmFsdWU6IGZ1bmN0aW9uKGZvcm1hdCwgc3Vic3RpdHV0aW9ucywgZm9ybWF0dGVycywgaW5pdGlh
bFZhbHVlLCBhcHBlbmQpCisgICAgdmFsdWUoZm9ybWF0LCBzdWJzdGl0dXRpb25zLCBmb3JtYXR0
ZXJzLCBpbml0aWFsVmFsdWUsIGFwcGVuZCkKICAgICB7CiAgICAgICAgIGlmICghZm9ybWF0IHx8
ICFzdWJzdGl0dXRpb25zIHx8ICFzdWJzdGl0dXRpb25zLmxlbmd0aCkKICAgICAgICAgICAgIHJl
dHVybiB7Zm9ybWF0dGVkUmVzdWx0OiBhcHBlbmQoaW5pdGlhbFZhbHVlLCBmb3JtYXQpLCB1bnVz
ZWRTdWJzdGl0dXRpb25zOiBzdWJzdGl0dXRpb25zfTsKQEAgLTkwNCw3ICs5MDQsNyBAQCBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLCAiZm9ybWF0IiwKIAogT2JqZWN0LmRlZmluZVByb3Bl
cnR5KFN0cmluZy5wcm90b3R5cGUsICJmb3JtYXQiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbigp
CisgICAgdmFsdWUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIFN0cmluZy5mb3JtYXQodGhpcywg
YXJndW1lbnRzLCBTdHJpbmcuc3RhbmRhcmRGb3JtYXR0ZXJzLCAiIiwgZnVuY3Rpb24oYSwgYikg
eyByZXR1cm4gYSArIGI7IH0pLmZvcm1hdHRlZFJlc3VsdDsKICAgICB9CkBAIC05MTIsNyArOTEy
LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJmb3JtYXQiLAog
CiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImluc2VydFdvcmRCcmVh
a0NoYXJhY3RlcnMiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbigpCisgICAgdmFsdWUoKQogICAg
IHsKICAgICAgICAgLy8gQWRkIHplcm8gd2lkdGggc3BhY2VzIGFmdGVyIGNoYXJhY3RlcnMgdGhh
dCBhcmUgZ29vZCB0byBicmVhayBhZnRlci4KICAgICAgICAgLy8gT3RoZXJ3aXNlIGEgc3RyaW5n
IHdpdGggbm8gc3BhY2VzIHdpbGwgbm90IGJyZWFrIGFuZCBvdmVyZmxvdyBpdHMgY29udGFpbmVy
LgpAQCAtOTIzLDcgKzkyMyw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90
eXBlLCAiaW5zZXJ0V29yZEJyZWFrQ2hhcmFjdGVycyIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShTdHJpbmcucHJvdG90eXBlLCAicmVtb3ZlV29yZEJyZWFrQ2hhcmFjdGVycyIsCiB7Ci0gICAg
dmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgpCiAgICAgewogICAgICAgICAvLyBVbmRvZXMg
d2hhdCBpbnNlcnRXb3JkQnJlYWtDaGFyYWN0ZXJzIGRpZC4KICAgICAgICAgcmV0dXJuIHRoaXMu
cmVwbGFjZSgvXHUyMDBiL2csICIiKTsKQEAgLTkzMiw3ICs5MzIsNyBAQCBPYmplY3QuZGVmaW5l
UHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgInJlbW92ZVdvcmRCcmVha0NoYXJhY3RlcnMiLAog
CiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImdldE1hdGNoaW5nSW5k
ZXhlcyIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKG5lZWRsZSkKKyAgICB2YWx1ZShuZWVkbGUp
CiAgICAgewogICAgICAgICB2YXIgaW5kZXhlc09mTmVlZGxlID0gW107CiAgICAgICAgIHZhciBp
bmRleCA9IHRoaXMuaW5kZXhPZihuZWVkbGUpOwpAQCAtOTQ4LDcgKzk0OCw3IEBAIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJvdG90eXBlLCAiZ2V0TWF0Y2hpbmdJbmRleGVzIiwKIAog
T2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJsZXZlbnNodGVpbkRpc3Rh
bmNlIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24ocykKKyAgICB2YWx1ZShzKQogICAgIHsKICAg
ICAgICAgdmFyIG0gPSB0aGlzLmxlbmd0aDsKICAgICAgICAgdmFyIG4gPSBzLmxlbmd0aDsKQEAg
LTk4MSw3ICs5ODEsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwg
ImxldmVuc2h0ZWluRGlzdGFuY2UiLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnBy
b3RvdHlwZSwgInRvQ2FtZWxDYXNlIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rpb24oKQorICAgIHZh
bHVlKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgv
W15cd10rKFx3KS9nLCAobWF0Y2gsIGdyb3VwKSA9PiBncm91cC50b1VwcGVyQ2FzZSgpKTsKICAg
ICB9CkBAIC05ODksNyArOTg5LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90
b3R5cGUsICJ0b0NhbWVsQ2FzZSIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdHJpbmcucHJv
dG90eXBlLCAiaGFzTWF0Y2hpbmdFc2NhcGVkUXVvdGVzIiwKIHsKLSAgICB2YWx1ZTogZnVuY3Rp
b24oKQorICAgIHZhbHVlKCkKICAgICB7CiAgICAgICAgIHJldHVybiAvXlwiKD86W15cIlxcXXxc
XC4pKlwiJC8udGVzdCh0aGlzKSB8fCAvXlwnKD86W15cJ1xcXXxcXC4pKlwnJC8udGVzdCh0aGlz
KTsKICAgICB9CkBAIC05OTcsNyArOTk3LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmlu
Zy5wcm90b3R5cGUsICJoYXNNYXRjaGluZ0VzY2FwZWRRdW90ZXMiLAogCiBPYmplY3QuZGVmaW5l
UHJvcGVydHkoTWF0aCwgInJvdW5kVG8iLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihudW0sIHN0
ZXApCisgICAgdmFsdWUobnVtLCBzdGVwKQogICAgIHsKICAgICAgICAgcmV0dXJuIE1hdGgucm91
bmQobnVtIC8gc3RlcCkgKiBzdGVwOwogICAgIH0KQEAgLTEwMDUsNyArMTAwNSw3IEBAIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShNYXRoLCAicm91bmRUbyIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShOdW1iZXIsICJjb25zdHJhaW4iLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihudW0sIG1pbiwg
bWF4KQorICAgIHZhbHVlKG51bSwgbWluLCBtYXgpCiAgICAgewogICAgICAgICBpZiAoaXNOYU4o
bnVtKSB8fCBtYXggPCBtaW4pCiAgICAgICAgICAgICByZXR1cm4gbWluOwpAQCAtMTAyMCw3ICsx
MDIwLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE51bWJlciwgImNvbnN0cmFpbiIsCiAKIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShOdW1iZXIsICJwZXJjZW50YWdlU3RyaW5nIiwKIHsKLSAgICB2
YWx1ZTogZnVuY3Rpb24oZnJhY3Rpb24sIHByZWNpc2lvbiA9IDEpCisgICAgdmFsdWUoZnJhY3Rp
b24sIHByZWNpc2lvbiA9IDEpCiAgICAgewogICAgICAgICByZXR1cm4gZnJhY3Rpb24udG9Mb2Nh
bGVTdHJpbmcodW5kZWZpbmVkLCB7bWluaW11bUZyYWN0aW9uRGlnaXRzOiBwcmVjaXNpb24sIHN0
eWxlOiAicGVyY2VudCJ9KTsKICAgICB9CkBAIC0xMDI4LDcgKzEwMjgsNyBAQCBPYmplY3QuZGVm
aW5lUHJvcGVydHkoTnVtYmVyLCAicGVyY2VudGFnZVN0cmluZyIsCiAKIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShOdW1iZXIsICJzZWNvbmRzVG9NaWxsaXNlY29uZHNTdHJpbmciLAogewotICAgIHZh
bHVlOiBmdW5jdGlvbihzZWNvbmRzLCBoaWdoZXJSZXNvbHV0aW9uKQorICAgIHZhbHVlKHNlY29u
ZHMsIGhpZ2hlclJlc29sdXRpb24pCiAgICAgewogICAgICAgICBsZXQgbXMgPSBzZWNvbmRzICog
MTAwMDsKIApAQCAtMTA0MCw3ICsxMDQwLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE51bWJl
ciwgInNlY29uZHNUb01pbGxpc2Vjb25kc1N0cmluZyIsCiAKIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShOdW1iZXIsICJzZWNvbmRzVG9TdHJpbmciLAogewotICAgIHZhbHVlOiBmdW5jdGlvbihzZWNv
bmRzLCBoaWdoZXJSZXNvbHV0aW9uKQorICAgIHZhbHVlKHNlY29uZHMsIGhpZ2hlclJlc29sdXRp
b24pCiAgICAgewogICAgICAgICBsZXQgbXMgPSBzZWNvbmRzICogMTAwMDsKICAgICAgICAgaWYg
KCFtcykKQEAgLTEwODMsNyArMTA4Myw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOdW1iZXIs
ICJzZWNvbmRzVG9TdHJpbmciLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTnVtYmVyLCAiYnl0
ZXNUb1N0cmluZyIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKGJ5dGVzLCBoaWdoZXJSZXNvbHV0
aW9uKQorICAgIHZhbHVlKGJ5dGVzLCBoaWdoZXJSZXNvbHV0aW9uKQogICAgIHsKICAgICAgICAg
aWYgKGhpZ2hlclJlc29sdXRpb24gPT09IHVuZGVmaW5lZCkKICAgICAgICAgICAgIGhpZ2hlclJl
c29sdXRpb24gPSB0cnVlOwpAQCAtMTExNCw3ICsxMTE0LDcgQEAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE51bWJlciwgImJ5dGVzVG9TdHJpbmciLAogCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTnVt
YmVyLCAiYWJicmV2aWF0ZSIsCiB7Ci0gICAgdmFsdWU6IGZ1bmN0aW9uKG51bSkKKyAgICB2YWx1
ZShudW0pCiAgICAgewogICAgICAgICBpZiAobnVtIDwgMTAwMCkKICAgICAgICAgICAgIHJldHVy
biBudW0udG9Mb2NhbGVTdHJpbmcoKTsKQEAgLTExNjEsNyArMTE2MSw3IEBAIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShOdW1iZXIucHJvdG90eXBlLCAibWF4RGVjaW1hbHMiLAogCiBPYmplY3QuZGVm
aW5lUHJvcGVydHkoVWludDMyQXJyYXksICJpc0xpdHRsZUVuZGlhbiIsCiB7Ci0gICAgdmFsdWU6
IGZ1bmN0aW9uKCkKKyAgICB2YWx1ZSgpCiAgICAgewogICAgICAgICBpZiAoIl9pc0xpdHRsZUVu
ZGlhbiIgaW4gdGhpcykKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc0xpdHRsZUVuZGlhbjsK
QEAgLTEyOTAsNyArMTI5MCw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5
cGUsICJsb3dlckJvdW5kIiwKICAgICAvLyB0aGFuIHRoZSBzcGVjaW1lbiBvYmplY3QuIElmIHRo
ZXJlJ3Mgbm8gc3VjaCBlbGVtZW50IChpLmUuIGFsbAogICAgIC8vIGVsZW1lbnRzIGFyZSBzbWFs
bGVyIHRoYW4gdGhlIHNwZWNpbWVuKSByZXR1cm5zIGFycmF5Lmxlbmd0aC4KICAgICAvLyBUaGUg
ZnVuY3Rpb24gd29ya3MgZm9yIHNvcnRlZCBhcnJheS4KLSAgICB2YWx1ZTogZnVuY3Rpb24ob2Jq
ZWN0LCBjb21wYXJhdG9yKQorICAgIHZhbHVlKG9iamVjdCwgY29tcGFyYXRvcikKICAgICB7CiAg
ICAgICAgIGZ1bmN0aW9uIGRlZmF1bHRDb21wYXJhdG9yKGEsIGIpCiAgICAgICAgIHsKQEAgLTEz
MTYsNyArMTMxNiw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJ1
cHBlckJvdW5kIiwKICAgICAvLyB0aGFuIHRoZSBzcGVjaW1lbiBvYmplY3QuIElmIHRoZXJlJ3Mg
bm8gc3VjaCBlbGVtZW50IChpLmUuIGFsbAogICAgIC8vIGVsZW1lbnRzIGFyZSBzbWFsbGVyIHRo
YW4gdGhlIHNwZWNpbWVuKSByZXR1cm5zIGFycmF5Lmxlbmd0aC4KICAgICAvLyBUaGUgZnVuY3Rp
b24gd29ya3MgZm9yIHNvcnRlZCBhcnJheS4KLSAgICB2YWx1ZTogZnVuY3Rpb24ob2JqZWN0LCBj
b21wYXJhdG9yKQorICAgIHZhbHVlKG9iamVjdCwgY29tcGFyYXRvcikKICAgICB7CiAgICAgICAg
IGZ1bmN0aW9uIGRlZmF1bHRDb21wYXJhdG9yKGEsIGIpCiAgICAgICAgIHsKQEAgLTEzMzgsNyAr
MTMzOCw3IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJ1cHBlckJv
dW5kIiwKIAogT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgImJpbmFyeUlu
ZGV4T2YiLAogewotICAgIHZhbHVlOiBmdW5jdGlvbih2YWx1ZSwgY29tcGFyYXRvcikKKyAgICB2
YWx1ZSh2YWx1ZSwgY29tcGFyYXRvcikKICAgICB7CiAgICAgICAgIHZhciBpbmRleCA9IHRoaXMu
bG93ZXJCb3VuZCh2YWx1ZSwgY29tcGFyYXRvcik7CiAgICAgICAgIHJldHVybiBpbmRleCA8IHRo
aXMubGVuZ3RoICYmIGNvbXBhcmF0b3IodmFsdWUsIHRoaXNbaW5kZXhdKSA9PT0gMCA/IGluZGV4
IDogLTE7CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXku
cHJvdG90eXBlLCAiYmluYXJ5SW5kZXhPZiIsCiAKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
T2JqZWN0LnByb3RvdHlwZSwgInNvb24iLAogICAgIHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbigp
CisgICAgICAgIGdldCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghdGhpc1tkZWJvdW5j
ZVNvb25Qcm94eVN5bWJvbF0pCiAgICAgICAgICAgICAgICAgdGhpc1tkZWJvdW5jZVNvb25Qcm94
eVN5bWJvbF0gPSB0aGlzLmRlYm91bmNlKDApOwpAQCAtMTM2OCw3ICsxMzY4LDcgQEAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgImJpbmFyeUluZGV4T2YiLAogCiAgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICJkZWJvdW5jZSIsCiAgICAg
ewotICAgICAgICB2YWx1ZTogZnVuY3Rpb24oZGVsYXkpCisgICAgICAgIHZhbHVlKGRlbGF5KQog
ICAgICAgICB7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChkZWxheSA+PSAwKTsKIApAQCAt
MTM5NSw3ICsxMzk1LDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwg
ImJpbmFyeUluZGV4T2YiLAogCiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZ1bmN0aW9uLnBy
b3RvdHlwZSwgImNhbmNlbERlYm91bmNlIiwKICAgICB7Ci0gICAgICAgIHZhbHVlOiBmdW5jdGlv
bigpCisgICAgICAgIHZhbHVlKCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCF0aGlzW2Rl
Ym91bmNlVGltZW91dFN5bWJvbF0pCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTQxMCw3
ICsxNDEwLDcgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgImJpbmFy
eUluZGV4T2YiLAogCiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUs
ICJvbk5leHRGcmFtZSIsCiAgICAgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkKKyAgICAgICAg
Z2V0KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCF0aGlzW3JlcXVlc3RBbmltYXRpb25G
cmFtZVByb3h5U3ltYm9sXSkgewogICAgICAgICAgICAgICAgIHRoaXNbcmVxdWVzdEFuaW1hdGlv
bkZyYW1lUHJveHlTeW1ib2xdID0gbmV3IFByb3h5KHRoaXMsIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>