<?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>188449</bug_id>
          
          <creation_ts>2018-08-09 13:21:40 -0700</creation_ts>
          <short_desc>Web Inspector: Remove TreeOutlineDataGridSynchronizer</short_desc>
          <delta_ts>2018-08-22 09:52:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Baker">mattbaker</reporter>
          <assigned_to name="Matt Baker">mattbaker</assigned_to>
          <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1449097</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-08-09 13:21:40 -0700</bug_when>
    <thetext>It is no longer used, now that the Network grid now uses WI.Table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449098</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-09 13:22:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/43107980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449101</commentid>
    <comment_count>2</comment_count>
      <attachid>346859</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-08-09 13:26:27 -0700</bug_when>
    <thetext>Created attachment 346859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450239</commentid>
    <comment_count>3</comment_count>
      <attachid>346859</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-14 21:57:46 -0700</bug_when>
    <thetext>Comment on attachment 346859
Patch

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

r=me, nice cleanup

&gt; Source/WebInspectorUI/ChangeLog:27
&gt; +        (WI.TimelineDataGrid.prototype.dataGridNodeForTreeElement): Deleted.

This function also seems to be defined on `WI.RenderingFrameTimelineView`.  Is that related, or &quot;leftover&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452421</commentid>
    <comment_count>4</comment_count>
      <attachid>347732</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-08-21 17:02:54 -0700</bug_when>
    <thetext>Created attachment 347732
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452466</commentid>
    <comment_count>5</comment_count>
      <attachid>347732</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-21 18:08:54 -0700</bug_when>
    <thetext>Comment on attachment 347732
Patch for landing

Clearing flags on attachment: 347732

Committed r235151: &lt;https://trac.webkit.org/changeset/235151&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452467</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-21 18:08:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452497</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-21 19:39:10 -0700</bug_when>
    <thetext>CC Adrian: I think *every* GTK and WPE bot needs a clean build now:

ninja: error: &apos;../../Source/WebInspectorUI/UserInterface/Views/TreeOutlineDataGridSynchronizer.js&apos;, needed by &apos;inspector-resources.stamp&apos;, missing and no known rule to make it

Problem is Source/WebKit/InspectorGResources.cmake doesn&apos;t have any way to deal with removed JS files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452553</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-22 00:07:37 -0700</bug_when>
    <thetext>TreeOutlineDataGridSynchronizer.js is still included in WebInspectorUI/UserInterface/Main.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452554</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-22 00:13:30 -0700</bug_when>
    <thetext>Committed r235163: &lt;https://trac.webkit.org/changeset/235163&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452605</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-22 06:50:33 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #8)
&gt; TreeOutlineDataGridSynchronizer.js is still included in
&gt; WebInspectorUI/UserInterface/Main.html

Ah, whew! Much better problem to have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452683</commentid>
    <comment_count>11</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-08-22 09:52:24 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #8)
&gt; TreeOutlineDataGridSynchronizer.js is still included in
&gt; WebInspectorUI/UserInterface/Main.html

Oops! Thanks for fixing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346859</attachid>
            <date>2018-08-09 13:26:27 -0700</date>
            <delta_ts>2018-08-21 17:02:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188449-20180809132624.patch</filename>
            <type>text/plain</type>
            <size>27005</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4
MjA3OTlmYTYyNGRiMzg2NDVkOTk2MzhkNDQ4Y2FiNDI0NDliZGQ0Li42NWYyZDM0ZjIxZTJkMzQz
MmE1M2UzZmMwYjgxYmI2NzE4Y2U1YTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOC0wOC0wOSAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIFRyZWVPdXRsaW5lRGF0YUdyaWRTeW5j
aHJvbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4ODQ0OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDMxMDc5ODA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lVmlldy5qczoKKyAgICAgICAgKFdJLkhlYXBBbGxvY2F0
aW9uc1RpbWVsaW5lVmlldy5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lVmlldy5qczoKKyAgICAgICAgKFdJLkxheW91dFRpbWVs
aW5lVmlldy5wcm90b3R5cGUuX3Byb2Nlc3NQZW5kaW5nUmVjb3Jkcyk6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV0kuTmV0
d29ya1RpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Byb2Nlc3NQZW5kaW5nUmVjb3Jkcyk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5qczoK
KyAgICAgICAgKFdJLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3LnByb3RvdHlwZS5fcHJvY2Vz
c1BlbmRpbmdSZWNvcmRzKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdERl
dGFpbHNUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXSS5TY3JpcHREZXRhaWxzVGltZWxpbmVW
aWV3LnByb3RvdHlwZS5fcHJvY2Vzc1BlbmRpbmdSZWNvcmRzKToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanM6CisgICAgICAgIChXSS5UaW1lbGluZURh
dGFHcmlkKToKKyAgICAgICAgKFdJLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBlLnJlc2V0KToK
KyAgICAgICAgKFdJLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBlLnNob3duKToKKyAgICAgICAg
KFdJLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBlLmFkZFJvd0luU29ydE9yZGVyKToKKyAgICAg
ICAgKFdJLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBlLl9yZWZyZXNoRGlydHlEYXRhR3JpZE5v
ZGVzKToKKyAgICAgICAgKFdJLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBlLl9zb3J0KToKKyAg
ICAgICAgKFdJLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBlLnRyZWVFbGVtZW50Rm9yRGF0YUdy
aWROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBl
LmRhdGFHcmlkTm9kZUZvclRyZWVFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIuanM6IFJlbW92ZWQu
CisKIDIwMTgtMDgtMDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgYW5vdGhlciBQcm90b2NvbCBWZXJzaW9uIChpT1Mg
MTIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcuanMKaW5kZXgg
NzYyZjkyYmNjMDA0OWJmNmY1NjUxN2FhMWVmODE1N2NhY2NiM2FlZi4uNzNhNjA0YzdmYmI0Y2Zi
MGEyZDQ3NmE1ZmYzNDEwNzE1YTRjMjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBBbGxvY2F0
aW9uc1RpbWVsaW5lVmlldy5qcwpAQCAtMjY4LDcgKzI2OCw3IEBAIFdJLkhlYXBBbGxvY2F0aW9u
c1RpbWVsaW5lVmlldyA9IGNsYXNzIEhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lVmlldyBleHRlbmRz
IFdJLlRpCiAgICAgICAgIGlmICh0aGlzLl9wZW5kaW5nUmVjb3Jkcy5sZW5ndGgpIHsKICAgICAg
ICAgICAgIGZvciAobGV0IGhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3JkIG9mIHRoaXMuX3Bl
bmRpbmdSZWNvcmRzKSB7CiAgICAgICAgICAgICAgICAgbGV0IGRhdGFHcmlkTm9kZSA9IG5ldyBX
SS5IZWFwQWxsb2NhdGlvbnNUaW1lbGluZURhdGFHcmlkTm9kZShoZWFwQWxsb2NhdGlvbnNUaW1l
bGluZVJlY29yZCwgdGhpcy56ZXJvVGltZSwgdGhpcyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5f
ZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIobnVsbCwgZGF0YUdyaWROb2RlKTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihkYXRhR3JpZE5vZGUpOwog
ICAgICAgICAgICAgICAgIGlmICghdGhpcy56ZXJvVGltZSkKICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fcGVuZGluZ1plcm9UaW1lRGF0YUdyaWROb2Rlcy5wdXNoKGRhdGFHcmlkTm9kZSk7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMKaW5kZXggZWVkOGRkM2Vk
NWZhMjkyZjk0YWRhMzZlNzJlMGRlMzMzOTA5NDc5OC4uYzExNzI0MGNjOTE5ZTdmZjVjZGIxNTY0
OGY2ZjRmMTE3ZTJmZjA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lVmlldy5qcwpAQCAtMjAz
LDcgKzIwMyw3IEBAIFdJLkxheW91dFRpbWVsaW5lVmlldyA9IGNsYXNzIExheW91dFRpbWVsaW5l
VmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmlldwogICAgICAgICBmb3IgKHZhciBsYXlvdXRUaW1l
bGluZVJlY29yZCBvZiB0aGlzLl9wZW5kaW5nUmVjb3JkcykgewogICAgICAgICAgICAgbGV0IGRh
dGFHcmlkTm9kZSA9IG5ldyBXSS5MYXlvdXRUaW1lbGluZURhdGFHcmlkTm9kZShsYXlvdXRUaW1l
bGluZVJlY29yZCwgdGhpcy56ZXJvVGltZSk7CiAKLSAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlk
LmFkZFJvd0luU29ydE9yZGVyKG51bGwsIGRhdGFHcmlkTm9kZSk7CisgICAgICAgICAgICB0aGlz
Ll9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihkYXRhR3JpZE5vZGUpOwogCiAgICAgICAgICAg
ICBsZXQgc3RhY2sgPSBbe2NoaWxkcmVuOiBsYXlvdXRUaW1lbGluZVJlY29yZC5jaGlsZHJlbiwg
cGFyZW50RGF0YUdyaWROb2RlOiBkYXRhR3JpZE5vZGUsIGluZGV4OiAwfV07CiAgICAgICAgICAg
ICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7CkBAIC0yMTgsNyArMjE4LDcgQEAgV0kuTGF5b3V0VGlt
ZWxpbmVWaWV3ID0gY2xhc3MgTGF5b3V0VGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVW
aWV3CiAKICAgICAgICAgICAgICAgICBsZXQgY2hpbGREYXRhR3JpZE5vZGUgPSBuZXcgV0kuTGF5
b3V0VGltZWxpbmVEYXRhR3JpZE5vZGUoY2hpbGRSZWNvcmQsIHRoaXMuemVyb1RpbWUpOwogICAg
ICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGVudHJ5LnBhcmVudERhdGFHcmlkTm9kZSwgIk1p
c3NpbmcgcGFyZW50IG5vZGUgZm9yIGVudHJ5LiIsIGVudHJ5KTsKLSAgICAgICAgICAgICAgICB0
aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihudWxsLCBjaGlsZERhdGFHcmlkTm9kZSwg
ZW50cnkucGFyZW50RGF0YUdyaWROb2RlKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3Jp
ZC5hZGRSb3dJblNvcnRPcmRlcihjaGlsZERhdGFHcmlkTm9kZSwgZW50cnkucGFyZW50RGF0YUdy
aWROb2RlKTsKIAogICAgICAgICAgICAgICAgIGlmIChjaGlsZERhdGFHcmlkTm9kZSAmJiBjaGls
ZFJlY29yZC5jaGlsZHJlbi5sZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgIHN0YWNrLnB1c2go
e2NoaWxkcmVuOiBjaGlsZFJlY29yZC5jaGlsZHJlbiwgcGFyZW50RGF0YUdyaWROb2RlOiBjaGls
ZERhdGFHcmlkTm9kZSwgaW5kZXg6IDB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3Lmpz
CmluZGV4IDg4MGU0ODFiOTM4YzcwYTg0NDk3YTU3N2E3NWIxMGM4ZmNmYTdkOWEuLjJiY2U3NmUw
ZjRmZjIyYWYxNTUxOWY2YWFlODkzMmFlMDllYmVjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVs
aW5lVmlldy5qcwpAQCAtMjU5LDcgKzI1OSw3IEBAIFdJLk5ldHdvcmtUaW1lbGluZVZpZXcgPSBj
bGFzcyBOZXR3b3JrVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3CiAgICAgICAg
ICAgICBkYXRhR3JpZE5vZGUgPSBuZXcgV0kuUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZShy
ZXNvdXJjZVRpbWVsaW5lUmVjb3JkLCBpbmNsdWRlc0dyYXBoLCB0aGlzLCBzaG91bGRTaG93UG9w
b3Zlcik7CiAgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZURhdGFHcmlkTm9kZU1hcC5zZXQocmVz
b3VyY2VUaW1lbGluZVJlY29yZC5yZXNvdXJjZSwgZGF0YUdyaWROb2RlKTsKIAotICAgICAgICAg
ICAgdGhpcy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIobnVsbCwgZGF0YUdyaWROb2RlKTsK
KyAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKGRhdGFHcmlkTm9k
ZSk7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3JkcyA9IFtdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVy
aW5nRnJhbWVUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5qcwppbmRleCBmODM5ZTExZGQ0
NDQwYmM3MDM5ZTc2YTQxMjcxZGQ3ZjA5YTM3ZWM2Li44YTA2Y2JmNTgzMzJjZThlMGNkOTcwYzlh
NWVhODdjNDUwOTY3YTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5l
Vmlldy5qcwpAQCAtMjQwLDcgKzI0MCw3IEBAIFdJLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3
ID0gY2xhc3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5UaW1lCiAgICAg
ICAgICAgICBjb25zb2xlLmFzc2VydChyZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGluc3Rh
bmNlb2YgV0kuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCk7CiAKICAgICAgICAgICAgIGxl
dCBkYXRhR3JpZE5vZGUgPSBuZXcgV0kuUmVuZGVyaW5nRnJhbWVUaW1lbGluZURhdGFHcmlkTm9k
ZShyZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLCB0aGlzLnplcm9UaW1lKTsKLSAgICAgICAg
ICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKG51bGwsIGRhdGFHcmlkTm9kZSk7
CisgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihkYXRhR3JpZE5v
ZGUpOwogCiAgICAgICAgICAgICBsZXQgc3RhY2sgPSBbe2NoaWxkcmVuOiByZW5kZXJpbmdGcmFt
ZVRpbWVsaW5lUmVjb3JkLmNoaWxkcmVuLCBwYXJlbnREYXRhR3JpZE5vZGU6IGRhdGFHcmlkTm9k
ZSwgaW5kZXg6IDB9XTsKICAgICAgICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHsKQEAgLTI1
NSw3ICsyNTUsNyBAQCBXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldyA9IGNsYXNzIFJlbmRl
cmluZ0ZyYW1lVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZQogICAgICAgICAgICAgICAgIGlm
IChjaGlsZFJlY29yZC50eXBlID09PSBXSS5UaW1lbGluZVJlY29yZC5UeXBlLkxheW91dCkgewog
ICAgICAgICAgICAgICAgICAgICBjaGlsZERhdGFHcmlkTm9kZSA9IG5ldyBXSS5MYXlvdXRUaW1l
bGluZURhdGFHcmlkTm9kZShjaGlsZFJlY29yZCwgdGhpcy56ZXJvVGltZSk7CiAKLSAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIobnVsbCwgY2hpbGRE
YXRhR3JpZE5vZGUsIGVudHJ5LnBhcmVudERhdGFHcmlkTm9kZSk7CisgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKGNoaWxkRGF0YUdyaWROb2RlLCBl
bnRyeS5wYXJlbnREYXRhR3JpZE5vZGUpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hp
bGRSZWNvcmQudHlwZSA9PT0gV0kuVGltZWxpbmVSZWNvcmQuVHlwZS5TY3JpcHQpIHsKICAgICAg
ICAgICAgICAgICAgICAgbGV0IHJvb3ROb2RlcyA9IFtdOwogICAgICAgICAgICAgICAgICAgICBp
ZiAoY2hpbGRSZWNvcmQucHJvZmlsZSkgewpAQCAtMjY1LDExICsyNjUsMTEgQEAgV0kuUmVuZGVy
aW5nRnJhbWVUaW1lbGluZVZpZXcgPSBjbGFzcyBSZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldyBl
eHRlbmRzIFdJLlRpbWUKIAogICAgICAgICAgICAgICAgICAgICBjaGlsZERhdGFHcmlkTm9kZSA9
IG5ldyBXSS5TY3JpcHRUaW1lbGluZURhdGFHcmlkTm9kZShjaGlsZFJlY29yZCwgdGhpcy56ZXJv
VGltZSk7CiAKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0
T3JkZXIobnVsbCwgY2hpbGREYXRhR3JpZE5vZGUsIGVudHJ5LnBhcmVudERhdGFHcmlkTm9kZSk7
CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKGNo
aWxkRGF0YUdyaWROb2RlLCBlbnRyeS5wYXJlbnREYXRhR3JpZE5vZGUpOwogCiAgICAgICAgICAg
ICAgICAgICAgIGZvciAobGV0IHByb2ZpbGVOb2RlIG9mIHJvb3ROb2RlcykgewogICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHByb2ZpbGVOb2RlRGF0YUdyaWROb2RlID0gbmV3IFdJLlByb2Zp
bGVOb2RlRGF0YUdyaWROb2RlKHByb2ZpbGVOb2RlLCB0aGlzLnplcm9UaW1lLCB0aGlzLnN0YXJ0
VGltZSwgdGhpcy5lbmRUaW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFH
cmlkLmFkZFJvd0luU29ydE9yZGVyKG51bGwsIHByb2ZpbGVOb2RlRGF0YUdyaWROb2RlLCBjaGls
ZERhdGFHcmlkTm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5h
ZGRSb3dJblNvcnRPcmRlcihwcm9maWxlTm9kZURhdGFHcmlkTm9kZSwgY2hpbGREYXRhR3JpZE5v
ZGUpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHREZXRh
aWxzVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5qcwppbmRleCBkYWFmZTEwZThmOWZmYzY0
ZTA4ZGU3YTM2MTU2NmRmZTJkYjVkMTI1Li44OGMzOTJjMDE1OGNmNTAyN2ZlYmFkYTY4YWI2YTcz
YTgzZTJlZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcuanMK
QEAgLTIxMSwxMSArMjExLDExIEBAIFdJLlNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcgPSBjbGFz
cyBTY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpCiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGxldCBkYXRhR3JpZE5vZGUgPSBuZXcgV0kuU2NyaXB0VGltZWxp
bmVEYXRhR3JpZE5vZGUoc2NyaXB0VGltZWxpbmVSZWNvcmQsIHplcm9UaW1lKTsKLSAgICAgICAg
ICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKG51bGwsIGRhdGFHcmlkTm9kZSk7
CisgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihkYXRhR3JpZE5v
ZGUpOwogCiAgICAgICAgICAgICBmb3IgKGxldCBwcm9maWxlTm9kZSBvZiByb290Tm9kZXMpIHsK
ICAgICAgICAgICAgICAgICBsZXQgcHJvZmlsZU5vZGVEYXRhR3JpZE5vZGUgPSBuZXcgV0kuUHJv
ZmlsZU5vZGVEYXRhR3JpZE5vZGUocHJvZmlsZU5vZGUsIHplcm9UaW1lLCBzdGFydFRpbWUsIGVu
ZFRpbWUpOwotICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVy
KG51bGwsIHByb2ZpbGVOb2RlRGF0YUdyaWROb2RlLCBkYXRhR3JpZE5vZGUpOworICAgICAgICAg
ICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKHByb2ZpbGVOb2RlRGF0YUdy
aWROb2RlLCBkYXRhR3JpZE5vZGUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5l
RGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
aW1lbGluZURhdGFHcmlkLmpzCmluZGV4IGQ0ODFmMzgxNGZiN2U1YmU4NGRhODRhODRkNjVlNTA1
NzhjOTNlYTkuLjYzZWRhYzZjOTRlYTU5NmExOGQ3NGFmMDIwYzRhM2FjZTUyYTFmZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5l
RGF0YUdyaWQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVEYXRhR3JpZC5qcwpAQCAtMjUsMTMgKzI1LDEwIEBACiAKIFdJLlRpbWVsaW5l
RGF0YUdyaWQgPSBjbGFzcyBUaW1lbGluZURhdGFHcmlkIGV4dGVuZHMgV0kuRGF0YUdyaWQKIHsK
LSAgICBjb25zdHJ1Y3Rvcihjb2x1bW5zLCB0cmVlT3V0bGluZSwgc3luY2hyb25pemVyRGVsZWdh
dGUsIGVkaXRDYWxsYmFjaywgZGVsZXRlQ2FsbGJhY2spCisgICAgY29uc3RydWN0b3IoY29sdW1u
cywgZWRpdENhbGxiYWNrLCBkZWxldGVDYWxsYmFjaykKICAgICB7CiAgICAgICAgIHN1cGVyKGNv
bHVtbnMsIGVkaXRDYWxsYmFjaywgZGVsZXRlQ2FsbGJhY2spOwogCi0gICAgICAgIGlmICh0cmVl
T3V0bGluZSkKLSAgICAgICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6
ZXIgPSBuZXcgV0kuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplcih0cmVlT3V0bGluZSwg
dGhpcywgc3luY2hyb25pemVyRGVsZWdhdGUpOwotCiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJ0aW1lbGluZSIpOwogCiAgICAgICAgIHRoaXMuX3NvcnREZWxlZ2F0ZSA9IG51
bGw7CkBAIC0xMDEsOCArOTgsNyBAQCBXSS5UaW1lbGluZURhdGFHcmlkID0gY2xhc3MgVGltZWxp
bmVEYXRhR3JpZCBleHRlbmRzIFdJLkRhdGFHcmlkCiAgICAgewogICAgICAgICAvLyBNYXkgYmUg
b3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLiBJZiBzbywgdGhleSBzaG91bGQgY2FsbCB0aGUgc3Vw
ZXJjbGFzcy4KIAotICAgICAgICBpZiAoIXRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJv
bml6ZXIpCi0gICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHRoaXMu
cmVtb3ZlQ2hpbGRyZW4oKTsKIAogICAgICAgICB0aGlzLl9oaWRlUG9wb3ZlcigpOwogICAgIH0K
QEAgLTExMCw5ICsxMDYsNiBAQCBXSS5UaW1lbGluZURhdGFHcmlkID0gY2xhc3MgVGltZWxpbmVE
YXRhR3JpZCBleHRlbmRzIFdJLkRhdGFHcmlkCiAgICAgc2hvd24oKQogICAgIHsKICAgICAgICAg
Ly8gTWF5IGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4gSWYgc28sIHRoZXkgc2hvdWxkIGNh
bGwgdGhlIHN1cGVyY2xhc3MuCi0KLSAgICAgICAgaWYgKHRoaXMuX3RyZWVPdXRsaW5lRGF0YUdy
aWRTeW5jaHJvbml6ZXIpCi0gICAgICAgICAgICB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3lu
Y2hyb25pemVyLnN5bmNocm9uaXplKCk7CiAgICAgfQogCiAgICAgaGlkZGVuKCkKQEAgLTEyMiw2
MSArMTE1LDIxIEBAIFdJLlRpbWVsaW5lRGF0YUdyaWQgPSBjbGFzcyBUaW1lbGluZURhdGFHcmlk
IGV4dGVuZHMgV0kuRGF0YUdyaWQKICAgICAgICAgdGhpcy5faGlkZVBvcG92ZXIoKTsKICAgICB9
CiAKLSAgICB0cmVlRWxlbWVudEZvckRhdGFHcmlkTm9kZShkYXRhR3JpZE5vZGUpCi0gICAgewot
ICAgICAgICBpZiAoIXRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIpCi0gICAg
ICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICByZXR1cm4gdGhpcy5fdHJlZU91dGxpbmVE
YXRhR3JpZFN5bmNocm9uaXplci50cmVlRWxlbWVudEZvckRhdGFHcmlkTm9kZShkYXRhR3JpZE5v
ZGUpOwotICAgIH0KLQotICAgIGRhdGFHcmlkTm9kZUZvclRyZWVFbGVtZW50KHRyZWVFbGVtZW50
KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25p
emVyKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3Ry
ZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIuZGF0YUdyaWROb2RlRm9yVHJlZUVsZW1lbnQo
dHJlZUVsZW1lbnQpOwotICAgIH0KLQogICAgIGNhbGxGcmFtZVBvcG92ZXJBbmNob3JFbGVtZW50
KCkKICAgICB7CiAgICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCiAgICAgICAg
IHJldHVybiBudWxsOwogICAgIH0KIAotICAgIGFkZFJvd0luU29ydE9yZGVyKHRyZWVFbGVtZW50
LCBkYXRhR3JpZE5vZGUsIHBhcmVudFRyZWVFbGVtZW50T3JEYXRhR3JpZE5vZGUpCisgICAgYWRk
Um93SW5Tb3J0T3JkZXIoZGF0YUdyaWROb2RlLCBwYXJlbnREYXRhR3JpZE5vZGUpCiAgICAgewot
ICAgICAgICBsZXQgcGFyZW50RGF0YUdyaWROb2RlOwotICAgICAgICBsZXQgY2hpbGRFbGVtZW50
ID0gZGF0YUdyaWROb2RlOwotCi0gICAgICAgIGlmICh0cmVlRWxlbWVudCkgewotICAgICAgICAg
ICAgY29uc29sZS5hc3NlcnQodGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplcik7
Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICB0aGlzLl90cmVlT3V0bGlu
ZURhdGFHcmlkU3luY2hyb25pemVyLmFzc29jaWF0ZSh0cmVlRWxlbWVudCwgZGF0YUdyaWROb2Rl
KTsKLQotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIXBhcmVudFRyZWVFbGVtZW50T3JEYXRh
R3JpZE5vZGUgfHwgcGFyZW50VHJlZUVsZW1lbnRPckRhdGFHcmlkTm9kZSBpbnN0YW5jZW9mIFdJ
LlRyZWVFbGVtZW50KTsKLQotICAgICAgICAgICAgbGV0IHBhcmVudFRyZWVFbGVtZW50ID0gcGFy
ZW50VHJlZUVsZW1lbnRPckRhdGFHcmlkTm9kZSB8fCB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlk
U3luY2hyb25pemVyLnRyZWVPdXRsaW5lOwotICAgICAgICAgICAgcGFyZW50RGF0YUdyaWROb2Rl
ID0gcGFyZW50VHJlZUVsZW1lbnQucm9vdCA/IHRoaXMgOiB0aGlzLl90cmVlT3V0bGluZURhdGFH
cmlkU3luY2hyb25pemVyLmRhdGFHcmlkTm9kZUZvclRyZWVFbGVtZW50KHBhcmVudFRyZWVFbGVt
ZW50KTsKLQotICAgICAgICAgICAgcGFyZW50VHJlZUVsZW1lbnRPckRhdGFHcmlkTm9kZSA9IHBh
cmVudFRyZWVFbGVtZW50OwotICAgICAgICAgICAgY2hpbGRFbGVtZW50ID0gdHJlZUVsZW1lbnQ7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwYXJlbnRUcmVlRWxlbWVudE9yRGF0YUdy
aWROb2RlID0gcGFyZW50VHJlZUVsZW1lbnRPckRhdGFHcmlkTm9kZSB8fCB0aGlzOwotICAgICAg
ICAgICAgcGFyZW50RGF0YUdyaWROb2RlID0gcGFyZW50VHJlZUVsZW1lbnRPckRhdGFHcmlkTm9k
ZTsKLSAgICAgICAgfQorICAgICAgICBwYXJlbnREYXRhR3JpZE5vZGUgPSBwYXJlbnREYXRhR3Jp
ZE5vZGUgfHwgdGhpczsKIAogICAgICAgICBpZiAodGhpcy5zb3J0Q29sdW1uSWRlbnRpZmllcikg
ewogICAgICAgICAgICAgbGV0IGluc2VydGlvbkluZGV4ID0gaW5zZXJ0aW9uSW5kZXhGb3JPYmpl
Y3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKGRhdGFHcmlkTm9kZSwgcGFyZW50RGF0YUdyaWROb2Rl
LmNoaWxkcmVuLCB0aGlzLl9zb3J0Q29tcGFyYXRvci5iaW5kKHRoaXMpKTsKLQotICAgICAgICAg
ICAgLy8gSWYgcGFyZW50IGlzIGEgdHJlZSBlbGVtZW50LCB0aGUgc3luY2hyb25pemVyIHdpbGwg
aW5zZXJ0IGludG8gdGhlIGRhdGEgZ3JpZC4KLSAgICAgICAgICAgIHBhcmVudFRyZWVFbGVtZW50
T3JEYXRhR3JpZE5vZGUuaW5zZXJ0Q2hpbGQoY2hpbGRFbGVtZW50LCBpbnNlcnRpb25JbmRleCk7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBJZiBwYXJlbnQgaXMgYSB0cmVlIGVs
ZW1lbnQsIHRoZSBzeW5jaHJvbml6ZXIgd2lsbCBhcHBlbmQgdG8gdGhlIGRhdGEgZ3JpZC4KLSAg
ICAgICAgICAgIHBhcmVudFRyZWVFbGVtZW50T3JEYXRhR3JpZE5vZGUuYXBwZW5kQ2hpbGQoY2hp
bGRFbGVtZW50KTsKLSAgICAgICAgfQorICAgICAgICAgICAgcGFyZW50RGF0YUdyaWROb2RlLmlu
c2VydENoaWxkKGRhdGFHcmlkTm9kZSwgaW5zZXJ0aW9uSW5kZXgpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHBhcmVudERhdGFHcmlkTm9kZS5hcHBlbmRDaGlsZChkYXRhR3JpZE5vZGUp
OwogICAgIH0KIAogICAgIHNob3VsZElnbm9yZVNlbGVjdGlvbkV2ZW50KCkKQEAgLTIzNiw5ICsx
ODksNiBAQCBXSS5UaW1lbGluZURhdGFHcmlkID0gY2xhc3MgVGltZWxpbmVEYXRhR3JpZCBleHRl
bmRzIFdJLkRhdGFHcmlkCiAgICAgICAgIGxldCBzZWxlY3RlZE5vZGUgPSB0aGlzLnNlbGVjdGVk
Tm9kZTsKICAgICAgICAgbGV0IHNvcnRDb21wYXJhdG9yID0gdGhpcy5fc29ydENvbXBhcmF0b3Iu
YmluZCh0aGlzKTsKIAotICAgICAgICBpZiAodGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNo
cm9uaXplcikKLSAgICAgICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6
ZXIuZW5hYmxlZCA9IGZhbHNlOwotCiAgICAgICAgIGZvciAobGV0IGRhdGFHcmlkTm9kZSBvZiB0
aGlzLl9kaXJ0eURhdGFHcmlkTm9kZXMpIHsKICAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5yZWZy
ZXNoKCk7CiAKQEAgLTI1OSwyNCArMjA5LDggQEAgV0kuVGltZWxpbmVEYXRhR3JpZCA9IGNsYXNz
IFRpbWVsaW5lRGF0YUdyaWQgZXh0ZW5kcyBXSS5EYXRhR3JpZAogICAgICAgICAgICAgICAgIHNl
bGVjdGVkTm9kZS5yZXZlYWxBbmRTZWxlY3QoKTsKICAgICAgICAgICAgICAgICB0aGlzLl9pZ25v
cmVTZWxlY3Rpb25FdmVudCA9IGZhbHNlOwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBp
ZiAoIXRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIpCi0gICAgICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGxldCB0cmVlT3V0bGluZSA9IHRoaXMuX3RyZWVP
dXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIudHJlZU91dGxpbmU7Ci0gICAgICAgICAgICBsZXQg
dHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLnRyZWVF
bGVtZW50Rm9yRGF0YUdyaWROb2RlKGRhdGFHcmlkTm9kZSk7Ci0gICAgICAgICAgICBjb25zb2xl
LmFzc2VydCh0cmVlRWxlbWVudCk7Ci0KLSAgICAgICAgICAgIHRyZWVPdXRsaW5lLnJlYXR0YWNo
SWZJbmRleENoYW5nZWQodHJlZUVsZW1lbnQsIGluc2VydGlvbkluZGV4KTsKLQotICAgICAgICAg
ICAgLy8gQWRkaW5nIHRoZSB0cmVlIGVsZW1lbnQgYmFjayB0byB0aGUgdHJlZSBvdXRsaW5lIHN1
YmplY3RzIGl0IHRvIGZpbHRlcnMuCi0gICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2Uga2VlcCB0
aGUgaGlkZGVuIHN0YXRlIGluLXN5bmMgd2hpbGUgdGhlIHN5bmNocm9uaXplciBpcyBkaXNhYmxl
ZC4KLSAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhp
ZGRlbiIsIHRyZWVFbGVtZW50LmhpZGRlbik7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodGhp
cy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplcikKLSAgICAgICAgICAgIHRoaXMuX3Ry
ZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIuZW5hYmxlZCA9IHRydWU7Ci0KICAgICAgICAg
dGhpcy5fZGlydHlEYXRhR3JpZE5vZGVzID0gbnVsbDsKICAgICB9CiAKQEAgLTI5MiwxNSArMjI2
LDYgQEAgV0kuVGltZWxpbmVEYXRhR3JpZCA9IGNsYXNzIFRpbWVsaW5lRGF0YUdyaWQgZXh0ZW5k
cyBXSS5EYXRhR3JpZAogICAgICAgICBsZXQgc2VsZWN0ZWROb2RlID0gdGhpcy5zZWxlY3RlZE5v
ZGU7CiAgICAgICAgIHRoaXMuX2lnbm9yZVNlbGVjdGlvbkV2ZW50ID0gdHJ1ZTsKIAotICAgICAg
ICBsZXQgdHJlZU91dGxpbmU7Ci0gICAgICAgIGlmICh0aGlzLl90cmVlT3V0bGluZURhdGFHcmlk
U3luY2hyb25pemVyKSB7Ci0gICAgICAgICAgICB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3lu
Y2hyb25pemVyLmVuYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgdHJlZU91dGxpbmUgPSB0
aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLnRyZWVPdXRsaW5lOwotICAgICAg
ICAgICAgaWYgKHRyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQpCi0gICAgICAgICAgICAg
ICAgdHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudC5kZXNlbGVjdCh0cnVlKTsKLSAgICAg
ICAgfQotCiAgICAgICAgIC8vIENvbGxlY3QgcGFyZW50IG5vZGVzIHRoYXQgbmVlZCB0aGVpciBj
aGlsZHJlbiBzb3J0ZWQuIFNvIHRoaXMgaW4gdHdvIHBoYXNlcyBzaW5jZQogICAgICAgICAvLyB0
cmF2ZXJzZU5leHROb2RlIHdvdWxkIGdldCBjb25mdXNlZCBpZiB3ZSBzb3J0IHRoZSB0cmVlIHdo
aWxlIHRyYXZlcnNpbmcgaXQuCiAgICAgICAgIGxldCBwYXJlbnREYXRhR3JpZE5vZGVzID0gW3Ro
aXNdOwpAQCAtMzE1LDM3ICsyNDAsMTIgQEAgV0kuVGltZWxpbmVEYXRhR3JpZCA9IGNsYXNzIFRp
bWVsaW5lRGF0YUdyaWQgZXh0ZW5kcyBXSS5EYXRhR3JpZAogICAgICAgICBmb3IgKGxldCBwYXJl
bnREYXRhR3JpZE5vZGUgb2YgcGFyZW50RGF0YUdyaWROb2RlcykgewogICAgICAgICAgICAgbGV0
IGNoaWxkRGF0YUdyaWROb2RlcyA9IHBhcmVudERhdGFHcmlkTm9kZS5jaGlsZHJlbi5zbGljZSgp
OwogICAgICAgICAgICAgcGFyZW50RGF0YUdyaWROb2RlLnJlbW92ZUNoaWxkcmVuKCk7Ci0KLSAg
ICAgICAgICAgIGxldCBwYXJlbnRUcmVlRWxlbWVudDsKLSAgICAgICAgICAgIGlmICh0aGlzLl90
cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyKSB7Ci0gICAgICAgICAgICAgICAgcGFyZW50
VHJlZUVsZW1lbnQgPSBwYXJlbnREYXRhR3JpZE5vZGUgPT09IHRoaXMgPyB0cmVlT3V0bGluZSA6
IHRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIudHJlZUVsZW1lbnRGb3JEYXRh
R3JpZE5vZGUocGFyZW50RGF0YUdyaWROb2RlKTsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmFz
c2VydChwYXJlbnRUcmVlRWxlbWVudCk7Ci0KLSAgICAgICAgICAgICAgICBwYXJlbnRUcmVlRWxl
bWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICAgICAgfQotCiAgICAgICAgICAgICBjaGls
ZERhdGFHcmlkTm9kZXMuc29ydCh0aGlzLl9zb3J0Q29tcGFyYXRvci5iaW5kKHRoaXMpKTsKIAot
ICAgICAgICAgICAgZm9yIChsZXQgZGF0YUdyaWROb2RlIG9mIGNoaWxkRGF0YUdyaWROb2Rlcykg
ewotICAgICAgICAgICAgICAgIGlmICh0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25p
emVyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX3RyZWVP
dXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIudHJlZUVsZW1lbnRGb3JEYXRhR3JpZE5vZGUoZGF0
YUdyaWROb2RlKTsKLSAgICAgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1l
bnQpOwotCi0gICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnRUcmVlRWxlbWVudCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcmVudFRyZWVFbGVtZW50LmFwcGVuZENoaWxkKHRyZWVFbGVt
ZW50KTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBBZGRpbmcgdGhlIHRyZWUgZWxlbWVudCBi
YWNrIHRvIHRoZSB0cmVlIG91dGxpbmUgc3ViamVjdHMgaXQgdG8gZmlsdGVycy4KLSAgICAgICAg
ICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGtlZXAgdGhlIGhpZGRlbiBzdGF0ZSBpbi1zeW5j
IHdoaWxlIHRoZSBzeW5jaHJvbml6ZXIgaXMgZGlzYWJsZWQuCi0gICAgICAgICAgICAgICAgICAg
IGRhdGFHcmlkTm9kZS5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIHRyZWVFbGVt
ZW50LmhpZGRlbik7Ci0gICAgICAgICAgICAgICAgfQotCisgICAgICAgICAgICBmb3IgKGxldCBk
YXRhR3JpZE5vZGUgb2YgY2hpbGREYXRhR3JpZE5vZGVzKQogICAgICAgICAgICAgICAgIHBhcmVu
dERhdGFHcmlkTm9kZS5hcHBlbmRDaGlsZChkYXRhR3JpZE5vZGUpOwotICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJv
bml6ZXIpCi0gICAgICAgICAgICB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVy
LmVuYWJsZWQgPSB0cnVlOwotCiAgICAgICAgIGlmIChzZWxlY3RlZE5vZGUpCiAgICAgICAgICAg
ICBzZWxlY3RlZE5vZGUucmV2ZWFsQW5kU2VsZWN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lRGF0YUdyaWRTeW5j
aHJvbml6ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1ZWVjMjg1NGNiYzNiMWQ0Y2I1ZjczOTZhZWU1ZDNiMTBjMWM0YzBkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwyODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJ
LlRyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIgPSBjbGFzcyBUcmVlT3V0bGluZURhdGFH
cmlkU3luY2hyb25pemVyIGV4dGVuZHMgV0kuT2JqZWN0Ci17Ci0gICAgY29uc3RydWN0b3IodHJl
ZU91dGxpbmUsIGRhdGFHcmlkLCBkZWxlZ2F0ZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0K
LSAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUgPSB0cmVlT3V0bGluZTsKLSAgICAgICAgdGhpcy5f
ZGF0YUdyaWQgPSBkYXRhR3JpZDsKLSAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBkZWxlZ2F0ZSB8
fCBudWxsOwotICAgICAgICB0aGlzLl9lbmFibGVkID0gdHJ1ZTsKLQotICAgICAgICB0aGlzLl90
cmVlT3V0bGluZS5lbGVtZW50LnBhcmVudE5vZGUuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwg
dGhpcy5fdHJlZU91dGxpbmVTY3JvbGxlZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fZGF0
YUdyaWQuc2Nyb2xsQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMuX2Rh
dGFHcmlkU2Nyb2xsZWQuYmluZCh0aGlzKSk7Ci0KLSAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUu
X19kYXRhR3JpZE5vZGUgPSB0aGlzLl9kYXRhR3JpZDsKLQotICAgICAgICB0aGlzLl9kYXRhR3Jp
ZC5hZGRFdmVudExpc3RlbmVyKFdJLkRhdGFHcmlkLkV2ZW50LkV4cGFuZGVkTm9kZSwgdGhpcy5f
ZGF0YUdyaWROb2RlRXhwYW5kZWQsIHRoaXMpOwotICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRF
dmVudExpc3RlbmVyKFdJLkRhdGFHcmlkLkV2ZW50LkNvbGxhcHNlZE5vZGUsIHRoaXMuX2RhdGFH
cmlkTm9kZUNvbGxhcHNlZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZEV2ZW50
TGlzdGVuZXIoV0kuRGF0YUdyaWQuRXZlbnQuU2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcy5fZGF0
YUdyaWROb2RlU2VsZWN0ZWQsIHRoaXMpOwotCi0gICAgICAgIHRoaXMuX2RhdGFHcmlkLmVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9kYXRhR3JpZEdhaW5lZEZvY3VzLmJp
bmQodGhpcykpOwotICAgICAgICB0aGlzLl9kYXRhR3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImJsdXIiLCB0aGlzLl9kYXRhR3JpZExvc3RGb2N1cy5iaW5kKHRoaXMpKTsKLQotICAgICAg
ICB0aGlzLl90cmVlT3V0bGluZS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhp
cy5fdHJlZU91dGxpbmVHYWluZWRGb2N1cy5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fdHJl
ZU91dGxpbmUuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgdGhpcy5fdHJlZU91dGxp
bmVMb3N0Rm9jdXMuYmluZCh0aGlzKSk7Ci0KLSAgICAgICAgdHJlZU91dGxpbmUuYWRkRXZlbnRM
aXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50QWRkZWQsIHRoaXMuX3RyZWVFbGVt
ZW50QWRkZWQsIHRoaXMpOwotICAgICAgICB0cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJ
LlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRSZW1vdmVkLCB0aGlzLl90cmVlRWxlbWVudFJlbW92
ZWQsIHRoaXMpOwotICAgICAgICB0cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRyZWVP
dXRsaW5lLkV2ZW50LkVsZW1lbnREaXNjbG9zdXJlRGlkQ2hhbmdlZCwgdGhpcy5fdHJlZUVsZW1l
bnREaXNjbG9zdXJlRGlkQ2hhbmdlLCB0aGlzKTsKLSAgICAgICAgdHJlZU91dGxpbmUuYWRkRXZl
bnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50VmlzaWJpbGl0eURpZENoYW5n
ZSwgdGhpcy5fdHJlZUVsZW1lbnRWaXNpYmlsaXR5RGlkQ2hhbmdlLCB0aGlzKTsKLSAgICAgICAg
dHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rp
b25EaWRDaGFuZ2UsIHRoaXMuX3RyZWVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMpOwotICAgIH0K
LQotICAgIC8vIFB1YmxpYwotCi0gICAgZ2V0IHRyZWVPdXRsaW5lKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLl90cmVlT3V0bGluZTsKLSAgICB9Ci0KLSAgICBnZXQgZGF0YUdyaWQoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFHcmlkOwotICAgIH0KLQotICAgIGdldCBk
ZWxlZ2F0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGU7Ci0gICAgfQot
Ci0gICAgZ2V0IGVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7
Ci0gICAgfQotCi0gICAgc2V0IGVuYWJsZWQoeCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2VuYWJs
ZWQgPSB4IHx8IGZhbHNlOwotICAgIH0KLQotICAgIGFzc29jaWF0ZSh0cmVlRWxlbWVudCwgZGF0
YUdyaWROb2RlKQotICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQpOwot
ICAgICAgICBjb25zb2xlLmFzc2VydChkYXRhR3JpZE5vZGUpOwotCi0gICAgICAgIHRyZWVFbGVt
ZW50Ll9fZGF0YUdyaWROb2RlID0gZGF0YUdyaWROb2RlOwotICAgICAgICBkYXRhR3JpZE5vZGUu
X190cmVlRWxlbWVudCA9IHRyZWVFbGVtZW50OwotICAgIH0KLQotICAgIHN5bmNocm9uaXplKCkK
LSAgICB7Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkLnNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3Ag
PSB0aGlzLl90cmVlT3V0bGluZS5lbGVtZW50LnBhcmVudE5vZGUuc2Nyb2xsVG9wOwotICAgICAg
ICBpZiAodGhpcy5fdHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudCkKLSAgICAgICAgICAg
IHRoaXMuX3RyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQuX19kYXRhR3JpZE5vZGUuc2Vs
ZWN0KHRydWUpOwotICAgICAgICBlbHNlIGlmICh0aGlzLl9kYXRhR3JpZC5zZWxlY3RlZE5vZGUp
Ci0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5zZWxlY3RlZE5vZGUuZGVzZWxlY3QodHJ1ZSk7
Ci0gICAgfQotCi0gICAgdHJlZUVsZW1lbnRGb3JEYXRhR3JpZE5vZGUoZGF0YUdyaWROb2RlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGRhdGFHcmlkTm9kZS5fX3RyZWVFbGVtZW50IHx8IG51bGw7
Ci0gICAgfQotCi0gICAgZGF0YUdyaWROb2RlRm9yVHJlZUVsZW1lbnQodHJlZUVsZW1lbnQpCi0g
ICAgewotICAgICAgICBpZiAodHJlZUVsZW1lbnQuX19kYXRhR3JpZE5vZGUpCi0gICAgICAgICAg
ICByZXR1cm4gdHJlZUVsZW1lbnQuX19kYXRhR3JpZE5vZGU7Ci0KLSAgICAgICAgaWYgKHR5cGVv
ZiB0aGlzLl9kZWxlZ2F0ZS5kYXRhR3JpZE5vZGVGb3JUcmVlRWxlbWVudCA9PT0gImZ1bmN0aW9u
IikgewotICAgICAgICAgICAgdmFyIGRhdGFHcmlkTm9kZSA9IHRoaXMuX2RlbGVnYXRlLmRhdGFH
cmlkTm9kZUZvclRyZWVFbGVtZW50KHRyZWVFbGVtZW50KTsKLSAgICAgICAgICAgIGlmIChkYXRh
R3JpZE5vZGUpCi0gICAgICAgICAgICAgICAgdGhpcy5hc3NvY2lhdGUodHJlZUVsZW1lbnQsIGRh
dGFHcmlkTm9kZSk7Ci0gICAgICAgICAgICByZXR1cm4gZGF0YUdyaWROb2RlOwotICAgICAgICB9
Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAg
X3RyZWVPdXRsaW5lU2Nyb2xsZWQoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Vu
YWJsZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMuX2lnbm9yZU5l
eHRUcmVlT3V0bGluZVNjcm9sbEV2ZW50KSB7Ci0gICAgICAgICAgICB0aGlzLl9pZ25vcmVOZXh0
VHJlZU91dGxpbmVTY3JvbGxFdmVudCA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KLSAgICAgICAgdGhpcy5faWdub3JlTmV4dERhdGFHcmlkU2Nyb2xsRXZlbnQgPSB0
cnVlOwotICAgICAgICB0aGlzLl9kYXRhR3JpZC5zY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0g
dGhpcy5fdHJlZU91dGxpbmUuZWxlbWVudC5wYXJlbnROb2RlLnNjcm9sbFRvcDsKLSAgICB9Ci0K
LSAgICBfZGF0YUdyaWRHYWluZWRGb2N1cyhldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Ry
ZWVPdXRsaW5lLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZm9yY2UtZm9jdXMiKTsKLSAgICB9Ci0K
LSAgICBfZGF0YUdyaWRMb3N0Rm9jdXMoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl90cmVl
T3V0bGluZS5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImZvcmNlLWZvY3VzIik7Ci0gICAgfQot
Ci0gICAgX2RhdGFHcmlkU2Nyb2xsZWQoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMu
X2VuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMuX2lnbm9y
ZU5leHREYXRhR3JpZFNjcm9sbEV2ZW50KSB7Ci0gICAgICAgICAgICB0aGlzLl9pZ25vcmVOZXh0
RGF0YUdyaWRTY3JvbGxFdmVudCA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdGhpcy5faWdub3JlTmV4dFRyZWVPdXRsaW5lU2Nyb2xsRXZlbnQgPSB0
cnVlOwotICAgICAgICB0aGlzLl90cmVlT3V0bGluZS5lbGVtZW50LnBhcmVudE5vZGUuc2Nyb2xs
VG9wID0gdGhpcy5fZGF0YUdyaWQuc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcDsKLSAgICB9Ci0K
LSAgICBfZGF0YUdyaWROb2RlU2VsZWN0ZWQoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIXRo
aXMuX2VuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIGRhdGFHcmlk
Tm9kZSA9IHRoaXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZTsKLSAgICAgICAgaWYgKGRhdGFHcmlk
Tm9kZSkKLSAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5fX3RyZWVFbGVtZW50LnNlbGVjdCh0cnVl
LCB0cnVlLCB0cnVlLCB0cnVlKTsKLSAgICB9Ci0KLSAgICBfZGF0YUdyaWROb2RlRXhwYW5kZWQo
ZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgdmFyIGRhdGFHcmlkTm9kZSA9IGV2ZW50LmRhdGEuZGF0YUdyaWRO
b2RlOwotICAgICAgICBjb25zb2xlLmFzc2VydChkYXRhR3JpZE5vZGUpOwotCi0gICAgICAgIGlm
ICghZGF0YUdyaWROb2RlLl9fdHJlZUVsZW1lbnQuZXhwYW5kZWQpCi0gICAgICAgICAgICBkYXRh
R3JpZE5vZGUuX190cmVlRWxlbWVudC5leHBhbmQoKTsKLSAgICB9Ci0KLSAgICBfZGF0YUdyaWRO
b2RlQ29sbGFwc2VkKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBkYXRhR3JpZE5vZGUgPSBldmVudC5k
YXRhLmRhdGFHcmlkTm9kZTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoZGF0YUdyaWROb2RlKTsK
LQotICAgICAgICBpZiAoZGF0YUdyaWROb2RlLl9fdHJlZUVsZW1lbnQuZXhwYW5kZWQpCi0gICAg
ICAgICAgICBkYXRhR3JpZE5vZGUuX190cmVlRWxlbWVudC5jb2xsYXBzZSgpOwotICAgIH0KLQot
ICAgIF90cmVlT3V0bGluZUdhaW5lZEZvY3VzKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5f
ZGF0YUdyaWQuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJmb3JjZS1mb2N1cyIpOwotICAgIH0KLQot
ICAgIF90cmVlT3V0bGluZUxvc3RGb2N1cyhldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Rh
dGFHcmlkLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiZm9yY2UtZm9jdXMiKTsKLSAgICB9Ci0K
LSAgICBfdHJlZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICgh
dGhpcy5fZW5hYmxlZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgdHJlZUVs
ZW1lbnQgPSBldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudCB8fCBldmVudC5kYXRhLmRlc2VsZWN0
ZWRFbGVtZW50OwotICAgICAgICBjb25zb2xlLmFzc2VydCh0cmVlRWxlbWVudCk7Ci0gICAgICAg
IGlmICghdHJlZUVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IGRh
dGFHcmlkTm9kZSA9IHRyZWVFbGVtZW50Ll9fZGF0YUdyaWROb2RlOwotICAgICAgICBjb25zb2xl
LmFzc2VydChkYXRhR3JpZE5vZGUpOwotCi0gICAgICAgIGlmIChldmVudC5kYXRhLnNlbGVjdGVk
RWxlbWVudCkKLSAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5zZWxlY3QoKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgZGF0YUdyaWROb2RlLmRlc2VsZWN0KCk7Ci0gICAgfQotCi0gICAgX3Ry
ZWVFbGVtZW50QWRkZWQoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQu
ZGF0YS5lbGVtZW50OwotICAgICAgICBsZXQgZGF0YUdyaWROb2RlID0gdGhpcy5kYXRhR3JpZE5v
ZGVGb3JUcmVlRWxlbWVudCh0cmVlRWxlbWVudCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRh
dGFHcmlkTm9kZSk7Ci0KLSAgICAgICAgdmFyIHBhcmVudERhdGFHcmlkTm9kZSA9IHRyZWVFbGVt
ZW50LnBhcmVudC5fX2RhdGFHcmlkTm9kZTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocGFyZW50
RGF0YUdyaWROb2RlKTsKLQotICAgICAgICB2YXIgY2hpbGRJbmRleCA9IHRyZWVFbGVtZW50LnBh
cmVudC5jaGlsZHJlbi5pbmRleE9mKHRyZWVFbGVtZW50KTsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQoY2hpbGRJbmRleCAhPT0gLTEpOwotCi0gICAgICAgIHBhcmVudERhdGFHcmlkTm9kZS5pbnNl
cnRDaGlsZChkYXRhR3JpZE5vZGUsIGNoaWxkSW5kZXgpOwotICAgIH0KLQotICAgIF90cmVlRWxl
bWVudFJlbW92ZWQoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0
YS5lbGVtZW50OwotICAgICAgICBsZXQgZGF0YUdyaWROb2RlID0gdHJlZUVsZW1lbnQuX19kYXRh
R3JpZE5vZGU7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRhdGFHcmlkTm9kZSk7Ci0KLSAgICAg
ICAgaWYgKGRhdGFHcmlkTm9kZS5wYXJlbnQpCi0gICAgICAgICAgICBkYXRhR3JpZE5vZGUucGFy
ZW50LnJlbW92ZUNoaWxkKGRhdGFHcmlkTm9kZSk7Ci0gICAgfQotCi0gICAgX3RyZWVFbGVtZW50
RGlzY2xvc3VyZURpZENoYW5nZShldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZW5h
YmxlZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBl
dmVudC5kYXRhLmVsZW1lbnQ7Ci0gICAgICAgIGxldCBkYXRhR3JpZE5vZGUgPSB0cmVlRWxlbWVu
dC5fX2RhdGFHcmlkTm9kZTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoZGF0YUdyaWROb2RlKTsK
LQotICAgICAgICBpZiAodHJlZUVsZW1lbnQuZXhwYW5kZWQpCi0gICAgICAgICAgICBkYXRhR3Jp
ZE5vZGUuZXhwYW5kKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5j
b2xsYXBzZSgpOwotICAgIH0KLQotICAgIF90cmVlRWxlbWVudFZpc2liaWxpdHlEaWRDaGFuZ2Uo
ZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5lbGVtZW50Owot
ICAgICAgICBsZXQgZGF0YUdyaWROb2RlID0gdHJlZUVsZW1lbnQuX19kYXRhR3JpZE5vZGU7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRhdGFHcmlkTm9kZSk7Ci0KLSAgICAgICAgZGF0YUdyaWRO
b2RlLmhpZGRlbiA9IHRyZWVFbGVtZW50LmhpZGRlbjsKLSAgICB9Ci19Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347732</attachid>
            <date>2018-08-21 17:02:54 -0700</date>
            <delta_ts>2018-08-21 18:08:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-188449-20180821170247.patch</filename>
            <type>text/plain</type>
            <size>27663</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1
OGIyNjE1ZTQ0NzdkYWEyOTBlNWU1NzYzMjM4ZjgyN2E1OTEyOTllLi5lMmJiMjY1OTUwM2ZhNGQ3
NTJlM2Y5Mjk4NmM5MGZhMzcyNjNhNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxOC0wOC0yMSAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIFRyZWVPdXRsaW5lRGF0YUdyaWRTeW5j
aHJvbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4ODQ0OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDMxMDc5ODA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9I
ZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXSS5IZWFwQWxsb2NhdGlv
bnNUaW1lbGluZVZpZXcucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXSS5MYXlvdXRUaW1lbGlu
ZVZpZXcucHJvdG90eXBlLl9wcm9jZXNzUGVuZGluZ1JlY29yZHMpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lVmlldy5qczoKKyAgICAgICAgKFdJLk5ldHdv
cmtUaW1lbGluZVZpZXcucHJvdG90eXBlLl9wcm9jZXNzUGVuZGluZ1JlY29yZHMpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanM6Cisg
ICAgICAgIChXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Byb2Nlc3NQ
ZW5kaW5nUmVjb3Jkcyk6CisgICAgICAgIChXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5w
cm90b3R5cGUuZGF0YUdyaWROb2RlRm9yVHJlZUVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5qczoKKyAgICAg
ICAgKFdJLlNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcucHJvdG90eXBlLl9wcm9jZXNzUGVuZGlu
Z1JlY29yZHMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVEYXRhR3Jp
ZC5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5lRGF0YUdyaWQpOgorICAgICAgICAoV0kuVGltZWxp
bmVEYXRhR3JpZC5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV0kuVGltZWxpbmVEYXRhR3Jp
ZC5wcm90b3R5cGUuc2hvd24pOgorICAgICAgICAoV0kuVGltZWxpbmVEYXRhR3JpZC5wcm90b3R5
cGUuYWRkUm93SW5Tb3J0T3JkZXIpOgorICAgICAgICAoV0kuVGltZWxpbmVEYXRhR3JpZC5wcm90
b3R5cGUuX3JlZnJlc2hEaXJ0eURhdGFHcmlkTm9kZXMpOgorICAgICAgICAoV0kuVGltZWxpbmVE
YXRhR3JpZC5wcm90b3R5cGUuX3NvcnQpOgorICAgICAgICAoV0kuVGltZWxpbmVEYXRhR3JpZC5w
cm90b3R5cGUudHJlZUVsZW1lbnRGb3JEYXRhR3JpZE5vZGUpOiBEZWxldGVkLgorICAgICAgICAo
V0kuVGltZWxpbmVEYXRhR3JpZC5wcm90b3R5cGUuZGF0YUdyaWROb2RlRm9yVHJlZUVsZW1lbnQp
OiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmVEYXRh
R3JpZFN5bmNocm9uaXplci5qczogUmVtb3ZlZC4KKwogMjAxOC0wOC0yMSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lP
TihyMjM1MDk1KTogZHVwbGljYXRlIGFjdGlvbnMgZXhpc3RpbmcgaW4gV0kuQ2FudmFzU2lkZWJh
clBhbmVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcuanMKaW5k
ZXggNzYyZjkyYmNjMDA0OWJmNmY1NjUxN2FhMWVmODE1N2NhY2NiM2FlZi4uNzNhNjA0YzdmYmI0
Y2ZiMGEyZDQ3NmE1ZmYzNDEwNzE1YTRjMjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVWaWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBBbGxv
Y2F0aW9uc1RpbWVsaW5lVmlldy5qcwpAQCAtMjY4LDcgKzI2OCw3IEBAIFdJLkhlYXBBbGxvY2F0
aW9uc1RpbWVsaW5lVmlldyA9IGNsYXNzIEhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lVmlldyBleHRl
bmRzIFdJLlRpCiAgICAgICAgIGlmICh0aGlzLl9wZW5kaW5nUmVjb3Jkcy5sZW5ndGgpIHsKICAg
ICAgICAgICAgIGZvciAobGV0IGhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3JkIG9mIHRoaXMu
X3BlbmRpbmdSZWNvcmRzKSB7CiAgICAgICAgICAgICAgICAgbGV0IGRhdGFHcmlkTm9kZSA9IG5l
dyBXSS5IZWFwQWxsb2NhdGlvbnNUaW1lbGluZURhdGFHcmlkTm9kZShoZWFwQWxsb2NhdGlvbnNU
aW1lbGluZVJlY29yZCwgdGhpcy56ZXJvVGltZSwgdGhpcyk7Ci0gICAgICAgICAgICAgICAgdGhp
cy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIobnVsbCwgZGF0YUdyaWROb2RlKTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihkYXRhR3JpZE5vZGUp
OwogICAgICAgICAgICAgICAgIGlmICghdGhpcy56ZXJvVGltZSkKICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fcGVuZGluZ1plcm9UaW1lRGF0YUdyaWROb2Rlcy5wdXNoKGRhdGFHcmlkTm9kZSk7
CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMKaW5kZXggZWVkOGRk
M2VkNWZhMjkyZjk0YWRhMzZlNzJlMGRlMzMzOTA5NDc5OC4uYzExNzI0MGNjOTE5ZTdmZjVjZGIx
NTY0OGY2ZjRmMTE3ZTJmZjA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lVmlldy5qcwpAQCAt
MjAzLDcgKzIwMyw3IEBAIFdJLkxheW91dFRpbWVsaW5lVmlldyA9IGNsYXNzIExheW91dFRpbWVs
aW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmlldwogICAgICAgICBmb3IgKHZhciBsYXlvdXRU
aW1lbGluZVJlY29yZCBvZiB0aGlzLl9wZW5kaW5nUmVjb3JkcykgewogICAgICAgICAgICAgbGV0
IGRhdGFHcmlkTm9kZSA9IG5ldyBXSS5MYXlvdXRUaW1lbGluZURhdGFHcmlkTm9kZShsYXlvdXRU
aW1lbGluZVJlY29yZCwgdGhpcy56ZXJvVGltZSk7CiAKLSAgICAgICAgICAgIHRoaXMuX2RhdGFH
cmlkLmFkZFJvd0luU29ydE9yZGVyKG51bGwsIGRhdGFHcmlkTm9kZSk7CisgICAgICAgICAgICB0
aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihkYXRhR3JpZE5vZGUpOwogCiAgICAgICAg
ICAgICBsZXQgc3RhY2sgPSBbe2NoaWxkcmVuOiBsYXlvdXRUaW1lbGluZVJlY29yZC5jaGlsZHJl
biwgcGFyZW50RGF0YUdyaWROb2RlOiBkYXRhR3JpZE5vZGUsIGluZGV4OiAwfV07CiAgICAgICAg
ICAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7CkBAIC0yMTgsNyArMjE4LDcgQEAgV0kuTGF5b3V0
VGltZWxpbmVWaWV3ID0gY2xhc3MgTGF5b3V0VGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxp
bmVWaWV3CiAKICAgICAgICAgICAgICAgICBsZXQgY2hpbGREYXRhR3JpZE5vZGUgPSBuZXcgV0ku
TGF5b3V0VGltZWxpbmVEYXRhR3JpZE5vZGUoY2hpbGRSZWNvcmQsIHRoaXMuemVyb1RpbWUpOwog
ICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGVudHJ5LnBhcmVudERhdGFHcmlkTm9kZSwg
Ik1pc3NpbmcgcGFyZW50IG5vZGUgZm9yIGVudHJ5LiIsIGVudHJ5KTsKLSAgICAgICAgICAgICAg
ICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihudWxsLCBjaGlsZERhdGFHcmlkTm9k
ZSwgZW50cnkucGFyZW50RGF0YUdyaWROb2RlKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9kYXRh
R3JpZC5hZGRSb3dJblNvcnRPcmRlcihjaGlsZERhdGFHcmlkTm9kZSwgZW50cnkucGFyZW50RGF0
YUdyaWROb2RlKTsKIAogICAgICAgICAgICAgICAgIGlmIChjaGlsZERhdGFHcmlkTm9kZSAmJiBj
aGlsZFJlY29yZC5jaGlsZHJlbi5sZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgIHN0YWNrLnB1
c2goe2NoaWxkcmVuOiBjaGlsZFJlY29yZC5jaGlsZHJlbiwgcGFyZW50RGF0YUdyaWROb2RlOiBj
aGlsZERhdGFHcmlkTm9kZSwgaW5kZXg6IDB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3
LmpzCmluZGV4IDg4MGU0ODFiOTM4YzcwYTg0NDk3YTU3N2E3NWIxMGM4ZmNmYTdkOWEuLjJiY2U3
NmUwZjRmZjIyYWYxNTUxOWY2YWFlODkzMmFlMDllYmVjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1Rp
bWVsaW5lVmlldy5qcwpAQCAtMjU5LDcgKzI1OSw3IEBAIFdJLk5ldHdvcmtUaW1lbGluZVZpZXcg
PSBjbGFzcyBOZXR3b3JrVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3CiAgICAg
ICAgICAgICBkYXRhR3JpZE5vZGUgPSBuZXcgV0kuUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9k
ZShyZXNvdXJjZVRpbWVsaW5lUmVjb3JkLCBpbmNsdWRlc0dyYXBoLCB0aGlzLCBzaG91bGRTaG93
UG9wb3Zlcik7CiAgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZURhdGFHcmlkTm9kZU1hcC5zZXQo
cmVzb3VyY2VUaW1lbGluZVJlY29yZC5yZXNvdXJjZSwgZGF0YUdyaWROb2RlKTsKIAotICAgICAg
ICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIobnVsbCwgZGF0YUdyaWROb2Rl
KTsKKyAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKGRhdGFHcmlk
Tm9kZSk7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3JkcyA9IFtdOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVu
ZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5qcwppbmRleCBmODM5ZTEx
ZGQ0NDQwYmM3MDM5ZTc2YTQxMjcxZGQ3ZjA5YTM3ZWM2Li42OGUwZDAyZmM0NTZjNTQ4N2NiZTE2
YWEwY2M5OWE4MGFiNjQxYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVs
aW5lVmlldy5qcwpAQCAtMTk1LDEzICsxOTUsNiBAQCBXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5l
VmlldyA9IGNsYXNzIFJlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZQog
ICAgICAgICBkYXRhR3JpZE5vZGUucmV2ZWFsQW5kU2VsZWN0KCk7CiAgICAgfQogCi0gICAgZGF0
YUdyaWROb2RlRm9yVHJlZUVsZW1lbnQodHJlZUVsZW1lbnQpCi0gICAgewotICAgICAgICBpZiAo
dHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXSS5Qcm9maWxlTm9kZVRyZWVFbGVtZW50KQotICAgICAg
ICAgICAgcmV0dXJuIG5ldyBXSS5Qcm9maWxlTm9kZURhdGFHcmlkTm9kZSh0cmVlRWxlbWVudC5w
cm9maWxlTm9kZSwgdGhpcy56ZXJvVGltZSwgdGhpcy5zdGFydFRpbWUsIHRoaXMuZW5kVGltZSk7
Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQogICAgIG1hdGNoRGF0YUdyaWROb2RlQWdh
aW5zdEN1c3RvbUZpbHRlcnMobm9kZSkKICAgICB7CiAgICAgICAgIGlmICghc3VwZXIubWF0Y2hE
YXRhR3JpZE5vZGVBZ2FpbnN0Q3VzdG9tRmlsdGVycyhub2RlKSkKQEAgLTI0MCw3ICsyMzMsNyBA
QCBXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldyA9IGNsYXNzIFJlbmRlcmluZ0ZyYW1lVGlt
ZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZQogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVu
ZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCBpbnN0YW5jZW9mIFdJLlJlbmRlcmluZ0ZyYW1lVGlt
ZWxpbmVSZWNvcmQpOwogCiAgICAgICAgICAgICBsZXQgZGF0YUdyaWROb2RlID0gbmV3IFdJLlJl
bmRlcmluZ0ZyYW1lVGltZWxpbmVEYXRhR3JpZE5vZGUocmVuZGVyaW5nRnJhbWVUaW1lbGluZVJl
Y29yZCwgdGhpcy56ZXJvVGltZSk7Ci0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJ
blNvcnRPcmRlcihudWxsLCBkYXRhR3JpZE5vZGUpOworICAgICAgICAgICAgdGhpcy5fZGF0YUdy
aWQuYWRkUm93SW5Tb3J0T3JkZXIoZGF0YUdyaWROb2RlKTsKIAogICAgICAgICAgICAgbGV0IHN0
YWNrID0gW3tjaGlsZHJlbjogcmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5jaGlsZHJlbiwg
cGFyZW50RGF0YUdyaWROb2RlOiBkYXRhR3JpZE5vZGUsIGluZGV4OiAwfV07CiAgICAgICAgICAg
ICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7CkBAIC0yNTUsNyArMjQ4LDcgQEAgV0kuUmVuZGVyaW5n
RnJhbWVUaW1lbGluZVZpZXcgPSBjbGFzcyBSZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldyBleHRl
bmRzIFdJLlRpbWUKICAgICAgICAgICAgICAgICBpZiAoY2hpbGRSZWNvcmQudHlwZSA9PT0gV0ku
VGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQpIHsKICAgICAgICAgICAgICAgICAgICAgY2hpbGRE
YXRhR3JpZE5vZGUgPSBuZXcgV0kuTGF5b3V0VGltZWxpbmVEYXRhR3JpZE5vZGUoY2hpbGRSZWNv
cmQsIHRoaXMuemVyb1RpbWUpOwogCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlk
LmFkZFJvd0luU29ydE9yZGVyKG51bGwsIGNoaWxkRGF0YUdyaWROb2RlLCBlbnRyeS5wYXJlbnRE
YXRhR3JpZE5vZGUpOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJ
blNvcnRPcmRlcihjaGlsZERhdGFHcmlkTm9kZSwgZW50cnkucGFyZW50RGF0YUdyaWROb2RlKTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkUmVjb3JkLnR5cGUgPT09IFdJLlRpbWVs
aW5lUmVjb3JkLlR5cGUuU2NyaXB0KSB7CiAgICAgICAgICAgICAgICAgICAgIGxldCByb290Tm9k
ZXMgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkUmVjb3JkLnByb2ZpbGUpIHsK
QEAgLTI2NSwxMSArMjU4LDExIEBAIFdJLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3ID0gY2xh
c3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5UaW1lCiAKICAgICAgICAg
ICAgICAgICAgICAgY2hpbGREYXRhR3JpZE5vZGUgPSBuZXcgV0kuU2NyaXB0VGltZWxpbmVEYXRh
R3JpZE5vZGUoY2hpbGRSZWNvcmQsIHRoaXMuemVyb1RpbWUpOwogCi0gICAgICAgICAgICAgICAg
ICAgIHRoaXMuX2RhdGFHcmlkLmFkZFJvd0luU29ydE9yZGVyKG51bGwsIGNoaWxkRGF0YUdyaWRO
b2RlLCBlbnRyeS5wYXJlbnREYXRhR3JpZE5vZGUpOworICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihjaGlsZERhdGFHcmlkTm9kZSwgZW50cnkucGFy
ZW50RGF0YUdyaWROb2RlKTsKIAogICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBwcm9maWxl
Tm9kZSBvZiByb290Tm9kZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9maWxl
Tm9kZURhdGFHcmlkTm9kZSA9IG5ldyBXSS5Qcm9maWxlTm9kZURhdGFHcmlkTm9kZShwcm9maWxl
Tm9kZSwgdGhpcy56ZXJvVGltZSwgdGhpcy5zdGFydFRpbWUsIHRoaXMuZW5kVGltZSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihudWxs
LCBwcm9maWxlTm9kZURhdGFHcmlkTm9kZSwgY2hpbGREYXRhR3JpZE5vZGUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkUm93SW5Tb3J0T3JkZXIocHJvZmlsZU5v
ZGVEYXRhR3JpZE5vZGUsIGNoaWxkRGF0YUdyaWROb2RlKTsKICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGlu
ZVZpZXcuanMKaW5kZXggZGFhZmUxMGU4ZjlmZmM2NGUwOGRlN2EzNjE1NjZkZmUyZGI1ZDEyNS4u
ODhjMzkyYzAxNThjZjUwMjdmZWJhZGE2OGFiNmE3M2E4M2UyZWU4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0RGV0YWlsc1RpbWVs
aW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3LmpzCkBAIC0yMTEsMTEgKzIxMSwxMSBAQCBXSS5T
Y3JpcHREZXRhaWxzVGltZWxpbmVWaWV3ID0gY2xhc3MgU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmll
dyBleHRlbmRzIFdJLlRpbWVsaQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBsZXQgZGF0
YUdyaWROb2RlID0gbmV3IFdJLlNjcmlwdFRpbWVsaW5lRGF0YUdyaWROb2RlKHNjcmlwdFRpbWVs
aW5lUmVjb3JkLCB6ZXJvVGltZSk7Ci0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRSb3dJ
blNvcnRPcmRlcihudWxsLCBkYXRhR3JpZE5vZGUpOworICAgICAgICAgICAgdGhpcy5fZGF0YUdy
aWQuYWRkUm93SW5Tb3J0T3JkZXIoZGF0YUdyaWROb2RlKTsKIAogICAgICAgICAgICAgZm9yIChs
ZXQgcHJvZmlsZU5vZGUgb2Ygcm9vdE5vZGVzKSB7CiAgICAgICAgICAgICAgICAgbGV0IHByb2Zp
bGVOb2RlRGF0YUdyaWROb2RlID0gbmV3IFdJLlByb2ZpbGVOb2RlRGF0YUdyaWROb2RlKHByb2Zp
bGVOb2RlLCB6ZXJvVGltZSwgc3RhcnRUaW1lLCBlbmRUaW1lKTsKLSAgICAgICAgICAgICAgICB0
aGlzLl9kYXRhR3JpZC5hZGRSb3dJblNvcnRPcmRlcihudWxsLCBwcm9maWxlTm9kZURhdGFHcmlk
Tm9kZSwgZGF0YUdyaWROb2RlKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRS
b3dJblNvcnRPcmRlcihwcm9maWxlTm9kZURhdGFHcmlkTm9kZSwgZGF0YUdyaWROb2RlKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZURhdGFHcmlkLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVEYXRhR3JpZC5qcwppbmRleCBk
NDgxZjM4MTRmYjdlNWJlODRkYTg0YTg0ZDY1ZTUwNTc4YzkzZWE5Li42M2VkYWM2Yzk0ZWE1OTZh
MThkNzRhZjAyMGM0YTNhY2U1MmExZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZURhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanMKQEAg
LTI1LDEzICsyNSwxMCBAQAogCiBXSS5UaW1lbGluZURhdGFHcmlkID0gY2xhc3MgVGltZWxpbmVE
YXRhR3JpZCBleHRlbmRzIFdJLkRhdGFHcmlkCiB7Ci0gICAgY29uc3RydWN0b3IoY29sdW1ucywg
dHJlZU91dGxpbmUsIHN5bmNocm9uaXplckRlbGVnYXRlLCBlZGl0Q2FsbGJhY2ssIGRlbGV0ZUNh
bGxiYWNrKQorICAgIGNvbnN0cnVjdG9yKGNvbHVtbnMsIGVkaXRDYWxsYmFjaywgZGVsZXRlQ2Fs
bGJhY2spCiAgICAgewogICAgICAgICBzdXBlcihjb2x1bW5zLCBlZGl0Q2FsbGJhY2ssIGRlbGV0
ZUNhbGxiYWNrKTsKIAotICAgICAgICBpZiAodHJlZU91dGxpbmUpCi0gICAgICAgICAgICB0aGlz
Ll90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyID0gbmV3IFdJLlRyZWVPdXRsaW5lRGF0
YUdyaWRTeW5jaHJvbml6ZXIodHJlZU91dGxpbmUsIHRoaXMsIHN5bmNocm9uaXplckRlbGVnYXRl
KTsKLQogICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidGltZWxpbmUiKTsKIAog
ICAgICAgICB0aGlzLl9zb3J0RGVsZWdhdGUgPSBudWxsOwpAQCAtMTAxLDggKzk4LDcgQEAgV0ku
VGltZWxpbmVEYXRhR3JpZCA9IGNsYXNzIFRpbWVsaW5lRGF0YUdyaWQgZXh0ZW5kcyBXSS5EYXRh
R3JpZAogICAgIHsKICAgICAgICAgLy8gTWF5IGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4g
SWYgc28sIHRoZXkgc2hvdWxkIGNhbGwgdGhlIHN1cGVyY2xhc3MuCiAKLSAgICAgICAgaWYgKCF0
aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyKQotICAgICAgICAgICAgdGhpcy5y
ZW1vdmVDaGlsZHJlbigpOworICAgICAgICB0aGlzLnJlbW92ZUNoaWxkcmVuKCk7CiAKICAgICAg
ICAgdGhpcy5faGlkZVBvcG92ZXIoKTsKICAgICB9CkBAIC0xMTAsOSArMTA2LDYgQEAgV0kuVGlt
ZWxpbmVEYXRhR3JpZCA9IGNsYXNzIFRpbWVsaW5lRGF0YUdyaWQgZXh0ZW5kcyBXSS5EYXRhR3Jp
ZAogICAgIHNob3duKCkKICAgICB7CiAgICAgICAgIC8vIE1heSBiZSBvdmVycmlkZGVuIGJ5IHN1
YmNsYXNzZXMuIElmIHNvLCB0aGV5IHNob3VsZCBjYWxsIHRoZSBzdXBlcmNsYXNzLgotCi0gICAg
ICAgIGlmICh0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyKQotICAgICAgICAg
ICAgdGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5zeW5jaHJvbml6ZSgpOwog
ICAgIH0KIAogICAgIGhpZGRlbigpCkBAIC0xMjIsNjEgKzExNSwyMSBAQCBXSS5UaW1lbGluZURh
dGFHcmlkID0gY2xhc3MgVGltZWxpbmVEYXRhR3JpZCBleHRlbmRzIFdJLkRhdGFHcmlkCiAgICAg
ICAgIHRoaXMuX2hpZGVQb3BvdmVyKCk7CiAgICAgfQogCi0gICAgdHJlZUVsZW1lbnRGb3JEYXRh
R3JpZE5vZGUoZGF0YUdyaWROb2RlKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl90cmVlT3V0
bGluZURhdGFHcmlkU3luY2hyb25pemVyKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAg
ICAgICAgcmV0dXJuIHRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIudHJlZUVs
ZW1lbnRGb3JEYXRhR3JpZE5vZGUoZGF0YUdyaWROb2RlKTsKLSAgICB9Ci0KLSAgICBkYXRhR3Jp
ZE5vZGVGb3JUcmVlRWxlbWVudCh0cmVlRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhp
cy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplcikKLSAgICAgICAgICAgIHJldHVybiBu
dWxsOwotCi0gICAgICAgIHJldHVybiB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25p
emVyLmRhdGFHcmlkTm9kZUZvclRyZWVFbGVtZW50KHRyZWVFbGVtZW50KTsKLSAgICB9Ci0KICAg
ICBjYWxsRnJhbWVQb3BvdmVyQW5jaG9yRWxlbWVudCgpCiAgICAgewogICAgICAgICAvLyBJbXBs
ZW1lbnRlZCBieSBzdWJjbGFzc2VzLgogICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKLSAg
ICBhZGRSb3dJblNvcnRPcmRlcih0cmVlRWxlbWVudCwgZGF0YUdyaWROb2RlLCBwYXJlbnRUcmVl
RWxlbWVudE9yRGF0YUdyaWROb2RlKQorICAgIGFkZFJvd0luU29ydE9yZGVyKGRhdGFHcmlkTm9k
ZSwgcGFyZW50RGF0YUdyaWROb2RlKQogICAgIHsKLSAgICAgICAgbGV0IHBhcmVudERhdGFHcmlk
Tm9kZTsKLSAgICAgICAgbGV0IGNoaWxkRWxlbWVudCA9IGRhdGFHcmlkTm9kZTsKLQotICAgICAg
ICBpZiAodHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3Ry
ZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIpOwotICAgICAgICAgICAgaWYgKCF0aGlzLl90
cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICAgICAgdGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5hc3Nv
Y2lhdGUodHJlZUVsZW1lbnQsIGRhdGFHcmlkTm9kZSk7Ci0KLSAgICAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCFwYXJlbnRUcmVlRWxlbWVudE9yRGF0YUdyaWROb2RlIHx8IHBhcmVudFRyZWVFbGVt
ZW50T3JEYXRhR3JpZE5vZGUgaW5zdGFuY2VvZiBXSS5UcmVlRWxlbWVudCk7Ci0KLSAgICAgICAg
ICAgIGxldCBwYXJlbnRUcmVlRWxlbWVudCA9IHBhcmVudFRyZWVFbGVtZW50T3JEYXRhR3JpZE5v
ZGUgfHwgdGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci50cmVlT3V0bGluZTsK
LSAgICAgICAgICAgIHBhcmVudERhdGFHcmlkTm9kZSA9IHBhcmVudFRyZWVFbGVtZW50LnJvb3Qg
PyB0aGlzIDogdGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5kYXRhR3JpZE5v
ZGVGb3JUcmVlRWxlbWVudChwYXJlbnRUcmVlRWxlbWVudCk7Ci0KLSAgICAgICAgICAgIHBhcmVu
dFRyZWVFbGVtZW50T3JEYXRhR3JpZE5vZGUgPSBwYXJlbnRUcmVlRWxlbWVudDsKLSAgICAgICAg
ICAgIGNoaWxkRWxlbWVudCA9IHRyZWVFbGVtZW50OwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgcGFyZW50VHJlZUVsZW1lbnRPckRhdGFHcmlkTm9kZSA9IHBhcmVudFRyZWVFbGVtZW50
T3JEYXRhR3JpZE5vZGUgfHwgdGhpczsKLSAgICAgICAgICAgIHBhcmVudERhdGFHcmlkTm9kZSA9
IHBhcmVudFRyZWVFbGVtZW50T3JEYXRhR3JpZE5vZGU7Ci0gICAgICAgIH0KKyAgICAgICAgcGFy
ZW50RGF0YUdyaWROb2RlID0gcGFyZW50RGF0YUdyaWROb2RlIHx8IHRoaXM7CiAKICAgICAgICAg
aWYgKHRoaXMuc29ydENvbHVtbklkZW50aWZpZXIpIHsKICAgICAgICAgICAgIGxldCBpbnNlcnRp
b25JbmRleCA9IGluc2VydGlvbkluZGV4Rm9yT2JqZWN0SW5MaXN0U29ydGVkQnlGdW5jdGlvbihk
YXRhR3JpZE5vZGUsIHBhcmVudERhdGFHcmlkTm9kZS5jaGlsZHJlbiwgdGhpcy5fc29ydENvbXBh
cmF0b3IuYmluZCh0aGlzKSk7Ci0KLSAgICAgICAgICAgIC8vIElmIHBhcmVudCBpcyBhIHRyZWUg
ZWxlbWVudCwgdGhlIHN5bmNocm9uaXplciB3aWxsIGluc2VydCBpbnRvIHRoZSBkYXRhIGdyaWQu
Ci0gICAgICAgICAgICBwYXJlbnRUcmVlRWxlbWVudE9yRGF0YUdyaWROb2RlLmluc2VydENoaWxk
KGNoaWxkRWxlbWVudCwgaW5zZXJ0aW9uSW5kZXgpOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgLy8gSWYgcGFyZW50IGlzIGEgdHJlZSBlbGVtZW50LCB0aGUgc3luY2hyb25pemVyIHdp
bGwgYXBwZW5kIHRvIHRoZSBkYXRhIGdyaWQuCi0gICAgICAgICAgICBwYXJlbnRUcmVlRWxlbWVu
dE9yRGF0YUdyaWROb2RlLmFwcGVuZENoaWxkKGNoaWxkRWxlbWVudCk7Ci0gICAgICAgIH0KKyAg
ICAgICAgICAgIHBhcmVudERhdGFHcmlkTm9kZS5pbnNlcnRDaGlsZChkYXRhR3JpZE5vZGUsIGlu
c2VydGlvbkluZGV4KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBwYXJlbnREYXRhR3Jp
ZE5vZGUuYXBwZW5kQ2hpbGQoZGF0YUdyaWROb2RlKTsKICAgICB9CiAKICAgICBzaG91bGRJZ25v
cmVTZWxlY3Rpb25FdmVudCgpCkBAIC0yMzYsOSArMTg5LDYgQEAgV0kuVGltZWxpbmVEYXRhR3Jp
ZCA9IGNsYXNzIFRpbWVsaW5lRGF0YUdyaWQgZXh0ZW5kcyBXSS5EYXRhR3JpZAogICAgICAgICBs
ZXQgc2VsZWN0ZWROb2RlID0gdGhpcy5zZWxlY3RlZE5vZGU7CiAgICAgICAgIGxldCBzb3J0Q29t
cGFyYXRvciA9IHRoaXMuX3NvcnRDb21wYXJhdG9yLmJpbmQodGhpcyk7CiAKLSAgICAgICAgaWYg
KHRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIpCi0gICAgICAgICAgICB0aGlz
Ll90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLmVuYWJsZWQgPSBmYWxzZTsKLQogICAg
ICAgICBmb3IgKGxldCBkYXRhR3JpZE5vZGUgb2YgdGhpcy5fZGlydHlEYXRhR3JpZE5vZGVzKSB7
CiAgICAgICAgICAgICBkYXRhR3JpZE5vZGUucmVmcmVzaCgpOwogCkBAIC0yNTksMjQgKzIwOSw4
IEBAIFdJLlRpbWVsaW5lRGF0YUdyaWQgPSBjbGFzcyBUaW1lbGluZURhdGFHcmlkIGV4dGVuZHMg
V0kuRGF0YUdyaWQKICAgICAgICAgICAgICAgICBzZWxlY3RlZE5vZGUucmV2ZWFsQW5kU2VsZWN0
KCk7CiAgICAgICAgICAgICAgICAgdGhpcy5faWdub3JlU2VsZWN0aW9uRXZlbnQgPSBmYWxzZTsK
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCF0aGlzLl90cmVlT3V0bGluZURhdGFH
cmlkU3luY2hyb25pemVyKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAg
ICBsZXQgdHJlZU91dGxpbmUgPSB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVy
LnRyZWVPdXRsaW5lOwotICAgICAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy5fdHJlZU91
dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci50cmVlRWxlbWVudEZvckRhdGFHcmlkTm9kZShkYXRh
R3JpZE5vZGUpOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQpOwotCi0g
ICAgICAgICAgICB0cmVlT3V0bGluZS5yZWF0dGFjaElmSW5kZXhDaGFuZ2VkKHRyZWVFbGVtZW50
LCBpbnNlcnRpb25JbmRleCk7Ci0KLSAgICAgICAgICAgIC8vIEFkZGluZyB0aGUgdHJlZSBlbGVt
ZW50IGJhY2sgdG8gdGhlIHRyZWUgb3V0bGluZSBzdWJqZWN0cyBpdCB0byBmaWx0ZXJzLgotICAg
ICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGtlZXAgdGhlIGhpZGRlbiBzdGF0ZSBpbi1zeW5jIHdo
aWxlIHRoZSBzeW5jaHJvbml6ZXIgaXMgZGlzYWJsZWQuCi0gICAgICAgICAgICBkYXRhR3JpZE5v
ZGUuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCB0cmVlRWxlbWVudC5oaWRkZW4p
OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuX3RyZWVPdXRsaW5lRGF0YUdyaWRTeW5j
aHJvbml6ZXIpCi0gICAgICAgICAgICB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25p
emVyLmVuYWJsZWQgPSB0cnVlOwotCiAgICAgICAgIHRoaXMuX2RpcnR5RGF0YUdyaWROb2RlcyA9
IG51bGw7CiAgICAgfQogCkBAIC0yOTIsMTUgKzIyNiw2IEBAIFdJLlRpbWVsaW5lRGF0YUdyaWQg
PSBjbGFzcyBUaW1lbGluZURhdGFHcmlkIGV4dGVuZHMgV0kuRGF0YUdyaWQKICAgICAgICAgbGV0
IHNlbGVjdGVkTm9kZSA9IHRoaXMuc2VsZWN0ZWROb2RlOwogICAgICAgICB0aGlzLl9pZ25vcmVT
ZWxlY3Rpb25FdmVudCA9IHRydWU7CiAKLSAgICAgICAgbGV0IHRyZWVPdXRsaW5lOwotICAgICAg
ICBpZiAodGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplcikgewotICAgICAgICAg
ICAgdGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5lbmFibGVkID0gZmFsc2U7
Ci0KLSAgICAgICAgICAgIHRyZWVPdXRsaW5lID0gdGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5
bmNocm9uaXplci50cmVlT3V0bGluZTsKLSAgICAgICAgICAgIGlmICh0cmVlT3V0bGluZS5zZWxl
Y3RlZFRyZWVFbGVtZW50KQotICAgICAgICAgICAgICAgIHRyZWVPdXRsaW5lLnNlbGVjdGVkVHJl
ZUVsZW1lbnQuZGVzZWxlY3QodHJ1ZSk7Ci0gICAgICAgIH0KLQogICAgICAgICAvLyBDb2xsZWN0
IHBhcmVudCBub2RlcyB0aGF0IG5lZWQgdGhlaXIgY2hpbGRyZW4gc29ydGVkLiBTbyB0aGlzIGlu
IHR3byBwaGFzZXMgc2luY2UKICAgICAgICAgLy8gdHJhdmVyc2VOZXh0Tm9kZSB3b3VsZCBnZXQg
Y29uZnVzZWQgaWYgd2Ugc29ydCB0aGUgdHJlZSB3aGlsZSB0cmF2ZXJzaW5nIGl0LgogICAgICAg
ICBsZXQgcGFyZW50RGF0YUdyaWROb2RlcyA9IFt0aGlzXTsKQEAgLTMxNSwzNyArMjQwLDEyIEBA
IFdJLlRpbWVsaW5lRGF0YUdyaWQgPSBjbGFzcyBUaW1lbGluZURhdGFHcmlkIGV4dGVuZHMgV0ku
RGF0YUdyaWQKICAgICAgICAgZm9yIChsZXQgcGFyZW50RGF0YUdyaWROb2RlIG9mIHBhcmVudERh
dGFHcmlkTm9kZXMpIHsKICAgICAgICAgICAgIGxldCBjaGlsZERhdGFHcmlkTm9kZXMgPSBwYXJl
bnREYXRhR3JpZE5vZGUuY2hpbGRyZW4uc2xpY2UoKTsKICAgICAgICAgICAgIHBhcmVudERhdGFH
cmlkTm9kZS5yZW1vdmVDaGlsZHJlbigpOwotCi0gICAgICAgICAgICBsZXQgcGFyZW50VHJlZUVs
ZW1lbnQ7Ci0gICAgICAgICAgICBpZiAodGhpcy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9u
aXplcikgewotICAgICAgICAgICAgICAgIHBhcmVudFRyZWVFbGVtZW50ID0gcGFyZW50RGF0YUdy
aWROb2RlID09PSB0aGlzID8gdHJlZU91dGxpbmUgOiB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlk
U3luY2hyb25pemVyLnRyZWVFbGVtZW50Rm9yRGF0YUdyaWROb2RlKHBhcmVudERhdGFHcmlkTm9k
ZSk7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocGFyZW50VHJlZUVsZW1lbnQpOwot
Ci0gICAgICAgICAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAg
ICAgICAgICAgIH0KLQogICAgICAgICAgICAgY2hpbGREYXRhR3JpZE5vZGVzLnNvcnQodGhpcy5f
c29ydENvbXBhcmF0b3IuYmluZCh0aGlzKSk7CiAKLSAgICAgICAgICAgIGZvciAobGV0IGRhdGFH
cmlkTm9kZSBvZiBjaGlsZERhdGFHcmlkTm9kZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAodGhp
cy5fdHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplcikgewotICAgICAgICAgICAgICAgICAg
ICBsZXQgdHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVy
LnRyZWVFbGVtZW50Rm9yRGF0YUdyaWROb2RlKGRhdGFHcmlkTm9kZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50KTsKLQotICAgICAgICAgICAgICAgICAg
ICBpZiAocGFyZW50VHJlZUVsZW1lbnQpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRU
cmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0cmVlRWxlbWVudCk7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgLy8gQWRkaW5nIHRoZSB0cmVlIGVsZW1lbnQgYmFjayB0byB0aGUgdHJlZSBvdXRsaW5lIHN1
YmplY3RzIGl0IHRvIGZpbHRlcnMuCi0gICAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3
ZSBrZWVwIHRoZSBoaWRkZW4gc3RhdGUgaW4tc3luYyB3aGlsZSB0aGUgc3luY2hyb25pemVyIGlz
IGRpc2FibGVkLgotICAgICAgICAgICAgICAgICAgICBkYXRhR3JpZE5vZGUuZWxlbWVudC5jbGFz
c0xpc3QudG9nZ2xlKCJoaWRkZW4iLCB0cmVlRWxlbWVudC5oaWRkZW4pOwotICAgICAgICAgICAg
ICAgIH0KLQorICAgICAgICAgICAgZm9yIChsZXQgZGF0YUdyaWROb2RlIG9mIGNoaWxkRGF0YUdy
aWROb2RlcykKICAgICAgICAgICAgICAgICBwYXJlbnREYXRhR3JpZE5vZGUuYXBwZW5kQ2hpbGQo
ZGF0YUdyaWROb2RlKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmICh0
aGlzLl90cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyKQotICAgICAgICAgICAgdGhpcy5f
dHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5lbmFibGVkID0gdHJ1ZTsKLQogICAgICAg
ICBpZiAoc2VsZWN0ZWROb2RlKQogICAgICAgICAgICAgc2VsZWN0ZWROb2RlLnJldmVhbEFuZFNl
bGVjdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9u
aXplci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWVlYzI4NTRjYmMzYjFkNGNi
NWY3Mzk2YWVlNWQzYjEwYzFjNGMwZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjg0
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5UcmVlT3V0bGluZURhdGFHcmlkU3luY2hy
b25pemVyID0gY2xhc3MgVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplciBleHRlbmRzIFdJ
Lk9iamVjdAotewotICAgIGNvbnN0cnVjdG9yKHRyZWVPdXRsaW5lLCBkYXRhR3JpZCwgZGVsZWdh
dGUpCi0gICAgewotICAgICAgICBzdXBlcigpOwotCi0gICAgICAgIHRoaXMuX3RyZWVPdXRsaW5l
ID0gdHJlZU91dGxpbmU7Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkID0gZGF0YUdyaWQ7Ci0gICAg
ICAgIHRoaXMuX2RlbGVnYXRlID0gZGVsZWdhdGUgfHwgbnVsbDsKLSAgICAgICAgdGhpcy5fZW5h
YmxlZCA9IHRydWU7Ci0KLSAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUuZWxlbWVudC5wYXJlbnRO
b2RlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMuX3RyZWVPdXRsaW5lU2Nyb2xsZWQu
YmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkLnNjcm9sbENvbnRhaW5lci5hZGRF
dmVudExpc3RlbmVyKCJzY3JvbGwiLCB0aGlzLl9kYXRhR3JpZFNjcm9sbGVkLmJpbmQodGhpcykp
OwotCi0gICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLl9fZGF0YUdyaWROb2RlID0gdGhpcy5fZGF0
YUdyaWQ7Ci0KLSAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5EYXRh
R3JpZC5FdmVudC5FeHBhbmRlZE5vZGUsIHRoaXMuX2RhdGFHcmlkTm9kZUV4cGFuZGVkLCB0aGlz
KTsKLSAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXSS5EYXRhR3JpZC5F
dmVudC5Db2xsYXBzZWROb2RlLCB0aGlzLl9kYXRhR3JpZE5vZGVDb2xsYXBzZWQsIHRoaXMpOwot
ICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdJLkRhdGFHcmlkLkV2ZW50
LlNlbGVjdGVkTm9kZUNoYW5nZWQsIHRoaXMuX2RhdGFHcmlkTm9kZVNlbGVjdGVkLCB0aGlzKTsK
LQotICAgICAgICB0aGlzLl9kYXRhR3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vz
IiwgdGhpcy5fZGF0YUdyaWRHYWluZWRGb2N1cy5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5f
ZGF0YUdyaWQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgdGhpcy5fZGF0YUdyaWRM
b3N0Rm9jdXMuYmluZCh0aGlzKSk7Ci0KLSAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUuZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIHRoaXMuX3RyZWVPdXRsaW5lR2FpbmVkRm9jdXMu
YmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLmVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiYmx1ciIsIHRoaXMuX3RyZWVPdXRsaW5lTG9zdEZvY3VzLmJpbmQodGhpcykpOwot
Ci0gICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZl
bnQuRWxlbWVudEFkZGVkLCB0aGlzLl90cmVlRWxlbWVudEFkZGVkLCB0aGlzKTsKLSAgICAgICAg
dHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50
UmVtb3ZlZCwgdGhpcy5fdHJlZUVsZW1lbnRSZW1vdmVkLCB0aGlzKTsKLSAgICAgICAgdHJlZU91
dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50RGlzY2xv
c3VyZURpZENoYW5nZWQsIHRoaXMuX3RyZWVFbGVtZW50RGlzY2xvc3VyZURpZENoYW5nZSwgdGhp
cyk7Ci0gICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUu
RXZlbnQuRWxlbWVudFZpc2liaWxpdHlEaWRDaGFuZ2UsIHRoaXMuX3RyZWVFbGVtZW50VmlzaWJp
bGl0eURpZENoYW5nZSwgdGhpcyk7Ci0gICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90cmVlU2Vs
ZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIGdl
dCB0cmVlT3V0bGluZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdHJlZU91dGxpbmU7
Ci0gICAgfQotCi0gICAgZ2V0IGRhdGFHcmlkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9kYXRhR3JpZDsKLSAgICB9Ci0KLSAgICBnZXQgZGVsZWdhdGUoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX2RlbGVnYXRlOwotICAgIH0KLQotICAgIGdldCBlbmFibGVkKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9lbmFibGVkOwotICAgIH0KLQotICAgIHNldCBlbmFibGVk
KHgpCi0gICAgewotICAgICAgICB0aGlzLl9lbmFibGVkID0geCB8fCBmYWxzZTsKLSAgICB9Ci0K
LSAgICBhc3NvY2lhdGUodHJlZUVsZW1lbnQsIGRhdGFHcmlkTm9kZSkKLSAgICB7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50KTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoZGF0
YUdyaWROb2RlKTsKLQotICAgICAgICB0cmVlRWxlbWVudC5fX2RhdGFHcmlkTm9kZSA9IGRhdGFH
cmlkTm9kZTsKLSAgICAgICAgZGF0YUdyaWROb2RlLl9fdHJlZUVsZW1lbnQgPSB0cmVlRWxlbWVu
dDsKLSAgICB9Ci0KLSAgICBzeW5jaHJvbml6ZSgpCi0gICAgewotICAgICAgICB0aGlzLl9kYXRh
R3JpZC5zY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0gdGhpcy5fdHJlZU91dGxpbmUuZWxlbWVu
dC5wYXJlbnROb2RlLnNjcm9sbFRvcDsKLSAgICAgICAgaWYgKHRoaXMuX3RyZWVPdXRsaW5lLnNl
bGVjdGVkVHJlZUVsZW1lbnQpCi0gICAgICAgICAgICB0aGlzLl90cmVlT3V0bGluZS5zZWxlY3Rl
ZFRyZWVFbGVtZW50Ll9fZGF0YUdyaWROb2RlLnNlbGVjdCh0cnVlKTsKLSAgICAgICAgZWxzZSBp
ZiAodGhpcy5fZGF0YUdyaWQuc2VsZWN0ZWROb2RlKQotICAgICAgICAgICAgdGhpcy5fZGF0YUdy
aWQuc2VsZWN0ZWROb2RlLmRlc2VsZWN0KHRydWUpOwotICAgIH0KLQotICAgIHRyZWVFbGVtZW50
Rm9yRGF0YUdyaWROb2RlKGRhdGFHcmlkTm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBkYXRh
R3JpZE5vZGUuX190cmVlRWxlbWVudCB8fCBudWxsOwotICAgIH0KLQotICAgIGRhdGFHcmlkTm9k
ZUZvclRyZWVFbGVtZW50KHRyZWVFbGVtZW50KQotICAgIHsKLSAgICAgICAgaWYgKHRyZWVFbGVt
ZW50Ll9fZGF0YUdyaWROb2RlKQotICAgICAgICAgICAgcmV0dXJuIHRyZWVFbGVtZW50Ll9fZGF0
YUdyaWROb2RlOwotCi0gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZGF0YUdyaWRO
b2RlRm9yVHJlZUVsZW1lbnQgPT09ICJmdW5jdGlvbiIpIHsKLSAgICAgICAgICAgIHZhciBkYXRh
R3JpZE5vZGUgPSB0aGlzLl9kZWxlZ2F0ZS5kYXRhR3JpZE5vZGVGb3JUcmVlRWxlbWVudCh0cmVl
RWxlbWVudCk7Ci0gICAgICAgICAgICBpZiAoZGF0YUdyaWROb2RlKQotICAgICAgICAgICAgICAg
IHRoaXMuYXNzb2NpYXRlKHRyZWVFbGVtZW50LCBkYXRhR3JpZE5vZGUpOwotICAgICAgICAgICAg
cmV0dXJuIGRhdGFHcmlkTm9kZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxsOwot
ICAgIH0KLQotICAgIC8vIFByaXZhdGUKLQotICAgIF90cmVlT3V0bGluZVNjcm9sbGVkKGV2ZW50
KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGlmICh0aGlzLl9pZ25vcmVOZXh0VHJlZU91dGxpbmVTY3JvbGxFdmVudCkg
ewotICAgICAgICAgICAgdGhpcy5faWdub3JlTmV4dFRyZWVPdXRsaW5lU2Nyb2xsRXZlbnQgPSBm
YWxzZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX2ln
bm9yZU5leHREYXRhR3JpZFNjcm9sbEV2ZW50ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fZGF0YUdy
aWQuc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcCA9IHRoaXMuX3RyZWVPdXRsaW5lLmVsZW1lbnQu
cGFyZW50Tm9kZS5zY3JvbGxUb3A7Ci0gICAgfQotCi0gICAgX2RhdGFHcmlkR2FpbmVkRm9jdXMo
ZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl90cmVlT3V0bGluZS5lbGVtZW50LmNsYXNzTGlz
dC5hZGQoImZvcmNlLWZvY3VzIik7Ci0gICAgfQotCi0gICAgX2RhdGFHcmlkTG9zdEZvY3VzKGV2
ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUuZWxlbWVudC5jbGFzc0xpc3Qu
cmVtb3ZlKCJmb3JjZS1mb2N1cyIpOwotICAgIH0KLQotICAgIF9kYXRhR3JpZFNjcm9sbGVkKGV2
ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGlmICh0aGlzLl9pZ25vcmVOZXh0RGF0YUdyaWRTY3JvbGxFdmVudCkg
ewotICAgICAgICAgICAgdGhpcy5faWdub3JlTmV4dERhdGFHcmlkU2Nyb2xsRXZlbnQgPSBmYWxz
ZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX2lnbm9y
ZU5leHRUcmVlT3V0bGluZVNjcm9sbEV2ZW50ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fdHJlZU91
dGxpbmUuZWxlbWVudC5wYXJlbnROb2RlLnNjcm9sbFRvcCA9IHRoaXMuX2RhdGFHcmlkLnNjcm9s
bENvbnRhaW5lci5zY3JvbGxUb3A7Ci0gICAgfQotCi0gICAgX2RhdGFHcmlkTm9kZVNlbGVjdGVk
KGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIHZhciBkYXRhR3JpZE5vZGUgPSB0aGlzLl9kYXRhR3JpZC5zZWxl
Y3RlZE5vZGU7Ci0gICAgICAgIGlmIChkYXRhR3JpZE5vZGUpCi0gICAgICAgICAgICBkYXRhR3Jp
ZE5vZGUuX190cmVlRWxlbWVudC5zZWxlY3QodHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7Ci0gICAg
fQotCi0gICAgX2RhdGFHcmlkTm9kZUV4cGFuZGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYg
KCF0aGlzLl9lbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBkYXRh
R3JpZE5vZGUgPSBldmVudC5kYXRhLmRhdGFHcmlkTm9kZTsKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQoZGF0YUdyaWROb2RlKTsKLQotICAgICAgICBpZiAoIWRhdGFHcmlkTm9kZS5fX3RyZWVFbGVt
ZW50LmV4cGFuZGVkKQotICAgICAgICAgICAgZGF0YUdyaWROb2RlLl9fdHJlZUVsZW1lbnQuZXhw
YW5kKCk7Ci0gICAgfQotCi0gICAgX2RhdGFHcmlkTm9kZUNvbGxhcHNlZChldmVudCkKLSAgICB7
Ci0gICAgICAgIGlmICghdGhpcy5fZW5hYmxlZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICB2YXIgZGF0YUdyaWROb2RlID0gZXZlbnQuZGF0YS5kYXRhR3JpZE5vZGU7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGRhdGFHcmlkTm9kZSk7Ci0KLSAgICAgICAgaWYgKGRhdGFHcmlkTm9k
ZS5fX3RyZWVFbGVtZW50LmV4cGFuZGVkKQotICAgICAgICAgICAgZGF0YUdyaWROb2RlLl9fdHJl
ZUVsZW1lbnQuY29sbGFwc2UoKTsKLSAgICB9Ci0KLSAgICBfdHJlZU91dGxpbmVHYWluZWRGb2N1
cyhldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkLmVsZW1lbnQuY2xhc3NMaXN0
LmFkZCgiZm9yY2UtZm9jdXMiKTsKLSAgICB9Ci0KLSAgICBfdHJlZU91dGxpbmVMb3N0Rm9jdXMo
ZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9kYXRhR3JpZC5lbGVtZW50LmNsYXNzTGlzdC5y
ZW1vdmUoImZvcmNlLWZvY3VzIik7Ci0gICAgfQotCi0gICAgX3RyZWVTZWxlY3Rpb25EaWRDaGFu
Z2UoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5zZWxlY3Rl
ZEVsZW1lbnQgfHwgZXZlbnQuZGF0YS5kZXNlbGVjdGVkRWxlbWVudDsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQodHJlZUVsZW1lbnQpOwotICAgICAgICBpZiAoIXRyZWVFbGVtZW50KQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBkYXRhR3JpZE5vZGUgPSB0cmVlRWxlbWVudC5f
X2RhdGFHcmlkTm9kZTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoZGF0YUdyaWROb2RlKTsKLQot
ICAgICAgICBpZiAoZXZlbnQuZGF0YS5zZWxlY3RlZEVsZW1lbnQpCi0gICAgICAgICAgICBkYXRh
R3JpZE5vZGUuc2VsZWN0KCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRhdGFHcmlkTm9k
ZS5kZXNlbGVjdCgpOwotICAgIH0KLQotICAgIF90cmVlRWxlbWVudEFkZGVkKGV2ZW50KQotICAg
IHsKLSAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIGxldCB0cmVlRWxlbWVudCA9IGV2ZW50LmRhdGEuZWxlbWVudDsKLSAgICAgICAgbGV0
IGRhdGFHcmlkTm9kZSA9IHRoaXMuZGF0YUdyaWROb2RlRm9yVHJlZUVsZW1lbnQodHJlZUVsZW1l
bnQpOwotICAgICAgICBjb25zb2xlLmFzc2VydChkYXRhR3JpZE5vZGUpOwotCi0gICAgICAgIHZh
ciBwYXJlbnREYXRhR3JpZE5vZGUgPSB0cmVlRWxlbWVudC5wYXJlbnQuX19kYXRhR3JpZE5vZGU7
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHBhcmVudERhdGFHcmlkTm9kZSk7Ci0KLSAgICAgICAg
dmFyIGNoaWxkSW5kZXggPSB0cmVlRWxlbWVudC5wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZih0cmVl
RWxlbWVudCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNoaWxkSW5kZXggIT09IC0xKTsKLQot
ICAgICAgICBwYXJlbnREYXRhR3JpZE5vZGUuaW5zZXJ0Q2hpbGQoZGF0YUdyaWROb2RlLCBjaGls
ZEluZGV4KTsKLSAgICB9Ci0KLSAgICBfdHJlZUVsZW1lbnRSZW1vdmVkKGV2ZW50KQotICAgIHsK
LSAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIGxldCB0cmVlRWxlbWVudCA9IGV2ZW50LmRhdGEuZWxlbWVudDsKLSAgICAgICAgbGV0IGRh
dGFHcmlkTm9kZSA9IHRyZWVFbGVtZW50Ll9fZGF0YUdyaWROb2RlOwotICAgICAgICBjb25zb2xl
LmFzc2VydChkYXRhR3JpZE5vZGUpOwotCi0gICAgICAgIGlmIChkYXRhR3JpZE5vZGUucGFyZW50
KQotICAgICAgICAgICAgZGF0YUdyaWROb2RlLnBhcmVudC5yZW1vdmVDaGlsZChkYXRhR3JpZE5v
ZGUpOwotICAgIH0KLQotICAgIF90cmVlRWxlbWVudERpc2Nsb3N1cmVEaWRDaGFuZ2UoZXZlbnQp
Ci0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5lbGVtZW50OwotICAgICAg
ICBsZXQgZGF0YUdyaWROb2RlID0gdHJlZUVsZW1lbnQuX19kYXRhR3JpZE5vZGU7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGRhdGFHcmlkTm9kZSk7Ci0KLSAgICAgICAgaWYgKHRyZWVFbGVtZW50
LmV4cGFuZGVkKQotICAgICAgICAgICAgZGF0YUdyaWROb2RlLmV4cGFuZCgpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBkYXRhR3JpZE5vZGUuY29sbGFwc2UoKTsKLSAgICB9Ci0KLSAgICBf
dHJlZUVsZW1lbnRWaXNpYmlsaXR5RGlkQ2hhbmdlKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYg
KCF0aGlzLl9lbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCB0cmVl
RWxlbWVudCA9IGV2ZW50LmRhdGEuZWxlbWVudDsKLSAgICAgICAgbGV0IGRhdGFHcmlkTm9kZSA9
IHRyZWVFbGVtZW50Ll9fZGF0YUdyaWROb2RlOwotICAgICAgICBjb25zb2xlLmFzc2VydChkYXRh
R3JpZE5vZGUpOwotCi0gICAgICAgIGRhdGFHcmlkTm9kZS5oaWRkZW4gPSB0cmVlRWxlbWVudC5o
aWRkZW47Ci0gICAgfQotfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>