<?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>198847</bug_id>
          
          <creation_ts>2019-06-13 19:13:26 -0700</creation_ts>
          <short_desc>Custom analysis task configurator should allow supplying commit prefix and revision starts &apos;r&apos;.</short_desc>
          <delta_ts>2019-06-17 16:13:25 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>dewei_zhu</reporter>
          <assigned_to>dewei_zhu</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1544661</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-06-13 19:13:26 -0700</bug_when>
    <thetext>Custom analysis task configurator should allow supplying commit prefix and revision starts &apos;r&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544662</commentid>
    <comment_count>1</comment_count>
      <attachid>372097</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-06-13 19:19:59 -0700</bug_when>
    <thetext>Created attachment 372097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545313</commentid>
    <comment_count>2</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-06-17 11:13:09 -0700</bug_when>
    <thetext>rdar://49238080
rdar://49237819</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545391</commentid>
    <comment_count>3</comment_count>
      <attachid>372097</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-06-17 14:17:22 -0700</bug_when>
    <thetext>Comment on attachment 372097
Patch

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

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:204
&gt; +        $rows = $this-&gt;db-&gt;query_and_fetch_all(&apos;SELECT * FROM commits WHERE commit_repository = $1 AND commit_revision LIKE $2 LIMIT 2&apos;, array($repository_id, Database::escape_for_like($revision_prefix) . &apos;%&apos;));

This is not right. In the case of subversion revision, we should always check with =.
It makes no sense to match r123 against revision 123456 or 456123.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:181
&gt; -        const data = await this.cachedFetch(`/api/commits/${repository.id()}/${revision}`);
&gt; +        const data = await this.cachedFetch(`/api/commits/${repository.id()}/${revision}${prefixMatch ? &apos;?prefix-match=true&apos; : &apos;&apos;}`);

Just do: this.cachedFetch(`/api/commits/${repository.id()}/${revision}`, prefixMatch ? {prefixMatch} : {})
We could also update cachedFetch to not include the param when it&apos;s set to &quot;false&quot;

&gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:401
&gt; +            const result = await remote.getJSON(&apos;/api/commits/WebKit/210949?prefix-match=false&apos;);

Need another test to make sure we default to false when prefix-match is not set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545438</commentid>
    <comment_count>4</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-06-17 16:12:25 -0700</bug_when>
    <thetext>Landed in r246522.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545439</commentid>
    <comment_count>5</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-06-17 16:13:25 -0700</bug_when>
    <thetext>This change is landed in r246522.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372097</attachid>
            <date>2019-06-13 19:19:59 -0700</date>
            <delta_ts>2019-06-17 14:17:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198847-20190613191959.patch</filename>
            <type>text/plain</type>
            <size>21705</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NDE4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBjYTY3YTA4OWQwZGMxODIwNTIzNjIxNjUyOWI2Mjg0ZmFiYWNkYmEwLi44NzNlYjk2MTMw
NDQwNjQ1OWFjODBmODk5YzFiNjI4MGE1MjFjMmZiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOS0wNi0xMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBDdXN0b20gYW5hbHlzaXMgdGFzayBjb25maWd1cmF0b3Ig
c2hvdWxkIGFsbG93IHN1cHBseWluZyBjb21taXQgcHJlZml4IGFuZCByZXZpc2lvbiBzdGFydHMg
J3InLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4
ODQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3Vz
dG9tIGFuYWx5c2lzIHRhc2sgY29uZmlndXJhdG9yIHNob3VsZCBub3QgcmVxdWlyZSBmdWxsIFNI
QSB0byBzdGFydCBhbiBBL0IgdGVzdC4KKyAgICAgICAgQ3VzdG9tIGFuYWx5c2lzIHRhc2sgY29u
ZmlndXJhdG9yIHNob3VsZCBhY2NlcHQgc3ZuIHJldmlzaW9uIHN0YXJ0cyB3aXRoICdyJy4KKwor
ICAgICAgICAqIGJyb3dzZXItdGVzdHMvY3VzdG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9y
LXRlc3RzLmpzOiBBZGRlZCBhIHVuaXQgdGVzdCBmb3IgdGhpcyBjaGFuZ2UuCisgICAgICAgICog
cHVibGljL2FwaS9jb21taXRzLnBocDogRXh0ZW5kIHRoaXMgQVBJIHRvIGFsbG93IHByZWZpeCBt
YXRjaGluZyB3aGVuIGZldGhjaW5nIGEgc2luZ2xlIGNvbW1pdC4KKyAgICAgICAgKiBwdWJsaWMv
aW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwOiBBZGRlZCBhIGZ1bmN0aW9uIHRvIGZldGNo
IGEgY29tbWl0IHdpdGggcHJlZml4LgorICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2N1
c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3VyYXRvci5qczogQWRkIFVJIHN1cHBvcnQgZm9yIGFj
Y2VwdGluZyBwYXJ0aWFsIHJldmlzaW9uLgorICAgICAgICAoQ3VzdG9tQW5hbHlzaXNUYXNrQ29u
ZmlndXJhdG9yLnByb3RvdHlwZS5fY29tcHV0ZUNvbW1pdFNldCk6CisgICAgICAgIChDdXN0b21B
bmFseXNpc1Rhc2tDb25maWd1cmF0b3IucHJvdG90eXBlLmFzeW5jLl9yZXNvbHZlUmV2aXNpb24p
OgorICAgICAgICAoQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLnByb3RvdHlwZS5fYnVp
bGRUZXN0YWJpbGl0eUxpc3QpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LWxv
Zy5qczoKKyAgICAgICAgKENvbW1pdExvZy5hc3luYy5mZXRjaEZvclNpbmdsZVJldmlzaW9uKTog
QWRkZWQgdGhpcmQgYXJndW1lbnQgdG8gc3BlY2lmeSBwcmVmaXggbWF0Y2hpbmcgd2hpY2ggZGVm
YXVsdHMgdG8gZmFsc2UuCisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3Rz
LmpzOiBBZGRlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHVuaXQtdGVzdHMvY29tbWl0LWxvZy10
ZXN0cy5qczogQWRkZWQgYSB1bml0IHRlc3QuCisKIDIwMTktMDUtMTUgIERld2VpIFpodSAgPGRl
d2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgUGVyZiBkYXNoYm9hcmQgZXJyb25lb3VzbHkg
cmVqZWN0cyBhIGJ1aWxkIHJlcXVlc3QgdG8gYnVpbGQgb3duZWQgY29tcG9uZW50cyB3aGVuIHRo
ZXJlIGFyZSBubyBwYXRjaGVzLgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvY3VzdG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9yLXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9tLWFuYWx5c2lz
LXRhc2stY29uZmlndXJhdG9yLXRlc3RzLmpzCmluZGV4IGNkNzM5NDIzZGE0MmZmYmRlNjNiMjFl
Y2MzMmZiYTc1M2VmNjlkZjkuLjA5MTgzOWM0NjkxYjMxNjZhNzUxNGM0OTNlN2NiZWNhZGYwNTcx
MDIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2N1
c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3VyYXRvci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jdXN0b20tYW5hbHlzaXMtdGFzay1jb25maWd1
cmF0b3ItdGVzdHMuanMKQEAgLTU2LDcgKzU2LDcgQEAgZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lz
VGFza0NvbmZpZ3VyYXRvcicsICgpID0+IHsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29u
ZmlndXJhdG9yLmNvbnRlbnQoJ2Jhc2VsaW5lLXJldmlzaW9uLXRhYmxlJykucXVlcnlTZWxlY3Rv
cignaW5wdXQnKS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7CiAgICAgICAgIGF3
YWl0IHNsZWVwKGNvbnRleHQuc3ltYm9scy5DdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3Iu
Y29tbWl0RmV0Y2hJbnRlcnZhbCk7CiAgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRv
LmJlKDIpOwotICAgICAgICBleHBlY3QocmVxdWVzdHNbMV0udXJsKS50by5iZSgnL2FwaS9jb21t
aXRzLzEvMTIzJyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBp
L2NvbW1pdHMvMS8xMjM/cHJlZml4LW1hdGNoPXRydWUnKTsKIAogICAgICAgICBjdXN0b21BbmFs
eXNpc1Rhc2tDb25maWd1cmF0b3IuX2NvbmZpZ3VyZUNvbXBhcmlzb24oKTsKICAgICAgICAgYXdh
aXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKQEAgLTY1LDcgKzY1LDcgQEAg
ZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcicsICgpID0+IHsKICAgICAg
ICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLmNvbnRlbnQoJ2NvbXBhcmlzb24tcmV2
aXNpb24tdGFibGUnKS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmRpc3BhdGNoRXZlbnQobmV3IEV2
ZW50KCdpbnB1dCcpKTsKICAgICAgICAgYXdhaXQgc2xlZXAoY29udGV4dC5zeW1ib2xzLkN1c3Rv
bUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5jb21taXRGZXRjaEludGVydmFsKTsKICAgICAgICAg
ZXhwZWN0KHJlcXVlc3RzLmxlbmd0aCkudG8uYmUoMyk7Ci0gICAgICAgIGV4cGVjdChyZXF1ZXN0
c1syXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS80NTYnKTsKKyAgICAgICAgZXhwZWN0KHJl
cXVlc3RzWzJdLnVybCkudG8uYmUoJy9hcGkvY29tbWl0cy8xLzQ1Nj9wcmVmaXgtbWF0Y2g9dHJ1
ZScpOwogCiAgICAgICAgIGNvbnN0IGNvbW1pdFNldHMgPSBjdXN0b21BbmFseXNpc1Rhc2tDb25m
aWd1cmF0b3IuY29tbWl0U2V0cygpOwogICAgICAgICBleHBlY3QoY29tbWl0U2V0cy5sZW5ndGgp
LnRvLmJlKDIpOwpAQCAtNzcsNiArNzcsOTMgQEAgZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lzVGFz
a0NvbmZpZ3VyYXRvcicsICgpID0+IHsKICAgICAgICAgY29udGV4dC5zeW1ib2xzLkN1c3RvbUFu
YWx5c2lzVGFza0NvbmZpZ3VyYXRvci5jb21taXRGZXRjaEludGVydmFsID0gMTAwOwogICAgIH0p
OwogCisgICAgY29uc3Qgd2Via2l0Q29tbWl0MTIzMTIzID0geworICAgICAgICAiaWQiOiAiMTg1
MzM4IiwKKyAgICAgICAgInJldmlzaW9uIjogIjEyMzEyMyIsCisgICAgICAgICJyZXBvc2l0b3J5
IjogMSwKKyAgICAgICAgInByZXZpb3VzQ29tbWl0IjogbnVsbCwKKyAgICAgICAgIm93bnNDb21t
aXRzIjogZmFsc2UsCisgICAgICAgICJ0aW1lIjogK25ldyBEYXRlKCIyMDE3LTAxLTIwVDAzOjQ5
OjM3Ljg4N1oiKSwKKyAgICAgICAgImF1dGhvck5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwKKyAgICAg
ICAgImF1dGhvckVtYWlsIjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIiwKKyAgICAgICAgIm1l
c3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKKyAgICB9OworCisgICAgY29uc3Qgd2Via2l0Q29t
bWl0NDU2NDU2ID0geworICAgICAgICAiaWQiOiAiMTg1MzM0IiwKKyAgICAgICAgInJldmlzaW9u
IjogIjQ1NjQ1NiIsCisgICAgICAgICJyZXBvc2l0b3J5IjogMSwKKyAgICAgICAgInByZXZpb3Vz
Q29tbWl0IjogbnVsbCwKKyAgICAgICAgIm93bnNDb21taXRzIjogZmFsc2UsCisgICAgICAgICJ0
aW1lIjogK25ldyBEYXRlKCIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiKSwKKyAgICAgICAgImF1
dGhvck5hbWUiOiAiQ2hyaXMgRHVtZXoiLAorICAgICAgICAiYXV0aG9yRW1haWwiOiAiY2R1bWV6
QGFwcGxlLmNvbSIsCisgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCisgICAgfTsK
KworICAgIGl0KCdTaG91bGQgdXNlIGZ1bGwgY29tbWl0IHJldmlzaW9uIGV2ZW4gaWYgVUkgZG9l
cyBub3QgaGF2ZSB0aGUgZnVsbCByZXZpc2lvbicsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29u
c3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgY29uc3QgY3VzdG9t
QW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yID0gYXdhaXQgY3JlYXRlQ3VzdG9tQW5hbHlzaXNUYXNr
Q29uZmlndXJhdG9yV2l0aENvbnRleHQoY29udGV4dCk7CisgICAgICAgIGNvbnRleHQuc3ltYm9s
cy5DdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IuY29tbWl0RmV0Y2hJbnRlcnZhbCA9IDE7
CisKKyAgICAgICAgY29uc3QgdGVzdCA9IG5ldyBjb250ZXh0LnN5bWJvbHMuVGVzdCgxLCB7bmFt
ZTogJ1NwZWVkb21ldGVyJ30pOworICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IG5ldyBjb250ZXh0
LnN5bWJvbHMuUGxhdGZvcm0oMSwgeworICAgICAgICAgICAgbmFtZTogJ01vamF2ZScsCisgICAg
ICAgICAgICBtZXRyaWNzOiBbCisgICAgICAgICAgICAgICAgbmV3IGNvbnRleHQuc3ltYm9scy5N
ZXRyaWMoMSwgeworICAgICAgICAgICAgICAgICAgICBuYW1lOiAnQWxsb2NhdGlvbicsCisgICAg
ICAgICAgICAgICAgICAgIGFnZ3JlZ2F0b3I6ICdBcml0aG1ldGljJywKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdAorICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgbGFzdE1vZGlmaWVkQnlNZXRyaWM6IERhdGUubm93KCksCisgICAgICAgIH0pOworICAgICAg
ICBjb25zdCByZXBvc2l0b3J5ID0gY29udGV4dC5zeW1ib2xzLlJlcG9zaXRvcnkuZW5zdXJlU2lu
Z2xldG9uKDEsIHtuYW1lOiAnV2ViS2l0J30pOworICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVJl
cG9zaXRvcnlHcm91cCA9IG5ldyBjb250ZXh0LnN5bWJvbHMuVHJpZ2dlcmFibGVSZXBvc2l0b3J5
R3JvdXAoMSwge3JlcG9zaXRvcmllczogW3tyZXBvc2l0b3J5fV19KTsKKyAgICAgICAgbmV3IGNv
bnRleHQuc3ltYm9scy5UcmlnZ2VyYWJsZSgxLCB7CisgICAgICAgICAgICBuYW1lOiAndGVzdC10
cmlnZ2VyYWJsZScsCisgICAgICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSwKKyAgICAgICAgICAg
IHJlcG9zaXRvcnlHcm91cHM6IFt0cmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cF0sCisgICAgICAg
ICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9ybX1dLAorICAgICAgICB9KTsKKyAg
ICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLnNlbGVjdFRlc3RzKFt0ZXN0XSk7
CisgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RQbGF0Zm9ybShw
bGF0Zm9ybSk7CisKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250
ZXh0KTsKKworICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGNvbnRleHQuc3ltYm9scy5Nb2NrUmVt
b3RlQVBJLnJlcXVlc3RzOworICAgICAgICBleHBlY3QocmVxdWVzdHMubGVuZ3RoKS50by5iZSgx
KTsKKyAgICAgICAgZXhwZWN0KHJlcXVlc3RzWzBdLnVybCkudG8uYmUoJy9hcGkvY29tbWl0cy8x
L2xhdGVzdD9wbGF0Zm9ybT0xJyk7CisgICAgICAgIHJlcXVlc3RzWzBdLnJlamVjdCgpOworCisg
ICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5jb250ZW50KCdiYXNlbGluZS1y
ZXZpc2lvbi10YWJsZScpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykudmFsdWUgPSAnMTIzJzsKKyAg
ICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLmNvbnRlbnQoJ2Jhc2VsaW5lLXJl
dmlzaW9uLXRhYmxlJykucXVlcnlTZWxlY3RvcignaW5wdXQnKS5kaXNwYXRjaEV2ZW50KG5ldyBF
dmVudCgnaW5wdXQnKSk7CisgICAgICAgIGF3YWl0IHNsZWVwKGNvbnRleHQuc3ltYm9scy5DdXN0
b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IuY29tbWl0RmV0Y2hJbnRlcnZhbCk7CisgICAgICAg
IGV4cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBleHBlY3QocmVxdWVz
dHNbMV0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvMTIzP3ByZWZpeC1tYXRjaD10cnVlJyk7
CisgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe2NvbW1pdHM6IFt3ZWJraXRDb21taXQxMjMx
MjNdfSk7CisKKyAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLl9jb25maWd1
cmVDb21wYXJpc29uKCk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIo
Y29udGV4dCk7CisKKyAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLmNvbnRl
bnQoJ2NvbXBhcmlzb24tcmV2aXNpb24tdGFibGUnKS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZh
bHVlID0gJ3I0NTYnOworICAgICAgICBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IuY29u
dGVudCgnY29tcGFyaXNvbi1yZXZpc2lvbi10YWJsZScpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyku
ZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpOworICAgICAgICBhd2FpdCBzbGVlcChj
b250ZXh0LnN5bWJvbHMuQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLmNvbW1pdEZldGNo
SW50ZXJ2YWwpOworICAgICAgICBleHBlY3QocmVxdWVzdHMubGVuZ3RoKS50by5iZSgzKTsKKyAg
ICAgICAgZXhwZWN0KHJlcXVlc3RzWzJdLnVybCkudG8uYmUoJy9hcGkvY29tbWl0cy8xL3I0NTY/
cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgcmVxdWVzdHNbMl0ucmVzb2x2ZSh7Y29tbWl0
czogW3dlYmtpdENvbW1pdDQ1NjQ1Nl19KTsKKworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9u
ZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAgICAgICBjb25zdCBjb21taXRTZXRzID0gY3VzdG9t
QW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLmNvbW1pdFNldHMoKTsKKyAgICAgICAgZXhwZWN0KGNv
bW1pdFNldHMubGVuZ3RoKS50by5iZSgyKTsKKyAgICAgICAgZXhwZWN0KGNvbW1pdFNldHNbMF0u
cmVwb3NpdG9yaWVzKCkubGVuZ3RoKS50by5iZSgxKTsKKyAgICAgICAgZXhwZWN0KGNvbW1pdFNl
dHNbMF0ucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpKS50by5iZSgnMTIzMTIzJyk7
CisgICAgICAgIGV4cGVjdChjb21taXRTZXRzWzFdLnJlcG9zaXRvcmllcygpLmxlbmd0aCkudG8u
YmUoMSk7CisgICAgICAgIGV4cGVjdChjb21taXRTZXRzWzFdLnJldmlzaW9uRm9yUmVwb3NpdG9y
eShyZXBvc2l0b3J5KSkudG8uYmUoJzQ1NjQ1NicpOworCisgICAgICAgIGNvbnRleHQuc3ltYm9s
cy5DdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IuY29tbWl0RmV0Y2hJbnRlcnZhbCA9IDEw
MDsKKyAgICB9KTsKKwogICAgIGl0KCdTaG91bGQgbm90IHVwZGF0ZSBjb21taXRTZXRNYXAgaWYg
YmFzZWxpbmUgaXMgc2V0IGFuZCB1bm1vZGlmaWVkIGJ1dCBjb21wYXJpc29uIGlzIG51bGwnLCBh
c3luYyAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0
KCk7CiAgICAgICAgIGNvbnN0IGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvciA9IGF3YWl0
IGNyZWF0ZUN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcldpdGhDb250ZXh0KGNvbnRleHQp
OwpAQCAtMTQ1LDcgKzIzMiw3IEBAIGRlc2NyaWJlKCdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1
cmF0b3InLCAoKSA9PiB7CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5j
b250ZW50KCdiYXNlbGluZS1yZXZpc2lvbi10YWJsZScpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyku
ZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpOwogICAgICAgICBhd2FpdCBzbGVlcChj
b250ZXh0LnN5bWJvbHMuQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLmNvbW1pdEZldGNo
SW50ZXJ2YWwpOwogICAgICAgICBleHBlY3QocmVxdWVzdHMubGVuZ3RoKS50by5iZSgyKTsKLSAg
ICAgICAgZXhwZWN0KHJlcXVlc3RzWzFdLnVybCkudG8uYmUoJy9hcGkvY29tbWl0cy8xLzEyMycp
OworICAgICAgICBleHBlY3QocmVxdWVzdHNbMV0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEv
MTIzP3ByZWZpeC1tYXRjaD10cnVlJyk7CiAKICAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29u
ZmlndXJhdG9yLl9jb25maWd1cmVDb21wYXJpc29uKCk7CiAgICAgICAgIGF3YWl0IHdhaXRGb3JD
b21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7CkBAIC0xNTQsNyArMjQxLDcgQEAgZGVzY3JpYmUo
J0N1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcicsICgpID0+IHsKICAgICAgICAgY3VzdG9t
QW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLmNvbnRlbnQoJ2NvbXBhcmlzb24tcmV2aXNpb24tdGFi
bGUnKS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1
dCcpKTsKICAgICAgICAgYXdhaXQgc2xlZXAoY29udGV4dC5zeW1ib2xzLkN1c3RvbUFuYWx5c2lz
VGFza0NvbmZpZ3VyYXRvci5jb21taXRGZXRjaEludGVydmFsKTsKICAgICAgICAgZXhwZWN0KHJl
cXVlc3RzLmxlbmd0aCkudG8uYmUoMyk7Ci0gICAgICAgIGV4cGVjdChyZXF1ZXN0c1syXS51cmwp
LnRvLmJlKCcvYXBpL2NvbW1pdHMvMS80NTYnKTsKKyAgICAgICAgZXhwZWN0KHJlcXVlc3RzWzJd
LnVybCkudG8uYmUoJy9hcGkvY29tbWl0cy8xLzQ1Nj9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwogCiAg
ICAgICAgIGxldCBjb21taXRTZXRzID0gY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLmNv
bW1pdFNldHMoKTsKICAgICAgICAgZXhwZWN0KGNvbW1pdFNldHMubGVuZ3RoKS50by5iZSgyKTsK
QEAgLTI4Niw3ICszNzMsNyBAQCBkZXNjcmliZSgnQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJh
dG9yJywgKCkgPT4gewogICAgICAgICBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IuY29u
dGVudCgnYmFzZWxpbmUtcmV2aXNpb24tdGFibGUnKS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmRp
c3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTsKICAgICAgICAgYXdhaXQgc2xlZXAoY29u
dGV4dC5zeW1ib2xzLkN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5jb21taXRGZXRjaElu
dGVydmFsKTsKICAgICAgICAgZXhwZWN0KHJlcXVlc3RzLmxlbmd0aCkudG8uYmUoMik7Ci0gICAg
ICAgIGV4cGVjdChyZXF1ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8xMjMnKTsK
KyAgICAgICAgZXhwZWN0KHJlcXVlc3RzWzFdLnVybCkudG8uYmUoJy9hcGkvY29tbWl0cy8xLzEy
Mz9wcmVmaXgtbWF0Y2g9dHJ1ZScpOwogCiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZp
Z3VyYXRvci5fY29uZmlndXJlQ29tcGFyaXNvbigpOwogICAgICAgICBhd2FpdCB3YWl0Rm9yQ29t
cG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9hcGkvY29tbWl0cy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2FwaS9jb21taXRzLnBocAppbmRleCA5NmNjZTFmOTcwZjBiN2ZmYWE5Y2RhNjQ3ZTJi
ZmM4MWNmMmJkZWQ2Li41YzU3ZjAyOTFmMGNjODk0OWYzNjM1YjYwYjg1MTRmMjdkNTVkZGRhIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9jb21taXRzLnBo
cAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9jb21taXRzLnBocApA
QCAtNDgsOCArNDgsMTAgQEAgZnVuY3Rpb24gbWFpbigkcGF0aHMpIHsKICAgICAgICAgICAgICRj
b21taXRzID0gJGZldGNoZXItPmZldGNoX2xhc3RfcmVwb3J0ZWRfYmV0d2Vlbl9vcmRlcnMoJHJl
cG9zaXRvcnlfaWQsICRmcm9tLCAkdG8pOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICAkY29t
bWl0cyA9ICRmZXRjaGVyLT5mZXRjaF9sYXN0X3JlcG9ydGVkKCRyZXBvc2l0b3J5X2lkKTsKLSAg
ICB9IGVsc2UKLSAgICAgICAgJGNvbW1pdHMgPSAkZmV0Y2hlci0+ZmV0Y2hfcmV2aXNpb24oJHJl
cG9zaXRvcnlfaWQsICRmaWx0ZXIpOworICAgIH0gZWxzZSB7CisgICAgICAgICRwcmVmaXhfbWF0
Y2ggPSAka2V5d29yZCA9IGFycmF5X2dldCgkX0dFVCwgJ3ByZWZpeC1tYXRjaCcpOworICAgICAg
ICAkY29tbWl0cyA9ICRmZXRjaGVyLT5mZXRjaF9yZXZpc2lvbigkcmVwb3NpdG9yeV9pZCwgJGZp
bHRlciwgJHByZWZpeF9tYXRjaCk7CisgICAgfQogCiAgICAgaWYgKCFpc19hcnJheSgkY29tbWl0
cykpCiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignRmFpbGVkVG9GZXRjaENvbW1pdHMnLCBhcnJh
eSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdmaWx0ZXInID0+ICRmaWx0ZXIpKTsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21t
aXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNs
dWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKaW5kZXggZDVmNjFhNjA4OThhYjE1ODVkNzgwZGI2
ZjU3MWIwZDYxN2NmNDI1MS4uMDM0ODM1NmM2Mzg0ODZhNWI5MDc3M2Y2ZmZjYWQyNjJlYTQwZTgz
MyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2Nv
bW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKQEAgLTE3OCw4ICsxNzgsMTIgQEAgY2xh
c3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAgICAgICAgIHJldHVybiAkdGhpcy0+Zm9ybWF0X3Npbmds
ZV9jb21taXQoJHRoaXMtPmRiLT5zZWxlY3RfbGFzdF9yb3coJ2NvbW1pdHMnLCAnY29tbWl0Jywg
YXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkLCAncmVwb3J0ZWQnID0+IHRydWUp
LCBhcnJheSgndGltZScsICdvcmRlcicpKSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gZmV0Y2hf
cmV2aXNpb24oJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbikgewotICAgICAgICByZXR1cm4gJHRo
aXMtPmZvcm1hdF9zaW5nbGVfY29tbWl0KCR0aGlzLT5jb21taXRfZm9yX3JldmlzaW9uKCRyZXBv
c2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKKyAgICBmdW5jdGlvbiBmZXRjaF9yZXZpc2lvbigkcmVw
b3NpdG9yeV9pZCwgJHJldmlzaW9uLCAkcHJlZml4X21hdGNoKSB7CisgICAgICAgIGlmICgkcHJl
Zml4X21hdGNoKQorICAgICAgICAgICAgJGNvbW1pdCA9ICR0aGlzLT5jb21taXRfZm9yX3Jldmlz
aW9uX3ByZWZpeCgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgJGNvbW1pdCA9ICR0aGlzLT5jb21taXRfZm9yX3JldmlzaW9uKCRyZXBvc2l0b3J5
X2lkLCAkcmV2aXNpb24pOworICAgICAgICByZXR1cm4gJHRoaXMtPmZvcm1hdF9zaW5nbGVfY29t
bWl0KCRjb21taXQpOwogICAgIH0KIAogICAgIHByaXZhdGUgZnVuY3Rpb24gY29tbWl0X2Zvcl9y
ZXZpc2lvbigkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSB7CkBAIC0xOTMsNiArMTk3LDE4IEBA
IGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgICAgICByZXR1cm4gJHJvdzsKICAgICB9CiAK
KyAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb25fcHJlZml4KCRyZXBvc2l0
b3J5X2lkLCAkcmV2aXNpb25fcHJlZml4KSB7CisgICAgICAgICRhbGxfYnV0X2ZpcnN0ID0gc3Vi
c3RyKCRyZXZpc2lvbl9wcmVmaXgsIDEpOworICAgICAgICBpZiAoJHJldmlzaW9uX3ByZWZpeFsw
XSA9PSAncicgJiYgY3R5cGVfZGlnaXQoJGFsbF9idXRfZmlyc3QpKQorICAgICAgICAgICAgJHJl
dmlzaW9uX3ByZWZpeCA9ICRhbGxfYnV0X2ZpcnN0OworICAgICAgICAkcm93cyA9ICR0aGlzLT5k
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNvbW1p
dF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDInLCBh
cnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25f
cHJlZml4KSAuICclJykpOworICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDApCisgICAgICAg
ICAgICBleGl0X3dpdGhfZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScg
PT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOworICAg
ICAgICBpZiAoY291bnQoJHJvd3MpID09IDIpCisgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3Io
J0FtYmlndW91c1JldmlzaW9uUHJlZml4JywgYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0
b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9wcmVmaXgpKTsKKyAgICAgICAgcmV0dXJu
ICRyb3dzWzBdOworICAgIH0KKwogICAgIHByaXZhdGUgZnVuY3Rpb24gZm9ybWF0X3NpbmdsZV9j
b21taXQoJGNvbW1pdF9yb3cpIHsKICAgICAgICAgaWYgKCEkY29tbWl0X3JvdykKICAgICAgICAg
ICAgIHJldHVybiBhcnJheSgpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3VyYXRvci5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20t
YW5hbHlzaXMtdGFzay1jb25maWd1cmF0b3IuanMKaW5kZXggM2UwOTQ2NGMwZmVlZWM0ZjEzNWRk
ZmIxYTMzNmYyMzJhMDA5OTAwMC4uNmRhYWU5NmMwZDIwOWZlNDM4OWE3YWFhMWJiYzhlYTI1NGQz
NzMxNSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21w
b25lbnRzL2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3VyYXRvci5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9tLWFuYWx5c2lzLXRh
c2stY29uZmlndXJhdG9yLmpzCkBAIC0zNTQsOSArMzU0LDEwIEBAIGNsYXNzIEN1c3RvbUFuYWx5
c2lzVGFza0NvbmZpZ3VyYXRvciBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICBjb25z
dCBjb21taXRTZXQgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwogICAgICAgICBmb3IgKGxldCByZXBv
c2l0b3J5IG9mIHJlcG9zaXRvcnlHcm91cC5yZXBvc2l0b3JpZXMoKSkgewogICAgICAgICAgICAg
bGV0IHJldmlzaW9uID0gdGhpcy5fc3BlY2lmaWVkUmV2aXNpb25zW2NvbmZpZ3VyYXRpb25OYW1l
XS5nZXQocmVwb3NpdG9yeSk7Ci0gICAgICAgICAgICBpZiAoIXJldmlzaW9uKSB7Ci0gICAgICAg
ICAgICAgICAgY29uc3QgY29tbWl0ID0gdGhpcy5fZmV0Y2hlZENvbW1pdHNbY29uZmlndXJhdGlv
bk5hbWVdLmdldChyZXBvc2l0b3J5KTsKLSAgICAgICAgICAgICAgICBpZiAoY29tbWl0KQorICAg
ICAgICAgICAgY29uc3QgY29tbWl0ID0gdGhpcy5fZmV0Y2hlZENvbW1pdHNbY29uZmlndXJhdGlv
bk5hbWVdLmdldChyZXBvc2l0b3J5KTsKKyAgICAgICAgICAgIGlmIChjb21taXQpIHsKKyAgICAg
ICAgICAgICAgICBjb25zdCBjb21taXRMYWJlbCA9IGNvbW1pdC5sYWJlbCgpOworICAgICAgICAg
ICAgICAgIGlmICghcmV2aXNpb24gfHwgY29tbWl0LnJldmlzaW9uKCkuc3RhcnRzV2l0aChyZXZp
c2lvbikgfHwgY29tbWl0TGFiZWwuc3RhcnRzV2l0aChyZXZpc2lvbikgfHwgcmV2aXNpb24uc3Rh
cnRzV2l0aChjb21taXRMYWJlbCkpCiAgICAgICAgICAgICAgICAgICAgIHJldmlzaW9uID0gY29t
bWl0LnJldmlzaW9uKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIXJldmlzaW9u
KQpAQCAtNDA1LDI1ICs0MDYsMzAgQEAgY2xhc3MgQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJh
dG9yIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgYXN5bmMgX3Jlc29sdmVSZXZpc2lvbihy
ZXBvc2l0b3J5LCByZXZpc2lvbiwgc3BlY2lmaWVkUmV2aXNpb25zLCBpbnZhbGlkUmV2aXNpb25G
b3JSZXBvc2l0b3J5LCBmZXRjaGVkQ29tbWl0cykKICAgICB7CiAgICAgICAgIGNvbnN0IGZldGNo
ZWRDb21taXQgPSBmZXRjaGVkQ29tbWl0cy5nZXQocmVwb3NpdG9yeSk7Ci0gICAgICAgIGlmIChm
ZXRjaGVkQ29tbWl0ICYmIGZldGNoZWRDb21taXQucmV2aXNpb24oKSA9PSByZXZpc2lvbikKKyAg
ICAgICAgY29uc3Qgc3BlY2lmaWVkUmV2aXNpb24gPSBzcGVjaWZpZWRSZXZpc2lvbnMuZ2V0KHJl
cG9zaXRvcnkpOworICAgICAgICBpZiAoZmV0Y2hlZENvbW1pdCAmJiBmZXRjaGVkQ29tbWl0LnJl
dmlzaW9uKCkgPT0gcmV2aXNpb24gJiYgKCFzcGVjaWZpZWRSZXZpc2lvbiB8fCBzcGVjaWZpZWRS
ZXZpc2lvbiA9PSByZXZpc2lvbikpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgZmV0
Y2hlZENvbW1pdHMuZGVsZXRlKHJlcG9zaXRvcnkpOwogICAgICAgICBsZXQgY29tbWl0cyA9IFtd
OworICAgICAgICBjb25zdCByZXZpc2lvblRvRmV0Y2ggPSBzcGVjaWZpZWRSZXZpc2lvbiB8fCBy
ZXZpc2lvbjsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGNvbW1pdHMgPSBhd2FpdCBDb21t
aXRMb2cuZmV0Y2hGb3JTaW5nbGVSZXZpc2lvbihyZXBvc2l0b3J5LCByZXZpc2lvbik7CisgICAg
ICAgICAgICBjb21taXRzID0gYXdhaXQgQ29tbWl0TG9nLmZldGNoRm9yU2luZ2xlUmV2aXNpb24o
cmVwb3NpdG9yeSwgcmV2aXNpb25Ub0ZldGNoLCB0cnVlKTsKICAgICAgICAgfSBjYXRjaCAoZXJy
b3IpIHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGVycm9yID09ICdVbmtub3duQ29tbWl0
Jyk7Ci0gICAgICAgICAgICBpZiAocmV2aXNpb24gIT0gc3BlY2lmaWVkUmV2aXNpb25zLmdldChy
ZXBvc2l0b3J5KSkKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTsKKyAgICAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGVycm9yID09ICdVbmtub3duQ29tbWl0JyB8fCBlcnJvciA9PSAnQW1i
aWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAgICAgIGlmIChyZXZpc2lvblRvRmV0Y2gg
IT0gc3BlY2lmaWVkUmV2aXNpb25zLmdldChyZXBvc2l0b3J5KSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICBpbnZhbGlkUmV2aXNpb25Gb3JSZXBvc2l0b3J5LnNldChyZXBv
c2l0b3J5LCByZXZpc2lvbik7CisgICAgICAgICAgICBpbnZhbGlkUmV2aXNpb25Gb3JSZXBvc2l0
b3J5LnNldChyZXBvc2l0b3J5LCBgIiR7cmV2aXNpb25Ub0ZldGNofSI6ICR7ZXJyb3IgPT0gJ1Vu
a25vd25Db21taXQnID8gJ0ludmFsaWQgcmV2aXNpb24nIDogJ0FtYmlndW91cyByZXZpc2lvbiBw
cmVmaXgnfWApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGNvbW1pdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgaWYgKHJldmlzaW9uICE9IHNw
ZWNpZmllZFJldmlzaW9ucy5nZXQocmVwb3NpdG9yeSkpCisgICAgICAgIGlmIChyZXZpc2lvblRv
RmV0Y2ggIT0gc3BlY2lmaWVkUmV2aXNpb25zLmdldChyZXBvc2l0b3J5KSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaW52YWxpZFJldmlzaW9uRm9yUmVwb3NpdG9yeS5kZWxldGUocmVw
b3NpdG9yeSk7CiAgICAgICAgIGZldGNoZWRDb21taXRzLnNldChyZXBvc2l0b3J5LCBjb21taXRz
WzBdKTsKKyAgICAgICAgaWYgKHJldmlzaW9uVG9GZXRjaCAhPSBjb21taXRzWzBdLnJldmlzaW9u
KCkpCisgICAgICAgICAgICB0aGlzLl91cGRhdGVDb21taXRTZXRNYXAoKTsKICAgICB9CiAKICAg
ICBfcmVuZGVyUmVwb3NpdG9yeVBhbmVzKHRyaWdnZXJhYmxlLCBlcnJvciwgcGxhdGZvcm0sIHJl
cG9zaXRvcnlHcm91cEJ5Q29uZmlndXJhdGlvbiwgc2hvd0NvbXBhcmlzb24pCkBAIC01MzYsNyAr
NTQyLDcgQEAgY2xhc3MgQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yIGV4dGVuZHMgQ29t
cG9uZW50QmFzZSB7CiAgICAgICAgICAgICBpZiAoY29tbWl0ICYmIGNvbW1pdC50ZXN0YWJpbGl0
eSgpICYmICFpbnZhbGlkUmV2aXNpb25Gb3JSZXBvc2l0b3J5LmhhcyhyZXBvc2l0b3J5KSkKICAg
ICAgICAgICAgICAgICBlbnRyaWVzLnB1c2goZWxlbWVudCgnbGknLCBgJHtjb21taXQucmVwb3Np
dG9yeSgpLm5hbWUoKX0gLSAiJHtjb21taXQubGFiZWwoKX0iOiAke2NvbW1pdC50ZXN0YWJpbGl0
eSgpfWApKTsKICAgICAgICAgICAgIGlmIChpbnZhbGlkUmV2aXNpb25Gb3JSZXBvc2l0b3J5Lmhh
cyhyZXBvc2l0b3J5KSkKLSAgICAgICAgICAgICAgICBlbnRyaWVzLnB1c2goZWxlbWVudCgnbGkn
LCBgJHtyZXBvc2l0b3J5Lm5hbWUoKX0gLSAiJHtpbnZhbGlkUmV2aXNpb25Gb3JSZXBvc2l0b3J5
LmdldChyZXBvc2l0b3J5KX0iOiBJbnZhbGlkIHJldmlzaW9uYCkpOworICAgICAgICAgICAgICAg
IGVudHJpZXMucHVzaChlbGVtZW50KCdsaScsIGAke3JlcG9zaXRvcnkubmFtZSgpfSAtICR7aW52
YWxpZFJldmlzaW9uRm9yUmVwb3NpdG9yeS5nZXQocmVwb3NpdG9yeSl9YCkpOwogICAgICAgICB9
CiAKICAgICAgICAgcmV0dXJuIGVudHJpZXM7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwppbmRleCBkOWJkNDM4ZDE1
MWIzZWNmMmRiYmRhMWEyNDBkODFhNjY1YTYyMWU4Li4xMWVlMWM5MGVmMjIzYzI1ODU3YmQyOTI1
NWNkZDFhMGUyYjgxNDEwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKQEAgLTE3MiwxMyArMTcyLDEzIEBAIGNs
YXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIHJldHVybiB0
aGlzLl9jb25zdHJ1Y3RGcm9tUmF3RGF0YShkYXRhKTsKICAgICB9CiAKLSAgICBzdGF0aWMgYXN5
bmMgZmV0Y2hGb3JTaW5nbGVSZXZpc2lvbihyZXBvc2l0b3J5LCByZXZpc2lvbikKKyAgICBzdGF0
aWMgYXN5bmMgZmV0Y2hGb3JTaW5nbGVSZXZpc2lvbihyZXBvc2l0b3J5LCByZXZpc2lvbiwgcHJl
Zml4TWF0Y2g9ZmFsc2UpCiAgICAgewogICAgICAgICBjb25zdCBjb21taXQgPSByZXBvc2l0b3J5
LmNvbW1pdEZvclJldmlzaW9uKHJldmlzaW9uKTsKICAgICAgICAgaWYgKGNvbW1pdCkKICAgICAg
ICAgICAgIHJldHVybiBbY29tbWl0XTsKIAotICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhp
cy5jYWNoZWRGZXRjaChgL2FwaS9jb21taXRzLyR7cmVwb3NpdG9yeS5pZCgpfS8ke3JldmlzaW9u
fWApOworICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jYWNoZWRGZXRjaChgL2FwaS9j
b21taXRzLyR7cmVwb3NpdG9yeS5pZCgpfS8ke3JldmlzaW9ufSR7cHJlZml4TWF0Y2ggPyAnP3By
ZWZpeC1tYXRjaD10cnVlJyA6ICcnfWApOwogICAgICAgICByZXR1cm4gdGhpcy5fY29uc3RydWN0
RnJvbVJhd0RhdGEoZGF0YSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwppbmRleCAzMjQ5
NjJhZDUzM2NhNDczNzgxZDA3NDE4YTcxMDUxNzRhNWIxNTdkLi4xYmY5NDYxNDM0ZWY1ZjVlOTNl
MjljNGE3ZjFmNTc4ODExZWIzMjk1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKQEAgLTM5NCw2ICsz
OTQsNDIgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gdGhlIGZ1
bGwgcmVzdWx0IGZvciBhIHJlcG9ydGVkIGNvbW1pdCB3aXRoIHByZWZpeC1tYXRjaCB0byBiZSBm
YWxzZSIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2
ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3Rh
dHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAg
ICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2Vi
S2l0LzIxMDk0OT9wcmVmaXgtbWF0Y2g9ZmFsc2UnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddWzFdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCByZXR1
cm4gdGhlIGZ1bGwgcmVzdWx0IGZvciBhIHJlcG9ydGVkIGNvbW1pdCB3aXRoIHByZWZpeC1tYXRj
aCB0byBiZSB0cnVlIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVw
b3J0KHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNP
TldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwor
ICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29t
bWl0cy9XZWJLaXQvMjEwOTQ5P3ByZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lv
bkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJTaG91
bGQgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiBtb3JlIHRoYW4gb25lIGNv
bW1pdHMgYXJlIGZvdW5kIGZvciBhIHJldmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAg
ICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAg
ICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzIxMDk0P3ByZWZpeC1tYXRjaD10
cnVlJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ0FtYmln
dW91c1JldmlzaW9uUHJlZml4Jyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJTaG91bGQg
cmV0dXJuICdVbmtub3duQ29tbWl0JyB3aGVuIG5vIGNvbW1pdCBpcyBmb3VuZCBmb3IgYSByZXZp
c2lvbiBwcmVmaXgiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBv
cnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7Cisg
ICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC8yMTA5MD9wcmVmaXgtbWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgIH0pOwor
CiAgICAgICAgIGl0KCJzaG91bGQgaGFuZGxlIGNvbW1pdCByZXZpc2lvbiB3aXRoIHNwYWNlIiwg
KCkgPT4gewogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAg
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKaW5kZXggODZhMTI2
MzMwMTM4MGVmMDUzYjg3YjRjMTdhMDZiMzEzODE3MTM3MC4uZDNhMDkwNGQ2YmI0NGEzNmUwZmE3
YmM2OTVmM2EyNjQxZWRhZWNjNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzCkBAIC01MzksNSArNTM5LDEyIEBA
IGRlc2NyaWJlKCdDb21taXRMb2cnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChjb21taXRzWzBdLCBuZXdDb21taXRzWzBdKTsKICAgICAgICAgfSk7CisKKyAg
ICAgICAgaXQoJ3Nob3VsZCBhbGxvdyB0byBmZXRjaCBjb21taXQgd2l0aCBwcmVmaXgnLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgICAgICBDb21taXRMb2cuZmV0Y2hGb3JTaW5nbGVSZXZpc2lvbihN
b2NrTW9kZWxzLndlYmtpdCwgJzIzNjY0MycsIHRydWUpOworICAgICAgICAgICAgY29uc3QgcmVx
dWVzdHMgPSBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
MF0udXJsLCBgL2FwaS9jb21taXRzLyR7TW9ja01vZGVscy53ZWJraXQuaWQoKX0vMjM2NjQzP3By
ZWZpeC1tYXRjaD10cnVlYCk7CisgICAgICAgIH0pCiAgICAgfSk7CiB9KTsK
</data>
<flag name="review"
          id="387864"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>