<?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>152671</bug_id>
          
          <creation_ts>2016-01-03 15:23:28 -0800</creation_ts>
          <short_desc>Web Inspector: add a DebugUI context menu item for saving inspector protocol traffic to file</short_desc>
          <delta_ts>2020-09-10 14:54:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=216380</see_also>
          <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>
          
          <blocked>147066</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1152165</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-01-03 15:23:28 -0800</bug_when>
    <thetext>Yay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152166</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-01-03 15:23:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/24034007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152177</commentid>
    <comment_count>2</comment_count>
      <attachid>268153</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-01-03 16:09:27 -0800</bug_when>
    <thetext>Created attachment 268153
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152388</commentid>
    <comment_count>3</comment_count>
      <attachid>268153</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-01-04 10:58:23 -0800</bug_when>
    <thetext>Comment on attachment 268153
Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:1390
&gt; +        }, /* checked */ isCapturingTraffic);

Comment here isn&apos;t that useful.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:1394
&gt; +        protocolSubMenu.appendItem(WebInspector.unlocalizedString(&quot;Export Trace...&quot;), () =&gt; {

Proper ellipsis.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:1397
&gt; +        }, /* disabled */ !isCapturingTraffic);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152452</commentid>
    <comment_count>4</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-01-04 12:37:29 -0800</bug_when>
    <thetext>Committed r194546: &lt;http://trac.webkit.org/changeset/194546&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152617</commentid>
    <comment_count>5</comment_count>
      <attachid>268153</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-04 19:01:30 -0800</bug_when>
    <thetext>Comment on attachment 268153
Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Debug/ProtocolTrace.js:37
&gt; +    addEntry(entry) {

Style: Braces

&gt; Source/WebInspectorUI/UserInterface/Debug/ProtocolTrace.js:41
&gt; +    get saveData() {

Style: Braces</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268153</attachid>
            <date>2016-01-03 16:09:27 -0800</date>
            <delta_ts>2016-01-04 10:58:23 -0800</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-152671-20160103160853.patch</filename>
            <type>text/plain</type>
            <size>28186</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3
OTllZjVjZGU1ZjI3ZjBkZTVkNDI0ZTc2NTEwNTk1ZDRkNzJiZTM5Li5jYzcyMGFlZWM4YmI4YjIw
ZjU3NTc2ZDk4MDY2OGU1ZDVhN2EwZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MiBAQAorMjAxNi0wMS0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgYSBEZWJ1Z1VJIGNvbnRleHQgbWVudSBpdGVtIGZv
ciBzYXZpbmcgaW5zcGVjdG9yIHByb3RvY29sIHRyYWZmaWMgdG8gZmlsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNjcxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHRyYWNlciB0aGF0
IGNhcHR1cmVzIGFsbCBtZXNzYWdlcywgYW5kIGRlYnVnIGNvbnRleHQgbWVudQorICAgICAgICBp
dGVtcyB0byBjb250cm9sIHdoZXRoZXIgdG8gY2FwdHVyZSBwcm90b2NvbCB0cmFmZmljIGFuZCBl
eHBvcnQgaXQuCisgICAgICAgIEluIGxhdGVyIHBhdGNoZXMsIGEgcmVjaXByb2NhbCAiSW1wb3J0
Li4uIiBjb250ZXh0IG1lbnUgaXRlbSB3aWxsCisgICAgICAgIGFsbG93IG9wZW5pbmcgc2F2ZWQg
cHJvdG9jb2wgdHJhY2VzIGFuZCB2aWV3aW5nIHRoZW0gaW4gYSBkZWJ1ZyBVSQorICAgICAgICBj
b250ZW50IHZpZXcgZm9yIGRlYnVnZ2luZy92aXN1YWxpemluZyBwcm90b2NvbCB0cmFmZmljLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9EZWJ1Zy9DYXB0dXJpbmdQcm90b2NvbFRyYWNlci5qczogQ29waWVkIGZyb20gU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUHJvdG9jb2xUcmFjZXIu
anMuCisKKyAgICAgICAgICAgIFRoaXMgdHJhY2VyIHNhdmVzIGV2ZXJ5dGhpbmcgaW50byBhIGZs
YXQgYXJyYXkuIEpTT04gcHJvdG9jb2wKKyAgICAgICAgICAgIG1lc3NhZ2VzIGFyZSBzYXZlZCBh
cyBlc2NhcGVkIHN0cmluZ3MsIGluIGNhc2UgdGhleSBhcmUgbm90CisgICAgICAgICAgICB2YWxp
ZCBKU09OLiBXZSB3YW50IHRvIGJlIGFibGUgdG8gZGVidWcgc3VjaCBzY2VuYXJpb3MuCisKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DYXB0dXJpbmdQcm90b2NvbFRyYWNlcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ2FwdHVyaW5nUHJvdG9jb2xUcmFjZXIucHJvdG90eXBlLmdldCB0cmFjZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FwdHVyaW5nUHJvdG9jb2xUcmFjZXIucHJvdG90eXBl
LmxvZ0Zyb250ZW5kRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYXB0dXJpbmdQ
cm90b2NvbFRyYWNlci5wcm90b3R5cGUubG9nUHJvdG9jb2xFcnJvcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ2FwdHVyaW5nUHJvdG9jb2xUcmFjZXIucHJvdG90eXBlLmxvZ0Zyb250ZW5kUmVx
dWVzdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FwdHVyaW5nUHJvdG9jb2xUcmFjZXIucHJv
dG90eXBlLmxvZ0RpZEhhbmRsZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYXB0
dXJpbmdQcm90b2NvbFRyYWNlci5wcm90b3R5cGUubG9nRGlkSGFuZGxlRXZlbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNhcHR1cmluZ1Byb3RvY29sVHJhY2VyLnByb3RvdHlwZS5fc3RyaW5n
aWZ5TWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FwdHVyaW5nUHJvdG9jb2xUcmFj
ZXIucHJvdG90eXBlLl9wcm9jZXNzRW50cnkpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9E
ZWJ1Zy9Qcm90b2NvbFRyYWNlLmpzOiBBZGRlZC4KKworICAgICAgICAgICAgVGhpcyBpcyBhIGR1
bWIgY29udGFpbmVyIHRoYXQgaG9sZHMgcHJvdG9jb2wgdHJhY2UgZGF0YS4gSXQgd2lsbAorICAg
ICAgICAgICAgYmUgcmVzcG9uc2libGUgZm9yIGRlc2VyaWFsaXppbmcgc2F2ZWQgdHJhY2UgZmls
ZXMgaW4gbGF0ZXIgd29yay4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlByb3RvY29sVHJhY2Up
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb3RvY29sVHJhY2UucHJvdG90eXBlLmFkZEVudHJ5
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm90b2NvbFRyYWNlLnByb3RvdHlwZS5nZXQgc2F2
ZURhdGEpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZC5qczoKKyAgICAgICAgKEluc3Bl
Y3RvckJhY2tlbmRDbGFzcyk6CisKKyAgICAgICAgICAgIFNpbXBsaWZ5IHRoZSBpbXBsZW1lbnRh
dGlvbi4gTm93IHRoZXJlIGFyZSBvbmUgb3IgdHdvIHRyYWNlcnMKKyAgICAgICAgICAgIGF0IGFu
eSBnaXZlbiB0aW1lLiBUaGUgZGVmYXVsdCB0cmFjZXIgaGFuZGxlcyBsZWdhY3kgbG9nZ2luZwor
ICAgICAgICAgICAgYmVoYXZpb3IgYW5kIGFsd2F5cyBleGlzdHMuIFRoZSBjdXN0b20gdHJhY2Vy
IGlzIGluc3RhbGxlZCB3aGVuCisgICAgICAgICAgICB0aGUgIkNhcHR1cmUgUHJvdG9jb2wgVHJh
ZmZpYyIgY29udGV4dCBtZW51IGl0ZW0gaXMgdG9nZ2xlZC4KKworICAgICAgICAgICAgRGlzcGF0
Y2ggdG8gdGhlIGFycmF5IG9mIGFjdGl2ZSB0cmFjZXJzIGF0IGVhY2ggdHJhY2UgcG9pbnQuCisg
ICAgICAgICAgICBUcmFjZXJzIG5vdyBnZXQgdGhlIGFjdHVhbCBKU09OIG1lc3NhZ2UgaW5zdGVh
ZCBvZiBhIHN0cmluZ2lmaWVkCisgICAgICAgICAgICB2ZXJzaW9uIHBhc3NlZCBhcyBhbiBhcmd1
bWVudC4KKworICAgICAgICAoSW5zcGVjdG9yQmFja2VuZENsYXNzLnByb3RvdHlwZS5zZXQgZHVt
cEluc3BlY3RvclByb3RvY29sTWVzc2FnZXMpOgorICAgICAgICAoSW5zcGVjdG9yQmFja2VuZENs
YXNzLnByb3RvdHlwZS5nZXQgZHVtcEluc3BlY3RvclByb3RvY29sTWVzc2FnZXMpOgorICAgICAg
ICAoSW5zcGVjdG9yQmFja2VuZENsYXNzLnByb3RvdHlwZS5zZXQgZHVtcEluc3BlY3RvclRpbWVT
dGF0cyk6CisgICAgICAgIChJbnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90eXBlLnNldCBjdXN0
b21UcmFjZXIpOgorICAgICAgICAoSW5zcGVjdG9yQmFja2VuZENsYXNzLnByb3RvdHlwZS5nZXQg
YWN0aXZlVHJhY2Vycyk6CisgICAgICAgIChJbnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90eXBl
Ll9zdGFydE9yU3RvcEF1dG9tYXRpY1RyYWNpbmcpOgorICAgICAgICAoSW5zcGVjdG9yQmFja2Vu
ZENsYXNzLnByb3RvdHlwZS5fc2VuZE1lc3NhZ2VUb0JhY2tlbmQpOgorICAgICAgICAoSW5zcGVj
dG9yQmFja2VuZENsYXNzLnByb3RvdHlwZS5fZGlzcGF0Y2hSZXNwb25zZSk6CisgICAgICAgIChJ
bnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90eXBlLl9kaXNwYXRjaEV2ZW50KToKKyAgICAgICAg
KEluc3BlY3RvckJhY2tlbmRDbGFzcy5wcm90b3R5cGUuc2V0IGFjdGl2ZVRyYWNlcik6IERlbGV0
ZWQuCisgICAgICAgIChJbnNwZWN0b3JCYWNrZW5kQ2xhc3MucHJvdG90eXBlLmdldCBhY3RpdmVU
cmFjZXIpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvTG9nZ2lu
Z1Byb3RvY29sVHJhY2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ2dpbmdQcm90b2Nv
bFRyYWNlci5wcm90b3R5cGUuX3Byb2Nlc3NFbnRyeSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TG9nZ2luZ1Byb3RvY29sVHJhY2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dnaW5nUHJv
dG9jb2xUcmFjZXIucHJvdG90eXBlLmxvZ0Zyb250ZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTG9nZ2luZ1Byb3RvY29sVHJhY2VyLnByb3RvdHlwZS5sb2dXaWxsSGFuZGxlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ2dpbmdQcm90b2NvbFRyYWNlci5wcm90
b3R5cGUubG9nRGlkSGFuZGxlUmVzcG9uc2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ2dp
bmdQcm90b2NvbFRyYWNlci5wcm90b3R5cGUubG9nV2lsbEhhbmRsZUV2ZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Mb2dnaW5nUHJvdG9jb2xUcmFjZXIucHJvdG90eXBlLmxvZ0RpZEhhbmRs
ZUV2ZW50KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL1Byb3RvY29sVHJhY2Vy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb3RvY29sVHJhY2VyLnByb3RvdHlwZS5sb2dG
cm9udGVuZEV4Y2VwdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvdG9jb2xUcmFjZXIu
cHJvdG90eXBlLmxvZ1Byb3RvY29sRXJyb3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb3Rv
Y29sVHJhY2VyLnByb3RvdHlwZS5sb2dGcm9udGVuZFJlcXVlc3QpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlByb3RvY29sVHJhY2VyLnByb3RvdHlwZS5sb2dXaWxsSGFuZGxlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb3RvY29sVHJhY2VyLnByb3RvdHlwZS5sb2dEaWRIYW5k
bGVSZXNwb25zZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvdG9jb2xUcmFjZXIucHJvdG90
eXBlLmxvZ1dpbGxIYW5kbGVFdmVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvdG9jb2xU
cmFjZXIucHJvdG90eXBlLmxvZ0RpZEhhbmRsZUV2ZW50KToKKwogMjAxNi0wMS0wMiAgRGV2aW4g
Um91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBMaXN0IGFsbCByZXNvdXJjZXMgdGhhdCBhcmUgaW5pdGlhdGVkIGJ5IHRoZSBzZWxlY3Rl
ZCByZXNvdXJjZSBpbiB0aGUgTmV0d29yayB0YWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCAzNWI3MDAwN2NmN2NhYzAzZjZjMTY5
OTQ4NmE3ZWI1ZmEwN2YxMzlkLi44NGQ4N2JjMDQ0ZjE2ZDA2MDczZTVkMmJlNDU1MGZmNDUyNzBk
YjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNl
L01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9N
YWluLmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTM3OCw2ICsxMzc4LDIzIEBAIFdlYkluc3BlY3Rvci5fY29udGV4dE1lbnVS
ZXF1ZXN0ZWQgPSBmdW5jdGlvbihldmVudCkKICAgICAgICAgcHJvcG9zZWRDb250ZXh0TWVudS5h
cHBlbmRJdGVtKFdlYkluc3BlY3Rvci51bmxvY2FsaXplZFN0cmluZygiUmVsb2FkIFdlYiBJbnNw
ZWN0b3IiKSwgKCkgPT4gewogICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOwog
ICAgICAgICB9KTsKKworICAgICAgICBsZXQgcHJvdG9jb2xTdWJNZW51ID0gcHJvcG9zZWRDb250
ZXh0TWVudS5hcHBlbmRTdWJNZW51SXRlbShXZWJJbnNwZWN0b3IudW5sb2NhbGl6ZWRTdHJpbmco
IlByb3RvY29sIERlYnVnZ2luZyIpLCBudWxsLCBmYWxzZSk7CisgICAgICAgIGxldCBpc0NhcHR1
cmluZ1RyYWZmaWMgPSBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2ZVRyYWNlciBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5DYXB0dXJpbmdQcm90b2NvbFRyYWNlcjsKKworICAgICAgICBwcm90b2NvbFN1
Yk1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKFdlYkluc3BlY3Rvci51bmxvY2FsaXplZFN0cmluZygi
Q2FwdHVyZSBUcmFjZSIpLCAoKSA9PiB7CisgICAgICAgICAgICBpZiAoaXNDYXB0dXJpbmdUcmFm
ZmljKQorICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuYWN0aXZlVHJhY2VyID0gbnVs
bDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmFj
dGl2ZVRyYWNlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ2FwdHVyaW5nUHJvdG9jb2xUcmFjZXI7Cisg
ICAgICAgIH0sIC8qIGNoZWNrZWQgKi8gaXNDYXB0dXJpbmdUcmFmZmljKTsKKworICAgICAgICBw
cm90b2NvbFN1Yk1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisKKyAgICAgICAgcHJvdG9jb2xTdWJN
ZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLnVubG9jYWxpemVkU3RyaW5nKCJFeHBvcnQgVHJh
Y2UuLi4iKSwgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZm9yY2VTYXZlQXMgPSB0cnVlOwor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNhdmVEYXRhVG9GaWxlKEluc3BlY3RvckJhY2tlbmQu
YWN0aXZlVHJhY2VyLnRyYWNlLnNhdmVEYXRhLCBmb3JjZVNhdmVBcyk7CisgICAgICAgIH0sIC8q
IGRpc2FibGVkICovICFpc0NhcHR1cmluZ1RyYWZmaWMpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IGNvbnN0IG9ubHlFeGlzdGluZyA9IHRydWU7CiAgICAgICAgIHByb3Bvc2VkQ29udGV4dE1lbnUg
PSBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUuY3JlYXRlRnJvbUV2ZW50KGV2ZW50LCBvbmx5RXhp
c3RpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
RGVidWcvQ2FwdHVyaW5nUHJvdG9jb2xUcmFjZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9EZWJ1Zy9DYXB0dXJpbmdQcm90b2NvbFRyYWNlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNDQ3NTRhOGVkZmVkNGI2NTY4ZjBhNWNkZTI5YWIxYWFmZDljNzFjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGVidWcvQ2FwdHVyaW5n
UHJvdG9jb2xUcmFjZXIuanMKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3Bl
Y3Rvci5DYXB0dXJpbmdQcm90b2NvbFRyYWNlciA9IGNsYXNzIENhcHR1cmluZ1Byb3RvY29sVHJh
Y2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlByb3RvY29sVHJhY2VyCit7CisgICAgY29uc3RydWN0
b3IoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLl90cmFjZSA9IG5l
dyBXZWJJbnNwZWN0b3IuUHJvdG9jb2xUcmFjZTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKwor
ICAgIGdldCB0cmFjZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdHJhY2U7CisgICAg
fQorCisgICAgbG9nRnJvbnRlbmRFeGNlcHRpb24obWVzc2FnZSwgZXhjZXB0aW9uKQorICAgIHsK
KyAgICAgICAgdGhpcy5fcHJvY2Vzc0VudHJ5KHt0eXBlOiAiZXhjZXB0aW9uIiwgbWVzc2FnZTog
dGhpcy5fc3RyaW5naWZ5TWVzc2FnZShtZXNzYWdlKSwgZXhjZXB0aW9ufSk7CisgICAgfQorCisg
ICAgbG9nUHJvdG9jb2xFcnJvcihtZXNzYWdlLCBlcnJvcikKKyAgICB7CisgICAgICAgIHRoaXMu
X3Byb2Nlc3NFbnRyeSh7dHlwZTogImVycm9yIiwgbWVzc2FnZTogdGhpcy5fc3RyaW5naWZ5TWVz
c2FnZShtZXNzYWdlKSwgZXJyb3J9KTsKKyAgICB9CisKKyAgICBsb2dGcm9udGVuZFJlcXVlc3Qo
bWVzc2FnZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2Nlc3NFbnRyeSh7dHlwZTogInJlcXVl
c3QiLCBtZXNzYWdlOiB0aGlzLl9zdHJpbmdpZnlNZXNzYWdlKG1lc3NhZ2UpfSk7CisgICAgfQor
CisgICAgbG9nRGlkSGFuZGxlUmVzcG9uc2UobWVzc2FnZSwgdGltaW5ncyA9IG51bGwpCisgICAg
eworICAgICAgICBsZXQgZW50cnkgPSB7dHlwZTogInJlc3BvbnNlIiwgbWVzc2FnZTogdGhpcy5f
c3RyaW5naWZ5TWVzc2FnZShtZXNzYWdlKX07CisgICAgICAgIGlmICh0aW1pbmdzKQorICAgICAg
ICAgICAgZW50cnkudGltaW5ncyA9IE9iamVjdC5zaGFsbG93Q29weSh0aW1pbmdzKTsKKworICAg
ICAgICB0aGlzLl9wcm9jZXNzRW50cnkoZW50cnkpOworICAgIH0KKworICAgIGxvZ0RpZEhhbmRs
ZUV2ZW50KG1lc3NhZ2UsIHRpbWluZ3MgPSBudWxsKQorICAgIHsKKyAgICAgICAgbGV0IGVudHJ5
ID0ge3R5cGU6ICJldmVudCIsIG1lc3NhZ2U6IHRoaXMuX3N0cmluZ2lmeU1lc3NhZ2UobWVzc2Fn
ZSl9OworICAgICAgICBpZiAodGltaW5ncykKKyAgICAgICAgICAgIGVudHJ5LnRpbWluZ3MgPSBP
YmplY3Quc2hhbGxvd0NvcHkodGltaW5ncyk7CisKKyAgICAgICAgdGhpcy5fcHJvY2Vzc0VudHJ5
KGVudHJ5KTsKKyAgICB9CisKKyAgICBfc3RyaW5naWZ5TWVzc2FnZShtZXNzYWdlKQorICAgIHsK
KyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShtZXNzYWdl
KTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgY29uc29sZS5lcnJvcigiY291
bGRuJ3Qgc3RyaW5naWZ5IG9iamVjdDoiLCBtZXNzYWdlLCBlKTsKKyAgICAgICAgICAgIHJldHVy
biB7fTsKKyAgICAgICAgfQorICAgIH0KKworICAgIF9wcm9jZXNzRW50cnkoZW50cnkpCisgICAg
eworICAgICAgICB0aGlzLl90cmFjZS5hZGRFbnRyeShlbnRyeSk7CisgICAgfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnL1Byb3RvY29s
VHJhY2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy9Qcm90
b2NvbFRyYWNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNmE5NjVkODM1YmUzZDk4ODJkY2I1ZmI5MjUwOTkx
YjE0YTE5ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9EZWJ1Zy9Qcm90b2NvbFRyYWNlLmpzCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitXZWJJbnNwZWN0b3IuUHJvdG9jb2xUcmFjZSA9IGNsYXNzIFByb3RvY29sVHJhY2UgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAg
ICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLl9lbnRyaWVzID0gW107CisgICAgfQorCisg
ICAgLy8gUHVibGljCisKKyAgICBhZGRFbnRyeShlbnRyeSkgeworICAgICAgICB0aGlzLl9lbnRy
aWVzLnB1c2goZW50cnkpOworICAgIH0KKworICAgIGdldCBzYXZlRGF0YSgpIHsKKyAgICAgICAg
bGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgIGxldCBZWVlZID0gbm93LmdldEZ1bGxZZWFy
KCk7CisgICAgICAgIGxldCBNTSA9IG5vdy5nZXRNb250aCgpICsgMTsKKyAgICAgICAgbGV0IERE
ID0gbm93LmdldERhdGUoKTsKKyAgICAgICAgbGV0IGhoID0gbm93LmdldEhvdXJzKCk7CisgICAg
ICAgIGxldCBtbSA9IG5vdy5nZXRNaW51dGVzKCk7CisgICAgICAgIGxldCBzcyA9IG5vdy5nZXRT
ZWNvbmRzKCk7CisKKyAgICAgICAgLy8gVGhpcyBmb2xsb3dzIHRoZSBmaWxlIG5hbWUgb2Ygc2Ny
ZWVuIHNob3RzIG9uIE9TIFggKGVuLVVTKToKKyAgICAgICAgLy8gIlByb3RvY29sIFRyYWNlIDIw
MTUtMTItMzEgYXQgMTIuNDMuMDQuanNvbiIuCisgICAgICAgIC8vIFdoZW4gdGhlIEludGwgQVBJ
IGlzIGltcGxlbWVudGVkLCB3ZSBjYW4gZG8gYSBiZXR0ZXIgam9iLgorICAgICAgICBsZXQgZmls
ZW5hbWUgPSBXZWJJbnNwZWN0b3IudW5sb2NhbGl6ZWRTdHJpbmcoYFByb3RvY29sIFRyYWNlIGF0
ICR7WVlZWX0tJHtNTX0tJHtERH0gJHtoaH0uJHttbX0uJHtzc30uanNvbmApOworICAgICAgICBy
ZXR1cm4ge3VybDogIndlYi1pbnNwZWN0b3I6Ly8vIiArIGVuY29kZVVSSUNvbXBvbmVudChmaWxl
bmFtZSksIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHRoaXMuX2VudHJpZXMpfTsKKyAgICB9Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5o
dG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4
IDIyZjk5NWM3NThlNDVjMTdmMThhNjliNjliMGMxNjgyYzQzNDM5NWQuLmI5ZTVkMzVjMDczMzgy
OTIzYWUzNmQ2YjczNGUwNGEwMTlmMDViMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTY0Myw2ICs2NDMsOCBAQAogICAgIDxzY3JpcHQg
c3JjPSJCYXNlL01haW4uanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IkRlYnVnL0Jv
b3RzdHJhcC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IkRlYnVnL0NhcHR1cmluZ1By
b3RvY29sVHJhY2VyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iRGVidWcvUHJvdG9j
b2xUcmFjZS5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0PgogICAgICAgICBXZWJJbnNwZWN0
b3IubG9hZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZC5qcwppbmRleCAzNDMxMzA4
NDBmMDkwMjgzODZmMjM1NDk3MzIzMDA0ZGZjNzE2MjVmLi4zMmIxZGM1NzIzZjVjNTRlMjUxZTM3
YzI3NjNjODY0ZGQ0MGFmOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmQuanMKQEAg
LTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1LCAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxNCBVbml2
ZXJzaXR5IG9mIFdhc2hpbmd0b24uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zOCw4ICszOCwxMCBA
QCBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MgPSBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MKICAg
ICAgICAgdGhpcy5fcGVuZGluZ1Jlc3BvbnNlcyA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX2Fn
ZW50cyA9IHt9OwogICAgICAgICB0aGlzLl9kZWZlcnJlZFNjcmlwdHMgPSBbXTsKLSAgICAgICAg
dGhpcy5fYWN0aXZlVHJhY2VyID0gbnVsbDsKLSAgICAgICAgdGhpcy5fYXV0b21hdGljVHJhY2Vy
ID0gbnVsbDsKKworICAgICAgICB0aGlzLl9jdXN0b21UcmFjZXIgPSBudWxsOworICAgICAgICB0
aGlzLl9kZWZhdWx0VHJhY2VyID0gbmV3IFdlYkluc3BlY3Rvci5Mb2dnaW5nUHJvdG9jb2xUcmFj
ZXI7CisgICAgICAgIHRoaXMuX2FjdGl2ZVRyYWNlcnMgPSBbdGhpcy5fZGVmYXVsdFRyYWNlcl07
CiAKICAgICAgICAgdGhpcy5fZHVtcEluc3BlY3RvclRpbWVTdGF0cyA9IGZhbHNlOwogCkBAIC01
OSwxNiArNjEsMTIgQEAgSW5zcGVjdG9yQmFja2VuZENsYXNzID0gY2xhc3MgSW5zcGVjdG9yQmFj
a2VuZENsYXNzCiAgICAgICAgIGxldCBzZXR0aW5nID0gV2ViSW5zcGVjdG9yLmF1dG9Mb2dQcm90
b2NvbE1lc3NhZ2VzU2V0dGluZzsKICAgICAgICAgc2V0dGluZy52YWx1ZSA9IHZhbHVlOwogCi0g
ICAgICAgIGlmICh0aGlzLmFjdGl2ZVRyYWNlciAhPT0gdGhpcy5fYXV0b21hdGljVHJhY2VyKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0aGlzLmFjdGl2ZVRyYWNlcikKLSAg
ICAgICAgICAgIHRoaXMuYWN0aXZlVHJhY2VyLmR1bXBNZXNzYWdlc1RvQ29uc29sZSA9IHZhbHVl
OworICAgICAgICB0aGlzLl9kZWZhdWx0VHJhY2VyLmR1bXBNZXNzYWdlc1RvQ29uc29sZSA9IHZh
bHVlOwogICAgIH0KIAogICAgIGdldCBkdW1wSW5zcGVjdG9yUHJvdG9jb2xNZXNzYWdlcygpCiAg
ICAgewotICAgICAgICByZXR1cm4gISF0aGlzLl9hdXRvbWF0aWNUcmFjZXI7CisgICAgICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IuYXV0b0xvZ1Byb3RvY29sTWVzc2FnZXNTZXR0aW5nLnZhbHVlOwog
ICAgIH0KIAogICAgIHNldCBkdW1wSW5zcGVjdG9yVGltZVN0YXRzKHZhbHVlKQpAQCAtNzYsMTEg
Kzc0LDcgQEAgSW5zcGVjdG9yQmFja2VuZENsYXNzID0gY2xhc3MgSW5zcGVjdG9yQmFja2VuZENs
YXNzCiAgICAgICAgIGlmICghdGhpcy5kdW1wSW5zcGVjdG9yUHJvdG9jb2xNZXNzYWdlcykKICAg
ICAgICAgICAgIHRoaXMuZHVtcEluc3BlY3RvclByb3RvY29sTWVzc2FnZXMgPSB0cnVlOwogCi0g
ICAgICAgIGlmICh0aGlzLmFjdGl2ZVRyYWNlciAhPT0gdGhpcy5fYXV0b21hdGljVHJhY2VyKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0aGlzLmFjdGl2ZVRyYWNlcikKLSAg
ICAgICAgICAgIHRoaXMuYWN0aXZlVHJhY2VyLmR1bXBUaW1pbmdEYXRhVG9Db25zb2xlID0gdmFs
dWU7CisgICAgICAgIHRoaXMuX2RlZmF1bHRUcmFjZXIuZHVtcFRpbWluZ0RhdGFUb0NvbnNvbGUg
PSB2YWx1ZTsKICAgICB9CiAKICAgICBnZXQgZHVtcEluc3BlY3RvclRpbWVTdGF0cygpCkBAIC04
OCw0MCArODIsMzYgQEAgSW5zcGVjdG9yQmFja2VuZENsYXNzID0gY2xhc3MgSW5zcGVjdG9yQmFj
a2VuZENsYXNzCiAgICAgICAgIHJldHVybiB0aGlzLl9kdW1wSW5zcGVjdG9yVGltZVN0YXRzOwog
ICAgIH0KIAotICAgIHNldCBhY3RpdmVUcmFjZXIodHJhY2VyKQorICAgIHNldCBjdXN0b21UcmFj
ZXIodHJhY2VyKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRyYWNlciB8fCB0cmFj
ZXIgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUHJvdG9jb2xUcmFjZXIpOworICAgICAgICBjb25z
b2xlLmFzc2VydCghdHJhY2VyIHx8IHRyYWNlciBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm90
b2NvbFRyYWNlciwgdHJhY2VyKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRyYWNlciB8fCB0
cmFjZXIgIT09IHRoaXMuX2RlZmF1bHRUcmFjZXIsIHRyYWNlcik7CiAKICAgICAgICAgLy8gQmFp
bCBlYXJseSBpZiBubyBzdGF0ZSBjaGFuZ2UgaXMgdG8gYmUgbWFkZS4KLSAgICAgICAgaWYgKCF0
cmFjZXIgJiYgIXRoaXMuX2FjdGl2ZVRyYWNlcikKKyAgICAgICAgaWYgKCF0cmFjZXIgJiYgIXRo
aXMuX2N1c3RvbVRyYWNlcikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAodHJh
Y2VyID09PSB0aGlzLl9hY3RpdmVUcmFjZXIpCisgICAgICAgIGlmICh0cmFjZXIgPT09IHRoaXMu
X2N1c3RvbVRyYWNlcikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBEb24ndCBh
bGxvdyBhbiBhdXRvbWF0aWMgdHJhY2VyIHRvIGRpc2xvZGdlIGEgY3VzdG9tIHRyYWNlci4KLSAg
ICAgICAgaWYgKHRoaXMuX2FjdGl2ZVRyYWNlciAmJiB0cmFjZXIgPT09IHRoaXMuX2F1dG9tYXRp
Y1RyYWNlcikKKyAgICAgICAgaWYgKHRyYWNlciA9PT0gdGhpcy5fZGVmYXVsdFRyYWNlcikKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAodGhpcy5hY3RpdmVUcmFjZXIpCi0gICAg
ICAgICAgICB0aGlzLmFjdGl2ZVRyYWNlci5sb2dGaW5pc2hlZCgpOworICAgICAgICBpZiAodGhp
cy5fY3VzdG9tVHJhY2VyKQorICAgICAgICAgICAgdGhpcy5fY3VzdG9tVHJhY2VyLmxvZ0Zpbmlz
aGVkKCk7CiAKLSAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZVRyYWNlciA9PT0gdGhpcy5fYXV0b21h
dGljVHJhY2VyKQotICAgICAgICAgICAgdGhpcy5fYXV0b21hdGljVHJhY2VyID0gbnVsbDsKKyAg
ICAgICAgdGhpcy5fY3VzdG9tVHJhY2VyID0gdHJhY2VyOworICAgICAgICB0aGlzLl9hY3RpdmVU
cmFjZXJzID0gW3RoaXMuX2RlZmF1bHRUcmFjZXJdOwogCi0gICAgICAgIHRoaXMuX2FjdGl2ZVRy
YWNlciA9IHRyYWNlcjsKLSAgICAgICAgaWYgKHRoaXMuYWN0aXZlVHJhY2VyKQotICAgICAgICAg
ICAgdGhpcy5hY3RpdmVUcmFjZXIubG9nU3RhcnRlZCgpOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIElmIHRoZSBjdXN0b20gdHJhY2VyIHdhcyByZW1vdmVkIGFuZCBhdXRvbWF0aWMg
dHJhY2luZyBpcyBlbmFibGVkLAotICAgICAgICAgICAgLy8gdGhlbiBjcmVhdGUgYSBuZXcgYXV0
b21hdGljIHRyYWNlciBhbmQgaW5zdGFsbCBpdCBpbiBpdHMgcGxhY2UuCi0gICAgICAgICAgICB0
aGlzLl9zdGFydE9yU3RvcEF1dG9tYXRpY1RyYWNpbmcoKTsKKyAgICAgICAgaWYgKHRoaXMuX2N1
c3RvbVRyYWNlcikgeworICAgICAgICAgICAgdGhpcy5fY3VzdG9tVHJhY2VyLmxvZ1N0YXJ0ZWQo
KTsKKyAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVRyYWNlcnMucHVzaCh0aGlzLl9jdXN0b21UcmFj
ZXIpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgZ2V0IGFjdGl2ZVRyYWNlcigpCisgICAgZ2V0
IGFjdGl2ZVRyYWNlcnMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVRyYWNl
ciB8fCBudWxsOworICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlVHJhY2VyczsKICAgICB9CiAK
ICAgICByZWdpc3RlckNvbW1hbmQocXVhbGlmaWVkTmFtZSwgY2FsbFNpZ25hdHVyZSwgcmVwbHlT
aWduYXR1cmUpCkBAIC0xODcsMjQgKzE3Nyw4IEBAIEluc3BlY3RvckJhY2tlbmRDbGFzcyA9IGNs
YXNzIEluc3BlY3RvckJhY2tlbmRDbGFzcwogCiAgICAgX3N0YXJ0T3JTdG9wQXV0b21hdGljVHJh
Y2luZygpCiAgICAgewotICAgICAgICBsZXQgc2V0dGluZyA9IFdlYkluc3BlY3Rvci5hdXRvTG9n
UHJvdG9jb2xNZXNzYWdlc1NldHRpbmc7Ci0KLSAgICAgICAgLy8gQmFpbCBpZiB0aGVyZSBpcyBu
byBzdGF0ZSB0cmFuc2l0aW9uIHRvIGJlIG1hZGUuCi0gICAgICAgIGlmICghKHNldHRpbmcudmFs
dWUgXiAhIXRoaXMuYWN0aXZlVHJhY2VyKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBpZiAoIXNldHRpbmcudmFsdWUpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZVRyYWNl
ciA9PT0gdGhpcy5fYXV0b21hdGljVHJhY2VyKQotICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZl
VHJhY2VyID0gbnVsbDsKLQotICAgICAgICAgICAgdGhpcy5fYXV0b21hdGljVHJhY2VyID0gbnVs
bDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuX2F1dG9tYXRpY1RyYWNlciA9
IG5ldyBXZWJJbnNwZWN0b3IuTG9nZ2luZ1Byb3RvY29sVHJhY2VyOwotICAgICAgICAgICAgdGhp
cy5fYXV0b21hdGljVHJhY2VyLmR1bXBNZXNzYWdlc1RvQ29uc29sZSA9IHRoaXMuZHVtcEluc3Bl
Y3RvclByb3RvY29sTWVzc2FnZXM7Ci0gICAgICAgICAgICB0aGlzLl9hdXRvbWF0aWNUcmFjZXIu
ZHVtcFRpbWluZ0RhdGFUb0NvbnNvbGUgPSB0aGlzLmR1bXBUaW1pbmdEYXRhVG9Db25zb2xlOwot
ICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGJlIGlnbm9yZWQgaWYgYSBjdXN0b20gdHJhY2VyIGlz
IGluc3RhbGxlZC4KLSAgICAgICAgICAgIHRoaXMuYWN0aXZlVHJhY2VyID0gdGhpcy5fYXV0b21h
dGljVHJhY2VyOwotICAgICAgICB9CisgICAgICAgIHRoaXMuX2RlZmF1bHRUcmFjZXIuZHVtcE1l
c3NhZ2VzVG9Db25zb2xlID0gdGhpcy5kdW1wSW5zcGVjdG9yUHJvdG9jb2xNZXNzYWdlczsKKyAg
ICAgICAgdGhpcy5fZGVmYXVsdFRyYWNlci5kdW1wVGltaW5nRGF0YVRvQ29uc29sZSA9IHRoaXMu
ZHVtcFRpbWluZ0RhdGFUb0NvbnNvbGU7CiAgICAgfQogCiAgICAgX2FnZW50Rm9yRG9tYWluKGRv
bWFpbk5hbWUpCkBAIC0yNjcsMTEgKzI0MSwxMCBAQCBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MgPSBj
bGFzcyBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MKIAogICAgIF9zZW5kTWVzc2FnZVRvQmFja2VuZCht
ZXNzYWdlT2JqZWN0KQogICAgIHsKLSAgICAgICAgbGV0IHN0cmluZ2lmaWVkTWVzc2FnZSA9IEpT
T04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QpOwotICAgICAgICBpZiAodGhpcy5hY3RpdmVUcmFj
ZXIpCi0gICAgICAgICAgICB0aGlzLmFjdGl2ZVRyYWNlci5sb2dGcm9udGVuZFJlcXVlc3Qoc3Ry
aW5naWZpZWRNZXNzYWdlKTsKKyAgICAgICAgZm9yIChsZXQgdHJhY2VyIG9mIHRoaXMuYWN0aXZl
VHJhY2VycykKKyAgICAgICAgICAgIHRyYWNlci5sb2dGcm9udGVuZFJlcXVlc3QobWVzc2FnZU9i
amVjdCk7CiAKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNlbmRNZXNzYWdlVG9CYWNr
ZW5kKHN0cmluZ2lmaWVkTWVzc2FnZSk7CisgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5z
ZW5kTWVzc2FnZVRvQmFja2VuZChKU09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0KSk7CiAgICAg
fQogCiAgICAgX2Rpc3BhdGNoUmVzcG9uc2UobWVzc2FnZU9iamVjdCkKQEAgLTI4NiwxNCArMjU5
LDEyIEBAIEluc3BlY3RvckJhY2tlbmRDbGFzcyA9IGNsYXNzIEluc3BlY3RvckJhY2tlbmRDbGFz
cwogICAgICAgICBsZXQgc2VxdWVuY2VJZCA9IG1lc3NhZ2VPYmplY3RbImlkIl07CiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3BlbmRpbmdSZXNwb25zZXMuaGFzKHNlcXVlbmNlSWQpLCBz
ZXF1ZW5jZUlkLCB0aGlzLl9wZW5kaW5nUmVzcG9uc2VzKTsKIAotICAgICAgICBsZXQgcmVzcG9u
c2VEYXRhID0gdGhpcy5fcGVuZGluZ1Jlc3BvbnNlcy50YWtlKHNlcXVlbmNlSWQpOworICAgICAg
ICBsZXQgcmVzcG9uc2VEYXRhID0gdGhpcy5fcGVuZGluZ1Jlc3BvbnNlcy50YWtlKHNlcXVlbmNl
SWQpIHx8IHt9OwogICAgICAgICBsZXQge2NvbW1hbmQsIGNhbGxiYWNrLCBwcm9taXNlfSA9IHJl
c3BvbnNlRGF0YTsKIAotICAgICAgICBsZXQgcHJvY2Vzc2luZ1N0YXJ0VGltZXN0YW1wOwotICAg
ICAgICBpZiAodGhpcy5hY3RpdmVUcmFjZXIpIHsKLSAgICAgICAgICAgIHByb2Nlc3NpbmdTdGFy
dFRpbWVzdGFtcCA9IHRpbWVzdGFtcCgpOwotICAgICAgICAgICAgdGhpcy5hY3RpdmVUcmFjZXIu
bG9nV2lsbEhhbmRsZVJlc3BvbnNlKEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QpKTsKLSAg
ICAgICAgfQorICAgICAgICBsZXQgcHJvY2Vzc2luZ1N0YXJ0VGltZXN0YW1wID0gdGltZXN0YW1w
KCk7CisgICAgICAgIGZvciAobGV0IHRyYWNlciBvZiB0aGlzLmFjdGl2ZVRyYWNlcnMpCisgICAg
ICAgICAgICB0cmFjZXIubG9nV2lsbEhhbmRsZVJlc3BvbnNlKG1lc3NhZ2VPYmplY3QpOwogCiAg
ICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICJmdW5jdGlvbiIpCiAgICAgICAgICAgICB0
aGlzLl9kaXNwYXRjaFJlc3BvbnNlVG9DYWxsYmFjayhjb21tYW5kLCBtZXNzYWdlT2JqZWN0LCBj
YWxsYmFjayk7CkBAIC0zMDIsMTEgKzI3MywxMSBAQCBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MgPSBj
bGFzcyBJbnNwZWN0b3JCYWNrZW5kQ2xhc3MKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY29u
c29sZS5lcnJvcigiUmVjZWl2ZWQgYSBjb21tYW5kIHJlc3BvbnNlIHdpdGhvdXQgYSBjb3JyZXNw
b25kaW5nIGNhbGxiYWNrIG9yIHByb21pc2UuIiwgbWVzc2FnZU9iamVjdCwgY29tbWFuZCk7CiAK
LSAgICAgICAgaWYgKHRoaXMuYWN0aXZlVHJhY2VyKSB7Ci0gICAgICAgICAgICBsZXQgcHJvY2Vz
c2luZ1RpbWUgPSAodGltZXN0YW1wKCkgLSBwcm9jZXNzaW5nU3RhcnRUaW1lc3RhbXApLnRvRml4
ZWQoMyk7Ci0gICAgICAgICAgICBsZXQgcm91bmRUcmlwVGltZSA9IChwcm9jZXNzaW5nU3RhcnRU
aW1lc3RhbXAgLSByZXNwb25zZURhdGEuc2VuZFJlcXVlc3RUaW1lc3RhbXApLnRvRml4ZWQoMyk7
Ci0gICAgICAgICAgICB0aGlzLmFjdGl2ZVRyYWNlci5sb2dEaWRIYW5kbGVSZXNwb25zZShKU09O
LnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0KSwge3J0dDogcm91bmRUcmlwVGltZSwgZGlzcGF0Y2g6
IHByb2Nlc3NpbmdUaW1lfSk7Ci0gICAgICAgIH0KKyAgICAgICAgbGV0IHByb2Nlc3NpbmdUaW1l
ID0gKHRpbWVzdGFtcCgpIC0gcHJvY2Vzc2luZ1N0YXJ0VGltZXN0YW1wKS50b0ZpeGVkKDMpOwor
ICAgICAgICBsZXQgcm91bmRUcmlwVGltZSA9IChwcm9jZXNzaW5nU3RhcnRUaW1lc3RhbXAgLSBy
ZXNwb25zZURhdGEuc2VuZFJlcXVlc3RUaW1lc3RhbXApLnRvRml4ZWQoMyk7CisKKyAgICAgICAg
Zm9yIChsZXQgdHJhY2VyIG9mIHRoaXMuYWN0aXZlVHJhY2VycykKKyAgICAgICAgICAgIHRyYWNl
ci5sb2dEaWRIYW5kbGVSZXNwb25zZShtZXNzYWdlT2JqZWN0LCB7cnR0OiByb3VuZFRyaXBUaW1l
LCBkaXNwYXRjaDogcHJvY2Vzc2luZ1RpbWV9KTsKIAogICAgICAgICBpZiAodGhpcy5fZGVmZXJy
ZWRTY3JpcHRzLmxlbmd0aCAmJiAhdGhpcy5fcGVuZGluZ1Jlc3BvbnNlcy5zaXplKQogICAgICAg
ICAgICAgdGhpcy5fZmx1c2hQZW5kaW5nU2NyaXB0cygpOwpAQCAtMzYzLDI0ICszMzQsMjEgQEAg
SW5zcGVjdG9yQmFja2VuZENsYXNzID0gY2xhc3MgSW5zcGVjdG9yQmFja2VuZENsYXNzCiAgICAg
ICAgIGlmIChtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXSkKICAgICAgICAgICAgIGV2ZW50QXJndW1l
bnRzID0gZXZlbnQucGFyYW1ldGVyTmFtZXMubWFwKChuYW1lKSA9PiBtZXNzYWdlT2JqZWN0WyJw
YXJhbXMiXVtuYW1lXSk7CiAKLSAgICAgICAgbGV0IHByb2Nlc3NpbmdTdGFydFRpbWVzdGFtcDsK
LSAgICAgICAgaWYgKHRoaXMuYWN0aXZlVHJhY2VyKSB7Ci0gICAgICAgICAgICBwcm9jZXNzaW5n
U3RhcnRUaW1lc3RhbXAgPSB0aW1lc3RhbXAoKTsKLSAgICAgICAgICAgIHRoaXMuYWN0aXZlVHJh
Y2VyLmxvZ1dpbGxIYW5kbGVFdmVudChKU09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0KSk7Ci0g
ICAgICAgIH0KKyAgICAgICAgbGV0IHByb2Nlc3NpbmdTdGFydFRpbWVzdGFtcCA9IHRpbWVzdGFt
cCgpOworICAgICAgICBmb3IgKGxldCB0cmFjZXIgb2YgdGhpcy5hY3RpdmVUcmFjZXJzKQorICAg
ICAgICAgICAgdHJhY2VyLmxvZ1dpbGxIYW5kbGVFdmVudChtZXNzYWdlT2JqZWN0KTsKIAogICAg
ICAgICB0cnkgewogICAgICAgICAgICAgYWdlbnQuZGlzcGF0Y2hFdmVudChldmVudE5hbWUsIGV2
ZW50QXJndW1lbnRzKTsKICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgY29uc29s
ZS5lcnJvcigiVW5jYXVnaHQgZXhjZXB0aW9uIGluIGluc3BlY3RvciBwYWdlIHdoaWxlIGhhbmRs
aW5nIGV2ZW50ICIgKyBxdWFsaWZpZWROYW1lLCBlKTsKLSAgICAgICAgICAgIGlmICh0aGlzLmFj
dGl2ZVRyYWNlcikKLSAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRyYWNlci5sb2dGcm9udGVu
ZEV4Y2VwdGlvbihKU09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0KSwgZSk7CisgICAgICAgICAg
ICBmb3IgKGxldCB0cmFjZXIgb2YgdGhpcy5hY3RpdmVUcmFjZXJzKQorICAgICAgICAgICAgICAg
IHRyYWNlci5sb2dGcm9udGVuZEV4Y2VwdGlvbihtZXNzYWdlT2JqZWN0LCBlKTsKICAgICAgICAg
fQogCi0gICAgICAgIGlmICh0aGlzLmFjdGl2ZVRyYWNlcikgewotICAgICAgICAgICAgbGV0IHBy
b2Nlc3NpbmdUaW1lID0gKHRpbWVzdGFtcCgpIC0gcHJvY2Vzc2luZ1N0YXJ0VGltZXN0YW1wKS50
b0ZpeGVkKDMpOwotICAgICAgICAgICAgdGhpcy5hY3RpdmVUcmFjZXIubG9nRGlkSGFuZGxlRXZl
bnQoSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9iamVjdCksIHtkaXNwYXRjaDogcHJvY2Vzc2luZ1Rp
bWV9KTsKLSAgICAgICAgfQorICAgICAgICBsZXQgcHJvY2Vzc2luZ0R1cmF0aW9uID0gKHRpbWVz
dGFtcCgpIC0gcHJvY2Vzc2luZ1N0YXJ0VGltZXN0YW1wKS50b0ZpeGVkKDMpOworICAgICAgICBm
b3IgKGxldCB0cmFjZXIgb2YgdGhpcy5hY3RpdmVUcmFjZXJzKQorICAgICAgICAgICAgdHJhY2Vy
LmxvZ0RpZEhhbmRsZUV2ZW50KG1lc3NhZ2VPYmplY3QsIHtkaXNwYXRjaDogcHJvY2Vzc2luZ0R1
cmF0aW9ufSk7CiAgICAgfQogCiAgICAgX3JlcG9ydFByb3RvY29sRXJyb3IobWVzc2FnZU9iamVj
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3Rv
Y29sL0xvZ2dpbmdQcm90b2NvbFRyYWNlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Byb3RvY29sL0xvZ2dpbmdQcm90b2NvbFRyYWNlci5qcwppbmRleCBkOWY4ZmVh
YjNiYzdjZTdmOTEyNzZlZWUyMDU5NGYyM2VmZmNkODAxLi4yZDEzZGNjNjRkZTdmY2ZhYWVhN2I1
ZGQyOTljYTU0MGQwNGQ5NzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9Mb2dnaW5nUHJvdG9jb2xUcmFjZXIuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvTG9nZ2luZ1Byb3RvY29sVHJh
Y2VyLmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC02OCwyMyArNjgsMTcgQEAgV2ViSW5zcGVjdG9yLkxvZ2dpbmdQcm90b2NvbFRyYWNl
ciA9IGNsYXNzIExvZ2dpbmdQcm90b2NvbFRyYWNlciBleHRlbmRzIFdlYkluc3AKIAogICAgIGxv
Z0Zyb250ZW5kUmVxdWVzdChtZXNzYWdlKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
dHlwZW9mIG1lc3NhZ2UgPT09ICJzdHJpbmciLCAiTXVzdCBzdHJpbmdpZnkgbWVzc2FnZXMgdG8g
YXZvaWQgbGVha2luZyBhbGwgSlNPTiBwcm90b2NvbCBtZXNzYWdlcy4iKQotCiAgICAgICAgIHRo
aXMuX3Byb2Nlc3NFbnRyeSh7dHlwZTogInJlcXVlc3QiLCBtZXNzYWdlfSk7CiAgICAgfQogCiAg
ICAgbG9nV2lsbEhhbmRsZVJlc3BvbnNlKG1lc3NhZ2UpCiAgICAgewotICAgICAgICBjb25zb2xl
LmFzc2VydCh0eXBlb2YgbWVzc2FnZSA9PT0gInN0cmluZyIsICJNdXN0IHN0cmluZ2lmeSBtZXNz
YWdlcyB0byBhdm9pZCBsZWFraW5nIGFsbCBKU09OIHByb3RvY29sIG1lc3NhZ2VzLiIpCi0KICAg
ICAgICAgbGV0IGVudHJ5ID0ge3R5cGU6ICJyZXNwb25zZSIsIG1lc3NhZ2V9OwogICAgICAgICB0
aGlzLl9wcm9jZXNzRW50cnkoZW50cnkpOwogICAgIH0KIAogICAgIGxvZ0RpZEhhbmRsZVJlc3Bv
bnNlKG1lc3NhZ2UsIHRpbWluZ3MgPSBudWxsKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQodHlwZW9mIG1lc3NhZ2UgPT09ICJzdHJpbmciLCAiTXVzdCBzdHJpbmdpZnkgbWVzc2FnZXMg
dG8gYXZvaWQgbGVha2luZyBhbGwgSlNPTiBwcm90b2NvbCBtZXNzYWdlcy4iKQotCiAgICAgICAg
IGxldCBlbnRyeSA9IHt0eXBlOiAicmVzcG9uc2UiLCBtZXNzYWdlfTsKICAgICAgICAgaWYgKHRp
bWluZ3MpCiAgICAgICAgICAgICBlbnRyeS50aW1pbmdzID0gT2JqZWN0LnNoYWxsb3dDb3B5KHRp
bWluZ3MpOwpAQCAtOTQsMTYgKzg4LDEyIEBAIFdlYkluc3BlY3Rvci5Mb2dnaW5nUHJvdG9jb2xU
cmFjZXIgPSBjbGFzcyBMb2dnaW5nUHJvdG9jb2xUcmFjZXIgZXh0ZW5kcyBXZWJJbnNwCiAKICAg
ICBsb2dXaWxsSGFuZGxlRXZlbnQobWVzc2FnZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHR5cGVvZiBtZXNzYWdlID09PSAic3RyaW5nIiwgIk11c3Qgc3RyaW5naWZ5IG1lc3NhZ2Vz
IHRvIGF2b2lkIGxlYWtpbmcgYWxsIEpTT04gcHJvdG9jb2wgbWVzc2FnZXMuIikKLQogICAgICAg
ICBsZXQgZW50cnkgPSB7dHlwZTogImV2ZW50IiwgbWVzc2FnZX07CiAgICAgICAgIHRoaXMuX3By
b2Nlc3NFbnRyeShlbnRyeSk7CiAgICAgfQogCiAgICAgbG9nRGlkSGFuZGxlRXZlbnQobWVzc2Fn
ZSwgdGltaW5ncyA9IG51bGwpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2Yg
bWVzc2FnZSA9PT0gInN0cmluZyIsICJNdXN0IHN0cmluZ2lmeSBtZXNzYWdlcyB0byBhdm9pZCBs
ZWFraW5nIGFsbCBKU09OIHByb3RvY29sIG1lc3NhZ2VzLiIpCi0KICAgICAgICAgbGV0IGVudHJ5
ID0ge3R5cGU6ICJldmVudCIsIG1lc3NhZ2V9OwogICAgICAgICBpZiAodGltaW5ncykKICAgICAg
ICAgICAgIGVudHJ5LnRpbWluZ3MgPSBPYmplY3Quc2hhbGxvd0NvcHkodGltaW5ncyk7CkBAIC0x
MTksNiArMTA5LDYgQEAgV2ViSW5zcGVjdG9yLkxvZ2dpbmdQcm90b2NvbFRyYWNlciA9IGNsYXNz
IExvZ2dpbmdQcm90b2NvbFRyYWNlciBleHRlbmRzIFdlYkluc3AKICAgICAgICAgICAgIGVsc2Ug
aWYgKGVudHJ5LnRpbWluZ3MuZGlzcGF0Y2gpCiAgICAgICAgICAgICAgICAgdGhpcy5fbG9nVG9D
b25zb2xlKGB0aW1lLXN0YXRzOiBIYW5kbGluZzogJHtlbnRyeS50aW1pbmdzLmRpc3BhdGNoIHx8
IE5hTn1tc2ApOwogICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2R1bXBNZXNzYWdlc1RvQ29uc29s
ZSAmJiAhZW50cnkudGltaW5ncykKLSAgICAgICAgICAgIHRoaXMuX2xvZ1RvQ29uc29sZShgJHtl
bnRyeS50eXBlfTogJHtlbnRyeS5tZXNzYWdlfWApOworICAgICAgICAgICAgdGhpcy5fbG9nVG9D
b25zb2xlKGAke2VudHJ5LnR5cGV9OiAke0pTT04uc3RyaW5naWZ5KGVudHJ5Lm1lc3NhZ2UpfWAp
OwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9Qcm90b2NvbFRyYWNlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL1Byb3RvY29sVHJhY2VyLmpzCmluZGV4IDBkMTZjMjEzMTdk
MWM2OTFhMmE4ZjcwMWRiYWI3ZjA5MTk0MDQ5ZTkuLmMxODZiZDI3OGFjOTA5MTNlNWExZTc0MDZh
ZTY1Y2ExNGFmZmQxNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL1Byb3RvY29sVHJhY2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1Byb3RvY29sVHJhY2VyLmpzCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw1MCArMzQs
MzYgQEAgV2ViSW5zcGVjdG9yLlByb3RvY29sVHJhY2VyID0gY2xhc3MgUHJvdG9jb2xUcmFjZXIg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICBsb2dGcm9udGVuZEV4Y2VwdGlvbiht
ZXNzYWdlLCBleGNlcHRpb24pCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2Yg
bWVzc2FnZSA9PT0gInN0cmluZyIsICJNdXN0IHN0cmluZ2lmeSBtZXNzYWdlcyB0byBhdm9pZCBs
ZWFraW5nIGFsbCBKU09OIHByb3RvY29sIG1lc3NhZ2VzLiIpCi0KICAgICAgICAgLy8gVG8gYmUg
b3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLgogICAgIH0KIAogICAgIGxvZ1Byb3RvY29sRXJyb3Io
bWVzc2FnZSwgZXJyb3IpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YgbWVz
c2FnZSA9PT0gInN0cmluZyIsICJNdXN0IHN0cmluZ2lmeSBtZXNzYWdlcyB0byBhdm9pZCBsZWFr
aW5nIGFsbCBKU09OIHByb3RvY29sIG1lc3NhZ2VzLiIpCi0KICAgICAgICAgLy8gVG8gYmUgb3Zl
cnJpZGRlbiBieSBzdWJjbGFzc2VzLgogICAgIH0KIAogICAgIGxvZ0Zyb250ZW5kUmVxdWVzdCht
ZXNzYWdlKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIG1lc3NhZ2UgPT09
ICJzdHJpbmciLCAiTXVzdCBzdHJpbmdpZnkgbWVzc2FnZXMgdG8gYXZvaWQgbGVha2luZyBhbGwg
SlNPTiBwcm90b2NvbCBtZXNzYWdlcy4iKQotCiAgICAgICAgIC8vIFRvIGJlIG92ZXJyaWRkZW4g
Ynkgc3ViY2xhc3Nlcy4KICAgICB9CiAKICAgICBsb2dXaWxsSGFuZGxlUmVzcG9uc2UobWVzc2Fn
ZSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiBtZXNzYWdlID09PSAic3Ry
aW5nIiwgIk11c3Qgc3RyaW5naWZ5IG1lc3NhZ2VzIHRvIGF2b2lkIGxlYWtpbmcgYWxsIEpTT04g
cHJvdG9jb2wgbWVzc2FnZXMuIikKLQogICAgICAgICAvLyBUbyBiZSBvdmVycmlkZGVuIGJ5IHN1
YmNsYXNzZXMuCiAgICAgfQogCiAgICAgbG9nRGlkSGFuZGxlUmVzcG9uc2UobWVzc2FnZSwgdGlt
aW5ncyA9IG51bGwpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YgbWVzc2Fn
ZSA9PT0gInN0cmluZyIsICJNdXN0IHN0cmluZ2lmeSBtZXNzYWdlcyB0byBhdm9pZCBsZWFraW5n
IGFsbCBKU09OIHByb3RvY29sIG1lc3NhZ2VzLiIpCi0KICAgICAgICAgLy8gVG8gYmUgb3ZlcnJp
ZGRlbiBieSBzdWJjbGFzc2VzLgogICAgIH0KIAogICAgIGxvZ1dpbGxIYW5kbGVFdmVudChtZXNz
YWdlKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIG1lc3NhZ2UgPT09ICJz
dHJpbmciLCAiTXVzdCBzdHJpbmdpZnkgbWVzc2FnZXMgdG8gYXZvaWQgbGVha2luZyBhbGwgSlNP
TiBwcm90b2NvbCBtZXNzYWdlcy4iKQotCiAgICAgICAgIC8vIFRvIGJlIG92ZXJyaWRkZW4gYnkg
c3ViY2xhc3Nlcy4KICAgICB9CiAKICAgICBsb2dEaWRIYW5kbGVFdmVudChtZXNzYWdlLCB0aW1p
bmdzID0gbnVsbCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiBtZXNzYWdl
ID09PSAic3RyaW5nIiwgIk11c3Qgc3RyaW5naWZ5IG1lc3NhZ2VzIHRvIGF2b2lkIGxlYWtpbmcg
YWxsIEpTT04gcHJvdG9jb2wgbWVzc2FnZXMuIikKLQogICAgICAgICAvLyBUbyBiZSBvdmVycmlk
ZGVuIGJ5IHN1YmNsYXNzZXMuCiAgICAgfQogCg==
</data>
<flag name="review"
          id="293113"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>