<?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>173984</bug_id>
          
          <creation_ts>2017-06-29 12:51:17 -0700</creation_ts>
          <short_desc>Web Inspector: Default string comparisons to treat numeric characters as numbers</short_desc>
          <delta_ts>2017-06-30 14:47:10 -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=173807</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1324056</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-06-29 12:51:17 -0700</bug_when>
    <thetext>We should always be sorting strings as `x1 &lt; x2 &lt; x10` instead of `x1 &lt; x10 &lt; x2`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324097</commentid>
    <comment_count>1</comment_count>
      <attachid>314166</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-06-29 14:23:10 -0700</bug_when>
    <thetext>Created attachment 314166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324103</commentid>
    <comment_count>2</comment_count>
      <attachid>314166</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-06-29 14:32:55 -0700</bug_when>
    <thetext>Comment on attachment 314166
Patch

Utility functions are testable. Other than lack of tests, looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324164</commentid>
    <comment_count>3</comment_count>
      <attachid>314166</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-29 17:02:25 -0700</bug_when>
    <thetext>Comment on attachment 314166
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1492
&gt; +function numericStringComparator(a, b)
&gt; +{
&gt; +    return a.localeCompare(b, undefined, {numeric: true});
&gt; +}

I totally agree with Matt that we should have a quick unit-test for this. See: LayoutTests/inspector/unit-tests/*

Did this just replace every instance of localeCompare? I think we should name this along the lines of localeCompare otherwise I&apos;m going to forget about it and end up adding localeCompare.

How about:

    numberAwareLocaleCompare() // Gives an idea what it does
    extendedLocaleCompare() // Indicates its somehow better thane just localeCompare
    String.prototype.extendedLocaleCompare // like Number.prototype.bytesToString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324232</commentid>
    <comment_count>4</comment_count>
      <attachid>314206</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-06-29 19:10:54 -0700</bug_when>
    <thetext>Created attachment 314206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324464</commentid>
    <comment_count>5</comment_count>
      <attachid>314206</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-30 11:01:59 -0700</bug_when>
    <thetext>Comment on attachment 314206
Patch

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

r=me

&gt; LayoutTests/inspector/unit-tests/string-utilities.html:44
&gt; +            InspectorTest.expectEqual(&quot;1&quot;.extendedLocaleCompare(&quot;2&quot;), -1, `&quot;1&quot; &lt; &quot;2&quot;`);
&gt; +            InspectorTest.expectEqual(&quot;2&quot;.extendedLocaleCompare(&quot;1&quot;), 1, `&quot;2&quot; &gt; &quot;1&quot;`);
&gt; +            InspectorTest.expectEqual(&quot;2&quot;.extendedLocaleCompare(&quot;10&quot;), -1, `&quot;2&quot; &lt; &quot;10&quot;`);
&gt; +            InspectorTest.expectEqual(&quot;10&quot;.extendedLocaleCompare(&quot;2&quot;), 1, `&quot;10&quot; &gt; &quot;2&quot;`);
&gt; +            InspectorTest.expectEqual(&quot;1&quot;.extendedLocaleCompare(&quot;10&quot;), -1, `&quot;1&quot; &lt; &quot;10&quot;`);
&gt; +            InspectorTest.expectEqual(&quot;10&quot;.extendedLocaleCompare(&quot;1&quot;), 1, `&quot;10&quot; &gt; &quot;1&quot;`);

How does: &quot;a2&quot; compare to &quot;a10&quot;?
Can we have a test?

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:676
&gt; +    value: function(other)

Style:

    value(other)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324524</commentid>
    <comment_count>6</comment_count>
      <attachid>314287</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-06-30 14:11:50 -0700</bug_when>
    <thetext>Created attachment 314287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324547</commentid>
    <comment_count>7</comment_count>
      <attachid>314287</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-30 14:47:09 -0700</bug_when>
    <thetext>Comment on attachment 314287
Patch

Clearing flags on attachment: 314287

Committed r219014: &lt;http://trac.webkit.org/changeset/219014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324548</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-30 14:47:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314166</attachid>
            <date>2017-06-29 14:23:10 -0700</date>
            <delta_ts>2017-06-29 19:10:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>173984.diff</filename>
            <type>text/plain</type>
            <size>25374</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS8uZXNsaW50cmMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvLmVzbGludHJjCmluZGV4IDM1NTNlZDMyY2M5Li41YzVmNjJjMTA3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJLy5lc2xpbnRyYworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvLmVzbGludHJjCkBAIC0xMDQsNiArMTA0LDcgQEAKICAgICAgICAgInRpbWVz
dGFtcCI6IHRydWUsCiAgICAgICAgICJoYW5kbGVQcm9taXNlRXhjZXB0aW9uIjogdHJ1ZSwKICAg
ICAgICAgImluc2VydE9iamVjdEludG9Tb3J0ZWRBcnJheSI6IHRydWUsCisgICAgICAgICJudW1l
cmljU3RyaW5nQ29tcGFyYXRvciI6IHRydWUsCiAKICAgICAgICAgLy8gSW1hZ2UgVXRpbGl0aWVz
CiAgICAgICAgICJwbGF0Zm9ybUltYWdlUGF0aCI6IHRydWUsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZwppbmRleCBmZWRjM2Q3ZDcxYy4uMGZmMjE1OWJmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDU4IEBACisyMDE3LTA2LTI5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBEZWZhdWx0IHN0cmluZyBjb21wYXJp
c29ucyB0byB0cmVhdCBudW1lcmljIGNoYXJhY3RlcnMgYXMgbnVtYmVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczOTg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiAuZXNsaW50cmM6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qczoKKyAgICAgICAgKG51bWVyaWNTdHJp
bmdDb21wYXJhdG9yKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFT
Y3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLnByb3RvdHlwZS5jb21wbGV0aW9u
Q29udHJvbGxlckNvbXBsZXRpb25zTmVlZGVkLnJlY2VpdmVkUHJvcGVydHlOYW1lcy5jb21wYXJl
KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Jlc291cmNlUXVlcnlDb250
cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlUXVlcnlDb250cm9sbGVy
LnByb3RvdHlwZS5leGVjdXRlUXVlcnkpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
QXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcucHJvdG90eXBlLl9zb3J0RGF0YUdy
aWQubG9jYWxlQ29tcGFyZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHls
ZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZURlY2xhcmF0aW9uVGV4dEVkaXRvci5wcm90b3R5cGUuX2l0ZXJhdGVPdmVyUHJvcGVydGllcyk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db29raWVTdG9yYWdlQ29udGVudFZpZXcu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fc29ydERhdGFHcmlkLmxvY2FsZUNvbXBhcmUpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZWZyZXNoQXR0cmli
dXRlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwu
cHJvdG90eXBlLl9yZWZyZXNoRXZlbnRMaXN0ZW5lcnMuZ2VuZXJhdGVHcm91cHNCeU5vZGUpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldy5wcm90b3R5cGUuX3Nv
cnREYXRhR3JpZC5jb21wYXJhdG9yKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0Rl
YnVnZ2VyU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5fY29tcGFyZVRvcExldmVsVHJlZUVsZW1lbnRzKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVlRWxlbWVudC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Gb2xkZXJpemVkVHJlZUVsZW1lbnQucHJvdG90eXBlLl9jb21wYXJl
VHJlZUVsZW1lbnRzQnlNYWluVGl0bGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
SGVhcFNuYXBzaG90RGF0YUdyaWRUcmVlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBT
bmFwc2hvdERhdGFHcmlkVHJlZS5idWlsZFNvcnRDb21wYXJhdG9yKToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya1RpbWVsaW5lVmlldy5wcm90b3R5cGUuZGF0YUdyaWRTb3J0Q29tcGFyYXRv
cik6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9OZXdUYWJDb250ZW50Vmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXdUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuX3VwZGF0
ZVNob3duVGFicyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9PdmVydmlld1RpbWVs
aW5lVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PdmVydmlld1RpbWVsaW5lVmlldy5w
cm90b3R5cGUuX2NvbXBhcmVEYXRhR3JpZE5vZGVzQnlTdGFydFRpbWUpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2JlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuaW5zcGVjdCk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9RdWlja0NvbnNvbGUuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUXVpY2tDb25zb2xlLnByb3RvdHlwZS5fY29tcGFyZUV4ZWN1dGlvbkNv
bnRleHRQYXRoQ29tcG9uZW50cyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZURldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fY3JlYXRlTmFtZVZhbHVlRGF0YUdyaWQu
c29ydERhdGFHcmlkLmNvbXBhcmF0b3IpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
UmVzb3VyY2VTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VT
aWRlYmFyUGFuZWwucHJvdG90eXBlLl9jb21wYXJlVHJlZUVsZW1lbnRzKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudC5jb21wYXJlUmVzb3VyY2VUcmVlRWxlbWVudHMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQuY29tcGFyZUZvbGRl
ckFuZFJlc291cmNlVHJlZUVsZW1lbnRzKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2Ny
aXB0RGV0YWlsc1RpbWVsaW5lVmlldy5wcm90b3R5cGUuZGF0YUdyaWRTb3J0Q29tcGFyYXRvcik6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lkZWJhclBhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlN0b3JhZ2VTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9jb21w
YXJlVHJlZUVsZW1lbnRzKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5l
RGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVEYXRhR3JpZC5wcm90
b3R5cGUuX3NvcnRDb21wYXJhdG9yKToKKwogMjAxNy0wNi0yOCAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW5zdHJ1bWVudCBhY3Rp
dmUgcGl4ZWwgbWVtb3J5IHVzZWQgYnkgY2FudmFzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKaW5kZXggZDZjZDAzNDQ5
MGQuLjY5NDE0NWQ0MGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwpAQCAtMTQ4Niw2ICsxNDg2LDExIEBAIGZ1bmN0
aW9uIGluc2VydE9iamVjdEludG9Tb3J0ZWRBcnJheShvYmplY3QsIGFycmF5LCBjb21wYXJhdG9y
KQogICAgIGFycmF5LnNwbGljZShpbnNlcnRpb25JbmRleEZvck9iamVjdEluTGlzdFNvcnRlZEJ5
RnVuY3Rpb24ob2JqZWN0LCBhcnJheSwgY29tcGFyYXRvciksIDAsIG9iamVjdCk7CiB9CiAKK2Z1
bmN0aW9uIG51bWVyaWNTdHJpbmdDb21wYXJhdG9yKGEsIGIpCit7CisgICAgcmV0dXJuIGEubG9j
YWxlQ29tcGFyZShiLCB1bmRlZmluZWQsIHtudW1lcmljOiB0cnVlfSk7Cit9CisKIGZ1bmN0aW9u
IGRlY29kZUJhc2U2NFRvQmxvYihiYXNlNjREYXRhLCBtaW1lVHlwZSkKIHsKICAgICBtaW1lVHlw
ZSA9IG1pbWVUeXBlIHx8ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlk
ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9K
YXZhU2NyaXB0UnVudGltZUNvbXBsZXRpb25Qcm92aWRlci5qcwppbmRleCAxMzRiMmYwMzJhYi4u
YWFhYzY1OGU5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFT
Y3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzCkBAIC0yODIsNyArMjgyLDcgQEAgV2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyID0gY2xhc3MgSmF2
YVNjcmlwdFJ1bnRpbWVDb21wbGUKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogCiAg
ICAgICAgICAgICAgICAgLy8gTm90IG51bWJlcnMsIHNvcnQgYXMgc3RyaW5ncy4KLSAgICAgICAg
ICAgICAgICByZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIpOworICAgICAgICAgICAgICAgIHJldHVy
biBudW1lcmljU3RyaW5nQ29tcGFyYXRvcihhLCBiKTsKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgY29tcGxldGlvbnMuc29ydChjb21wYXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Jlc291cmNlUXVlcnlDb250cm9s
bGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
UmVzb3VyY2VRdWVyeUNvbnRyb2xsZXIuanMKaW5kZXggMTcxMTY1ZjMyMjYuLmJhZTEwNjc4MDc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9SZXNvdXJjZVF1ZXJ5Q29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9SZXNvdXJjZVF1ZXJ5Q29udHJvbGxlci5qcwpA
QCAtODIsNyArODIsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VRdWVyeUNvbnRyb2xsZXIgPSBj
bGFzcyBSZXNvdXJjZVF1ZXJ5Q29udHJvbGxlciBleHRlbmRzIFdlYgogICAgICAgICAvLyByYW5r
IGFyZSBzb3J0ZWQgYnkgZGlzcGxheSBuYW1lLgogICAgICAgICByZXR1cm4gcmVzdWx0cy5zb3J0
KChhLCBiKSA9PiB7CiAgICAgICAgICAgICBpZiAoYS5yYW5rID09PSBiLnJhbmspCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGEucmVzb3VyY2UuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLnJl
c291cmNlLmRpc3BsYXlOYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVtZXJpY1N0cmlu
Z0NvbXBhcmF0b3IoYS5yZXNvdXJjZS5kaXNwbGF5TmFtZSwgYi5yZXNvdXJjZS5kaXNwbGF5TmFt
ZSk7CiAgICAgICAgICAgICByZXR1cm4gYi5yYW5rIC0gYS5yYW5rOwogICAgICAgICB9KTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3
LmpzCmluZGV4IGM3M2ZjMTQ4MTdlLi4yZTI1Yjc2NTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29u
dGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanMKQEAgLTE4Miw3ICsxODIsNyBA
QCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcgPSBjbGFzcyBB
cHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZQogICAgICAgICB9CiAgICAgICAgIGZ1bmN0aW9uIGxv
Y2FsZUNvbXBhcmUoY29sdW1uSWRlbnRpZmllciwgbm9kZUEsIG5vZGVCKQogICAgICAgICB7Ci0g
ICAgICAgICAgICAgcmV0dXJuIChub2RlQS5kYXRhW2NvbHVtbklkZW50aWZpZXJdICsgIiIpLmxv
Y2FsZUNvbXBhcmUobm9kZUIuZGF0YVtjb2x1bW5JZGVudGlmaWVyXSArICIiKTsKKyAgICAgICAg
ICAgICByZXR1cm4gbnVtZXJpY1N0cmluZ0NvbXBhcmF0b3Iobm9kZUEuZGF0YVtjb2x1bW5JZGVu
dGlmaWVyXSArICIiLCBub2RlQi5kYXRhW2NvbHVtbklkZW50aWZpZXJdICsgIiIpOwogICAgICAg
ICB9CiAKICAgICAgICAgdmFyIGNvbXBhcmF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRv
ci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxl
RGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCmluZGV4IDIyMTNkM2UwNTYzLi43OGM1NzI3ZDA5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NT
U3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKQEAg
LTEzMDMsNyArMTMwMyw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvciA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yCiAKICAgICAgICAgcHJv
cGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKGZpbHRlckZ1bmN0aW9uKTsKICAgICAgICAgaWYg
KHRoaXMuX3NvcnRQcm9wZXJ0aWVzKQotICAgICAgICAgICAgcHJvcGVydGllcy5zb3J0KChhLCBi
KSA9PiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpKTsKKyAgICAgICAgICAgIHByb3BlcnRp
ZXMuc29ydCgoYSwgYikgPT4gbnVtZXJpY1N0cmluZ0NvbXBhcmF0b3IoYS5uYW1lLCBiLm5hbWUp
KTsKIAogICAgICAgICB0aGlzLl9zaG93blByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db29raWVT
dG9yYWdlQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db29raWVTdG9yYWdlQ29udGVudFZpZXcuanMKaW5kZXggODQ0MmY5ODYxMWEuLmNi
ZGU2MTAzMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db29raWVTdG9yYWdlQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3LmpzCkBA
IC0xNzcsNyArMTc3LDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VDb250ZW50VmlldyA9
IGNsYXNzIENvb2tpZVN0b3JhZ2VDb250ZW50VmlldyBleHRlbmRzIFcKICAgICB7CiAgICAgICAg
IGZ1bmN0aW9uIGxvY2FsZUNvbXBhcmUoZmllbGQsIG5vZGVBLCBub2RlQikKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIChub2RlQS5kYXRhW2ZpZWxkXSArICIiKS5sb2NhbGVDb21wYXJl
KG5vZGVCLmRhdGFbZmllbGRdICsgIiIpOworICAgICAgICAgICAgcmV0dXJuIG51bWVyaWNTdHJp
bmdDb21wYXJhdG9yKG5vZGVBLmRhdGFbZmllbGRdICsgIiIsIG5vZGVCLmRhdGFbZmllbGRdICsg
IiIpOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gbnVtYmVyQ29tcGFyZShmaWVsZCwg
bm9kZUEsIG5vZGVCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01Ob2RlRGV0YWlsc1NpZGViYXJQYW5lbC5q
cwppbmRleCA5NzNmNWJjMTUxYi4uYjA0ZThkYjVjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5v
ZGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0xODcsNyArMTg3LDcgQEAgV2ViSW5zcGVjdG9y
LkRPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgRE9NTm9kZURldGFpbHNTaWRlYmFy
UGFuZWwgZXh0ZW4KICAgICAgICAgZGF0YUdyaWQucmVtb3ZlQ2hpbGRyZW4oKTsKIAogICAgICAg
ICBsZXQgYXR0cmlidXRlcyA9IGRvbU5vZGUuYXR0cmlidXRlcygpOwotICAgICAgICBhdHRyaWJ1
dGVzLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpOworICAgICAg
ICBhdHRyaWJ1dGVzLnNvcnQoKGEsIGIpID0+IG51bWVyaWNTdHJpbmdDb21wYXJhdG9yKGEubmFt
ZSwgYi5uYW1lKSk7CiAgICAgICAgIGZvciAobGV0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzKSB7
CiAgICAgICAgICAgICBsZXQgZGF0YUdyaWROb2RlID0gbmV3IFdlYkluc3BlY3Rvci5FZGl0YWJs
ZURhdGFHcmlkTm9kZShhdHRyaWJ1dGUpOwogICAgICAgICAgICAgZGF0YUdyaWROb2RlLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkVkaXRhYmxlRGF0YUdyaWROb2RlLkV2ZW50LlZhbHVl
Q2hhbmdlZCwgdGhpcy5fYXR0cmlidXRlTm9kZVZhbHVlQ2hhbmdlZCwgdGhpcyk7CkBAIC0zNTUs
NyArMzU1LDcgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xh
c3MgRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW4KICAgICAgICAgICAgICAgICBpZiAo
IWV2ZW50TGlzdGVuZXJzRm9yTm9kZSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgICAgICAgICBldmVudExpc3RlbmVyc0Zvck5vZGUuc29ydCgoYSwgYikgPT4gYS50
eXBlLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShiLnR5cGUudG9Mb3dlckNhc2UoKSkpOwor
ICAgICAgICAgICAgICAgIGV2ZW50TGlzdGVuZXJzRm9yTm9kZS5zb3J0KChhLCBiKSA9PiBudW1l
cmljU3RyaW5nQ29tcGFyYXRvcihhLnR5cGUudG9Mb3dlckNhc2UoKSwgYi50eXBlLnRvTG93ZXJD
YXNlKCkpKTsKIAogICAgICAgICAgICAgICAgIHJvd3MucHVzaChjcmVhdGVFdmVudExpc3RlbmVy
U2VjdGlvbihjdXJyZW50Tm9kZS5kaXNwbGF5TmFtZSwgZXZlbnRMaXN0ZW5lcnNGb3JOb2RlLCB7
aGlkZU5vZGU6IHRydWV9KSk7CiAgICAgICAgICAgICB9IHdoaWxlIChjdXJyZW50Tm9kZSA9IGN1
cnJlbnROb2RlLnBhcmVudE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NU3RvcmFnZUNvbnRlbnRWaWV3Lmpz
CmluZGV4IDg5MzIzNDJhZTRkLi5jNWRlMTE4OWFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVN0b3JhZ2VD
b250ZW50Vmlldy5qcwpAQCAtMTUzLDcgKzE1Myw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
Q29udGVudFZpZXcgPSBjbGFzcyBET01TdG9yYWdlQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNw
CiAKICAgICAgICAgZnVuY3Rpb24gY29tcGFyYXRvcihhLCBiKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gYS5kYXRhW3NvcnRDb2x1bW5JZGVudGlmaWVyXS5sb2NhbGVDb21wYXJlKGIu
ZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl0pOworICAgICAgICAgICAgcmV0dXJuIG51bWVyaWNT
dHJpbmdDb21wYXJhdG9yKGEuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl0sIGIuZGF0YVtzb3J0
Q29sdW1uSWRlbnRpZmllcl0pOwogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fZGF0YUdyaWQu
c29ydE5vZGVzSW1tZWRpYXRlbHkoY29tcGFyYXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJh
clBhbmVsLmpzCmluZGV4IDA0OTQ3MmYxZmMxLi40MTdhYmE3ZDQwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVi
dWdnZXJTaWRlYmFyUGFuZWwuanMKQEAgLTg5Nyw3ICs4OTcsNyBAQCBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdl
Ykluc3BlYwogICAgICAgICBpZiAoaXNTcGVjaWFsQnJlYWtwb2ludChiKSkKICAgICAgICAgICAg
IHJldHVybiAxOwogCi0gICAgICAgIHJldHVybiBhLm1haW5UaXRsZS5sb2NhbGVDb21wYXJlKGIu
bWFpblRpdGxlKTsKKyAgICAgICAgcmV0dXJuIG51bWVyaWNTdHJpbmdDb21wYXJhdG9yKGEubWFp
blRpdGxlLCBiLm1haW5UaXRsZSk7CiAgICAgfQogCiAgICAgX2NvbXBhcmVUcmVlRWxlbWVudHMo
YSwgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0ZvbGRlcml6ZWRUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVlRWxlbWVudC5qcwppbmRleCAzOWMyZjg5ZWNm
MS4uZDJjYzA5YTE5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Gb2xkZXJpemVkVHJlZUVsZW1lbnQuanMKQEAg
LTIzNyw3ICsyMzcsNyBAQCBXZWJJbnNwZWN0b3IuRm9sZGVyaXplZFRyZWVFbGVtZW50ID0gY2xh
c3MgRm9sZGVyaXplZFRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcAogICAgICAgICAgICAgcmV0
dXJuIDE7CiAKICAgICAgICAgLy8gVGhlbiBzb3J0IGJ5IHRpdGxlLgotICAgICAgICByZXR1cm4g
YS5tYWluVGl0bGUubG9jYWxlQ29tcGFyZShiLm1haW5UaXRsZSwgdW5kZWZpbmVkLCB7bnVtZXJp
YzogdHJ1ZX0pOworICAgICAgICByZXR1cm4gbnVtZXJpY1N0cmluZ0NvbXBhcmF0b3IoYS5tYWlu
VGl0bGUsIGIubWFpblRpdGxlKTsKICAgICB9CiAKICAgICBfaW5zZXJ0Rm9sZGVyVHJlZUVsZW1l
bnQoZm9sZGVyVHJlZUVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3REYXRhR3JpZFRyZWUuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3REYXRhR3JpZFRy
ZWUuanMKaW5kZXggNzA1N2Y0YzFiMGQuLjJkNDJkYjRjMDc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3REYXRhR3JpZFRy
ZWUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVh
cFNuYXBzaG90RGF0YUdyaWRUcmVlLmpzCkBAIC01OCwxMyArNTgsMTMgQEAgV2ViSW5zcGVjdG9y
LkhlYXBTbmFwc2hvdERhdGFHcmlkVHJlZSA9IGNsYXNzIEhlYXBTbmFwc2hvdERhdGFHcmlkVHJl
ZSBleHRlbmRzIFcKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG11bHRpcGxpZXIgKiAtMTsK
ICAgICAgICAgICAgICAgICBpZiAoIWEucHJvcGVydHlOYW1lICYmIGIucHJvcGVydHlOYW1lKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbXVsdGlwbGllciAqIDE7Ci0gICAgICAgICAgICAg
ICAgbGV0IHByb3BlcnR5TmFtZUNvbXBhcmUgPSBhLnByb3BlcnR5TmFtZS5sb2NhbGVDb21wYXJl
KGIucHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgICAgICBsZXQgcHJvcGVydHlOYW1lQ29tcGFy
ZSA9IG51bWVyaWNTdHJpbmdDb21wYXJhdG9yKGEucHJvcGVydHlOYW1lLCBiLnByb3BlcnR5TmFt
ZSk7CiAgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocHJvcGVydHlOYW1lQ29tcGFyZSAh
PT0gMCwgIlByb3BlcnR5IG5hbWVzIHNob3VsZCBiZSB1bmlxdWUsIHdlIHNob3VsZG4ndCBoYXZl
IGVxdWFsIHByb3BlcnR5IG5hbWVzLiIpOwogICAgICAgICAgICAgICAgIHJldHVybiBtdWx0aXBs
aWVyICogcHJvcGVydHlOYW1lQ29tcGFyZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
Ly8gU29ydCBieSBjbGFzcyBuYW1lIGFuZCBvYmplY3QgaWQgaWYgbm8gcHJvcGVydHkgbmFtZS4K
LSAgICAgICAgICAgIGxldCBjbGFzc05hbWVDb21wYXJlID0gYS5kYXRhLmNsYXNzTmFtZS5sb2Nh
bGVDb21wYXJlKGIuZGF0YS5jbGFzc05hbWUpOworICAgICAgICAgICAgbGV0IGNsYXNzTmFtZUNv
bXBhcmUgPSBudW1lcmljU3RyaW5nQ29tcGFyYXRvcihhLmRhdGEuY2xhc3NOYW1lLCBiLmRhdGEu
Y2xhc3NOYW1lKTsKICAgICAgICAgICAgIGlmIChjbGFzc05hbWVDb21wYXJlKQogICAgICAgICAg
ICAgICAgIHJldHVybiBtdWx0aXBsaWVyICogY2xhc3NOYW1lQ29tcGFyZTsKICAgICAgICAgICAg
IGlmIChhLmRhdGEuaWQgfHwgYi5kYXRhLmlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lVmlldy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcu
anMKaW5kZXggNTZkNDJlMTYzMTYuLjVmYmQ5N2RkNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1l
bGluZVZpZXcuanMKQEAgLTE5OCw5ICsxOTgsOSBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1RpbWVs
aW5lVmlldyA9IGNsYXNzIE5ldHdvcmtUaW1lbGluZVZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0bwog
ICAgICAgICAgICAgbGV0IGRpc3BsYXlOYW1lMiA9IG5vZGUyLmRpc3BsYXlOYW1lKCk7CiAKICAg
ICAgICAgICAgIGlmIChkaXNwbGF5TmFtZTEgIT09IGRpc3BsYXlOYW1lMikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gZGlzcGxheU5hbWUxLmxvY2FsZUNvbXBhcmUoZGlzcGxheU5hbWUyKSAqIHNv
cnREaXJlY3Rpb247CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bWVyaWNTdHJpbmdDb21wYXJh
dG9yKGRpc3BsYXlOYW1lMSwgZGlzcGxheU5hbWUyKSAqIHNvcnREaXJlY3Rpb247CiAKLSAgICAg
ICAgICAgIHJldHVybiBub2RlMS5yZXNvdXJjZS51cmwubG9jYWxlQ29tcGFyZShub2RlMi5yZXNv
dXJjZS51cmwpICogc29ydERpcmVjdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBudW1lcmljU3Ry
aW5nQ29tcGFyYXRvcihub2RlMS5yZXNvdXJjZS51cmwsIG5vZGUyLnJlc291cmNlLnVybCkgKiBz
b3J0RGlyZWN0aW9uOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIG51bGw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXdUYWJDb250
ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05l
d1RhYkNvbnRlbnRWaWV3LmpzCmluZGV4IDIxYzAxNDJhYmFmLi4yOWU2M2ExOTIzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV3VGFiQ29u
dGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTmV3VGFiQ29udGVudFZpZXcuanMKQEAgLTEzMiw3ICsxMzIsNyBAQCBXZWJJbnNwZWN0b3Iu
TmV3VGFiQ29udGVudFZpZXcgPSBjbGFzcyBOZXdUYWJDb250ZW50VmlldyBleHRlbmRzIFdlYklu
c3BlY3Rvci5UYQogICAgIHsKICAgICAgICAgbGV0IGFsbFRhYkNsYXNzZXMgPSBBcnJheS5mcm9t
KFdlYkluc3BlY3Rvci5rbm93blRhYkNsYXNzZXMoKSk7CiAgICAgICAgIGxldCBhbGxvd2VkVGFi
Q2xhc3NlcyA9IGFsbFRhYkNsYXNzZXMuZmlsdGVyKCh0YWJDbGFzcykgPT4gdGFiQ2xhc3MuaXNU
YWJBbGxvd2VkKCkgJiYgIXRhYkNsYXNzLmlzRXBoZW1lcmFsKCkpOwotICAgICAgICBhbGxvd2Vk
VGFiQ2xhc3Nlcy5zb3J0KChhLCBiKSA9PiBhLnRhYkluZm8oKS50aXRsZS5sb2NhbGVDb21wYXJl
KGIudGFiSW5mbygpLnRpdGxlKSk7CisgICAgICAgIGFsbG93ZWRUYWJDbGFzc2VzLnNvcnQoKGEs
IGIpID0+IG51bWVyaWNTdHJpbmdDb21wYXJhdG9yKGEudGFiSW5mbygpLnRpdGxlLCBiLnRhYklu
Zm8oKS50aXRsZSkpOwogCiAgICAgICAgIGlmIChBcnJheS5zaGFsbG93RXF1YWwodGhpcy5fc2hv
d25UYWJDbGFzc2VzLCBhbGxvd2VkVGFiQ2xhc3NlcykpCiAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9PdmVy
dmlld1RpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL092ZXJ2aWV3VGltZWxpbmVWaWV3LmpzCmluZGV4IGVkODg4YjllMDkwLi5mNTRiMjg0
ODhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMKQEAgLTE3OCw3ICsxNzgs
NyBAQCBXZWJJbnNwZWN0b3IuT3ZlcnZpZXdUaW1lbGluZVZpZXcgPSBjbGFzcyBPdmVydmlld1Rp
bWVsaW5lVmlldyBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
IAogICAgICAgICAvLyBGYWxsYmFjayB0byBjb21wYXJpbmcgdGl0bGVzLgotICAgICAgICByZXR1
cm4gYS5kaXNwbGF5TmFtZSgpLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5TmFtZSgpKTsKKyAgICAg
ICAgcmV0dXJuIG51bWVyaWNTdHJpbmdDb21wYXJhdG9yKGEuZGlzcGxheU5hbWUoKSwgYi5kaXNw
bGF5TmFtZSgpKTsKICAgICB9CiAKICAgICBfaW5zZXJ0RGF0YUdyaWROb2RlKGRhdGFHcmlkTm9k
ZSwgcGFyZW50RGF0YUdyaWROb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBh
bmVsLmpzCmluZGV4IDQ0OTA0YTEyMzQ5Li43NDRjMmQzM2NhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1By
b2JlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAtNjgsNyArNjgsNyBAQCBXZWJJbnNwZWN0b3Iu
UHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVs
IGV4dGVuZHMgVwogICAgICAgICBpbnNwZWN0ZWRQcm9iZVNldHMuc29ydChmdW5jdGlvbiBzb3J0
QnlTb3VyY2VMb2NhdGlvbihhUHJvYmVTZXQsIGJQcm9iZVNldCkgewogICAgICAgICAgICAgdmFy
IGFMb2NhdGlvbiA9IGFQcm9iZVNldC5icmVha3BvaW50LnNvdXJjZUNvZGVMb2NhdGlvbjsKICAg
ICAgICAgICAgIHZhciBiTG9jYXRpb24gPSBiUHJvYmVTZXQuYnJlYWtwb2ludC5zb3VyY2VDb2Rl
TG9jYXRpb247Ci0gICAgICAgICAgICB2YXIgY29tcGFyaXNvblJlc3VsdCA9IGFMb2NhdGlvbi5z
b3VyY2VDb2RlLmRpc3BsYXlOYW1lLmxvY2FsZUNvbXBhcmUoYkxvY2F0aW9uLnNvdXJjZUNvZGUu
ZGlzcGxheU5hbWUpOworICAgICAgICAgICAgdmFyIGNvbXBhcmlzb25SZXN1bHQgPSBudW1lcmlj
U3RyaW5nQ29tcGFyYXRvcihhTG9jYXRpb24uc291cmNlQ29kZS5kaXNwbGF5TmFtZSwgYkxvY2F0
aW9uLnNvdXJjZUNvZGUuZGlzcGxheU5hbWUpOwogICAgICAgICAgICAgaWYgKGNvbXBhcmlzb25S
ZXN1bHQgIT09IDApCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmlzb25SZXN1bHQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1F1
aWNrQ29uc29sZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1F1aWNrQ29uc29sZS5qcwppbmRleCAzODJjN2MxMTI2NC4uNzQwNGEwNjRlYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1F1aWNrQ29uc29s
ZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9RdWlj
a0NvbnNvbGUuanMKQEAgLTIxMCw3ICsyMTAsNyBAQCBXZWJJbnNwZWN0b3IuUXVpY2tDb25zb2xl
ID0gY2xhc3MgUXVpY2tDb25zb2xlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAg
aWYgKGJOb25NYWluVGFyZ2V0ICYmICFhTm9uTWFpblRhcmdldCkKICAgICAgICAgICAgIHJldHVy
biAxOwogICAgICAgICBpZiAoYU5vbk1haW5UYXJnZXQgJiYgYk5vbk1haW5UYXJnZXQpCi0gICAg
ICAgICAgICByZXR1cm4gYS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheU5hbWUp
OworICAgICAgICAgICAgcmV0dXJuIG51bWVyaWNTdHJpbmdDb21wYXJhdG9yKGEuZGlzcGxheU5h
bWUsIGIuZGlzcGxheU5hbWUpOwogCiAgICAgICAgIC8vICJNYWluIEZyYW1lIiBmb2xsb3dzLgog
ICAgICAgICBpZiAoYUV4ZWN1dGlvbkNvbnRleHQgPT09IFdlYkluc3BlY3Rvci5tYWluVGFyZ2V0
LmV4ZWN1dGlvbkNvbnRleHQpCkBAIC0yMjgsNyArMjI4LDcgQEAgV2ViSW5zcGVjdG9yLlF1aWNr
Q29uc29sZSA9IGNsYXNzIFF1aWNrQ29uc29sZSBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAg
ICAgICAgIGlmICghYUV4ZWN1dGlvbkNvbnRleHQuZnJhbWUubmFtZSAmJiBiRXhlY3V0aW9uQ29u
dGV4dC5mcmFtZS5uYW1lKQogICAgICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgcmV0dXJu
IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKTsKKyAgICAgICAgcmV0
dXJuIG51bWVyaWNTdHJpbmdDb21wYXJhdG9yKGEuZGlzcGxheU5hbWUsIGIuZGlzcGxheU5hbWUp
OwogICAgIH0KIAogICAgIF9pbnNlcnRPdGhlckV4ZWN1dGlvbkNvbnRleHRQYXRoQ29tcG9uZW50
KGV4ZWN1dGlvbkNvbnRleHRQYXRoQ29tcG9uZW50LCBza2lwUmVidWlsZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlRGV0YWls
c1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Jlc291cmNlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCA5ZDI1ZTYyZTVkOC4uNjA0
MjM1YjFmNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Jlc291cmNlRGV0YWlsc1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZURldGFpbHNTaWRlYmFyUGFuZWwu
anMKQEAgLTQ4MCw3ICs0ODAsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VEZXRhaWxzU2lkZWJh
clBhbmVsID0gY2xhc3MgUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBhbmVsIGV4dAogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgIHZhciBpdGVtMSA9IGEuZGF0YVtzb3J0Q29sdW1uSWRlbnRp
Zmllcl07CiAgICAgICAgICAgICAgICAgdmFyIGl0ZW0yID0gYi5kYXRhW3NvcnRDb2x1bW5JZGVu
dGlmaWVyXTsKLSAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTEubG9jYWxlQ29tcGFyZShpdGVt
Mik7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bWVyaWNTdHJpbmdDb21wYXJhdG9yKGl0ZW0x
LCBpdGVtMik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRhdGFHcmlkLnNvcnROb2Rl
cyhjb21wYXJhdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKaW5kZXggYWI3
NTMzNjg4YTIuLjNjM2JhZDZiOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5q
cwpAQCAtNDc3LDcgKzQ3Nyw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbCA9
IGNsYXNzIFJlc291cmNlU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGEubWFpblRpdGxlKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoYi5tYWlu
VGl0bGUpOwogCi0gICAgICAgIHJldHVybiAoYS5tYWluVGl0bGUgfHwgIiIpLmxvY2FsZUNvbXBh
cmUoYi5tYWluVGl0bGUgfHwgIiIpOworICAgICAgICByZXR1cm4gbnVtZXJpY1N0cmluZ0NvbXBh
cmF0b3IoYS5tYWluVGl0bGUgfHwgIiIsIGIubWFpblRpdGxlIHx8ICIiKTsKICAgICB9CiAKICAg
ICBfZXh0cmFEb21haW5zQWN0aXZhdGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50Lmpz
CmluZGV4IDljODUxODk5YzdlLi42MjcyMjYxNTA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVF
bGVtZW50LmpzCkBAIC0zOSw3ICszOSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVt
ZW50ID0gY2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3RvCiAgICAg
c3RhdGljIGNvbXBhcmVSZXNvdXJjZVRyZWVFbGVtZW50cyhhLCBiKQogICAgIHsKICAgICAgICAg
Ly8gQ29tcGFyZSBieSB0eXBlIGZpcnN0IHRvIGtlZXAgcmVzb3VyY2VzIGdyb3VwZWQgYnkgdHlw
ZSB3aGVuIG5vdCBzb3J0ZWQgaW50byBmb2xkZXJzLgotICAgICAgICB2YXIgY29tcGFyaXNvblJl
c3VsdCA9IGEucmVzb3VyY2UudHlwZS5sb2NhbGVDb21wYXJlKGIucmVzb3VyY2UudHlwZSk7Cisg
ICAgICAgIHZhciBjb21wYXJpc29uUmVzdWx0ID0gbnVtZXJpY1N0cmluZ0NvbXBhcmF0b3IoYS5y
ZXNvdXJjZS50eXBlLCBiLnJlc291cmNlLnR5cGUpOwogICAgICAgICBpZiAoY29tcGFyaXNvblJl
c3VsdCAhPT0gMCkKICAgICAgICAgICAgIHJldHVybiBjb21wYXJpc29uUmVzdWx0OwogCkBAIC01
MywxMiArNTMsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgPSBjbGFzcyBS
ZXNvdXJjZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG8KICAgICAgICAgLy8gZG9tYWlu
IG9mIHRoZSByZXNvdXJjZS4gVGhpcyBjYXVzZXMgcmVzb3VyY2VzIHRvIGdyb3VwIGJ5IGRvbWFp
bi4gSWYgdGhlIHJlc291cmNlCiAgICAgICAgIC8vIGlzIG9uIHRoZSBzYW1lIGRvbWFpbiBhcyB0
aGUgZnJhbWUgaXQgd2lsbCBoYXZlIGFuIGVtcHR5IHN1YnRpdGxlLiBUaGlzIGlzIGdvb2QKICAg
ICAgICAgLy8gYmVjYXVzZSBlbXB0eSBzdHJpbmcgc29ydHMgZmlyc3QsIHNvIHRob3NlIHdpbGwg
YXBwZWFyIGJlZm9yZSBleHRlcm5hbCByZXNvdXJjZXMuCi0gICAgICAgIGNvbXBhcmlzb25SZXN1
bHQgPSBhLnN1YnRpdGxlLmxvY2FsZUNvbXBhcmUoYi5zdWJ0aXRsZSk7CisgICAgICAgIGNvbXBh
cmlzb25SZXN1bHQgPSBudW1lcmljU3RyaW5nQ29tcGFyYXRvcihhLnN1YnRpdGxlLCBiLnN1YnRp
dGxlKTsKICAgICAgICAgaWYgKGNvbXBhcmlzb25SZXN1bHQgIT09IDApCiAgICAgICAgICAgICBy
ZXR1cm4gY29tcGFyaXNvblJlc3VsdDsKIAogICAgICAgICAvLyBDb21wYXJlIGJ5IHRpdGxlIHdo
ZW4gdGhlIHN1YnRpdGxlcyBhcmUgdGhlIHNhbWUuCi0gICAgICAgIHJldHVybiBhLm1haW5UaXRs
ZS5sb2NhbGVDb21wYXJlKGIubWFpblRpdGxlKTsKKyAgICAgICAgcmV0dXJuIG51bWVyaWNTdHJp
bmdDb21wYXJhdG9yKGEubWFpblRpdGxlLCBiLm1haW5UaXRsZSk7CiAgICAgfQogCiAgICAgc3Rh
dGljIGNvbXBhcmVGb2xkZXJBbmRSZXNvdXJjZVRyZWVFbGVtZW50cyhhLCBiKQpAQCAtNzEsNyAr
NzEsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCA9IGNsYXNzIFJlc291cmNl
VHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICBpZiAoIWFJc0ZvbGRlciAm
JiBiSXNGb2xkZXIpCiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgaWYgKGFJc0ZvbGRl
ciAmJiBiSXNGb2xkZXIpCi0gICAgICAgICAgICByZXR1cm4gYS5tYWluVGl0bGUubG9jYWxlQ29t
cGFyZShiLm1haW5UaXRsZSk7CisgICAgICAgICAgICByZXR1cm4gbnVtZXJpY1N0cmluZ0NvbXBh
cmF0b3IoYS5tYWluVGl0bGUsIGIubWFpblRpdGxlKTsKIAogICAgICAgICByZXR1cm4gV2ViSW5z
cGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQuY29tcGFyZVJlc291cmNlVHJlZUVsZW1lbnRzKGEs
IGIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3LmpzCmlu
ZGV4IDAxNmNmYzQzOTk3Li4zMmM5MGYwNzk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHREZXRh
aWxzVGltZWxpbmVWaWV3LmpzCkBAIC0xNTYsOSArMTU2LDkgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dERldGFpbHNUaW1lbGluZVZpZXcgPSBjbGFzcyBTY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3IGV4
dGVuZHMKICAgICAgICAgbGV0IGRpc3BsYXlOYW1lMSA9IG5vZGUxLmRpc3BsYXlOYW1lKCk7CiAg
ICAgICAgIGxldCBkaXNwbGF5TmFtZTIgPSBub2RlMi5kaXNwbGF5TmFtZSgpOwogICAgICAgICBp
ZiAoZGlzcGxheU5hbWUxICE9PSBkaXNwbGF5TmFtZTIpCi0gICAgICAgICAgICByZXR1cm4gZGlz
cGxheU5hbWUxLmxvY2FsZUNvbXBhcmUoZGlzcGxheU5hbWUyKSAqIHNvcnREaXJlY3Rpb247Cisg
ICAgICAgICAgICByZXR1cm4gbnVtZXJpY1N0cmluZ0NvbXBhcmF0b3IoZGlzcGxheU5hbWUxLCBk
aXNwbGF5TmFtZTIpICogc29ydERpcmVjdGlvbjsKIAotICAgICAgICByZXR1cm4gbm9kZTEuc3Vi
dGl0bGUubG9jYWxlQ29tcGFyZShub2RlMi5zdWJ0aXRsZSkgKiBzb3J0RGlyZWN0aW9uOworICAg
ICAgICByZXR1cm4gbnVtZXJpY1N0cmluZ0NvbXBhcmF0b3Iobm9kZTEuc3VidGl0bGUsIG5vZGUy
LnN1YnRpdGxlKSAqIHNvcnREaXJlY3Rpb247CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TdG9y
YWdlU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU3RvcmFnZVNpZGViYXJQYW5lbC5qcwppbmRleCAzYzFjNDM2YzQ3NC4uMjJiMjY0OTVj
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU3RvcmFnZVNpZGViYXJQYW5lbC5qcwpAQCAtNTAsNyArNTAsNyBAQCBX
ZWJJbnNwZWN0b3IuU3RvcmFnZVNpZGViYXJQYW5lbCA9IGNsYXNzIFN0b3JhZ2VTaWRlYmFyUGFu
ZWwgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICAgICAge2lkZW50aWZpZXI6ICJzZXNzaW9u
LXN0b3JhZ2UiLCB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZXNzaW9uIFN0b3JhZ2Ui
KSwgY2xhc3NlczogW1dlYkluc3BlY3Rvci5ET01TdG9yYWdlVHJlZUVsZW1lbnRdLCBsb2NhbFN0
b3JhZ2U6IGZhbHNlfQogICAgICAgICBdOwogCi0gICAgICAgIHN0b3JhZ2VUeXBlcy5zb3J0KGZ1
bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEudGl0bGUubG9jYWxlQ29tcGFyZShiLnRpdGxlKTsgfSk7
CisgICAgICAgIHN0b3JhZ2VUeXBlcy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIG51bWVy
aWNTdHJpbmdDb21wYXJhdG9yKGEudGl0bGUsIGIudGl0bGUpOyB9KTsKIAogICAgICAgICBmb3Ig
KHZhciBpbmZvIG9mIHN0b3JhZ2VUeXBlcykgewogICAgICAgICAgICAgdmFyIHNjb3BlQmFySXRl
bSA9IG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVCYXJJdGVtKHNjb3BlSXRlbVByZWZpeCArIGluZm8u
aWRlbnRpZmllciwgaW5mby50aXRsZSk7CkBAIC0zMDUsNyArMzA1LDcgQEAgV2ViSW5zcGVjdG9y
LlN0b3JhZ2VTaWRlYmFyUGFuZWwgPSBjbGFzcyBTdG9yYWdlU2lkZWJhclBhbmVsIGV4dGVuZHMg
V2ViSW5zcGVjdG8KICAgICAgICAgY29uc29sZS5hc3NlcnQoYS5tYWluVGl0bGUpOwogICAgICAg
ICBjb25zb2xlLmFzc2VydChiLm1haW5UaXRsZSk7CiAKLSAgICAgICAgcmV0dXJuIChhLm1haW5U
aXRsZSB8fCAiIikubG9jYWxlQ29tcGFyZShiLm1haW5UaXRsZSB8fCAiIik7CisgICAgICAgIHJl
dHVybiBudW1lcmljU3RyaW5nQ29tcGFyYXRvcihhLm1haW5UaXRsZSB8fCAiIiwgYi5tYWluVGl0
bGUgfHwgIiIpOwogICAgIH0KIAogICAgIF9hZGRTdG9yYWdlQ2hpbGQoY2hpbGRFbGVtZW50LCBw
YXJlbnRFbGVtZW50LCBmb2xkZXJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVEYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanMKaW5kZXgg
MzIzNDNmOWFiMzguLjQyOWI2MTQ4ZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZURhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanMKQEAg
LTM4MCw3ICszODAsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVEYXRhR3JpZCA9IGNsYXNzIFRp
bWVsaW5lRGF0YUdyaWQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuRGF0YQogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICJzdHJpbmciICYmIHR5cGVvZiB2YWx1ZTIgPT09
ICJzdHJpbmciKQotICAgICAgICAgICAgcmV0dXJuIHZhbHVlMS5sb2NhbGVDb21wYXJlKHZhbHVl
MikgKiBzb3J0RGlyZWN0aW9uOworICAgICAgICAgICAgcmV0dXJuIG51bWVyaWNTdHJpbmdDb21w
YXJhdG9yKHZhbHVlMSwgdmFsdWUyKSAqIHNvcnREaXJlY3Rpb247CiAKICAgICAgICAgaWYgKHZh
bHVlMSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5DYWxsRnJhbWUgfHwgdmFsdWUyIGluc3RhbmNl
b2YgV2ViSW5zcGVjdG9yLkNhbGxGcmFtZSkgewogICAgICAgICAgICAgLy8gU29ydCBieSBmdW5j
dGlvbiBuYW1lIGlmIGF2YWlsYWJsZSwgdGhlbiBmYWxsIGJhY2sgdG8gdGhlIHNvdXJjZSBjb2Rl
IG9iamVjdC4K
</data>
<flag name="review"
          id="335061"
          type_id="1"
          status="-"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="335062"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314206</attachid>
            <date>2017-06-29 19:10:54 -0700</date>
            <delta_ts>2017-06-30 14:11:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>173984.diff</filename>
            <type>text/plain</type>
            <size>27280</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZTM0MWY5MzZlNC4uNTBlNDY1MTA1OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxNy0wNi0yOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogRGVmYXVsdCBzdHJpbmcgY29tcGFyaXNvbnMgdG8gdHJlYXQgbnVtZXJp
YyBjaGFyYWN0ZXJzIGFzIG51bWJlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Mzk4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvc3RyaW5nLXV0aWxpdGllcy5o
dG1sOgorICAgICAgICBBZGQgdGVzdHMgZm9yIFN0cmluZy5wcm90b3R5cGUuZXh0ZW5kZWRMb2Nh
bGVDb21wYXJlLgorCiAyMDE3LTA2LTI4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnN0cnVtZW50IGFjdGl2ZSBwaXhlbCBtZW1v
cnkgdXNlZCBieSBjYW52YXNlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvc3RyaW5nLXV0aWxpdGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdW5pdC10ZXN0cy9zdHJpbmctdXRpbGl0aWVzLWV4cGVjdGVkLnR4dAppbmRleCBmNzAx
YTNkYzI3Ni4uMGE4YjA2YWU1ZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91
bml0LXRlc3RzL3N0cmluZy11dGlsaXRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci91bml0LXRlc3RzL3N0cmluZy11dGlsaXRpZXMtZXhwZWN0ZWQudHh0CkBAIC0y
MCwzICsyMCwxMSBAQCBQQVNTOiBpbnRlZ2VyIGZvcm1hdCBzcGVjaWZpZXIgd2l0aCBzdHJpbmcg
YXJndW1lbnQgc2hvdWxkIGF0dGVtcHQgY29udmVyc2lvbiB0bwogUEFTUzogaW50ZWdlciBmb3Jt
YXQgc3BlY2lmaWVyIHdpdGggSW5maW5pdHkgYXJndW1lbnQgc2hvdWxkIHNob3cgIk5hTiIKIFBB
U1M6IGludGVnZXIgZm9ybWF0IHNwZWNpZmllciB3aXRoIE5hTiBhcmd1bWVudCBzaG91bGQgc2hv
dyAiTmFOIgogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogU3RyaW5nLnByb3RvdHlwZS5leHRlbmRl
ZExvY2FsZUNvbXBhcmUKK1BBU1M6ICIxIiA8ICIyIgorUEFTUzogIjIiID4gIjEiCitQQVNTOiAi
MiIgPCAiMTAiCitQQVNTOiAiMTAiID4gIjIiCitQQVNTOiAiMSIgPCAiMTAiCitQQVNTOiAiMTAi
ID4gIjEiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3N0
cmluZy11dGlsaXRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3N0
cmluZy11dGlsaXRpZXMuaHRtbAppbmRleCA2N2U2OTFjMGViYy4uMGJkOGY0M2UzNTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3N0cmluZy11dGlsaXRpZXMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9zdHJpbmctdXRpbGl0
aWVzLmh0bWwKQEAgLTMzLDYgKzMzLDE5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB9CiAg
ICAgfSk7CiAKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJTdHJpbmcu
cHJvdG90eXBlLmV4dGVuZGVkTG9jYWxlQ29tcGFyZSIsCisgICAgICAgIHRlc3QoKSB7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKCIxIi5leHRlbmRlZExvY2FsZUNvbXBh
cmUoIjIiKSwgLTEsIGAiMSIgPCAiMiJgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoIjIiLmV4dGVuZGVkTG9jYWxlQ29tcGFyZSgiMSIpLCAxLCBgIjIiID4gIjEiYCk7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKCIyIi5leHRlbmRlZExvY2Fs
ZUNvbXBhcmUoIjEwIiksIC0xLCBgIjIiIDwgIjEwImApOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbCgiMTAiLmV4dGVuZGVkTG9jYWxlQ29tcGFyZSgiMiIpLCAxLCBgIjEw
IiA+ICIyImApOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCgiMSIuZXh0
ZW5kZWRMb2NhbGVDb21wYXJlKCIxMCIpLCAtMSwgYCIxIiA8ICIxMCJgKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoIjEwIi5leHRlbmRlZExvY2FsZUNvbXBhcmUoIjEi
KSwgMSwgYCIxMCIgPiAiMSJgKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgfSk7CisKICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKIH0KIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZmVkYzNkN2Q3MWMuLjcxNDUzYmZiZjA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxNy0wNi0yOSAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogRGVmYXVsdCBzdHJpbmcgY29tcGFyaXNvbnMgdG8gdHJlYXQgbnVtZXJpYyBjaGFyYWN0ZXJz
IGFzIG51bWJlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3Mzk4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qczoKKyAgICAgICAgKFN0cmluZy5w
cm90b3R5cGUuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLnBy
b3RvdHlwZS5jb21wbGV0aW9uQ29udHJvbGxlckNvbXBsZXRpb25zTmVlZGVkLnJlY2VpdmVkUHJv
cGVydHlOYW1lcy5jb21wYXJlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L1Jlc291cmNlUXVlcnlDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlUXVlcnlDb250cm9sbGVyLnByb3RvdHlwZS5leGVjdXRlUXVlcnkpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcucHJv
dG90eXBlLl9zb3J0RGF0YUdyaWQubG9jYWxlQ29tcGFyZSk6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5wcm90b3R5cGUuX2l0ZXJh
dGVPdmVyUHJvcGVydGllcyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db29raWVT
dG9yYWdlQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llU3RvcmFn
ZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5fc29ydERhdGFHcmlkLmxvY2FsZUNvbXBhcmUpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90
eXBlLl9yZWZyZXNoQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZURl
dGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZWZyZXNoRXZlbnRMaXN0ZW5lcnMuZ2VuZXJh
dGVHcm91cHNCeU5vZGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NU3RvcmFn
ZUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50
Vmlldy5wcm90b3R5cGUuX3NvcnREYXRhR3JpZC5jb21wYXJhdG9yKToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fY29tcGFyZVRvcExldmVsVHJl
ZUVsZW1lbnRzKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVl
RWxlbWVudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb2xkZXJpemVkVHJlZUVsZW1lbnQu
cHJvdG90eXBlLl9jb21wYXJlVHJlZUVsZW1lbnRzQnlNYWluVGl0bGUpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvSGVhcFNuYXBzaG90RGF0YUdyaWRUcmVlLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERhdGFHcmlkVHJlZS5idWlsZFNvcnRDb21wYXJhdG9y
KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1RpbWVsaW5lVmlldy5wcm90b3R5cGUuZGF0
YUdyaWRTb3J0Q29tcGFyYXRvcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9OZXdU
YWJDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXdUYWJDb250ZW50Vmll
dy5wcm90b3R5cGUuX3VwZGF0ZVNob3duVGFicyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9PdmVydmlld1RpbWVsaW5lVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PdmVy
dmlld1RpbWVsaW5lVmlldy5wcm90b3R5cGUuX2NvbXBhcmVEYXRhR3JpZE5vZGVzQnlTdGFydFRp
bWUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2JlRGV0YWlsc1NpZGViYXJQYW5lbC5w
cm90b3R5cGUuaW5zcGVjdCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9RdWlja0Nv
bnNvbGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUXVpY2tDb25zb2xlLnByb3RvdHlwZS5f
Y29tcGFyZUV4ZWN1dGlvbkNvbnRleHRQYXRoQ29tcG9uZW50cyk6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZURldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fY3JlYXRl
TmFtZVZhbHVlRGF0YUdyaWQuc29ydERhdGFHcmlkLmNvbXBhcmF0b3IpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9jb21wYXJlVHJlZUVsZW1l
bnRzKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudC5jb21wYXJlUmVz
b3VyY2VUcmVlRWxlbWVudHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVs
ZW1lbnQuY29tcGFyZUZvbGRlckFuZFJlc291cmNlVHJlZUVsZW1lbnRzKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5wcm90b3R5cGUuZGF0YUdy
aWRTb3J0Q29tcGFyYXRvcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdl
U2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0b3JhZ2VTaWRlYmFyUGFu
ZWwucHJvdG90eXBlLl9jb21wYXJlVHJlZUVsZW1lbnRzKToKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVEYXRhR3JpZC5wcm90b3R5cGUuX3NvcnRDb21wYXJhdG9yKToKKwogMjAxNy0wNi0yOCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogSW5zdHJ1bWVudCBhY3RpdmUgcGl4ZWwgbWVtb3J5IHVzZWQgYnkgY2FudmFzZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVz
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMu
anMKaW5kZXggZDZjZDAzNDQ5MGQuLjljNGZhOTBhMDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwpAQCAtNjcxLDYg
KzY3MSwxNCBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgImNhcGl0
YWxpemUiLAogICAgIH0KIH0pOwogCitPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3Rv
dHlwZSwgImV4dGVuZGVkTG9jYWxlQ29tcGFyZSIsCit7CisgICAgdmFsdWU6IGZ1bmN0aW9uKG90
aGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlQ29tcGFyZShvdGhlciwgdW5k
ZWZpbmVkLCB7bnVtZXJpYzogdHJ1ZX0pOworICAgIH0KK30pOworCiBPYmplY3QuZGVmaW5lUHJv
cGVydHkoU3RyaW5nLCAidG9rZW5pemVGb3JtYXRTdHJpbmciLAogewogICAgIHZhbHVlOiBmdW5j
dGlvbihmb3JtYXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9KYXZhU2NyaXB0UnVudGltZUNvbXBsZXRpb25Qcm92aWRlci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3Jp
cHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzCmluZGV4IDEzNGIyZjAzMmFiLi4zZmFkNTQz
ZmI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvSmF2YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdFJ1
bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIuanMKQEAgLTI4Miw3ICsyODIsNyBAQCBXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIgPSBjbGFzcyBKYXZhU2NyaXB0
UnVudGltZUNvbXBsZQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAKICAgICAgICAg
ICAgICAgICAvLyBOb3QgbnVtYmVycywgc29ydCBhcyBzdHJpbmdzLgotICAgICAgICAgICAgICAg
IHJldHVybiBhLmxvY2FsZUNvbXBhcmUoYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGEuZXh0
ZW5kZWRMb2NhbGVDb21wYXJlKGIpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjb21w
bGV0aW9ucy5zb3J0KGNvbXBhcmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvUmVzb3VyY2VRdWVyeUNvbnRyb2xsZXIuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9SZXNvdXJjZVF1
ZXJ5Q29udHJvbGxlci5qcwppbmRleCAxNzExNjVmMzIyNi4uYTgxOGRkMzQ5NTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Jlc291
cmNlUXVlcnlDb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL1Jlc291cmNlUXVlcnlDb250cm9sbGVyLmpzCkBAIC04Miw3ICs4
Miw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVF1ZXJ5Q29udHJvbGxlciA9IGNsYXNzIFJlc291
cmNlUXVlcnlDb250cm9sbGVyIGV4dGVuZHMgV2ViCiAgICAgICAgIC8vIHJhbmsgYXJlIHNvcnRl
ZCBieSBkaXNwbGF5IG5hbWUuCiAgICAgICAgIHJldHVybiByZXN1bHRzLnNvcnQoKGEsIGIpID0+
IHsKICAgICAgICAgICAgIGlmIChhLnJhbmsgPT09IGIucmFuaykKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gYS5yZXNvdXJjZS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIucmVzb3VyY2UuZGlz
cGxheU5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiBhLnJlc291cmNlLmRpc3BsYXlOYW1l
LmV4dGVuZGVkTG9jYWxlQ29tcGFyZShiLnJlc291cmNlLmRpc3BsYXlOYW1lKTsKICAgICAgICAg
ICAgIHJldHVybiBiLnJhbmsgLSBhLnJhbms7CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FwcGxpY2F0aW9u
Q2FjaGVGcmFtZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanMKaW5kZXggYzcz
ZmMxNDgxN2UuLjA5YWQzOTJlZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BcHBsaWNhdGlv
bkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcwpAQCAtMTgyLDcgKzE4Miw3IEBAIFdlYkluc3BlY3Rv
ci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50VmlldyA9IGNsYXNzIEFwcGxpY2F0aW9uQ2Fj
aGVGcmFtZUNvbnRlCiAgICAgICAgIH0KICAgICAgICAgZnVuY3Rpb24gbG9jYWxlQ29tcGFyZShj
b2x1bW5JZGVudGlmaWVyLCBub2RlQSwgbm9kZUIpCiAgICAgICAgIHsKLSAgICAgICAgICAgICBy
ZXR1cm4gKG5vZGVBLmRhdGFbY29sdW1uSWRlbnRpZmllcl0gKyAiIikubG9jYWxlQ29tcGFyZShu
b2RlQi5kYXRhW2NvbHVtbklkZW50aWZpZXJdICsgIiIpOworICAgICAgICAgICAgIHJldHVybiAo
bm9kZUEuZGF0YVtjb2x1bW5JZGVudGlmaWVyXSArICIiKS5leHRlbmRlZExvY2FsZUNvbXBhcmUo
bm9kZUIuZGF0YVtjb2x1bW5JZGVudGlmaWVyXSArICIiKTsKICAgICAgICAgfQogCiAgICAgICAg
IHZhciBjb21wYXJhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4
dEVkaXRvci5qcwppbmRleCAyMjEzZDNlMDU2My4uNmE2YzZiOWEyYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRp
b25UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCkBAIC0xMzAzLDcgKzEzMDMs
NyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFzcyBD
U1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcgogCiAgICAgICAgIHByb3BlcnRpZXMgPSBwcm9w
ZXJ0aWVzLmZpbHRlcihmaWx0ZXJGdW5jdGlvbik7CiAgICAgICAgIGlmICh0aGlzLl9zb3J0UHJv
cGVydGllcykKLSAgICAgICAgICAgIHByb3BlcnRpZXMuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxv
Y2FsZUNvbXBhcmUoYi5uYW1lKSk7CisgICAgICAgICAgICBwcm9wZXJ0aWVzLnNvcnQoKGEsIGIp
ID0+IGEubmFtZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYi5uYW1lKSk7CiAKICAgICAgICAgdGhp
cy5fc2hvd25Qcm9wZXJ0aWVzID0gcHJvcGVydGllczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3Rv
cmFnZUNvbnRlbnRWaWV3LmpzCmluZGV4IDg0NDJmOTg2MTFhLi42NThhZGQ4ZGU1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3Rv
cmFnZUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0Nvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5qcwpAQCAtMTc3LDcgKzE3Nyw3IEBA
IFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdlQ29udGVudFZpZXcgPSBjbGFzcyBDb29raWVTdG9y
YWdlQ29udGVudFZpZXcgZXh0ZW5kcyBXCiAgICAgewogICAgICAgICBmdW5jdGlvbiBsb2NhbGVD
b21wYXJlKGZpZWxkLCBub2RlQSwgbm9kZUIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biAobm9kZUEuZGF0YVtmaWVsZF0gKyAiIikubG9jYWxlQ29tcGFyZShub2RlQi5kYXRhW2ZpZWxk
XSArICIiKTsKKyAgICAgICAgICAgIHJldHVybiAobm9kZUEuZGF0YVtmaWVsZF0gKyAiIikuZXh0
ZW5kZWRMb2NhbGVDb21wYXJlKG5vZGVCLmRhdGFbZmllbGRdICsgIiIpOwogICAgICAgICB9CiAK
ICAgICAgICAgZnVuY3Rpb24gbnVtYmVyQ29tcGFyZShmaWVsZCwgbm9kZUEsIG5vZGVCKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NTm9k
ZURldGFpbHNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9ET01Ob2RlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCA5NzNmNWJjMTUx
Yi4uOGYxZTBmMmJlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRhaWxzU2lkZWJhclBh
bmVsLmpzCkBAIC0xODcsNyArMTg3LDcgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGVEZXRhaWxzU2lk
ZWJhclBhbmVsID0gY2xhc3MgRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW4KICAgICAg
ICAgZGF0YUdyaWQucmVtb3ZlQ2hpbGRyZW4oKTsKIAogICAgICAgICBsZXQgYXR0cmlidXRlcyA9
IGRvbU5vZGUuYXR0cmlidXRlcygpOwotICAgICAgICBhdHRyaWJ1dGVzLnNvcnQoKGEsIGIpID0+
IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpOworICAgICAgICBhdHRyaWJ1dGVzLnNvcnQo
KGEsIGIpID0+IGEubmFtZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYi5uYW1lKSk7CiAgICAgICAg
IGZvciAobGV0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgICBsZXQgZGF0
YUdyaWROb2RlID0gbmV3IFdlYkluc3BlY3Rvci5FZGl0YWJsZURhdGFHcmlkTm9kZShhdHRyaWJ1
dGUpOwogICAgICAgICAgICAgZGF0YUdyaWROb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkVkaXRhYmxlRGF0YUdyaWROb2RlLkV2ZW50LlZhbHVlQ2hhbmdlZCwgdGhpcy5fYXR0cmli
dXRlTm9kZVZhbHVlQ2hhbmdlZCwgdGhpcyk7CkBAIC0zNTUsNyArMzU1LDcgQEAgV2ViSW5zcGVj
dG9yLkRPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgRE9NTm9kZURldGFpbHNTaWRl
YmFyUGFuZWwgZXh0ZW4KICAgICAgICAgICAgICAgICBpZiAoIWV2ZW50TGlzdGVuZXJzRm9yTm9k
ZSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgICAgICBldmVu
dExpc3RlbmVyc0Zvck5vZGUuc29ydCgoYSwgYikgPT4gYS50eXBlLnRvTG93ZXJDYXNlKCkubG9j
YWxlQ29tcGFyZShiLnR5cGUudG9Mb3dlckNhc2UoKSkpOworICAgICAgICAgICAgICAgIGV2ZW50
TGlzdGVuZXJzRm9yTm9kZS5zb3J0KChhLCBiKSA9PiBhLnR5cGUudG9Mb3dlckNhc2UoKS5leHRl
bmRlZExvY2FsZUNvbXBhcmUoYi50eXBlLnRvTG93ZXJDYXNlKCkpKTsKIAogICAgICAgICAgICAg
ICAgIHJvd3MucHVzaChjcmVhdGVFdmVudExpc3RlbmVyU2VjdGlvbihjdXJyZW50Tm9kZS5kaXNw
bGF5TmFtZSwgZXZlbnRMaXN0ZW5lcnNGb3JOb2RlLCB7aGlkZU5vZGU6IHRydWV9KSk7CiAgICAg
ICAgICAgICB9IHdoaWxlIChjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9N
U3RvcmFnZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzCmluZGV4IDg5MzIzNDJhZTRkLi44M2Yz
MjMzODQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qcwpAQCAtMTUzLDcg
KzE1Myw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcgPSBjbGFzcyBET01T
dG9yYWdlQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwCiAKICAgICAgICAgZnVuY3Rpb24gY29t
cGFyYXRvcihhLCBiKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYS5kYXRhW3NvcnRD
b2x1bW5JZGVudGlmaWVyXS5sb2NhbGVDb21wYXJlKGIuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmll
cl0pOworICAgICAgICAgICAgcmV0dXJuIGEuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl0uZXh0
ZW5kZWRMb2NhbGVDb21wYXJlKGIuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl0pOwogICAgICAg
ICB9CiAKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuc29ydE5vZGVzSW1tZWRpYXRlbHkoY29tcGFy
YXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCmluZGV4IDA0OTQ3MmYxZmMx
Li40YTg1YjA3NjJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKQEAgLTg5
Nyw3ICs4OTcsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBE
ZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBpZiAoaXNTcGVj
aWFsQnJlYWtwb2ludChiKSkKICAgICAgICAgICAgIHJldHVybiAxOwogCi0gICAgICAgIHJldHVy
biBhLm1haW5UaXRsZS5sb2NhbGVDb21wYXJlKGIubWFpblRpdGxlKTsKKyAgICAgICAgcmV0dXJu
IGEubWFpblRpdGxlLmV4dGVuZGVkTG9jYWxlQ29tcGFyZShiLm1haW5UaXRsZSk7CiAgICAgfQog
CiAgICAgX2NvbXBhcmVUcmVlRWxlbWVudHMoYSwgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVlRWxlbWVudC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVl
RWxlbWVudC5qcwppbmRleCAzOWMyZjg5ZWNmMS4uYmU2ZTQ5YjQ1YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVlRWxl
bWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9G
b2xkZXJpemVkVHJlZUVsZW1lbnQuanMKQEAgLTIzNyw3ICsyMzcsNyBAQCBXZWJJbnNwZWN0b3Iu
Rm9sZGVyaXplZFRyZWVFbGVtZW50ID0gY2xhc3MgRm9sZGVyaXplZFRyZWVFbGVtZW50IGV4dGVu
ZHMgV2ViSW5zcAogICAgICAgICAgICAgcmV0dXJuIDE7CiAKICAgICAgICAgLy8gVGhlbiBzb3J0
IGJ5IHRpdGxlLgotICAgICAgICByZXR1cm4gYS5tYWluVGl0bGUubG9jYWxlQ29tcGFyZShiLm1h
aW5UaXRsZSwgdW5kZWZpbmVkLCB7bnVtZXJpYzogdHJ1ZX0pOworICAgICAgICByZXR1cm4gYS5t
YWluVGl0bGUuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGIubWFpblRpdGxlKTsKICAgICB9CiAKICAg
ICBfaW5zZXJ0Rm9sZGVyVHJlZUVsZW1lbnQoZm9sZGVyVHJlZUVsZW1lbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3RE
YXRhR3JpZFRyZWUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9IZWFwU25hcHNob3REYXRhR3JpZFRyZWUuanMKaW5kZXggNzA1N2Y0YzFiMGQuLmViMjkzYmY5
MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9IZWFwU25hcHNob3REYXRhR3JpZFRyZWUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcFNuYXBzaG90RGF0YUdyaWRUcmVlLmpzCkBAIC01OCwx
MyArNTgsMTMgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERhdGFHcmlkVHJlZSA9IGNsYXNz
IEhlYXBTbmFwc2hvdERhdGFHcmlkVHJlZSBleHRlbmRzIFcKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG11bHRpcGxpZXIgKiAtMTsKICAgICAgICAgICAgICAgICBpZiAoIWEucHJvcGVydHlO
YW1lICYmIGIucHJvcGVydHlOYW1lKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gbXVsdGlw
bGllciAqIDE7Ci0gICAgICAgICAgICAgICAgbGV0IHByb3BlcnR5TmFtZUNvbXBhcmUgPSBhLnBy
b3BlcnR5TmFtZS5sb2NhbGVDb21wYXJlKGIucHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgICAg
ICBsZXQgcHJvcGVydHlOYW1lQ29tcGFyZSA9IGEucHJvcGVydHlOYW1lLmV4dGVuZGVkTG9jYWxl
Q29tcGFyZShiLnByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
cHJvcGVydHlOYW1lQ29tcGFyZSAhPT0gMCwgIlByb3BlcnR5IG5hbWVzIHNob3VsZCBiZSB1bmlx
dWUsIHdlIHNob3VsZG4ndCBoYXZlIGVxdWFsIHByb3BlcnR5IG5hbWVzLiIpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBtdWx0aXBsaWVyICogcHJvcGVydHlOYW1lQ29tcGFyZTsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgLy8gU29ydCBieSBjbGFzcyBuYW1lIGFuZCBvYmplY3QgaWQg
aWYgbm8gcHJvcGVydHkgbmFtZS4KLSAgICAgICAgICAgIGxldCBjbGFzc05hbWVDb21wYXJlID0g
YS5kYXRhLmNsYXNzTmFtZS5sb2NhbGVDb21wYXJlKGIuZGF0YS5jbGFzc05hbWUpOworICAgICAg
ICAgICAgbGV0IGNsYXNzTmFtZUNvbXBhcmUgPSBhLmRhdGEuY2xhc3NOYW1lLmV4dGVuZGVkTG9j
YWxlQ29tcGFyZShiLmRhdGEuY2xhc3NOYW1lKTsKICAgICAgICAgICAgIGlmIChjbGFzc05hbWVD
b21wYXJlKQogICAgICAgICAgICAgICAgIHJldHVybiBtdWx0aXBsaWVyICogY2xhc3NOYW1lQ29t
cGFyZTsKICAgICAgICAgICAgIGlmIChhLmRhdGEuaWQgfHwgYi5kYXRhLmlkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVs
aW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05l
dHdvcmtUaW1lbGluZVZpZXcuanMKaW5kZXggNTZkNDJlMTYzMTYuLjliZGI3NGVmYmYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3Jr
VGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMKQEAgLTE5OCw5ICsxOTgsOSBAQCBXZWJJbnNw
ZWN0b3IuTmV0d29ya1RpbWVsaW5lVmlldyA9IGNsYXNzIE5ldHdvcmtUaW1lbGluZVZpZXcgZXh0
ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICAgICAgbGV0IGRpc3BsYXlOYW1lMiA9IG5vZGUyLmRp
c3BsYXlOYW1lKCk7CiAKICAgICAgICAgICAgIGlmIChkaXNwbGF5TmFtZTEgIT09IGRpc3BsYXlO
YW1lMikKLSAgICAgICAgICAgICAgICByZXR1cm4gZGlzcGxheU5hbWUxLmxvY2FsZUNvbXBhcmUo
ZGlzcGxheU5hbWUyKSAqIHNvcnREaXJlY3Rpb247CisgICAgICAgICAgICAgICAgcmV0dXJuIGRp
c3BsYXlOYW1lMS5leHRlbmRlZExvY2FsZUNvbXBhcmUoZGlzcGxheU5hbWUyKSAqIHNvcnREaXJl
Y3Rpb247CiAKLSAgICAgICAgICAgIHJldHVybiBub2RlMS5yZXNvdXJjZS51cmwubG9jYWxlQ29t
cGFyZShub2RlMi5yZXNvdXJjZS51cmwpICogc29ydERpcmVjdGlvbjsKKyAgICAgICAgICAgIHJl
dHVybiBub2RlMS5yZXNvdXJjZS51cmwuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKG5vZGUyLnJlc291
cmNlLnVybCkgKiBzb3J0RGlyZWN0aW9uOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIG51
bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9OZXdUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL05ld1RhYkNvbnRlbnRWaWV3LmpzCmluZGV4IDIxYzAxNDJhYmFmLi41ZDVjZjA3
YmIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTmV3VGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTmV3VGFiQ29udGVudFZpZXcuanMKQEAgLTEzMiw3ICsxMzIsNyBAQCBX
ZWJJbnNwZWN0b3IuTmV3VGFiQ29udGVudFZpZXcgPSBjbGFzcyBOZXdUYWJDb250ZW50VmlldyBl
eHRlbmRzIFdlYkluc3BlY3Rvci5UYQogICAgIHsKICAgICAgICAgbGV0IGFsbFRhYkNsYXNzZXMg
PSBBcnJheS5mcm9tKFdlYkluc3BlY3Rvci5rbm93blRhYkNsYXNzZXMoKSk7CiAgICAgICAgIGxl
dCBhbGxvd2VkVGFiQ2xhc3NlcyA9IGFsbFRhYkNsYXNzZXMuZmlsdGVyKCh0YWJDbGFzcykgPT4g
dGFiQ2xhc3MuaXNUYWJBbGxvd2VkKCkgJiYgIXRhYkNsYXNzLmlzRXBoZW1lcmFsKCkpOwotICAg
ICAgICBhbGxvd2VkVGFiQ2xhc3Nlcy5zb3J0KChhLCBiKSA9PiBhLnRhYkluZm8oKS50aXRsZS5s
b2NhbGVDb21wYXJlKGIudGFiSW5mbygpLnRpdGxlKSk7CisgICAgICAgIGFsbG93ZWRUYWJDbGFz
c2VzLnNvcnQoKGEsIGIpID0+IGEudGFiSW5mbygpLnRpdGxlLmV4dGVuZGVkTG9jYWxlQ29tcGFy
ZShiLnRhYkluZm8oKS50aXRsZSkpOwogCiAgICAgICAgIGlmIChBcnJheS5zaGFsbG93RXF1YWwo
dGhpcy5fc2hvd25UYWJDbGFzc2VzLCBhbGxvd2VkVGFiQ2xhc3NlcykpCiAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9PdmVydmlld1RpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL092ZXJ2aWV3VGltZWxpbmVWaWV3LmpzCmluZGV4IGVkODg4YjllMDkw
Li5jYTdmY2Y4YzAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMKQEAgLTE3
OCw3ICsxNzgsNyBAQCBXZWJJbnNwZWN0b3IuT3ZlcnZpZXdUaW1lbGluZVZpZXcgPSBjbGFzcyBP
dmVydmlld1RpbWVsaW5lVmlldyBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKIAogICAgICAgICAvLyBGYWxsYmFjayB0byBjb21wYXJpbmcgdGl0bGVzLgotICAg
ICAgICByZXR1cm4gYS5kaXNwbGF5TmFtZSgpLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5TmFtZSgp
KTsKKyAgICAgICAgcmV0dXJuIGEuZGlzcGxheU5hbWUoKS5leHRlbmRlZExvY2FsZUNvbXBhcmUo
Yi5kaXNwbGF5TmFtZSgpKTsKICAgICB9CiAKICAgICBfaW5zZXJ0RGF0YUdyaWROb2RlKGRhdGFH
cmlkTm9kZSwgcGFyZW50RGF0YUdyaWROb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lk
ZWJhclBhbmVsLmpzCmluZGV4IDQ0OTA0YTEyMzQ5Li41NjM2MzA5YTZkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lk
ZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Byb2JlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAtNjgsNyArNjgsNyBAQCBXZWJJbnNw
ZWN0b3IuUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgUHJvYmVEZXRhaWxzU2lkZWJh
clBhbmVsIGV4dGVuZHMgVwogICAgICAgICBpbnNwZWN0ZWRQcm9iZVNldHMuc29ydChmdW5jdGlv
biBzb3J0QnlTb3VyY2VMb2NhdGlvbihhUHJvYmVTZXQsIGJQcm9iZVNldCkgewogICAgICAgICAg
ICAgdmFyIGFMb2NhdGlvbiA9IGFQcm9iZVNldC5icmVha3BvaW50LnNvdXJjZUNvZGVMb2NhdGlv
bjsKICAgICAgICAgICAgIHZhciBiTG9jYXRpb24gPSBiUHJvYmVTZXQuYnJlYWtwb2ludC5zb3Vy
Y2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICB2YXIgY29tcGFyaXNvblJlc3VsdCA9IGFMb2Nh
dGlvbi5zb3VyY2VDb2RlLmRpc3BsYXlOYW1lLmxvY2FsZUNvbXBhcmUoYkxvY2F0aW9uLnNvdXJj
ZUNvZGUuZGlzcGxheU5hbWUpOworICAgICAgICAgICAgdmFyIGNvbXBhcmlzb25SZXN1bHQgPSBh
TG9jYXRpb24uc291cmNlQ29kZS5kaXNwbGF5TmFtZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYkxv
Y2F0aW9uLnNvdXJjZUNvZGUuZGlzcGxheU5hbWUpOwogICAgICAgICAgICAgaWYgKGNvbXBhcmlz
b25SZXN1bHQgIT09IDApCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmlzb25SZXN1bHQ7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1F1aWNrQ29uc29sZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1F1aWNrQ29uc29sZS5qcwppbmRleCAzODJjN2MxMTI2NC4uOTkzZTRiNjMyMmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1F1aWNrQ29u
c29sZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9R
dWlja0NvbnNvbGUuanMKQEAgLTIxMCw3ICsyMTAsNyBAQCBXZWJJbnNwZWN0b3IuUXVpY2tDb25z
b2xlID0gY2xhc3MgUXVpY2tDb25zb2xlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAg
ICAgaWYgKGJOb25NYWluVGFyZ2V0ICYmICFhTm9uTWFpblRhcmdldCkKICAgICAgICAgICAgIHJl
dHVybiAxOwogICAgICAgICBpZiAoYU5vbk1haW5UYXJnZXQgJiYgYk5vbk1haW5UYXJnZXQpCi0g
ICAgICAgICAgICByZXR1cm4gYS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheU5h
bWUpOworICAgICAgICAgICAgcmV0dXJuIGEuZGlzcGxheU5hbWUuZXh0ZW5kZWRMb2NhbGVDb21w
YXJlKGIuZGlzcGxheU5hbWUpOwogCiAgICAgICAgIC8vICJNYWluIEZyYW1lIiBmb2xsb3dzLgog
ICAgICAgICBpZiAoYUV4ZWN1dGlvbkNvbnRleHQgPT09IFdlYkluc3BlY3Rvci5tYWluVGFyZ2V0
LmV4ZWN1dGlvbkNvbnRleHQpCkBAIC0yMjgsNyArMjI4LDcgQEAgV2ViSW5zcGVjdG9yLlF1aWNr
Q29uc29sZSA9IGNsYXNzIFF1aWNrQ29uc29sZSBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAg
ICAgICAgIGlmICghYUV4ZWN1dGlvbkNvbnRleHQuZnJhbWUubmFtZSAmJiBiRXhlY3V0aW9uQ29u
dGV4dC5mcmFtZS5uYW1lKQogICAgICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgcmV0dXJu
IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKTsKKyAgICAgICAgcmV0
dXJuIGEuZGlzcGxheU5hbWUuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGIuZGlzcGxheU5hbWUpOwog
ICAgIH0KIAogICAgIF9pbnNlcnRPdGhlckV4ZWN1dGlvbkNvbnRleHRQYXRoQ29tcG9uZW50KGV4
ZWN1dGlvbkNvbnRleHRQYXRoQ29tcG9uZW50LCBza2lwUmVidWlsZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlRGV0YWlsc1Np
ZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Jlc291cmNlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCA5ZDI1ZTYyZTVkOC4uMTkyZmIx
MTU5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Jlc291cmNlRGV0YWlsc1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZURldGFpbHNTaWRlYmFyUGFuZWwuanMK
QEAgLTQ4MCw3ICs0ODAsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBh
bmVsID0gY2xhc3MgUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBhbmVsIGV4dAogICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIHZhciBpdGVtMSA9IGEuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmll
cl07CiAgICAgICAgICAgICAgICAgdmFyIGl0ZW0yID0gYi5kYXRhW3NvcnRDb2x1bW5JZGVudGlm
aWVyXTsKLSAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTEubG9jYWxlQ29tcGFyZShpdGVtMik7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0xLmV4dGVuZGVkTG9jYWxlQ29tcGFyZShpdGVt
Mik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRhdGFHcmlkLnNvcnROb2Rlcyhjb21w
YXJhdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKaW5kZXggYWI3NTMzNjg4
YTIuLjdjMGJjYmQ3NGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcwpAQCAt
NDc3LDcgKzQ3Nyw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbCA9IGNsYXNz
IFJlc291cmNlU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGEubWFpblRpdGxlKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoYi5tYWluVGl0bGUp
OwogCi0gICAgICAgIHJldHVybiAoYS5tYWluVGl0bGUgfHwgIiIpLmxvY2FsZUNvbXBhcmUoYi5t
YWluVGl0bGUgfHwgIiIpOworICAgICAgICByZXR1cm4gKGEubWFpblRpdGxlIHx8ICIiKS5leHRl
bmRlZExvY2FsZUNvbXBhcmUoYi5tYWluVGl0bGUgfHwgIiIpOwogICAgIH0KIAogICAgIF9leHRy
YURvbWFpbnNBY3RpdmF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKaW5kZXgg
OWM4NTE4OTljN2UuLjBjZjgwMTdmYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQu
anMKQEAgLTM5LDcgKzM5LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgPSBj
bGFzcyBSZXNvdXJjZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG8KICAgICBzdGF0aWMg
Y29tcGFyZVJlc291cmNlVHJlZUVsZW1lbnRzKGEsIGIpCiAgICAgewogICAgICAgICAvLyBDb21w
YXJlIGJ5IHR5cGUgZmlyc3QgdG8ga2VlcCByZXNvdXJjZXMgZ3JvdXBlZCBieSB0eXBlIHdoZW4g
bm90IHNvcnRlZCBpbnRvIGZvbGRlcnMuCi0gICAgICAgIHZhciBjb21wYXJpc29uUmVzdWx0ID0g
YS5yZXNvdXJjZS50eXBlLmxvY2FsZUNvbXBhcmUoYi5yZXNvdXJjZS50eXBlKTsKKyAgICAgICAg
dmFyIGNvbXBhcmlzb25SZXN1bHQgPSBhLnJlc291cmNlLnR5cGUuZXh0ZW5kZWRMb2NhbGVDb21w
YXJlKGIucmVzb3VyY2UudHlwZSk7CiAgICAgICAgIGlmIChjb21wYXJpc29uUmVzdWx0ICE9PSAw
KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmlzb25SZXN1bHQ7CiAKQEAgLTUzLDEyICs1Mywx
MiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCA9IGNsYXNzIFJlc291cmNlVHJl
ZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICAvLyBkb21haW4gb2YgdGhlIHJl
c291cmNlLiBUaGlzIGNhdXNlcyByZXNvdXJjZXMgdG8gZ3JvdXAgYnkgZG9tYWluLiBJZiB0aGUg
cmVzb3VyY2UKICAgICAgICAgLy8gaXMgb24gdGhlIHNhbWUgZG9tYWluIGFzIHRoZSBmcmFtZSBp
dCB3aWxsIGhhdmUgYW4gZW1wdHkgc3VidGl0bGUuIFRoaXMgaXMgZ29vZAogICAgICAgICAvLyBi
ZWNhdXNlIGVtcHR5IHN0cmluZyBzb3J0cyBmaXJzdCwgc28gdGhvc2Ugd2lsbCBhcHBlYXIgYmVm
b3JlIGV4dGVybmFsIHJlc291cmNlcy4KLSAgICAgICAgY29tcGFyaXNvblJlc3VsdCA9IGEuc3Vi
dGl0bGUubG9jYWxlQ29tcGFyZShiLnN1YnRpdGxlKTsKKyAgICAgICAgY29tcGFyaXNvblJlc3Vs
dCA9IGEuc3VidGl0bGUuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGIuc3VidGl0bGUpOwogICAgICAg
ICBpZiAoY29tcGFyaXNvblJlc3VsdCAhPT0gMCkKICAgICAgICAgICAgIHJldHVybiBjb21wYXJp
c29uUmVzdWx0OwogCiAgICAgICAgIC8vIENvbXBhcmUgYnkgdGl0bGUgd2hlbiB0aGUgc3VidGl0
bGVzIGFyZSB0aGUgc2FtZS4KLSAgICAgICAgcmV0dXJuIGEubWFpblRpdGxlLmxvY2FsZUNvbXBh
cmUoYi5tYWluVGl0bGUpOworICAgICAgICByZXR1cm4gYS5tYWluVGl0bGUuZXh0ZW5kZWRMb2Nh
bGVDb21wYXJlKGIubWFpblRpdGxlKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29tcGFyZUZvbGRl
ckFuZFJlc291cmNlVHJlZUVsZW1lbnRzKGEsIGIpCkBAIC03MSw3ICs3MSw3IEBAIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50ID0gY2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRl
bmRzIFdlYkluc3BlY3RvCiAgICAgICAgIGlmICghYUlzRm9sZGVyICYmIGJJc0ZvbGRlcikKICAg
ICAgICAgICAgIHJldHVybiAxOwogICAgICAgICBpZiAoYUlzRm9sZGVyICYmIGJJc0ZvbGRlcikK
LSAgICAgICAgICAgIHJldHVybiBhLm1haW5UaXRsZS5sb2NhbGVDb21wYXJlKGIubWFpblRpdGxl
KTsKKyAgICAgICAgICAgIHJldHVybiBhLm1haW5UaXRsZS5leHRlbmRlZExvY2FsZUNvbXBhcmUo
Yi5tYWluVGl0bGUpOwogCiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
RWxlbWVudC5jb21wYXJlUmVzb3VyY2VUcmVlRWxlbWVudHMoYSwgYik7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0RGV0
YWlsc1RpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcuanMKaW5kZXggMDE2Y2ZjNDM5OTcuLjZj
ZDg3MzNiNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcuanMK
QEAgLTE1Niw5ICsxNTYsOSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmll
dyA9IGNsYXNzIFNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcgZXh0ZW5kcwogICAgICAgICBsZXQg
ZGlzcGxheU5hbWUxID0gbm9kZTEuZGlzcGxheU5hbWUoKTsKICAgICAgICAgbGV0IGRpc3BsYXlO
YW1lMiA9IG5vZGUyLmRpc3BsYXlOYW1lKCk7CiAgICAgICAgIGlmIChkaXNwbGF5TmFtZTEgIT09
IGRpc3BsYXlOYW1lMikKLSAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTEubG9jYWxlQ29t
cGFyZShkaXNwbGF5TmFtZTIpICogc29ydERpcmVjdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBk
aXNwbGF5TmFtZTEuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGRpc3BsYXlOYW1lMikgKiBzb3J0RGly
ZWN0aW9uOwogCi0gICAgICAgIHJldHVybiBub2RlMS5zdWJ0aXRsZS5sb2NhbGVDb21wYXJlKG5v
ZGUyLnN1YnRpdGxlKSAqIHNvcnREaXJlY3Rpb247CisgICAgICAgIHJldHVybiBub2RlMS5zdWJ0
aXRsZS5leHRlbmRlZExvY2FsZUNvbXBhcmUobm9kZTIuc3VidGl0bGUpICogc29ydERpcmVjdGlv
bjsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lkZWJhclBhbmVs
LmpzCmluZGV4IDNjMWM0MzZjNDc0Li5hZWQzODlmODYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3RvcmFnZVNpZGViYXJQYW5lbC5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lk
ZWJhclBhbmVsLmpzCkBAIC01MCw3ICs1MCw3IEBAIFdlYkluc3BlY3Rvci5TdG9yYWdlU2lkZWJh
clBhbmVsID0gY2xhc3MgU3RvcmFnZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlY3RvCiAg
ICAgICAgICAgICB7aWRlbnRpZmllcjogInNlc3Npb24tc3RvcmFnZSIsIHRpdGxlOiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlNlc3Npb24gU3RvcmFnZSIpLCBjbGFzc2VzOiBbV2ViSW5zcGVjdG9y
LkRPTVN0b3JhZ2VUcmVlRWxlbWVudF0sIGxvY2FsU3RvcmFnZTogZmFsc2V9CiAgICAgICAgIF07
CiAKLSAgICAgICAgc3RvcmFnZVR5cGVzLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS50
aXRsZS5sb2NhbGVDb21wYXJlKGIudGl0bGUpOyB9KTsKKyAgICAgICAgc3RvcmFnZVR5cGVzLnNv
cnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS50aXRsZS5leHRlbmRlZExvY2FsZUNvbXBhcmUo
Yi50aXRsZSk7IH0pOwogCiAgICAgICAgIGZvciAodmFyIGluZm8gb2Ygc3RvcmFnZVR5cGVzKSB7
CiAgICAgICAgICAgICB2YXIgc2NvcGVCYXJJdGVtID0gbmV3IFdlYkluc3BlY3Rvci5TY29wZUJh
ckl0ZW0oc2NvcGVJdGVtUHJlZml4ICsgaW5mby5pZGVudGlmaWVyLCBpbmZvLnRpdGxlKTsKQEAg
LTMwNSw3ICszMDUsNyBAQCBXZWJJbnNwZWN0b3IuU3RvcmFnZVNpZGViYXJQYW5lbCA9IGNsYXNz
IFN0b3JhZ2VTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICBjb25zb2xl
LmFzc2VydChhLm1haW5UaXRsZSk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGIubWFpblRpdGxl
KTsKIAotICAgICAgICByZXR1cm4gKGEubWFpblRpdGxlIHx8ICIiKS5sb2NhbGVDb21wYXJlKGIu
bWFpblRpdGxlIHx8ICIiKTsKKyAgICAgICAgcmV0dXJuIChhLm1haW5UaXRsZSB8fCAiIikuZXh0
ZW5kZWRMb2NhbGVDb21wYXJlKGIubWFpblRpdGxlIHx8ICIiKTsKICAgICB9CiAKICAgICBfYWRk
U3RvcmFnZUNoaWxkKGNoaWxkRWxlbWVudCwgcGFyZW50RWxlbWVudCwgZm9sZGVyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVs
aW5lRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9UaW1lbGluZURhdGFHcmlkLmpzCmluZGV4IDMyMzQzZjlhYjM4Li4yODRhM2MwM2NmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxp
bmVEYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9UaW1lbGluZURhdGFHcmlkLmpzCkBAIC0zODAsNyArMzgwLDcgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lRGF0YUdyaWQgPSBjbGFzcyBUaW1lbGluZURhdGFHcmlkIGV4dGVuZHMgV2ViSW5z
cGVjdG9yLkRhdGEKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUxID09PSAi
c3RyaW5nIiAmJiB0eXBlb2YgdmFsdWUyID09PSAic3RyaW5nIikKLSAgICAgICAgICAgIHJldHVy
biB2YWx1ZTEubG9jYWxlQ29tcGFyZSh2YWx1ZTIpICogc29ydERpcmVjdGlvbjsKKyAgICAgICAg
ICAgIHJldHVybiB2YWx1ZTEuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKHZhbHVlMikgKiBzb3J0RGly
ZWN0aW9uOwogCiAgICAgICAgIGlmICh2YWx1ZTEgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ2Fs
bEZyYW1lIHx8IHZhbHVlMiBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5DYWxsRnJhbWUpIHsKICAg
ICAgICAgICAgIC8vIFNvcnQgYnkgZnVuY3Rpb24gbmFtZSBpZiBhdmFpbGFibGUsIHRoZW4gZmFs
bCBiYWNrIHRvIHRoZSBzb3VyY2UgY29kZSBvYmplY3QuCg==
</data>
<flag name="review"
          id="335107"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314287</attachid>
            <date>2017-06-30 14:11:50 -0700</date>
            <delta_ts>2017-06-30 14:47:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>173984.diff</filename>
            <type>text/plain</type>
            <size>27955</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZTM0MWY5MzZlNC4uMmQ0ODg2YzYwNjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxNy0wNi0zMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogRGVmYXVsdCBzdHJpbmcgY29tcGFyaXNvbnMgdG8gdHJlYXQgbnVtZXJp
YyBjaGFyYWN0ZXJzIGFzIG51bWJlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Mzk4NAorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNv
cmFyby4KKworICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL3N0cmluZy11dGlsaXRpZXMu
aHRtbDoKKyAgICAgICAgQWRkIHRlc3RzIGZvciBTdHJpbmcucHJvdG90eXBlLmV4dGVuZGVkTG9j
YWxlQ29tcGFyZS4KKwogMjAxNy0wNi0yOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW5zdHJ1bWVudCBhY3RpdmUgcGl4ZWwgbWVt
b3J5IHVzZWQgYnkgY2FudmFzZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91
bml0LXRlc3RzL3N0cmluZy11dGlsaXRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3VuaXQtdGVzdHMvc3RyaW5nLXV0aWxpdGllcy1leHBlY3RlZC50eHQKaW5kZXggZjcw
MWEzZGMyNzYuLjVlOGJhODA0NjE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dW5pdC10ZXN0cy9zdHJpbmctdXRpbGl0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9zdHJpbmctdXRpbGl0aWVzLWV4cGVjdGVkLnR4dApAQCAt
MjAsMyArMjAsMTcgQEAgUEFTUzogaW50ZWdlciBmb3JtYXQgc3BlY2lmaWVyIHdpdGggc3RyaW5n
IGFyZ3VtZW50IHNob3VsZCBhdHRlbXB0IGNvbnZlcnNpb24gdG8KIFBBU1M6IGludGVnZXIgZm9y
bWF0IHNwZWNpZmllciB3aXRoIEluZmluaXR5IGFyZ3VtZW50IHNob3VsZCBzaG93ICJOYU4iCiBQ
QVNTOiBpbnRlZ2VyIGZvcm1hdCBzcGVjaWZpZXIgd2l0aCBOYU4gYXJndW1lbnQgc2hvdWxkIHNo
b3cgIk5hTiIKIAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFN0cmluZy5wcm90b3R5cGUuZXh0ZW5k
ZWRMb2NhbGVDb21wYXJlCitQQVNTOiAiMSIgPCAiMiIKK1BBU1M6ICIyIiA+ICIxIgorUEFTUzog
IjIiIDwgIjEwIgorUEFTUzogIjEwIiA+ICIyIgorUEFTUzogIjEiIDwgIjEwIgorUEFTUzogIjEw
IiA+ICIxIgorUEFTUzogImExIiA8ICJhMiIKK1BBU1M6ICJhMiIgPiAiYTEiCitQQVNTOiAiYTIi
IDwgImExMCIKK1BBU1M6ICJhMTAiID4gImEyIgorUEFTUzogImExIiA8ICJhMTAiCitQQVNTOiAi
YTEwIiA+ICJhMSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVz
dHMvc3RyaW5nLXV0aWxpdGllcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVz
dHMvc3RyaW5nLXV0aWxpdGllcy5odG1sCmluZGV4IDY3ZTY5MWMwZWJjLi40YTM3ZDYzOTFiMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvc3RyaW5nLXV0aWxp
dGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3N0cmluZy11
dGlsaXRpZXMuaHRtbApAQCAtMzMsNiArMzMsMjYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
IH0KICAgICB9KTsKIAorICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlN0
cmluZy5wcm90b3R5cGUuZXh0ZW5kZWRMb2NhbGVDb21wYXJlIiwKKyAgICAgICAgdGVzdCgpIHsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoIjEiLmV4dGVuZGVkTG9jYWxl
Q29tcGFyZSgiMiIpLCAtMSwgYCIxIiA8ICIyImApOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbCgiMiIuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKCIxIiksIDEsIGAiMiIgPiAi
MSJgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoIjIiLmV4dGVuZGVk
TG9jYWxlQ29tcGFyZSgiMTAiKSwgLTEsIGAiMiIgPCAiMTAiYCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKCIxMCIuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKCIyIiksIDEs
IGAiMTAiID4gIjIiYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKCIx
Ii5leHRlbmRlZExvY2FsZUNvbXBhcmUoIjEwIiksIC0xLCBgIjEiIDwgIjEwImApOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCgiMTAiLmV4dGVuZGVkTG9jYWxlQ29tcGFy
ZSgiMSIpLCAxLCBgIjEwIiA+ICIxImApOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKCJhMSIuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKCJhMiIpLCAtMSwgYCJhMSIgPCAi
YTIiYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKCJhMiIuZXh0ZW5k
ZWRMb2NhbGVDb21wYXJlKCJhMSIpLCAxLCBgImEyIiA+ICJhMSJgKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoImEyIi5leHRlbmRlZExvY2FsZUNvbXBhcmUoImExMCIp
LCAtMSwgYCJhMiIgPCAiYTEwImApOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbCgiYTEwIi5leHRlbmRlZExvY2FsZUNvbXBhcmUoImEyIiksIDEsIGAiYTEwIiA+ICJhMiJg
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoImExIi5leHRlbmRlZExv
Y2FsZUNvbXBhcmUoImExMCIpLCAtMSwgYCJhMSIgPCAiYTEwImApOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbCgiYTEwIi5leHRlbmRlZExvY2FsZUNvbXBhcmUoImExIiks
IDEsIGAiYTEwIiA+ICJhMSJgKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgfSk7CisKICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKIH0KIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZmVkYzNkN2Q3MWMuLjFjMjQ0NjA5MDll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxNy0wNi0zMCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogRGVmYXVsdCBzdHJpbmcgY29tcGFyaXNvbnMgdG8gdHJlYXQgbnVtZXJpYyBjaGFyYWN0ZXJz
IGFzIG51bWJlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3Mzk4NAorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanM6CisgICAgICAgIChTdHJpbmcu
cHJvdG90eXBlLmV4dGVuZGVkTG9jYWxlQ29tcGFyZSk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9KYXZhU2NyaXB0UnVudGltZUNvbXBsZXRpb25Qcm92aWRlci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0UnVudGltZUNvbXBsZXRpb25Qcm92aWRlci5w
cm90b3R5cGUuY29tcGxldGlvbkNvbnRyb2xsZXJDb21wbGV0aW9uc05lZWRlZC5yZWNlaXZlZFBy
b3BlcnR5TmFtZXMuY29tcGFyZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9SZXNvdXJjZVF1ZXJ5Q29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVF1ZXJ5Q29udHJvbGxlci5wcm90b3R5cGUuZXhlY3V0ZVF1ZXJ5KToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5fc29ydERhdGFHcmlkLmxvY2FsZUNvbXBhcmUpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLl9pdGVy
YXRlT3ZlclByb3BlcnRpZXMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29va2ll
U3RvcmFnZUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3Jh
Z2VDb250ZW50Vmlldy5wcm90b3R5cGUuX3NvcnREYXRhR3JpZC5sb2NhbGVDb21wYXJlKToKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3Rv
dHlwZS5fcmVmcmVzaEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGVE
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVmcmVzaEV2ZW50TGlzdGVuZXJzLmdlbmVy
YXRlR3JvdXBzQnlOb2RlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVN0b3Jh
Z2VDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVu
dFZpZXcucHJvdG90eXBlLl9zb3J0RGF0YUdyaWQuY29tcGFyYXRvcik6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2NvbXBhcmVUb3BMZXZlbFRy
ZWVFbGVtZW50cyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Gb2xkZXJpemVkVHJl
ZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRm9sZGVyaXplZFRyZWVFbGVtZW50
LnByb3RvdHlwZS5fY29tcGFyZVRyZWVFbGVtZW50c0J5TWFpblRpdGxlKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBTbmFwc2hvdERhdGFHcmlkVHJlZS5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REYXRhR3JpZFRyZWUuYnVpbGRTb3J0Q29tcGFyYXRv
cik6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtUaW1lbGluZVZpZXcucHJvdG90eXBlLmRh
dGFHcmlkU29ydENvbXBhcmF0b3IpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTmV3
VGFiQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV3VGFiQ29udGVudFZp
ZXcucHJvdG90eXBlLl91cGRhdGVTaG93blRhYnMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT3Zl
cnZpZXdUaW1lbGluZVZpZXcucHJvdG90eXBlLl9jb21wYXJlRGF0YUdyaWROb2Rlc0J5U3RhcnRU
aW1lKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2JlRGV0YWlsc1NpZGViYXJQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9iZURldGFpbHNTaWRlYmFyUGFuZWwu
cHJvdG90eXBlLmluc3BlY3QpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUXVpY2tD
b25zb2xlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlF1aWNrQ29uc29sZS5wcm90b3R5cGUu
X2NvbXBhcmVFeGVjdXRpb25Db250ZXh0UGF0aENvbXBvbmVudHMpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX2NyZWF0
ZU5hbWVWYWx1ZURhdGFHcmlkLnNvcnREYXRhR3JpZC5jb21wYXJhdG9yKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fY29tcGFyZVRyZWVFbGVt
ZW50cyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQuY29tcGFyZVJl
c291cmNlVHJlZUVsZW1lbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVF
bGVtZW50LmNvbXBhcmVGb2xkZXJBbmRSZXNvdXJjZVRyZWVFbGVtZW50cyk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3LmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcucHJvdG90eXBlLmRhdGFH
cmlkU29ydENvbXBhcmF0b3IpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3RvcmFn
ZVNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlU2lkZWJhclBh
bmVsLnByb3RvdHlwZS5fY29tcGFyZVRyZWVFbGVtZW50cyk6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9UaW1lbGluZURhdGFHcmlkLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lRGF0YUdyaWQucHJvdG90eXBlLl9zb3J0Q29tcGFyYXRvcik6CisKIDIwMTctMDYtMjgg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEluc3RydW1lbnQgYWN0aXZlIHBpeGVsIG1lbW9yeSB1c2VkIGJ5IGNhbnZhc2VzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGll
cy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVz
LmpzCmluZGV4IGQ2Y2QwMzQ0OTBkLi43YWRiYjhjMjZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMKQEAgLTY3MSw2
ICs2NzEsMTQgQEAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsICJjYXBp
dGFsaXplIiwKICAgICB9CiB9KTsKIAorT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90
b3R5cGUsICJleHRlbmRlZExvY2FsZUNvbXBhcmUiLAoreworICAgIHZhbHVlKG90aGVyKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlQ29tcGFyZShvdGhlciwgdW5kZWZpbmVkLCB7
bnVtZXJpYzogdHJ1ZX0pOworICAgIH0KK30pOworCiBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3Ry
aW5nLCAidG9rZW5pemVGb3JtYXRTdHJpbmciLAogewogICAgIHZhbHVlOiBmdW5jdGlvbihmb3Jt
YXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9KYXZhU2NyaXB0UnVudGltZUNvbXBsZXRpb25Qcm92aWRlci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1l
Q29tcGxldGlvblByb3ZpZGVyLmpzCmluZGV4IDEzNGIyZjAzMmFiLi4zZmFkNTQzZmI4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
SmF2YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdFJ1bnRpbWVDb21w
bGV0aW9uUHJvdmlkZXIuanMKQEAgLTI4Miw3ICsyODIsNyBAQCBXZWJJbnNwZWN0b3IuSmF2YVNj
cmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIgPSBjbGFzcyBKYXZhU2NyaXB0UnVudGltZUNv
bXBsZQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAKICAgICAgICAgICAgICAgICAv
LyBOb3QgbnVtYmVycywgc29ydCBhcyBzdHJpbmdzLgotICAgICAgICAgICAgICAgIHJldHVybiBh
LmxvY2FsZUNvbXBhcmUoYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGEuZXh0ZW5kZWRMb2Nh
bGVDb21wYXJlKGIpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjb21wbGV0aW9ucy5z
b3J0KGNvbXBhcmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvUmVzb3VyY2VRdWVyeUNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9SZXNvdXJjZVF1ZXJ5Q29udHJv
bGxlci5qcwppbmRleCAxNzExNjVmMzIyNi4uYTgxOGRkMzQ5NTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Jlc291cmNlUXVlcnlD
b250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL1Jlc291cmNlUXVlcnlDb250cm9sbGVyLmpzCkBAIC04Miw3ICs4Miw3IEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVF1ZXJ5Q29udHJvbGxlciA9IGNsYXNzIFJlc291cmNlUXVlcnlD
b250cm9sbGVyIGV4dGVuZHMgV2ViCiAgICAgICAgIC8vIHJhbmsgYXJlIHNvcnRlZCBieSBkaXNw
bGF5IG5hbWUuCiAgICAgICAgIHJldHVybiByZXN1bHRzLnNvcnQoKGEsIGIpID0+IHsKICAgICAg
ICAgICAgIGlmIChhLnJhbmsgPT09IGIucmFuaykKLSAgICAgICAgICAgICAgICByZXR1cm4gYS5y
ZXNvdXJjZS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIucmVzb3VyY2UuZGlzcGxheU5hbWUp
OworICAgICAgICAgICAgICAgIHJldHVybiBhLnJlc291cmNlLmRpc3BsYXlOYW1lLmV4dGVuZGVk
TG9jYWxlQ29tcGFyZShiLnJlc291cmNlLmRpc3BsYXlOYW1lKTsKICAgICAgICAgICAgIHJldHVy
biBiLnJhbmsgLSBhLnJhbms7CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFt
ZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanMKaW5kZXggYzczZmMxNDgxN2Uu
LjA5YWQzOTJlZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJh
bWVDb250ZW50Vmlldy5qcwpAQCAtMTgyLDcgKzE4Miw3IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNh
dGlvbkNhY2hlRnJhbWVDb250ZW50VmlldyA9IGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNv
bnRlCiAgICAgICAgIH0KICAgICAgICAgZnVuY3Rpb24gbG9jYWxlQ29tcGFyZShjb2x1bW5JZGVu
dGlmaWVyLCBub2RlQSwgbm9kZUIpCiAgICAgICAgIHsKLSAgICAgICAgICAgICByZXR1cm4gKG5v
ZGVBLmRhdGFbY29sdW1uSWRlbnRpZmllcl0gKyAiIikubG9jYWxlQ29tcGFyZShub2RlQi5kYXRh
W2NvbHVtbklkZW50aWZpZXJdICsgIiIpOworICAgICAgICAgICAgIHJldHVybiAobm9kZUEuZGF0
YVtjb2x1bW5JZGVudGlmaWVyXSArICIiKS5leHRlbmRlZExvY2FsZUNvbXBhcmUobm9kZUIuZGF0
YVtjb2x1bW5JZGVudGlmaWVyXSArICIiKTsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBjb21w
YXJhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5q
cwppbmRleCAyMjEzZDNlMDU2My4uNmE2YzZiOWEyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRp
dG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NT
U1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCkBAIC0xMzAzLDcgKzEzMDMsNyBAQCBXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURl
Y2xhcmF0aW9uVGV4dEVkaXRvcgogCiAgICAgICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZp
bHRlcihmaWx0ZXJGdW5jdGlvbik7CiAgICAgICAgIGlmICh0aGlzLl9zb3J0UHJvcGVydGllcykK
LSAgICAgICAgICAgIHByb3BlcnRpZXMuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBh
cmUoYi5uYW1lKSk7CisgICAgICAgICAgICBwcm9wZXJ0aWVzLnNvcnQoKGEsIGIpID0+IGEubmFt
ZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYi5uYW1lKSk7CiAKICAgICAgICAgdGhpcy5fc2hvd25Q
cm9wZXJ0aWVzID0gcHJvcGVydGllczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3LmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRl
bnRWaWV3LmpzCmluZGV4IDg0NDJmOTg2MTFhLi42NThhZGQ4ZGU1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRl
bnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0Nvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5qcwpAQCAtMTc3LDcgKzE3Nyw3IEBAIFdlYkluc3Bl
Y3Rvci5Db29raWVTdG9yYWdlQ29udGVudFZpZXcgPSBjbGFzcyBDb29raWVTdG9yYWdlQ29udGVu
dFZpZXcgZXh0ZW5kcyBXCiAgICAgewogICAgICAgICBmdW5jdGlvbiBsb2NhbGVDb21wYXJlKGZp
ZWxkLCBub2RlQSwgbm9kZUIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAobm9kZUEu
ZGF0YVtmaWVsZF0gKyAiIikubG9jYWxlQ29tcGFyZShub2RlQi5kYXRhW2ZpZWxkXSArICIiKTsK
KyAgICAgICAgICAgIHJldHVybiAobm9kZUEuZGF0YVtmaWVsZF0gKyAiIikuZXh0ZW5kZWRMb2Nh
bGVDb21wYXJlKG5vZGVCLmRhdGFbZmllbGRdICsgIiIpOwogICAgICAgICB9CiAKICAgICAgICAg
ZnVuY3Rpb24gbnVtYmVyQ29tcGFyZShmaWVsZCwgbm9kZUEsIG5vZGVCKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NTm9kZURldGFpbHNT
aWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9ET01Ob2RlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCA5NzNmNWJjMTUxYi4uOGYxZTBm
MmJlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0RPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBA
IC0xODcsNyArMTg3LDcgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVs
ID0gY2xhc3MgRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW4KICAgICAgICAgZGF0YUdy
aWQucmVtb3ZlQ2hpbGRyZW4oKTsKIAogICAgICAgICBsZXQgYXR0cmlidXRlcyA9IGRvbU5vZGUu
YXR0cmlidXRlcygpOwotICAgICAgICBhdHRyaWJ1dGVzLnNvcnQoKGEsIGIpID0+IGEubmFtZS5s
b2NhbGVDb21wYXJlKGIubmFtZSkpOworICAgICAgICBhdHRyaWJ1dGVzLnNvcnQoKGEsIGIpID0+
IGEubmFtZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYi5uYW1lKSk7CiAgICAgICAgIGZvciAobGV0
IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgICBsZXQgZGF0YUdyaWROb2Rl
ID0gbmV3IFdlYkluc3BlY3Rvci5FZGl0YWJsZURhdGFHcmlkTm9kZShhdHRyaWJ1dGUpOwogICAg
ICAgICAgICAgZGF0YUdyaWROb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkVkaXRh
YmxlRGF0YUdyaWROb2RlLkV2ZW50LlZhbHVlQ2hhbmdlZCwgdGhpcy5fYXR0cmlidXRlTm9kZVZh
bHVlQ2hhbmdlZCwgdGhpcyk7CkBAIC0zNTUsNyArMzU1LDcgQEAgV2ViSW5zcGVjdG9yLkRPTU5v
ZGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwg
ZXh0ZW4KICAgICAgICAgICAgICAgICBpZiAoIWV2ZW50TGlzdGVuZXJzRm9yTm9kZSkKICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgICAgICBldmVudExpc3RlbmVy
c0Zvck5vZGUuc29ydCgoYSwgYikgPT4gYS50eXBlLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFy
ZShiLnR5cGUudG9Mb3dlckNhc2UoKSkpOworICAgICAgICAgICAgICAgIGV2ZW50TGlzdGVuZXJz
Rm9yTm9kZS5zb3J0KChhLCBiKSA9PiBhLnR5cGUudG9Mb3dlckNhc2UoKS5leHRlbmRlZExvY2Fs
ZUNvbXBhcmUoYi50eXBlLnRvTG93ZXJDYXNlKCkpKTsKIAogICAgICAgICAgICAgICAgIHJvd3Mu
cHVzaChjcmVhdGVFdmVudExpc3RlbmVyU2VjdGlvbihjdXJyZW50Tm9kZS5kaXNwbGF5TmFtZSwg
ZXZlbnRMaXN0ZW5lcnNGb3JOb2RlLCB7aGlkZU5vZGU6IHRydWV9KSk7CiAgICAgICAgICAgICB9
IHdoaWxlIChjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NU3RvcmFnZUNv
bnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzCmluZGV4IDg5MzIzNDJhZTRkLi44M2YzMjMzODQ4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9N
U3RvcmFnZUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qcwpAQCAtMTUzLDcgKzE1Myw3IEBA
IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcgPSBjbGFzcyBET01TdG9yYWdlQ29u
dGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwCiAKICAgICAgICAgZnVuY3Rpb24gY29tcGFyYXRvcihh
LCBiKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYS5kYXRhW3NvcnRDb2x1bW5JZGVu
dGlmaWVyXS5sb2NhbGVDb21wYXJlKGIuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl0pOworICAg
ICAgICAgICAgcmV0dXJuIGEuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl0uZXh0ZW5kZWRMb2Nh
bGVDb21wYXJlKGIuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl0pOwogICAgICAgICB9CiAKICAg
ICAgICAgdGhpcy5fZGF0YUdyaWQuc29ydE5vZGVzSW1tZWRpYXRlbHkoY29tcGFyYXRvcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1
Z2dlclNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCmluZGV4IDA0OTQ3MmYxZmMxLi40YTg1YjA3
NjJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKQEAgLTg5Nyw3ICs4OTcs
NyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNp
ZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBpZiAoaXNTcGVjaWFsQnJlYWtw
b2ludChiKSkKICAgICAgICAgICAgIHJldHVybiAxOwogCi0gICAgICAgIHJldHVybiBhLm1haW5U
aXRsZS5sb2NhbGVDb21wYXJlKGIubWFpblRpdGxlKTsKKyAgICAgICAgcmV0dXJuIGEubWFpblRp
dGxlLmV4dGVuZGVkTG9jYWxlQ29tcGFyZShiLm1haW5UaXRsZSk7CiAgICAgfQogCiAgICAgX2Nv
bXBhcmVUcmVlRWxlbWVudHMoYSwgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVlRWxlbWVudC5q
cwppbmRleCAzOWMyZjg5ZWNmMS4uYmU2ZTQ5YjQ1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbGRlcml6ZWRUcmVlRWxlbWVudC5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Gb2xkZXJpemVk
VHJlZUVsZW1lbnQuanMKQEAgLTIzNyw3ICsyMzcsNyBAQCBXZWJJbnNwZWN0b3IuRm9sZGVyaXpl
ZFRyZWVFbGVtZW50ID0gY2xhc3MgRm9sZGVyaXplZFRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5z
cAogICAgICAgICAgICAgcmV0dXJuIDE7CiAKICAgICAgICAgLy8gVGhlbiBzb3J0IGJ5IHRpdGxl
LgotICAgICAgICByZXR1cm4gYS5tYWluVGl0bGUubG9jYWxlQ29tcGFyZShiLm1haW5UaXRsZSwg
dW5kZWZpbmVkLCB7bnVtZXJpYzogdHJ1ZX0pOworICAgICAgICByZXR1cm4gYS5tYWluVGl0bGUu
ZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGIubWFpblRpdGxlKTsKICAgICB9CiAKICAgICBfaW5zZXJ0
Rm9sZGVyVHJlZUVsZW1lbnQoZm9sZGVyVHJlZUVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3REYXRhR3JpZFRy
ZWUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25h
cHNob3REYXRhR3JpZFRyZWUuanMKaW5kZXggNzA1N2Y0YzFiMGQuLmViMjkzYmY5MGQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25h
cHNob3REYXRhR3JpZFRyZWUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvSGVhcFNuYXBzaG90RGF0YUdyaWRUcmVlLmpzCkBAIC01OCwxMyArNTgsMTMg
QEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERhdGFHcmlkVHJlZSA9IGNsYXNzIEhlYXBTbmFw
c2hvdERhdGFHcmlkVHJlZSBleHRlbmRzIFcKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG11
bHRpcGxpZXIgKiAtMTsKICAgICAgICAgICAgICAgICBpZiAoIWEucHJvcGVydHlOYW1lICYmIGIu
cHJvcGVydHlOYW1lKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gbXVsdGlwbGllciAqIDE7
Ci0gICAgICAgICAgICAgICAgbGV0IHByb3BlcnR5TmFtZUNvbXBhcmUgPSBhLnByb3BlcnR5TmFt
ZS5sb2NhbGVDb21wYXJlKGIucHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgICAgICBsZXQgcHJv
cGVydHlOYW1lQ29tcGFyZSA9IGEucHJvcGVydHlOYW1lLmV4dGVuZGVkTG9jYWxlQ29tcGFyZShi
LnByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocHJvcGVydHlO
YW1lQ29tcGFyZSAhPT0gMCwgIlByb3BlcnR5IG5hbWVzIHNob3VsZCBiZSB1bmlxdWUsIHdlIHNo
b3VsZG4ndCBoYXZlIGVxdWFsIHByb3BlcnR5IG5hbWVzLiIpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBtdWx0aXBsaWVyICogcHJvcGVydHlOYW1lQ29tcGFyZTsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgLy8gU29ydCBieSBjbGFzcyBuYW1lIGFuZCBvYmplY3QgaWQgaWYgbm8gcHJv
cGVydHkgbmFtZS4KLSAgICAgICAgICAgIGxldCBjbGFzc05hbWVDb21wYXJlID0gYS5kYXRhLmNs
YXNzTmFtZS5sb2NhbGVDb21wYXJlKGIuZGF0YS5jbGFzc05hbWUpOworICAgICAgICAgICAgbGV0
IGNsYXNzTmFtZUNvbXBhcmUgPSBhLmRhdGEuY2xhc3NOYW1lLmV4dGVuZGVkTG9jYWxlQ29tcGFy
ZShiLmRhdGEuY2xhc3NOYW1lKTsKICAgICAgICAgICAgIGlmIChjbGFzc05hbWVDb21wYXJlKQog
ICAgICAgICAgICAgICAgIHJldHVybiBtdWx0aXBsaWVyICogY2xhc3NOYW1lQ29tcGFyZTsKICAg
ICAgICAgICAgIGlmIChhLmRhdGEuaWQgfHwgYi5kYXRhLmlkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lVmlldy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1l
bGluZVZpZXcuanMKaW5kZXggNTZkNDJlMTYzMTYuLjliZGI3NGVmYmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05l
dHdvcmtUaW1lbGluZVZpZXcuanMKQEAgLTE5OCw5ICsxOTgsOSBAQCBXZWJJbnNwZWN0b3IuTmV0
d29ya1RpbWVsaW5lVmlldyA9IGNsYXNzIE5ldHdvcmtUaW1lbGluZVZpZXcgZXh0ZW5kcyBXZWJJ
bnNwZWN0bwogICAgICAgICAgICAgbGV0IGRpc3BsYXlOYW1lMiA9IG5vZGUyLmRpc3BsYXlOYW1l
KCk7CiAKICAgICAgICAgICAgIGlmIChkaXNwbGF5TmFtZTEgIT09IGRpc3BsYXlOYW1lMikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZGlzcGxheU5hbWUxLmxvY2FsZUNvbXBhcmUoZGlzcGxheU5h
bWUyKSAqIHNvcnREaXJlY3Rpb247CisgICAgICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1l
MS5leHRlbmRlZExvY2FsZUNvbXBhcmUoZGlzcGxheU5hbWUyKSAqIHNvcnREaXJlY3Rpb247CiAK
LSAgICAgICAgICAgIHJldHVybiBub2RlMS5yZXNvdXJjZS51cmwubG9jYWxlQ29tcGFyZShub2Rl
Mi5yZXNvdXJjZS51cmwpICogc29ydERpcmVjdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBub2Rl
MS5yZXNvdXJjZS51cmwuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKG5vZGUyLnJlc291cmNlLnVybCkg
KiBzb3J0RGlyZWN0aW9uOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIG51bGw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXdUYWJD
b250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L05ld1RhYkNvbnRlbnRWaWV3LmpzCmluZGV4IDIxYzAxNDJhYmFmLi41ZDVjZjA3YmIzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV3VGFi
Q29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTmV3VGFiQ29udGVudFZpZXcuanMKQEAgLTEzMiw3ICsxMzIsNyBAQCBXZWJJbnNwZWN0
b3IuTmV3VGFiQ29udGVudFZpZXcgPSBjbGFzcyBOZXdUYWJDb250ZW50VmlldyBleHRlbmRzIFdl
Ykluc3BlY3Rvci5UYQogICAgIHsKICAgICAgICAgbGV0IGFsbFRhYkNsYXNzZXMgPSBBcnJheS5m
cm9tKFdlYkluc3BlY3Rvci5rbm93blRhYkNsYXNzZXMoKSk7CiAgICAgICAgIGxldCBhbGxvd2Vk
VGFiQ2xhc3NlcyA9IGFsbFRhYkNsYXNzZXMuZmlsdGVyKCh0YWJDbGFzcykgPT4gdGFiQ2xhc3Mu
aXNUYWJBbGxvd2VkKCkgJiYgIXRhYkNsYXNzLmlzRXBoZW1lcmFsKCkpOwotICAgICAgICBhbGxv
d2VkVGFiQ2xhc3Nlcy5zb3J0KChhLCBiKSA9PiBhLnRhYkluZm8oKS50aXRsZS5sb2NhbGVDb21w
YXJlKGIudGFiSW5mbygpLnRpdGxlKSk7CisgICAgICAgIGFsbG93ZWRUYWJDbGFzc2VzLnNvcnQo
KGEsIGIpID0+IGEudGFiSW5mbygpLnRpdGxlLmV4dGVuZGVkTG9jYWxlQ29tcGFyZShiLnRhYklu
Zm8oKS50aXRsZSkpOwogCiAgICAgICAgIGlmIChBcnJheS5zaGFsbG93RXF1YWwodGhpcy5fc2hv
d25UYWJDbGFzc2VzLCBhbGxvd2VkVGFiQ2xhc3NlcykpCiAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9PdmVy
dmlld1RpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL092ZXJ2aWV3VGltZWxpbmVWaWV3LmpzCmluZGV4IGVkODg4YjllMDkwLi5jYTdmY2Y4
YzAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMKQEAgLTE3OCw3ICsxNzgs
NyBAQCBXZWJJbnNwZWN0b3IuT3ZlcnZpZXdUaW1lbGluZVZpZXcgPSBjbGFzcyBPdmVydmlld1Rp
bWVsaW5lVmlldyBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
IAogICAgICAgICAvLyBGYWxsYmFjayB0byBjb21wYXJpbmcgdGl0bGVzLgotICAgICAgICByZXR1
cm4gYS5kaXNwbGF5TmFtZSgpLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5TmFtZSgpKTsKKyAgICAg
ICAgcmV0dXJuIGEuZGlzcGxheU5hbWUoKS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYi5kaXNwbGF5
TmFtZSgpKTsKICAgICB9CiAKICAgICBfaW5zZXJ0RGF0YUdyaWROb2RlKGRhdGFHcmlkTm9kZSwg
cGFyZW50RGF0YUdyaWROb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVs
LmpzCmluZGV4IDQ0OTA0YTEyMzQ5Li41NjM2MzA5YTZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2Jl
RGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAtNjgsNyArNjgsNyBAQCBXZWJJbnNwZWN0b3IuUHJv
YmVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgUHJvYmVEZXRhaWxzU2lkZWJhclBhbmVsIGV4
dGVuZHMgVwogICAgICAgICBpbnNwZWN0ZWRQcm9iZVNldHMuc29ydChmdW5jdGlvbiBzb3J0QnlT
b3VyY2VMb2NhdGlvbihhUHJvYmVTZXQsIGJQcm9iZVNldCkgewogICAgICAgICAgICAgdmFyIGFM
b2NhdGlvbiA9IGFQcm9iZVNldC5icmVha3BvaW50LnNvdXJjZUNvZGVMb2NhdGlvbjsKICAgICAg
ICAgICAgIHZhciBiTG9jYXRpb24gPSBiUHJvYmVTZXQuYnJlYWtwb2ludC5zb3VyY2VDb2RlTG9j
YXRpb247Ci0gICAgICAgICAgICB2YXIgY29tcGFyaXNvblJlc3VsdCA9IGFMb2NhdGlvbi5zb3Vy
Y2VDb2RlLmRpc3BsYXlOYW1lLmxvY2FsZUNvbXBhcmUoYkxvY2F0aW9uLnNvdXJjZUNvZGUuZGlz
cGxheU5hbWUpOworICAgICAgICAgICAgdmFyIGNvbXBhcmlzb25SZXN1bHQgPSBhTG9jYXRpb24u
c291cmNlQ29kZS5kaXNwbGF5TmFtZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYkxvY2F0aW9uLnNv
dXJjZUNvZGUuZGlzcGxheU5hbWUpOwogICAgICAgICAgICAgaWYgKGNvbXBhcmlzb25SZXN1bHQg
IT09IDApCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmlzb25SZXN1bHQ7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1F1aWNrQ29u
c29sZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1F1aWNr
Q29uc29sZS5qcwppbmRleCAzODJjN2MxMTI2NC4uOTkzZTRiNjMyMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1F1aWNrQ29uc29sZS5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9RdWlja0NvbnNv
bGUuanMKQEAgLTIxMCw3ICsyMTAsNyBAQCBXZWJJbnNwZWN0b3IuUXVpY2tDb25zb2xlID0gY2xh
c3MgUXVpY2tDb25zb2xlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgaWYgKGJO
b25NYWluVGFyZ2V0ICYmICFhTm9uTWFpblRhcmdldCkKICAgICAgICAgICAgIHJldHVybiAxOwog
ICAgICAgICBpZiAoYU5vbk1haW5UYXJnZXQgJiYgYk5vbk1haW5UYXJnZXQpCi0gICAgICAgICAg
ICByZXR1cm4gYS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheU5hbWUpOworICAg
ICAgICAgICAgcmV0dXJuIGEuZGlzcGxheU5hbWUuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGIuZGlz
cGxheU5hbWUpOwogCiAgICAgICAgIC8vICJNYWluIEZyYW1lIiBmb2xsb3dzLgogICAgICAgICBp
ZiAoYUV4ZWN1dGlvbkNvbnRleHQgPT09IFdlYkluc3BlY3Rvci5tYWluVGFyZ2V0LmV4ZWN1dGlv
bkNvbnRleHQpCkBAIC0yMjgsNyArMjI4LDcgQEAgV2ViSW5zcGVjdG9yLlF1aWNrQ29uc29sZSA9
IGNsYXNzIFF1aWNrQ29uc29sZSBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIGlm
ICghYUV4ZWN1dGlvbkNvbnRleHQuZnJhbWUubmFtZSAmJiBiRXhlY3V0aW9uQ29udGV4dC5mcmFt
ZS5uYW1lKQogICAgICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgcmV0dXJuIGEuZGlzcGxh
eU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKTsKKyAgICAgICAgcmV0dXJuIGEuZGlz
cGxheU5hbWUuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGIuZGlzcGxheU5hbWUpOwogICAgIH0KIAog
ICAgIF9pbnNlcnRPdGhlckV4ZWN1dGlvbkNvbnRleHRQYXRoQ29tcG9uZW50KGV4ZWN1dGlvbkNv
bnRleHRQYXRoQ29tcG9uZW50LCBza2lwUmVidWlsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlRGV0YWlsc1NpZGViYXJQYW5l
bC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
RGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCA5ZDI1ZTYyZTVkOC4uMTkyZmIxMTU5YWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291
cmNlRGV0YWlsc1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZURldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTQ4MCw3
ICs0ODAsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xh
c3MgUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBhbmVsIGV4dAogICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgIHZhciBpdGVtMSA9IGEuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl07CiAgICAg
ICAgICAgICAgICAgdmFyIGl0ZW0yID0gYi5kYXRhW3NvcnRDb2x1bW5JZGVudGlmaWVyXTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gaXRlbTEubG9jYWxlQ29tcGFyZShpdGVtMik7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGl0ZW0xLmV4dGVuZGVkTG9jYWxlQ29tcGFyZShpdGVtMik7CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIGRhdGFHcmlkLnNvcnROb2Rlcyhjb21wYXJhdG9yKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
c291cmNlU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMKaW5kZXggYWI3NTMzNjg4YTIuLjdjMGJj
YmQ3NGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcwpAQCAtNDc3LDcgKzQ3
Nyw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbCA9IGNsYXNzIFJlc291cmNl
U2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGEu
bWFpblRpdGxlKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoYi5tYWluVGl0bGUpOwogCi0gICAg
ICAgIHJldHVybiAoYS5tYWluVGl0bGUgfHwgIiIpLmxvY2FsZUNvbXBhcmUoYi5tYWluVGl0bGUg
fHwgIiIpOworICAgICAgICByZXR1cm4gKGEubWFpblRpdGxlIHx8ICIiKS5leHRlbmRlZExvY2Fs
ZUNvbXBhcmUoYi5tYWluVGl0bGUgfHwgIiIpOwogICAgIH0KIAogICAgIF9leHRyYURvbWFpbnNB
Y3RpdmF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKaW5kZXggOWM4NTE4OTlj
N2UuLjBjZjgwMTdmYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKQEAgLTM5
LDcgKzM5LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgPSBjbGFzcyBSZXNv
dXJjZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG8KICAgICBzdGF0aWMgY29tcGFyZVJl
c291cmNlVHJlZUVsZW1lbnRzKGEsIGIpCiAgICAgewogICAgICAgICAvLyBDb21wYXJlIGJ5IHR5
cGUgZmlyc3QgdG8ga2VlcCByZXNvdXJjZXMgZ3JvdXBlZCBieSB0eXBlIHdoZW4gbm90IHNvcnRl
ZCBpbnRvIGZvbGRlcnMuCi0gICAgICAgIHZhciBjb21wYXJpc29uUmVzdWx0ID0gYS5yZXNvdXJj
ZS50eXBlLmxvY2FsZUNvbXBhcmUoYi5yZXNvdXJjZS50eXBlKTsKKyAgICAgICAgdmFyIGNvbXBh
cmlzb25SZXN1bHQgPSBhLnJlc291cmNlLnR5cGUuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGIucmVz
b3VyY2UudHlwZSk7CiAgICAgICAgIGlmIChjb21wYXJpc29uUmVzdWx0ICE9PSAwKQogICAgICAg
ICAgICAgcmV0dXJuIGNvbXBhcmlzb25SZXN1bHQ7CiAKQEAgLTUzLDEyICs1MywxMiBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCA9IGNsYXNzIFJlc291cmNlVHJlZUVsZW1lbnQg
ZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICAvLyBkb21haW4gb2YgdGhlIHJlc291cmNlLiBU
aGlzIGNhdXNlcyByZXNvdXJjZXMgdG8gZ3JvdXAgYnkgZG9tYWluLiBJZiB0aGUgcmVzb3VyY2UK
ICAgICAgICAgLy8gaXMgb24gdGhlIHNhbWUgZG9tYWluIGFzIHRoZSBmcmFtZSBpdCB3aWxsIGhh
dmUgYW4gZW1wdHkgc3VidGl0bGUuIFRoaXMgaXMgZ29vZAogICAgICAgICAvLyBiZWNhdXNlIGVt
cHR5IHN0cmluZyBzb3J0cyBmaXJzdCwgc28gdGhvc2Ugd2lsbCBhcHBlYXIgYmVmb3JlIGV4dGVy
bmFsIHJlc291cmNlcy4KLSAgICAgICAgY29tcGFyaXNvblJlc3VsdCA9IGEuc3VidGl0bGUubG9j
YWxlQ29tcGFyZShiLnN1YnRpdGxlKTsKKyAgICAgICAgY29tcGFyaXNvblJlc3VsdCA9IGEuc3Vi
dGl0bGUuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGIuc3VidGl0bGUpOwogICAgICAgICBpZiAoY29t
cGFyaXNvblJlc3VsdCAhPT0gMCkKICAgICAgICAgICAgIHJldHVybiBjb21wYXJpc29uUmVzdWx0
OwogCiAgICAgICAgIC8vIENvbXBhcmUgYnkgdGl0bGUgd2hlbiB0aGUgc3VidGl0bGVzIGFyZSB0
aGUgc2FtZS4KLSAgICAgICAgcmV0dXJuIGEubWFpblRpdGxlLmxvY2FsZUNvbXBhcmUoYi5tYWlu
VGl0bGUpOworICAgICAgICByZXR1cm4gYS5tYWluVGl0bGUuZXh0ZW5kZWRMb2NhbGVDb21wYXJl
KGIubWFpblRpdGxlKTsKICAgICB9CiAKICAgICBzdGF0aWMgY29tcGFyZUZvbGRlckFuZFJlc291
cmNlVHJlZUVsZW1lbnRzKGEsIGIpCkBAIC03MSw3ICs3MSw3IEBAIFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVFbGVtZW50ID0gY2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRlbmRzIFdlYklu
c3BlY3RvCiAgICAgICAgIGlmICghYUlzRm9sZGVyICYmIGJJc0ZvbGRlcikKICAgICAgICAgICAg
IHJldHVybiAxOwogICAgICAgICBpZiAoYUlzRm9sZGVyICYmIGJJc0ZvbGRlcikKLSAgICAgICAg
ICAgIHJldHVybiBhLm1haW5UaXRsZS5sb2NhbGVDb21wYXJlKGIubWFpblRpdGxlKTsKKyAgICAg
ICAgICAgIHJldHVybiBhLm1haW5UaXRsZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYi5tYWluVGl0
bGUpOwogCiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudC5j
b21wYXJlUmVzb3VyY2VUcmVlRWxlbWVudHMoYSwgYik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0RGV0YWlsc1RpbWVs
aW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nj
cmlwdERldGFpbHNUaW1lbGluZVZpZXcuanMKaW5kZXggMDE2Y2ZjNDM5OTcuLjZjZDg3MzNiNTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9T
Y3JpcHREZXRhaWxzVGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcuanMKQEAgLTE1Niw5
ICsxNTYsOSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldyA9IGNsYXNz
IFNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcgZXh0ZW5kcwogICAgICAgICBsZXQgZGlzcGxheU5h
bWUxID0gbm9kZTEuZGlzcGxheU5hbWUoKTsKICAgICAgICAgbGV0IGRpc3BsYXlOYW1lMiA9IG5v
ZGUyLmRpc3BsYXlOYW1lKCk7CiAgICAgICAgIGlmIChkaXNwbGF5TmFtZTEgIT09IGRpc3BsYXlO
YW1lMikKLSAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTEubG9jYWxlQ29tcGFyZShkaXNw
bGF5TmFtZTIpICogc29ydERpcmVjdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFt
ZTEuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKGRpc3BsYXlOYW1lMikgKiBzb3J0RGlyZWN0aW9uOwog
Ci0gICAgICAgIHJldHVybiBub2RlMS5zdWJ0aXRsZS5sb2NhbGVDb21wYXJlKG5vZGUyLnN1YnRp
dGxlKSAqIHNvcnREaXJlY3Rpb247CisgICAgICAgIHJldHVybiBub2RlMS5zdWJ0aXRsZS5leHRl
bmRlZExvY2FsZUNvbXBhcmUobm9kZTIuc3VidGl0bGUpICogc29ydERpcmVjdGlvbjsKICAgICB9
CiAKICAgICAvLyBQcm90ZWN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lkZWJhclBhbmVsLmpzCmluZGV4
IDNjMWM0MzZjNDc0Li5hZWQzODlmODYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3RvcmFnZVNpZGViYXJQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lkZWJhclBhbmVs
LmpzCkBAIC01MCw3ICs1MCw3IEBAIFdlYkluc3BlY3Rvci5TdG9yYWdlU2lkZWJhclBhbmVsID0g
Y2xhc3MgU3RvcmFnZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlY3RvCiAgICAgICAgICAg
ICB7aWRlbnRpZmllcjogInNlc3Npb24tc3RvcmFnZSIsIHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNlc3Npb24gU3RvcmFnZSIpLCBjbGFzc2VzOiBbV2ViSW5zcGVjdG9yLkRPTVN0b3Jh
Z2VUcmVlRWxlbWVudF0sIGxvY2FsU3RvcmFnZTogZmFsc2V9CiAgICAgICAgIF07CiAKLSAgICAg
ICAgc3RvcmFnZVR5cGVzLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS50aXRsZS5sb2Nh
bGVDb21wYXJlKGIudGl0bGUpOyB9KTsKKyAgICAgICAgc3RvcmFnZVR5cGVzLnNvcnQoZnVuY3Rp
b24oYSwgYikgeyByZXR1cm4gYS50aXRsZS5leHRlbmRlZExvY2FsZUNvbXBhcmUoYi50aXRsZSk7
IH0pOwogCiAgICAgICAgIGZvciAodmFyIGluZm8gb2Ygc3RvcmFnZVR5cGVzKSB7CiAgICAgICAg
ICAgICB2YXIgc2NvcGVCYXJJdGVtID0gbmV3IFdlYkluc3BlY3Rvci5TY29wZUJhckl0ZW0oc2Nv
cGVJdGVtUHJlZml4ICsgaW5mby5pZGVudGlmaWVyLCBpbmZvLnRpdGxlKTsKQEAgLTMwNSw3ICsz
MDUsNyBAQCBXZWJJbnNwZWN0b3IuU3RvcmFnZVNpZGViYXJQYW5lbCA9IGNsYXNzIFN0b3JhZ2VT
aWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICBjb25zb2xlLmFzc2VydChh
Lm1haW5UaXRsZSk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGIubWFpblRpdGxlKTsKIAotICAg
ICAgICByZXR1cm4gKGEubWFpblRpdGxlIHx8ICIiKS5sb2NhbGVDb21wYXJlKGIubWFpblRpdGxl
IHx8ICIiKTsKKyAgICAgICAgcmV0dXJuIChhLm1haW5UaXRsZSB8fCAiIikuZXh0ZW5kZWRMb2Nh
bGVDb21wYXJlKGIubWFpblRpdGxlIHx8ICIiKTsKICAgICB9CiAKICAgICBfYWRkU3RvcmFnZUNo
aWxkKGNoaWxkRWxlbWVudCwgcGFyZW50RWxlbWVudCwgZm9sZGVyTmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lRGF0YUdy
aWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGlu
ZURhdGFHcmlkLmpzCmluZGV4IDMyMzQzZjlhYjM4Li4yODRhM2MwM2NmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVEYXRhR3Jp
ZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1l
bGluZURhdGFHcmlkLmpzCkBAIC0zODAsNyArMzgwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
RGF0YUdyaWQgPSBjbGFzcyBUaW1lbGluZURhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLkRh
dGEKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUxID09PSAic3RyaW5nIiAm
JiB0eXBlb2YgdmFsdWUyID09PSAic3RyaW5nIikKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZTEu
bG9jYWxlQ29tcGFyZSh2YWx1ZTIpICogc29ydERpcmVjdGlvbjsKKyAgICAgICAgICAgIHJldHVy
biB2YWx1ZTEuZXh0ZW5kZWRMb2NhbGVDb21wYXJlKHZhbHVlMikgKiBzb3J0RGlyZWN0aW9uOwog
CiAgICAgICAgIGlmICh2YWx1ZTEgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ2FsbEZyYW1lIHx8
IHZhbHVlMiBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5DYWxsRnJhbWUpIHsKICAgICAgICAgICAg
IC8vIFNvcnQgYnkgZnVuY3Rpb24gbmFtZSBpZiBhdmFpbGFibGUsIHRoZW4gZmFsbCBiYWNrIHRv
IHRoZSBzb3VyY2UgY29kZSBvYmplY3QuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>