<?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>174703</bug_id>
          
          <creation_ts>2017-07-20 20:08:16 -0700</creation_ts>
          <short_desc>Web Inspector: Avoid subclassing WebInspector.Object if we do not need to</short_desc>
          <delta_ts>2017-07-21 12:36:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1330901</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-07-20 20:08:16 -0700</bug_when>
    <thetext>Avoid subclassing WebInspector.Object if we do not need to</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330903</commentid>
    <comment_count>1</comment_count>
      <attachid>316063</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-07-20 20:10:28 -0700</bug_when>
    <thetext>Created attachment 316063
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330904</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-07-20 20:11:23 -0700</bug_when>
    <thetext>Found files with:

    $ ack --files-without-matches &apos;Event = \{&apos; | xargs ack &apos;extends WebInspector\.Object\b&apos;

Then had to add back just a couple (TestHarness and HeapSnapshotWorkerProxy).

I didn&apos;t modify any Views / Controllers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331038</commentid>
    <comment_count>3</comment_count>
      <attachid>316063</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-21 11:29:35 -0700</bug_when>
    <thetext>Comment on attachment 316063
[PATCH] Proposed Fix

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

Is there any particular motivation for this? Code cleanup, correctness, performance?

&gt; Source/WebInspectorUI/UserInterface/Models/ApplicationCacheFrame.js:26
&gt; +WebInspector.ApplicationCacheFrame = class ApplicationCacheFrame

I guess we don&apos;t type check anywhere that the target of saveIdentityToCookie is a subclass of object?

&gt; Source/WebInspectorUI/UserInterface/Models/DOMSearchMatchObject.js:27
&gt;  {

Sidenote: this class needs to be cleaned up. It knows a lot of style classes for being in Models/ directory.

&gt; Source/WebInspectorUI/UserInterface/Models/Probe.js:27
&gt; +WebInspector.ProbeSample = class ProbeSample

r-, this class dispatches events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331041</commentid>
    <comment_count>4</comment_count>
      <attachid>316063</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-07-21 11:46:14 -0700</bug_when>
    <thetext>Comment on attachment 316063
[PATCH] Proposed Fix

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/ApplicationCacheFrame.js:26
&gt;&gt; +WebInspector.ApplicationCacheFrame = class ApplicationCacheFrame
&gt; 
&gt; I guess we don&apos;t type check anywhere that the target of saveIdentityToCookie is a subclass of object?

Correct, all cases of code using `instanceof WebInspector.Object\b` were in Event related code:

&gt; Base/EventListenerSet.js
&gt; 49:        var emitterIsValid = emitter &amp;&amp; (emitter instanceof WebInspector.Object || emitter instanceof Node || (typeof emitter.addEventListener === &quot;function&quot;));
&gt; 
&gt; Base/EventListener.js
&gt; 44:        var emitterIsValid = emitter &amp;&amp; (emitter instanceof WebInspector.Object || emitter instanceof Node || (typeof emitter.addEventListener === &quot;function&quot;));

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Probe.js:27
&gt;&gt; +WebInspector.ProbeSample = class ProbeSample
&gt; 
&gt; r-, this class dispatches events.

Where? Probe does, but I don&apos;t see where ProbeSample does. Can you point it out to me?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331045</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-07-21 11:49:07 -0700</bug_when>
    <thetext>&gt; Is there any particular motivation for this? Code cleanup, correctness, performance?

Just cleanup and clarity.

Not having a `this._listeners = null` property/value on all of these objects might be a tiny memory improvement but probably not. It will make printing these objects slightly nicer in our console not having that property around.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331048</commentid>
    <comment_count>6</comment_count>
      <attachid>316063</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-21 12:01:17 -0700</bug_when>
    <thetext>Comment on attachment 316063
[PATCH] Proposed Fix

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

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Probe.js:27
&gt;&gt;&gt; +WebInspector.ProbeSample = class ProbeSample
&gt;&gt; 
&gt;&gt; r-, this class dispatches events.
&gt; 
&gt; Where? Probe does, but I don&apos;t see where ProbeSample does. Can you point it out to me?

Oops, didn&apos;t see the second class. I recant!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331065</commentid>
    <comment_count>7</comment_count>
      <attachid>316063</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-21 12:36:44 -0700</bug_when>
    <thetext>Comment on attachment 316063
[PATCH] Proposed Fix

Clearing flags on attachment: 316063

Committed r219734: &lt;http://trac.webkit.org/changeset/219734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331066</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-21 12:36:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316063</attachid>
            <date>2017-07-20 20:10:28 -0700</date>
            <delta_ts>2017-07-21 12:36:44 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rm-extends-object-1.patch</filename>
            <type>text/plain</type>
            <size>50577</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGQ0MjI3MDVlZmRiLi44ZWI3M2ZkZDBhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTctMDctMjAgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBBdm9pZCBzdWJjbGFzc2luZyBXZWJJbnNwZWN0b3IuT2JqZWN0IGlmIHdlIGRvIG5vdCBuZWVk
IHRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ3
MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvTW9kZWxzL0xvZ09iamVjdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5M
b2dPYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ09iamVjdC5wcm90b3R5cGUuZ2V0
IHN0YXJ0RGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIFJlbW92ZSB1bnVzZWQgc3RhcnREYXRlIHBy
b3BlcnR5IGFzIHdlbGwuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvWWllbGRhYmxl
VGFzay5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0RlYnVnL1Byb3RvY29sVHJhY2UuanM6
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQW5hbHl6ZXJNZXNzYWdlLmpzOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZS5qczoKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9BcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3QuanM6
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQmFja0ZvcndhcmRFbnRyeS5qczoKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9CcmFuY2guanM6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qczoKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9DU1NNZWRpYS5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9D
U1NTZWxlY3Rvci5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DYWxsRnJhbWUu
anM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpz
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZU5vZGUu
anM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ29sbGVjdGlvbkVudHJ5LmpzOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbGxlY3Rpb25FbnRyeVByZXZpZXcuanM6
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ29uc29sZU1lc3NhZ2UuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NU2VhcmNoTWF0Y2hPYmplY3QuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRGF0YWJhc2VPYmplY3QuanM6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Nb2RlbHMvRGF0YWJhc2VUYWJsZU9iamVjdC5qczoKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL01vZGVscy9EZWJ1Z2dlckRhc2hib2FyZC5qczoKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL01vZGVscy9EZWJ1Z2dlckRhdGEuanM6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9Nb2RlbHMvRXhlY3V0aW9uQ29udGV4dC5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01v
ZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01v
ZGVscy9HYXJiYWdlQ29sbGVjdGlvbi5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9IZWFwU25hcHNob3RSb290UGF0aC5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9JbmRleGVkRGF0YWJhc2UuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvSW5k
ZXhlZERhdGFiYXNlT2JqZWN0U3RvcmUuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2Rl
bHMvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVJbmRleC5qczoKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9JbnN0cnVtZW50LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL0tleWJvYXJkU2hvcnRjdXQuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
TGluZVdpZGdldC5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlDYXRl
Z29yeS5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlQcmVzc3VyZUV2
ZW50LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL09iamVjdFByZXZpZXcuanM6
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvYmUuanM6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9Nb2RlbHMvUHJvYmVTZXREYXRhRnJhbWUuanM6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Nb2RlbHMvUHJvZmlsZS5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9Qcm9maWxlTm9kZS5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9Qcm9maWxl
Tm9kZUNhbGwuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvcGVydHlEZXNj
cmlwdG9yLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb3BlcnR5UGF0aC5q
czoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9Qcm9wZXJ0eVByZXZpZXcuanM6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2VRdWVyeU1hdGNoLmpzOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlUXVlcnlSZXN1bHQuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2VUaW1pbmdEYXRhLmpzOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JldmlzaW9uLmpzOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvTW9kZWxzL1Njb3BlQ2hhaW5Ob2RlLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
TW9kZWxzL1NjcmlwdFN5bnRheFRyZWUuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2Rl
bHMvU291cmNlQ29kZVBvc2l0aW9uLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxz
L1NvdXJjZUNvZGVTZWFyY2hNYXRjaE9iamVjdC5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L01vZGVscy9Tb3VyY2VNYXAuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvU3Rh
Y2tUcmFjZS5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9TdHJ1Y3R1cmVEZXNj
cmlwdGlvbi5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9UZXh0TWFya2VyLmpz
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRSYW5nZS5qczoKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJhbmdlLmpzOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvTW9kZWxzL1R5cGVEZXNjcmlwdGlvbi5qczoKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9UeXBlU2V0LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
UHJvdG9jb2xUcmFjZXIuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm94aWVzL0Zvcm1h
dHRlcldvcmtlclByb3h5LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJveGllcy9IZWFw
U25hcHNob3REaWZmUHJveHkuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm94aWVzL0hl
YXBTbmFwc2hvdFdvcmtlclByb3h5LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0U3VpdGUuanM6CisKIDIwMTctMDctMTggIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRqdXN0IHdvcmRpbmcgb2YgImNsZWFyIHdoZW4g
cGFnZSB7bmF2aWdhdGVzIC0+IGxvYWRzfSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvWWllbGRhYmxlVGFzay5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvWWllbGRhYmxlVGFzay5qcwppbmRleCBlN2NlYjUx
MTk0MS4uZjYzMDZlM2Y5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvWWllbGRhYmxlVGFzay5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9CYXNlL1lpZWxkYWJsZVRhc2suanMKQEAgLTIzLDEyICsyMywxMCBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rv
ci5ZaWVsZGFibGVUYXNrID0gY2xhc3MgWWllbGRhYmxlVGFzayBleHRlbmRzIFdlYkluc3BlY3Rv
ci5PYmplY3QKK1dlYkluc3BlY3Rvci5ZaWVsZGFibGVUYXNrID0gY2xhc3MgWWllbGRhYmxlVGFz
awogewogICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlLCBpdGVtcywgb3B0aW9ucz17fSkKICAgICB7
Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAgICAgbGV0IHt3b3JrSW50ZXJ2YWwsIGlkbGVJbnRl
cnZhbH0gPSBvcHRpb25zOwogICAgICAgICBjb25zb2xlLmFzc2VydCghd29ya0ludGVydmFsIHx8
IHdvcmtJbnRlcnZhbCA+IDAsIHdvcmtJbnRlcnZhbCk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCFpZGxlSW50ZXJ2YWwgfHwgaWRsZUludGVydmFsID4gMCwgaWRsZUludGVydmFsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnL1Byb3RvY29s
VHJhY2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy9Qcm90
b2NvbFRyYWNlLmpzCmluZGV4IGEyNmE5NjVkODM1Li40MzkwZWMxZmIxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGVidWcvUHJvdG9jb2xUcmFjZS5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy9Qcm90b2Nv
bFRyYWNlLmpzCkBAIC0yMywyMiArMjMsMjIgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuUHJvdG9jb2xUcmFjZSA9IGNsYXNzIFByb3Rv
Y29sVHJhY2UgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuUHJvdG9j
b2xUcmFjZSA9IGNsYXNzIFByb3RvY29sVHJhY2UKIHsKICAgICBjb25zdHJ1Y3RvcigpCiAgICAg
ewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIHRoaXMuX2VudHJpZXMgPSBbXTsKICAgICB9
CiAKICAgICAvLyBQdWJsaWMKIAotICAgIGFkZEVudHJ5KGVudHJ5KSB7CisgICAgYWRkRW50cnko
ZW50cnkpCisgICAgewogICAgICAgICB0aGlzLl9lbnRyaWVzLnB1c2goZW50cnkpOwogICAgIH0K
IAotICAgIGdldCBzYXZlRGF0YSgpIHsKKyAgICBnZXQgc2F2ZURhdGEoKQorICAgIHsKICAgICAg
ICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CiAgICAgICAgIGxldCBZWVlZID0gbm93LmdldEZ1bGxZ
ZWFyKCk7CiAgICAgICAgIGxldCBNTSA9IG5vdy5nZXRNb250aCgpICsgMTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BbmFseXplck1lc3Nh
Z2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5hbHl6
ZXJNZXNzYWdlLmpzCmluZGV4IDQ5MGJiNzkwOWRhLi40YTc0MzM4NjMxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FuYWx5emVyTWVzc2Fn
ZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQW5h
bHl6ZXJNZXNzYWdlLmpzCkBAIC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuQW5hbHl6ZXJNZXNzYWdlID0gY2xh
c3MgQW5hbHl6ZXJNZXNzYWdlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVj
dG9yLkFuYWx5emVyTWVzc2FnZSA9IGNsYXNzIEFuYWx5emVyTWVzc2FnZQogewogICAgIGNvbnN0
cnVjdG9yKHNvdXJjZUNvZGVMb2NhdGlvbiwgdGV4dCwgcnVsZUlkZW50aWZpZXIpCiAgICAgewot
ICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNvdXJjZUNvZGVMb2Nh
dGlvbiBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlTG9jYXRpb24pOwogICAgICAg
ICBjb25zb2xlLmFzc2VydCh0eXBlb2YgdGV4dCA9PT0gInN0cmluZyIpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXBwbGljYXRpb25D
YWNoZUZyYW1lLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0FwcGxpY2F0aW9uQ2FjaGVGcmFtZS5qcwppbmRleCAwNjgyMDIyNDM0OC4uZjE2YTViMWE0ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9B
cHBsaWNhdGlvbkNhY2hlRnJhbWUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZS5qcwpAQCAtMjMsMTIgKzIzLDEw
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVj
dG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZSA9IGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVGcmFtZSBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hl
RnJhbWUgPSBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlRnJhbWUKIHsKICAgICBjb25zdHJ1Y3Rvcihm
cmFtZSwgbWFuaWZlc3QsIHN0YXR1cykKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAg
ICAgY29uc29sZS5hc3NlcnQoZnJhbWUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRnJhbWUpOwog
ICAgICAgICBjb25zb2xlLmFzc2VydChtYW5pZmVzdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5B
cHBsaWNhdGlvbkNhY2hlTWFuaWZlc3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXBwbGljYXRpb25DYWNoZU1hbmlmZXN0LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0FwcGxpY2F0aW9uQ2Fj
aGVNYW5pZmVzdC5qcwppbmRleCAwMDAyNDFkNDhkMi4uNWQwMjFkZWFlNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BcHBsaWNhdGlvbkNh
Y2hlTWFuaWZlc3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0FwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdC5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkFw
cGxpY2F0aW9uQ2FjaGVNYW5pZmVzdCA9IGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdCBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hl
TWFuaWZlc3QgPSBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3QKIHsKICAgICBjb25zdHJ1
Y3RvcihtYW5pZmVzdFVSTCkKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAgICAgdGhp
cy5fbWFuaWZlc3RVUkwgPSBtYW5pZmVzdFVSTDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9CYWNrRm9yd2FyZEVudHJ5Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0JhY2tGb3J3YXJk
RW50cnkuanMKaW5kZXggMmM1ZWMzZGFiNWYuLjk2MjFmYjNkYTIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQmFja0ZvcndhcmRFbnRyeS5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQmFja0Zv
cndhcmRFbnRyeS5qcwpAQCAtMjQsMTIgKzI0LDEwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LVdlYkluc3BlY3Rvci5CYWNrRm9yd2FyZEVudHJ5ID0gY2xhc3MgQmFja0ZvcndhcmRFbnRyeSBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5CYWNrRm9yd2FyZEVudHJ5
ID0gY2xhc3MgQmFja0ZvcndhcmRFbnRyeQogewogICAgIGNvbnN0cnVjdG9yKGNvbnRlbnRWaWV3
LCBjb29raWUpCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIHRoaXMuX2NvbnRl
bnRWaWV3ID0gY29udGVudFZpZXc7CiAKICAgICAgICAgLy8gQ29udGVudFZpZXdzIG1heSBiZSBz
aGFyZWQgYWNyb3NzIG11bHRpcGxlIENvbnRlbnRWaWV3Q29udGFpbmVycy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9CcmFuY2guanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQnJhbmNoLmpzCmluZGV4
IDgyOTc2NGJhYTcxLi4yYWJmYmY3ZWZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0JyYW5jaC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQnJhbmNoLmpzCkBAIC0yMywxMiArMjMsMTAgQEAK
ICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3Iu
QnJhbmNoID0gY2xhc3MgQnJhbmNoIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5z
cGVjdG9yLkJyYW5jaCA9IGNsYXNzIEJyYW5jaAogewogICAgIGNvbnN0cnVjdG9yKGRpc3BsYXlO
YW1lLCByZXZpc2lvbnMsIGxvY2tlZCkKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAg
ICAgY29uc29sZS5hc3NlcnQoZGlzcGxheU5hbWUpOwogCiAgICAgICAgIHRoaXMuX2Rpc3BsYXlO
YW1lID0gZGlzcGxheU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQnJlYWtwb2ludEFjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9CcmVha3BvaW50QWN0aW9uLmpzCmluZGV4IDcxMjQ5
YTQzNWE4Li5lN2VkNzdlNTMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0JyZWFrcG9pbnRBY3Rpb24uanMKQEAgLTIz
LDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LVdlYkluc3BlY3Rvci5CcmVha3BvaW50QWN0aW9uID0gY2xhc3MgQnJlYWtwb2ludEFjdGlvbiBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5CcmVha3BvaW50QWN0aW9u
ID0gY2xhc3MgQnJlYWtwb2ludEFjdGlvbgogewogICAgIGNvbnN0cnVjdG9yKGJyZWFrcG9pbnQs
IHR5cGVPckluZm8sIGRhdGEpCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGJyZWFrcG9pbnQpOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlT3JJ
bmZvKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NTU01lZGlhLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NTU01lZGlhLmpzCmluZGV4IDIxMjhlOGE2M2I0Li4zYjJjYzE5YTg4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU01lZGlh
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NN
ZWRpYS5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkNTU01lZGlhID0gY2xhc3MgQ1NTTWVkaWEgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuQ1NTTWVkaWEgPSBjbGFzcyBD
U1NNZWRpYQogewogICAgIGNvbnN0cnVjdG9yKHR5cGUsIHRleHQsIHNvdXJjZUNvZGVMb2NhdGlv
bikKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAgICAgY29uc29sZS5hc3NlcnQoIXNv
dXJjZUNvZGVMb2NhdGlvbiB8fCBzb3VyY2VDb2RlTG9jYXRpb24gaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuU291cmNlQ29kZUxvY2F0aW9uKTsKIAogICAgICAgICB0aGlzLl90eXBlID0gdHlwZSB8
fCBudWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NTU1NlbGVjdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NTU1NlbGVjdG9yLmpzCmluZGV4IDg5MmU0NDZjM2M3Li5mODJmZGIwNmI1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NT
U1NlbGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9DU1NTZWxlY3Rvci5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkNTU1NlbGVjdG9yID0gY2xh
c3MgQ1NTU2VsZWN0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3Iu
Q1NTU2VsZWN0b3IgPSBjbGFzcyBDU1NTZWxlY3RvcgogewogICAgIGNvbnN0cnVjdG9yKHRleHQs
IHNwZWNpZmljaXR5LCBkeW5hbWljKQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQogICAgICAg
ICBjb25zb2xlLmFzc2VydCh0ZXh0KTsKIAogICAgICAgICB0aGlzLl90ZXh0ID0gdGV4dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxs
RnJhbWUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2Fs
bEZyYW1lLmpzCmluZGV4IDBjM2VlYzAzNmM3Li4zNjQ0OTY2YjcyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxGcmFtZS5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbEZyYW1lLmpz
CkBAIC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi1XZWJJbnNwZWN0b3IuQ2FsbEZyYW1lID0gY2xhc3MgQ2FsbEZyYW1lIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLkNhbGxGcmFtZSA9IGNsYXNzIENhbGxG
cmFtZQogewogICAgIGNvbnN0cnVjdG9yKHRhcmdldCwgaWQsIHNvdXJjZUNvZGVMb2NhdGlvbiwg
ZnVuY3Rpb25OYW1lLCB0aGlzT2JqZWN0LCBzY29wZUNoYWluLCBuYXRpdmVDb2RlLCBwcm9ncmFt
Q29kZSwgaXNUYWlsRGVsZXRlZCkKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAgICAg
Y29uc29sZS5hc3NlcnQodGFyZ2V0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlRhcmdldCk7CiAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFzb3VyY2VDb2RlTG9jYXRpb24gfHwgc291cmNlQ29kZUxv
Y2F0aW9uIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVMb2NhdGlvbik7CiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzT2JqZWN0IHx8IHRoaXNPYmplY3QgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpz
CmluZGV4IDJmYWIwNTFjMGEzLi40YWQ4ZDMyYjYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRl
eHRUcmVlLmpzCkBAIC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlID0gY2xhc3Mg
Q2FsbGluZ0NvbnRleHRUcmVlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVj
dG9yLkNhbGxpbmdDb250ZXh0VHJlZSA9IGNsYXNzIENhbGxpbmdDb250ZXh0VHJlZQogewogICAg
IGNvbnN0cnVjdG9yKHR5cGUpCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIHRo
aXMuX3R5cGUgPSB0eXBlIHx8IFdlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWUuVHlwZS5U
b3BEb3duOwogCiAgICAgICAgIHRoaXMucmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4dFRyZWVOb2RlLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdDb250
ZXh0VHJlZU5vZGUuanMKaW5kZXggZGI4MTY1NjQxY2EuLmU4OTdlZGUyMTc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRl
eHRUcmVlTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkNhbGxp
bmdDb250ZXh0VHJlZU5vZGUgPSBjbGFzcyBDYWxsaW5nQ29udGV4dFRyZWVOb2RlIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZU5vZGUg
PSBjbGFzcyBDYWxsaW5nQ29udGV4dFRyZWVOb2RlCiB7CiAgICAgY29uc3RydWN0b3Ioc291cmNl
SUQsIGxpbmUsIGNvbHVtbiwgbmFtZSwgdXJsLCBoYXNoKQogICAgIHsKLSAgICAgICAgc3VwZXIo
KTsKLQogICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IHt9OwogICAgICAgICB0aGlzLl9zb3VyY2VJ
RCA9IHNvdXJjZUlEOwogICAgICAgICB0aGlzLl9saW5lID0gbGluZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db2xsZWN0aW9uRW50cnku
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29sbGVjdGlv
bkVudHJ5LmpzCmluZGV4IDY4MWUwYTRhN2RjLi44NDA3M2Q3NTZhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbGxlY3Rpb25FbnRyeS5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29sbGVj
dGlvbkVudHJ5LmpzCkBAIC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuQ29sbGVjdGlvbkVudHJ5ID0gY2xhc3Mg
Q29sbGVjdGlvbkVudHJ5IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9y
LkNvbGxlY3Rpb25FbnRyeSA9IGNsYXNzIENvbGxlY3Rpb25FbnRyeQogewogICAgIGNvbnN0cnVj
dG9yKGtleSwgdmFsdWUpCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHZhbHVlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk7CiAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFrZXkgfHwga2V5IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9Db2xsZWN0aW9uRW50cnlQcmV2aWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbGxlY3Rpb25FbnRyeVByZXZpZXcuanMK
aW5kZXggZDg4YWQ4MjMwNTguLjY2YjBlNjE2ZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29sbGVjdGlvbkVudHJ5UHJldmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29sbGVjdGlv
bkVudHJ5UHJldmlldy5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkNvbGxlY3Rpb25FbnRyeVByZXZp
ZXcgPSBjbGFzcyBDb2xsZWN0aW9uRW50cnlQcmV2aWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAorV2ViSW5zcGVjdG9yLkNvbGxlY3Rpb25FbnRyeVByZXZpZXcgPSBjbGFzcyBDb2xsZWN0
aW9uRW50cnlQcmV2aWV3CiB7CiAgICAgY29uc3RydWN0b3Ioa2V5UHJldmlldywgdmFsdWVQcmV2
aWV3KQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQogICAgICAgICBjb25zb2xlLmFzc2VydCh2
YWx1ZVByZXZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuT2JqZWN0UHJldmlldyk7CiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCFrZXlQcmV2aWV3IHx8IGtleVByZXZpZXcgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuT2JqZWN0UHJldmlldyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db25zb2xlTWVzc2FnZS5qcwppbmRl
eCBiODE1NGFlMDY0Ny4uZGY3YWIzNTRhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db25zb2xlTWVzc2FnZS5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMKQEAg
LTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLVdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSA9IGNsYXNzIENvbnNvbGVNZXNzYWdlIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlID0g
Y2xhc3MgQ29uc29sZU1lc3NhZ2UKIHsKICAgICBjb25zdHJ1Y3Rvcih0YXJnZXQsIHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIHR5cGUsIHVybCwgbGluZSwgY29sdW1uLCByZXBlYXRDb3VudCwgcGFy
YW1ldGVycywgY2FsbEZyYW1lcywgcmVxdWVzdCkKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0K
ICAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIHNvdXJjZSA9PT0gInN0cmluZyIpOwogICAg
ICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YgbGV2ZWwgPT09ICJzdHJpbmciKTsKICAgICAgICAg
Y29uc29sZS5hc3NlcnQodHlwZW9mIG1lc3NhZ2UgPT09ICJzdHJpbmciKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01TZWFyY2hNYXRj
aE9iamVjdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9E
T01TZWFyY2hNYXRjaE9iamVjdC5qcwppbmRleCBiZjhiOTMwOGMxOC4uMDkxNGFiMTc1NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01T
ZWFyY2hNYXRjaE9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvRE9NU2VhcmNoTWF0Y2hPYmplY3QuanMKQEAgLTIzLDEyICsyMywxMCBAQAog
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5E
T01TZWFyY2hNYXRjaE9iamVjdCA9IGNsYXNzIERPTVNlYXJjaE1hdGNoT2JqZWN0IGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLkRPTVNlYXJjaE1hdGNoT2JqZWN0ID0g
Y2xhc3MgRE9NU2VhcmNoTWF0Y2hPYmplY3QKIHsKICAgICBjb25zdHJ1Y3RvcihyZXNvdXJjZSwg
ZG9tTm9kZSwgdGl0bGUsIHNlYXJjaFRlcm0sIHRleHRSYW5nZSkKICAgICB7Ci0gICAgICAgIHN1
cGVyKCk7Ci0KICAgICAgICAgY29uc29sZS5hc3NlcnQocmVzb3VyY2UgaW5zdGFuY2VvZiBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UpOwogICAgICAgICBjb25zb2xlLmFzc2VydChkb21Ob2RlIGluc3Rh
bmNlb2YgV2ViSW5zcGVjdG9yLkRPTU5vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGF0YWJhc2VPYmplY3QuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGF0YWJhc2VPYmplY3QuanMKaW5k
ZXggOTYxZTQxYWE5YTEuLmIwNGZlMGIzNzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGF0YWJhc2VPYmplY3QuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RhdGFiYXNlT2JqZWN0LmpzCkBA
IC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi1XZWJJbnNwZWN0b3IuRGF0YWJhc2VPYmplY3QgPSBjbGFzcyBEYXRhYmFzZU9iamVjdCBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5EYXRhYmFzZU9iamVjdCA9
IGNsYXNzIERhdGFiYXNlT2JqZWN0CiB7CiAgICAgY29uc3RydWN0b3IoaWQsIGhvc3QsIG5hbWUs
IHZlcnNpb24pCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIHRoaXMuX2lkID0g
aWQ7CiAgICAgICAgIHRoaXMuX2hvc3QgPSBob3N0ID8gaG9zdCA6IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiTG9jYWwgRmlsZSIpOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9EYXRhYmFzZVRh
YmxlT2JqZWN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0RhdGFiYXNlVGFibGVPYmplY3QuanMKaW5kZXggOTg1MTNlYjc0YWEuLmM2NTI5NGUwMDIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGF0
YWJhc2VUYWJsZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvRGF0YWJhc2VUYWJsZU9iamVjdC5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkRh
dGFiYXNlVGFibGVPYmplY3QgPSBjbGFzcyBEYXRhYmFzZVRhYmxlT2JqZWN0IGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVPYmplY3QgPSBjbGFz
cyBEYXRhYmFzZVRhYmxlT2JqZWN0CiB7CiAgICAgY29uc3RydWN0b3IobmFtZSwgZGF0YWJhc2Up
CiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRhdGFi
YXNlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRhdGFiYXNlT2JqZWN0KTsKIAogICAgICAgICB0
aGlzLl9uYW1lID0gbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9EZWJ1Z2dlckRhc2hib2FyZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9EZWJ1Z2dlckRhc2hib2FyZC5qcwppbmRleCAwYzQy
NThjOTEzZS4uMjkxYjYwMTY4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9EZWJ1Z2dlckRhc2hib2FyZC5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGVidWdnZXJEYXNoYm9hcmQuanMKQEAg
LTIzLDYgKzIzLDYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci1XZWJJbnNwZWN0b3IuRGVidWdnZXJEYXNoYm9hcmQgPSBjbGFzcyBEZWJ1Z2dlckRhc2hib2Fy
ZCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5EZWJ1Z2dlckRhc2hi
b2FyZCA9IGNsYXNzIERlYnVnZ2VyRGFzaGJvYXJkCiB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RlYnVnZ2VyRGF0YS5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9EZWJ1Z2dlckRhdGEuanMK
aW5kZXggMzk0YjhlZDQ1ZDguLmYzNWMzZDkwMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRGVidWdnZXJEYXRhLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9EZWJ1Z2dlckRhdGEuanMKQEAg
LTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLVdlYkluc3BlY3Rvci5EZWJ1Z2dlckRhdGEgPSBjbGFzcyBEZWJ1Z2dlckRhdGEgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuRGVidWdnZXJEYXRhID0gY2xhc3Mg
RGVidWdnZXJEYXRhCiB7CiAgICAgY29uc3RydWN0b3IodGFyZ2V0KQogICAgIHsKLSAgICAgICAg
c3VwZXIoKTsKLQogICAgICAgICBjb25zb2xlLmFzc2VydCh0YXJnZXQgaW5zdGFuY2VvZiBXZWJJ
bnNwZWN0b3IuVGFyZ2V0KTsKIAogICAgICAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0
aW9uQ29udGV4dC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9FeGVjdXRpb25Db250ZXh0LmpzCmluZGV4IDM4M2ZjODE3M2JiLi4yZmU0MGFhODU1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1
dGlvbkNvbnRleHQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0V4ZWN1dGlvbkNvbnRleHQuanMKQEAgLTIzLDEyICsyMywxMCBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5FeGVjdXRpb25D
b250ZXh0ID0gY2xhc3MgRXhlY3V0aW9uQ29udGV4dCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKK1dlYkluc3BlY3Rvci5FeGVjdXRpb25Db250ZXh0ID0gY2xhc3MgRXhlY3V0aW9uQ29udGV4
dAogewogICAgIGNvbnN0cnVjdG9yKHRhcmdldCwgaWQsIG5hbWUsIGlzUGFnZUNvbnRleHQsIGZy
YW1lKQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQogICAgICAgICBjb25zb2xlLmFzc2VydCh0
YXJnZXQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGFyZ2V0KTsKICAgICAgICAgY29uc29sZS5h
c3NlcnQodHlwZW9mIGlkID09PSAibnVtYmVyIiB8fCBpZCA9PT0gV2ViSW5zcGVjdG9yLlJ1bnRp
bWVNYW5hZ2VyLlRvcExldmVsRXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOwogICAgICAgICBj
b25zb2xlLmFzc2VydCh0eXBlb2YgbmFtZSA9PT0gInN0cmluZyIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRM
aXN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1
dGlvbkNvbnRleHRMaXN0LmpzCmluZGV4IGUwOTRmYzc0MmYxLi5hM2RmZGViMzI3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlv
bkNvbnRleHRMaXN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkV4ZWN1
dGlvbkNvbnRleHRMaXN0ID0gY2xhc3MgRXhlY3V0aW9uQ29udGV4dExpc3QgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuRXhlY3V0aW9uQ29udGV4dExpc3QgPSBjbGFz
cyBFeGVjdXRpb25Db250ZXh0TGlzdAogewogICAgIGNvbnN0cnVjdG9yKCkKICAgICB7Ci0gICAg
ICAgIHN1cGVyKCk7Ci0KICAgICAgICAgdGhpcy5fY29udGV4dHMgPSBbXTsKICAgICAgICAgdGhp
cy5fcGFnZUV4ZWN1dGlvbkNvbnRleHQgPSBudWxsOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HYXJiYWdlQ29sbGVjdGlvbi5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HYXJiYWdlQ29s
bGVjdGlvbi5qcwppbmRleCA4NGEzZjBiMzFlNS4uNmEzN2Y5ZWMxYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HYXJiYWdlQ29sbGVjdGlv
bi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2Fy
YmFnZUNvbGxlY3Rpb24uanMKQEAgLTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5HYXJiYWdlQ29sbGVjdGlvbiA9
IGNsYXNzIEdhcmJhZ2VDb2xsZWN0aW9uIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2Vi
SW5zcGVjdG9yLkdhcmJhZ2VDb2xsZWN0aW9uID0gY2xhc3MgR2FyYmFnZUNvbGxlY3Rpb24KIHsK
ICAgICBjb25zdHJ1Y3Rvcih0eXBlLCBzdGFydFRpbWUsIGVuZFRpbWUpCiAgICAgewotICAgICAg
ICBzdXBlcigpOwotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGVuZFRpbWUgPj0gc3RhcnRUaW1l
KTsKIAogICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNob3RSb290UGF0aC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNob3RS
b290UGF0aC5qcwppbmRleCA2N2JmYThhYjMzZi4uYjcwOTBlNzUwNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNob3RSb290
UGF0aC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
SGVhcFNuYXBzaG90Um9vdFBhdGguanMKQEAgLTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RS
b290UGF0aCA9IGNsYXNzIEhlYXBTbmFwc2hvdFJvb3RQYXRoIGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk9iamVjdAorV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFJvb3RQYXRoID0gY2xhc3MgSGVhcFNu
YXBzaG90Um9vdFBhdGgKIHsKICAgICBjb25zdHJ1Y3Rvcihub2RlLCBwYXRoQ29tcG9uZW50LCBw
YXJlbnQsIGlzR2xvYmFsU2NvcGUpCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCFub2RlIHx8IG5vZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90Tm9kZVByb3h5KTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoIXBhdGhDb21wb25l
bnQgfHwgdHlwZW9mIHBhdGhDb21wb25lbnQgPT09ICJzdHJpbmciKTsKICAgICAgICAgY29uc29s
ZS5hc3NlcnQoIXBhcmVudCB8fCBwYXJlbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSGVhcFNu
YXBzaG90Um9vdFBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0luZGV4ZWREYXRhYmFzZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9JbmRleGVkRGF0YWJhc2UuanMKaW5kZXggZjhhYzFiNTRj
YWIuLjJiYWQ2MTdlNWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvSW5kZXhlZERhdGFiYXNlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9JbmRleGVkRGF0YWJhc2UuanMKQEAgLTIzLDEyICsy
MywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYklu
c3BlY3Rvci5JbmRleGVkRGF0YWJhc2UgPSBjbGFzcyBJbmRleGVkRGF0YWJhc2UgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuSW5kZXhlZERhdGFiYXNlID0gY2xhc3Mg
SW5kZXhlZERhdGFiYXNlCiB7CiAgICAgY29uc3RydWN0b3IobmFtZSwgc2VjdXJpdHlPcmlnaW4s
IHZlcnNpb24sIG9iamVjdFN0b3JlcykKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAg
ICAgdGhpcy5fbmFtZSA9IG5hbWU7CiAgICAgICAgIHRoaXMuX3NlY3VyaXR5T3JpZ2luID0gc2Vj
dXJpdHlPcmlnaW47CiAgICAgICAgIHRoaXMuX2hvc3QgPSBwYXJzZVNlY3VyaXR5T3JpZ2luKHNl
Y3VyaXR5T3JpZ2luKS5ob3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0luZGV4ZWREYXRhYmFzZU9iamVj
dFN0b3JlLmpzCmluZGV4IDkxYjQ1YjEyMjk2Li4yM2M1NmZlM2Y4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0luZGV4ZWREYXRhYmFzZU9i
amVjdFN0b3JlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZS5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLklu
ZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlID0gY2xhc3MgSW5kZXhlZERhdGFiYXNlT2JqZWN0U3Rv
cmUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuSW5kZXhlZERhdGFi
YXNlT2JqZWN0U3RvcmUgPSBjbGFzcyBJbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZQogewogICAg
IGNvbnN0cnVjdG9yKG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQsIGluZGV4ZXMpCiAgICAg
ewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwogICAgICAg
ICB0aGlzLl9rZXlQYXRoID0ga2V5UGF0aDsKICAgICAgICAgdGhpcy5fYXV0b0luY3JlbWVudCA9
IGF1dG9JbmNyZW1lbnQgfHwgZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVJbmRleC5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9JbmRleGVkRGF0
YWJhc2VPYmplY3RTdG9yZUluZGV4LmpzCmluZGV4IGJkZmE1NzJmZjg0Li5jMWZhN2NlNWEwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0lu
ZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlSW5kZXguanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlSW5kZXgu
anMKQEAgLTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLVdlYkluc3BlY3Rvci5JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUluZGV4ID0g
Y2xhc3MgSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVJbmRleCBleHRlbmRzIFdlYkluc3BlY3Rv
ci5PYmplY3QKK1dlYkluc3BlY3Rvci5JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUluZGV4ID0g
Y2xhc3MgSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVJbmRleAogewogICAgIGNvbnN0cnVjdG9y
KG5hbWUsIGtleVBhdGgsIHVuaXF1ZSwgbXVsdGlFbnRyeSkKICAgICB7Ci0gICAgICAgIHN1cGVy
KCk7Ci0KICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7CiAgICAgICAgIHRoaXMuX2tleVBhdGgg
PSBrZXlQYXRoOwogICAgICAgICB0aGlzLl91bmlxdWUgPSB1bmlxdWUgfHwgZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSW5zdHJ1
bWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9JbnN0
cnVtZW50LmpzCmluZGV4IDc2NTlhMGJkMjZmLi5mMDhlNTIzMjE5ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0luc3RydW1lbnQuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0luc3RydW1lbnQu
anMKQEAgLTIzLDcgKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi1XZWJJbnNwZWN0b3IuSW5zdHJ1bWVudCA9IGNsYXNzIEluc3RydW1lbnQgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuSW5zdHJ1bWVudCA9IGNsYXNzIElu
c3RydW1lbnQKIHsKICAgICAvLyBTdGF0aWMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0tleWJvYXJkU2hvcnRjdXQuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvS2V5Ym9hcmRTaG9ydGN1dC5qcwpp
bmRleCAwMDliMWQ2ZTUzNC4uNzM3ZTlhYTRmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9LZXlib2FyZFNob3J0Y3V0LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9LZXlib2FyZFNob3J0Y3V0
LmpzCkBAIC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi1XZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dCA9IGNsYXNzIEtleWJvYXJk
U2hvcnRjdXQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dCA9IGNsYXNzIEtleWJvYXJkU2hvcnRjdXQKIHsKICAgICBjb25zdHJ1Y3Rvciht
b2RpZmllcnMsIGtleSwgY2FsbGJhY2ssIHRhcmdldEVsZW1lbnQpCiAgICAgewotICAgICAgICBz
dXBlcigpOwotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGtleSk7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCFjYWxsYmFjayB8fCB0eXBlb2YgY2FsbGJhY2sgPT09ICJmdW5jdGlvbiIpOwogICAg
ICAgICBjb25zb2xlLmFzc2VydCghdGFyZ2V0RWxlbWVudCB8fCB0YXJnZXRFbGVtZW50IGluc3Rh
bmNlb2YgRWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvTGluZVdpZGdldC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9MaW5lV2lkZ2V0LmpzCmluZGV4IDA2ZmZhMWI2NGZkLi5lZWMyMmE1
OWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0xpbmVXaWRnZXQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0xpbmVXaWRnZXQuanMKQEAgLTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5MaW5lV2lkZ2V0ID0g
Y2xhc3MgTGluZVdpZGdldCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rv
ci5MaW5lV2lkZ2V0ID0gY2xhc3MgTGluZVdpZGdldAogewogICAgIGNvbnN0cnVjdG9yKGNvZGVN
aXJyb3JMaW5lV2lkZ2V0LCB3aWRnZXRFbGVtZW50KQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsK
LQogICAgICAgICBjb25zb2xlLmFzc2VydCh3aWRnZXRFbGVtZW50IGluc3RhbmNlb2YgRWxlbWVu
dCk7CiAKICAgICAgICAgdGhpcy5fY29kZU1pcnJvckxpbmVXaWRnZXQgPSBjb2RlTWlycm9yTGlu
ZVdpZGdldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9Mb2dPYmplY3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvTG9nT2JqZWN0LmpzCmluZGV4IGI5NTUxMjI2YmNlLi5hMWM3NzU5Y2RiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0xvZ09i
amVjdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
TG9nT2JqZWN0LmpzCkBAIC0yMywxOSArMjMsNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5Mb2dPYmplY3QgPSBjbGFzcyBMb2dPYmpl
Y3QgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuTG9nT2JqZWN0ID0g
Y2xhc3MgTG9nT2JqZWN0CiB7Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3Vw
ZXIoKTsKLQotICAgICAgICB0aGlzLl9zdGFydERhdGUgPSBuZXcgRGF0ZTsKLSAgICB9Ci0KLSAg
ICAvLyBQdWJsaWMKLQotICAgIGdldCBzdGFydERhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX3N0YXJ0RGF0ZTsKLSAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeUNhdGVnb3J5LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeUNhdGVnb3J5LmpzCmluZGV4
IDc2Y2JiYTcxNzdmLi5jMmRhOTU0MDVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeUNhdGVnb3J5LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlDYXRlZ29yeS5qcwpAQCAt
MjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotV2ViSW5zcGVjdG9yLk1lbW9yeUNhdGVnb3J5ID0gY2xhc3MgTWVtb3J5Q2F0ZWdvcnkgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuTWVtb3J5Q2F0ZWdvcnkgPSBj
bGFzcyBNZW1vcnlDYXRlZ29yeQogewogICAgIGNvbnN0cnVjdG9yKHR5cGUsIHNpemUpCiAgICAg
ewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiB0eXBl
ID09PSAic3RyaW5nIik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiBzaXplID09PSAi
bnVtYmVyIik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNpemUgPj0gMCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVtb3J5UHJlc3N1
cmVFdmVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9N
ZW1vcnlQcmVzc3VyZUV2ZW50LmpzCmluZGV4IDMzYWViOGRhYzEwLi4xNjc3ZDlmMDkzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9y
eVByZXNzdXJlRXZlbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL01lbW9yeVByZXNzdXJlRXZlbnQuanMKQEAgLTIzLDEyICsyMywxMCBAQAogICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5NZW1v
cnlQcmVzc3VyZUV2ZW50ID0gY2xhc3MgTWVtb3J5UHJlc3N1cmVFdmVudCBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5NZW1vcnlQcmVzc3VyZUV2ZW50ID0gY2xhc3Mg
TWVtb3J5UHJlc3N1cmVFdmVudAogewogICAgIGNvbnN0cnVjdG9yKHRpbWVzdGFtcCwgc2V2ZXJp
dHkpCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIHRoaXMuX3RpbWVzdGFtcCA9
IHRpbWVzdGFtcDsKICAgICAgICAgdGhpcy5fc2V2ZXJpdHkgPSBzZXZlcml0eTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvT2Jq
ZWN0UHJldmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9PYmplY3RQcmV2aWV3LmpzCmluZGV4IGY4ZDBkODMyOGE1Li4zOGYxMjg5YmEzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL09iamVjdFBy
ZXZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L09iamVjdFByZXZpZXcuanMKQEAgLTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5PYmplY3RQcmV2aWV3ID0gY2xh
c3MgT2JqZWN0UHJldmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rv
ci5PYmplY3RQcmV2aWV3ID0gY2xhc3MgT2JqZWN0UHJldmlldwogewogICAgIGNvbnN0cnVjdG9y
KHR5cGUsIHN1YnR5cGUsIGRlc2NyaXB0aW9uLCBsb3NzbGVzcywgb3ZlcmZsb3csIHByb3BlcnRp
ZXMsIGVudHJpZXMsIHNpemUpCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHR5cGUpOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YgbG9zc2xl
c3MgPT09ICJib29sZWFuIik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFwcm9wZXJ0aWVzIHx8
ICFwcm9wZXJ0aWVzLmxlbmd0aCB8fCBwcm9wZXJ0aWVzWzBdIGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLlByb3BlcnR5UHJldmlldyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvUHJvYmUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvUHJvYmUuanMKaW5kZXggYTZlZTM3YWY1MDYuLjZjMWNhMjFkOTUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
UHJvYmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1Byb2JlLmpzCkBAIC0yNCwxMiArMjQsMTAgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2Vi
SW5zcGVjdG9yLlByb2JlU2FtcGxlID0gY2xhc3MgUHJvYmVTYW1wbGUgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuUHJvYmVTYW1wbGUgPSBjbGFzcyBQcm9iZVNhbXBs
ZQogewogICAgIGNvbnN0cnVjdG9yKHNhbXBsZUlkLCBiYXRjaElkLCBlbGFwc2VkVGltZSwgb2Jq
ZWN0KQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQogICAgICAgICBjb25zb2xlLmFzc2VydChv
YmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0KTsKIAogICAgICAgICB0
aGlzLnNhbXBsZUlkID0gc2FtcGxlSWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvYmVTZXREYXRhRnJhbWUuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvYmVTZXREYXRhRnJhbWUuanMKaW5k
ZXggMzVjMTNmZTZhOWMuLjYzNGE3YTlkYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvYmVTZXREYXRhRnJhbWUuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2JlU2V0RGF0YUZyYW1l
LmpzCkBAIC0yNCwxMiArMjQsMTAgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVj
dG9yLlByb2JlU2V0RGF0YUZyYW1lID0gY2xhc3MgUHJvYmVTZXREYXRhRnJhbWUgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuUHJvYmVTZXREYXRhRnJhbWUgPSBjbGFz
cyBQcm9iZVNldERhdGFGcmFtZQogewogICAgIGNvbnN0cnVjdG9yKGluZGV4KQogICAgIHsKLSAg
ICAgICAgc3VwZXIoKTsKLQogICAgICAgICB0aGlzLl9jb3VudCA9IDA7CiAgICAgICAgIHRoaXMu
X2luZGV4ID0gaW5kZXg7CiAgICAgICAgIHRoaXMuX3NlcGFyYXRvciA9IGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2ZpbGUu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvZmlsZS5q
cwppbmRleCBiOTI3Yzk5MDMxYy4uYjA3ODliN2E2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Qcm9maWxlLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Qcm9maWxlLmpzCkBAIC0yMywxMiAr
MjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJ
bnNwZWN0b3IuUHJvZmlsZSA9IGNsYXNzIFByb2ZpbGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2Jq
ZWN0CitXZWJJbnNwZWN0b3IuUHJvZmlsZSA9IGNsYXNzIFByb2ZpbGUKIHsKICAgICBjb25zdHJ1
Y3Rvcih0b3BEb3duUm9vdE5vZGVzKQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQogICAgICAg
ICB0b3BEb3duUm9vdE5vZGVzID0gdG9wRG93blJvb3ROb2RlcyB8fCBbXTsKIAogICAgICAgICBj
b25zb2xlLmFzc2VydCh0b3BEb3duUm9vdE5vZGVzIGluc3RhbmNlb2YgQXJyYXkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2ZpbGVO
b2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2Zp
bGVOb2RlLmpzCmluZGV4IGU2ZTk1MjI0NTc3Li41MDMwMTQwODY3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2ZpbGVOb2RlLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Qcm9maWxlTm9k
ZS5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlByb2ZpbGVOb2RlID0gY2xhc3MgUHJvZmlsZU5vZGUg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuUHJvZmlsZU5vZGUgPSBj
bGFzcyBQcm9maWxlTm9kZQogewogICAgIGNvbnN0cnVjdG9yKGlkLCB0eXBlLCBmdW5jdGlvbk5h
bWUsIHNvdXJjZUNvZGVMb2NhdGlvbiwgY2FsbEluZm8sIGNhbGxzLCBjaGlsZE5vZGVzKQogICAg
IHsKLSAgICAgICAgc3VwZXIoKTsKLQogICAgICAgICBjaGlsZE5vZGVzID0gY2hpbGROb2RlcyB8
fCBbXTsKIAogICAgICAgICBjb25zb2xlLmFzc2VydChpZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvZmlsZU5vZGVDYWxsLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2ZpbGVOb2RlQ2Fs
bC5qcwppbmRleCA3Zjc0YzY1OTgxYi4uOWQ4Y2U4MGI4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Qcm9maWxlTm9kZUNhbGwuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb2ZpbGVOb2Rl
Q2FsbC5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlByb2ZpbGVOb2RlQ2FsbCA9IGNsYXNzIFByb2Zp
bGVOb2RlQ2FsbCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5Qcm9m
aWxlTm9kZUNhbGwgPSBjbGFzcyBQcm9maWxlTm9kZUNhbGwKIHsKICAgICBjb25zdHJ1Y3Rvcihz
dGFydFRpbWUsIHRvdGFsVGltZSkKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAgICAg
Y29uc29sZS5hc3NlcnQoc3RhcnRUaW1lKTsKIAogICAgICAgICB0aGlzLl9zdGFydFRpbWUgPSBz
dGFydFRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvUHJvcGVydHlEZXNjcmlwdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1Byb3BlcnR5RGVzY3JpcHRvci5qcwppbmRleCAyOGRlMmQzZjJm
OC4uMzIxMDExNDAyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9Qcm9wZXJ0eURlc2NyaXB0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb3BlcnR5RGVzY3JpcHRvci5qcwpAQCAtMjMs
MTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
V2ViSW5zcGVjdG9yLlByb3BlcnR5RGVzY3JpcHRvciA9IGNsYXNzIFByb3BlcnR5RGVzY3JpcHRv
ciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5Qcm9wZXJ0eURlc2Ny
aXB0b3IgPSBjbGFzcyBQcm9wZXJ0eURlc2NyaXB0b3IKIHsKICAgICBjb25zdHJ1Y3RvcihkZXNj
cmlwdG9yLCBzeW1ib2wsIGlzT3duUHJvcGVydHksIHdhc1Rocm93biwgbmF0aXZlR2V0dGVyLCBp
c0ludGVybmFsUHJvcGVydHkpCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGRlc2NyaXB0b3IpOwogICAgICAgICBjb25zb2xlLmFzc2VydChkZXNjcmlw
dG9yLm5hbWUpOwogICAgICAgICBjb25zb2xlLmFzc2VydCghZGVzY3JpcHRvci52YWx1ZSB8fCBk
ZXNjcmlwdG9yLnZhbHVlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJv
cGVydHlQYXRoLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1Byb3BlcnR5UGF0aC5qcwppbmRleCBhMmQ5YzcyZmVmYS4uZjdhYjVmYzY2ZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Qcm9wZXJ0eVBh
dGguanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1By
b3BlcnR5UGF0aC5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlByb3BlcnR5UGF0aCA9IGNsYXNzIFBy
b3BlcnR5UGF0aCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5Qcm9w
ZXJ0eVBhdGggPSBjbGFzcyBQcm9wZXJ0eVBhdGgKIHsKICAgICBjb25zdHJ1Y3RvcihvYmplY3Qs
IHBhdGhDb21wb25lbnQsIHBhcmVudCwgaXNQcm90b3R5cGUpCiAgICAgewotICAgICAgICBzdXBl
cigpOwotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QgfHwgb2JqZWN0ID09PSBudWxsKTsKICAgICAgICAgY29uc29sZS5h
c3NlcnQoIXBhdGhDb21wb25lbnQgfHwgdHlwZW9mIHBhdGhDb21wb25lbnQgPT09ICJzdHJpbmci
KTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoIXBhcmVudCB8fCBwYXJlbnQgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuUHJvcGVydHlQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Qcm9wZXJ0eVByZXZpZXcuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvcGVydHlQcmV2aWV3LmpzCmluZGV4
IDhmZjRkZmNiNjY0Li4wMjMwNDg2MDA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Byb3BlcnR5UHJldmlldy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUHJvcGVydHlQcmV2aWV3LmpzCkBA
IC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi1XZWJJbnNwZWN0b3IuUHJvcGVydHlQcmV2aWV3ID0gY2xhc3MgUHJvcGVydHlQcmV2aWV3
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLlByb3BlcnR5UHJldmll
dyA9IGNsYXNzIFByb3BlcnR5UHJldmlldwogewogICAgIGNvbnN0cnVjdG9yKG5hbWUsIHR5cGUs
IHN1YnR5cGUsIHZhbHVlLCB2YWx1ZVByZXZpZXcsIGlzSW50ZXJuYWxQcm9wZXJ0eSkKICAgICB7
Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIG5hbWUg
PT09ICJzdHJpbmciKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZSk7CiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgPT09ICJzdHJpbmciKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJj
ZVF1ZXJ5TWF0Y2guanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvUmVzb3VyY2VRdWVyeU1hdGNoLmpzCmluZGV4IDA2Njg1MjViY2UxLi43ZWI5ZWM4ZDYzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jl
c291cmNlUXVlcnlNYXRjaC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvUmVzb3VyY2VRdWVyeU1hdGNoLmpzCkBAIC0yMywxMiArMjMsMTAgQEAKICAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuUmVz
b3VyY2VRdWVyeU1hdGNoID0gY2xhc3MgUXVlcnlNYXRjaCBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKK1dlYkluc3BlY3Rvci5SZXNvdXJjZVF1ZXJ5TWF0Y2ggPSBjbGFzcyBRdWVyeU1hdGNo
CiB7CiAgICAgY29uc3RydWN0b3IodHlwZSwgaW5kZXgsIHF1ZXJ5SW5kZXgpCiAgICAgewotICAg
ICAgICBzdXBlcigpOwotCiAgICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwogICAgICAgICB0aGlz
Ll9pbmRleCA9IGluZGV4OwogICAgICAgICB0aGlzLl9xdWVyeUluZGV4ID0gcXVlcnlJbmRleDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9S
ZXNvdXJjZVF1ZXJ5UmVzdWx0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1Jlc291cmNlUXVlcnlSZXN1bHQuanMKaW5kZXggYzJiZjA5ZDM3MzguLjMwMWQx
YjJlNjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvUmVzb3VyY2VRdWVyeVJlc3VsdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2VRdWVyeVJlc3VsdC5qcwpAQCAtMjMsMTQgKzIz
LDEyIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5z
cGVjdG9yLlJlc291cmNlUXVlcnlSZXN1bHQgPSBjbGFzcyBRdWVyeVJlc3VsdCBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5SZXNvdXJjZVF1ZXJ5UmVzdWx0ID0gY2xh
c3MgUmVzb3VyY2VRdWVyeVJlc3VsdAogewogICAgIGNvbnN0cnVjdG9yKHJlc291cmNlLCBtYXRj
aGVzLCBjb29raWUpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChtYXRjaGVzLmxlbmd0
aCwgIlF1ZXJ5IG1hdGNoZXMgbGlzdCBjYW4ndCBiZSBlbXB0eS4iKTsKIAotICAgICAgICBzdXBl
cigpOwotCiAgICAgICAgIHRoaXMuX3Jlc291cmNlID0gcmVzb3VyY2U7CiAgICAgICAgIHRoaXMu
X21hdGNoZXMgPSBtYXRjaGVzOwogICAgICAgICB0aGlzLl9jb29raWUgPSBjb29raWUgfHwgbnVs
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9SZXNvdXJjZVRpbWluZ0RhdGEuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvUmVzb3VyY2VUaW1pbmdEYXRhLmpzCmluZGV4IDdkYmYxZWY3OWFiLi4yMmEy
N2FjYTBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1Jlc291cmNlVGltaW5nRGF0YS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2VUaW1pbmdEYXRhLmpzCkBAIC0yMywxMiArMjMs
MTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUaW1pbmdEYXRhID0gY2xhc3MgUmVzb3VyY2VUaW1pbmdEYXRhIGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nRGF0YSA9
IGNsYXNzIFJlc291cmNlVGltaW5nRGF0YQogewogICAgIGNvbnN0cnVjdG9yKHJlc291cmNlLCBk
YXRhKQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQogICAgICAgICBkYXRhID0gZGF0YSB8fCB7
fTsKIAogICAgICAgICBjb25zb2xlLmFzc2VydChpc05hTihkYXRhLmRvbWFpbkxvb2t1cFN0YXJ0
KSA9PT0gaXNOYU4oZGF0YS5kb21haW5Mb29rdXBFbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXZpc2lvbi5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXZpc2lvbi5qcwppbmRleCA4M2M1
MWE3YTM3Ny4uNDQ1ODA0ZTU3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9SZXZpc2lvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmV2aXNpb24uanMKQEAgLTIzLDcgKzIzLDcgQEAKICAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuUmV2
aXNpb24gPSBjbGFzcyBSZXZpc2lvbiBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYklu
c3BlY3Rvci5SZXZpc2lvbiA9IGNsYXNzIFJldmlzaW9uCiB7CiAgICAgLy8gUHVibGljCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY29w
ZUNoYWluTm9kZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9TY29wZUNoYWluTm9kZS5qcwppbmRleCA4ZTM4MTFlODA2OS4uYjBjZDliOWZmMmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY29wZUNo
YWluTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvU2NvcGVDaGFpbk5vZGUuanMKQEAgLTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5TY29wZUNoYWluTm9kZSA9
IGNsYXNzIFNjb3BlQ2hhaW5Ob2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5z
cGVjdG9yLlNjb3BlQ2hhaW5Ob2RlID0gY2xhc3MgU2NvcGVDaGFpbk5vZGUKIHsKICAgICBjb25z
dHJ1Y3Rvcih0eXBlLCBvYmplY3RzLCBuYW1lLCBsb2NhdGlvbiwgZW1wdHkpCiAgICAgewotICAg
ICAgICBzdXBlcigpOwotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiB0eXBlID09PSAi
c3RyaW5nIik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9iamVjdHMuZXZlcnkoKHgpID0+IHgg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0KSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRTeW50YXhUcmVl
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdFN5
bnRheFRyZWUuanMKaW5kZXggYWI2OTI4NWYyNzEuLmE1ZmE1YWYyODQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0U3ludGF4VHJl
ZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2Ny
aXB0U3ludGF4VHJlZS5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlNjcmlwdFN5bnRheFRyZWUgPSBj
bGFzcyBTY3JpcHRTeW50YXhUcmVlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5z
cGVjdG9yLlNjcmlwdFN5bnRheFRyZWUgPSBjbGFzcyBTY3JpcHRTeW50YXhUcmVlCiB7CiAgICAg
Y29uc3RydWN0b3Ioc291cmNlVGV4dCwgc2NyaXB0KQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsK
LQogICAgICAgICBjb25zb2xlLmFzc2VydChzY3JpcHQgJiYgc2NyaXB0IGluc3RhbmNlb2YgV2Vi
SW5zcGVjdG9yLlNjcmlwdCwgc2NyaXB0KTsKIAogICAgICAgICB0aGlzLl9zY3JpcHQgPSBzY3Jp
cHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvU291cmNlQ29kZVBvc2l0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL1NvdXJjZUNvZGVQb3NpdGlvbi5qcwppbmRleCBhODk1NTRhYzI4OS4uNDBk
OThkMzllYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9Tb3VyY2VDb2RlUG9zaXRpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NvdXJjZUNvZGVQb3NpdGlvbi5qcwpAQCAtMjMsMTIgKzIz
LDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5z
cGVjdG9yLlNvdXJjZUNvZGVQb3NpdGlvbiA9IGNsYXNzIFNvdXJjZUNvZGVQb3NpdGlvbiBleHRl
bmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5Tb3VyY2VDb2RlUG9zaXRpb24g
PSBjbGFzcyBTb3VyY2VDb2RlUG9zaXRpb24KIHsKICAgICBjb25zdHJ1Y3RvcihsaW5lTnVtYmVy
LCBjb2x1bU51bWJlcikKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAgICAgdGhpcy5f
bGluZU51bWJlciA9IGxpbmVOdW1iZXIgfHwgMDsKICAgICAgICAgdGhpcy5fY29sdW1uTnVtYmVy
ID0gY29sdW1OdW1iZXIgfHwgMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU291cmNlQ29kZVNlYXJjaE1hdGNoT2JqZWN0Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NvdXJjZUNvZGVT
ZWFyY2hNYXRjaE9iamVjdC5qcwppbmRleCAyOWQ3Zjc1ZWNhYy4uMjM5ZjMyNmZkZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Tb3VyY2VD
b2RlU2VhcmNoTWF0Y2hPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL1NvdXJjZUNvZGVTZWFyY2hNYXRjaE9iamVjdC5qcwpAQCAtMjMsMTIg
KzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2Vi
SW5zcGVjdG9yLlNvdXJjZUNvZGVTZWFyY2hNYXRjaE9iamVjdCA9IGNsYXNzIFNvdXJjZUNvZGVT
ZWFyY2hNYXRjaE9iamVjdCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rv
ci5Tb3VyY2VDb2RlU2VhcmNoTWF0Y2hPYmplY3QgPSBjbGFzcyBTb3VyY2VDb2RlU2VhcmNoTWF0
Y2hPYmplY3QKIHsKICAgICBjb25zdHJ1Y3Rvcihzb3VyY2VDb2RlLCBsaW5lVGV4dCwgc2VhcmNo
VGVybSwgdGV4dFJhbmdlKQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQogICAgICAgICBjb25z
b2xlLmFzc2VydChzb3VyY2VDb2RlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGUp
OwogCiAgICAgICAgIHRoaXMuX3NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NvdXJjZU1hcC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Tb3VyY2VNYXAuanMK
aW5kZXggMTgyNDQyMWJjYjEuLmUzOTQ3MmJiZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU291cmNlTWFwLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Tb3VyY2VNYXAuanMKQEAgLTIzLDEy
ICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdl
Ykluc3BlY3Rvci5Tb3VyY2VNYXAgPSBjbGFzcyBTb3VyY2VNYXAgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuU291cmNlTWFwID0gY2xhc3MgU291cmNlTWFwCiB7CiAg
ICAgY29uc3RydWN0b3Ioc291cmNlTWFwcGluZ1VSTCwgcGF5bG9hZCwgb3JpZ2luYWxTb3VyY2VD
b2RlKQogICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQogICAgICAgICBpZiAoIVdlYkluc3BlY3Rv
ci5Tb3VyY2VNYXAuX2Jhc2U2NE1hcCkgewogICAgICAgICAgICAgdmFyIGJhc2U2NERpZ2l0cyA9
ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEy
MzQ1Njc4OSsvIjsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VNYXAuX2Jhc2U2NE1h
cCA9IHt9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1N0YWNrVHJhY2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvU3RhY2tUcmFjZS5qcwppbmRleCA4OWFjZmM4NzJiOC4uMGY5NWI3ZjFkNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TdGFj
a1RyYWNlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9TdGFja1RyYWNlLmpzCkBAIC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuU3RhY2tUcmFjZSA9IGNsYXNzIFN0
YWNrVHJhY2UgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuU3RhY2tU
cmFjZSA9IGNsYXNzIFN0YWNrVHJhY2UKIHsKICAgICBjb25zdHJ1Y3RvcihjYWxsRnJhbWVzLCB0
b3BDYWxsRnJhbWVJc0JvdW5kYXJ5LCB0cnVuY2F0ZWQsIHBhcmVudFN0YWNrVHJhY2UpCiAgICAg
ewotICAgICAgICBzdXBlcigpOwotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbGxGcmFtZXMg
JiYgY2FsbEZyYW1lcy5ldmVyeSgoY2FsbEZyYW1lKSA9PiBjYWxsRnJhbWUgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuQ2FsbEZyYW1lKSk7CiAKICAgICAgICAgdGhpcy5fY2FsbEZyYW1lcyA9IGNh
bGxGcmFtZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvU3RydWN0dXJlRGVzY3JpcHRpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvU3RydWN0dXJlRGVzY3JpcHRpb24uanMKaW5kZXggMDk3MjMw
ZmYxZjcuLjQwYWNhY2I3MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvU3RydWN0dXJlRGVzY3JpcHRpb24uanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1N0cnVjdHVyZURlc2NyaXB0aW9uLmpz
CkBAIC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi1XZWJJbnNwZWN0b3IuU3RydWN0dXJlRGVzY3JpcHRpb24gPSBjbGFzcyBTdHJ1Y3R1
cmVEZXNjcmlwdGlvbiBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rvci5T
dHJ1Y3R1cmVEZXNjcmlwdGlvbiA9IGNsYXNzIFN0cnVjdHVyZURlc2NyaXB0aW9uCiB7CiAgICAg
Y29uc3RydWN0b3IoZmllbGRzLCBvcHRpb25hbEZpZWxkcywgY29uc3RydWN0b3JOYW1lLCBwcm90
b3R5cGVTdHJ1Y3R1cmUsIGltcHJlY2lzZSkKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAg
ICAgICAgY29uc29sZS5hc3NlcnQoIWZpZWxkcyB8fCBmaWVsZHMuZXZlcnkoKHgpID0+IHR5cGVv
ZiB4ID09PSAic3RyaW5nIikpOwogICAgICAgICBjb25zb2xlLmFzc2VydCghb3B0aW9uYWxGaWVs
ZHMgfHwgb3B0aW9uYWxGaWVsZHMuZXZlcnkoKHgpID0+IHR5cGVvZiB4ID09PSAic3RyaW5nIikp
OwogICAgICAgICBjb25zb2xlLmFzc2VydCghY29uc3RydWN0b3JOYW1lIHx8IHR5cGVvZiBjb25z
dHJ1Y3Rvck5hbWUgPT09ICJzdHJpbmciKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UZXh0TWFya2VyLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRNYXJrZXIuanMKaW5kZXggZjc0ODBlZjU4
MDYuLmUyNzRhNThjYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvVGV4dE1hcmtlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dE1hcmtlci5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlRl
eHRNYXJrZXIgPSBjbGFzcyBUZXh0TWFya2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAor
V2ViSW5zcGVjdG9yLlRleHRNYXJrZXIgPSBjbGFzcyBUZXh0TWFya2VyCiB7CiAgICAgY29uc3Ry
dWN0b3IoY29kZU1pcnJvclRleHRNYXJrZXIsIHR5cGUpCiAgICAgewotICAgICAgICBzdXBlcigp
OwotCiAgICAgICAgIHRoaXMuX2NvZGVNaXJyb3JUZXh0TWFya2VyID0gY29kZU1pcnJvclRleHRN
YXJrZXI7CiAgICAgICAgIGNvZGVNaXJyb3JUZXh0TWFya2VyLl9fd2ViSW5zcGVjdG9yVGV4dE1h
cmtlciA9IHRoaXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9UZXh0UmFuZ2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvVGV4dFJhbmdlLmpzCmluZGV4IDY0ZmU3MjE0N2QzLi4xZWNhYjJkZDVk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1RleHRSYW5nZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvVGV4dFJhbmdlLmpzCkBAIC0yMywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuVGV4dFJhbmdlID0gY2xhc3Mg
VGV4dFJhbmdlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLlRleHRS
YW5nZSA9IGNsYXNzIFRleHRSYW5nZQogewogICAgIGNvbnN0cnVjdG9yKHN0YXJ0TGluZU9yU3Rh
cnRPZmZzZXQsIHN0YXJ0Q29sdW1uT3JFbmRPZmZzZXQsIGVuZExpbmUsIGVuZENvbHVtbikKICAg
ICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09
IDQpIHsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHN0YXJ0TGluZU9yU3RhcnRPZmZzZXQg
PD0gZW5kTGluZSk7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChzdGFydExpbmVPclN0YXJ0
T2Zmc2V0ICE9PSBlbmRMaW5lIHx8IHN0YXJ0Q29sdW1uT3JFbmRPZmZzZXQgPD0gZW5kQ29sdW1u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9UaW1lbGluZVJhbmdlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1RpbWVsaW5lUmFuZ2UuanMKaW5kZXggNjBlZjYwZjkzZDYuLmE3ZTQzYTFiMTFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGlt
ZWxpbmVSYW5nZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvVGltZWxpbmVSYW5nZS5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmFuZ2Ug
PSBjbGFzcyBUaW1lbGluZVJhbmdlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUmFuZ2UgPSBjbGFzcyBUaW1lbGluZVJhbmdlCiB7CiAgICAgY29uc3Ry
dWN0b3Ioc3RhcnRWYWx1ZSwgZW5kVmFsdWUpCiAgICAgewotICAgICAgICBzdXBlcigpOwotCiAg
ICAgICAgIHRoaXMuX3N0YXJ0VmFsdWUgPSBzdGFydFZhbHVlOwogICAgICAgICB0aGlzLl9lbmRW
YWx1ZSA9IGVuZFZhbHVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9UeXBlRGVzY3JpcHRpb24uanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVHlwZURlc2NyaXB0aW9uLmpzCmluZGV4IDYw
YTA4ZGVmNjU0Li4wN2I1ODM3MDk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1R5cGVEZXNjcmlwdGlvbi5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVHlwZURlc2NyaXB0aW9uLmpzCkBAIC0y
MywxMiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci1XZWJJbnNwZWN0b3IuVHlwZURlc2NyaXB0aW9uID0gY2xhc3MgVHlwZURlc2NyaXB0aW9uIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLlR5cGVEZXNjcmlwdGlvbiA9
IGNsYXNzIFR5cGVEZXNjcmlwdGlvbgogewogICAgIGNvbnN0cnVjdG9yKGxlYXN0Q29tbW9uQW5j
ZXN0b3IsIHR5cGVTZXQsIHN0cnVjdHVyZXMsIHZhbGlkLCB0cnVuY2F0ZWQpCiAgICAgewotICAg
ICAgICBzdXBlcigpOwotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFsZWFzdENvbW1vbkFuY2Vz
dG9yIHx8IHR5cGVvZiBsZWFzdENvbW1vbkFuY2VzdG9yID09PSAic3RyaW5nIik7CiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCF0eXBlU2V0IHx8IHR5cGVTZXQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0
b3IuVHlwZVNldCk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFzdHJ1Y3R1cmVzIHx8IHN0cnVj
dHVyZXMuZXZlcnkoKHgpID0+IHggaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU3RydWN0dXJlRGVz
Y3JpcHRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9UeXBlU2V0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1R5cGVTZXQuanMKaW5kZXggYWQ1YjQzMGM5NWQuLjYyN2ZiYzRjZmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVHlwZVNl
dC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVHlw
ZVNldC5qcwpAQCAtMjQsMTIgKzI0LDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlR5cGVTZXQgPSBjbGFzcyBUeXBlU2V0IGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLlR5cGVTZXQgPSBjbGFzcyBUeXBl
U2V0CiB7CiAgICAgY29uc3RydWN0b3IodHlwZVNldCkKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7
Ci0KICAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZVNldCk7CiAKICAgICAgICAgdmFyIGJpdFN0
cmluZyA9IDB4MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Byb3RvY29sL1Byb3RvY29sVHJhY2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvUHJvdG9jb2wvUHJvdG9jb2xUcmFjZXIuanMKaW5kZXggYzE4NmJkMjc4YWMu
LjVkNTQyYzU0M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9Qcm90b2NvbFRyYWNlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9Qcm90b2NvbFRyYWNlci5qcwpAQCAtMjMsNyArMjMs
NyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3Bl
Y3Rvci5Qcm90b2NvbFRyYWNlciA9IGNsYXNzIFByb3RvY29sVHJhY2VyIGV4dGVuZHMgV2ViSW5z
cGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLlByb3RvY29sVHJhY2VyID0gY2xhc3MgUHJvdG9j
b2xUcmFjZXIKIHsKICAgICAvLyBQdWJsaWMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJveGllcy9Gb3JtYXR0ZXJXb3JrZXJQcm94eS5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMvRm9ybWF0dGVyV29ya2Vy
UHJveHkuanMKaW5kZXggOTYxNTlmYjg3ZDUuLjcxMjljYzFlYmU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzL0Zvcm1hdHRlcldvcmtlclBy
b3h5LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMv
Rm9ybWF0dGVyV29ya2VyUHJveHkuanMKQEAgLTIzLDEyICsyMywxMCBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5Gb3JtYXR0ZXJXb3Jr
ZXJQcm94eSA9IGNsYXNzIEZvcm1hdHRlcldvcmtlclByb3h5IGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk9iamVjdAorV2ViSW5zcGVjdG9yLkZvcm1hdHRlcldvcmtlclByb3h5ID0gY2xhc3MgRm9ybWF0
dGVyV29ya2VyUHJveHkKIHsKICAgICBjb25zdHJ1Y3RvcigpCiAgICAgewotICAgICAgICBzdXBl
cigpOwotCiAgICAgICAgIHRoaXMuX2Zvcm1hdHRlcldvcmtlciA9IG5ldyBXb3JrZXIoIldvcmtl
cnMvRm9ybWF0dGVyL0Zvcm1hdHRlcldvcmtlci5qcyIpOwogICAgICAgICB0aGlzLl9mb3JtYXR0
ZXJXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRoaXMuX2hhbmRsZU1lc3NhZ2Uu
YmluZCh0aGlzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3hpZXMvSGVhcFNuYXBzaG90RGlmZlByb3h5LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJveGllcy9IZWFwU25hcHNob3REaWZmUHJveHkuanMKaW5k
ZXggNGRjNjJlZDYxMjIuLjBkNzU5MGYyNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzL0hlYXBTbmFwc2hvdERpZmZQcm94eS5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzL0hlYXBTbmFwc2hv
dERpZmZQcm94eS5qcwpAQCAtMjMsMTIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZQcm94eSA9
IGNsYXNzIEhlYXBTbmFwc2hvdERpZmZQcm94eSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QK
K1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3REaWZmUHJveHkgPSBjbGFzcyBIZWFwU25hcHNob3RE
aWZmUHJveHkKIHsKICAgICBjb25zdHJ1Y3RvcihzbmFwc2hvdERpZmZPYmplY3RJZCwgc25hcHNo
b3QxLCBzbmFwc2hvdDIsIHRvdGFsU2l6ZSwgdG90YWxPYmplY3RDb3VudCwgY2F0ZWdvcmllcykK
ICAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KICAgICAgICAgdGhpcy5fcHJveHlPYmplY3RJZCA9
IHNuYXBzaG90RGlmZk9iamVjdElkOwogCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNuYXBzaG90
MSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzL0hlYXBTbmFwc2hv
dFdvcmtlclByb3h5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJv
eGllcy9IZWFwU25hcHNob3RXb3JrZXJQcm94eS5qcwppbmRleCBjNDc5OTNjNWU2Zi4uNGZmNDUy
NWRjYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3hpZXMvSGVhcFNuYXBzaG90V29ya2VyUHJveHkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJveGllcy9IZWFwU25hcHNob3RXb3JrZXJQcm94eS5qcwpAQCAt
MjMsNiArMjMsOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
Ky8vIEV2ZW50cyBkaXNwYXRjaGVkIG9uIHRoaXMgY2xhc3M6ICJIZWFwU25hcHNob3QuQ29sbGVj
dGlvbkV2ZW50IgorCiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90V29ya2VyUHJveHkgPSBjbGFz
cyBIZWFwU25hcHNob3RXb3JrZXJQcm94eSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIHsK
ICAgICBjb25zdHJ1Y3RvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9UZXN0L1Rlc3RTdWl0ZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Rlc3QvVGVzdFN1aXRlLmpzCmluZGV4IGFhY2QzMTNiNzNmLi4xMDdjYzM0YWFl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9U
ZXN0U3VpdGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVz
dC9UZXN0U3VpdGUuanMKQEAgLTIzLDcgKzIzLDcgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotVGVz
dFN1aXRlID0gY2xhc3MgVGVzdFN1aXRlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorVGVz
dFN1aXRlID0gY2xhc3MgVGVzdFN1aXRlCiB7CiAgICAgY29uc3RydWN0b3IoaGFybmVzcywgbmFt
ZSkgewogICAgICAgICBpZiAoIShoYXJuZXNzIGluc3RhbmNlb2YgVGVzdEhhcm5lc3MpKQpAQCAt
MzIsOCArMzIsNiBAQCBUZXN0U3VpdGUgPSBjbGFzcyBUZXN0U3VpdGUgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gInN0cmluZyIgfHwgIW5h
bWUudHJpbSgpLmxlbmd0aCkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVHJpZWQgdG8g
Y3JlYXRlIFRlc3RTdWl0ZSB3aXRob3V0IHN0cmluZyBzdWl0ZSBuYW1lLiIpOwogCi0gICAgICAg
IHN1cGVyKCk7Ci0KICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICAgdGhpcy5faGFy
bmVzcyA9IGhhcm5lc3M7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>