<?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>193132</bug_id>
          
          <creation_ts>2019-01-03 21:10:42 -0800</creation_ts>
          <short_desc>Refactor &apos;platforms&apos; table to contain group information.</short_desc>
          <delta_ts>2020-10-27 18:01:34 -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>New Bugs</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></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>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1491595</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-01-03 21:10:42 -0800</bug_when>
    <thetext>Refactor platform table to contain group infomation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491596</commentid>
    <comment_count>1</comment_count>
      <attachid>358307</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-01-03 21:32:22 -0800</bug_when>
    <thetext>Created attachment 358307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491597</commentid>
    <comment_count>2</comment_count>
      <attachid>358308</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-01-03 21:34:05 -0800</bug_when>
    <thetext>Created attachment 358308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493603</commentid>
    <comment_count>3</comment_count>
      <attachid>358308</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-01-10 21:04:54 -0800</bug_when>
    <thetext>Comment on attachment 358308
Patch

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

&gt; Websites/perf.webkit.org/public/admin/platforms.php:99
&gt; +    array_push($platform_group_options, array(&apos;platformgroup_id&apos; =&gt; NULL, &apos;platformgroup_name&apos; =&gt; &apos;&amp;ltNo Group&amp;gt&apos;));

Maybe just say &quot;-&quot;?

&gt; Websites/perf.webkit.org/public/admin/platforms.php:103
&gt; +        $id = $platform_row[&apos;platform_id&apos;];

Call intval here just be safe.

&gt; Websites/perf.webkit.org/public/v3/models/analysis-task.js:180
&gt; +        const fetchingMeasurementSetForOtherPlatformInSameGroupPromises = this._commitSetForOtherPlatformsInSameGroup();

This is awfully long variable name. Also, this isn&apos;t fetching measurement set so we probably shouldn&apos;t call it that.
How about commitSetsInSamePlatformGroupPromise?

&gt; Websites/perf.webkit.org/public/v3/models/analysis-task.js:198
&gt; +    _commitSetForOtherPlatformsInSameGroup()

&quot;SameGroup&quot; is a bit ambiguous here because there is also test group.
I think I&apos;d prefer call this _commitSetsInSamePlatformGroup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702173</commentid>
    <comment_count>4</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2020-10-27 18:01:34 -0700</bug_when>
    <thetext>This should have been landed long time ago.
Rebased against latest main branch and verified all unit tests are still passing.
Landed in r269083.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358307</attachid>
            <date>2019-01-03 21:32:22 -0800</date>
            <delta_ts>2019-01-03 21:34:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193132-20190103213221.patch</filename>
            <type>text/plain</type>
            <size>25917</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTY3CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCAwOTM2OTA5NzYxYTI0ZjE3ZGNmM2FhOWI3YTQyZWUxNGQyNGJlNTA1Li4xOGY2YjM3OTE2
ZmJhYzNjYTZlMmVkNGQzN2ZhZTVjNjBmNDRjZmFjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxOS0wMS0wMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciAncGxhdGZvcm1zJyAgdGFibGUgdG8gY29u
dGFpbiBncm91cCBpbmZvbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkzMTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgR3JvdXAgJ3BsYXRmb3Jtcycgc28gdGhhdCBiaXNlY3RpbmcgY2FuIHVz
ZSBjb21taXQgc2V0cyBmcm9tIG90aGVyIHBsYXRmb3JtcyB3aGljaCBhcmUgaW4gdGhlIHNhbWUg
cGxhdGZvcm0gZ3JvdXAuCisgICAgICAgIFRoaXMgd2lsbCBoZWxwIHRvIGVuaGFuY2UgdGhlIGJp
c2VjdGluZyBjYXBhYmlsaXR5IHRvIGhpZ2hlciBncmFudWxhcml0eS4KKyAgICAgICAgQWRkZWQg
YWRtaW4gcGFnZSB0byBtYW5hZ2UgcGxhdGZvcm0gZ3JvdXBzLgorICAgICAgICBVcGRhdGVkIHBs
YXRmb3JtIGFkbWluIHBhZ2UgdG8gYWxsb3cgdXBkYXRlIHBsYXRmb3JtIGdyb3VwLgorICAgICAg
ICBTUUwgcXVlcnkgdG8gdXBkYXRlIGV4aXN0aW5nIGRhdGFiYXNlOgorICAgICAgICAnJycKKyAg
ICAgICAgQkVHSU47CisgICAgICAgIENSRUFURSBUQUJMRSBwbGF0Zm9ybV9ncm91cHMgKAorICAg
ICAgICAgICAgcGxhdGZvcm1ncm91cF9pZCBzZXJpYWwgUFJJTUFSWSBLRVksCisgICAgICAgICAg
ICBwbGF0Zm9ybWdyb3VwX25hbWUgdmFyY2hhcig2NCkgTk9UIE5VTEwsCisgICAgICAgICAgICBD
T05TVFJBSU5UIHBsYXRmb3JtX2dyb3VwX25hbWVfbXVzdF9iZV91bmlxdWUgVU5JUVVFIChwbGF0
Zm9ybWdyb3VwX25hbWUpKTsKKworICAgICAgICBBTFRFUiBUQUJMRSBwbGF0Zm9ybXMgQUREIENP
TFVNTiBwbGF0Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERF
RkFVTFQgTlVMTDsKKyAgICAgICAgRU5EOworICAgICAgICAnJycKKworICAgICAgICAqIGluaXQt
ZGF0YWJhc2Uuc3FsOiBBZGRlZCAncGxhdGZvcm1fZ3JvdXAnIGNvbHVtbiB0byAncGxhdGZvcm1z
JyB0YWJsZS4KKyAgICAgICAgQWRkZWQgJ3BsYXRmb3JtX2dyb3VwcycgdGFibGUuCisgICAgICAg
ICogcHVibGljL2FkbWluL3BsYXRmb3JtLWdyb3Vwcy5waHA6IEFkZGVkIGEgcGFnZSB0byBtYW5h
Z2UgcGxhdGZvcm0gZ3JvdXBzLgorICAgICAgICAqIHB1YmxpYy9hZG1pbi9wbGF0Zm9ybXMucGhw
OiBBZGRlZCBzdXBwb3J0IHRvIHVwZGF0ZSBwbGF0Zm9ybSBncm91cCBpbiBhZG1pbiBwYWdlLgor
ICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2FkbWluLWhlYWRlci5waHA6IEFkZGVkIGxpbmsgdG8g
cGFnZSB0aGF0IG1hbmVnZXMgcGxhdGZvcm0gZ3JvdXBzLgorICAgICAgICAqIHB1YmxpYy9pbmNs
dWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHA6IEFkZGVkICdwbGF0Zm9ybUdyb3VwJyBpbiBtYW5p
ZmVzdC4KKyAgICAgICAgKiBwdWJsaWMvdjMvaW5kZXguaHRtbDogSW5jbHVkZWQgJ3BsYXRmb3Jt
LWdyb3Vwcy5qcycuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpz
OgorICAgICAgICAoQW5hbHlzaXNUYXNrLnByb3RvdHlwZS5hc3luYy5jb21taXRTZXRzRnJvbVRl
c3RHcm91cHNBbmRNZWFzdXJlbWVudFNldCk6CisgICAgICAgIEluY2x1ZGVkIG1lYXN1cmVtZW50
IGNvbW1pdCBzZXRzIGZyb20gb3RoZXIgcGxhdGZvcm1zIGluIHRoZSBzYW1lIHBsYXRmb3JtIGdy
b3VwLgorICAgICAgICAoQW5hbHlzaXNUYXNrLnByb3RvdHlwZS5fY29tbWl0U2V0Rm9yT3RoZXJQ
bGF0Zm9ybXNJblNhbWVHcm91cCk6CisgICAgICAgIEhlbHBlciBmdW5jdGlvbiB0byBmaW5kIG1l
YXN1cm1lbnQgY29tbWl0IHNldCBmb3Igb3RoZXIgcGxhdGZvcm1zIGluIHNhbWUgcGxhdGZvcm0g
Z3JvdXAuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9tYW5pZmVzdC5qczogQWRkZWQgc3Rl
cCB0byBidWlsZCAnUGxhdGZvcm1Hcm91cCcgaW5zdGFuY2VzLgorICAgICAgICAqIHB1YmxpYy92
My9tb2RlbHMvcGxhdGZvcm0tZ3JvdXAuanM6IEFkZGVkICdQbGF0Zm9ybUdyb3VwJyB0byByZXBy
ZXNlbnQgZW50cmllcyBpbiAncGxhdGZvcm1fZ3JvdXBzJyB0YWJsZS4KKyAgICAgICAgKFBsYXRm
b3JtR3JvdXApOgorICAgICAgICAoUGxhdGZvcm1Hcm91cC5wcm90b3R5cGUuYWRkUGxhdGZvcm0p
OgorICAgICAgICAoUGxhdGZvcm1Hcm91cC5wcm90b3R5cGUucGxhdGZvcm1zKToKKyAgICAgICAg
KiBwdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzOiBBZGRlZCBpdHNlbGYgdG8gJ1BsYXRmb3Jt
R3JvdXAnIGluIGNvbnN0cnVjdG9yIGlmIGl0IGJlbG9uZ3MKKyAgICAgICAgdG8gYSBncm91cC4K
KyAgICAgICAgKFBsYXRmb3JtLnByb3RvdHlwZS5ncm91cCk6IFJldHVybiB0aGUgcGxhdGZvcm0g
Z3JvdXAgb2YgY3VycmVudCBwbGF0Zm9ybS4KKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3Rp
bWUtc2VyaWVzLmpzOiBBZGRlZCBoZWxwZXIgZnVuY3Rpb24gdG8gc2hvdyB2aWV3IGJldHdlZW4g
YSBnaXZlbiB0aW1lIHJhbmdlLgorICAgICAgICAoVGltZVNlcmllcy5wcm90b3R5cGUudmlld0Jl
dHdlZW5UaW1lKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpz
OiBVcGRhdGVkIHVuaXQgdGVzdCB0byBhbHNvIHRlc3QgcGxhdGZvcm0gZ3JvdXAgaW5pdGlhbGl6
YXRpb24uCisgICAgICAgICogdG9vbHMvanMvZGF0YWJhc2UuanM6IEFkZGVkIHByZWZpeCBmb3Ig
J3BsYXRmb3JtX2dyb3VwcycuCisgICAgICAgICogdG9vbHMvanMvdjMtbW9kZWxzLmpzOiBBZGRl
ZCBpbXBvcnQgZm9yIHBsYXRmb3JtIGdyb3VwLgorCiAyMDE4LTEyLTE0ICBEZXdlaSBaaHUgIDxk
ZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIEV4dGVuZCBjb21taXRzIHRhYmxlIHRvIGNv
bnRhaW4gdGVzdGFiaWxpdHkgaW5mb3JtYXRpb24uCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
aW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggYzdiN2Q2MGJjOWMxYjEwMDQ2ODA3NzY5ZTQ1YTM3MjVm
YmEwNDQ3Yi4uZmM1MDRhM2IyYTdjMDcwMDM0OTlhZTM0NGU3MmRjMGUyNDQ4OWM2ZCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTIsNiArMTIsNyBA
QCBEUk9QIFRBQkxFIElGIEVYSVNUUyBidWlsZF9zbGF2ZXMgQ0FTQ0FERTsKIERST1AgVEFCTEUg
SUYgRVhJU1RTIGJ1aWxkZXJzIENBU0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyByZXBvc2l0
b3JpZXMgQ0FTQ0FERTsKIERST1AgVEFCTEUgSUYgRVhJU1RTIHBsYXRmb3JtcyBDQVNDQURFOwor
RFJPUCBUQUJMRSBJRiBFWElTVFMgcGxhdGZvcm1fZ3JvdXBzIENBU0NBREU7CiBEUk9QIFRBQkxF
IElGIEVYSVNUUyB0ZXN0X21ldHJpY3MgQ0FTQ0FERTsKIERST1AgVEFCTEUgSUYgRVhJU1RTIHRl
c3RzIENBU0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyByZXBvcnRzIENBU0NBREU7CkBAIC0z
NCw5ICszNSwxNSBAQCBEUk9QIFRBQkxFIElGIEVYSVNUUyBidWlsZF9yZXF1ZXN0cyBDQVNDQURF
OwogRFJPUCBUWVBFIElGIEVYSVNUUyBidWlsZF9yZXF1ZXN0X3N0YXR1c190eXBlIENBU0NBREU7
CiAKIAorQ1JFQVRFIFRBQkxFIHBsYXRmb3JtX2dyb3VwcyAoCisgICAgcGxhdGZvcm1ncm91cF9p
ZCBzZXJpYWwgUFJJTUFSWSBLRVksCisgICAgcGxhdGZvcm1ncm91cF9uYW1lIHZhcmNoYXIoNjQp
IE5PVCBOVUxMLAorICAgIENPTlNUUkFJTlQgcGxhdGZvcm1fZ3JvdXBfbmFtZV9tdXN0X2JlX3Vu
aXF1ZSBVTklRVUUgKHBsYXRmb3JtZ3JvdXBfbmFtZSkpOworCiBDUkVBVEUgVEFCTEUgcGxhdGZv
cm1zICgKICAgICBwbGF0Zm9ybV9pZCBzZXJpYWwgUFJJTUFSWSBLRVksCiAgICAgcGxhdGZvcm1f
bmFtZSB2YXJjaGFyKDY0KSBOT1QgTlVMTCwKKyAgICBwbGF0Zm9ybV9ncm91cCBpbnRlZ2VyIFJF
RkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVMTCwKICAgICBwbGF0Zm9ybV9oaWRk
ZW4gYm9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFKTsKIAogQ1JFQVRFIFRBQkxFIHJlcG9z
aXRvcmllcyAoCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2Fk
bWluL3BsYXRmb3JtLWdyb3Vwcy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2FkbWluL3BsYXRmb3JtLWdyb3Vwcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQxMzVkMmNjMzBkNGNlNTQ2
ODA3MGQzNzU5OTY2OGY1ODE1MTIxMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vcGxhdGZvcm0tZ3JvdXBzLnBocApAQCAtMCwwICsxLDI3
IEBACis8P3BocAorCityZXF1aXJlKCcuLi9pbmNsdWRlL2FkbWluLWhlYWRlci5waHAnKTsKKwor
aWYgKCRkYikgeworICAgIGlmICgkYWN0aW9uID09ICdhZGQnKSB7CisgICAgICAgIGlmICgkZGIt
Pmluc2VydF9yb3coJ3BsYXRmb3JtX2dyb3VwcycsICdwbGF0Zm9ybWdyb3VwJywgYXJyYXkoJ25h
bWUnID0+ICRfUE9TVFsnbmFtZSddKSkpIHsKKyAgICAgICAgICAgIG5vdGljZSgnSW5zZXJ0ZWQg
dGhlIG5ldyBwbGF0Zm9ybSBncm91cCcpOworICAgICAgICAgICAgcmVnZW5lcmF0ZV9tYW5pZmVz
dCgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG5vdGljZSgnQ291bGQgbm90IGFkZCB0
aGUgcGxhdGZvcm0gZ3JvdXAuJyk7CisgICAgfSBlbHNlIGlmICgkYWN0aW9uID09ICd1cGRhdGUn
KSB7CisgICAgICAgIGlmICh1cGRhdGVfZmllbGQoJ3BsYXRmb3JtX2dyb3VwcycsICdwbGF0Zm9y
bWdyb3VwJywgJ25hbWUnKSkKKyAgICAgICAgICAgIHJlZ2VuZXJhdGVfbWFuaWZlc3QoKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgbm90aWNlKCdJbnZhbGlkIHBhcmFtZXRlcnMuJyk7Cisg
ICAgfQorCisgICAgJHBhZ2UgPSBuZXcgQWRtaW5pc3RyYXRpdmVQYWdlKCRkYiwgJ3BsYXRmb3Jt
X2dyb3VwcycsICdwbGF0Zm9ybWdyb3VwJywgYXJyYXkoJ25hbWUnID0+IGFycmF5KCdzaXplJyA9
PiA1MCwgJ2VkaXRpbmdfbW9kZScgPT4gJ3N0cmluZycpKSk7CisKKyAgICAkcGFnZS0+cmVuZGVy
X3RhYmxlKCduYW1lJyk7CisgICAgJHBhZ2UtPnJlbmRlcl9mb3JtX3RvX2FkZCgpOworfQorCity
ZXF1aXJlKCcuLi9pbmNsdWRlL2FkbWluLWZvb3Rlci5waHAnKTsKKworPz4KZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vcGxhdGZvcm1zLnBocCBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vcGxhdGZvcm1zLnBocAppbmRleCA1
YzBiOWJmYWEwM2JmOTRiZGZhZGI3ZWE1NzE1NWI5NGE2YmYxYjc2Li43YjVjMjAxNjNlMTUwYWQ2
NDNjN2U1MGQ4MmU3ODQwYzg1MGEzZjRiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2FkbWluL3BsYXRmb3Jtcy5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9hZG1pbi9wbGF0Zm9ybXMucGhwCkBAIC01OSw3ICs1OSw4IEBAIGZ1bmN0
aW9uIG1lcmdlX3BsYXRmb3JtcygkcGxhdGZvcm1fdG9fbWVyZ2UsICRkZXN0aW5hdGlvbl9wbGF0
Zm9ybSkgewogaWYgKCRkYikgewogICAgIGlmICgkYWN0aW9uID09ICd1cGRhdGUnKSB7CiAgICAg
ICAgIGlmICh1cGRhdGVfZmllbGQoJ3BsYXRmb3JtcycsICdwbGF0Zm9ybScsICduYW1lJykKLSAg
ICAgICAgICAgIHx8IHVwZGF0ZV9maWVsZCgncGxhdGZvcm1zJywgJ3BsYXRmb3JtJywgJ2hpZGRl
bicpKQorICAgICAgICAgICAgfHwgdXBkYXRlX2ZpZWxkKCdwbGF0Zm9ybXMnLCAncGxhdGZvcm0n
LCAnaGlkZGVuJykKKyAgICAgICAgICAgIHx8IHVwZGF0ZV9maWVsZCgncGxhdGZvcm1zJywgJ3Bs
YXRmb3JtJywgJ2dyb3VwJykpCiAgICAgICAgICAgICByZWdlbmVyYXRlX21hbmlmZXN0KCk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIG5vdGljZSgnSW52YWxpZCBwYXJhbWV0ZXJzLicpOwpA
QCAtOTQsOSArOTUsMzcgQEAgRU5EOwogICAgICAgICByZXR1cm4gYXJyYXkoJGNvbnRlbnQpOwog
ICAgIH0KIAorICAgICRwbGF0Zm9ybV9ncm91cF9vcHRpb25zID0gJGRiLT5mZXRjaF90YWJsZSgn
cGxhdGZvcm1fZ3JvdXBzJywgJ3BsYXRmb3JtZ3JvdXBfbmFtZScpOworICAgIGFycmF5X3B1c2go
JHBsYXRmb3JtX2dyb3VwX29wdGlvbnMsIGFycmF5KCdwbGF0Zm9ybWdyb3VwX2lkJyA9PiBOVUxM
LCAncGxhdGZvcm1ncm91cF9uYW1lJyA9PiAnJmx0Tm8gR3JvdXAmZ3QnKSk7CisgICAgZnVuY3Rp
b24gcGxhdGZvcm1fZ3JvdXBfbGlzdCgkcGxhdGZvcm1fcm93KQorICAgIHsKKyAgICAgICAgZ2xv
YmFsICRwbGF0Zm9ybV9ncm91cF9vcHRpb25zOworICAgICAgICAkaWQgPSAkcGxhdGZvcm1fcm93
WydwbGF0Zm9ybV9pZCddOworICAgICAgICAkcGxhdGZvcm1fZ3JvdXBfaWQgPSAkcGxhdGZvcm1f
cm93WydwbGF0Zm9ybV9ncm91cCddOworICAgICAgICAkY29udGVudCA9IDw8PCBFTkQKKzxmb3Jt
IG1ldGhvZD0iUE9TVCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaWQiIHZhbHVlPSIkaWQi
PgorPHNlbGVjdCBuYW1lPSJncm91cCI+CitFTkQ7CisKKyAgICAgICAgZm9yZWFjaCAoJHBsYXRm
b3JtX2dyb3VwX29wdGlvbnMgYXMgJiRncm91cF9vcHRpb24pIHsKKyAgICAgICAgICAgICRzZWxl
Y3Rpb25fc3RyaW5nID0gJGdyb3VwX29wdGlvblsncGxhdGZvcm1ncm91cF9pZCddID09ICRwbGF0
Zm9ybV9ncm91cF9pZCA/ICIgc2VsZWN0ZWQiIDogIiI7CisgICAgICAgICAgICAkY29udGVudCAu
PSA8PDwgRU5ECis8b3B0aW9uIHZhbHVlPSJ7JGdyb3VwX29wdGlvblsncGxhdGZvcm1ncm91cF9p
ZCddfSJ7JHNlbGVjdGlvbl9zdHJpbmd9PnskZ3JvdXBfb3B0aW9uWydwbGF0Zm9ybWdyb3VwX25h
bWUnXX08L29wdGlvbj4KK0VORDsKKyAgICAgICAgfQorCisgICAgICAgICRjb250ZW50IC49IDw8
PCBFTkQKKzwvc2VsZWN0PgorPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9ImFjdGlvbiIgdmFs
dWU9InVwZGF0ZSI+VXBkYXRlPC9idXR0b24+Cis8L2Zvcm0+CitFTkQ7CisgICAgICAgIHJldHVy
biBhcnJheSgkY29udGVudCk7CisgICAgfQorCiAgICAgJHBhZ2UgPSBuZXcgQWRtaW5pc3RyYXRp
dmVQYWdlKCRkYiwgJ3BsYXRmb3JtcycsICdwbGF0Zm9ybScsIGFycmF5KAogICAgICAgICAnbmFt
ZScgPT4gYXJyYXkoJ2VkaXRpbmdfbW9kZScgPT4gJ3N0cmluZycpLAogICAgICAgICAnaGlkZGVu
JyA9PiBhcnJheSgnZWRpdGluZ19tb2RlJyA9PiAnYm9vbGVhbicpLAorICAgICAgICAncGxhdGZv
cm0gZ3JvdXAnID0+IGFycmF5KCdjdXN0b20nID0+IGZ1bmN0aW9uICgkcGxhdGZvcm1fcm93KSB7
IHJldHVybiBwbGF0Zm9ybV9ncm91cF9saXN0KCRwbGF0Zm9ybV9yb3cpOyB9KSwKICAgICAgICAg
J21lcmdlIGludG8nID0+IGFycmF5KCdjdXN0b20nID0+IGZ1bmN0aW9uICgkcGxhdGZvcm1fcm93
KSB7IHJldHVybiBtZXJnZV9saXN0KCRwbGF0Zm9ybV9yb3cpOyB9KSwKICAgICApKTsKIApkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2FkbWluLWhl
YWRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYWRtaW4t
aGVhZGVyLnBocAppbmRleCBjNGQzN2JmMGQ0YjE2NGQwYzZjMmRlZmFlMjNmYmQzMWY0NTgyNDhh
Li41OGE3OGVhNzRiMjY0MDE1Y2E5MThlZmViNDliMTEyMDdiMThjZDlmIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYWRtaW4taGVhZGVyLnBocAor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYWRtaW4taGVhZGVy
LnBocApAQCAtMTUsNiArMTUsNyBAQCByZXF1aXJlX29uY2UoJ21hbmlmZXN0LWdlbmVyYXRvci5w
aHAnKTsKIDxoMT48YSBocmVmPSIvIj5XZWJLaXQgUGVyZiBNb25pdG9yPC9hPjwvaDE+CiA8dWw+
CiAgICAgPGxpPjxhIGhyZWY9Ii9hZG1pbi9wbGF0Zm9ybXMiPlBsYXRmb3JtczwvYT48L2xpPgor
ICAgIDxsaT48YSBocmVmPSIvYWRtaW4vcGxhdGZvcm0tZ3JvdXBzIj5QbGF0Zm9ybSBHcm91cHM8
L2E+PC9saT4KICAgICA8bGk+PGEgaHJlZj0iL2FkbWluL3Rlc3RzIj5UZXN0czwvYT48L2xpPgog
ICAgIDxsaT48YSBocmVmPSIvYWRtaW4vYWdncmVnYXRvcnMiPkFnZ3JlZ2F0b3JzPC9hPjwvbGk+
CiAgICAgPGxpPjxhIGhyZWY9Ii9hZG1pbi9idWlsZGVycyI+QnVpbGRlcnM8L2E+PC9saT4KZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9tYW5pZmVz
dC1nZW5lcmF0b3IucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRl
L21hbmlmZXN0LWdlbmVyYXRvci5waHAKaW5kZXggNDQ2ZmFlN2Q4YjMxOTQzNzk5MGI3ZDMwNTU4
YTBiYjUzZGMyZGMyZC4uNjAyMzdmMzJlNmYxNDU0ZDExODU2ZjEyZWFlM2E4MDc0MWQ1ZjU1YiAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL21hbmlm
ZXN0LWdlbmVyYXRvci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9p
bmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKQEAgLTMzLDEyICszMywxNCBAQCBjbGFzcyBN
YW5pZmVzdEdlbmVyYXRvciB7CiAgICAgICAgICRwbGF0Zm9ybXMgPSAob2JqZWN0KSR0aGlzLT5w
bGF0Zm9ybXMoJHBsYXRmb3JtX3RhYmxlLCBmYWxzZSk7CiAgICAgICAgICRkYXNoYm9hcmQgPSAo
b2JqZWN0KSR0aGlzLT5wbGF0Zm9ybXMoJHBsYXRmb3JtX3RhYmxlLCB0cnVlKTsKICAgICAgICAg
JHJlcG9zaXRvcmllcyA9IChvYmplY3QpJHRoaXMtPnJlcG9zaXRvcmllcygkcmVwb3NpdG9yaWVz
X3RhYmxlLCAkcmVwb3NpdG9yaWVzX3dpdGhfY29tbWl0KTsKKyAgICAgICAgJHBsYXRmb3JtX2dy
b3VwcyA9IChvYmplY3QpJHRoaXMtPnBsYXRmb3JtX2dyb3VwcygpOwogCiAgICAgICAgICR0aGlz
LT5tYW5pZmVzdCA9IGFycmF5KAogICAgICAgICAgICAgJ3NpdGVUaXRsZScgPT4gY29uZmlnKCdz
aXRlVGl0bGUnLCAnUGVyZm9ybWFuY2UgRGFzaGJvYXJkJyksCiAgICAgICAgICAgICAndGVzdHMn
ID0+ICYkdGVzdHMsCiAgICAgICAgICAgICAnbWV0cmljcycgPT4gJiRtZXRyaWNzLAogICAgICAg
ICAgICAgJ2FsbCcgPT4gJiRwbGF0Zm9ybXMsCisgICAgICAgICAgICAncGxhdGZvcm1Hcm91cHMn
ID0+ICYkcGxhdGZvcm1fZ3JvdXBzLAogICAgICAgICAgICAgJ2Rhc2hib2FyZCcgPT4gJiRkYXNo
Ym9hcmQsCiAgICAgICAgICAgICAncmVwb3NpdG9yaWVzJyA9PiAmJHJlcG9zaXRvcmllcywKICAg
ICAgICAgICAgICdidWlsZGVycycgPT4gKG9iamVjdCkkdGhpcy0+YnVpbGRlcnMoKSwKQEAgLTEx
NSw3ICsxMTcsNiBAQCBjbGFzcyBNYW5pZmVzdEdlbmVyYXRvciB7CiAgICAgICAgICAgICAgICAg
YXJyYXlfcHVzaCgkY3VycmVudF9wbGF0Zm9ybV9lbnRyeVsnbGFzdF9tb2RpZmllZCddLCBpbnR2
YWwoJG1ldHJpY19yb3dbJ2xhc3RfbW9kaWZpZWQnXSkpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgICRjb25maWd1cmF0aW9ucyA9IGFycmF5KCk7CiAKICAgICAgICAgJHBsYXRm
b3JtcyA9IGFycmF5KCk7CiAgICAgICAgIGlmICgkcGxhdGZvcm1fdGFibGUpIHsKQEAgLTEyNyw2
ICsxMjgsNyBAQCBjbGFzcyBNYW5pZmVzdEdlbmVyYXRvciB7CiAgICAgICAgICAgICAgICAgICAg
ICRwbGF0Zm9ybXNbJGlkXSA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUn
ID0+ICRwbGF0Zm9ybV9yb3dbJ3BsYXRmb3JtX25hbWUnXSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICdtZXRyaWNzJyA9PiAkcGxhdGZvcm1fbWV0cmljc1skaWRdWydtZXRyaWNzJ10sCisgICAg
ICAgICAgICAgICAgICAgICAgICAnZ3JvdXAnID0+ICRwbGF0Zm9ybV9yb3dbJ3BsYXRmb3JtX2dy
b3VwJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAnbGFzdE1vZGlmaWVkJyA9PiAkcGxhdGZv
cm1fbWV0cmljc1skaWRdWydsYXN0X21vZGlmaWVkJ10pOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KQEAgLTEzNCw2ICsxMzYsMTYgQEAgY2xhc3MgTWFuaWZlc3RHZW5lcmF0b3Ig
ewogICAgICAgICByZXR1cm4gJHBsYXRmb3JtczsKICAgICB9CiAKKyAgICBwcml2YXRlIGZ1bmN0
aW9uIHBsYXRmb3JtX2dyb3VwcygpIHsKKyAgICAgICAgJHBsYXRmb3JtX2dyb3Vwc190YWJsZSA9
ICR0aGlzLT5kYi0+ZmV0Y2hfdGFibGUoJ3BsYXRmb3JtX2dyb3VwcycpOworICAgICAgICBpZiAo
ISRwbGF0Zm9ybV9ncm91cHNfdGFibGUpCisgICAgICAgICAgICByZXR1cm4gYXJyYXkoKTsKKyAg
ICAgICAgJHBsYXRmb3JtX2dyb3VwcyA9IGFycmF5KCk7CisgICAgICAgIGZvcmVhY2ggKCRwbGF0
Zm9ybV9ncm91cHNfdGFibGUgYXMgJiRyb3cpCisgICAgICAgICAgICAkcGxhdGZvcm1fZ3JvdXBz
WyRyb3dbJ3BsYXRmb3JtZ3JvdXBfaWQnXV0gPSBhcnJheSgnbmFtZScgPT4gJHJvd1sncGxhdGZv
cm1ncm91cF9uYW1lJ10pOworICAgICAgICByZXR1cm4gJHBsYXRmb3JtX2dyb3VwczsKKyAgICB9
CisKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlcG9zaXRvcmllcygkcmVwb3NpdG9yaWVzX3RhYmxl
LCAkcmVwb3NpdG9yaWVzX3dpdGhfY29tbWl0KSB7CiAgICAgICAgICRyZXBvc2l0b3JpZXMgPSBh
cnJheSgpOwogICAgICAgICBpZiAoISRyZXBvc2l0b3JpZXNfdGFibGUpCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2luZGV4Lmh0bWwgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2luZGV4Lmh0bWwKaW5kZXggZTczMTA3N2Y2ZWJlMDA0
MDdhZGIwNjhjN2ZmY2JmNjFlYTY2Y2RjYy4uZjUzMTAwM2VkNWU2NzM1MDllNDM3ZTQ4MTFiYjA5
ZjhhYzMzNzJkMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9pbmRleC5odG1sCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5k
ZXguaHRtbApAQCAtNTYsNiArNTYsNyBAQCBSdW4gdG9vbHMvYnVuZGxlLXYzLXNjcmlwdHMgdG8g
c3BlZWQgdXAgdGhlIGxvYWQgdGltZSBmb3IgcHJvZHVjdGlvbi5gKTsKICAgICAgICAgPHNjcmlw
dCBzcmM9Im1vZGVscy9kYXRhLW1vZGVsLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBz
cmM9Im1vZGVscy9jb21taXQtbG9nLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9
Im1vZGVscy9wbGF0Zm9ybS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtb2Rl
bHMvcGxhdGZvcm0tZ3JvdXAuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0ibW9k
ZWxzL2J1aWxkZXIuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0ibW9kZWxzL3Rl
c3QuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0ibW9kZWxzL21ldHJpYy5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9hbmFseXNpcy10YXNrLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcwppbmRleCBkYmI3YzJlMDkwYTY2MDdjNTMwZjlk
ZDg5OTg3YWIzNDUyMjMyODBkLi4zMDA5YTZlMGEwMjQxYjEzMzBlNGY4OWEzODczYWU4OWIzYTNi
N2IzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9hbmFseXNpcy10YXNrLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMKQEAgLTE2OSw3ICsxNjksNiBAQCBjbGFzcyBBbmFs
eXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIGFzeW5jIGNvbW1pdFNldHNG
cm9tVGVzdEdyb3Vwc0FuZE1lYXN1cmVtZW50U2V0KCkKICAgICB7Ci0KICAgICAgICAgY29uc3Qg
cGxhdGZvcm0gPSB0aGlzLnBsYXRmb3JtKCk7CiAgICAgICAgIGNvbnN0IG1ldHJpYyA9IHRoaXMu
bWV0cmljKCk7CiAgICAgICAgIGlmICghcGxhdGZvcm0gfHwgIW1ldHJpYykKQEAgLTE3OCw2ICsx
NzcsNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAg
ICAgY29uc3QgbGFzdE1vZGlmaWVkID0gcGxhdGZvcm0ubGFzdE1vZGlmaWVkKG1ldHJpYyk7CiAg
ICAgICAgIGNvbnN0IG1lYXN1cmVtZW50U2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldChwbGF0
Zm9ybS5pZCgpLCBtZXRyaWMuaWQoKSwgbGFzdE1vZGlmaWVkKTsKICAgICAgICAgY29uc3QgZmV0
Y2hpbmdNZWFzdXJlbWVudFNldFByb21pc2UgPSBtZWFzdXJlbWVudFNldC5mZXRjaEJldHdlZW4o
dGhpcy5zdGFydFRpbWUoKSwgdGhpcy5lbmRUaW1lKCkpOworICAgICAgICBjb25zdCBmZXRjaGlu
Z01lYXN1cmVtZW50U2V0Rm9yT3RoZXJQbGF0Zm9ybUluU2FtZUdyb3VwUHJvbWlzZXMgPSB0aGlz
Ll9jb21taXRTZXRGb3JPdGhlclBsYXRmb3Jtc0luU2FtZUdyb3VwKCk7CiAKICAgICAgICAgY29u
c3QgYWxsVGVzdEdyb3Vwc0luVGFzayA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGhp
cy5pZCgpKTsKICAgICAgICAgY29uc3QgYWxsQ29tbWl0U2V0c0luVGFzayA9IG5ldyBTZXQ7CkBA
IC0xODksOCArMTg5LDI3IEBAIGNsYXNzIEFuYWx5c2lzVGFzayBleHRlbmRzIExhYmVsZWRPYmpl
Y3QgewogICAgICAgICBjb25zdCBzZXJpZXMgPSBtZWFzdXJlbWVudFNldC5mZXRjaGVkVGltZVNl
cmllcygnY3VycmVudCcsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIGNvbnN0IHN0YXJ0UG9pbnQg
PSBzZXJpZXMuZmluZEJ5SWQodGhpcy5zdGFydE1lYXN1cmVtZW50SWQoKSk7CiAgICAgICAgIGNv
bnN0IGVuZFBvaW50ID0gc2VyaWVzLmZpbmRCeUlkKHRoaXMuZW5kTWVhc3VyZW1lbnRJZCgpKTsK
KyAgICAgICAgY29uc3QgY29tbWl0U2V0TGlzdCA9IEFycmF5LmZyb20oc2VyaWVzLnZpZXdCZXR3
ZWVuUG9pbnRzKHN0YXJ0UG9pbnQsIGVuZFBvaW50KSkubWFwKChwb2ludCkgPT4gcG9pbnQuY29t
bWl0U2V0KCkpOworICAgICAgICBjb25zdCBhcnJheU9mQ29tbWl0U2V0TGlzdCA9IGF3YWl0IFBy
b21pc2UuYWxsKGZldGNoaW5nTWVhc3VyZW1lbnRTZXRGb3JPdGhlclBsYXRmb3JtSW5TYW1lR3Jv
dXBQcm9taXNlcyk7CisKKyAgICAgICAgcmV0dXJuIFsuLi5jb21taXRTZXRMaXN0LmNvbmNhdCgu
Li5hcnJheU9mQ29tbWl0U2V0TGlzdCksIC4uLmFsbENvbW1pdFNldHNJblRhc2tdOworICAgIH0K
IAotICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzZXJpZXMudmlld0JldHdlZW5Qb2ludHMoc3Rh
cnRQb2ludCwgZW5kUG9pbnQpKS5tYXAoKHBvaW50KSA9PiBwb2ludC5jb21taXRTZXQoKSk7Cisg
ICAgX2NvbW1pdFNldEZvck90aGVyUGxhdGZvcm1zSW5TYW1lR3JvdXAoKQorICAgIHsKKyAgICAg
ICAgY29uc3QgbWV0cmljID0gdGhpcy5tZXRyaWMoKTsKKyAgICAgICAgaWYgKCFtZXRyaWMgfHwg
IXRoaXMucGxhdGZvcm0oKSB8fCAhdGhpcy5wbGF0Zm9ybSgpLmdyb3VwKCkpCisgICAgICAgICAg
ICByZXR1cm4gW107CisgICAgICAgIGNvbnN0IG90aGVyUGxhdGZvcm1zID0gdGhpcy5wbGF0Zm9y
bSgpLmdyb3VwKCkucGxhdGZvcm1zKCkuZmlsdGVyKChwbGF0Zm9ybSkgPT4gcGxhdGZvcm0gIT0g
dGhpcy5wbGF0Zm9ybSgpKTsKKyAgICAgICAgcmV0dXJuIG90aGVyUGxhdGZvcm1zLm1hcChhc3lu
YyAocGxhdGZvcm0pID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGxhc3RNb2RpZmllZCA9IHBsYXRm
b3JtLmxhc3RNb2RpZmllZChtZXRyaWMpOworICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1lbnRT
ZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KHBsYXRmb3JtLmlkKCksIG1ldHJpYy5pZCgpLCBs
YXN0TW9kaWZpZWQpOworICAgICAgICAgICAgYXdhaXQgbWVhc3VyZW1lbnRTZXQuZmV0Y2hCZXR3
ZWVuKHRoaXMuc3RhcnRUaW1lKCksIHRoaXMuZW5kVGltZSgpKTsKKyAgICAgICAgICAgIGNvbnN0
IHNlcmllcyA9IG1lYXN1cmVtZW50U2V0LmZldGNoZWRUaW1lU2VyaWVzKCdjdXJyZW50JywgZmFs
c2UsIGZhbHNlKTsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXNWaWV3ID0gc2VyaWVzLnZp
ZXdCZXR3ZWVuVGltZSh0aGlzLnN0YXJ0VGltZSgpLCB0aGlzLmVuZFRpbWUoKSk7CisKKyAgICAg
ICAgICAgIHJldHVybiB0aW1lU2VyaWVzVmlldyA/IEFycmF5LmZyb20odGltZVNlcmllc1ZpZXcp
Lm1hcCgocG9pbnQpID0+IHBvaW50LmNvbW1pdFNldCgpKSA6IFtdOworICAgICAgICB9KTsKICAg
ICB9CiAKICAgICBzdGF0aWMgY2F0ZWdvcmllcygpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tYW5pZmVzdC5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0LmpzCmluZGV4IDA5YWVhNWM3OGM4
NDI1YjBmODk3ODQ2ZTM3YjlkNDhiOGZjODBhYjguLmQzMWU5NGY0M2FhMmY3MGVlNjBlODNhMjY4
MGJkMWNhZjJkNjAxNWEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL21hbmlmZXN0LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0LmpzCkBAIC0xMCw2ICsxMCw3IEBAIGNsYXNzIE1hbmlm
ZXN0IHsKICAgICAgICAgQ29tbWl0TG9nLmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgIE1ldHJp
Yy5jbGVhclN0YXRpY01hcCgpOwogICAgICAgICBQbGF0Zm9ybS5jbGVhclN0YXRpY01hcCgpOwor
ICAgICAgICBQbGF0Zm9ybUdyb3VwLmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgIFJlcG9zaXRv
cnkuY2xlYXJTdGF0aWNNYXAoKTsKICAgICAgICAgQ29tbWl0U2V0LmNsZWFyU3RhdGljTWFwKCk7
CiAgICAgICAgIFRlc3QuY2xlYXJTdGF0aWNNYXAoKTsKQEAgLTUwLDEyICs1MSwxNCBAQCBjbGFz
cyBNYW5pZmVzdCB7CiAgICAgICAgICAgICByYXcudGVzdCA9IFRlc3QuZmluZEJ5SWQocmF3LnRl
c3QpOwogICAgICAgICB9KTsKIAorICAgICAgICBidWlsZE9iamVjdHNGcm9tSWRNYXAocmF3UmVz
cG9uc2UucGxhdGZvcm1Hcm91cHMsIFBsYXRmb3JtR3JvdXApOwogICAgICAgICBidWlsZE9iamVj
dHNGcm9tSWRNYXAocmF3UmVzcG9uc2UuYWxsLCBQbGF0Zm9ybSwgKHJhdykgPT4gewogICAgICAg
ICAgICAgcmF3Lmxhc3RNb2RpZmllZEJ5TWV0cmljID0ge307CiAgICAgICAgICAgICByYXcubGFz
dE1vZGlmaWVkLmZvckVhY2goKGxhc3RNb2RpZmllZCwgaW5kZXgpID0+IHsKICAgICAgICAgICAg
ICAgICByYXcubGFzdE1vZGlmaWVkQnlNZXRyaWNbcmF3Lm1ldHJpY3NbaW5kZXhdXSA9IGxhc3RN
b2RpZmllZDsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmF3Lm1ldHJpY3MgPSByYXcu
bWV0cmljcy5tYXAoKGlkKSA9PiB7IHJldHVybiBNZXRyaWMuZmluZEJ5SWQoaWQpOyB9KTsKKyAg
ICAgICAgICAgIHJhdy5ncm91cCA9IFBsYXRmb3JtR3JvdXAuZmluZEJ5SWQocmF3Lmdyb3VwKTsK
ICAgICAgICAgfSk7CiAgICAgICAgIGJ1aWxkT2JqZWN0c0Zyb21JZE1hcChyYXdSZXNwb25zZS5i
dWlsZGVycywgQnVpbGRlcik7CiAgICAgICAgIGJ1aWxkT2JqZWN0c0Zyb21JZE1hcChyYXdSZXNw
b25zZS5yZXBvc2l0b3JpZXMsIFJlcG9zaXRvcnkpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcGxhdGZvcm0tZ3JvdXAuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS1ncm91cC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43YWU5ZDYzMDIxMTMxNDkxM2E3ZTIyNDBiOWFjMWZiODZiYTZjZjYxCi0tLSAvZGV2
L251bGwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcGxh
dGZvcm0tZ3JvdXAuanMKQEAgLTAsMCArMSwxNSBAQAorJ3VzZSBzdHJpY3QnOworCitjbGFzcyBQ
bGF0Zm9ybUdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CisgICAgY29uc3RydWN0b3IoaWQs
IG9iamVjdCkKKyAgICB7CisgICAgICAgIHN1cGVyKGlkLCBvYmplY3QpOworICAgICAgICB0aGlz
LmVuc3VyZU5hbWVkU3RhdGljTWFwKCduYW1lJylbb2JqZWN0Lm5hbWVdID0gdGhpczsKKyAgICAg
ICAgdGhpcy5fcGxhdGZvcm1zID0gbmV3IFNldDsKKyAgICB9CisgICAgYWRkUGxhdGZvcm0ocGxh
dGZvcm0pIHt0aGlzLl9wbGF0Zm9ybXMuYWRkKHBsYXRmb3JtKTt9CisgICAgcGxhdGZvcm1zKCkg
eyByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9wbGF0Zm9ybXMpOyB9Cit9CisKK2lmICh0eXBlb2Yg
bW9kdWxlICE9ICd1bmRlZmluZWQnKQorICAgIG1vZHVsZS5leHBvcnRzLlBsYXRmb3JtR3JvdXAg
PSBQbGF0Zm9ybUdyb3VwOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvcGxhdGZvcm0uanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9wbGF0Zm9ybS5qcwppbmRleCBjNTRiNjVhMWZhYjU0MzkxNmQ2YjlkMzkw
MGFmNjhhYTE3ZmNiODgyLi5mMDFkYzI1ZmFkNmI5MzQwZmYxM2E1OTFlYjgxZTdkNWMyNWZkYzJm
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9w
bGF0Zm9ybS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy9wbGF0Zm9ybS5qcwpAQCAtMTIsNiArMTIsMTAgQEAgY2xhc3MgUGxhdGZvcm0gZXh0ZW5kcyBM
YWJlbGVkT2JqZWN0IHsKIAogICAgICAgICBmb3IgKHZhciBtZXRyaWMgb2YgdGhpcy5fbWV0cmlj
cykKICAgICAgICAgICAgIG1ldHJpYy5hZGRQbGF0Zm9ybSh0aGlzKTsKKworICAgICAgICB0aGlz
Ll9ncm91cCA9IG9iamVjdC5ncm91cDsKKyAgICAgICAgaWYgKHRoaXMuX2dyb3VwKQorICAgICAg
ICAgICAgdGhpcy5fZ3JvdXAuYWRkUGxhdGZvcm0odGhpcyk7CiAgICAgfQogCiAgICAgc3RhdGlj
IGZpbmRCeU5hbWUobmFtZSkKQEAgLTQyLDYgKzQ2LDggQEAgY2xhc3MgUGxhdGZvcm0gZXh0ZW5k
cyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgY29uc29sZS5hc3NlcnQobWV0cmljIGluc3RhbmNl
b2YgTWV0cmljKTsKICAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RNb2RpZmllZEJ5TWV0cmljW21l
dHJpYy5pZCgpXTsKICAgICB9CisKKyAgICBncm91cCgpIHsgcmV0dXJuIHRoaXMuX2dyb3VwOyB9
CiB9CiAKIGlmICh0eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKQpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90aW1lLXNlcmllcy5qcwpp
bmRleCAyZjc2ZDUzYzk4NDNjYzUxMzg4ZWQ5ZTIzZDJiN2Q0OWFhZTg5MDUwLi45Mzg4OWE2YzNh
ZmY3MmI1NDJlNjM5YjU2YjRjNmQ2MTQ2YzY5ZDZmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90aW1lLXNlcmllcy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90aW1lLXNlcmllcy5qcwpAQCAtNzEs
NiArNzEsMTkgQEAgY2xhc3MgVGltZVNlcmllcyB7CiAgICAgZmluZEJ5SWQoaWQpIHsgcmV0dXJu
IHRoaXMuX2RhdGEuZmluZChmdW5jdGlvbiAocG9pbnQpIHsgcmV0dXJuIHBvaW50LmlkID09IGlk
IH0pOyB9CiAKICAgICBmaW5kUG9pbnRBZnRlclRpbWUodGltZSkgeyByZXR1cm4gdGhpcy5fZGF0
YS5maW5kKGZ1bmN0aW9uIChwb2ludCkgeyByZXR1cm4gcG9pbnQudGltZSA+PSB0aW1lOyB9KTsg
fQorICAgIHZpZXdCZXR3ZWVuVGltZShzdGFydFRpbWUsIGVuZFRpbWUpCisgICAgeworICAgICAg
ICBjb25zdCBzdGFydFBvaW50ID0gdGhpcy5maW5kUG9pbnRBZnRlclRpbWUoc3RhcnRUaW1lKTsK
KyAgICAgICAgaWYgKCFzdGFydFBvaW50KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAg
ICAgIGxldCBlbmRQb2ludCA9IHRoaXMuZmluZFBvaW50QWZ0ZXJUaW1lKGVuZFRpbWUpOworICAg
ICAgICBpZiAoIWVuZFBvaW50KQorICAgICAgICAgICAgZW5kUG9pbnQgPSB0aGlzLmxhc3RQb2lu
dCgpOworICAgICAgICBlbHNlIGlmIChlbmRQb2ludC50aW1lID4gZW5kVGltZSkKKyAgICAgICAg
ICAgIGVuZFBvaW50ID0gdGhpcy5wcmV2aW91c1BvaW50KGVuZFBvaW50KTsKKworICAgICAgICBy
ZXR1cm4gdGhpcy52aWV3QmV0d2VlblBvaW50cyhzdGFydFBvaW50LCBlbmRQb2ludCk7CisgICAg
fQogCiAgICAgdmlld0JldHdlZW5Qb2ludHMoZmlyc3RQb2ludCwgbGFzdFBvaW50KQogICAgIHsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1h
bmlmZXN0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktbWFuaWZlc3QtdGVzdHMuanMKaW5kZXggMjc1YTQyOTc5NGFkYzNiNGNlYTAwNTFiMTZlMWZi
YzVlZjcyM2RkMS4uMTI5YzVjNDIzY2RjNjg5MjZhYjEyOWI3ZDg5ODc2M2ViNjk5ODIzMiAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZl
c3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktbWFuaWZlc3QtdGVzdHMuanMKQEAgLTE0LDcgKzE0LDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFu
aWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgaXQoInNob3VsZCBnZW5lcmF0ZSBhbiBlbXB0eSBt
YW5pZmVzdCB3aGVuIGRhdGFiYXNlIGlzIGVtcHR5IiwgKCkgPT4gewogICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL21hbmlmZXN0JykudGhlbigobWFu
aWZlc3QpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMobWFu
aWZlc3QpLnNvcnQoKSwgWydhbGwnLCAnYnVnVHJhY2tlcnMnLCAnYnVpbGRlcnMnLCAnZGFzaGJv
YXJkJywgJ2Rhc2hib2FyZHMnLAotICAgICAgICAgICAgICAgICdmaWxlVXBsb2FkU2l6ZUxpbWl0
JywgJ21ldHJpY3MnLCAncmVwb3NpdG9yaWVzJywgJ3NpdGVUaXRsZScsICdzdGF0dXMnLCAnc3Vt
bWFyeVBhZ2VzJywgJ3Rlc3RBZ2VUb2xlcmFuY2VJbkhvdXJzJywgJ3Rlc3RzJywgJ3RyaWdnZXJh
YmxlcyddKTsKKyAgICAgICAgICAgICAgICAnZmlsZVVwbG9hZFNpemVMaW1pdCcsICdtZXRyaWNz
JywgJ3BsYXRmb3JtR3JvdXBzJywgJ3JlcG9zaXRvcmllcycsICdzaXRlVGl0bGUnLCAnc3RhdHVz
JywgJ3N1bW1hcnlQYWdlcycsICd0ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycycsICd0ZXN0cycsICd0
cmlnZ2VyYWJsZXMnXSk7CiAKICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobWFu
aWZlc3QsIHsKICAgICAgICAgICAgICAgICBzaXRlVGl0bGU6IFRlc3RTZXJ2ZXIudGVzdENvbmZp
ZygpLnNpdGVUaXRsZSwKQEAgLTI1LDYgKzI1LDcgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgZGFzaGJvYXJkczoge30sCiAgICAgICAg
ICAgICAgICAgZmlsZVVwbG9hZFNpemVMaW1pdDogMjA5NzE1MiwgLy8gMk1CIGR1cmluZyB0ZXN0
aW5nLgogICAgICAgICAgICAgICAgIG1ldHJpY3M6IHt9LAorICAgICAgICAgICAgICAgIHBsYXRm
b3JtR3JvdXBzOiB7fSwKICAgICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6IHt9LAogICAgICAg
ICAgICAgICAgIHRlc3RBZ2VUb2xlcmFuY2VJbkhvdXJzOiBudWxsLAogICAgICAgICAgICAgICAg
IHRlc3RzOiB7fSwKQEAgLTE4NSw4ICsxODYsMTAgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3Rlc3RfbWV0cmljcycsIHtp
ZDogNywgdGVzdDogMiwgbmFtZTogJ01hbGxvYycsIGFnZ3JlZ2F0b3I6IDIwMH0pLAogICAgICAg
ICAgICAgZGIuaW5zZXJ0KCd0ZXN0X21ldHJpY3MnLCB7aWQ6IDgsIHRlc3Q6IDMsIG5hbWU6ICdU
aW1lJ30pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0ZXN0X21ldHJpY3MnLCB7aWQ6IDksIHRl
c3Q6IDQsIG5hbWU6ICdUaW1lJ30pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdwbGF0Zm9ybXMn
LCB7aWQ6IDIzLCBuYW1lOiAnaU9TIDkgaVBob25lIDVzJ30pLAotICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdwbGF0Zm9ybXMnLCB7aWQ6IDQ2LCBuYW1lOiAnVHJ1bmsgTWF2ZXJpY2tzJ30pLAorICAg
ICAgICAgICAgZGIuaW5zZXJ0KCdwbGF0Zm9ybV9ncm91cHMnLCB7aWQ6IDEsIG5hbWU6ICdpb3Mn
fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3BsYXRmb3JtX2dyb3VwcycsIHtpZDogMiwgbmFt
ZTogJ21hYyd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgncGxhdGZvcm1zJywge2lkOiAyMywg
bmFtZTogJ2lPUyA5IGlQaG9uZSA1cycsIGdyb3VwOiAxfSksCisgICAgICAgICAgICBkYi5pbnNl
cnQoJ3BsYXRmb3JtcycsIHtpZDogNDYsIG5hbWU6ICdUcnVuayBNYXZlcmlja3MnLCBncm91cDog
Mn0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge2lkOiAx
MDEsIG1ldHJpYzogNSwgcGxhdGZvcm06IDQ2LCB0eXBlOiAnY3VycmVudCd9KSwKICAgICAgICAg
ICAgIGRiLmluc2VydCgndGVzdF9jb25maWd1cmF0aW9ucycsIHtpZDogMTAyLCBtZXRyaWM6IDYs
IHBsYXRmb3JtOiA0NiwgdHlwZTogJ2N1cnJlbnQnfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQo
J3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDEwMywgbWV0cmljOiA3LCBwbGF0Zm9ybTogNDYs
IHR5cGU6ICdjdXJyZW50J30pLApAQCAtMjE0LDE2ICsyMTcsMTggQEAgZGVzY3JpYmUoJy9hcGkv
bWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIGxldCBtYW5pZmVzdCA9IE1h
bmlmZXN0Ll9kaWRGZXRjaE1hbmlmZXN0KGNvbnRlbnQpOwogCi0gICAgICAgICAgICBsZXQgc29t
ZVRlc3QgPSBUZXN0LmZpbmRCeUlkKDEpOwotICAgICAgICAgICAgbGV0IHNvbWVUZXN0TWV0cmlj
ID0gTWV0cmljLmZpbmRCeUlkKDUpOwotICAgICAgICAgICAgbGV0IHNvbWVPdGhlclRlc3QgPSBU
ZXN0LmZpbmRCeUlkKDIpOwotICAgICAgICAgICAgbGV0IHNvbWVPdGhlclRlc3RUaW1lID0gTWV0
cmljLmZpbmRCeUlkKDYpOwotICAgICAgICAgICAgbGV0IHNvbWVPdGhlclRlc3RNYWxsb2MgPSBN
ZXRyaWMuZmluZEJ5SWQoNyk7Ci0gICAgICAgICAgICBsZXQgY2hpbGRUZXN0ID0gVGVzdC5maW5k
QnlJZCgzKTsKLSAgICAgICAgICAgIGxldCBjaGlsZFRlc3RNZXRyaWMgPSBNZXRyaWMuZmluZEJ5
SWQoOCk7Ci0gICAgICAgICAgICBsZXQgZ3JhbmRDaGlsZFRlc3QgPSBUZXN0LmZpbmRCeUlkKDQp
OwotICAgICAgICAgICAgbGV0IGlvczlpcGhvbmU1cyA9IFBsYXRmb3JtLmZpbmRCeUlkKDIzKTsK
LSAgICAgICAgICAgIGxldCBtYXZlcmlja3MgPSBQbGF0Zm9ybS5maW5kQnlJZCg0Nik7CisgICAg
ICAgICAgICBjb25zdCBzb21lVGVzdCA9IFRlc3QuZmluZEJ5SWQoMSk7CisgICAgICAgICAgICBj
b25zdCBzb21lVGVzdE1ldHJpYyA9IE1ldHJpYy5maW5kQnlJZCg1KTsKKyAgICAgICAgICAgIGNv
bnN0IHNvbWVPdGhlclRlc3QgPSBUZXN0LmZpbmRCeUlkKDIpOworICAgICAgICAgICAgY29uc3Qg
c29tZU90aGVyVGVzdFRpbWUgPSBNZXRyaWMuZmluZEJ5SWQoNik7CisgICAgICAgICAgICBjb25z
dCBzb21lT3RoZXJUZXN0TWFsbG9jID0gTWV0cmljLmZpbmRCeUlkKDcpOworICAgICAgICAgICAg
Y29uc3QgY2hpbGRUZXN0ID0gVGVzdC5maW5kQnlJZCgzKTsKKyAgICAgICAgICAgIGNvbnN0IGNo
aWxkVGVzdE1ldHJpYyA9IE1ldHJpYy5maW5kQnlJZCg4KTsKKyAgICAgICAgICAgIGNvbnN0IGdy
YW5kQ2hpbGRUZXN0ID0gVGVzdC5maW5kQnlJZCg0KTsKKyAgICAgICAgICAgIGNvbnN0IGlvczlp
cGhvbmU1cyA9IFBsYXRmb3JtLmZpbmRCeUlkKDIzKTsKKyAgICAgICAgICAgIGNvbnN0IG1hdmVy
aWNrcyA9IFBsYXRmb3JtLmZpbmRCeUlkKDQ2KTsKKyAgICAgICAgICAgIGNvbnN0IGlvc0dyb3Vw
ID0gUGxhdGZvcm1Hcm91cC5maW5kQnlJZCgxKTsKKyAgICAgICAgICAgIGNvbnN0IG1hY0dyb3Vw
ID0gUGxhdGZvcm1Hcm91cC5maW5kQnlJZCgyKTsKICAgICAgICAgICAgIGFzc2VydChzb21lVGVz
dCk7CiAgICAgICAgICAgICBhc3NlcnQoc29tZVRlc3RNZXRyaWMpOwogICAgICAgICAgICAgYXNz
ZXJ0KHNvbWVPdGhlclRlc3QpOwpAQCAtMjM0LDYgKzIzOSw4IEBAIGRlc2NyaWJlKCcvYXBpL21h
bmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGdyYW5kQ2hpbGRUZXN0
KTsKICAgICAgICAgICAgIGFzc2VydChpb3M5aXBob25lNXMpOwogICAgICAgICAgICAgYXNzZXJ0
KG1hdmVyaWNrcyk7CisgICAgICAgICAgICBhc3NlcnQoaW9zR3JvdXApOworICAgICAgICAgICAg
YXNzZXJ0KG1hY0dyb3VwKTsKIAogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hdmVyaWNrcy5u
YW1lKCksICdUcnVuayBNYXZlcmlja3MnKTsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3Mu
aGFzVGVzdChzb21lVGVzdCkpOwpAQCAtMjQ0LDYgKzI1MSw3IEBAIGRlc2NyaWJlKCcvYXBpL21h
bmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG1hdmVyaWNrcy5oYXNN
ZXRyaWMoc29tZU90aGVyVGVzdFRpbWUpKTsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3Mu
aGFzTWV0cmljKHNvbWVPdGhlclRlc3RNYWxsb2MpKTsKICAgICAgICAgICAgIGFzc2VydChtYXZl
cmlja3MuaGFzTWV0cmljKGNoaWxkVGVzdE1ldHJpYykpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG1hdmVyaWNrcy5ncm91cCgpLCBtYWNHcm91cCk7CiAKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChpb3M5aXBob25lNXMubmFtZSgpLCAnaU9TIDkgaVBob25lIDVzJyk7CiAgICAgICAgICAg
ICBhc3NlcnQoaW9zOWlwaG9uZTVzLmhhc1Rlc3Qoc29tZVRlc3QpKTsKQEAgLTI1NCw2ICsyNjIs
MTUgQEAgZGVzY3JpYmUoJy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdFRpbWUpKTsKICAg
ICAgICAgICAgIGFzc2VydCghaW9zOWlwaG9uZTVzLmhhc01ldHJpYyhzb21lT3RoZXJUZXN0TWFs
bG9jKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoY2hpbGRU
ZXN0TWV0cmljKSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zOWlwaG9uZTVzLmdyb3Vw
KCksIGlvc0dyb3VwKTsKKworICAgICAgICAgICAgY29uc3QgbWFjUGxhdGZvcm1zID0gbWFjR3Jv
dXAucGxhdGZvcm1zKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZvcm1zLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwobWFjUGxhdGZvcm1zWzBdLCBtYXZl
cmlja3MpOworCisgICAgICAgICAgICBjb25zdCBpb3NQbGF0Zm9ybXMgPSBpb3NHcm91cC5wbGF0
Zm9ybXMoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3NQbGF0Zm9ybXMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChpb3NQbGF0Zm9ybXNbMF0sIGlvczlpcGhvbmU1
cyk7CiAKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdC5uYW1lKCksICdTb21lVGVz
dCcpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHNvbWVUZXN0LnBhcmVudFRlc3QoKSwgbnVs
bCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvZGF0YWJh
c2UuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMKaW5k
ZXggZWU4ZDRmZmU2NDM2NTFjZmVjZmQxMWJmYzY0ODg4NWQ4YTQyMmZhNS4uMGYzNmYzNjk5Yjdj
ZDc4MzYwY2ExMTdjZmUwZGFmZDZkZmRjNzViOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL2RhdGFiYXNlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy90b29scy9qcy9kYXRhYmFzZS5qcwpAQCAtMTQ4LDYgKzE0OCw3IEBAIGNvbnN0IHRhYmxl
VG9QcmVmaXhNYXAgPSB7CiAgICAgJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJzogJ3Jl
cG9zaXRvcnlncm91cCcsCiAgICAgJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcyc6ICd0cmlncmVw
bycsCiAgICAgJ3BsYXRmb3Jtcyc6ICdwbGF0Zm9ybScsCisgICAgJ3BsYXRmb3JtX2dyb3Vwcyc6
ICdwbGF0Zm9ybWdyb3VwJywKICAgICAncmVwb3J0cyc6ICdyZXBvcnQnLAogICAgICdyZXBvc2l0
b3JpZXMnOiAncmVwb3NpdG9yeScsCiAgICAgJ2NvbW1pdF9zZXRzJzogJ2NvbW1pdHNldCcsCmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwppbmRleCBm
MjA4ZTg0OGYwNTYzMzUwYzNhY2I1NTFmZjg5ODJhM2M4ZmY0MjgwLi42YTExZGJjNjdmZjYzNTYy
MmEzOGU3NzE4OTRlOTI4NWEzNzU3NzA3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy92My1tb2RlbHMuanMKQEAgLTI0LDYgKzI0LDcgQEAgaW1wb3J0RnJvbVYzKCdt
b2RlbHMvbWVhc3VyZW1lbnQtY2x1c3Rlci5qcycsICdNZWFzdXJlbWVudENsdXN0ZXInKTsKIGlt
cG9ydEZyb21WMygnbW9kZWxzL21lYXN1cmVtZW50LXNldC5qcycsICdNZWFzdXJlbWVudFNldCcp
OwogaW1wb3J0RnJvbVYzKCdtb2RlbHMvbWV0cmljLmpzJywgJ01ldHJpYycpOwogaW1wb3J0RnJv
bVYzKCdtb2RlbHMvcGxhdGZvcm0uanMnLCAnUGxhdGZvcm0nKTsKK2ltcG9ydEZyb21WMygnbW9k
ZWxzL3BsYXRmb3JtLWdyb3VwLmpzJywgJ1BsYXRmb3JtR3JvdXAnKTsKIGltcG9ydEZyb21WMygn
bW9kZWxzL3JlcG9zaXRvcnkuanMnLCAnUmVwb3NpdG9yeScpOwogaW1wb3J0RnJvbVYzKCdtb2Rl
bHMvY29tbWl0LXNldC5qcycsICdNZWFzdXJlbWVudENvbW1pdFNldCcpOwogaW1wb3J0RnJvbVYz
KCdtb2RlbHMvY29tbWl0LXNldC5qcycsICdDb21taXRTZXQnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358308</attachid>
            <date>2019-01-03 21:34:05 -0800</date>
            <delta_ts>2019-01-10 21:04:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193132-20190103213404.patch</filename>
            <type>text/plain</type>
            <size>25918</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTY3CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCAwOTM2OTA5NzYxYTI0ZjE3ZGNmM2FhOWI3YTQyZWUxNGQyNGJlNTA1Li43NTU0ODk5MjMz
OGQ1NmMwY2FkM2JlYTI0ZWI3MzA4ZGY2NmQ2OTc1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxOS0wMS0wMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciAncGxhdGZvcm1zJyAgdGFibGUgdG8gY29u
dGFpbiBncm91cCBpbmZvcm1hdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MzEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEdyb3VwICdwbGF0Zm9ybXMnIHNvIHRoYXQgYmlzZWN0aW5nIGNhbiB1
c2UgY29tbWl0IHNldHMgZnJvbSBvdGhlciBwbGF0Zm9ybXMgd2hpY2ggYXJlIGluIHRoZSBzYW1l
IHBsYXRmb3JtIGdyb3VwLgorICAgICAgICBUaGlzIHdpbGwgaGVscCB0byBlbmhhbmNlIHRoZSBi
aXNlY3RpbmcgY2FwYWJpbGl0eSB0byBoaWdoZXIgZ3JhbnVsYXJpdHkuCisgICAgICAgIEFkZGVk
IGFkbWluIHBhZ2UgdG8gbWFuYWdlIHBsYXRmb3JtIGdyb3Vwcy4KKyAgICAgICAgVXBkYXRlZCBw
bGF0Zm9ybSBhZG1pbiBwYWdlIHRvIGFsbG93IHVwZGF0ZSBwbGF0Zm9ybSBncm91cC4KKyAgICAg
ICAgU1FMIHF1ZXJ5IHRvIHVwZGF0ZSBleGlzdGluZyBkYXRhYmFzZToKKyAgICAgICAgJycnCisg
ICAgICAgIEJFR0lOOworICAgICAgICBDUkVBVEUgVEFCTEUgcGxhdGZvcm1fZ3JvdXBzICgKKyAg
ICAgICAgICAgIHBsYXRmb3JtZ3JvdXBfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAorICAgICAgICAg
ICAgcGxhdGZvcm1ncm91cF9uYW1lIHZhcmNoYXIoNjQpIE5PVCBOVUxMLAorICAgICAgICAgICAg
Q09OU1RSQUlOVCBwbGF0Zm9ybV9ncm91cF9uYW1lX211c3RfYmVfdW5pcXVlIFVOSVFVRSAocGxh
dGZvcm1ncm91cF9uYW1lKSk7CisKKyAgICAgICAgQUxURVIgVEFCTEUgcGxhdGZvcm1zIEFERCBD
T0xVTU4gcGxhdGZvcm1fZ3JvdXAgaW50ZWdlciBSRUZFUkVOQ0VTIHBsYXRmb3JtX2dyb3VwcyBE
RUZBVUxUIE5VTEw7CisgICAgICAgIEVORDsKKyAgICAgICAgJycnCisKKyAgICAgICAgKiBpbml0
LWRhdGFiYXNlLnNxbDogQWRkZWQgJ3BsYXRmb3JtX2dyb3VwJyBjb2x1bW4gdG8gJ3BsYXRmb3Jt
cycgdGFibGUuCisgICAgICAgIEFkZGVkICdwbGF0Zm9ybV9ncm91cHMnIHRhYmxlLgorICAgICAg
ICAqIHB1YmxpYy9hZG1pbi9wbGF0Zm9ybS1ncm91cHMucGhwOiBBZGRlZCBhIHBhZ2UgdG8gbWFu
YWdlIHBsYXRmb3JtIGdyb3Vwcy4KKyAgICAgICAgKiBwdWJsaWMvYWRtaW4vcGxhdGZvcm1zLnBo
cDogQWRkZWQgc3VwcG9ydCB0byB1cGRhdGUgcGxhdGZvcm0gZ3JvdXAgaW4gYWRtaW4gcGFnZS4K
KyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9hZG1pbi1oZWFkZXIucGhwOiBBZGRlZCBsaW5rIHRv
IHBhZ2UgdGhhdCBtYW5lZ2VzIHBsYXRmb3JtIGdyb3Vwcy4KKyAgICAgICAgKiBwdWJsaWMvaW5j
bHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwOiBBZGRlZCAncGxhdGZvcm1Hcm91cCcgaW4gbWFu
aWZlc3QuCisgICAgICAgICogcHVibGljL3YzL2luZGV4Lmh0bWw6IEluY2x1ZGVkICdwbGF0Zm9y
bS1ncm91cHMuanMnLgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYW5hbHlzaXMtdGFzay5q
czoKKyAgICAgICAgKEFuYWx5c2lzVGFzay5wcm90b3R5cGUuYXN5bmMuY29tbWl0U2V0c0Zyb21U
ZXN0R3JvdXBzQW5kTWVhc3VyZW1lbnRTZXQpOgorICAgICAgICBJbmNsdWRlZCBtZWFzdXJlbWVu
dCBjb21taXQgc2V0cyBmcm9tIG90aGVyIHBsYXRmb3JtcyBpbiB0aGUgc2FtZSBwbGF0Zm9ybSBn
cm91cC4KKyAgICAgICAgKEFuYWx5c2lzVGFzay5wcm90b3R5cGUuX2NvbW1pdFNldEZvck90aGVy
UGxhdGZvcm1zSW5TYW1lR3JvdXApOgorICAgICAgICBIZWxwZXIgZnVuY3Rpb24gdG8gZmluZCBt
ZWFzdXJtZW50IGNvbW1pdCBzZXQgZm9yIG90aGVyIHBsYXRmb3JtcyBpbiBzYW1lIHBsYXRmb3Jt
IGdyb3VwLgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanM6IEFkZGVkIHN0
ZXAgdG8gYnVpbGQgJ1BsYXRmb3JtR3JvdXAnIGluc3RhbmNlcy4KKyAgICAgICAgKiBwdWJsaWMv
djMvbW9kZWxzL3BsYXRmb3JtLWdyb3VwLmpzOiBBZGRlZCAnUGxhdGZvcm1Hcm91cCcgdG8gcmVw
cmVzZW50IGVudHJpZXMgaW4gJ3BsYXRmb3JtX2dyb3VwcycgdGFibGUuCisgICAgICAgIChQbGF0
Zm9ybUdyb3VwKToKKyAgICAgICAgKFBsYXRmb3JtR3JvdXAucHJvdG90eXBlLmFkZFBsYXRmb3Jt
KToKKyAgICAgICAgKFBsYXRmb3JtR3JvdXAucHJvdG90eXBlLnBsYXRmb3Jtcyk6CisgICAgICAg
ICogcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS5qczogQWRkZWQgaXRzZWxmIHRvICdQbGF0Zm9y
bUdyb3VwJyBpbiBjb25zdHJ1Y3RvciBpZiBpdCBiZWxvbmdzCisgICAgICAgIHRvIGEgZ3JvdXAu
CisgICAgICAgIChQbGF0Zm9ybS5wcm90b3R5cGUuZ3JvdXApOiBSZXR1cm4gdGhlIHBsYXRmb3Jt
IGdyb3VwIG9mIGN1cnJlbnQgcGxhdGZvcm0uCisgICAgICAgICogcHVibGljL3YzL21vZGVscy90
aW1lLXNlcmllcy5qczogQWRkZWQgaGVscGVyIGZ1bmN0aW9uIHRvIHNob3cgdmlldyBiZXR3ZWVu
IGEgZ2l2ZW4gdGltZSByYW5nZS4KKyAgICAgICAgKFRpbWVTZXJpZXMucHJvdG90eXBlLnZpZXdC
ZXR3ZWVuVGltZSk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5q
czogVXBkYXRlZCB1bml0IHRlc3QgdG8gYWxzbyB0ZXN0IHBsYXRmb3JtIGdyb3VwIGluaXRpYWxp
emF0aW9uLgorICAgICAgICAqIHRvb2xzL2pzL2RhdGFiYXNlLmpzOiBBZGRlZCBwcmVmaXggZm9y
ICdwbGF0Zm9ybV9ncm91cHMnLgorICAgICAgICAqIHRvb2xzL2pzL3YzLW1vZGVscy5qczogQWRk
ZWQgaW1wb3J0IGZvciBwbGF0Zm9ybSBncm91cC4KKwogMjAxOC0xMi0xNCAgRGV3ZWkgWmh1ICA8
ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHRlbmQgY29tbWl0cyB0YWJsZSB0byBj
b250YWluIHRlc3RhYmlsaXR5IGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2luaXQtZGF0YWJhc2Uuc3FsCmluZGV4IGM3YjdkNjBiYzljMWIxMDA0NjgwNzc2OWU0NWEzNzI1
ZmJhMDQ0N2IuLmZjNTA0YTNiMmE3YzA3MDAzNDk5YWUzNDRlNzJkYzBlMjQ0ODljNmQgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAorKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKQEAgLTEyLDYgKzEyLDcg
QEAgRFJPUCBUQUJMRSBJRiBFWElTVFMgYnVpbGRfc2xhdmVzIENBU0NBREU7CiBEUk9QIFRBQkxF
IElGIEVYSVNUUyBidWlsZGVycyBDQVNDQURFOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgcmVwb3Np
dG9yaWVzIENBU0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyBwbGF0Zm9ybXMgQ0FTQ0FERTsK
K0RST1AgVEFCTEUgSUYgRVhJU1RTIHBsYXRmb3JtX2dyb3VwcyBDQVNDQURFOwogRFJPUCBUQUJM
RSBJRiBFWElTVFMgdGVzdF9tZXRyaWNzIENBU0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyB0
ZXN0cyBDQVNDQURFOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgcmVwb3J0cyBDQVNDQURFOwpAQCAt
MzQsOSArMzUsMTUgQEAgRFJPUCBUQUJMRSBJRiBFWElTVFMgYnVpbGRfcmVxdWVzdHMgQ0FTQ0FE
RTsKIERST1AgVFlQRSBJRiBFWElTVFMgYnVpbGRfcmVxdWVzdF9zdGF0dXNfdHlwZSBDQVNDQURF
OwogCiAKK0NSRUFURSBUQUJMRSBwbGF0Zm9ybV9ncm91cHMgKAorICAgIHBsYXRmb3JtZ3JvdXBf
aWQgc2VyaWFsIFBSSU1BUlkgS0VZLAorICAgIHBsYXRmb3JtZ3JvdXBfbmFtZSB2YXJjaGFyKDY0
KSBOT1QgTlVMTCwKKyAgICBDT05TVFJBSU5UIHBsYXRmb3JtX2dyb3VwX25hbWVfbXVzdF9iZV91
bmlxdWUgVU5JUVVFIChwbGF0Zm9ybWdyb3VwX25hbWUpKTsKKwogQ1JFQVRFIFRBQkxFIHBsYXRm
b3JtcyAoCiAgICAgcGxhdGZvcm1faWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIHBsYXRmb3Jt
X25hbWUgdmFyY2hhcig2NCkgTk9UIE5VTEwsCisgICAgcGxhdGZvcm1fZ3JvdXAgaW50ZWdlciBS
RUZFUkVOQ0VTIHBsYXRmb3JtX2dyb3VwcyBERUZBVUxUIE5VTEwsCiAgICAgcGxhdGZvcm1faGlk
ZGVuIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSk7CiAKIENSRUFURSBUQUJMRSByZXBv
c2l0b3JpZXMgKApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9h
ZG1pbi9wbGF0Zm9ybS1ncm91cHMucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9hZG1pbi9wbGF0Zm9ybS1ncm91cHMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MTM1ZDJjYzMwZDRjZTU0
NjgwNzBkMzc1OTk2NjhmNTgxNTEyMTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2FkbWluL3BsYXRmb3JtLWdyb3Vwcy5waHAKQEAgLTAsMCArMSwy
NyBAQAorPD9waHAKKworcmVxdWlyZSgnLi4vaW5jbHVkZS9hZG1pbi1oZWFkZXIucGhwJyk7CisK
K2lmICgkZGIpIHsKKyAgICBpZiAoJGFjdGlvbiA9PSAnYWRkJykgeworICAgICAgICBpZiAoJGRi
LT5pbnNlcnRfcm93KCdwbGF0Zm9ybV9ncm91cHMnLCAncGxhdGZvcm1ncm91cCcsIGFycmF5KCdu
YW1lJyA9PiAkX1BPU1RbJ25hbWUnXSkpKSB7CisgICAgICAgICAgICBub3RpY2UoJ0luc2VydGVk
IHRoZSBuZXcgcGxhdGZvcm0gZ3JvdXAnKTsKKyAgICAgICAgICAgIHJlZ2VuZXJhdGVfbWFuaWZl
c3QoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBub3RpY2UoJ0NvdWxkIG5vdCBhZGQg
dGhlIHBsYXRmb3JtIGdyb3VwLicpOworICAgIH0gZWxzZSBpZiAoJGFjdGlvbiA9PSAndXBkYXRl
JykgeworICAgICAgICBpZiAodXBkYXRlX2ZpZWxkKCdwbGF0Zm9ybV9ncm91cHMnLCAncGxhdGZv
cm1ncm91cCcsICduYW1lJykpCisgICAgICAgICAgICByZWdlbmVyYXRlX21hbmlmZXN0KCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5vdGljZSgnSW52YWxpZCBwYXJhbWV0ZXJzLicpOwor
ICAgIH0KKworICAgICRwYWdlID0gbmV3IEFkbWluaXN0cmF0aXZlUGFnZSgkZGIsICdwbGF0Zm9y
bV9ncm91cHMnLCAncGxhdGZvcm1ncm91cCcsIGFycmF5KCduYW1lJyA9PiBhcnJheSgnc2l6ZScg
PT4gNTAsICdlZGl0aW5nX21vZGUnID0+ICdzdHJpbmcnKSkpOworCisgICAgJHBhZ2UtPnJlbmRl
cl90YWJsZSgnbmFtZScpOworICAgICRwYWdlLT5yZW5kZXJfZm9ybV90b19hZGQoKTsKK30KKwor
cmVxdWlyZSgnLi4vaW5jbHVkZS9hZG1pbi1mb290ZXIucGhwJyk7CisKKz8+CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FkbWluL3BsYXRmb3Jtcy5waHAgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FkbWluL3BsYXRmb3Jtcy5waHAKaW5kZXgg
NWMwYjliZmFhMDNiZjk0YmRmYWRiN2VhNTcxNTViOTRhNmJmMWI3Ni4uN2I1YzIwMTYzZTE1MGFk
NjQzYzdlNTBkODJlNzg0MGM4NTBhM2Y0YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9hZG1pbi9wbGF0Zm9ybXMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvYWRtaW4vcGxhdGZvcm1zLnBocApAQCAtNTksNyArNTksOCBAQCBmdW5j
dGlvbiBtZXJnZV9wbGF0Zm9ybXMoJHBsYXRmb3JtX3RvX21lcmdlLCAkZGVzdGluYXRpb25fcGxh
dGZvcm0pIHsKIGlmICgkZGIpIHsKICAgICBpZiAoJGFjdGlvbiA9PSAndXBkYXRlJykgewogICAg
ICAgICBpZiAodXBkYXRlX2ZpZWxkKCdwbGF0Zm9ybXMnLCAncGxhdGZvcm0nLCAnbmFtZScpCi0g
ICAgICAgICAgICB8fCB1cGRhdGVfZmllbGQoJ3BsYXRmb3JtcycsICdwbGF0Zm9ybScsICdoaWRk
ZW4nKSkKKyAgICAgICAgICAgIHx8IHVwZGF0ZV9maWVsZCgncGxhdGZvcm1zJywgJ3BsYXRmb3Jt
JywgJ2hpZGRlbicpCisgICAgICAgICAgICB8fCB1cGRhdGVfZmllbGQoJ3BsYXRmb3JtcycsICdw
bGF0Zm9ybScsICdncm91cCcpKQogICAgICAgICAgICAgcmVnZW5lcmF0ZV9tYW5pZmVzdCgpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBub3RpY2UoJ0ludmFsaWQgcGFyYW1ldGVycy4nKTsK
QEAgLTk0LDkgKzk1LDM3IEBAIEVORDsKICAgICAgICAgcmV0dXJuIGFycmF5KCRjb250ZW50KTsK
ICAgICB9CiAKKyAgICAkcGxhdGZvcm1fZ3JvdXBfb3B0aW9ucyA9ICRkYi0+ZmV0Y2hfdGFibGUo
J3BsYXRmb3JtX2dyb3VwcycsICdwbGF0Zm9ybWdyb3VwX25hbWUnKTsKKyAgICBhcnJheV9wdXNo
KCRwbGF0Zm9ybV9ncm91cF9vcHRpb25zLCBhcnJheSgncGxhdGZvcm1ncm91cF9pZCcgPT4gTlVM
TCwgJ3BsYXRmb3JtZ3JvdXBfbmFtZScgPT4gJyZsdE5vIEdyb3VwJmd0JykpOworICAgIGZ1bmN0
aW9uIHBsYXRmb3JtX2dyb3VwX2xpc3QoJHBsYXRmb3JtX3JvdykKKyAgICB7CisgICAgICAgIGds
b2JhbCAkcGxhdGZvcm1fZ3JvdXBfb3B0aW9uczsKKyAgICAgICAgJGlkID0gJHBsYXRmb3JtX3Jv
d1sncGxhdGZvcm1faWQnXTsKKyAgICAgICAgJHBsYXRmb3JtX2dyb3VwX2lkID0gJHBsYXRmb3Jt
X3Jvd1sncGxhdGZvcm1fZ3JvdXAnXTsKKyAgICAgICAgJGNvbnRlbnQgPSA8PDwgRU5ECis8Zm9y
bSBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlkIiB2YWx1ZT0iJGlk
Ij4KKzxzZWxlY3QgbmFtZT0iZ3JvdXAiPgorRU5EOworCisgICAgICAgIGZvcmVhY2ggKCRwbGF0
Zm9ybV9ncm91cF9vcHRpb25zIGFzICYkZ3JvdXBfb3B0aW9uKSB7CisgICAgICAgICAgICAkc2Vs
ZWN0aW9uX3N0cmluZyA9ICRncm91cF9vcHRpb25bJ3BsYXRmb3JtZ3JvdXBfaWQnXSA9PSAkcGxh
dGZvcm1fZ3JvdXBfaWQgPyAiIHNlbGVjdGVkIiA6ICIiOworICAgICAgICAgICAgJGNvbnRlbnQg
Lj0gPDw8IEVORAorPG9wdGlvbiB2YWx1ZT0ieyRncm91cF9vcHRpb25bJ3BsYXRmb3JtZ3JvdXBf
aWQnXX0ieyRzZWxlY3Rpb25fc3RyaW5nfT57JGdyb3VwX29wdGlvblsncGxhdGZvcm1ncm91cF9u
YW1lJ119PC9vcHRpb24+CitFTkQ7CisgICAgICAgIH0KKworICAgICAgICAkY29udGVudCAuPSA8
PDwgRU5ECis8L3NlbGVjdD4KKzxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJhY3Rpb24iIHZh
bHVlPSJ1cGRhdGUiPlVwZGF0ZTwvYnV0dG9uPgorPC9mb3JtPgorRU5EOworICAgICAgICByZXR1
cm4gYXJyYXkoJGNvbnRlbnQpOworICAgIH0KKwogICAgICRwYWdlID0gbmV3IEFkbWluaXN0cmF0
aXZlUGFnZSgkZGIsICdwbGF0Zm9ybXMnLCAncGxhdGZvcm0nLCBhcnJheSgKICAgICAgICAgJ25h
bWUnID0+IGFycmF5KCdlZGl0aW5nX21vZGUnID0+ICdzdHJpbmcnKSwKICAgICAgICAgJ2hpZGRl
bicgPT4gYXJyYXkoJ2VkaXRpbmdfbW9kZScgPT4gJ2Jvb2xlYW4nKSwKKyAgICAgICAgJ3BsYXRm
b3JtIGdyb3VwJyA9PiBhcnJheSgnY3VzdG9tJyA9PiBmdW5jdGlvbiAoJHBsYXRmb3JtX3Jvdykg
eyByZXR1cm4gcGxhdGZvcm1fZ3JvdXBfbGlzdCgkcGxhdGZvcm1fcm93KTsgfSksCiAgICAgICAg
ICdtZXJnZSBpbnRvJyA9PiBhcnJheSgnY3VzdG9tJyA9PiBmdW5jdGlvbiAoJHBsYXRmb3JtX3Jv
dykgeyByZXR1cm4gbWVyZ2VfbGlzdCgkcGxhdGZvcm1fcm93KTsgfSksCiAgICAgKSk7CiAKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9hZG1pbi1o
ZWFkZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2FkbWlu
LWhlYWRlci5waHAKaW5kZXggYzRkMzdiZjBkNGIxNjRkMGM2YzJkZWZhZTIzZmJkMzFmNDU4MjQ4
YS4uNThhNzhlYTc0YjI2NDAxNWNhOTE4ZWZlYjQ5YjExMjA3YjE4Y2Q5ZiAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2FkbWluLWhlYWRlci5waHAK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2FkbWluLWhlYWRl
ci5waHAKQEAgLTE1LDYgKzE1LDcgQEAgcmVxdWlyZV9vbmNlKCdtYW5pZmVzdC1nZW5lcmF0b3Iu
cGhwJyk7CiA8aDE+PGEgaHJlZj0iLyI+V2ViS2l0IFBlcmYgTW9uaXRvcjwvYT48L2gxPgogPHVs
PgogICAgIDxsaT48YSBocmVmPSIvYWRtaW4vcGxhdGZvcm1zIj5QbGF0Zm9ybXM8L2E+PC9saT4K
KyAgICA8bGk+PGEgaHJlZj0iL2FkbWluL3BsYXRmb3JtLWdyb3VwcyI+UGxhdGZvcm0gR3JvdXBz
PC9hPjwvbGk+CiAgICAgPGxpPjxhIGhyZWY9Ii9hZG1pbi90ZXN0cyI+VGVzdHM8L2E+PC9saT4K
ICAgICA8bGk+PGEgaHJlZj0iL2FkbWluL2FnZ3JlZ2F0b3JzIj5BZ2dyZWdhdG9yczwvYT48L2xp
PgogICAgIDxsaT48YSBocmVmPSIvYWRtaW4vYnVpbGRlcnMiPkJ1aWxkZXJzPC9hPjwvbGk+CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvbWFuaWZl
c3QtZ2VuZXJhdG9yLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVk
ZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwCmluZGV4IDQ0NmZhZTdkOGIzMTk0Mzc5OTBiN2QzMDU1
OGEwYmI1M2RjMmRjMmQuLjYwMjM3ZjMyZTZmMTQ1NGQxMTg1NmYxMmVhZTNhODA3NDFkNWY1NWIg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9tYW5p
ZmVzdC1nZW5lcmF0b3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
aW5jbHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwCkBAIC0zMywxMiArMzMsMTQgQEAgY2xhc3Mg
TWFuaWZlc3RHZW5lcmF0b3IgewogICAgICAgICAkcGxhdGZvcm1zID0gKG9iamVjdCkkdGhpcy0+
cGxhdGZvcm1zKCRwbGF0Zm9ybV90YWJsZSwgZmFsc2UpOwogICAgICAgICAkZGFzaGJvYXJkID0g
KG9iamVjdCkkdGhpcy0+cGxhdGZvcm1zKCRwbGF0Zm9ybV90YWJsZSwgdHJ1ZSk7CiAgICAgICAg
ICRyZXBvc2l0b3JpZXMgPSAob2JqZWN0KSR0aGlzLT5yZXBvc2l0b3JpZXMoJHJlcG9zaXRvcmll
c190YWJsZSwgJHJlcG9zaXRvcmllc193aXRoX2NvbW1pdCk7CisgICAgICAgICRwbGF0Zm9ybV9n
cm91cHMgPSAob2JqZWN0KSR0aGlzLT5wbGF0Zm9ybV9ncm91cHMoKTsKIAogICAgICAgICAkdGhp
cy0+bWFuaWZlc3QgPSBhcnJheSgKICAgICAgICAgICAgICdzaXRlVGl0bGUnID0+IGNvbmZpZygn
c2l0ZVRpdGxlJywgJ1BlcmZvcm1hbmNlIERhc2hib2FyZCcpLAogICAgICAgICAgICAgJ3Rlc3Rz
JyA9PiAmJHRlc3RzLAogICAgICAgICAgICAgJ21ldHJpY3MnID0+ICYkbWV0cmljcywKICAgICAg
ICAgICAgICdhbGwnID0+ICYkcGxhdGZvcm1zLAorICAgICAgICAgICAgJ3BsYXRmb3JtR3JvdXBz
JyA9PiAmJHBsYXRmb3JtX2dyb3VwcywKICAgICAgICAgICAgICdkYXNoYm9hcmQnID0+ICYkZGFz
aGJvYXJkLAogICAgICAgICAgICAgJ3JlcG9zaXRvcmllcycgPT4gJiRyZXBvc2l0b3JpZXMsCiAg
ICAgICAgICAgICAnYnVpbGRlcnMnID0+IChvYmplY3QpJHRoaXMtPmJ1aWxkZXJzKCksCkBAIC0x
MTUsNyArMTE3LDYgQEAgY2xhc3MgTWFuaWZlc3RHZW5lcmF0b3IgewogICAgICAgICAgICAgICAg
IGFycmF5X3B1c2goJGN1cnJlbnRfcGxhdGZvcm1fZW50cnlbJ2xhc3RfbW9kaWZpZWQnXSwgaW50
dmFsKCRtZXRyaWNfcm93WydsYXN0X21vZGlmaWVkJ10pKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQotICAgICAgICAkY29uZmlndXJhdGlvbnMgPSBhcnJheSgpOwogCiAgICAgICAgICRwbGF0
Zm9ybXMgPSBhcnJheSgpOwogICAgICAgICBpZiAoJHBsYXRmb3JtX3RhYmxlKSB7CkBAIC0xMjcs
NiArMTI4LDcgQEAgY2xhc3MgTWFuaWZlc3RHZW5lcmF0b3IgewogICAgICAgICAgICAgICAgICAg
ICAkcGxhdGZvcm1zWyRpZF0gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICduYW1l
JyA9PiAkcGxhdGZvcm1fcm93WydwbGF0Zm9ybV9uYW1lJ10sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAnbWV0cmljcycgPT4gJHBsYXRmb3JtX21ldHJpY3NbJGlkXVsnbWV0cmljcyddLAorICAg
ICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwJyA9PiAkcGxhdGZvcm1fcm93WydwbGF0Zm9ybV9n
cm91cCddLAogICAgICAgICAgICAgICAgICAgICAgICAgJ2xhc3RNb2RpZmllZCcgPT4gJHBsYXRm
b3JtX21ldHJpY3NbJGlkXVsnbGFzdF9tb2RpZmllZCddKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CkBAIC0xMzQsNiArMTM2LDE2IEBAIGNsYXNzIE1hbmlmZXN0R2VuZXJhdG9y
IHsKICAgICAgICAgcmV0dXJuICRwbGF0Zm9ybXM7CiAgICAgfQogCisgICAgcHJpdmF0ZSBmdW5j
dGlvbiBwbGF0Zm9ybV9ncm91cHMoKSB7CisgICAgICAgICRwbGF0Zm9ybV9ncm91cHNfdGFibGUg
PSAkdGhpcy0+ZGItPmZldGNoX3RhYmxlKCdwbGF0Zm9ybV9ncm91cHMnKTsKKyAgICAgICAgaWYg
KCEkcGxhdGZvcm1fZ3JvdXBzX3RhYmxlKQorICAgICAgICAgICAgcmV0dXJuIGFycmF5KCk7Cisg
ICAgICAgICRwbGF0Zm9ybV9ncm91cHMgPSBhcnJheSgpOworICAgICAgICBmb3JlYWNoICgkcGxh
dGZvcm1fZ3JvdXBzX3RhYmxlIGFzICYkcm93KQorICAgICAgICAgICAgJHBsYXRmb3JtX2dyb3Vw
c1skcm93WydwbGF0Zm9ybWdyb3VwX2lkJ11dID0gYXJyYXkoJ25hbWUnID0+ICRyb3dbJ3BsYXRm
b3JtZ3JvdXBfbmFtZSddKTsKKyAgICAgICAgcmV0dXJuICRwbGF0Zm9ybV9ncm91cHM7CisgICAg
fQorCiAgICAgcHJpdmF0ZSBmdW5jdGlvbiByZXBvc2l0b3JpZXMoJHJlcG9zaXRvcmllc190YWJs
ZSwgJHJlcG9zaXRvcmllc193aXRoX2NvbW1pdCkgewogICAgICAgICAkcmVwb3NpdG9yaWVzID0g
YXJyYXkoKTsKICAgICAgICAgaWYgKCEkcmVwb3NpdG9yaWVzX3RhYmxlKQpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sCmluZGV4IGU3MzEwNzdmNmViZTAw
NDA3YWRiMDY4YzdmZmNiZjYxZWE2NmNkY2MuLmY1MzEwMDNlZDVlNjczNTA5ZTQzN2U0ODExYmIw
OWY4YWMzMzcyZDMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvaW5kZXguaHRtbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2lu
ZGV4Lmh0bWwKQEAgLTU2LDYgKzU2LDcgQEAgUnVuIHRvb2xzL2J1bmRsZS12My1zY3JpcHRzIHRv
IHNwZWVkIHVwIHRoZSBsb2FkIHRpbWUgZm9yIHByb2R1Y3Rpb24uYCk7CiAgICAgICAgIDxzY3Jp
cHQgc3JjPSJtb2RlbHMvZGF0YS1tb2RlbC5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQg
c3JjPSJtb2RlbHMvY29tbWl0LWxvZy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3Jj
PSJtb2RlbHMvcGxhdGZvcm0uanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibW9k
ZWxzL3BsYXRmb3JtLWdyb3VwLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Im1v
ZGVscy9idWlsZGVyLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Im1vZGVscy90
ZXN0LmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Im1vZGVscy9tZXRyaWMuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvYW5hbHlzaXMtdGFzay5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL2FuYWx5c2lzLXRhc2suanMKaW5kZXggZGJiN2MyZTA5MGE2NjA3YzUzMGY5
ZGQ4OTk4N2FiMzQ1MjIzMjgwZC4uMzAwOWE2ZTBhMDI0MWIxMzMwZTRmODlhMzg3M2FlODliM2Ez
YjdiMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvYW5hbHlzaXMtdGFzay5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL21vZGVscy9hbmFseXNpcy10YXNrLmpzCkBAIC0xNjksNyArMTY5LDYgQEAgY2xhc3MgQW5h
bHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBhc3luYyBjb21taXRTZXRz
RnJvbVRlc3RHcm91cHNBbmRNZWFzdXJlbWVudFNldCgpCiAgICAgewotCiAgICAgICAgIGNvbnN0
IHBsYXRmb3JtID0gdGhpcy5wbGF0Zm9ybSgpOwogICAgICAgICBjb25zdCBtZXRyaWMgPSB0aGlz
Lm1ldHJpYygpOwogICAgICAgICBpZiAoIXBsYXRmb3JtIHx8ICFtZXRyaWMpCkBAIC0xNzgsNiAr
MTc3LDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAg
ICAgIGNvbnN0IGxhc3RNb2RpZmllZCA9IHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpOwog
ICAgICAgICBjb25zdCBtZWFzdXJlbWVudFNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQocGxh
dGZvcm0uaWQoKSwgbWV0cmljLmlkKCksIGxhc3RNb2RpZmllZCk7CiAgICAgICAgIGNvbnN0IGZl
dGNoaW5nTWVhc3VyZW1lbnRTZXRQcm9taXNlID0gbWVhc3VyZW1lbnRTZXQuZmV0Y2hCZXR3ZWVu
KHRoaXMuc3RhcnRUaW1lKCksIHRoaXMuZW5kVGltZSgpKTsKKyAgICAgICAgY29uc3QgZmV0Y2hp
bmdNZWFzdXJlbWVudFNldEZvck90aGVyUGxhdGZvcm1JblNhbWVHcm91cFByb21pc2VzID0gdGhp
cy5fY29tbWl0U2V0Rm9yT3RoZXJQbGF0Zm9ybXNJblNhbWVHcm91cCgpOwogCiAgICAgICAgIGNv
bnN0IGFsbFRlc3RHcm91cHNJblRhc2sgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRo
aXMuaWQoKSk7CiAgICAgICAgIGNvbnN0IGFsbENvbW1pdFNldHNJblRhc2sgPSBuZXcgU2V0OwpA
QCAtMTg5LDggKzE4OSwyNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2sgZXh0ZW5kcyBMYWJlbGVkT2Jq
ZWN0IHsKICAgICAgICAgY29uc3Qgc2VyaWVzID0gbWVhc3VyZW1lbnRTZXQuZmV0Y2hlZFRpbWVT
ZXJpZXMoJ2N1cnJlbnQnLCBmYWxzZSwgZmFsc2UpOwogICAgICAgICBjb25zdCBzdGFydFBvaW50
ID0gc2VyaWVzLmZpbmRCeUlkKHRoaXMuc3RhcnRNZWFzdXJlbWVudElkKCkpOwogICAgICAgICBj
b25zdCBlbmRQb2ludCA9IHNlcmllcy5maW5kQnlJZCh0aGlzLmVuZE1lYXN1cmVtZW50SWQoKSk7
CisgICAgICAgIGNvbnN0IGNvbW1pdFNldExpc3QgPSBBcnJheS5mcm9tKHNlcmllcy52aWV3QmV0
d2VlblBvaW50cyhzdGFydFBvaW50LCBlbmRQb2ludCkpLm1hcCgocG9pbnQpID0+IHBvaW50LmNv
bW1pdFNldCgpKTsKKyAgICAgICAgY29uc3QgYXJyYXlPZkNvbW1pdFNldExpc3QgPSBhd2FpdCBQ
cm9taXNlLmFsbChmZXRjaGluZ01lYXN1cmVtZW50U2V0Rm9yT3RoZXJQbGF0Zm9ybUluU2FtZUdy
b3VwUHJvbWlzZXMpOworCisgICAgICAgIHJldHVybiBbLi4uY29tbWl0U2V0TGlzdC5jb25jYXQo
Li4uYXJyYXlPZkNvbW1pdFNldExpc3QpLCAuLi5hbGxDb21taXRTZXRzSW5UYXNrXTsKKyAgICB9
CiAKLSAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oc2VyaWVzLnZpZXdCZXR3ZWVuUG9pbnRzKHN0
YXJ0UG9pbnQsIGVuZFBvaW50KSkubWFwKChwb2ludCkgPT4gcG9pbnQuY29tbWl0U2V0KCkpOwor
ICAgIF9jb21taXRTZXRGb3JPdGhlclBsYXRmb3Jtc0luU2FtZUdyb3VwKCkKKyAgICB7CisgICAg
ICAgIGNvbnN0IG1ldHJpYyA9IHRoaXMubWV0cmljKCk7CisgICAgICAgIGlmICghbWV0cmljIHx8
ICF0aGlzLnBsYXRmb3JtKCkgfHwgIXRoaXMucGxhdGZvcm0oKS5ncm91cCgpKQorICAgICAgICAg
ICAgcmV0dXJuIFtdOworICAgICAgICBjb25zdCBvdGhlclBsYXRmb3JtcyA9IHRoaXMucGxhdGZv
cm0oKS5ncm91cCgpLnBsYXRmb3JtcygpLmZpbHRlcigocGxhdGZvcm0pID0+IHBsYXRmb3JtICE9
IHRoaXMucGxhdGZvcm0oKSk7CisgICAgICAgIHJldHVybiBvdGhlclBsYXRmb3Jtcy5tYXAoYXN5
bmMgKHBsYXRmb3JtKSA9PiB7CisgICAgICAgICAgICBjb25zdCBsYXN0TW9kaWZpZWQgPSBwbGF0
Zm9ybS5sYXN0TW9kaWZpZWQobWV0cmljKTsKKyAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50
U2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldChwbGF0Zm9ybS5pZCgpLCBtZXRyaWMuaWQoKSwg
bGFzdE1vZGlmaWVkKTsKKyAgICAgICAgICAgIGF3YWl0IG1lYXN1cmVtZW50U2V0LmZldGNoQmV0
d2Vlbih0aGlzLnN0YXJ0VGltZSgpLCB0aGlzLmVuZFRpbWUoKSk7CisgICAgICAgICAgICBjb25z
dCBzZXJpZXMgPSBtZWFzdXJlbWVudFNldC5mZXRjaGVkVGltZVNlcmllcygnY3VycmVudCcsIGZh
bHNlLCBmYWxzZSk7CisgICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzVmlldyA9IHNlcmllcy52
aWV3QmV0d2VlblRpbWUodGhpcy5zdGFydFRpbWUoKSwgdGhpcy5lbmRUaW1lKCkpOworCisgICAg
ICAgICAgICByZXR1cm4gdGltZVNlcmllc1ZpZXcgPyBBcnJheS5mcm9tKHRpbWVTZXJpZXNWaWV3
KS5tYXAoKHBvaW50KSA9PiBwb2ludC5jb21taXRTZXQoKSkgOiBbXTsKKyAgICAgICAgfSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIGNhdGVnb3JpZXMoKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tYW5pZmVzdC5qcwppbmRleCAwOWFlYTVjNzhj
ODQyNWIwZjg5Nzg0NmUzN2I5ZDQ4YjhmYzgwYWI4Li5kMzFlOTRmNDNhYTJmNzBlZTYwZTgzYTI2
ODBiZDFjYWYyZDYwMTVhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9tYW5pZmVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy9tYW5pZmVzdC5qcwpAQCAtMTAsNiArMTAsNyBAQCBjbGFzcyBNYW5p
ZmVzdCB7CiAgICAgICAgIENvbW1pdExvZy5jbGVhclN0YXRpY01hcCgpOwogICAgICAgICBNZXRy
aWMuY2xlYXJTdGF0aWNNYXAoKTsKICAgICAgICAgUGxhdGZvcm0uY2xlYXJTdGF0aWNNYXAoKTsK
KyAgICAgICAgUGxhdGZvcm1Hcm91cC5jbGVhclN0YXRpY01hcCgpOwogICAgICAgICBSZXBvc2l0
b3J5LmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgIENvbW1pdFNldC5jbGVhclN0YXRpY01hcCgp
OwogICAgICAgICBUZXN0LmNsZWFyU3RhdGljTWFwKCk7CkBAIC01MCwxMiArNTEsMTQgQEAgY2xh
c3MgTWFuaWZlc3QgewogICAgICAgICAgICAgcmF3LnRlc3QgPSBUZXN0LmZpbmRCeUlkKHJhdy50
ZXN0KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgYnVpbGRPYmplY3RzRnJvbUlkTWFwKHJhd1Jl
c3BvbnNlLnBsYXRmb3JtR3JvdXBzLCBQbGF0Zm9ybUdyb3VwKTsKICAgICAgICAgYnVpbGRPYmpl
Y3RzRnJvbUlkTWFwKHJhd1Jlc3BvbnNlLmFsbCwgUGxhdGZvcm0sIChyYXcpID0+IHsKICAgICAg
ICAgICAgIHJhdy5sYXN0TW9kaWZpZWRCeU1ldHJpYyA9IHt9OwogICAgICAgICAgICAgcmF3Lmxh
c3RNb2RpZmllZC5mb3JFYWNoKChsYXN0TW9kaWZpZWQsIGluZGV4KSA9PiB7CiAgICAgICAgICAg
ICAgICAgcmF3Lmxhc3RNb2RpZmllZEJ5TWV0cmljW3Jhdy5tZXRyaWNzW2luZGV4XV0gPSBsYXN0
TW9kaWZpZWQ7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJhdy5tZXRyaWNzID0gcmF3
Lm1ldHJpY3MubWFwKChpZCkgPT4geyByZXR1cm4gTWV0cmljLmZpbmRCeUlkKGlkKTsgfSk7Cisg
ICAgICAgICAgICByYXcuZ3JvdXAgPSBQbGF0Zm9ybUdyb3VwLmZpbmRCeUlkKHJhdy5ncm91cCk7
CiAgICAgICAgIH0pOwogICAgICAgICBidWlsZE9iamVjdHNGcm9tSWRNYXAocmF3UmVzcG9uc2Uu
YnVpbGRlcnMsIEJ1aWxkZXIpOwogICAgICAgICBidWlsZE9iamVjdHNGcm9tSWRNYXAocmF3UmVz
cG9uc2UucmVwb3NpdG9yaWVzLCBSZXBvc2l0b3J5KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLWdyb3VwLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcGxhdGZvcm0tZ3JvdXAuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2FlOWQ2MzAyMTEzMTQ5MTNhN2UyMjQwYjlhYzFmYjg2YmE2Y2Y2MQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Bs
YXRmb3JtLWdyb3VwLmpzCkBAIC0wLDAgKzEsMTUgQEAKKyd1c2Ugc3RyaWN0JzsKKworY2xhc3Mg
UGxhdGZvcm1Hcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgeworICAgIGNvbnN0cnVjdG9yKGlk
LCBvYmplY3QpCisgICAgeworICAgICAgICBzdXBlcihpZCwgb2JqZWN0KTsKKyAgICAgICAgdGhp
cy5lbnN1cmVOYW1lZFN0YXRpY01hcCgnbmFtZScpW29iamVjdC5uYW1lXSA9IHRoaXM7CisgICAg
ICAgIHRoaXMuX3BsYXRmb3JtcyA9IG5ldyBTZXQ7CisgICAgfQorICAgIGFkZFBsYXRmb3JtKHBs
YXRmb3JtKSB7dGhpcy5fcGxhdGZvcm1zLmFkZChwbGF0Zm9ybSk7fQorICAgIHBsYXRmb3Jtcygp
IHsgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fcGxhdGZvcm1zKTsgfQorfQorCitpZiAodHlwZW9m
IG1vZHVsZSAhPSAndW5kZWZpbmVkJykKKyAgICBtb2R1bGUuZXhwb3J0cy5QbGF0Zm9ybUdyb3Vw
ID0gUGxhdGZvcm1Hcm91cDsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvbW9kZWxzL3BsYXRmb3JtLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvcGxhdGZvcm0uanMKaW5kZXggYzU0YjY1YTFmYWI1NDM5MTZkNmI5ZDM5
MDBhZjY4YWExN2ZjYjg4Mi4uZjAxZGMyNWZhZDZiOTM0MGZmMTNhNTkxZWI4MWU3ZDVjMjVmZGMy
ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
cGxhdGZvcm0uanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvcGxhdGZvcm0uanMKQEAgLTEyLDYgKzEyLDEwIEBAIGNsYXNzIFBsYXRmb3JtIGV4dGVuZHMg
TGFiZWxlZE9iamVjdCB7CiAKICAgICAgICAgZm9yICh2YXIgbWV0cmljIG9mIHRoaXMuX21ldHJp
Y3MpCiAgICAgICAgICAgICBtZXRyaWMuYWRkUGxhdGZvcm0odGhpcyk7CisKKyAgICAgICAgdGhp
cy5fZ3JvdXAgPSBvYmplY3QuZ3JvdXA7CisgICAgICAgIGlmICh0aGlzLl9ncm91cCkKKyAgICAg
ICAgICAgIHRoaXMuX2dyb3VwLmFkZFBsYXRmb3JtKHRoaXMpOwogICAgIH0KIAogICAgIHN0YXRp
YyBmaW5kQnlOYW1lKG5hbWUpCkBAIC00Miw2ICs0Niw4IEBAIGNsYXNzIFBsYXRmb3JtIGV4dGVu
ZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1ldHJpYyBpbnN0YW5j
ZW9mIE1ldHJpYyk7CiAgICAgICAgIHJldHVybiB0aGlzLl9sYXN0TW9kaWZpZWRCeU1ldHJpY1tt
ZXRyaWMuaWQoKV07CiAgICAgfQorCisgICAgZ3JvdXAoKSB7IHJldHVybiB0aGlzLl9ncm91cDsg
fQogfQogCiBpZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJykKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RpbWUtc2VyaWVzLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMK
aW5kZXggMmY3NmQ1M2M5ODQzY2M1MTM4OGVkOWUyM2QyYjdkNDlhYWU4OTA1MC4uOTM4ODlhNmMz
YWZmNzJiNTQyZTYzOWI1NmI0YzZkNjE0NmM2OWQ2ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKQEAgLTcx
LDYgKzcxLDE5IEBAIGNsYXNzIFRpbWVTZXJpZXMgewogICAgIGZpbmRCeUlkKGlkKSB7IHJldHVy
biB0aGlzLl9kYXRhLmZpbmQoZnVuY3Rpb24gKHBvaW50KSB7IHJldHVybiBwb2ludC5pZCA9PSBp
ZCB9KTsgfQogCiAgICAgZmluZFBvaW50QWZ0ZXJUaW1lKHRpbWUpIHsgcmV0dXJuIHRoaXMuX2Rh
dGEuZmluZChmdW5jdGlvbiAocG9pbnQpIHsgcmV0dXJuIHBvaW50LnRpbWUgPj0gdGltZTsgfSk7
IH0KKyAgICB2aWV3QmV0d2VlblRpbWUoc3RhcnRUaW1lLCBlbmRUaW1lKQorICAgIHsKKyAgICAg
ICAgY29uc3Qgc3RhcnRQb2ludCA9IHRoaXMuZmluZFBvaW50QWZ0ZXJUaW1lKHN0YXJ0VGltZSk7
CisgICAgICAgIGlmICghc3RhcnRQb2ludCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAg
ICAgICBsZXQgZW5kUG9pbnQgPSB0aGlzLmZpbmRQb2ludEFmdGVyVGltZShlbmRUaW1lKTsKKyAg
ICAgICAgaWYgKCFlbmRQb2ludCkKKyAgICAgICAgICAgIGVuZFBvaW50ID0gdGhpcy5sYXN0UG9p
bnQoKTsKKyAgICAgICAgZWxzZSBpZiAoZW5kUG9pbnQudGltZSA+IGVuZFRpbWUpCisgICAgICAg
ICAgICBlbmRQb2ludCA9IHRoaXMucHJldmlvdXNQb2ludChlbmRQb2ludCk7CisKKyAgICAgICAg
cmV0dXJuIHRoaXMudmlld0JldHdlZW5Qb2ludHMoc3RhcnRQb2ludCwgZW5kUG9pbnQpOworICAg
IH0KIAogICAgIHZpZXdCZXR3ZWVuUG9pbnRzKGZpcnN0UG9pbnQsIGxhc3RQb2ludCkKICAgICB7
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1t
YW5pZmVzdC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLW1hbmlmZXN0LXRlc3RzLmpzCmluZGV4IDI3NWE0Mjk3OTRhZGMzYjRjZWEwMDUxYjE2ZTFm
YmM1ZWY3MjNkZDEuLjEyOWM1YzQyM2NkYzY4OTI2YWIxMjliN2Q4OTg3NjNlYjY5OTgyMzIgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlm
ZXN0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLW1hbmlmZXN0LXRlc3RzLmpzCkBAIC0xNCw3ICsxNCw3IEBAIGRlc2NyaWJlKCcvYXBpL21h
bmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgIGl0KCJzaG91bGQgZ2VuZXJhdGUgYW4gZW1wdHkg
bWFuaWZlc3Qgd2hlbiBkYXRhYmFzZSBpcyBlbXB0eSIsICgpID0+IHsKICAgICAgICAgcmV0dXJu
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9tYW5pZmVzdCcpLnRoZW4oKG1h
bmlmZXN0KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKG1h
bmlmZXN0KS5zb3J0KCksIFsnYWxsJywgJ2J1Z1RyYWNrZXJzJywgJ2J1aWxkZXJzJywgJ2Rhc2hi
b2FyZCcsICdkYXNoYm9hcmRzJywKLSAgICAgICAgICAgICAgICAnZmlsZVVwbG9hZFNpemVMaW1p
dCcsICdtZXRyaWNzJywgJ3JlcG9zaXRvcmllcycsICdzaXRlVGl0bGUnLCAnc3RhdHVzJywgJ3N1
bW1hcnlQYWdlcycsICd0ZXN0QWdlVG9sZXJhbmNlSW5Ib3VycycsICd0ZXN0cycsICd0cmlnZ2Vy
YWJsZXMnXSk7CisgICAgICAgICAgICAgICAgJ2ZpbGVVcGxvYWRTaXplTGltaXQnLCAnbWV0cmlj
cycsICdwbGF0Zm9ybUdyb3VwcycsICdyZXBvc2l0b3JpZXMnLCAnc2l0ZVRpdGxlJywgJ3N0YXR1
cycsICdzdW1tYXJ5UGFnZXMnLCAndGVzdEFnZVRvbGVyYW5jZUluSG91cnMnLCAndGVzdHMnLCAn
dHJpZ2dlcmFibGVzJ10pOwogCiAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1h
bmlmZXN0LCB7CiAgICAgICAgICAgICAgICAgc2l0ZVRpdGxlOiBUZXN0U2VydmVyLnRlc3RDb25m
aWcoKS5zaXRlVGl0bGUsCkBAIC0yNSw2ICsyNSw3IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGRhc2hib2FyZHM6IHt9LAogICAgICAg
ICAgICAgICAgIGZpbGVVcGxvYWRTaXplTGltaXQ6IDIwOTcxNTIsIC8vIDJNQiBkdXJpbmcgdGVz
dGluZy4KICAgICAgICAgICAgICAgICBtZXRyaWNzOiB7fSwKKyAgICAgICAgICAgICAgICBwbGF0
Zm9ybUdyb3Vwczoge30sCiAgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiB7fSwKICAgICAg
ICAgICAgICAgICB0ZXN0QWdlVG9sZXJhbmNlSW5Ib3VyczogbnVsbCwKICAgICAgICAgICAgICAg
ICB0ZXN0czoge30sCkBAIC0xODUsOCArMTg2LDEwIEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0ZXN0X21ldHJpY3MnLCB7
aWQ6IDcsIHRlc3Q6IDIsIG5hbWU6ICdNYWxsb2MnLCBhZ2dyZWdhdG9yOiAyMDB9KSwKICAgICAg
ICAgICAgIGRiLmluc2VydCgndGVzdF9tZXRyaWNzJywge2lkOiA4LCB0ZXN0OiAzLCBuYW1lOiAn
VGltZSd9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgndGVzdF9tZXRyaWNzJywge2lkOiA5LCB0
ZXN0OiA0LCBuYW1lOiAnVGltZSd9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgncGxhdGZvcm1z
Jywge2lkOiAyMywgbmFtZTogJ2lPUyA5IGlQaG9uZSA1cyd9KSwKLSAgICAgICAgICAgIGRiLmlu
c2VydCgncGxhdGZvcm1zJywge2lkOiA0NiwgbmFtZTogJ1RydW5rIE1hdmVyaWNrcyd9KSwKKyAg
ICAgICAgICAgIGRiLmluc2VydCgncGxhdGZvcm1fZ3JvdXBzJywge2lkOiAxLCBuYW1lOiAnaW9z
J30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdwbGF0Zm9ybV9ncm91cHMnLCB7aWQ6IDIsIG5h
bWU6ICdtYWMnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3BsYXRmb3JtcycsIHtpZDogMjMs
IG5hbWU6ICdpT1MgOSBpUGhvbmUgNXMnLCBncm91cDogMX0pLAorICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdwbGF0Zm9ybXMnLCB7aWQ6IDQ2LCBuYW1lOiAnVHJ1bmsgTWF2ZXJpY2tzJywgZ3JvdXA6
IDJ9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgndGVzdF9jb25maWd1cmF0aW9ucycsIHtpZDog
MTAxLCBtZXRyaWM6IDUsIHBsYXRmb3JtOiA0NiwgdHlwZTogJ2N1cnJlbnQnfSksCiAgICAgICAg
ICAgICBkYi5pbnNlcnQoJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDEwMiwgbWV0cmljOiA2
LCBwbGF0Zm9ybTogNDYsIHR5cGU6ICdjdXJyZW50J30pLAogICAgICAgICAgICAgZGIuaW5zZXJ0
KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge2lkOiAxMDMsIG1ldHJpYzogNywgcGxhdGZvcm06IDQ2
LCB0eXBlOiAnY3VycmVudCd9KSwKQEAgLTIxNCwxNiArMjE3LDE4IEBAIGRlc2NyaWJlKCcvYXBp
L21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBsZXQgbWFuaWZlc3QgPSBN
YW5pZmVzdC5fZGlkRmV0Y2hNYW5pZmVzdChjb250ZW50KTsKIAotICAgICAgICAgICAgbGV0IHNv
bWVUZXN0ID0gVGVzdC5maW5kQnlJZCgxKTsKLSAgICAgICAgICAgIGxldCBzb21lVGVzdE1ldHJp
YyA9IE1ldHJpYy5maW5kQnlJZCg1KTsKLSAgICAgICAgICAgIGxldCBzb21lT3RoZXJUZXN0ID0g
VGVzdC5maW5kQnlJZCgyKTsKLSAgICAgICAgICAgIGxldCBzb21lT3RoZXJUZXN0VGltZSA9IE1l
dHJpYy5maW5kQnlJZCg2KTsKLSAgICAgICAgICAgIGxldCBzb21lT3RoZXJUZXN0TWFsbG9jID0g
TWV0cmljLmZpbmRCeUlkKDcpOwotICAgICAgICAgICAgbGV0IGNoaWxkVGVzdCA9IFRlc3QuZmlu
ZEJ5SWQoMyk7Ci0gICAgICAgICAgICBsZXQgY2hpbGRUZXN0TWV0cmljID0gTWV0cmljLmZpbmRC
eUlkKDgpOwotICAgICAgICAgICAgbGV0IGdyYW5kQ2hpbGRUZXN0ID0gVGVzdC5maW5kQnlJZCg0
KTsKLSAgICAgICAgICAgIGxldCBpb3M5aXBob25lNXMgPSBQbGF0Zm9ybS5maW5kQnlJZCgyMyk7
Ci0gICAgICAgICAgICBsZXQgbWF2ZXJpY2tzID0gUGxhdGZvcm0uZmluZEJ5SWQoNDYpOworICAg
ICAgICAgICAgY29uc3Qgc29tZVRlc3QgPSBUZXN0LmZpbmRCeUlkKDEpOworICAgICAgICAgICAg
Y29uc3Qgc29tZVRlc3RNZXRyaWMgPSBNZXRyaWMuZmluZEJ5SWQoNSk7CisgICAgICAgICAgICBj
b25zdCBzb21lT3RoZXJUZXN0ID0gVGVzdC5maW5kQnlJZCgyKTsKKyAgICAgICAgICAgIGNvbnN0
IHNvbWVPdGhlclRlc3RUaW1lID0gTWV0cmljLmZpbmRCeUlkKDYpOworICAgICAgICAgICAgY29u
c3Qgc29tZU90aGVyVGVzdE1hbGxvYyA9IE1ldHJpYy5maW5kQnlJZCg3KTsKKyAgICAgICAgICAg
IGNvbnN0IGNoaWxkVGVzdCA9IFRlc3QuZmluZEJ5SWQoMyk7CisgICAgICAgICAgICBjb25zdCBj
aGlsZFRlc3RNZXRyaWMgPSBNZXRyaWMuZmluZEJ5SWQoOCk7CisgICAgICAgICAgICBjb25zdCBn
cmFuZENoaWxkVGVzdCA9IFRlc3QuZmluZEJ5SWQoNCk7CisgICAgICAgICAgICBjb25zdCBpb3M5
aXBob25lNXMgPSBQbGF0Zm9ybS5maW5kQnlJZCgyMyk7CisgICAgICAgICAgICBjb25zdCBtYXZl
cmlja3MgPSBQbGF0Zm9ybS5maW5kQnlJZCg0Nik7CisgICAgICAgICAgICBjb25zdCBpb3NHcm91
cCA9IFBsYXRmb3JtR3JvdXAuZmluZEJ5SWQoMSk7CisgICAgICAgICAgICBjb25zdCBtYWNHcm91
cCA9IFBsYXRmb3JtR3JvdXAuZmluZEJ5SWQoMik7CiAgICAgICAgICAgICBhc3NlcnQoc29tZVRl
c3QpOwogICAgICAgICAgICAgYXNzZXJ0KHNvbWVUZXN0TWV0cmljKTsKICAgICAgICAgICAgIGFz
c2VydChzb21lT3RoZXJUZXN0KTsKQEAgLTIzNCw2ICsyMzksOCBAQCBkZXNjcmliZSgnL2FwaS9t
YW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChncmFuZENoaWxkVGVz
dCk7CiAgICAgICAgICAgICBhc3NlcnQoaW9zOWlwaG9uZTVzKTsKICAgICAgICAgICAgIGFzc2Vy
dChtYXZlcmlja3MpOworICAgICAgICAgICAgYXNzZXJ0KGlvc0dyb3VwKTsKKyAgICAgICAgICAg
IGFzc2VydChtYWNHcm91cCk7CiAKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChtYXZlcmlja3Mu
bmFtZSgpLCAnVHJ1bmsgTWF2ZXJpY2tzJyk7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tz
Lmhhc1Rlc3Qoc29tZVRlc3QpKTsKQEAgLTI0NCw2ICsyNTEsNyBAQCBkZXNjcmliZSgnL2FwaS9t
YW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChtYXZlcmlja3MuaGFz
TWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAgICAgICAgICAgICBhc3NlcnQobWF2ZXJpY2tz
Lmhhc01ldHJpYyhzb21lT3RoZXJUZXN0TWFsbG9jKSk7CiAgICAgICAgICAgICBhc3NlcnQobWF2
ZXJpY2tzLmhhc01ldHJpYyhjaGlsZFRlc3RNZXRyaWMpKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChtYXZlcmlja3MuZ3JvdXAoKSwgbWFjR3JvdXApOwogCiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoaW9zOWlwaG9uZTVzLm5hbWUoKSwgJ2lPUyA5IGlQaG9uZSA1cycpOwogICAgICAgICAg
ICAgYXNzZXJ0KGlvczlpcGhvbmU1cy5oYXNUZXN0KHNvbWVUZXN0KSk7CkBAIC0yNTQsNiArMjYy
LDE1IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgYXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKHNvbWVPdGhlclRlc3RUaW1lKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWlvczlpcGhvbmU1cy5oYXNNZXRyaWMoc29tZU90aGVyVGVzdE1h
bGxvYykpOwogICAgICAgICAgICAgYXNzZXJ0KCFpb3M5aXBob25lNXMuaGFzTWV0cmljKGNoaWxk
VGVzdE1ldHJpYykpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGlvczlpcGhvbmU1cy5ncm91
cCgpLCBpb3NHcm91cCk7CisKKyAgICAgICAgICAgIGNvbnN0IG1hY1BsYXRmb3JtcyA9IG1hY0dy
b3VwLnBsYXRmb3JtcygpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtcy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG1hY1BsYXRmb3Jtc1swXSwgbWF2
ZXJpY2tzKTsKKworICAgICAgICAgICAgY29uc3QgaW9zUGxhdGZvcm1zID0gaW9zR3JvdXAucGxh
dGZvcm1zKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1zLmxlbmd0aCwg
MSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW9zUGxhdGZvcm1zWzBdLCBpb3M5aXBob25l
NXMpOwogCiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc29tZVRlc3QubmFtZSgpLCAnU29tZVRl
c3QnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzb21lVGVzdC5wYXJlbnRUZXN0KCksIG51
bGwpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2RhdGFi
YXNlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2RhdGFiYXNlLmpzCmlu
ZGV4IGVlOGQ0ZmZlNjQzNjUxY2ZlY2ZkMTFiZmM2NDg4ODVkOGE0MjJmYTUuLjBmMzZmMzY5OWI3
Y2Q3ODM2MGNhMTE3Y2ZlMGRhZmQ2ZGZkYzc1YjkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9kYXRhYmFzZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMKQEAgLTE0OCw2ICsxNDgsNyBAQCBjb25zdCB0YWJs
ZVRvUHJlZml4TWFwID0gewogICAgICd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vwcyc6ICdy
ZXBvc2l0b3J5Z3JvdXAnLAogICAgICd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnOiAndHJpZ3Jl
cG8nLAogICAgICdwbGF0Zm9ybXMnOiAncGxhdGZvcm0nLAorICAgICdwbGF0Zm9ybV9ncm91cHMn
OiAncGxhdGZvcm1ncm91cCcsCiAgICAgJ3JlcG9ydHMnOiAncmVwb3J0JywKICAgICAncmVwb3Np
dG9yaWVzJzogJ3JlcG9zaXRvcnknLAogICAgICdjb21taXRfc2V0cyc6ICdjb21taXRzZXQnLApk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMKaW5kZXgg
ZjIwOGU4NDhmMDU2MzM1MGMzYWNiNTUxZmY4OTgyYTNjOGZmNDI4MC4uNmExMWRiYzY3ZmY2MzU2
MjJhMzhlNzcxODk0ZTkyODVhMzc1NzcwNyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCkBAIC0yNCw2ICsyNCw3IEBAIGltcG9ydEZyb21WMygn
bW9kZWxzL21lYXN1cmVtZW50LWNsdXN0ZXIuanMnLCAnTWVhc3VyZW1lbnRDbHVzdGVyJyk7CiBp
bXBvcnRGcm9tVjMoJ21vZGVscy9tZWFzdXJlbWVudC1zZXQuanMnLCAnTWVhc3VyZW1lbnRTZXQn
KTsKIGltcG9ydEZyb21WMygnbW9kZWxzL21ldHJpYy5qcycsICdNZXRyaWMnKTsKIGltcG9ydEZy
b21WMygnbW9kZWxzL3BsYXRmb3JtLmpzJywgJ1BsYXRmb3JtJyk7CitpbXBvcnRGcm9tVjMoJ21v
ZGVscy9wbGF0Zm9ybS1ncm91cC5qcycsICdQbGF0Zm9ybUdyb3VwJyk7CiBpbXBvcnRGcm9tVjMo
J21vZGVscy9yZXBvc2l0b3J5LmpzJywgJ1JlcG9zaXRvcnknKTsKIGltcG9ydEZyb21WMygnbW9k
ZWxzL2NvbW1pdC1zZXQuanMnLCAnTWVhc3VyZW1lbnRDb21taXRTZXQnKTsKIGltcG9ydEZyb21W
MygnbW9kZWxzL2NvbW1pdC1zZXQuanMnLCAnQ29tbWl0U2V0Jyk7Cg==
</data>
<flag name="review"
          id="375148"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>