<?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>73078</bug_id>
          
          <creation_ts>2011-11-24 06:44:00 -0800</creation_ts>
          <short_desc>Web Inspector: refactor resource tree model and introduce explicit class for ResourceTreeFrame.</short_desc>
          <delta_ts>2011-11-25 01:23:46 -0800</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 (Deprecated)</component>
          <version>528+ (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>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>508752</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-24 06:44:00 -0800</bug_when>
    <thetext>Otherwise we are managing frames and their resources using too many maps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508753</commentid>
    <comment_count>1</comment_count>
      <attachid>116504</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-24 06:46:40 -0800</bug_when>
    <thetext>Created attachment 116504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508790</commentid>
    <comment_count>2</comment_count>
      <attachid>116504</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2011-11-24 08:06:56 -0800</bug_when>
    <thetext>Comment on attachment 116504
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:680
&gt; +                    { &quot;name&quot;: &quot;frameId&quot;, &quot;$ref&quot;: &quot;FrameId&quot;, &quot;description&quot;: &quot;Frame identifier.&quot;, &quot;hidden&quot;: true },
&gt; +                    { &quot;name&quot;: &quot;loaderId&quot;, &quot;$ref&quot;: &quot;LoaderId&quot;, &quot;description&quot;: &quot;Loader identifier.&quot; },

These should be added to the end as optional right? Since this is a change from Inspector-0.1.json. Also why is frameId always hidden?

&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:59
&gt; +        var frame = /** @type {WebInspector.ResourceTreeFrame} */ event.data;

These type comments are getting intrusive…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508795</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-24 08:17:16 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 116504 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=116504&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/Inspector.json:680
&gt; &gt; +                    { &quot;name&quot;: &quot;frameId&quot;, &quot;$ref&quot;: &quot;FrameId&quot;, &quot;description&quot;: &quot;Frame identifier.&quot;, &quot;hidden&quot;: true },
&gt; &gt; +                    { &quot;name&quot;: &quot;loaderId&quot;, &quot;$ref&quot;: &quot;LoaderId&quot;, &quot;description&quot;: &quot;Loader identifier.&quot; },
&gt; 
&gt; These should be added to the end as optional right? Since this is a change from Inspector-0.1.json. Also why is frameId always hidden?

We can add any parameters into the _events_ and remove optional parameters from them. We can&apos;t add non-optional parameters to the _commands_ only.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:59
&gt; &gt; +        var frame = /** @type {WebInspector.ResourceTreeFrame} */ event.data;
&gt; 
&gt; These type comments are getting intrusive…

I know. We are experimenting with this type of cast. It is not clear how much we need to annotate to get a strict type checking. But as is, compilation already catches a handful of bugs for me every day.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508797</commentid>
    <comment_count>4</comment_count>
      <attachid>116504</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2011-11-24 08:20:16 -0800</bug_when>
    <thetext>Comment on attachment 116504
Patch

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

&gt;&gt;&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:59
&gt;&gt;&gt; +        var frame = /** @type {WebInspector.ResourceTreeFrame} */ event.data;
&gt;&gt; 
&gt;&gt; These type comments are getting intrusive…
&gt; 
&gt; I know. We are experimenting with this type of cast. It is not clear how much we need to annotate to get a strict type checking. But as is, compilation already catches a handful of bugs for me every day.

I&apos;m confused. Why does order not matter for events when other clients might be using this and break after this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508798</commentid>
    <comment_count>5</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2011-11-24 08:21:04 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 116504 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=116504&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:59
&gt; &gt;&gt;&gt; +        var frame = /** @type {WebInspector.ResourceTreeFrame} */ event.data;
&gt; &gt;&gt; 
&gt; &gt;&gt; These type comments are getting intrusive…
&gt; &gt; 
&gt; &gt; I know. We are experimenting with this type of cast. It is not clear how much we need to annotate to get a strict type checking. But as is, compilation already catches a handful of bugs for me every day.
&gt; 
&gt; I&apos;m confused. Why does order not matter for events when other clients might be using this and break after this change?

Sigh, that is not the comment I replied to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508822</commentid>
    <comment_count>6</comment_count>
      <attachid>116504</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-24 09:50:21 -0800</bug_when>
    <thetext>Comment on attachment 116504
Patch

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

&gt; Source/WebCore/inspector/front-end/ResourceTreeModel.js:108
&gt; +                this._frameDetached(this.mainFrame.id);

Please move this to _frameNavigated.

&gt; Source/WebCore/inspector/front-end/ResourceTreeModel.js:117
&gt; +    _frameNavigated: function(framePayload)

You should remove all child frames here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508848</commentid>
    <comment_count>7</comment_count>
      <attachid>116524</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-24 11:36:49 -0800</bug_when>
    <thetext>Created attachment 116524
[Patch] First pass of review comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509019</commentid>
    <comment_count>8</comment_count>
      <attachid>116524</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-25 00:38:38 -0800</bug_when>
    <thetext>Comment on attachment 116524
[Patch] First pass of review comments addressed

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

&gt; Source/WebCore/inspector/front-end/ResourceTreeModel.js:154
&gt; +        if (!framePayload.parentId &amp;&amp; !WebInspector.networkLog.resources.length) {

Please comment on this logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509027</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-25 01:23:46 -0800</bug_when>
    <thetext>Committed r101154: &lt;http://trac.webkit.org/changeset/101154&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116504</attachid>
            <date>2011-11-24 06:46:40 -0800</date>
            <delta_ts>2011-11-24 11:36:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73078-20111124184637.patch</filename>
            <type>text/plain</type>
            <size>66688</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU3ZDlmMDljZjc5NTkx
NjQyNDQ1OGEwM2FiYTdlMTA0NWE2NmE1Zi4uZGEzYzg4OTg4ZThkM2JjOTgwYmM2MTgxY2JlYzUy
NDA3ZTc1ZGVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDExLTExLTI0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiByZWZhY3RvciByZXNvdXJjZSB0cmVlIG1vZGVsIGFuZCBpbnRyb2R1Y2UgZXhwbGljaXQgY2xh
c3MgZm9yIFJlc291cmNlVHJlZUZyYW1lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzgKKworICAgICAgICBPdGhlcndpc2Ugd2UgYXJlIG1hbmFn
aW5nIGZyYW1lcyBhbmQgdGhlaXIgcmVzb3VyY2VzIHVzaW5nIHRvbyBtYW55IG1hcHMuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZU1vZGVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5wcm90b3R5cGUuX2ZyYW1lTmF2aWdhdGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwucHJvdG90eXBl
Ll9mcmFtZURldGFjaGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRDb250ZXh0TWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29u
dGV4dE1hbmFnZXIucHJvdG90eXBlLl9mcmFtZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIucHJvdG90eXBlLl9mcmFtZU5hdmlnYXRlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dC5wcm90b3R5cGUuZ2V0
IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5h
Z2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlw
ZS5yZXF1ZXN0V2lsbEJlU2VudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3Bh
dGNoZXIucHJvdG90eXBlLnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5sb2FkaW5nRmluaXNoZWQpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS5fbWFpbkZyYW1lTmF2aWdhdGVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUuX2ZldGNoUmVzb3VyY2VUcmVlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUuX3Byb2Nlc3NDYWNoZWRS
ZXNvdXJjZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3Rv
dHlwZS5fYWRkRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVs
LnByb3RvdHlwZS5fZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fZnJvbnRlbmRSZXVzZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fZnJhbWVEZXRhY2hlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLl9vblJlc291cmNl
VXBkYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90
eXBlLl9vblJlc291cmNlVXBkYXRlRHJvcHBlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLmZyYW1lRm9ySWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5mb3JBbGxSZXNvdXJjZXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5yZXNvdXJjZUZvclVS
TCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLl9h
ZGRGcmFtZXNSZWN1cnNpdmVseSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwucHJvdG90eXBlLl9jcmVhdGVSZXNvdXJjZUZyb21GcmFtZVBheWxvYWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fY3JlYXRlUmVzb3Vy
Y2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUuZ2V0IGlkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lLnByb3RvdHlwZS5nZXQgdXJs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUuZ2V0
IGxvYWRlcklkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90
b3R5cGUuZ2V0IHBhcmVudEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVGcmFtZS5wcm90b3R5cGUuZ2V0IGNoaWxkRnJhbWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUuaXNNYWluRnJhbWUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lLnByb3RvdHlwZS5uYXZpZ2F0ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlLmdldCBtYWluUmVzb3Vy
Y2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lLnByb3RvdHlwZS5h
ZGRDaGlsZEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5w
cm90b3R5cGUucmVtb3ZlQ2hpbGRGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUcmVlRnJhbWUucHJvdG90eXBlLl9hZGRSZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlLnJlc291cmNlcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlLnJlc291cmNlRm9yVVJMLmZpbHRl
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlLnJl
c291cmNlRm9yVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5w
cm90b3R5cGUuX2NhbGxGb3JGcmFtZVJlc291cmNlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVs
LnByb3RvdHlwZS5faW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2Vz
UGFuZWwucHJvdG90eXBlLl9yZXNldFdpdGhGcmFtZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fcmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVSZXNvdXJjZVRyZWUucG9wdWxhdGVG
cmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLl9w
b3B1bGF0ZVJlc291cmNlVHJlZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlLl9mcmFtZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUuX2ZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fY2FjaGVkUmVzb3VyY2VzTG9hZGVk
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucHJvdG90eXBlLmZvcm1hdENvbnRl
bnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToK
KwogMjAxMS0xMS0yMyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogZ2V0IHJpZCBvZiB0aGUgV2ViSW5zcGVjdG9yLm1haW5SZXNv
dXJjZSwgdXNlIFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMIGluc3RlYWQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYjcxNmNhOGIwM2NmYWVhMDdkN2Ez
MGM0OWU3MjJhMmY1NWRjODVjZC4uMDlkNDVjZjk3Njk0NGYyNWMyMWFmYjBkOWY1ZTRkN2EzODNk
YWE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtOCw5ICs4
LDYgQEAKICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAibmFtZSI6ICJmcm9udGVuZFJldXNlZCIKLSAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZGlzY29ubmVjdEZyb21CYWNr
ZW5kIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKQEAgLTEwNCw3ICsxMDEsNyBAQAog
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWFyY2ggcmVzdWx0IGZvciByZXNvdXJj
ZS4iLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJSZXNv
dXJjZSBVUkwuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgZnJhbWUgaWQuIiB9LAor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3Jr
LkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgZnJhbWUgaWQuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm1hdGNoZXNDb3VudCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgbWF0Y2hlcyBpbiB0aGUgcmVzb3VyY2UgY29udGVu
dC4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVl
CkBAIC0yMDYsNyArMjAzLDcgQEAKICAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRSZXNvdXJj
ZUNvbnRlbnQiLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGNvbnRl
bnQgb2YgdGhlIGdpdmVuIHJlc291cmNlLiIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0
cmluZyIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBpZCB0byBnZXQgcmVzb3VyY2UgZm9yLiIgfSwK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29y
ay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIGlkIHRvIGdldCByZXNvdXJjZSBmb3Iu
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmlu
ZyIsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIHJlc291cmNlIHRvIGdldCBjb250ZW50IGZv
ci4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwpA
QCAtMjE5LDcgKzIxNiw3IEBACiAgICAgICAgICAgICAgICAgIm5hbWUiOiAic2VhcmNoSW5SZXNv
dXJjZSIsCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGVzIGZvciBnaXZl
biBzdHJpbmcgaW4gcmVzb3VyY2UgY29udGVudC4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6
ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRnJhbWUgaWQgZm9yIHJlc291cmNlIHRvIHNlYXJj
aCBpbi4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVm
IjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBpZCBmb3IgcmVzb3Vy
Y2UgdG8gc2VhcmNoIGluLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwi
LCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVVJMIG9mIHRoZSByZXNvdXJjZSB0
byBzZWFyY2ggaW4uIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInF1ZXJ5Iiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlN0cmluZyB0byBzZWFyY2ggZm9yLiIg
IH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIsICJ0eXBl
IjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwg
c2VhcmNoIGlzIGNhc2Ugc2Vuc2l0aXZlLiIgfSwKQEAgLTI3MCw3ICsyNjcsNyBAQAogICAgICAg
ICAgICAgICAgICJuYW1lIjogImZyYW1lRGV0YWNoZWQiLAogICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJGaXJlZCB3aGVuIGZyYW1lIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gaXRzIHBh
cmVudC4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiSWQgb2YgdGhlIGZyYW1lIHRoYXQgaGFzIGJlZW4gZGV0YWNoZWQuIiB9CisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIs
ICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgYmVlbiBkZXRhY2hlZC4i
IH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAg
ICAgICAgICAgICB9CkBAIC0zMzIsNyArMzI5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJvYmplY3RHcm91cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJTeW1ib2xpYyBncm91cCBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgdG8g
cmVsZWFzZSBtdWx0aXBsZSBvYmplY3RzLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJpbmNsdWRlQ29tbWFuZExpbmVBUEkiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkRldGVybWluZXMgd2hldGhlciBDb21tYW5kIExpbmUg
QVBJIHNob3VsZCBiZSBhdmFpbGFibGUgZHVyaW5nIHRoZSBldmFsdWF0aW9uLiIsICJoaWRkZW4i
OiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9Ob3RQYXVzZU9uRXhj
ZXB0aW9ucyIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiU3BlY2lmaWVzIHdoZXRoZXIgZXZhbHVhdGlvbiBzaG91bGQgc3RvcCBvbiBleGNlcHRp
b25zLiBPdmVycmlkZXMgc2V0UGF1c2VPbkV4Y2VwdGlvbiBzdGF0ZS4iLCAiaGlkZGVuIjogdHJ1
ZSB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIGluIHdo
aWNoIGZyYW1lIHRvIHBlcmZvcm0gZXZhbHVhdGlvbi4iLCAiaGlkZGVuIjogdHJ1ZSB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZy
YW1lSWQiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIGluIHdo
aWNoIGZyYW1lIHRvIHBlcmZvcm0gZXZhbHVhdGlvbi4iLCAiaGlkZGVuIjogdHJ1ZSB9LAogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJldHVybkJ5VmFsdWUiLCAidHlwZSI6ICJib29s
ZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIldoZXRoZXIgdGhlIHJlc3Vs
dCBpcyBleHBlY3RlZCB0byBiZSBhIEpTT04gb2JqZWN0IHRoYXQgc2hvdWxkIGJlIHNlbnQgYnkg
dmFsdWUuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6
IFsKQEAgLTQ4Nyw2ICs0ODQsMTIgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
VW5pcXVlIGxvYWRlciBpZGVudGlmaWVyLiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgImlkIjogIkZyYW1lSWQiLAorICAgICAgICAgICAgICAgICJ0eXBl
IjogInN0cmluZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBmcmFt
ZSBpZGVudGlmaWVyLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIlJlcXVlc3RJZCIs
CiAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiVW5pcXVlIHJlcXVlc3QgaWRlbnRpZmllci4iCkBAIC02NTEsNyArNjU0LDcg
QEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBwYWdlIGlzIGFi
b3V0IHRvIHNlbmQgSFRUUCByZXF1ZXN0LiIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgIiRyZWYiOiAi
UmVxdWVzdElkIiwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3QgaWRlbnRpZmllci4iIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJk
ZXNjcmlwdGlvbiI6ICJGcmFtZSBpZGVudGlmaWVyLiIsICJoaWRkZW4iOiB0cnVlIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIkZyYW1lSWQiLCAi
ZGVzY3JpcHRpb24iOiAiRnJhbWUgaWRlbnRpZmllci4iLCAiaGlkZGVuIjogdHJ1ZSB9LAogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxvYWRlcklkIiwgIiRyZWYiOiAiTG9hZGVySWQi
LCAiZGVzY3JpcHRpb24iOiAiTG9hZGVyIGlkZW50aWZpZXIuIiB9LAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImRvY3VtZW50VVJMIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlVSTCBvZiB0aGUgZG9jdW1lbnQgdGhpcyByZXF1ZXN0IGlzIGxvYWRlZCBmb3IuIiB9
LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3QiLCAiJHJlZiI6ICJSZXF1
ZXN0IiwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3QgZGF0YS4iIH0sCkBAIC02NzMsNiArNjc2LDgg
QEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBIVFRQIHJlc3Bv
bnNlIGlzIGF2YWlsYWJsZS4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIsICIkcmVmIjogIlJlcXVlc3RJ
ZCIsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0IGlkZW50aWZpZXIuIiB9LAorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJGcmFtZUlkIiwgImRlc2NyaXB0
aW9uIjogIkZyYW1lIGlkZW50aWZpZXIuIiwgImhpZGRlbiI6IHRydWUgfSwKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJsb2FkZXJJZCIsICIkcmVmIjogIkxvYWRlcklkIiwgImRlc2Ny
aXB0aW9uIjogIkxvYWRlciBpZGVudGlmaWVyLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ0aW1lc3RhbXAiLCAiJHJlZiI6ICJUaW1lc3RhbXAiLCAiZGVzY3JpcHRpb24iOiAi
VGltZXN0YW1wLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgIiRy
ZWYiOiAiUGFnZS5SZXNvdXJjZVR5cGUiLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgdHlwZS4i
IH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2UiLCAiJHJlZiI6ICJS
ZXNwb25zZSIsICJkZXNjcmlwdGlvbiI6ICJSZXNwb25zZSBkYXRhLiIgfQpAQCAtNzExLDcgKzcx
Niw3IEBACiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gSFRUUCBy
ZXF1ZXN0IGhhcyBiZWVuIHNlcnZlZCBmcm9tIG1lbW9yeSBjYWNoZS4iLAogICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVl
c3RJZCIsICIkcmVmIjogIlJlcXVlc3RJZCIsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0IGlkZW50
aWZpZXIuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRnJhbWUgaWRlbnRpZmllci4iLCAiaGlkZGVu
IjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJl
ZiI6ICJGcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIGlkZW50aWZpZXIuIiwgImhpZGRl
biI6IHRydWUgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsb2FkZXJJZCIsICIk
cmVmIjogIkxvYWRlcklkIiwgImRlc2NyaXB0aW9uIjogIkxvYWRlciBpZGVudGlmaWVyLiIgfSwK
ICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb2N1bWVudFVSTCIsICJ0eXBlIjogInN0
cmluZyIsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIGRvY3VtZW50IHRoaXMgcmVxdWVzdCBp
cyBsb2FkZWQgZm9yLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lc3Rh
bXAiLCAiJHJlZiI6ICJUaW1lc3RhbXAiLCAiZGVzY3JpcHRpb24iOiAiVGltZXN0YW1wLiIgfSwK
QEAgLTkzNyw3ICs5NDIsNyBAQAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZyYW1lIGlkZW50aWZpZXIgLSBtYW5pZmVz
dCBVUkwgcGFpci4iLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3Jp
cHRpb24iOiAiRnJhbWUgaWRlbnRpZmllci4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6
ICJGcmFtZSBpZGVudGlmaWVyLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJt
YW5pZmVzdFVSTCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNYW5pZmVzdCBV
UkwuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXR1cyIsICJ0eXBlIjog
ImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiQXBwbGljYXRpb24gY2FjaGUgc3RhdHVzLiIgfQog
ICAgICAgICAgICAgICAgIF0KQEAgLTk1OCw3ICs5NjMsNyBAQAogICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICJuYW1lIjogImdldE1hbmlmZXN0Rm9yRnJhbWUiLAogICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1l
SWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUg
ZnJhbWUgY29udGFpbmluZyBkb2N1bWVudCB3aG9zZSBtYW5pZmVzdCBpcyByZXRyaWV2ZWQuIiB9
CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdv
cmsuRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBmcmFtZSBjb250
YWluaW5nIGRvY3VtZW50IHdob3NlIG1hbmlmZXN0IGlzIHJldHJpZXZlZC4iIH0KICAgICAgICAg
ICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIm1hbmlmZXN0VVJMIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIk1hbmlmZXN0IFVSTCBmb3IgZG9jdW1lbnQgaW4gdGhlIGdpdmVuIGZyYW1lLiIgfQpA
QCAtOTY4LDcgKzk3Myw3IEBACiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUi
OiAiZ2V0QXBwbGljYXRpb25DYWNoZUZvckZyYW1lIiwKICAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgInR5cGUi
OiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIGZyYW1lIGNvbnRh
aW5pbmcgZG9jdW1lbnQgd2hvc2UgYXBwbGljYXRpb24gY2FjaGUgaXMgcmV0cmlldmVkLiIgfQor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3Jr
LkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgZnJhbWUgY29udGFp
bmluZyBkb2N1bWVudCB3aG9zZSBhcHBsaWNhdGlvbiBjYWNoZSBpcyByZXRyaWV2ZWQuIiB9CiAg
ICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJhcHBsaWNhdGlvbkNhY2hlIiwgIiRyZWYiOiAiQXBwbGlj
YXRpb25DYWNoZSIsICJkZXNjcmlwdGlvbiI6ICJSZWxldmFudCBhcHBsaWNhdGlvbiBjYWNoZSBk
YXRhIGZvciB0aGUgZG9jdW1lbnQgaW4gZ2l2ZW4gZnJhbWUuIiB9CkBAIC05ODAsNyArOTg1LDcg
QEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJhcHBsaWNhdGlvbkNh
Y2hlU3RhdHVzVXBkYXRlZCIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJk
ZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBmcmFtZSBjb250YWluaW5nIGRvY3VtZW50
IHdob3NlIGFwcGxpY2F0aW9uIGNhY2hlIHVwZGF0ZWQgc3RhdHVzLiIgfSwKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwg
ImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIGZyYW1lIGNvbnRhaW5pbmcgZG9jdW1l
bnQgd2hvc2UgYXBwbGljYXRpb24gY2FjaGUgdXBkYXRlZCBzdGF0dXMuIiB9LAogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm1hbmlmZXN0VVJMIiwgInR5cGUiOiAic3RyaW5nIiwgImRl
c2NyaXB0aW9uIjogIk1hbmlmZXN0IFVSTC4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAic3RhdHVzIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVk
IGFwcGxpY2F0aW9uIGNhY2hlIHN0YXR1cy4iIH0KICAgICAgICAgICAgICAgICBdCkBAIC0xMjcw
LDcgKzEyNzUsNyBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImhp
Z2hsaWdodEZyYW1lIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIGZyYW1lIHRvIGhpZ2hsaWdodC4iIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJh
bWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBmcmFtZSB0byBoaWdobGln
aHQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbnRlbnRDb2xvciIsICIk
cmVmIjogIlJHQkEiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGNvbnRl
bnQgYm94IGhpZ2hsaWdodCBmaWxsIGNvbG9yIChkZWZhdWx0OiB0cmFuc3BhcmVudCkuIiB9LAog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbnRlbnRPdXRsaW5lQ29sb3IiLCAiJHJl
ZiI6ICJSR0JBIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBjb250ZW50
IGJveCBoaWdobGlnaHQgb3V0bGluZSBjb2xvciAoZGVmYXVsdDogdHJhbnNwYXJlbnQpLiIgfQog
ICAgICAgICAgICAgICAgIF0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFn
ZW50LmNwcAppbmRleCAyZTkwNzA3YzZiNWQ2Njg0YmUwYjQ2NjhjNDMwNTJhM2RmYjNhNTUzLi41
MDMyYzE3MjZjNTBmMWUyNmQxZjlmYjVmNTcxZTZkN2U2YzRkMDE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBJ
bnNwZWN0b3JBZ2VudDo6aW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpCiB2b2lkIEluc3BlY3RvckFn
ZW50OjpyZXN0b3JlKCkKIHsKICAgICBpZiAobV9kaWRDb21taXRMb2FkRmlyZWQpCi0gICAgICAg
IG1fZnJvbnRlbmQtPmluc3BlY3RvcigpLT5mcm9udGVuZFJldXNlZCgpOworICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWQobV9pbnNwZWN0ZWRQYWdlLT5tYWlu
RnJhbWUoKSwgbV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50
TG9hZGVyKCkpOwogfQogCiB2b2lkIEluc3BlY3RvckFnZW50OjpkaWRDbGVhcldpbmRvd09iamVj
dEluV29ybGQoRnJhbWUqIGZyYW1lLCBET01XcmFwcGVyV29ybGQqIHdvcmxkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4
IGZiMjFlNzMzMmRkNjZmNmE2N2Y2N2NkZmU2YzUwNTMzOWQ1MGU4NjkuLjQwYTE1NjVhMzRlNjYz
MjAxMTJiNjI2MzJmMDhmMGM2ZWY3NTZmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTI1OSw3ICsyNTksNyBAQCB2
b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZQogICAgICAgICBtX3Jlc291cmNlc0RhdGEtPnJlc3BvbnNl
UmVjZWl2ZWQocmVxdWVzdElkLCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkp
LCByZXNwb25zZSk7CiAgICAgfQogICAgIG1fcmVzb3VyY2VzRGF0YS0+c2V0UmVzb3VyY2VUeXBl
KHJlcXVlc3RJZCwgdHlwZSk7Ci0gICAgbV9mcm9udGVuZC0+cmVzcG9uc2VSZWNlaXZlZChyZXF1
ZXN0SWQsIGN1cnJlbnRUaW1lKCksIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VUeXBlU3Ry
aW5nKHR5cGUpLCByZXNvdXJjZVJlc3BvbnNlKTsKKyAgICBtX2Zyb250ZW5kLT5yZXNwb25zZVJl
Y2VpdmVkKHJlcXVlc3RJZCwgbV9wYWdlQWdlbnQtPmZyYW1lSWQobG9hZGVyLT5mcmFtZSgpKSwg
bV9wYWdlQWdlbnQtPmxvYWRlcklkKGxvYWRlciksIGN1cnJlbnRUaW1lKCksIEluc3BlY3RvclBh
Z2VBZ2VudDo6cmVzb3VyY2VUeXBlU3RyaW5nKHR5cGUpLCByZXNvdXJjZVJlc3BvbnNlKTsKICAg
ICAvLyBJZiB3ZSByZXZhbGlkYXRlZCB0aGUgcmVzb3VyY2UgYW5kIGdvdCBOb3QgbW9kaWZpZWQs
IHNlbmQgY29udGVudCBsZW5ndGggZm9sbG93aW5nIGRpZFJlY2VpdmVSZXNwb25zZQogICAgIC8v
IGFzIHRoZXJlIHdpbGwgYmUgbm8gY2FsbHMgdG8gZGlkUmVjZWl2ZURhdGEgZnJvbSB0aGUgbmV0
d29yayBzdGFjay4KICAgICBpZiAoY2FjaGVkUmVzb3VyY2VTaXplICYmIHJlc3BvbnNlLmh0dHBT
dGF0dXNDb2RlKCkgPT0gMzA0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcwppbmRleCA0Yjk1YWRiNTQ2
YzVhY2Q3Zjc3MWYxMmNmNWZjYTllZTRmYmE3OGZjLi5mYWYzNWI4YzZmZmY3MGI5Y2QxOTMxNjVl
OWU4ZTYxMTJjNzE5YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcwpAQCAtNTYsMTkgKzU2LDE4
IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwuRXZlbnRUeXBlcyA9IHsKIFdl
Ykluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwucHJvdG90eXBlID0gewogICAgIF9mcmFt
ZU5hdmlnYXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBpZiAoZXZlbnQuZGF0
YVsiaXNNYWluRnJhbWUiXSkgeworICAgICAgICB2YXIgZnJhbWUgPSAvKiogQHR5cGUge1dlYklu
c3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZX0gKi8gZXZlbnQuZGF0YTsKKyAgICAgICAgaWYgKGZy
YW1lLmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgICAgIHRoaXMuX21haW5GcmFtZU5hdmlnYXRl
ZCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIGZyYW1l
ID0gLyoqIEB0eXBlIHtQYWdlQWdlbnQuRnJhbWV9ICovIGV2ZW50LmRhdGFbImZyYW1lIl07Ci0g
ICAgICAgIHZhciBmcmFtZUlkID0gZnJhbWUuaWQ7Ci0gICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVB
Z2VudC5nZXRNYW5pZmVzdEZvckZyYW1lKGZyYW1lSWQsIHRoaXMuX21hbmlmZXN0Rm9yRnJhbWVM
b2FkZWQuYmluZCh0aGlzLCBmcmFtZUlkKSk7CisgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dC5nZXRNYW5pZmVzdEZvckZyYW1lKGZyYW1lLmlkLCB0aGlzLl9tYW5pZmVzdEZvckZyYW1lTG9h
ZGVkLmJpbmQodGhpcywgZnJhbWUuaWQpKTsKICAgICB9LAogICAgIAogICAgIF9mcmFtZURldGFj
aGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRh
dGE7CisgICAgICAgIHZhciBmcmFtZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZUZyYW1lfSAqLyBldmVudC5kYXRhOwogICAgICAgICB0aGlzLl9mcmFtZU1hbmlmZXN0UmVt
b3ZlZChmcmFtZS5pZCk7CiAgICAgfSwKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMK
aW5kZXggMzdmYmNiYTdkMzhlY2ZkMTE1YmFmOWVjOGYwMzk2ODU4MDRmMDMwMi4uNzQzMWU5Zjcw
YmFlODhhOWI0MzFmNWVhMTRjODA3YTE4OWU1MmJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFn
ZXIuanMKQEAgLTQ1LDcgKzQ1LDYgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFu
YWdlci5wcm90b3R5cGUgPSB7CiAgICAgX2ZyYW1lQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKICAgICAgICAgdmFyIGZyYW1lID0gZXZlbnQuZGF0YTsKLSAgICAgICAgdmFyIHBhcmVudEZy
YW1lSWQgPSBmcmFtZS5wYXJlbnRJZDsKICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgV2ViSW5z
cGVjdG9yLkZyYW1lRXZhbHVhdGlvbkNvbnRleHQoZnJhbWUpOwogICAgICAgICB0aGlzLl9mcmFt
ZUlkVG9Db250ZXh0W2ZyYW1lLmlkXSA9IGNvbnRleHQ7CiAgICAgICAgIHRoaXMuX2NvbnNvbGVW
aWV3LmFkZENvbnRleHQoY29udGV4dCk7CkBAIC01Myw3ICs1Miw3IEBAIFdlYkluc3BlY3Rvci5K
YXZhU2NyaXB0Q29udGV4dE1hbmFnZXIucHJvdG90eXBlID0gewogCiAgICAgX2ZyYW1lTmF2aWdh
dGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRh
dGEuZnJhbWU7CisgICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRhdGE7CiAgICAgICAgIHZhciBj
b250ZXh0ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4dFtmcmFtZS5pZF07CiAgICAgICAgIGlmIChj
b250ZXh0KQogICAgICAgICAgICAgY29udGV4dC5fZnJhbWVOYXZpZ2F0ZWQoZnJhbWUpOwpAQCAt
MTA1LDcgKzEwNCw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0LnByb3Rv
dHlwZSA9CiAKICAgICBnZXQgZGlzcGxheU5hbWUoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlz
Ll9mcmFtZS5wYXJlbnRJZCkKKyAgICAgICAgaWYgKCF0aGlzLl9mcmFtZS5wYXJlbnRGcmFtZSkK
ICAgICAgICAgICAgIHJldHVybiAiPHRvcCBmcmFtZT4iOwogICAgICAgICB2YXIgbmFtZSA9IHRo
aXMuX2ZyYW1lLm5hbWUgfHwgIiI7CiAgICAgICAgIHZhciBzdWJ0aXRsZSA9IFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5kaXNwbGF5TmFtZSh0aGlzLl9mcmFtZS51cmwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggNzFm
NDZhNjYzZmRlNzNiZjgwMjg4MzJlMzJlYTk1NDliYjNlNmIyOS4uNjcxMDlkM2Y2YjZkZDYwZmE1
NTg5NDUzYzM5MDUzMjhiZjE0NTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC01MCw3ICs1MCw4IEBAIFdlYklu
c3BlY3Rvci5OZXR3b3JrTWFuYWdlciA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5OZXR3b3Jr
TWFuYWdlci5FdmVudFR5cGVzID0gewogICAgIFJlc291cmNlU3RhcnRlZDogIlJlc291cmNlU3Rh
cnRlZCIsCiAgICAgUmVzb3VyY2VVcGRhdGVkOiAiUmVzb3VyY2VVcGRhdGVkIiwKLSAgICBSZXNv
dXJjZUZpbmlzaGVkOiAiUmVzb3VyY2VGaW5pc2hlZCIKKyAgICBSZXNvdXJjZUZpbmlzaGVkOiAi
UmVzb3VyY2VGaW5pc2hlZCIsCisgICAgUmVzb3VyY2VVcGRhdGVEcm9wcGVkOiAiUmVzb3VyY2VV
cGRhdGVEcm9wcGVkIgogfQogCiBXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIucHJvdG90eXBl
ID0gewpAQCAtMTg5LDcgKzE5MCw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogbW92ZSB0aGlzIGNoZWNrIHRvIHRo
ZSBiYWNrZW5kLgogICAgICAgICAgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHRoaXMucmVzcG9uc2VSZWNlaXZlZChyZXF1ZXN0
SWQsIHRpbWUsICJPdGhlciIsIHJlZGlyZWN0UmVzcG9uc2UpOworICAgICAgICAgICAgdGhpcy5y
ZXNwb25zZVJlY2VpdmVkKHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIHRpbWUsICJPdGhl
ciIsIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICAgICAgcmVzb3VyY2UgPSB0aGlzLl9hcHBl
bmRSZWRpcmVjdChyZXF1ZXN0SWQsIHRpbWUsIHJlcXVlc3QudXJsKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICByZXNvdXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlKHJlcXVlc3RJZCwg
ZnJhbWVJZCwgbG9hZGVySWQsIHJlcXVlc3QudXJsLCBkb2N1bWVudFVSTCwgaW5pdGlhdG9yLCBz
dGFja1RyYWNlKTsKQEAgLTIxMCwxNSArMjExLDI0IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlz
cGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNlKHJlc291
cmNlKTsKICAgICB9LAogCi0gICAgcmVzcG9uc2VSZWNlaXZlZDogZnVuY3Rpb24ocmVxdWVzdElk
LCB0aW1lLCByZXNvdXJjZVR5cGUsIHJlc3BvbnNlKQorICAgIHJlc3BvbnNlUmVjZWl2ZWQ6IGZ1
bmN0aW9uKHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIHRpbWUsIHJlc291cmNlVHlwZSwg
cmVzcG9uc2UpCiAgICAgewogICAgICAgICAvLyBGSVhNRTogbW92ZSB0aGlzIGNoZWNrIHRvIHRo
ZSBiYWNrZW5kLgogICAgICAgICBpZiAodGhpcy5faXNOdWxsKHJlc3BvbnNlKSkKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9pbmZsaWdodFJlc291
cmNlc0J5SWRbcmVxdWVzdElkXTsKLSAgICAgICAgaWYgKCFyZXNvdXJjZSkKKyAgICAgICAgaWYg
KCFyZXNvdXJjZSkgeworICAgICAgICAgICAgLy8gV2UgbWlzc2VkIHRoZSByZXF1ZXN0V2lsbEJl
U2VudC4KKyAgICAgICAgICAgIHZhciBldmVudERhdGEgPSB7fTsKKyAgICAgICAgICAgIGV2ZW50
RGF0YS51cmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBldmVudERhdGEuZnJhbWVJZCA9
IGZyYW1lSWQ7CisgICAgICAgICAgICBldmVudERhdGEubG9hZGVySWQgPSBsb2FkZXJJZDsKKyAg
ICAgICAgICAgIGV2ZW50RGF0YS5yZXNvdXJjZVR5cGUgPSByZXNvdXJjZVR5cGU7CisgICAgICAg
ICAgICBldmVudERhdGEubWltZVR5cGUgPSByZXNwb25zZS5taW1lVHlwZTsKKyAgICAgICAgICAg
IHRoaXMuX21hbmFnZXIuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5OZXR3
b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlc291cmNlVXBkYXRlRHJvcHBlZCwgZXZlbnREYXRhKTsK
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIHJlc291cmNlLnJlc3Bv
bnNlUmVjZWl2ZWRUaW1lID0gdGltZTsKICAgICAgICAgcmVzb3VyY2UudHlwZSA9IFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZS5UeXBlW3Jlc291cmNlVHlwZV07CkBAIC0yNDcsNyArMjU3LDYgQEAgV2Vi
SW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHJl
c291cmNlID0gdGhpcy5faW5mbGlnaHRSZXNvdXJjZXNCeUlkW3JlcXVlc3RJZF07CiAgICAgICAg
IGlmICghcmVzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgdGhpcy5fZmlu
aXNoUmVzb3VyY2UocmVzb3VyY2UsIGZpbmlzaFRpbWUpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKaW5kZXggMDJl
MzFkNzlkODhkZTE1MzY1N2M2MjZmNWQyNDI2ODcxNzljYTdhZC4uYzNlZGVjNzRlMzZkMDRlNzQ0
NTk0NWJkNGQ0ZDFjYjM1ZTFiMjk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKQEAgLTc5OCwxMSArNzk4LDEyIEBAIFdlYklu
c3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBfbWFpbkZyYW1lTmF2
aWdhdGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBsb2FkZXJJZCA9IGV2
ZW50LmRhdGEubG9hZGVySWQ7Ci0gICAgICAgIC8vIE1haW4gZnJhbWUgY29tbWl0dGVkIGxvYWQu
CiAgICAgICAgIGlmICh0aGlzLl9wcmVzZXJ2ZUxvZ1RvZ2dsZS50b2dnbGVkKQogICAgICAgICAg
ICAgcmV0dXJuOwogCisgICAgICAgIHZhciBmcmFtZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9y
LlJlc291cmNlVHJlZUZyYW1lfSAqLyBldmVudC5kYXRhOworICAgICAgICB2YXIgbG9hZGVySWQg
PSBmcmFtZS5sb2FkZXJJZDsKKwogICAgICAgICAvLyBQcmVzZXJ2ZSBwcm92aXNpb25hbCBsb2Fk
IHJlc291cmNlcy4KICAgICAgICAgdmFyIHJlc291cmNlc1RvUHJlc2VydmUgPSBbXTsKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yZXNvdXJjZXMubGVuZ3RoOyArK2kpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVl
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJl
ZU1vZGVsLmpzCmluZGV4IDRmZWE2ZWI3Y2ZiNWY4M2JmOGJjMjg4MTM2NmIxYjVlZDhiYjFhZjQu
LmY1YTBmMTAxZTk3NmQ2NWZiOTQwYmMyN2ZjMjc4NGZjMDE1NmZjY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5q
cwpAQCAtMzUsOSArMzUsOSBAQAogICovCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwg
PSBmdW5jdGlvbihuZXR3b3JrTWFuYWdlcikKIHsKLSAgICBuZXR3b3JrTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlc291cmNl
U3RhcnRlZCwgdGhpcy5fb25SZXNvdXJjZVN0YXJ0ZWQsIHRoaXMpOwogICAgIG5ldHdvcmtNYW5h
Z2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlw
ZXMuUmVzb3VyY2VVcGRhdGVkLCB0aGlzLl9vblJlc291cmNlVXBkYXRlZCwgdGhpcyk7CiAgICAg
bmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFn
ZXIuRXZlbnRUeXBlcy5SZXNvdXJjZUZpbmlzaGVkLCB0aGlzLl9vblJlc291cmNlVXBkYXRlZCwg
dGhpcyk7CisgICAgbmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
TmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZVVwZGF0ZURyb3BwZWQsIHRoaXMuX29u
UmVzb3VyY2VVcGRhdGVEcm9wcGVkLCB0aGlzKTsKIAogICAgIFdlYkluc3BlY3Rvci5jb25zb2xl
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuTWVzc2Fn
ZUFkZGVkLCB0aGlzLl9jb25zb2xlTWVzc2FnZUFkZGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0
b3IuY29uc29sZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZl
bnRzLlJlcGVhdENvdW50VXBkYXRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcyk7
CkBAIC00NSw3ICs0NSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbCA9IGZ1bmN0
aW9uKG5ldHdvcmtNYW5hZ2VyKQogCiAgICAgUGFnZUFnZW50LmVuYWJsZSgpOwogCi0gICAgdGhp
cy5mcm9udGVuZFJldXNlZCgpOworICAgIHRoaXMuX2ZldGNoUmVzb3VyY2VUcmVlKCk7CiAgICAg
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlclBhZ2VEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3Iu
UGFnZURpc3BhdGNoZXIodGhpcykpOwogCiAgICAgdGhpcy5fcGVuZGluZ0NvbnNvbGVNZXNzYWdl
cyA9IHt9OwpAQCAtNjYsMTIgKzY2LDkgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVs
LkV2ZW50VHlwZXMgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90
b3R5cGUgPSB7Ci0gICAgZnJvbnRlbmRSZXVzZWQ6IGZ1bmN0aW9uKCkKKyAgICBfZmV0Y2hSZXNv
dXJjZVRyZWU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Jlc291cmNlc0J5VVJM
ID0ge307Ci0gICAgICAgIHRoaXMuX3Jlc291cmNlc0J5RnJhbWVJZCA9IHt9OwotICAgICAgICB0
aGlzLl9zdWJmcmFtZXMgPSB7fTsKLSAgICAgICAgdGhpcy5fZnJhbWVJZHMgPSB7fTsKKyAgICAg
ICAgdGhpcy5fZnJhbWVzID0ge307CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9jYWNoZWRSZXNvdXJj
ZXNQcm9jZXNzZWQ7CiAgICAgICAgIFBhZ2VBZ2VudC5nZXRSZXNvdXJjZVRyZWUodGhpcy5fcHJv
Y2Vzc0NhY2hlZFJlc291cmNlcy5iaW5kKHRoaXMpKTsKICAgICB9LApAQCAtODQsMTEgKzgxLDkg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
fQogCiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLldpbGxMb2FkQ2FjaGVkUmVzb3VyY2VzKTsKLSAg
ICAgICAgdGhpcy5fYWRkRnJhbWVzUmVjdXJzaXZlbHkobWFpbkZyYW1lUGF5bG9hZCk7Ci0KICAg
ICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwgPSBtYWluRnJhbWVQYXlsb2FkLmZy
YW1lLnVybDsKICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VEb21haW4gPSBXZWJJ
bnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTC5hc1BhcnNlZFVSTCgpLmhvc3Q7Ci0KKyAgICAgICAg
dGhpcy5fYWRkRnJhbWVzUmVjdXJzaXZlbHkobnVsbCwgbWFpbkZyYW1lUGF5bG9hZCk7CiAgICAg
ICAgIHRoaXMuX2Rpc3BhdGNoSW5zcGVjdGVkVVJMQ2hhbmdlZCgpOwogICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZl
bnRUeXBlcy5DYWNoZWRSZXNvdXJjZXNMb2FkZWQpOwogICAgICAgICBXZWJJbnNwZWN0b3IuUmVz
b3VyY2UucmVzdG9yZVJldmlzaW9ucygpOwpAQCAtMTAyLDgzICs5Nyw2NCBAQCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBl
cy5JbnNwZWN0ZWRVUkxDaGFuZ2VkLCBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTCk7CiAg
ICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHJl
ZUZyYW1lfSBmcmFtZQorICAgICAqLwogICAgIF9hZGRGcmFtZTogZnVuY3Rpb24oZnJhbWUpCiAg
ICAgewotICAgICAgICBmcmFtZS5wYXJlbnRJZCA9IGZyYW1lLnBhcmVudElkIHx8ICIiOwotICAg
ICAgICB0aGlzLl9mcmFtZUlkc1tmcmFtZS5pZF0gPSBmcmFtZTsKLSAgICAgICAgdmFyIHN1YmZy
YW1lcyA9IHRoaXMuX3N1YmZyYW1lc1tmcmFtZS5wYXJlbnRJZF07Ci0gICAgICAgIGlmICghc3Vi
ZnJhbWVzKSB7Ci0gICAgICAgICAgICBzdWJmcmFtZXMgPSBbXTsKLSAgICAgICAgICAgIHRoaXMu
X3N1YmZyYW1lc1tmcmFtZS5wYXJlbnRJZF0gPSBzdWJmcmFtZXM7CisgICAgICAgIHRoaXMuX2Zy
YW1lc1tmcmFtZS5pZF0gPSBmcmFtZTsKKyAgICAgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkp
IHsKKyAgICAgICAgICAgIGlmICh0aGlzLm1haW5GcmFtZSkKKyAgICAgICAgICAgICAgICB0aGlz
Ll9mcmFtZURldGFjaGVkKHRoaXMubWFpbkZyYW1lLmlkKTsKKyAgICAgICAgICAgIHRoaXMubWFp
bkZyYW1lID0gZnJhbWU7CiAgICAgICAgIH0KLQotICAgICAgICBzdWJmcmFtZXMucHVzaChmcmFt
ZSk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lQWRkZWQsIGZyYW1lKTsKICAgICB9LAog
Ci0gICAgc3ViZnJhbWVzOiBmdW5jdGlvbihwYXJlbnRGcmFtZUlkKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX3N1YmZyYW1lc1twYXJlbnRGcmFtZUlkXSB8fCBbXTsKLSAgICB9LAotCi0g
ICAgZnJhbWVGb3JJZDogZnVuY3Rpb24oZnJhbWVJZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9mcmFtZUlkc1tmcmFtZUlkXTsKLSAgICB9LAotCi0gICAgcmVzb3VyY2VzOiBmdW5jdGlv
bihmcmFtZUlkKQotICAgIHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwotICAgICAgICB2YXIg
cmVzb3VyY2VzID0gdGhpcy5fcmVzb3VyY2VzQnlGcmFtZUlkW2ZyYW1lSWRdIHx8IHt9OwotICAg
ICAgICBmb3IgKHZhciB1cmwgaW4gcmVzb3VyY2VzKQotICAgICAgICAgICAgcmVzdWx0LnB1c2go
cmVzb3VyY2VzW3VybF0pOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0sCi0KLSAgICBf
ZnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGZyYW1lLCBsb2FkZXJJZCkKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0ge1BhZ2VBZ2VudC5GcmFtZX0gZnJhbWVQYXlsb2FkCisgICAgICovCisgICAgX2Zy
YW1lTmF2aWdhdGVkOiBmdW5jdGlvbihmcmFtZVBheWxvYWQpCiAgICAgewotICAgICAgICB2YXIg
aXNNYWluRnJhbWUgPSAhZnJhbWUucGFyZW50SWQ7CisgICAgICAgIGlmICh0aGlzLl9mcm9udGVu
ZFJldXNlZChmcmFtZVBheWxvYWQpKQorICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlm
IChpc01haW5GcmFtZSkgewotICAgICAgICAgICAgdGhpcy5fY2xlYW51cEZyYW1lc0FmdGVyTmF2
aWdhdGlvbihmcmFtZSk7Ci0gICAgICAgICAgICBpZiAodGhpcy5yZXNvdXJjZUZvclVSTChmcmFt
ZS51cmwpKSB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwg
PSBmcmFtZS51cmw7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VE
b21haW4gPSBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTC5hc1BhcnNlZFVSTCgpLmhvc3Q7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICAgICAgLy8gRG8gbm90aGluZyB1bmxlc3Mg
Y2FjaGVkIHJlc291cmNlIHRyZWUgaXMgcHJvY2Vzc2VkIC0gaXQgd2lsbCBvdmVyd3JpdGUgZXZl
cnl0aGluZy4KICAgICAgICAgaWYgKCF0aGlzLl9jYWNoZWRSZXNvdXJjZXNQcm9jZXNzZWQpCiAg
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gQWRkIGZyYW1lIGluIGNhc2UgaXQgaXMg
c2VlbiBmb3IgdGhlIGZpcnN0IHRpbWUsIG90aGVyd2lzZSwgZG8gYSB3aXRoaW4tZnJhbWUgY2xl
YW51cC4KLSAgICAgICAgaWYgKCF0aGlzLl9mcmFtZUlkc1tmcmFtZS5pZF0pCisgICAgICAgIHZh
ciBmcmFtZSA9IHRoaXMuX2ZyYW1lc1tmcmFtZVBheWxvYWQuaWRdOworICAgICAgICBpZiAoZnJh
bWUpIHsKKyAgICAgICAgICAgIGZyYW1lLm5hdmlnYXRlKGZyYW1lUGF5bG9hZCk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgcGFyZW50RnJhbWUgPSB0aGlzLl9mcmFtZXNbZnJh
bWVQYXlsb2FkLnBhcmVudElkXTsKKyAgICAgICAgICAgIGZyYW1lID0gbmV3IFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVGcmFtZSh0aGlzLCBwYXJlbnRGcmFtZSwgZnJhbWVQYXlsb2FkKTsKICAg
ICAgICAgICAgIHRoaXMuX2FkZEZyYW1lKGZyYW1lKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICB0aGlzLl9jbGVhckNoaWxkRnJhbWVzQW5kUmVzb3VyY2VzKGZyYW1lLmlkLCBsb2FkZXJJ
ZCk7Ci0gICAgICAgICAgICBmcmFtZS5wYXJlbnRJZCA9IGZyYW1lLnBhcmVudElkIHx8ICIiOwot
ICAgICAgICAgICAgdGhpcy5fZnJhbWVJZHNbZnJhbWUuaWRdID0gZnJhbWU7CiAgICAgICAgIH0K
LSAgICAgICAgLy8gRGlzcGF0Y2ggZnJhbWUgbmF2aWdhdGVkIGV2ZW50IHRvIGNsaWVudHMgcHJp
b3IgdG8gZmlsbGluZyBpdCB3aXRoIHRoZSByZXNvdXJjZXMuCi0gICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5
cGVzLkZyYW1lTmF2aWdhdGVkLCB7IGZyYW1lOiBmcmFtZSwgbG9hZGVySWQ6IGxvYWRlcklkLCBp
c01haW5GcmFtZTogaXNNYWluRnJhbWUgfSk7Ci0gICAgICAgIGlmIChpc01haW5GcmFtZSkKLSAg
ICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLk1haW5GcmFtZU5hdmlnYXRlZCwgeyBmcmFtZTogZnJh
bWUsIGxvYWRlcklkOiBsb2FkZXJJZCB9KTsKKyAgICAgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1l
KCkpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMID0gZnJhbWUu
dXJsOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VEb21haW4gPSBXZWJJ
bnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTC5hc1BhcnNlZFVSTCgpLmhvc3Q7CisgICAgICAgIH0K
KworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRlZCwgZnJhbWUpOworICAgICAg
ICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLk1h
aW5GcmFtZU5hdmlnYXRlZCwgZnJhbWUpOwogCiAgICAgICAgIC8vIEZpbGwgZnJhbWUgd2l0aCBy
ZXRhaW5lZCByZXNvdXJjZXMgKHRoZSBvbmVzIGxvYWRlZCB1c2luZyBuZXcgbG9hZGVyKS4KLSAg
ICAgICAgdmFyIHJlc291cmNlc0ZvckZyYW1lID0gdGhpcy5fcmVzb3VyY2VzQnlGcmFtZUlkW2Zy
YW1lLmlkXTsKLSAgICAgICAgaWYgKHJlc291cmNlc0ZvckZyYW1lKSB7Ci0gICAgICAgICAgICBm
b3IgKHZhciB1cmwgaW4gcmVzb3VyY2VzRm9yRnJhbWUpCi0gICAgICAgICAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2
ZW50VHlwZXMuUmVzb3VyY2VBZGRlZCwgcmVzb3VyY2VzRm9yRnJhbWVbdXJsXSk7Ci0gICAgICAg
IH0KKyAgICAgICAgdmFyIHJlc291cmNlcyA9IGZyYW1lLnJlc291cmNlcygpOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlc291cmNlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2Rl
bC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHJlc291cmNlc1tpXSk7CiAKLSAgICAgICAgaWYg
KGlzTWFpbkZyYW1lKQorICAgICAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkKICAgICAgICAg
ICAgIHRoaXMuX2Rpc3BhdGNoSW5zcGVjdGVkVVJMQ2hhbmdlZCgpOwogICAgIH0sCiAKLSAgICBf
Y2xlYW51cEZyYW1lc0FmdGVyTmF2aWdhdGlvbjogZnVuY3Rpb24obmV3TWFpbkZyYW1lKQorICAg
IF9mcm9udGVuZFJldXNlZDogZnVuY3Rpb24oZnJhbWVQYXlsb2FkKQogICAgIHsKLSAgICAgICAg
aWYgKHRoaXMuX2N1cnJlbnRNYWluRnJhbWVJZCkKLSAgICAgICAgICAgIHRoaXMuX2ZyYW1lRGV0
YWNoZWQodGhpcy5fY3VycmVudE1haW5GcmFtZUlkKTsKLSAgICAgICAgdGhpcy5fY3VycmVudE1h
aW5GcmFtZUlkID0gbmV3TWFpbkZyYW1lLmlkOworICAgICAgICBpZiAoIWZyYW1lUGF5bG9hZC5w
YXJlbnRJZCAmJiAhV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVzb3VyY2VzLmxlbmd0aCkgewor
ICAgICAgICAgICAgdGhpcy5fZmV0Y2hSZXNvdXJjZVRyZWUoKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCiAgICAg
X2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGZyYW1lSWQpCkBAIC0xODcsNjcgKzE2Myw2NSBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAo
IXRoaXMuX2NhY2hlZFJlc291cmNlc1Byb2Nlc3NlZCkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICB0aGlzLl9jbGVhckNoaWxkRnJhbWVzQW5kUmVzb3VyY2VzKGZyYW1lSWQsICIiKTsK
LSAgICAgICAgdmFyIGZyYW1lID0gdGhpcy5fZnJhbWVJZHNbZnJhbWVJZF07CisgICAgICAgIHZh
ciBmcmFtZSA9IHRoaXMuX2ZyYW1lc1tmcmFtZUlkXTsKKyAgICAgICAgaWYgKCFmcmFtZSkKKyAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgICAgIHZh
ciBzaWJsaW5ncyA9IHRoaXMuX3N1YmZyYW1lc1tmcmFtZS5wYXJlbnRJZF07Ci0gICAgICAgICAg
ICBpZiAoc2libGluZ3MpCi0gICAgICAgICAgICAgICAgc2libGluZ3MucmVtb3ZlKGZyYW1lKTsK
LSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9mcmFtZUlkc1tmcmFtZUlkXTsKKyAgICAgICAgaWYg
KGZyYW1lLnBhcmVudEZyYW1lKSB7CisgICAgICAgICAgICBmcmFtZS5wYXJlbnRGcmFtZS5yZW1v
dmVDaGlsZEZyYW1lKGZyYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFJl
cG9ydCB0aGF0IHJvb3QgaXMgZGV0YWNoZWQKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZy
YW1lRGV0YWNoZWQsIGZyYW1lKTsKICAgICAgICAgfQotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVz
LkZyYW1lRGV0YWNoZWQsIGZyYW1lKTsKICAgICB9LAogCi0gICAgX29uUmVzb3VyY2VTdGFydGVk
OiBmdW5jdGlvbihldmVudCkKKyAgICBfb25SZXNvdXJjZVVwZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50
KQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9jYWNoZWRSZXNvdXJjZXNQcm9jZXNzZWQpCiAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuX2JpbmRSZXNvdXJjZVVSTChldmVudC5k
YXRhKTsKKworICAgICAgICB0aGlzLl9hZGRQZW5kaW5nQ29uc29sZU1lc3NhZ2VzVG9SZXNvdXJj
ZShldmVudC5kYXRhKTsKKworICAgICAgICB2YXIgcmVzb3VyY2UgPSBldmVudC5kYXRhOworICAg
ICAgICBpZiAocmVzb3VyY2UuZmFpbGVkIHx8IHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5UeXBlLlhIUikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIg
ZnJhbWUgPSB0aGlzLl9mcmFtZXNbcmVzb3VyY2UuZnJhbWVJZF07CisgICAgICAgIGlmIChmcmFt
ZSkKKyAgICAgICAgICAgIGZyYW1lLl9hZGRSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgfSwKIAot
ICAgIF9vblJlc291cmNlVXBkYXRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgX29uUmVzb3VyY2VV
cGRhdGVEcm9wcGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5f
Y2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IHZhciByZXNvdXJjZSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmIChyZXNvdXJjZS5mYWlsZWQp
IHsKLSAgICAgICAgICAgIHRoaXMuX3VuYmluZFJlc291cmNlVVJMKHJlc291cmNlKTsKKyAgICAg
ICAgdmFyIGZyYW1lSWQgPSBldmVudC5kYXRhLmZyYW1lSWQ7CisgICAgICAgIHZhciBmcmFtZSA9
IHRoaXMuX2ZyYW1lc1tmcmFtZUlkXTsKKyAgICAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQogCi0gICAgICAgIGlmIChyZXNvdXJjZS50eXBlID09PSBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5YSFIpIHsKLSAgICAgICAgICAgIHRoaXMuX3VuYmluZFJl
c291cmNlVVJMKHJlc291cmNlKTsKKyAgICAgICAgdmFyIHVybCA9IGV2ZW50LmRhdGEudXJsOwor
ICAgICAgICBpZiAoZnJhbWUuX3Jlc291cmNlc01hcFt1cmxdKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9CiAKLSAgICAgICAgaWYgKHJlc291cmNlLmZpbmlzaGVkKQotICAgICAgICAg
ICAgdGhpcy5fYWRkUmVzb3VyY2VUb0ZyYW1lKHJlc291cmNlKTsKKyAgICAgICAgdmFyIHJlc291
cmNlID0gdGhpcy5fY3JlYXRlUmVzb3VyY2UodXJsLCBmcmFtZS51cmwsIGZyYW1lSWQsIGV2ZW50
LmRhdGEubG9hZGVySWQpOworICAgICAgICByZXNvdXJjZS50eXBlID0gV2ViSW5zcGVjdG9yLlJl
c291cmNlLlR5cGVbZXZlbnQuZGF0YS5yZXNvdXJjZVR5cGVdOworICAgICAgICByZXNvdXJjZS5t
aW1lVHlwZSA9IGV2ZW50LmRhdGEubWltZVR5cGU7CisgICAgICAgIHJlc291cmNlLmZpbmlzaGVk
ID0gdHJ1ZTsKKyAgICAgICAgZnJhbWUuX2FkZFJlc291cmNlKHJlc291cmNlKTsKICAgICB9LAog
Ci0gICAgX2FkZFJlc291cmNlVG9GcmFtZTogZnVuY3Rpb24ocmVzb3VyY2UpCisgICAgZnJhbWVG
b3JJZDogZnVuY3Rpb24oZnJhbWVJZCkKICAgICB7Ci0gICAgICAgIHZhciBmcmFtZUlkID0gcmVz
b3VyY2UuZnJhbWVJZDsKLSAgICAgICAgdmFyIHJlc291cmNlc0ZvckZyYW1lID0gdGhpcy5fcmVz
b3VyY2VzQnlGcmFtZUlkW2ZyYW1lSWRdOwotICAgICAgICBpZiAoIXJlc291cmNlc0ZvckZyYW1l
KSB7Ci0gICAgICAgICAgICByZXNvdXJjZXNGb3JGcmFtZSA9IHt9OwotICAgICAgICAgICAgdGhp
cy5fcmVzb3VyY2VzQnlGcmFtZUlkW2ZyYW1lSWRdID0gcmVzb3VyY2VzRm9yRnJhbWU7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKHJlc291cmNlc0ZvckZyYW1lW3Jlc291cmNlLnVybF0gPT09IHJl
c291cmNlKSB7Ci0gICAgICAgICAgICAvLyBBbHJlYWR5IGluIHRoZSB0cmVlLCB3ZSBqdXN0IGdv
dCBhbiBleHRyYSB1cGRhdGUuCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAg
ICAgICByZXNvdXJjZXNGb3JGcmFtZVtyZXNvdXJjZS51cmxdID0gcmVzb3VyY2U7Ci0gICAgICAg
IHRoaXMuX2JpbmRSZXNvdXJjZVVSTChyZXNvdXJjZSk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVz
LlJlc291cmNlQWRkZWQsIHJlc291cmNlKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lc1tm
cmFtZUlkXTsKICAgICB9LAogCiAgICAgZm9yQWxsUmVzb3VyY2VzOiBmdW5jdGlvbihjYWxsYmFj
aykKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jYWxsRm9yRnJhbWVSZXNvdXJjZXMoIiIs
IGNhbGxiYWNrKTsKKyAgICAgICAgaWYgKHRoaXMubWFpbkZyYW1lKQorICAgICAgICAgICAgcmV0
dXJuIHRoaXMubWFpbkZyYW1lLl9jYWxsRm9yRnJhbWVSZXNvdXJjZXMoY2FsbGJhY2spOworICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSwKIAogICAgIF9jb25zb2xlTWVzc2FnZUFkZGVkOiBm
dW5jdGlvbihldmVudCkKQEAgLTMwNSw5MCArMjc5LDMwIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICByZXNvdXJjZUZvclVSTDogZnVuY3Rpb24o
dXJsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlc0J5VVJMW3VybF07Ci0g
ICAgfSwKLQotICAgIF9iaW5kUmVzb3VyY2VVUkw6IGZ1bmN0aW9uKHJlc291cmNlKQotICAgIHsK
LSAgICAgICAgdGhpcy5fcmVzb3VyY2VzQnlVUkxbcmVzb3VyY2UudXJsXSA9IHJlc291cmNlOwot
Ci0gICAgICAgIHRoaXMuX2FkZFBlbmRpbmdDb25zb2xlTWVzc2FnZXNUb1Jlc291cmNlKHJlc291
cmNlKTsKLSAgICB9LAotCi0gICAgX2NsZWFyQ2hpbGRGcmFtZXNBbmRSZXNvdXJjZXM6IGZ1bmN0
aW9uKGZyYW1lSWQsIGxvYWRlclRvUHJlc2VydmVJZCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Ns
ZWFyUmVzb3VyY2VzKGZyYW1lSWQsIGxvYWRlclRvUHJlc2VydmVJZCk7Ci0gICAgICAgIHZhciBz
dWJmcmFtZXMgPSB0aGlzLl9zdWJmcmFtZXNbZnJhbWVJZF07Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBzdWJmcmFtZXMgJiYgaSA8IHN1YmZyYW1lcy5sZW5ndGg7ICsrIGkpIHsKLSAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIHN1YmZyYW1lc1tpXSk7Ci0gICAgICAg
ICAgICB0aGlzLl9jbGVhckNoaWxkRnJhbWVzQW5kUmVzb3VyY2VzKHN1YmZyYW1lc1tpXS5pZCwg
bG9hZGVyVG9QcmVzZXJ2ZUlkKTsKLSAgICAgICAgfQotICAgICAgICBkZWxldGUgdGhpcy5fc3Vi
ZnJhbWVzW2ZyYW1lSWRdOworICAgICAgICByZXR1cm4gdGhpcy5tYWluRnJhbWUucmVzb3VyY2VG
b3JVUkwodXJsKTsKICAgICB9LAogCi0gICAgX2NsZWFyUmVzb3VyY2VzOiBmdW5jdGlvbihmcmFt
ZUlkLCBsb2FkZXJUb1ByZXNlcnZlSWQpCi0gICAgewotICAgICAgICB2YXIgcmVzb3VyY2VzRm9y
RnJhbWUgPSB0aGlzLl9yZXNvdXJjZXNCeUZyYW1lSWRbZnJhbWVJZF07Ci0gICAgICAgIGlmICgh
cmVzb3VyY2VzRm9yRnJhbWUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIHBy
ZXNlcnZlZFJlc291cmNlc0ZvckZyYW1lID0gW107Ci0gICAgICAgIGZvciAodmFyIHVybCBpbiBy
ZXNvdXJjZXNGb3JGcmFtZSkgewotICAgICAgICAgICAgdmFyIHJlc291cmNlID0gcmVzb3VyY2Vz
Rm9yRnJhbWVbdXJsXTsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZS5sb2FkZXJJZCA9PT0gbG9h
ZGVyVG9QcmVzZXJ2ZUlkKSB7Ci0gICAgICAgICAgICAgICAgcHJlc2VydmVkUmVzb3VyY2VzRm9y
RnJhbWVbdXJsXSA9IHJlc291cmNlOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgdGhpcy5fdW5iaW5kUmVzb3VyY2VVUkwocmVzb3VyY2UpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgZGVsZXRlIHRoaXMuX3Jlc291cmNlc0J5RnJhbWVJZFtmcmFt
ZUlkXTsKLSAgICAgICAgaWYgKHByZXNlcnZlZFJlc291cmNlc0ZvckZyYW1lLmxlbmd0aCkgewot
ICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VzQnlGcmFtZUlkW2ZyYW1lSWRdID0gcHJlc2VydmVk
UmVzb3VyY2VzRm9yRnJhbWU7Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgX2NhbGxGb3JGcmFt
ZVJlc291cmNlczogZnVuY3Rpb24oZnJhbWVJZCwgY2FsbGJhY2spCi0gICAgewotICAgICAgICB2
YXIgcmVzb3VyY2VzID0gdGhpcy5fcmVzb3VyY2VzQnlGcmFtZUlkW2ZyYW1lSWRdOwotCi0gICAg
ICAgIGZvciAodmFyIHVybCBpbiByZXNvdXJjZXMpIHsKLSAgICAgICAgICAgIGlmIChjYWxsYmFj
ayhyZXNvdXJjZXNbdXJsXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
IH0KLQotICAgICAgICB2YXIgZnJhbWVzID0gdGhpcy5fc3ViZnJhbWVzW2ZyYW1lSWRdOwotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgZnJhbWVzICYmIGkgPCBmcmFtZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgIGlmICh0aGlzLl9jYWxsRm9yRnJhbWVSZXNvdXJjZXMoZnJhbWVzW2ldLmlk
LCBjYWxsYmFjaykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICBfdW5iaW5kUmVzb3VyY2VVUkw6IGZ1
bmN0aW9uKHJlc291cmNlKQotICAgIHsKLSAgICAgICAgZGVsZXRlIHRoaXMuX3Jlc291cmNlc0J5
VVJMW3Jlc291cmNlLnVybF07Ci0gICAgfSwKLQotICAgIF9hZGRGcmFtZXNSZWN1cnNpdmVseTog
ZnVuY3Rpb24oZnJhbWVUcmVlUGF5bG9hZCkKKyAgICBfYWRkRnJhbWVzUmVjdXJzaXZlbHk6IGZ1
bmN0aW9uKHBhcmVudEZyYW1lLCBmcmFtZVRyZWVQYXlsb2FkKQogICAgIHsKICAgICAgICAgdmFy
IGZyYW1lUGF5bG9hZCA9IGZyYW1lVHJlZVBheWxvYWQuZnJhbWU7CisgICAgICAgIHZhciBmcmFt
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUodGhpcywgcGFyZW50RnJhbWUs
IGZyYW1lUGF5bG9hZCk7CiAKICAgICAgICAgLy8gQ3JlYXRlIGZyYW1lIHJlc291cmNlLgotICAg
ICAgICB2YXIgZnJhbWVSZXNvdXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlKGZyYW1lUGF5bG9h
ZCwgZnJhbWVQYXlsb2FkLnVybCk7CisgICAgICAgIHZhciBmcmFtZVJlc291cmNlID0gdGhpcy5f
Y3JlYXRlUmVzb3VyY2VGcm9tRnJhbWVQYXlsb2FkKGZyYW1lUGF5bG9hZCwgZnJhbWVQYXlsb2Fk
LnVybCk7CisgICAgICAgIGZyYW1lUmVzb3VyY2UubWltZVR5cGUgPSBmcmFtZVBheWxvYWQubWlt
ZVR5cGU7CiAgICAgICAgIGZyYW1lUmVzb3VyY2UudHlwZSA9IFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5UeXBlLkRvY3VtZW50OwogICAgICAgICBmcmFtZVJlc291cmNlLmZpbmlzaGVkID0gdHJ1ZTsK
IAotICAgICAgICBpZiAoIWZyYW1lUGF5bG9hZC5wYXJlbnRJZCkgeworICAgICAgICBpZiAoZnJh
bWUuaXNNYWluRnJhbWUoKSkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBh
Z2VVUkwgPSBmcmFtZVJlc291cmNlLnVybDsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5pbnNw
ZWN0ZWRQYWdlRG9tYWluID0gV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwuYXNQYXJzZWRV
UkwoKS5ob3N0OwotICAgICAgICAgICAgdGhpcy5fY3VycmVudE1haW5GcmFtZUlkID0gZnJhbWVQ
YXlsb2FkLmlkOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2FkZEZyYW1lKGZyYW1lUGF5bG9h
ZCk7Ci0gICAgICAgIHRoaXMuX2FkZFJlc291cmNlVG9GcmFtZShmcmFtZVJlc291cmNlKTsKKwor
ICAgICAgICB0aGlzLl9hZGRGcmFtZShmcmFtZSk7CisgICAgICAgIGZyYW1lLl9hZGRSZXNvdXJj
ZShmcmFtZVJlc291cmNlKTsKIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgZnJhbWVUcmVlUGF5
bG9hZC5jaGlsZEZyYW1lcyAmJiBpIDwgZnJhbWVUcmVlUGF5bG9hZC5jaGlsZEZyYW1lcy5sZW5n
dGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX2FkZEZyYW1lc1JlY3Vyc2l2ZWx5KGZyYW1lVHJl
ZVBheWxvYWQuY2hpbGRGcmFtZXNbaV0pOworICAgICAgICAgICAgdGhpcy5fYWRkRnJhbWVzUmVj
dXJzaXZlbHkoZnJhbWUsIGZyYW1lVHJlZVBheWxvYWQuY2hpbGRGcmFtZXNbaV0pOwogCiAgICAg
ICAgIGlmICghZnJhbWVUcmVlUGF5bG9hZC5yZXNvdXJjZXMpCiAgICAgICAgICAgICByZXR1cm47
CkBAIC0zOTYsMTEgKzMxMCwxMSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJv
dG90eXBlID0gewogICAgICAgICAvLyBDcmVhdGUgZnJhbWUgc3VicmVzb3VyY2VzLgogICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1lVHJlZVBheWxvYWQucmVzb3VyY2VzLmxlbmd0aDsg
KytpKSB7CiAgICAgICAgICAgICB2YXIgc3VicmVzb3VyY2UgPSBmcmFtZVRyZWVQYXlsb2FkLnJl
c291cmNlc1tpXTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291
cmNlKGZyYW1lUGF5bG9hZCwgc3VicmVzb3VyY2UudXJsKTsKKyAgICAgICAgICAgIHZhciByZXNv
dXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlRnJvbUZyYW1lUGF5bG9hZChmcmFtZVBheWxvYWQs
IHN1YnJlc291cmNlLnVybCk7CiAgICAgICAgICAgICByZXNvdXJjZS50eXBlID0gV2ViSW5zcGVj
dG9yLlJlc291cmNlLlR5cGVbc3VicmVzb3VyY2UudHlwZV07CiAgICAgICAgICAgICByZXNvdXJj
ZS5taW1lVHlwZSA9IHN1YnJlc291cmNlLm1pbWVUeXBlOwogICAgICAgICAgICAgcmVzb3VyY2Uu
ZmluaXNoZWQgPSB0cnVlOwotICAgICAgICAgICAgdGhpcy5fYWRkUmVzb3VyY2VUb0ZyYW1lKHJl
c291cmNlKTsKKyAgICAgICAgICAgIGZyYW1lLl9hZGRSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAg
ICAgIH0KICAgICB9LAogCkBAIC00MDgsMTEgKzMyMiwyMSBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7UGFnZUFnZW50LkZyYW1l
fSBmcmFtZQogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAgICAgKi8KLSAgICBfY3JlYXRl
UmVzb3VyY2U6IGZ1bmN0aW9uKGZyYW1lLCB1cmwpCisgICAgX2NyZWF0ZVJlc291cmNlRnJvbUZy
YW1lUGF5bG9hZDogZnVuY3Rpb24oZnJhbWUsIHVybCkKICAgICB7Ci0gICAgICAgIHZhciByZXNv
dXJjZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2UoIiIsIHVybCwgZnJhbWUuaWQsIGZyYW1l
LmxvYWRlcklkKTsKLSAgICAgICAgcmVzb3VyY2UuZG9jdW1lbnRVUkwgPSBmcmFtZS51cmw7Ci0g
ICAgICAgIHJlc291cmNlLm1pbWVUeXBlID0gZnJhbWUubWltZVR5cGU7CisgICAgICAgIHJldHVy
biB0aGlzLl9jcmVhdGVSZXNvdXJjZSh1cmwsIGZyYW1lLnVybCwgZnJhbWUuaWQsIGZyYW1lLmxv
YWRlcklkKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAor
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkb2N1bWVudFVSTAorICAgICAqIEBwYXJhbSB7TmV0d29y
a0FnZW50LkZyYW1lSWR9IGZyYW1lSWQKKyAgICAgKiBAcGFyYW0ge05ldHdvcmtBZ2VudC5Mb2Fk
ZXJJZH0gbG9hZGVySWQKKyAgICAgKi8KKyAgICBfY3JlYXRlUmVzb3VyY2U6IGZ1bmN0aW9uKHVy
bCwgZG9jdW1lbnRVUkwsIGZyYW1lSWQsIGxvYWRlcklkKQorICAgIHsKKyAgICAgICAgdmFyIHJl
c291cmNlID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZSgiIiwgdXJsLCBmcmFtZUlkLCBsb2Fk
ZXJJZCk7CisgICAgICAgIHJlc291cmNlLmRvY3VtZW50VVJMID0gZG9jdW1lbnRVUkw7CiAgICAg
ICAgIHJldHVybiByZXNvdXJjZTsKICAgICB9CiB9CkBAIC00MjEsNiArMzQ1LDE3OCBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3Bl
Y3Rvci5PYmplY3QucHJvdG90eQogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWx9IG1vZGVsCisgKiBAcGFyYW0gez9XZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWV9IHBhcmVudEZyYW1lCisgKiBAcGFyYW0ge1BhZ2VBZ2Vu
dC5GcmFtZX0gcGF5bG9hZAorICovCitXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUgPSBm
dW5jdGlvbihtb2RlbCwgcGFyZW50RnJhbWUsIHBheWxvYWQpCit7CisgICAgdGhpcy5fbW9kZWwg
PSBtb2RlbDsKKyAgICB0aGlzLl9wYXJlbnRGcmFtZSA9IHBhcmVudEZyYW1lOyAKKworICAgIHRo
aXMuX2lkID0gcGF5bG9hZC5pZDsKKyAgICB0aGlzLl9sb2FkZXJJZCA9IHBheWxvYWQubG9hZGVy
SWQ7CisgICAgdGhpcy5fbmFtZSA9IHBheWxvYWQubmFtZTsKKyAgICB0aGlzLl91cmwgPSBwYXls
b2FkLnVybDsKKyAgICB0aGlzLl9taW1lVHlwZSA9IHBheWxvYWQubWltZVR5cGU7CisKKyAgICAv
KioKKyAgICAgKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZT59
CisgICAgICovCisgICAgdGhpcy5fY2hpbGRGcmFtZXMgPSBbXTsKKworICAgIC8qKgorICAgICAq
IEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlJlc291cmNlPn0KKyAgICAgKi8K
KyAgICB0aGlzLl9yZXNvdXJjZXNNYXAgPSB7fTsKKworICAgIGlmICh0aGlzLl9wYXJlbnRGcmFt
ZSkKKyAgICAgICAgdGhpcy5fcGFyZW50RnJhbWUuX2NoaWxkRnJhbWVzLnB1c2godGhpcyk7Cit9
CisKK1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUgPSB7CisgICAgZ2V0
IGlkKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9pZDsKKyAgICB9LAorCisgICAgZ2V0
IG5hbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7CisgICAgfSwKKworICAg
IGdldCB1cmwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3VybDsKKyAgICB9LAorCisg
ICAgZ2V0IGxvYWRlcklkKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9sb2FkZXJJZDsK
KyAgICB9LAorCisgICAgZ2V0IHBhcmVudEZyYW1lKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9wYXJlbnRGcmFtZTsKKyAgICB9LAorCisgICAgZ2V0IGNoaWxkRnJhbWVzKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9jaGlsZEZyYW1lczsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICBpc01haW5GcmFtZTogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICF0aGlzLl9wYXJlbnRGcmFtZTsKKyAgICB9LAor
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtQYWdlQWdlbnQuRnJhbWV9IGZyYW1lUGF5bG9hZAor
ICAgICAqLworICAgIG5hdmlnYXRlOiBmdW5jdGlvbihmcmFtZVBheWxvYWQpCisgICAgeworICAg
ICAgICB0aGlzLl9sb2FkZXJJZCA9IGZyYW1lUGF5bG9hZC5sb2FkZXJJZDsKKyAgICAgICAgdGhp
cy5fbmFtZSA9IGZyYW1lUGF5bG9hZC5uYW1lOworICAgICAgICB0aGlzLl91cmwgPSBmcmFtZVBh
eWxvYWQudXJsOworICAgICAgICB0aGlzLl9taW1lVHlwZSA9IGZyYW1lUGF5bG9hZC5taW1lVHlw
ZTsKKworICAgICAgICB2YXIgbWFpblJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VzTWFwW3RoaXMu
X3VybF07CisgICAgICAgIHRoaXMuX3Jlc291cmNlc01hcCA9IHt9OworICAgICAgICB0aGlzLl9j
aGlsZEZyYW1lcyA9IFtdOworICAgICAgICBpZiAobWFpblJlc291cmNlICYmIG1haW5SZXNvdXJj
ZS5sb2FkZXJJZCA9PT0gdGhpcy5fbG9hZGVySWQpCisgICAgICAgICAgICB0aGlzLl9hZGRSZXNv
dXJjZShtYWluUmVzb3VyY2UpOworICAgIH0sCisKKyAgICBnZXQgbWFpblJlc291cmNlKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZXNNYXBbdGhpcy5fdXJsXTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJh
bWV9IGZyYW1lCisgICAgICovCisgICAgYWRkQ2hpbGRGcmFtZTogZnVuY3Rpb24oZnJhbWUpCisg
ICAgeworICAgICAgICB0aGlzLl9jaGlsZEZyYW1lcy5wdXNoKGZyYW1lKTsKKyAgICB9LAorCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWV9IGZy
YW1lCisgICAgICovCisgICAgcmVtb3ZlQ2hpbGRGcmFtZTogZnVuY3Rpb24oZnJhbWUpCisgICAg
eworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1lLl9jaGlsZEZyYW1lcy5sZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRGcmFtZShmcmFtZS5fY2hpbGRGcmFt
ZXNbaV0pOyAKKyAgICAgICAgdGhpcy5fY2hpbGRGcmFtZXMucmVtb3ZlKGZyYW1lKTsKKyAgICAg
ICAgdGhpcy5fbW9kZWwuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIGZyYW1lKTsKKyAgICB9LAor
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9IHJlc291cmNl
CisgICAgICovCisgICAgX2FkZFJlc291cmNlOiBmdW5jdGlvbihyZXNvdXJjZSkKKyAgICB7Cisg
ICAgICAgIGlmICh0aGlzLl9yZXNvdXJjZXNNYXBbcmVzb3VyY2UudXJsXSA9PT0gcmVzb3VyY2Up
IHsKKyAgICAgICAgICAgIC8vIEFscmVhZHkgaW4gdGhlIHRyZWUsIHdlIGp1c3QgZ290IGFuIGV4
dHJhIHVwZGF0ZS4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRo
aXMuX3Jlc291cmNlc01hcFtyZXNvdXJjZS51cmxdID0gcmVzb3VyY2U7CisgICAgICAgIHRoaXMu
X21vZGVsLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwuRXZlbnRUeXBlcy5SZXNvdXJjZUFkZGVkLCByZXNvdXJjZSk7CisgICAgfSwKKworICAg
IC8qKgorICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuUmVzb3VyY2U+fQorICAg
ICAqLworICAgIHJlc291cmNlczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IFtdOworICAgICAgICBmb3IgKHZhciB1cmwgaW4gdGhpcy5fcmVzb3VyY2VzTWFwKQorICAg
ICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5fcmVzb3VyY2VzTWFwW3VybF0pOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30g
dXJsCisgICAgICogQHJldHVybiB7P1dlYkluc3BlY3Rvci5SZXNvdXJjZX0KKyAgICAgKi8KKyAg
ICByZXNvdXJjZUZvclVSTDogZnVuY3Rpb24odXJsKQorICAgIHsKKyAgICAgICAgdmFyIHJlc3Vs
dDsKKyAgICAgICAgZnVuY3Rpb24gZmlsdGVyKHJlc291cmNlKQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAocmVzb3VyY2UudXJsID09PSB1cmwpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSByZXNvdXJjZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICB0aGlzLl9jYWxsRm9yRnJhbWVSZXNvdXJjZXMoZmlsdGVyKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuUmVzb3VyY2UpfSBjYWxsYmFjaworICAgICAqLworICAg
IF9jYWxsRm9yRnJhbWVSZXNvdXJjZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAg
ICAgZm9yICh2YXIgdXJsIGluIHRoaXMuX3Jlc291cmNlc01hcCkgeworICAgICAgICAgICAgaWYg
KGNhbGxiYWNrKHRoaXMuX3Jlc291cmNlc01hcFt1cmxdKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5f
Y2hpbGRGcmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9jaGlsZEZy
YW1lc1tpXS5fY2FsbEZvckZyYW1lUmVzb3VyY2VzKGNhbGxiYWNrKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
fQorCisvKioKKyAqIEBjb25zdHJ1Y3RvcgogICogQGltcGxlbWVudHMge1BhZ2VBZ2VudC5EaXNw
YXRjaGVyfQogICovCiBXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIgPSBmdW5jdGlvbihyZXNv
dXJjZVRyZWVNb2RlbCkKQEAgLTQ0NSw5ICs1NDEsOSBAQCBXZWJJbnNwZWN0b3IuUGFnZURpc3Bh
dGNoZXIucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3IubWFpblJlc291cmNlTG9h
ZFRpbWUgPSB0aW1lOwogICAgIH0sCiAKLSAgICBmcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oZnJh
bWUsIGxvYWRlcklkKQorICAgIGZyYW1lTmF2aWdhdGVkOiBmdW5jdGlvbihmcmFtZSkKICAgICB7
Ci0gICAgICAgIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLl9mcmFtZU5hdmlnYXRlZChmcmFtZSwg
bG9hZGVySWQpOworICAgICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5fZnJhbWVOYXZpZ2F0
ZWQoZnJhbWUpOwogICAgIH0sCiAKICAgICBmcmFtZURldGFjaGVkOiBmdW5jdGlvbihmcmFtZUlk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Vz
UGFuZWwuanMKaW5kZXggZDE5MDM0NjEzZTFmMjQ3YmNkZWU5OWViYmYwYTQwMDQ3OWUzZmM0Yi4u
MTFkMjhkMDEzNmU1NGMwYTgwZmJiNTRkMzdiNjc2MjlkNTM2OTM0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC04
Niw2ICs4Niw4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbCA9IGZ1bmN0aW9uKGRhdGFi
YXNlKQogICAgIFdlYkluc3BlY3Rvci5Hb1RvTGluZURpYWxvZy5pbnN0YWxsKHRoaXMsIHZpZXdH
ZXR0ZXIuYmluZCh0aGlzKSk7CiAKICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBl
cy5PbkxvYWQsIHRoaXMuX29uTG9hZEV2ZW50RmlyZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLkNhY2hlZFJlc291cmNlc0xvYWRlZCwgdGhpcy5fY2FjaGVk
UmVzb3VyY2VzTG9hZGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRU
eXBlcy5XaWxsTG9hZENhY2hlZFJlc291cmNlcywgdGhpcy5fcmVzZXRXaXRoRnJhbWVzLCB0aGlz
KTsKIH0KIAogV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKQEAgLTEw
MiwxMSArMTA0LDE1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5Q
YW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKLSAgICAgICAgaWYgKCF0aGlzLl9p
bml0aWFsaXplZCkgeworICAgICAgICB0aGlzLl9pbml0aWFsaXplKCk7CisgICAgfSwKKworICAg
IF9pbml0aWFsaXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2luaXRp
YWxpemVkICYmIHRoaXMuaXNTaG93aW5nKCkgJiYgdGhpcy5fY2FjaGVkUmVzb3VyY2VzV2VyZUxv
YWRlZCkgewogICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGVSZXNvdXJjZVRyZWUoKTsKICAgICAg
ICAgICAgIHRoaXMuX3BvcHVsYXRlQXBwbGljYXRpb25DYWNoZVRyZWUoKTsKICAgICAgICAgICAg
IHRoaXMuX2luaXREZWZhdWx0U2VsZWN0aW9uKCk7Ci0KICAgICAgICAgICAgIHRoaXMuX2luaXRp
YWxpemVkID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0sCkBAIC0xMzYsMTEgKzE0MiwxNSBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhp
cy5zaG93UmVzb3VyY2UobWFpblJlc291cmNlKTsKICAgICB9LAogCi0gICAgX3Jlc2V0OiBmdW5j
dGlvbigpCisgICAgX3Jlc2V0V2l0aEZyYW1lczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
dGhpcy5yZXNvdXJjZXNMaXN0VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAg
dGhpcy5fdHJlZUVsZW1lbnRGb3JGcmFtZUlkID0ge307CisgICAgICAgIHRoaXMuX3Jlc2V0KCk7
CisgICAgfSwKIAorICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIHsKICAgICAgICAgdGhpcy5f
b3JpZ2lucyA9IHt9OwogICAgICAgICB0aGlzLl9kb21haW5zID0ge307CiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGhpcy5fZGF0YWJhc2VzLmxlbmd0aDsgKytpKSB7CkBAIC0xODIsMzIg
KzE5MiwyOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRlZCwgdGhp
cy5fZnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
cmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwu
RXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCB0aGlzLl9mcmFtZURldGFjaGVkLCB0aGlzKTsKICAg
ICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3VyY2VBZGRlZCwgdGhp
cy5fcmVzb3VyY2VBZGRlZCwgdGhpcyk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRy
ZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5F
dmVudFR5cGVzLkNhY2hlZFJlc291cmNlc0xvYWRlZCwgdGhpcy5fY2FjaGVkUmVzb3VyY2VzTG9h
ZGVkLCB0aGlzKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuV2ls
bExvYWRDYWNoZWRSZXNvdXJjZXMsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKIAotICAgICAgICBmdW5j
dGlvbiBwb3B1bGF0ZUZyYW1lKGZyYW1lSWQpCisgICAgICAgIGZ1bmN0aW9uIHBvcHVsYXRlRnJh
bWUoZnJhbWUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzdWJmcmFtZXMgPSBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuc3ViZnJhbWVzKGZyYW1lSWQpOwotICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBzdWJmcmFtZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
ICAgICB0aGlzLl9mcmFtZUFkZGVkKHtkYXRhOnN1YmZyYW1lc1tpXX0pOwotICAgICAgICAgICAg
ICAgIHBvcHVsYXRlRnJhbWUuY2FsbCh0aGlzLCBzdWJmcmFtZXNbaV0uaWQpOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgdGhpcy5fZnJhbWVBZGRlZCh7ZGF0YTpmcmFtZX0pOworICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmcmFtZS5jaGlsZEZyYW1lcy5sZW5ndGg7ICsraSkK
KyAgICAgICAgICAgICAgICBwb3B1bGF0ZUZyYW1lLmNhbGwodGhpcywgZnJhbWUuY2hpbGRGcmFt
ZXNbaV0pOwogCi0gICAgICAgICAgICB2YXIgcmVzb3VyY2VzID0gV2ViSW5zcGVjdG9yLnJlc291
cmNlVHJlZU1vZGVsLnJlc291cmNlcyhmcmFtZUlkKTsKKyAgICAgICAgICAgIHZhciByZXNvdXJj
ZXMgPSBmcmFtZS5yZXNvdXJjZXMoKTsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVzb3VyY2VzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlQWRk
ZWQoe2RhdGE6cmVzb3VyY2VzW2ldfSk7CiAgICAgICAgIH0KLSAgICAgICAgcG9wdWxhdGVGcmFt
ZS5jYWxsKHRoaXMsICIiKTsKKyAgICAgICAgcG9wdWxhdGVGcmFtZS5jYWxsKHRoaXMsIFdlYklu
c3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpOwogICAgIH0sCiAKICAgICBfZnJh
bWVBZGRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgZnJhbWUgPSBldmVu
dC5kYXRhOwotICAgICAgICB2YXIgcGFyZW50RnJhbWVJZCA9IGZyYW1lLnBhcmVudElkOworICAg
ICAgICB2YXIgcGFyZW50RnJhbWUgPSBmcmFtZS5wYXJlbnRGcmFtZTsKIAotICAgICAgICB2YXIg
cGFyZW50VHJlZUVsZW1lbnQgPSBwYXJlbnRGcmFtZUlkID8gdGhpcy5fdHJlZUVsZW1lbnRGb3JG
cmFtZUlkW3BhcmVudEZyYW1lSWRdIDogdGhpcy5yZXNvdXJjZXNMaXN0VHJlZUVsZW1lbnQ7Cisg
ICAgICAgIHZhciBwYXJlbnRUcmVlRWxlbWVudCA9IHBhcmVudEZyYW1lID8gdGhpcy5fdHJlZUVs
ZW1lbnRGb3JGcmFtZUlkW3BhcmVudEZyYW1lLmlkXSA6IHRoaXMucmVzb3VyY2VzTGlzdFRyZWVF
bGVtZW50OwogICAgICAgICBpZiAoIXBhcmVudFRyZWVFbGVtZW50KSB7Ci0gICAgICAgICAgICBj
b25zb2xlLndhcm4oIk5vIGZyYW1lIHdpdGggaWQ6IiArIHBhcmVudEZyYW1lSWQgKyAiIHRvIHJv
dXRlICIgKyBmcmFtZS5uYW1lICsgIi8iICsgZnJhbWUudXJsICsgIiB0by4iKQorICAgICAgICAg
ICAgY29uc29sZS53YXJuKCJObyBmcmFtZSB0byByb3V0ZSAiICsgZnJhbWUudXJsICsgIiB0by4i
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTIxOSwxMSArMjI1LDYgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfZnJhbWVEZXRh
Y2hlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgZnJhbWUgPSBldmVudC5k
YXRhOwotICAgICAgICBpZiAoIWZyYW1lLnBhcmVudElkKSB7Ci0gICAgICAgICAgICAvLyBSZXNl
dCBvbiBtYWluIGZyYW1lIGRldGFjaAotICAgICAgICAgICAgdGhpcy5fcmVzZXQoKTsKLSAgICAg
ICAgfQotCiAgICAgICAgIHZhciBmcmFtZVRyZWVFbGVtZW50ID0gdGhpcy5fdHJlZUVsZW1lbnRG
b3JGcmFtZUlkW2ZyYW1lLmlkXTsKICAgICAgICAgaWYgKCFmcmFtZVRyZWVFbGVtZW50KQogICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtMjUzLDE5ICsyNTQsMjcgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9mcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24o
ZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgZnJhbWVJZCA9IGV2ZW50LmRhdGEuZnJhbWUuaWQ7
CisgICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRhdGE7CisKKyAgICAgICAgaWYgKCFmcmFtZS5w
YXJlbnRGcmFtZSkgeworICAgICAgICAgICAgLy8gUmVzZXQgb24gbWFpbiBmcmFtZSBkZXRhY2gK
KyAgICAgICAgICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgZnJh
bWVJZCA9IGZyYW1lLmlkOwogICAgICAgICB2YXIgZnJhbWVUcmVlRWxlbWVudCA9IHRoaXMuX3Ry
ZWVFbGVtZW50Rm9yRnJhbWVJZFtmcmFtZUlkXTsKICAgICAgICAgaWYgKGZyYW1lVHJlZUVsZW1l
bnQpCi0gICAgICAgICAgICBmcmFtZVRyZWVFbGVtZW50LmZyYW1lTmF2aWdhdGVkKGV2ZW50LmRh
dGEuZnJhbWUpOworICAgICAgICAgICAgZnJhbWVUcmVlRWxlbWVudC5mcmFtZU5hdmlnYXRlZChm
cmFtZSk7CiAKICAgICAgICAgdmFyIGFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50ID0g
dGhpcy5fYXBwbGljYXRpb25DYWNoZUZyYW1lRWxlbWVudHNbZnJhbWVJZF07CiAgICAgICAgIGlm
IChhcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudCkKLSAgICAgICAgICAgIGFwcGxpY2F0
aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LmZyYW1lTmF2aWdhdGVkKGV2ZW50LmRhdGEuZnJhbWUp
OworICAgICAgICAgICAgYXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQuZnJhbWVOYXZp
Z2F0ZWQoZnJhbWUpOwogICAgIH0sCiAKICAgICBfY2FjaGVkUmVzb3VyY2VzTG9hZGVkOiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9pbml0RGVmYXVsdFNlbGVjdGlvbigpOworICAg
ICAgICB0aGlzLl9jYWNoZWRSZXNvdXJjZXNXZXJlTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgdGhp
cy5faW5pdGlhbGl6ZSgpOwogICAgIH0sCiAKICAgICBhZGREYXRhYmFzZTogZnVuY3Rpb24oZGF0
YWJhc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdEZvcm1hdHRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0Rm9ybWF0dGVyLmpzCmluZGV4IGQ2ZTI4NzExNGRlMzAxNGQ2NzVjNjA0MzNlZWQyYTM2NDZm
MmJmMTguLmRhMWFjZjM4YmZkYzdlYTJkYTJjMTE2ZTBmYjA4OWI3MDE1OWU4ZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVy
LmpzCkBAIC01Nyw3ICs1Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucHJvdG90
eXBlID0gewogICAgIGZvcm1hdENvbnRlbnQ6IGZ1bmN0aW9uKG1pbWVUeXBlLCBjb250ZW50LCBj
YWxsYmFjaykKICAgICB7CiAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL1xyXG4/
fFtcblx1MjAyOFx1MjAyOV0vZywgIlxuIikucmVwbGFjZSgvXlx1RkVGRi8sICcnKTsKLSAgICAg
ICAgdmFyIGRhdGEgPSB7IG1pbWVUeXBlOiBtaW1lVHlwZSwgY29udGVudDogY29udGVudCwgaW5k
ZW50U3RyaW5nOiBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudGV4dEVkaXRvckluZGVudC5nZXQoKSB9
OworICAgICAgICB2YXIgZGF0YSA9IHsgbWltZVR5cGU6IG1pbWVUeXBlLCBjb250ZW50OiBjb250
ZW50LCBpbmRlbnRTdHJpbmc6ICIgICAgIiAgfTsKICAgICAgICAgdGhpcy5fdGFza3MucHVzaCh7
IGRhdGE6IGRhdGEsIGNhbGxiYWNrOiBjYWxsYmFjayB9KTsKICAgICAgICAgdGhpcy5fd29ya2Vy
LnBvc3RNZXNzYWdlKGRhdGEpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCA0OTBiOTlhZGEwZGYyZDQ4
NWZjODEyM2Y1NjJhNTRhZTY3YmQwYjIwLi5jN2YwNjg2MzI0NjdmYTA3ZjY3ZmI0NjlhNmYyODlk
ZGM5MzRkZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ0MSw3ICs0NDEsNiBAQCBDYWNoZWRSZXNvdXJjZSog
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlw
ZSB0eXBlLAogCiAgICAgQVNTRVJUKHJlc291cmNlLT51cmwoKSA9PSB1cmwuc3RyaW5nKCkpOwog
ICAgIG1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgcmVzb3VyY2UpOwot
ICAgIAogICAgIHJldHVybiByZXNvdXJjZTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5OGQyOTMzYzBiNWE4
MmY5NWU3NDg0OWQ3MTUxMTI3ZjIyMWRjYWFiLi5iYWM1OGIwZDYxNWY4OTJlMDQ3MmIyYmNjMGM3
NjBjYzYyNjJmMGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMTEtMjQgIFBhdmVsIEZl
bGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJl
ZmFjdG9yIHJlc291cmNlIHRyZWUgbW9kZWwgYW5kIGludHJvZHVjZSBleHBsaWNpdCBjbGFzcyBm
b3IgUmVzb3VyY2VUcmVlRnJhbWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MzA3OAorCisgICAgICAgIE90aGVyd2lzZSB3ZSBhcmUgbWFuYWdpbmcg
ZnJhbWVzIGFuZCB0aGVpciByZXNvdXJjZXMgdXNpbmcgdG9vIG1hbnkgbWFwcy4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1kb2N1bWVudC11cmwuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZXJyb3Jz
LXJlbG9hZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbWltZXR5cGUuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtdGVz
dC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfUmVzb3VyY2VUcmVlVGVzdC5JbnNwZWN0b3JUZXN0
LmR1bXBSZXNvdXJjZXNVUkxNYXAuY29sbGVjdCk6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX1Jlc291cmNlVGVz
dC5JbnNwZWN0b3JUZXN0LnJ1bkFmdGVyQ2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKToKKyAgICAg
ICAgKGluaXRpYWxpemVfUmVzb3VyY2VUZXN0Lkluc3BlY3RvclRlc3QucnVuQWZ0ZXJSZXNvdXJj
ZXNBcmVGaW5pc2hlZC5jaGVja1Jlc291cmNlcy52aXNpdCk6CisgICAgICAgIChpbml0aWFsaXpl
X1Jlc291cmNlVGVzdC5JbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUmVzb3VyY2VzQXJlRmluaXNoZWQu
Y2hlY2tSZXNvdXJjZXMpOgorICAgICAgICAoaW5pdGlhbGl6ZV9SZXNvdXJjZVRlc3QuSW5zcGVj
dG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0FyZUZpbmlzaGVkKToKKyAgICAgICAgKGluaXRpYWxp
emVfUmVzb3VyY2VUZXN0Lkluc3BlY3RvclRlc3Quc2hvd1Jlc291cmNlLnNob3dSZXNvdXJjZUNh
bGxiYWNrLnZpc2l0KToKKyAgICAgICAgKGluaXRpYWxpemVfUmVzb3VyY2VUZXN0Lkluc3BlY3Rv
clRlc3Quc2hvd1Jlc291cmNlKToKKyAgICAgICAgKGluaXRpYWxpemVfUmVzb3VyY2VUZXN0KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL3N0eWxlcy9jc3MtbGl2ZS1lZGl0Lmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Nr
aXBwZWQ6CisKIDIwMTEtMTEtMjMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgdGhlIFdlYkluc3BlY3Rvci5t
YWluUmVzb3VyY2UsIHVzZSBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTCBpbnN0ZWFkLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cwppbmRleCAyNzg3MTE5Njc5YjUyN2JiZGQwYTQ2YzFmNDlhY2VlOThmZTgxNjc4Li5jN2U2MGJh
ZTA1MWNmMDJmYzZhNDZkZTUzYTY1MjcyNDQ1ODVhZjM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcwpAQCAtNjksMjQgKzY5LDYg
QEAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0ID0gZnVuY3Rpb24oY29k
ZSkKICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KHVuZXNjYXBl
KCciICsgZXNjYXBlKGNvZGUpICsgIicpKSIpOwogfQogCi1JbnNwZWN0b3JUZXN0LnNob3dSZXNv
dXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlVVJMLCBjYWxsYmFjaykKLXsKLSAgICBjYWxsYmFjayA9
IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwotICAgIGZvciAodmFyIHVybCBpbiBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuX3Jlc291cmNlc0J5VVJMKSB7Ci0gICAgICAg
IGlmICh1cmwuaW5kZXhPZihyZXNvdXJjZVVSTCkgIT09IC0xKSB7Ci0gICAgICAgICAgICB2YXIg
cmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuX3Jlc291cmNlc0J5VVJM
W3VybF07Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zaG93UmVz
b3VyY2UocmVzb3VyY2UsIDEpOwotICAgICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gV2ViSW5z
cGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuX3Jlc291cmNlVmlld0ZvclJlc291cmNlKHJlc291cmNl
KTsKLSAgICAgICAgICAgIGlmIChzb3VyY2VGcmFtZS5sb2FkZWQpCi0gICAgICAgICAgICAgICAg
Y2FsbGJhY2soc291cmNlRnJhbWUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IHNvdXJjZUZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2
ZW50cy5Mb2FkZWQsIGNhbGxiYWNrLmJpbmQobnVsbCwgc291cmNlRnJhbWUpKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLCAiX2JpbmRSZXNvdXJjZVVSTCIsIElu
c3BlY3RvclRlc3Quc2hvd1Jlc291cmNlLmJpbmQoSW5zcGVjdG9yVGVzdCwgdXJsLCBjYWxsYmFj
aykpOwotfTsKLQogSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQgPSBmdW5jdGlvbih0ZXh0KQogewog
ICAgIHJlc3VsdHMucHVzaCh0ZXh0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1kb2N1bWVudC11cmwuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3Vy
Y2UtdHJlZS1kb2N1bWVudC11cmwuaHRtbAppbmRleCA1Y2QwYWYxYzUwNDczNTM4ZmZlNjFiZjM0
Y2ZiMzRlODQ5OGUyODhiLi43NDljZWE1MzZhZWFhY2RmOWMwYjU1NmM5Y2MyNzQ2MmFmZTI1M2Rk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10
cmVlL3Jlc291cmNlLXRyZWUtZG9jdW1lbnQtdXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWRvY3VtZW50LXVy
bC5odG1sCkBAIC04LDcgKzgsNyBAQAogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNwZWN0
b3JUZXN0LnJ1bkFmdGVyUmVzb3VyY2VzQXJlRmluaXNoZWQoWyJkdW1teS1pZnJhbWUuaHRtbCIs
ICJyZXNvdXJjZS10cmVlLWRvY3VtZW50LXVybC5odG1sIl0sIHN0ZXAxKTsKKyAgICBJbnNwZWN0
b3JUZXN0LnJ1bkFmdGVyUmVzb3VyY2VzQXJlRmluaXNoZWQoWyJkdW1teS1pZnJhbWUuaHRtbCIs
ICJpbnNwZWN0b3ItdGVzdC5qcyIsICJyZXNvdXJjZXMtdGVzdC5qcyIsICJyZXNvdXJjZS10cmVl
LXRlc3QuanMiXSwgc3RlcDEpOwogCiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVz
b3VyY2UtdHJlZS1lcnJvcnMtcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZXJyb3JzLXJlbG9hZC5odG1sCmlu
ZGV4IGEyODdjYjU2ZjRmNmQ1OTU1OTU3OTM4Y2E5OWNkZDM5ZThhNTU1OTguLjNjMGM1ZjRhMjAy
OWMwYzNlZWIzYzgyMTk4NmNhZmQyMzFkY2U2ZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1lcnJvcnMtcmVs
b2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
dHJlZS9yZXNvdXJjZS10cmVlLWVycm9ycy1yZWxvYWQuaHRtbApAQCAtMTQsMTAgKzE0LDEwIEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIHZhciByZXNvdXJjZXNXZXJlRmluaXNoZWQgPSBmYWxzZTsK
ICAgICB2YXIgcGFnZVdhc1JlbG9hZGVkID0gZmFsc2U7CiAKLSAgICBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCBmcmFtZURldGFjaGVkKTsKKyAgICBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5NYWluRnJhbWVOYXZpZ2F0ZWQsIGZyYW1lTmF2
aWdhdGVkKTsKICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UocGFnZVJlbG9hZGVkKTsKIAot
ICAgIGZ1bmN0aW9uIGZyYW1lRGV0YWNoZWQoKQorICAgIGZ1bmN0aW9uIGZyYW1lTmF2aWdhdGVk
KCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5p
c2hlZChbInJlc291cmNlLXRyZWUtZXJyb3JzLXJlbG9hZC5odG1sIl0sIHJlc291cmNlc0Zpbmlz
aGVkKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtYWRkLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUt
YWRkLmh0bWwKaW5kZXggOGMwZGQwZmZhYmRiZTZiOTVhODRhMmFmMWExZDVkZjgzZTkxYTIxZi4u
NzViOTVmODYyMzE2MzZmOWEwZDQxYzA2YWVhYmJhMWQxZWYzNDZkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVl
LWZyYW1lLWFkZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbApAQCAtMjMsNyArMjMsNyBA
QCBmdW5jdGlvbiBvbklmcmFtZUxvYWQoKQogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkFmdGVyUmVzb3VyY2VzQXJlRmluaXNoZWQoWyJyZXNvdXJjZS10cmVlLWZy
YW1lLWFkZC5odG1sIl0sIHN0ZXAxKTsKKyAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUmVzb3Vy
Y2VzQXJlRmluaXNoZWQoWyJyZXNvdXJjZS10cmVlLWZyYW1lLWFkZC5odG1sIiwgInJlc291cmNl
LXRyZWUtdGVzdC5qcyIsICJzdHlsZXMtaW5pdGlhbC5jc3MiXSwgc3RlcDEpOwogCiAgICAgZnVu
Y3Rpb24gc3RlcDEoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1taW1ldHlwZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVl
LW1pbWV0eXBlLmh0bWwKaW5kZXggMDVjNWJiNGNjZjNjMzcxNjYxMGY5MGM2YWM4NDNmMmJiMDg3
MzE1Ny4uMGEyNTk0NmIzNTVjMjEwZjY5OTM1MTk0MjQzNDRiNTk4YTQ0N2NhMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJj
ZS10cmVlLW1pbWV0eXBlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLW1pbWV0eXBlLmh0bWwKQEAgLTksNyArOSw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsp
CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5fcmVzZXQoKTsKICAgICBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5DYWNoZWRSZXNvdXJjZXNMb2FkZWQsIHN0ZXAy
KTsKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZnJvbnRlbmRSZXVzZWQoKTsK
KyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuX2ZldGNoUmVzb3VyY2VUcmVlKCk7
CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLXRlc3QuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNl
LXRyZWUtdGVzdC5qcwppbmRleCA3MjRiNmI5ZmM0ZDA1ZjBmOWM2ZDgzNWQwYTcyYTZkMzMyMjk3
N2RhLi40YWMzODdmMzllYjgzY2UyNjNiZjU2NmU5MmM1OGE5ODA1Njk0Mjg1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNl
LXRyZWUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZS10cmVlL3Jlc291cmNlLXRyZWUtdGVzdC5qcwpAQCAtMjcsOSArMjcsMTAgQEAgSW5zcGVj
dG9yVGVzdC5kdW1wUmVzb3VyY2VzID0gZnVuY3Rpb24oZm9ybWF0dGVyKQogSW5zcGVjdG9yVGVz
dC5kdW1wUmVzb3VyY2VzVVJMTWFwID0gZnVuY3Rpb24oKQogewogICAgIHZhciByZXN1bHRzID0g
W107Ci0gICAgZm9yICh2YXIgdXJsIGluIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5f
cmVzb3VyY2VzQnlVUkwpIHsKLSAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJl
c291cmNlVHJlZU1vZGVsLl9yZXNvdXJjZXNCeVVSTFt1cmxdOwotICAgICAgICByZXN1bHRzLnB1
c2goeyB1cmw6IHVybCwgcmVzb3VyY2U6IHJlc291cmNlIH0pOworICAgIFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXMoY29sbGVjdCk7CisgICAgZnVuY3Rpb24g
Y29sbGVjdChyZXNvdXJjZSkKKyAgICB7CisgICAgICAgIHJlc3VsdHMucHVzaCh7IHVybDogcmVz
b3VyY2UudXJsLCByZXNvdXJjZTogV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLnJlc291
cmNlRm9yVVJMKHJlc291cmNlLnVybCkgfSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gY29tcGFy
YXRvcihyZXN1bHQxLCByZXN1bHQyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qcwppbmRleCA2MTY5MTBjMTlhNzkwMjA2MjIxNmE3ODY4
YzBhZjEzOWMxYzM0Yjc0Li42MmNjYzBjYWUwYzNkNWYzMzUyYzkxMTY0OWI4MzVhYTkzODA5Zjg2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMt
dGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMt
dGVzdC5qcwpAQCAtMjcsNTAgKzI3LDU3IEBAIEluc3BlY3RvclRlc3QucmVzb3VyY2VVUkxDb21w
YXJlciA9IGZ1bmN0aW9uKHIxLCByMikKICAgICByZXR1cm4gcjEucmVxdWVzdC51cmwubG9jYWxl
Q29tcGFyZShyMi5yZXF1ZXN0LnVybCk7CiB9CiAKLUluc3BlY3RvclRlc3QucnVuQWZ0ZXJSZXNv
dXJjZXNBcmVGaW5pc2hlZCA9IGZ1bmN0aW9uKHJlc291cmNlVVJMcywgY2FsbGJhY2spCitJbnNw
ZWN0b3JUZXN0LnJ1bkFmdGVyQ2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkID0gZnVuY3Rpb24oY2Fs
bGJhY2spCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5fcnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hl
ZChyZXNvdXJjZVVSTHMua2V5U2V0KCksIGNhbGxiYWNrKTsKKyAgICBpZiAoIVdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbC5fY2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKQorICAgICAgICBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5DYWNoZWRSZXNvdXJjZXNMb2FkZWQsIGNh
bGxiYWNrKTsKKyAgICBlbHNlCisgICAgICAgIGNhbGxiYWNrKCk7CiB9CiAKLUluc3BlY3RvclRl
c3QuX3J1bkFmdGVyUmVzb3VyY2VzQXJlRmluaXNoZWQgPSBmdW5jdGlvbihyZXNvdXJjZVVSTHMs
IGNhbGxiYWNrKQorSW5zcGVjdG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0FyZUZpbmlzaGVkID0g
ZnVuY3Rpb24ocmVzb3VyY2VVUkxzLCBjYWxsYmFjaykKIHsKLSAgICBmdW5jdGlvbiBjaGVja1Jl
c291cmNlKHJlc291cmNlKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgdXJsIGluIHJlc291cmNl
VVJMcykgewotICAgICAgICAgICAgaWYgKHJlc291cmNlLnVybC5pbmRleE9mKHVybCkgIT09IC0x
KQotICAgICAgICAgICAgICAgIGRlbGV0ZSByZXNvdXJjZVVSTHNbdXJsXTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICB2YXIgcmVzb3VyY2VVUkxzTWFwID0gcmVzb3VyY2VVUkxzLmtleVNldCgpOwog
Ci0gICAgZnVuY3Rpb24gbWF5YmVDYWxsYmFjaygpCisgICAgZnVuY3Rpb24gY2hlY2tSZXNvdXJj
ZXMoKQogICAgIHsKLSAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhyZXNvdXJjZVVSTHMpLmxlbmd0
aCkgeworICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZm9yQWxsUmVzb3Vy
Y2VzKHZpc2l0KTsKKyAgICAgICAgZnVuY3Rpb24gdmlzaXQocmVzb3VyY2UpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGZvciAodXJsIGluIHJlc291cmNlVVJMc01hcCkgeworICAgICAgICAgICAg
ICAgIGlmIChyZXNvdXJjZS51cmwuaW5kZXhPZih1cmwpICE9PSAtMSkKKyAgICAgICAgICAgICAg
ICAgICAgZGVsZXRlIHJlc291cmNlVVJMc01hcFt1cmxdOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIGlmICghT2JqZWN0LmtleXMocmVzb3VyY2VVUkxzTWFwKS5sZW5ndGgpIHsK
KyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5yZW1vdmVFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNl
QWRkZWQsIGNoZWNrUmVzb3VyY2VzKTsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KKyAgICBjaGVja1Jlc291cmNlcygp
OworICAgIGlmIChPYmplY3Qua2V5cyhyZXNvdXJjZVVSTHNNYXApLmxlbmd0aCkKKyAgICAgICAg
V2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3VyY2VBZGRlZCwgY2hlY2tSZXNv
dXJjZXMpOworfQogCi0gICAgZnVuY3Rpb24gYWRkU25pZmZlcihyZXNvdXJjZSkKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwucHJvdG90eXBlLCAiX2FkZFJlc291cmNlVG9GcmFtZSIsIHJlc291cmNlQWRkZWRUb0Zy
YW1lLmJpbmQodGhpcykpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJlc291cmNlQWRkZWRUb0Zy
YW1lKHJlc291cmNlKQotICAgIHsKLSAgICAgICAgY2hlY2tSZXNvdXJjZShyZXNvdXJjZSk7Ci0g
ICAgICAgIGlmICghbWF5YmVDYWxsYmFjaygpKQotICAgICAgICAgICAgYWRkU25pZmZlcigpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHZpc2l0KHJlc291cmNlKQorSW5zcGVjdG9yVGVzdC5zaG93
UmVzb3VyY2UgPSBmdW5jdGlvbihyZXNvdXJjZVVSTCwgY2FsbGJhY2spCit7CisgICAgZnVuY3Rp
b24gc2hvd1Jlc291cmNlQ2FsbGJhY2soKQogICAgIHsKLSAgICAgICAgY2hlY2tSZXNvdXJjZShy
ZXNvdXJjZSk7Ci0gICAgICAgIHJldHVybiBtYXliZUNhbGxiYWNrKCk7CisgICAgICAgIFdlYklu
c3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXModmlzaXQpOworICAgICAg
ICBmdW5jdGlvbiB2aXNpdChyZXNvdXJjZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHJl
c291cmNlLnVybC5pbmRleE9mKHJlc291cmNlVVJMKSAhPT0gLTEpIHsKKyAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zaG93UmVzb3VyY2UocmVzb3VyY2UsIDEp
OworICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMu
cmVzb3VyY2VzLl9yZXNvdXJjZVZpZXdGb3JSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAg
ICAgICAgaWYgKHNvdXJjZUZyYW1lLmxvYWRlZCkKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJh
Y2soc291cmNlRnJhbWUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgc291cmNlRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
RXZlbnRzLkxvYWRlZCwgY2FsbGJhY2suYmluZChudWxsLCBzb3VyY2VGcmFtZSkpOworICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQot
Ci0gICAgdmFyIHN1Y2NlZWRlZCA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mb3JB
bGxSZXNvdXJjZXModmlzaXQpOwotICAgIGlmICghc3VjY2VlZGVkKQotICAgICAgICBhZGRTbmlm
ZmVyKCk7CisgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0FyZUZpbmlzaGVkKFty
ZXNvdXJjZVVSTF0sIHNob3dSZXNvdXJjZUNhbGxiYWNrKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1sCmluZGV4IDEyZTAyZjI2
MDY1YjBiYzI5ODZjZWEyMDUxNGFlMWQwNmRjZjM2ODUuLjlhZDQxMDQ3YzRkMzQ0NDJiODZiOTNk
YjQxMjI1YzBkNjRkZjA5YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zb3VyY2UtZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc291cmNlLWZyYW1lLmh0bWwKQEAgLTQ4LDExICs0OCwxMyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoIm5ldHdvcmsiKTsKIAogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5w
cm90b3R5cGUsICJzaG93IiwgZGlkU2hvd1NvdXJjZUZyYW1lKTsKLSAgICAgICAgICAgIHZhciBy
ZXNvdXJjZXMgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuX3Jlc291cmNlc0J5VVJM
OwotICAgICAgICAgICAgZm9yICh2YXIgdXJsIGluIHJlc291cmNlcykgewotICAgICAgICAgICAg
ICAgIGlmICh1cmwuaW5kZXhPZigiZGVidWdnZXItdGVzdC5qcyIpICE9PSAtMSkgewotICAgICAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuX3Nob3dSZXNvdXJjZShy
ZXNvdXJjZXNbdXJsXSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZm9yQWxsUmVzb3VyY2VzKHZpc2l0
KTsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHZpc2l0KHJlc291cmNlKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZS51cmwuaW5kZXhPZigiZGVidWdnZXItdGVzdC5q
cyIpICE9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5l
dHdvcmsuX3Nob3dSZXNvdXJjZShyZXNvdXJjZSwgMSk7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9jc3MtbGl2ZS1lZGl0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Nzcy1saXZlLWVkaXQuaHRtbAppbmRleCA5YjdhZDEy
ODM2NjZlMmYwMjY3N2ExN2IxZmZkNjkwZGYxMWJhNzNiLi5kNWUwZjI5MjVkZjMwZGViNmY1ZTk1
YjU2ZDFkZTdhN2Q1MjlmODYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL2Nzcy1saXZlLWVkaXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L2Nzcy1saXZlLWVkaXQuaHRtbApAQCAtMyw2ICszLDcgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvbGl2ZS1lZGl0LXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0icmVzb3VyY2VzL2dldC1zZXQtc3R5bGVzaGVldC10ZXh0LmNzcyI+CiA8ZGl2IGlkPWZvbz48
L2Rpdj4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1oaXN0b3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1oaXN0b3J5Lmh0bWwKaW5kZXggMjIwZGU2YmYyZjQwZmNiZTYyY2ZlZTRjNzRlMzczYTY3YmJl
YTgyYS4uYmVmZGM0ODdmZWRmNGUyYzVmNGFhMDA3ZDU3YjE5OGYwZTlhMDRmZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3RvcnkuaHRtbApAQCAtNSwx
NCArNSwxMiBAQAogCiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+CiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIGlmICghV2ViSW5zcGVjdG9yLnJlc291cmNl
VHJlZU1vZGVsLl9jYWNoZWRSZXNvdXJjZXNQcm9jZXNzZWQpCi0gICAgICAgIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLkNhY2hlZFJlc291cmNlc0xvYWRlZCwgcnVuVGVzdFN1aXRl
KTsKLSAgICBlbHNlCi0gICAgICAgIHJ1blRlc3RTdWl0ZSgpOworICAgIEluc3BlY3RvclRlc3Qu
cnVuQWZ0ZXJDYWNoZWRSZXNvdXJjZXNQcm9jZXNzZWQocnVuVGVzdFN1aXRlKTsKIAogICAgIHZh
ciBzdHlsZVJlc291cmNlOwogICAgIHZhciBzdHlsZVNoZWV0SWQ7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZAppbmRleCAwNmRjN2VmZTJmMzc2YzJmNTlhNzEyYjVhYjgzNzE1ZjViNjNhMzUyLi5mNzBm
ZGMwMjFjNWE4MDdmNGYwNGE5OTM1ZjY4MTJlOWVmNjQ0YTJiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQKQEAgLTIxNTUsNyArMjE1NSw2IEBAIGZhc3QvcGFyc2VyL3hodG1sLWlubmVyaHRtbC1u
dWxsLWJ5dGUueGh0bWwKIAogIyBuZXcgZmFpbGluZyBpbnNwZWN0b3IgdGVzdHMKIGluc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtdHJhY2UtaW4tZXZhbC5odG1sCi1pbnNwZWN0b3IvZGVidWdnZXIv
c291cmNlLWZyYW1lLmh0bWwKIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpz
Lmh0bWwKIAogIyBUZXN0IGZhaWxzIGJlY2F1c2Ugc2NyaXB0IHByZXR0eS1wcmludCBkb2VzIG5v
dCB3b3JrIGluIGluc3BlY3RvciBvbiBKU0Mgd2hlbiBwYXVzZWQgb24gYnJlYWtwb2ludC4gCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116524</attachid>
            <date>2011-11-24 11:36:49 -0800</date>
            <delta_ts>2011-11-25 00:38:38 -0800</delta_ts>
            <desc>[Patch] First pass of review comments addressed</desc>
            <filename>bug-73078-20111124233647.patch</filename>
            <type>text/plain</type>
            <size>69054</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVmMmJkNTA0ZjY1M2Rj
ZmMxOGU2YWE5ODg0YWQwMDMzZTE2NjJlMC4uNzM4M2VhYWVlNzkxNDIwZjU4ZTA2OWNjYjcxY2Y5
MDM2Y2YxYzFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDgzIEBACiAyMDExLTExLTI0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9y
OiByZWZhY3RvciByZXNvdXJjZSB0cmVlIG1vZGVsIGFuZCBpbnRyb2R1Y2UgZXhwbGljaXQgY2xh
c3MgZm9yIFJlc291cmNlVHJlZUZyYW1lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMwNzgKKworICAgICAgICBPdGhlcndpc2Ugd2UgYXJlIG1hbmFn
aW5nIGZyYW1lcyBhbmQgdGhlaXIgcmVzb3VyY2VzIHVzaW5nIHRvbyBtYW55IG1hcHMuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZU1vZGVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5wcm90b3R5cGUuX2ZyYW1lTmF2aWdhdGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwucHJvdG90eXBl
Ll9mcmFtZURldGFjaGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRDb250ZXh0TWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29u
dGV4dE1hbmFnZXIucHJvdG90eXBlLl9mcmFtZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIucHJvdG90eXBlLl9mcmFtZU5hdmlnYXRlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dC5wcm90b3R5cGUuZ2V0
IGRpc3BsYXlOYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5h
Z2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlw
ZS5yZXF1ZXN0V2lsbEJlU2VudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3Bh
dGNoZXIucHJvdG90eXBlLnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5sb2FkaW5nRmluaXNoZWQpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS5fbWFpbkZyYW1lTmF2aWdhdGVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUuX2ZldGNoUmVzb3VyY2VUcmVlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUuX3Byb2Nlc3NDYWNoZWRS
ZXNvdXJjZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3Rv
dHlwZS5fYWRkRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVs
LnByb3RvdHlwZS5fZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fZnJvbnRlbmRSZXVzZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fZnJhbWVEZXRhY2hlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLl9vblJlc291cmNl
VXBkYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90
eXBlLl9vblJlc291cmNlVXBkYXRlRHJvcHBlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLmZyYW1lRm9ySWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5mb3JBbGxSZXNvdXJjZXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5yZXNvdXJjZUZvclVS
TCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLl9h
ZGRGcmFtZXNSZWN1cnNpdmVseSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwucHJvdG90eXBlLl9jcmVhdGVSZXNvdXJjZUZyb21GcmFtZVBheWxvYWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fY3JlYXRlUmVzb3Vy
Y2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUuZ2V0IGlkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lLnByb3RvdHlwZS5nZXQgdXJs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUuZ2V0
IGxvYWRlcklkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90
b3R5cGUuZ2V0IHBhcmVudEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVGcmFtZS5wcm90b3R5cGUuZ2V0IGNoaWxkRnJhbWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUuaXNNYWluRnJhbWUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lLnByb3RvdHlwZS5uYXZpZ2F0ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlLmdldCBtYWluUmVzb3Vy
Y2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lLnByb3RvdHlwZS5h
ZGRDaGlsZEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5w
cm90b3R5cGUucmVtb3ZlQ2hpbGRGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUcmVlRnJhbWUucHJvdG90eXBlLl9hZGRSZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlLnJlc291cmNlcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlLnJlc291cmNlRm9yVVJMLmZpbHRl
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlLnJl
c291cmNlRm9yVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5w
cm90b3R5cGUuX2NhbGxGb3JGcmFtZVJlc291cmNlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UGFnZURpc3BhdGNoZXIucHJvdG90eXBlLmZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVs
LnByb3RvdHlwZS5faW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2Vz
UGFuZWwucHJvdG90eXBlLl9yZXNldFdpdGhGcmFtZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fcmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVSZXNvdXJjZVRyZWUucG9wdWxhdGVG
cmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLl9w
b3B1bGF0ZVJlc291cmNlVHJlZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlLl9mcmFtZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUuX2ZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fY2FjaGVkUmVzb3VyY2VzTG9hZGVk
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucHJvdG90eXBlLmZvcm1hdENvbnRl
bnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToK
KworMjAxMS0xMS0yNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VEb21haW4gaXMg
bm90IGNhbGN1bGF0ZWQgZm9yIGFib3V0OmJsYW5rCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA4MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24KaW5kZXggYjcxNmNhOGIwM2NmYWVhMDdkN2EzMGM0OWU3MjJhMmY1NWRjODVj
ZC4uMDlkNDVjZjk3Njk0NGYyNWMyMWFmYjBkOWY1ZTRkN2EzODNkYWE0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtOCw5ICs4LDYgQEAKICAgICAgICAgXSwK
ICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFt
ZSI6ICJmcm9udGVuZFJldXNlZCIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiZGlzY29ubmVjdEZyb21CYWNrZW5kIgogICAgICAgICAgICAg
fSwKICAgICAgICAgICAgIHsKQEAgLTEwNCw3ICsxMDEsNyBAQAogICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJTZWFyY2ggcmVzdWx0IGZvciByZXNvdXJjZS4iLAogICAgICAgICAgICAg
ICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIs
ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJjZSBVUkwuIiB9LAotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgZnJhbWUgaWQuIiB9LAorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3Jp
cHRpb24iOiAiUmVzb3VyY2UgZnJhbWUgaWQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIm1hdGNoZXNDb3VudCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJO
dW1iZXIgb2YgbWF0Y2hlcyBpbiB0aGUgcmVzb3VyY2UgY29udGVudC4iIH0KICAgICAgICAgICAg
ICAgICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCkBAIC0yMDYsNyArMjAzLDcg
QEAKICAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRSZXNvdXJjZUNvbnRlbnQiLAogICAgICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGNvbnRlbnQgb2YgdGhlIGdpdmVuIHJl
c291cmNlLiIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlv
biI6ICJGcmFtZSBpZCB0byBnZXQgcmVzb3VyY2UgZm9yLiIgfSwKKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwgImRlc2Ny
aXB0aW9uIjogIkZyYW1lIGlkIHRvIGdldCByZXNvdXJjZSBmb3IuIiB9LAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6
ICJVUkwgb2YgdGhlIHJlc291cmNlIHRvIGdldCBjb250ZW50IGZvci4iIH0KICAgICAgICAgICAg
ICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwpAQCAtMjE5LDcgKzIxNiw3IEBA
CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAic2VhcmNoSW5SZXNvdXJjZSIsCiAgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGVzIGZvciBnaXZlbiBzdHJpbmcgaW4gcmVzb3Vy
Y2UgY29udGVudC4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3Jp
cHRpb24iOiAiRnJhbWUgaWQgZm9yIHJlc291cmNlIHRvIHNlYXJjaCBpbi4iIH0sCisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJ
ZCIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBpZCBmb3IgcmVzb3VyY2UgdG8gc2VhcmNoIGluLiIg
fSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiVVJMIG9mIHRoZSByZXNvdXJjZSB0byBzZWFyY2ggaW4uIiB9LAog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInF1ZXJ5IiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIlN0cmluZyB0byBzZWFyY2ggZm9yLiIgIH0sCiAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgc2VhcmNoIGlzIGNhc2Ugc2Vu
c2l0aXZlLiIgfSwKQEAgLTI3MCw3ICsyNjcsNyBAQAogICAgICAgICAgICAgICAgICJuYW1lIjog
ImZyYW1lRGV0YWNoZWQiLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3
aGVuIGZyYW1lIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gaXRzIHBhcmVudC4iLAogICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZy
YW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIGZyYW1l
IHRoYXQgaGFzIGJlZW4gZGV0YWNoZWQuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJJ
ZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMgYmVlbiBkZXRhY2hlZC4iIH0KICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9CkBAIC0z
MzIsNyArMzI5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RHcm91
cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJT
eW1ib2xpYyBncm91cCBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVsZWFzZSBtdWx0aXBsZSBv
YmplY3RzLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpbmNsdWRlQ29tbWFu
ZExpbmVBUEkiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIkRldGVybWluZXMgd2hldGhlciBDb21tYW5kIExpbmUgQVBJIHNob3VsZCBiZSBhdmFp
bGFibGUgZHVyaW5nIHRoZSBldmFsdWF0aW9uLiIsICJoaWRkZW4iOiB0cnVlIH0sCiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9Ob3RQYXVzZU9uRXhjZXB0aW9ucyIsICJ0eXBlIjog
ImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIHdo
ZXRoZXIgZXZhbHVhdGlvbiBzaG91bGQgc3RvcCBvbiBleGNlcHRpb25zLiBPdmVycmlkZXMgc2V0
UGF1c2VPbkV4Y2VwdGlvbiBzdGF0ZS4iLCAiaGlkZGVuIjogdHJ1ZSB9LAotICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIGluIHdoaWNoIGZyYW1lIHRvIHBlcmZv
cm0gZXZhbHVhdGlvbi4iLCAiaGlkZGVuIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIGluIHdoaWNoIGZyYW1lIHRvIHBlcmZv
cm0gZXZhbHVhdGlvbi4iLCAiaGlkZGVuIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInJldHVybkJ5VmFsdWUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIldoZXRoZXIgdGhlIHJlc3VsdCBpcyBleHBlY3RlZCB0byBi
ZSBhIEpTT04gb2JqZWN0IHRoYXQgc2hvdWxkIGJlIHNlbnQgYnkgdmFsdWUuIiB9CiAgICAgICAg
ICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKQEAgLTQ4Nyw2ICs0ODQs
MTIgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGxvYWRlciBpZGVu
dGlmaWVyLiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ImlkIjogIkZyYW1lSWQiLAorICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAg
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBmcmFtZSBpZGVudGlmaWVyLiIsCisg
ICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgImlkIjogIlJlcXVlc3RJZCIsCiAgICAgICAgICAgICAgICAg
InR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVl
IHJlcXVlc3QgaWRlbnRpZmllci4iCkBAIC02NTEsNyArNjU0LDcgQEAKICAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBwYWdlIGlzIGFib3V0IHRvIHNlbmQgSFRUUCBy
ZXF1ZXN0LiIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgIiRyZWYiOiAiUmVxdWVzdElkIiwgImRlc2Ny
aXB0aW9uIjogIlJlcXVlc3QgaWRlbnRpZmllci4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJGcmFt
ZSBpZGVudGlmaWVyLiIsICJoaWRkZW4iOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiRnJh
bWUgaWRlbnRpZmllci4iLCAiaGlkZGVuIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImxvYWRlcklkIiwgIiRyZWYiOiAiTG9hZGVySWQiLCAiZGVzY3JpcHRpb24iOiAi
TG9hZGVyIGlkZW50aWZpZXIuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRv
Y3VtZW50VVJMIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUg
ZG9jdW1lbnQgdGhpcyByZXF1ZXN0IGlzIGxvYWRlZCBmb3IuIiB9LAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInJlcXVlc3QiLCAiJHJlZiI6ICJSZXF1ZXN0IiwgImRlc2NyaXB0aW9u
IjogIlJlcXVlc3QgZGF0YS4iIH0sCkBAIC02NzMsNiArNjc2LDggQEAKICAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBIVFRQIHJlc3BvbnNlIGlzIGF2YWlsYWJsZS4i
LAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInJlcXVlc3RJZCIsICIkcmVmIjogIlJlcXVlc3RJZCIsICJkZXNjcmlwdGlvbiI6
ICJSZXF1ZXN0IGlkZW50aWZpZXIuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImZyYW1lSWQiLCAiJHJlZiI6ICJGcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIGlkZW50
aWZpZXIuIiwgImhpZGRlbiI6IHRydWUgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJsb2FkZXJJZCIsICIkcmVmIjogIkxvYWRlcklkIiwgImRlc2NyaXB0aW9uIjogIkxvYWRlciBp
ZGVudGlmaWVyLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lc3RhbXAi
LCAiJHJlZiI6ICJUaW1lc3RhbXAiLCAiZGVzY3JpcHRpb24iOiAiVGltZXN0YW1wLiIgfSwKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgIiRyZWYiOiAiUGFnZS5SZXNvdXJj
ZVR5cGUiLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgdHlwZS4iIH0sCiAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicmVzcG9uc2UiLCAiJHJlZiI6ICJSZXNwb25zZSIsICJkZXNjcmlw
dGlvbiI6ICJSZXNwb25zZSBkYXRhLiIgfQpAQCAtNzExLDcgKzcxNiw3IEBACiAgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gSFRUUCByZXF1ZXN0IGhhcyBiZWVuIHNl
cnZlZCBmcm9tIG1lbW9yeSBjYWNoZS4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIsICIkcmVmIjogIlJl
cXVlc3RJZCIsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0IGlkZW50aWZpZXIuIiB9LAotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiRnJhbWUgaWRlbnRpZmllci4iLCAiaGlkZGVuIjogdHJ1ZSB9LAorICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJGcmFtZUlkIiwgImRl
c2NyaXB0aW9uIjogIkZyYW1lIGlkZW50aWZpZXIuIiwgImhpZGRlbiI6IHRydWUgfSwKICAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsb2FkZXJJZCIsICIkcmVmIjogIkxvYWRlcklkIiwg
ImRlc2NyaXB0aW9uIjogIkxvYWRlciBpZGVudGlmaWVyLiIgfSwKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJkb2N1bWVudFVSTCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlv
biI6ICJVUkwgb2YgdGhlIGRvY3VtZW50IHRoaXMgcmVxdWVzdCBpcyBsb2FkZWQgZm9yLiIgfSwK
ICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lc3RhbXAiLCAiJHJlZiI6ICJUaW1l
c3RhbXAiLCAiZGVzY3JpcHRpb24iOiAiVGltZXN0YW1wLiIgfSwKQEAgLTkzNyw3ICs5NDIsNyBA
QAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkZyYW1lIGlkZW50aWZpZXIgLSBtYW5pZmVzdCBVUkwgcGFpci4iLAogICAg
ICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRnJhbWUgaWRl
bnRpZmllci4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIk
cmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBpZGVudGlmaWVy
LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtYW5pZmVzdFVSTCIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNYW5pZmVzdCBVUkwuIiB9LAogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInN0YXR1cyIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3Jp
cHRpb24iOiAiQXBwbGljYXRpb24gY2FjaGUgc3RhdHVzLiIgfQogICAgICAgICAgICAgICAgIF0K
QEAgLTk1OCw3ICs5NjMsNyBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1l
IjogImdldE1hbmlmZXN0Rm9yRnJhbWUiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgZnJhbWUgY29udGFpbmluZyBk
b2N1bWVudCB3aG9zZSBtYW5pZmVzdCBpcyByZXRyaWV2ZWQuIiB9CisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNj
cmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBmcmFtZSBjb250YWluaW5nIGRvY3VtZW50IHdo
b3NlIG1hbmlmZXN0IGlzIHJldHJpZXZlZC4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1h
bmlmZXN0VVJMIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1hbmlmZXN0IFVS
TCBmb3IgZG9jdW1lbnQgaW4gdGhlIGdpdmVuIGZyYW1lLiIgfQpAQCAtOTY4LDcgKzk3Myw3IEBA
CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0QXBwbGljYXRpb25D
YWNoZUZvckZyYW1lIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIGZyYW1lIGNvbnRhaW5pbmcgZG9jdW1lbnQgd2hv
c2UgYXBwbGljYXRpb24gY2FjaGUgaXMgcmV0cmlldmVkLiIgfQorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3Jp
cHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgZnJhbWUgY29udGFpbmluZyBkb2N1bWVudCB3aG9z
ZSBhcHBsaWNhdGlvbiBjYWNoZSBpcyByZXRyaWV2ZWQuIiB9CiAgICAgICAgICAgICAgICAgXSwK
ICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJhcHBsaWNhdGlvbkNhY2hlIiwgIiRyZWYiOiAiQXBwbGljYXRpb25DYWNoZSIsICJkZXNj
cmlwdGlvbiI6ICJSZWxldmFudCBhcHBsaWNhdGlvbiBjYWNoZSBkYXRhIGZvciB0aGUgZG9jdW1l
bnQgaW4gZ2l2ZW4gZnJhbWUuIiB9CkBAIC05ODAsNyArOTg1LDcgQEAKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAibmFtZSI6ICJhcHBsaWNhdGlvbkNhY2hlU3RhdHVzVXBkYXRlZCIs
CiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJJZGVu
dGlmaWVyIG9mIHRoZSBmcmFtZSBjb250YWluaW5nIGRvY3VtZW50IHdob3NlIGFwcGxpY2F0aW9u
IGNhY2hlIHVwZGF0ZWQgc3RhdHVzLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIklk
ZW50aWZpZXIgb2YgdGhlIGZyYW1lIGNvbnRhaW5pbmcgZG9jdW1lbnQgd2hvc2UgYXBwbGljYXRp
b24gY2FjaGUgdXBkYXRlZCBzdGF0dXMuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogIm1hbmlmZXN0VVJMIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1hbmlm
ZXN0IFVSTC4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhdHVzIiwgInR5
cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVkIGFwcGxpY2F0aW9uIGNhY2hl
IHN0YXR1cy4iIH0KICAgICAgICAgICAgICAgICBdCkBAIC0xMjcwLDcgKzEyNzUsNyBAQAogICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImhpZ2hsaWdodEZyYW1lIiwKICAg
ICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJmcmFtZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZp
ZXIgb2YgdGhlIGZyYW1lIHRvIGhpZ2hsaWdodC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlv
biI6ICJJZGVudGlmaWVyIG9mIHRoZSBmcmFtZSB0byBoaWdobGlnaHQuIiB9LAogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImNvbnRlbnRDb2xvciIsICIkcmVmIjogIlJHQkEiLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGNvbnRlbnQgYm94IGhpZ2hsaWdodCBm
aWxsIGNvbG9yIChkZWZhdWx0OiB0cmFuc3BhcmVudCkuIiB9LAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImNvbnRlbnRPdXRsaW5lQ29sb3IiLCAiJHJlZiI6ICJSR0JBIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBjb250ZW50IGJveCBoaWdobGlnaHQgb3V0
bGluZSBjb2xvciAoZGVmYXVsdDogdHJhbnNwYXJlbnQpLiIgfQogICAgICAgICAgICAgICAgIF0s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAppbmRleCAyZTkw
NzA3YzZiNWQ2Njg0YmUwYjQ2NjhjNDMwNTJhM2RmYjNhNTUzLi41MDMyYzE3MjZjNTBmMWUyNmQx
ZjlmYjVmNTcxZTZkN2U2YzRkMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBZ2VudC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6aW5z
cGVjdGVkUGFnZURlc3Ryb3llZCgpCiB2b2lkIEluc3BlY3RvckFnZW50OjpyZXN0b3JlKCkKIHsK
ICAgICBpZiAobV9kaWRDb21taXRMb2FkRmlyZWQpCi0gICAgICAgIG1fZnJvbnRlbmQtPmluc3Bl
Y3RvcigpLT5mcm9udGVuZFJldXNlZCgpOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENvbW1pdExvYWQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKSwgbV9pbnNwZWN0
ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkpOwogfQogCiB2
b2lkIEluc3BlY3RvckFnZW50OjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqIGZy
YW1lLCBET01XcmFwcGVyV29ybGQqIHdvcmxkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IGZiMjFlNzMzMmRkNjZmNmE2
N2Y2N2NkZmU2YzUwNTMzOWQ1MGU4NjkuLjQwYTE1NjVhMzRlNjYzMjAxMTJiNjI2MzJmMDhmMGM2
ZWY3NTZmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lkIEluc3BlY3RvclJlc291
cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZQogICAgICAgICBtX3Jlc291cmNlc0RhdGEtPnJlc3BvbnNlUmVjZWl2ZWQocmVxdWVzdElk
LCBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChsb2FkZXItPmZyYW1lKCkpLCByZXNwb25zZSk7CiAgICAg
fQogICAgIG1fcmVzb3VyY2VzRGF0YS0+c2V0UmVzb3VyY2VUeXBlKHJlcXVlc3RJZCwgdHlwZSk7
Ci0gICAgbV9mcm9udGVuZC0+cmVzcG9uc2VSZWNlaXZlZChyZXF1ZXN0SWQsIGN1cnJlbnRUaW1l
KCksIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VUeXBlU3RyaW5nKHR5cGUpLCByZXNvdXJj
ZVJlc3BvbnNlKTsKKyAgICBtX2Zyb250ZW5kLT5yZXNwb25zZVJlY2VpdmVkKHJlcXVlc3RJZCwg
bV9wYWdlQWdlbnQtPmZyYW1lSWQobG9hZGVyLT5mcmFtZSgpKSwgbV9wYWdlQWdlbnQtPmxvYWRl
cklkKGxvYWRlciksIGN1cnJlbnRUaW1lKCksIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VU
eXBlU3RyaW5nKHR5cGUpLCByZXNvdXJjZVJlc3BvbnNlKTsKICAgICAvLyBJZiB3ZSByZXZhbGlk
YXRlZCB0aGUgcmVzb3VyY2UgYW5kIGdvdCBOb3QgbW9kaWZpZWQsIHNlbmQgY29udGVudCBsZW5n
dGggZm9sbG93aW5nIGRpZFJlY2VpdmVSZXNwb25zZQogICAgIC8vIGFzIHRoZXJlIHdpbGwgYmUg
bm8gY2FsbHMgdG8gZGlkUmVjZWl2ZURhdGEgZnJvbSB0aGUgbmV0d29yayBzdGFjay4KICAgICBp
ZiAoY2FjaGVkUmVzb3VyY2VTaXplICYmIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNh
dGlvbkNhY2hlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fw
cGxpY2F0aW9uQ2FjaGVNb2RlbC5qcwppbmRleCA0Yjk1YWRiNTQ2YzVhY2Q3Zjc3MWYxMmNmNWZj
YTllZTRmYmE3OGZjLi5mYWYzNWI4YzZmZmY3MGI5Y2QxOTMxNjVlOWU4ZTYxMTJjNzE5YjNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9u
Q2FjaGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Fw
cGxpY2F0aW9uQ2FjaGVNb2RlbC5qcwpAQCAtNTYsMTkgKzU2LDE4IEBAIFdlYkluc3BlY3Rvci5B
cHBsaWNhdGlvbkNhY2hlTW9kZWwuRXZlbnRUeXBlcyA9IHsKIFdlYkluc3BlY3Rvci5BcHBsaWNh
dGlvbkNhY2hlTW9kZWwucHJvdG90eXBlID0gewogICAgIF9mcmFtZU5hdmlnYXRlZDogZnVuY3Rp
b24oZXZlbnQpCiAgICAgewotICAgICAgICBpZiAoZXZlbnQuZGF0YVsiaXNNYWluRnJhbWUiXSkg
eworICAgICAgICB2YXIgZnJhbWUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVGcmFtZX0gKi8gZXZlbnQuZGF0YTsKKyAgICAgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkp
IHsKICAgICAgICAgICAgIHRoaXMuX21haW5GcmFtZU5hdmlnYXRlZCgpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIGZyYW1lID0gLyoqIEB0eXBlIHtQYWdl
QWdlbnQuRnJhbWV9ICovIGV2ZW50LmRhdGFbImZyYW1lIl07Ci0gICAgICAgIHZhciBmcmFtZUlk
ID0gZnJhbWUuaWQ7Ci0gICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5nZXRNYW5pZmVzdEZv
ckZyYW1lKGZyYW1lSWQsIHRoaXMuX21hbmlmZXN0Rm9yRnJhbWVMb2FkZWQuYmluZCh0aGlzLCBm
cmFtZUlkKSk7CisgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5nZXRNYW5pZmVzdEZvckZy
YW1lKGZyYW1lLmlkLCB0aGlzLl9tYW5pZmVzdEZvckZyYW1lTG9hZGVkLmJpbmQodGhpcywgZnJh
bWUuaWQpKTsKICAgICB9LAogICAgIAogICAgIF9mcmFtZURldGFjaGVkOiBmdW5jdGlvbihldmVu
dCkKICAgICB7Ci0gICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciBm
cmFtZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lfSAqLyBldmVu
dC5kYXRhOwogICAgICAgICB0aGlzLl9mcmFtZU1hbmlmZXN0UmVtb3ZlZChmcmFtZS5pZCk7CiAg
ICAgfSwKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMKaW5kZXggMzdmYmNiYTdkMzhl
Y2ZkMTE1YmFmOWVjOGYwMzk2ODU4MDRmMDMwMi4uNzQzMWU5ZjcwYmFlODhhOWI0MzFmNWVhMTRj
ODA3YTE4OWU1MmJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMKQEAgLTQ1LDcgKzQ1
LDYgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5wcm90b3R5cGUgPSB7
CiAgICAgX2ZyYW1lQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIGZy
YW1lID0gZXZlbnQuZGF0YTsKLSAgICAgICAgdmFyIHBhcmVudEZyYW1lSWQgPSBmcmFtZS5wYXJl
bnRJZDsKICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgV2ViSW5zcGVjdG9yLkZyYW1lRXZhbHVh
dGlvbkNvbnRleHQoZnJhbWUpOwogICAgICAgICB0aGlzLl9mcmFtZUlkVG9Db250ZXh0W2ZyYW1l
LmlkXSA9IGNvbnRleHQ7CiAgICAgICAgIHRoaXMuX2NvbnNvbGVWaWV3LmFkZENvbnRleHQoY29u
dGV4dCk7CkBAIC01Myw3ICs1Miw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1h
bmFnZXIucHJvdG90eXBlID0gewogCiAgICAgX2ZyYW1lTmF2aWdhdGVkOiBmdW5jdGlvbihldmVu
dCkKICAgICB7Ci0gICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRhdGEuZnJhbWU7CisgICAgICAg
IHZhciBmcmFtZSA9IGV2ZW50LmRhdGE7CiAgICAgICAgIHZhciBjb250ZXh0ID0gdGhpcy5fZnJh
bWVJZFRvQ29udGV4dFtmcmFtZS5pZF07CiAgICAgICAgIGlmIChjb250ZXh0KQogICAgICAgICAg
ICAgY29udGV4dC5fZnJhbWVOYXZpZ2F0ZWQoZnJhbWUpOwpAQCAtMTA1LDcgKzEwNCw3IEBAIFdl
Ykluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0LnByb3RvdHlwZSA9CiAKICAgICBnZXQg
ZGlzcGxheU5hbWUoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mcmFtZS5wYXJlbnRJZCkK
KyAgICAgICAgaWYgKCF0aGlzLl9mcmFtZS5wYXJlbnRGcmFtZSkKICAgICAgICAgICAgIHJldHVy
biAiPHRvcCBmcmFtZT4iOwogICAgICAgICB2YXIgbmFtZSA9IHRoaXMuX2ZyYW1lLm5hbWUgfHwg
IiI7CiAgICAgICAgIHZhciBzdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5kaXNwbGF5
TmFtZSh0aGlzLl9mcmFtZS51cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggNzFmNDZhNjYzZmRlNzNiZjgwMjg4
MzJlMzJlYTk1NDliYjNlNmIyOS4uZDZjZjcwNmQ1YTRhN2VkNTEyNDU5ZDBlNzk5NmU0ZDAyY2Q0
OWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtNYW5hZ2VyLmpzCkBAIC01MCw3ICs1MCw4IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFu
YWdlciA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVz
ID0gewogICAgIFJlc291cmNlU3RhcnRlZDogIlJlc291cmNlU3RhcnRlZCIsCiAgICAgUmVzb3Vy
Y2VVcGRhdGVkOiAiUmVzb3VyY2VVcGRhdGVkIiwKLSAgICBSZXNvdXJjZUZpbmlzaGVkOiAiUmVz
b3VyY2VGaW5pc2hlZCIKKyAgICBSZXNvdXJjZUZpbmlzaGVkOiAiUmVzb3VyY2VGaW5pc2hlZCIs
CisgICAgUmVzb3VyY2VVcGRhdGVEcm9wcGVkOiAiUmVzb3VyY2VVcGRhdGVEcm9wcGVkIgogfQog
CiBXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIucHJvdG90eXBlID0gewpAQCAtMTg5LDcgKzE5
MCw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICAvLyBGSVhNRTogbW92ZSB0aGlzIGNoZWNrIHRvIHRoZSBiYWNrZW5kLgogICAgICAg
ICAgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIHRoaXMucmVzcG9uc2VSZWNlaXZlZChyZXF1ZXN0SWQsIHRpbWUsICJPdGhlciIs
IHJlZGlyZWN0UmVzcG9uc2UpOworICAgICAgICAgICAgdGhpcy5yZXNwb25zZVJlY2VpdmVkKHJl
cXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQsIHRpbWUsICJPdGhlciIsIHJlZGlyZWN0UmVzcG9u
c2UpOwogICAgICAgICAgICAgcmVzb3VyY2UgPSB0aGlzLl9hcHBlbmRSZWRpcmVjdChyZXF1ZXN0
SWQsIHRpbWUsIHJlcXVlc3QudXJsKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZXNv
dXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlKHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVySWQs
IHJlcXVlc3QudXJsLCBkb2N1bWVudFVSTCwgaW5pdGlhdG9yLCBzdGFja1RyYWNlKTsKQEAgLTIw
NywxOCArMjA4LDI2IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgcmVzb3VyY2UuY2FjaGVkID0gdHJ1
ZTsKLSAgICAgICAgdGhpcy5fdXBkYXRlUmVzb3VyY2UocmVzb3VyY2UpOwogICAgIH0sCiAKLSAg
ICByZXNwb25zZVJlY2VpdmVkOiBmdW5jdGlvbihyZXF1ZXN0SWQsIHRpbWUsIHJlc291cmNlVHlw
ZSwgcmVzcG9uc2UpCisgICAgcmVzcG9uc2VSZWNlaXZlZDogZnVuY3Rpb24ocmVxdWVzdElkLCBm
cmFtZUlkLCBsb2FkZXJJZCwgdGltZSwgcmVzb3VyY2VUeXBlLCByZXNwb25zZSkKICAgICB7CiAg
ICAgICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgY2hlY2sgdG8gdGhlIGJhY2tlbmQuCiAgICAgICAg
IGlmICh0aGlzLl9pc051bGwocmVzcG9uc2UpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2luZmxpZ2h0UmVzb3VyY2VzQnlJZFtyZXF1ZXN0SWRd
OwotICAgICAgICBpZiAoIXJlc291cmNlKQorICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAg
ICAgICAgICAvLyBXZSBtaXNzZWQgdGhlIHJlcXVlc3RXaWxsQmVTZW50LgorICAgICAgICAgICAg
dmFyIGV2ZW50RGF0YSA9IHt9OworICAgICAgICAgICAgZXZlbnREYXRhLnVybCA9IHJlc3BvbnNl
LnVybDsKKyAgICAgICAgICAgIGV2ZW50RGF0YS5mcmFtZUlkID0gZnJhbWVJZDsKKyAgICAgICAg
ICAgIGV2ZW50RGF0YS5sb2FkZXJJZCA9IGxvYWRlcklkOworICAgICAgICAgICAgZXZlbnREYXRh
LnJlc291cmNlVHlwZSA9IHJlc291cmNlVHlwZTsKKyAgICAgICAgICAgIGV2ZW50RGF0YS5taW1l
VHlwZSA9IHJlc3BvbnNlLm1pbWVUeXBlOworICAgICAgICAgICAgdGhpcy5fbWFuYWdlci5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlw
ZXMuUmVzb3VyY2VVcGRhdGVEcm9wcGVkLCBldmVudERhdGEpOwogICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CiAKICAgICAgICAgcmVzb3VyY2UucmVzcG9uc2VSZWNlaXZlZFRpbWUgPSB0
aW1lOwogICAgICAgICByZXNvdXJjZS50eXBlID0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGVb
cmVzb3VyY2VUeXBlXTsKQEAgLTI0Nyw3ICsyNTYsNiBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0Rp
c3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9pbmZs
aWdodFJlc291cmNlc0J5SWRbcmVxdWVzdElkXTsKICAgICAgICAgaWYgKCFyZXNvdXJjZSkKICAg
ICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB0aGlzLl9maW5pc2hSZXNvdXJjZShyZXNvdXJj
ZSwgZmluaXNoVGltZSk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwppbmRleCAwMmUzMWQ3OWQ4OGRlMTUzNjU3YzYy
NmY1ZDI0MjY4NzE3OWNhN2FkLi5jM2VkZWM3NGUzNmQwNGU3NDQ1OTQ1YmQ0ZDRkMWNiMzVlMWIy
OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtQYW5lbC5qcwpAQCAtNzk4LDExICs3OTgsMTIgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dW
aWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9tYWluRnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGV2
ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGxvYWRlcklkID0gZXZlbnQuZGF0YS5sb2FkZXJJZDsK
LSAgICAgICAgLy8gTWFpbiBmcmFtZSBjb21taXR0ZWQgbG9hZC4KICAgICAgICAgaWYgKHRoaXMu
X3ByZXNlcnZlTG9nVG9nZ2xlLnRvZ2dsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAg
ICAgdmFyIGZyYW1lID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWV9
ICovIGV2ZW50LmRhdGE7CisgICAgICAgIHZhciBsb2FkZXJJZCA9IGZyYW1lLmxvYWRlcklkOwor
CiAgICAgICAgIC8vIFByZXNlcnZlIHByb3Zpc2lvbmFsIGxvYWQgcmVzb3VyY2VzLgogICAgICAg
ICB2YXIgcmVzb3VyY2VzVG9QcmVzZXJ2ZSA9IFtdOwogICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHRoaXMuX3Jlc291cmNlcy5sZW5ndGg7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKaW5kZXggMzVk
YjdjMDg5OGYyYmJiY2FhMjA0ZDQ4MTE2NmI1OTMyNGIzOWI5YS4uZmIzNzgwOTBmZTNmMTcwMWEy
NTkyZGU3ZjFjYmM3NGU3MTJhNGVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCkBAIC0zNSw5ICszNSw5IEBA
CiAgKi8KIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbCA9IGZ1bmN0aW9uKG5ldHdvcmtN
YW5hZ2VyKQogewotICAgIG5ldHdvcmtNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuUmVzb3VyY2VTdGFydGVkLCB0aGlzLl9vblJl
c291cmNlU3RhcnRlZCwgdGhpcyk7CiAgICAgbmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZVVwZGF0ZWQs
IHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlzKTsKICAgICBuZXR3b3JrTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlc291
cmNlRmluaXNoZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlzKTsKKyAgICBuZXR3b3Jr
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVu
dFR5cGVzLlJlc291cmNlVXBkYXRlRHJvcHBlZCwgdGhpcy5fb25SZXNvdXJjZVVwZGF0ZURyb3Bw
ZWQsIHRoaXMpOwogCiAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLkV2ZW50cy5NZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNv
bGVNZXNzYWdlQWRkZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuUmVwZWF0Q291bnRVcGRh
dGVkLCB0aGlzLl9jb25zb2xlTWVzc2FnZUFkZGVkLCB0aGlzKTsKQEAgLTQ1LDcgKzQ1LDcgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsID0gZnVuY3Rpb24obmV0d29ya01hbmFnZXIp
CiAKICAgICBQYWdlQWdlbnQuZW5hYmxlKCk7CiAKLSAgICB0aGlzLmZyb250ZW5kUmV1c2VkKCk7
CisgICAgdGhpcy5fZmV0Y2hSZXNvdXJjZVRyZWUoKTsKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJl
Z2lzdGVyUGFnZURpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5QYWdlRGlzcGF0Y2hlcih0aGlz
KSk7CiAKICAgICB0aGlzLl9wZW5kaW5nQ29uc29sZU1lc3NhZ2VzID0ge307CkBAIC02NiwxMiAr
NjYsOSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcyA9IHsKIH0K
IAogV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9IHsKLSAgICBmcm9u
dGVuZFJldXNlZDogZnVuY3Rpb24oKQorICAgIF9mZXRjaFJlc291cmNlVHJlZTogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVzb3VyY2VzQnlVUkwgPSB7fTsKLSAgICAgICAgdGhp
cy5fcmVzb3VyY2VzQnlGcmFtZUlkID0ge307Ci0gICAgICAgIHRoaXMuX3N1YmZyYW1lcyA9IHt9
OwotICAgICAgICB0aGlzLl9mcmFtZUlkcyA9IHt9OworICAgICAgICB0aGlzLl9mcmFtZXMgPSB7
fTsKICAgICAgICAgZGVsZXRlIHRoaXMuX2NhY2hlZFJlc291cmNlc1Byb2Nlc3NlZDsKICAgICAg
ICAgUGFnZUFnZW50LmdldFJlc291cmNlVHJlZSh0aGlzLl9wcm9jZXNzQ2FjaGVkUmVzb3VyY2Vz
LmJpbmQodGhpcykpOwogICAgIH0sCkBAIC04NCwxMCArODEsOCBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2
ZW50VHlwZXMuV2lsbExvYWRDYWNoZWRSZXNvdXJjZXMpOwotICAgICAgICB0aGlzLl9hZGRGcmFt
ZXNSZWN1cnNpdmVseShtYWluRnJhbWVQYXlsb2FkKTsKLQogICAgICAgICBXZWJJbnNwZWN0b3Iu
aW5zcGVjdGVkUGFnZVVSTCA9IG1haW5GcmFtZVBheWxvYWQuZnJhbWUudXJsOwotCisgICAgICAg
IHRoaXMuX2FkZEZyYW1lc1JlY3Vyc2l2ZWx5KG51bGwsIG1haW5GcmFtZVBheWxvYWQpOwogICAg
ICAgICB0aGlzLl9kaXNwYXRjaEluc3BlY3RlZFVSTENoYW5nZWQoKTsKICAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2
ZW50VHlwZXMuQ2FjaGVkUmVzb3VyY2VzTG9hZGVkKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLlJl
c291cmNlLnJlc3RvcmVSZXZpc2lvbnMoKTsKQEAgLTEwMSw4MSArOTYsNjYgQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlw
ZXMuSW5zcGVjdGVkVVJMQ2hhbmdlZCwgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwpOwog
ICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVGcmFtZX0gZnJhbWUKKyAgICAgKi8KICAgICBfYWRkRnJhbWU6IGZ1bmN0aW9uKGZyYW1lKQog
ICAgIHsKLSAgICAgICAgZnJhbWUucGFyZW50SWQgPSBmcmFtZS5wYXJlbnRJZCB8fCAiIjsKLSAg
ICAgICAgdGhpcy5fZnJhbWVJZHNbZnJhbWUuaWRdID0gZnJhbWU7Ci0gICAgICAgIHZhciBzdWJm
cmFtZXMgPSB0aGlzLl9zdWJmcmFtZXNbZnJhbWUucGFyZW50SWRdOwotICAgICAgICBpZiAoIXN1
YmZyYW1lcykgewotICAgICAgICAgICAgc3ViZnJhbWVzID0gW107Ci0gICAgICAgICAgICB0aGlz
Ll9zdWJmcmFtZXNbZnJhbWUucGFyZW50SWRdID0gc3ViZnJhbWVzOwotICAgICAgICB9Ci0KLSAg
ICAgICAgc3ViZnJhbWVzLnB1c2goZnJhbWUpOworICAgICAgICB0aGlzLl9mcmFtZXNbZnJhbWUu
aWRdID0gZnJhbWU7CisgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQorICAgICAgICAg
ICAgdGhpcy5tYWluRnJhbWUgPSBmcmFtZTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVB
ZGRlZCwgZnJhbWUpOwogICAgIH0sCiAKLSAgICBzdWJmcmFtZXM6IGZ1bmN0aW9uKHBhcmVudEZy
YW1lSWQpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc3ViZnJhbWVzW3BhcmVudEZyYW1l
SWRdIHx8IFtdOwotICAgIH0sCi0KLSAgICBmcmFtZUZvcklkOiBmdW5jdGlvbihmcmFtZUlkKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lSWRzW2ZyYW1lSWRdOwotICAgIH0sCi0K
LSAgICByZXNvdXJjZXM6IGZ1bmN0aW9uKGZyYW1lSWQpCi0gICAgewotICAgICAgICB2YXIgcmVz
dWx0ID0gW107Ci0gICAgICAgIHZhciByZXNvdXJjZXMgPSB0aGlzLl9yZXNvdXJjZXNCeUZyYW1l
SWRbZnJhbWVJZF0gfHwge307Ci0gICAgICAgIGZvciAodmFyIHVybCBpbiByZXNvdXJjZXMpCi0g
ICAgICAgICAgICByZXN1bHQucHVzaChyZXNvdXJjZXNbdXJsXSk7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfSwKLQotICAgIF9mcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oZnJhbWUsIGxv
YWRlcklkKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7UGFnZUFnZW50LkZyYW1lfSBmcmFtZVBh
eWxvYWQKKyAgICAgKi8KKyAgICBfZnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGZyYW1lUGF5bG9h
ZCkKICAgICB7Ci0gICAgICAgIHZhciBpc01haW5GcmFtZSA9ICFmcmFtZS5wYXJlbnRJZDsKKyAg
ICAgICAgaWYgKHRoaXMuX2Zyb250ZW5kUmV1c2VkKGZyYW1lUGF5bG9hZCkpCisgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgaWYgKGlzTWFpbkZyYW1lKSB7Ci0gICAgICAgICAgICB0aGlz
Ll9jbGVhbnVwRnJhbWVzQWZ0ZXJOYXZpZ2F0aW9uKGZyYW1lKTsKLSAgICAgICAgICAgIGlmICh0
aGlzLnJlc291cmNlRm9yVVJMKGZyYW1lLnVybCkpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmluc3BlY3RlZFBhZ2VVUkwgPSBmcmFtZS51cmw7Ci0gICAgICAgIH0KICAgICAgICAgLy8g
RG8gbm90aGluZyB1bmxlc3MgY2FjaGVkIHJlc291cmNlIHRyZWUgaXMgcHJvY2Vzc2VkIC0gaXQg
d2lsbCBvdmVyd3JpdGUgZXZlcnl0aGluZy4KICAgICAgICAgaWYgKCF0aGlzLl9jYWNoZWRSZXNv
dXJjZXNQcm9jZXNzZWQpCiAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gQWRkIGZy
YW1lIGluIGNhc2UgaXQgaXMgc2VlbiBmb3IgdGhlIGZpcnN0IHRpbWUsIG90aGVyd2lzZSwgZG8g
YSB3aXRoaW4tZnJhbWUgY2xlYW51cC4KLSAgICAgICAgaWYgKCF0aGlzLl9mcmFtZUlkc1tmcmFt
ZS5pZF0pCisgICAgICAgIHZhciBmcmFtZSA9IHRoaXMuX2ZyYW1lc1tmcmFtZVBheWxvYWQuaWRd
OworICAgICAgICBpZiAoZnJhbWUpIHsKKyAgICAgICAgICAgIC8vIE5hdmlnYXRpb24gd2l0aGlu
IGV4aXN0aW5nIGZyYW1lLgorICAgICAgICAgICAgZnJhbWUubmF2aWdhdGUoZnJhbWVQYXlsb2Fk
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEVpdGhlciBhIG5ldyBmcmFtZSBv
ciBhIG1haW4gZnJhbWUgbmF2aWdhdGlvbiB0byB0aGUgbmV3IGJhY2tlbmQgcHJvY2Vzcy4gCisg
ICAgICAgICAgICB2YXIgcGFyZW50RnJhbWUgPSB0aGlzLl9mcmFtZXNbZnJhbWVQYXlsb2FkLnBh
cmVudElkXTsKKyAgICAgICAgICAgIGZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVGcmFtZSh0aGlzLCBwYXJlbnRGcmFtZSwgZnJhbWVQYXlsb2FkKTsKKyAgICAgICAgICAgIGlm
IChmcmFtZS5pc01haW5GcmFtZSgpICYmIHRoaXMubWFpbkZyYW1lKSB7CisgICAgICAgICAgICAg
ICAgLy8gRGVmaW5pdGVseSBhIG5hdmlnYXRpb24gdG8gdGhlIG5ldyBiYWNrZW5kIHByb2Nlc3Mu
CisgICAgICAgICAgICAgICAgdGhpcy5fZnJhbWVEZXRhY2hlZCh0aGlzLm1haW5GcmFtZS5pZCk7
CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLl9hZGRGcmFtZShmcmFtZSk7Ci0gICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGlsZEZyYW1lc0FuZFJlc291cmNl
cyhmcmFtZS5pZCwgbG9hZGVySWQpOwotICAgICAgICAgICAgZnJhbWUucGFyZW50SWQgPSBmcmFt
ZS5wYXJlbnRJZCB8fCAiIjsKLSAgICAgICAgICAgIHRoaXMuX2ZyYW1lSWRzW2ZyYW1lLmlkXSA9
IGZyYW1lOwogICAgICAgICB9Ci0gICAgICAgIC8vIERpc3BhdGNoIGZyYW1lIG5hdmlnYXRlZCBl
dmVudCB0byBjbGllbnRzIHByaW9yIHRvIGZpbGxpbmcgaXQgd2l0aCB0aGUgcmVzb3VyY2VzLgot
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRlZCwgeyBmcmFtZTogZnJhbWUsIGxv
YWRlcklkOiBsb2FkZXJJZCwgaXNNYWluRnJhbWU6IGlzTWFpbkZyYW1lIH0pOwotICAgICAgICBp
ZiAoaXNNYWluRnJhbWUpCi0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5NYWluRnJhbWVOYXZp
Z2F0ZWQsIHsgZnJhbWU6IGZyYW1lLCBsb2FkZXJJZDogbG9hZGVySWQgfSk7CisKKyAgICAgICAg
aWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuaW5zcGVj
dGVkUGFnZVVSTCA9IGZyYW1lLnVybDsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5h
dmlnYXRlZCwgZnJhbWUpOworICAgICAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkKKyAgICAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLk1haW5GcmFtZU5hdmlnYXRlZCwgZnJhbWUpOwogCiAgICAg
ICAgIC8vIEZpbGwgZnJhbWUgd2l0aCByZXRhaW5lZCByZXNvdXJjZXMgKHRoZSBvbmVzIGxvYWRl
ZCB1c2luZyBuZXcgbG9hZGVyKS4KLSAgICAgICAgdmFyIHJlc291cmNlc0ZvckZyYW1lID0gdGhp
cy5fcmVzb3VyY2VzQnlGcmFtZUlkW2ZyYW1lLmlkXTsKLSAgICAgICAgaWYgKHJlc291cmNlc0Zv
ckZyYW1lKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciB1cmwgaW4gcmVzb3VyY2VzRm9yRnJhbWUp
Ci0gICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3VyY2VBZGRlZCwgcmVzb3VyY2Vz
Rm9yRnJhbWVbdXJsXSk7Ci0gICAgICAgIH0KKyAgICAgICAgdmFyIHJlc291cmNlcyA9IGZyYW1l
LnJlc291cmNlcygpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc291cmNlcy5sZW5n
dGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHJlc291
cmNlc1tpXSk7CiAKLSAgICAgICAgaWYgKGlzTWFpbkZyYW1lKQorICAgICAgICBpZiAoZnJhbWUu
aXNNYWluRnJhbWUoKSkKICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5zcGVjdGVkVVJMQ2hh
bmdlZCgpOwogICAgIH0sCiAKLSAgICBfY2xlYW51cEZyYW1lc0FmdGVyTmF2aWdhdGlvbjogZnVu
Y3Rpb24obmV3TWFpbkZyYW1lKQorICAgIF9mcm9udGVuZFJldXNlZDogZnVuY3Rpb24oZnJhbWVQ
YXlsb2FkKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRNYWluRnJhbWVJZCkKLSAg
ICAgICAgICAgIHRoaXMuX2ZyYW1lRGV0YWNoZWQodGhpcy5fY3VycmVudE1haW5GcmFtZUlkKTsK
LSAgICAgICAgdGhpcy5fY3VycmVudE1haW5GcmFtZUlkID0gbmV3TWFpbkZyYW1lLmlkOworICAg
ICAgICBpZiAoIWZyYW1lUGF5bG9hZC5wYXJlbnRJZCAmJiAhV2ViSW5zcGVjdG9yLm5ldHdvcmtM
b2cucmVzb3VyY2VzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhpcy5fZmV0Y2hSZXNvdXJjZVRy
ZWUoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9LAogCiAgICAgX2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGZyYW1lSWQp
CkBAIC0xODQsNjcgKzE2NCw2NSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJv
dG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMuX2NhY2hlZFJlc291cmNlc1Byb2Nlc3NlZCkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9jbGVhckNoaWxkRnJhbWVzQW5k
UmVzb3VyY2VzKGZyYW1lSWQsICIiKTsKLSAgICAgICAgdmFyIGZyYW1lID0gdGhpcy5fZnJhbWVJ
ZHNbZnJhbWVJZF07CisgICAgICAgIHZhciBmcmFtZSA9IHRoaXMuX2ZyYW1lc1tmcmFtZUlkXTsK
KyAgICAgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAo
ZnJhbWUpIHsKLSAgICAgICAgICAgIHZhciBzaWJsaW5ncyA9IHRoaXMuX3N1YmZyYW1lc1tmcmFt
ZS5wYXJlbnRJZF07Ci0gICAgICAgICAgICBpZiAoc2libGluZ3MpCi0gICAgICAgICAgICAgICAg
c2libGluZ3MucmVtb3ZlKGZyYW1lKTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9mcmFtZUlk
c1tmcmFtZUlkXTsKKyAgICAgICAgaWYgKGZyYW1lLnBhcmVudEZyYW1lKSB7CisgICAgICAgICAg
ICBmcmFtZS5wYXJlbnRGcmFtZS5yZW1vdmVDaGlsZEZyYW1lKGZyYW1lKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIC8vIFJlcG9ydCB0aGF0IHJvb3QgaXMgZGV0YWNoZWQKKyAgICAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIGZyYW1lKTsKICAgICAgICAgfQot
Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIGZyYW1lKTsKICAgICB9LAog
Ci0gICAgX29uUmVzb3VyY2VTdGFydGVkOiBmdW5jdGlvbihldmVudCkKKyAgICBfb25SZXNvdXJj
ZVVwZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9jYWNo
ZWRSZXNvdXJjZXNQcm9jZXNzZWQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMu
X2JpbmRSZXNvdXJjZVVSTChldmVudC5kYXRhKTsKKworICAgICAgICB0aGlzLl9hZGRQZW5kaW5n
Q29uc29sZU1lc3NhZ2VzVG9SZXNvdXJjZShldmVudC5kYXRhKTsKKworICAgICAgICB2YXIgcmVz
b3VyY2UgPSBldmVudC5kYXRhOworICAgICAgICBpZiAocmVzb3VyY2UuZmFpbGVkIHx8IHJlc291
cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlhIUikKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICB2YXIgZnJhbWUgPSB0aGlzLl9mcmFtZXNbcmVzb3VyY2UuZnJh
bWVJZF07CisgICAgICAgIGlmIChmcmFtZSkKKyAgICAgICAgICAgIGZyYW1lLl9hZGRSZXNvdXJj
ZShyZXNvdXJjZSk7CiAgICAgfSwKIAotICAgIF9vblJlc291cmNlVXBkYXRlZDogZnVuY3Rpb24o
ZXZlbnQpCisgICAgX29uUmVzb3VyY2VVcGRhdGVEcm9wcGVkOiBmdW5jdGlvbihldmVudCkKICAg
ICB7CiAgICAgICAgIGlmICghdGhpcy5fY2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhciByZXNvdXJjZSA9IGV2ZW50LmRhdGE7Ci0gICAg
ICAgIGlmIChyZXNvdXJjZS5mYWlsZWQpIHsKLSAgICAgICAgICAgIHRoaXMuX3VuYmluZFJlc291
cmNlVVJMKHJlc291cmNlKTsKKyAgICAgICAgdmFyIGZyYW1lSWQgPSBldmVudC5kYXRhLmZyYW1l
SWQ7CisgICAgICAgIHZhciBmcmFtZSA9IHRoaXMuX2ZyYW1lc1tmcmFtZUlkXTsKKyAgICAgICAg
aWYgKCFmcmFtZSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogCi0gICAgICAgIGlm
IChyZXNvdXJjZS50eXBlID09PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5YSFIpIHsKLSAg
ICAgICAgICAgIHRoaXMuX3VuYmluZFJlc291cmNlVVJMKHJlc291cmNlKTsKKyAgICAgICAgdmFy
IHVybCA9IGV2ZW50LmRhdGEudXJsOworICAgICAgICBpZiAoZnJhbWUuX3Jlc291cmNlc01hcFt1
cmxdKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAKLSAgICAgICAgaWYgKHJlc291
cmNlLmZpbmlzaGVkKQotICAgICAgICAgICAgdGhpcy5fYWRkUmVzb3VyY2VUb0ZyYW1lKHJlc291
cmNlKTsKKyAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fY3JlYXRlUmVzb3VyY2UodXJsLCBm
cmFtZS51cmwsIGZyYW1lSWQsIGV2ZW50LmRhdGEubG9hZGVySWQpOworICAgICAgICByZXNvdXJj
ZS50eXBlID0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGVbZXZlbnQuZGF0YS5yZXNvdXJjZVR5
cGVdOworICAgICAgICByZXNvdXJjZS5taW1lVHlwZSA9IGV2ZW50LmRhdGEubWltZVR5cGU7Cisg
ICAgICAgIHJlc291cmNlLmZpbmlzaGVkID0gdHJ1ZTsKKyAgICAgICAgZnJhbWUuX2FkZFJlc291
cmNlKHJlc291cmNlKTsKICAgICB9LAogCi0gICAgX2FkZFJlc291cmNlVG9GcmFtZTogZnVuY3Rp
b24ocmVzb3VyY2UpCisgICAgZnJhbWVGb3JJZDogZnVuY3Rpb24oZnJhbWVJZCkKICAgICB7Ci0g
ICAgICAgIHZhciBmcmFtZUlkID0gcmVzb3VyY2UuZnJhbWVJZDsKLSAgICAgICAgdmFyIHJlc291
cmNlc0ZvckZyYW1lID0gdGhpcy5fcmVzb3VyY2VzQnlGcmFtZUlkW2ZyYW1lSWRdOwotICAgICAg
ICBpZiAoIXJlc291cmNlc0ZvckZyYW1lKSB7Ci0gICAgICAgICAgICByZXNvdXJjZXNGb3JGcmFt
ZSA9IHt9OwotICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VzQnlGcmFtZUlkW2ZyYW1lSWRdID0g
cmVzb3VyY2VzRm9yRnJhbWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc291cmNlc0ZvckZy
YW1lW3Jlc291cmNlLnVybF0gPT09IHJlc291cmNlKSB7Ci0gICAgICAgICAgICAvLyBBbHJlYWR5
IGluIHRoZSB0cmVlLCB3ZSBqdXN0IGdvdCBhbiBleHRyYSB1cGRhdGUuCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICByZXNvdXJjZXNGb3JGcmFtZVtyZXNvdXJjZS51
cmxdID0gcmVzb3VyY2U7Ci0gICAgICAgIHRoaXMuX2JpbmRSZXNvdXJjZVVSTChyZXNvdXJjZSk7
Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHJlc291cmNlKTsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2ZyYW1lc1tmcmFtZUlkXTsKICAgICB9LAogCiAgICAgZm9yQWxsUmVz
b3VyY2VzOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9j
YWxsRm9yRnJhbWVSZXNvdXJjZXMoIiIsIGNhbGxiYWNrKTsKKyAgICAgICAgaWYgKHRoaXMubWFp
bkZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFpbkZyYW1lLl9jYWxsRm9yRnJhbWVS
ZXNvdXJjZXMoY2FsbGJhY2spOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSwKIAogICAg
IF9jb25zb2xlTWVzc2FnZUFkZGVkOiBmdW5jdGlvbihldmVudCkKQEAgLTMwMiwxMTkgKzI4MCwy
NDUgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAg
IHJlc291cmNlRm9yVVJMOiBmdW5jdGlvbih1cmwpCiAgICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fcmVzb3VyY2VzQnlVUkxbdXJsXTsKKyAgICAgICAgcmV0dXJuIHRoaXMubWFpbkZyYW1lLnJl
c291cmNlRm9yVVJMKHVybCk7CiAgICAgfSwKIAotICAgIF9iaW5kUmVzb3VyY2VVUkw6IGZ1bmN0
aW9uKHJlc291cmNlKQorICAgIF9hZGRGcmFtZXNSZWN1cnNpdmVseTogZnVuY3Rpb24ocGFyZW50
RnJhbWUsIGZyYW1lVHJlZVBheWxvYWQpCiAgICAgewotICAgICAgICB0aGlzLl9yZXNvdXJjZXNC
eVVSTFtyZXNvdXJjZS51cmxdID0gcmVzb3VyY2U7CisgICAgICAgIHZhciBmcmFtZVBheWxvYWQg
PSBmcmFtZVRyZWVQYXlsb2FkLmZyYW1lOworICAgICAgICB2YXIgZnJhbWUgPSBuZXcgV2ViSW5z
cGVjdG9yLlJlc291cmNlVHJlZUZyYW1lKHRoaXMsIHBhcmVudEZyYW1lLCBmcmFtZVBheWxvYWQp
OworCisgICAgICAgIC8vIENyZWF0ZSBmcmFtZSByZXNvdXJjZS4KKyAgICAgICAgdmFyIGZyYW1l
UmVzb3VyY2UgPSB0aGlzLl9jcmVhdGVSZXNvdXJjZUZyb21GcmFtZVBheWxvYWQoZnJhbWVQYXls
b2FkLCBmcmFtZVBheWxvYWQudXJsKTsKKyAgICAgICAgZnJhbWVSZXNvdXJjZS5taW1lVHlwZSA9
IGZyYW1lUGF5bG9hZC5taW1lVHlwZTsKKyAgICAgICAgZnJhbWVSZXNvdXJjZS50eXBlID0gV2Vi
SW5zcGVjdG9yLlJlc291cmNlLlR5cGUuRG9jdW1lbnQ7CisgICAgICAgIGZyYW1lUmVzb3VyY2Uu
ZmluaXNoZWQgPSB0cnVlOworCisgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQorICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwgPSBmcmFtZVJlc291cmNlLnVy
bDsKKworICAgICAgICB0aGlzLl9hZGRGcmFtZShmcmFtZSk7CisgICAgICAgIGZyYW1lLl9hZGRS
ZXNvdXJjZShmcmFtZVJlc291cmNlKTsKIAotICAgICAgICB0aGlzLl9hZGRQZW5kaW5nQ29uc29s
ZU1lc3NhZ2VzVG9SZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBm
cmFtZVRyZWVQYXlsb2FkLmNoaWxkRnJhbWVzICYmIGkgPCBmcmFtZVRyZWVQYXlsb2FkLmNoaWxk
RnJhbWVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fYWRkRnJhbWVzUmVjdXJzaXZl
bHkoZnJhbWUsIGZyYW1lVHJlZVBheWxvYWQuY2hpbGRGcmFtZXNbaV0pOworCisgICAgICAgIGlm
ICghZnJhbWVUcmVlUGF5bG9hZC5yZXNvdXJjZXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgLy8gQ3JlYXRlIGZyYW1lIHN1YnJlc291cmNlcy4KKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBmcmFtZVRyZWVQYXlsb2FkLnJlc291cmNlcy5sZW5ndGg7ICsraSkgeworICAgICAg
ICAgICAgdmFyIHN1YnJlc291cmNlID0gZnJhbWVUcmVlUGF5bG9hZC5yZXNvdXJjZXNbaV07Cisg
ICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9jcmVhdGVSZXNvdXJjZUZyb21GcmFtZVBh
eWxvYWQoZnJhbWVQYXlsb2FkLCBzdWJyZXNvdXJjZS51cmwpOworICAgICAgICAgICAgcmVzb3Vy
Y2UudHlwZSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlW3N1YnJlc291cmNlLnR5cGVdOwor
ICAgICAgICAgICAgcmVzb3VyY2UubWltZVR5cGUgPSBzdWJyZXNvdXJjZS5taW1lVHlwZTsKKyAg
ICAgICAgICAgIHJlc291cmNlLmZpbmlzaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGZyYW1lLl9h
ZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgIH0KICAgICB9LAogCi0gICAgX2NsZWFyQ2hp
bGRGcmFtZXNBbmRSZXNvdXJjZXM6IGZ1bmN0aW9uKGZyYW1lSWQsIGxvYWRlclRvUHJlc2VydmVJ
ZCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1BhZ2VBZ2VudC5GcmFtZX0gZnJhbWUKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gdXJsCisgICAgICovCisgICAgX2NyZWF0ZVJlc291cmNlRnJvbUZy
YW1lUGF5bG9hZDogZnVuY3Rpb24oZnJhbWUsIHVybCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2Ns
ZWFyUmVzb3VyY2VzKGZyYW1lSWQsIGxvYWRlclRvUHJlc2VydmVJZCk7Ci0gICAgICAgIHZhciBz
dWJmcmFtZXMgPSB0aGlzLl9zdWJmcmFtZXNbZnJhbWVJZF07Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBzdWJmcmFtZXMgJiYgaSA8IHN1YmZyYW1lcy5sZW5ndGg7ICsrIGkpIHsKLSAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIHN1YmZyYW1lc1tpXSk7Ci0gICAgICAg
ICAgICB0aGlzLl9jbGVhckNoaWxkRnJhbWVzQW5kUmVzb3VyY2VzKHN1YmZyYW1lc1tpXS5pZCwg
bG9hZGVyVG9QcmVzZXJ2ZUlkKTsKLSAgICAgICAgfQotICAgICAgICBkZWxldGUgdGhpcy5fc3Vi
ZnJhbWVzW2ZyYW1lSWRdOworICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlUmVzb3VyY2UodXJs
LCBmcmFtZS51cmwsIGZyYW1lLmlkLCBmcmFtZS5sb2FkZXJJZCk7CiAgICAgfSwKIAotICAgIF9j
bGVhclJlc291cmNlczogZnVuY3Rpb24oZnJhbWVJZCwgbG9hZGVyVG9QcmVzZXJ2ZUlkKQorICAg
IC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30g
ZG9jdW1lbnRVUkwKKyAgICAgKiBAcGFyYW0ge05ldHdvcmtBZ2VudC5GcmFtZUlkfSBmcmFtZUlk
CisgICAgICogQHBhcmFtIHtOZXR3b3JrQWdlbnQuTG9hZGVySWR9IGxvYWRlcklkCisgICAgICov
CisgICAgX2NyZWF0ZVJlc291cmNlOiBmdW5jdGlvbih1cmwsIGRvY3VtZW50VVJMLCBmcmFtZUlk
LCBsb2FkZXJJZCkKICAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZXNGb3JGcmFtZSA9IHRoaXMu
X3Jlc291cmNlc0J5RnJhbWVJZFtmcmFtZUlkXTsKLSAgICAgICAgaWYgKCFyZXNvdXJjZXNGb3JG
cmFtZSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIHJlc291cmNlID0gbmV3IFdl
Ykluc3BlY3Rvci5SZXNvdXJjZSgiIiwgdXJsLCBmcmFtZUlkLCBsb2FkZXJJZCk7CisgICAgICAg
IHJlc291cmNlLmRvY3VtZW50VVJMID0gZG9jdW1lbnRVUkw7CisgICAgICAgIHJldHVybiByZXNv
dXJjZTsKKyAgICB9Cit9CiAKLSAgICAgICAgdmFyIHByZXNlcnZlZFJlc291cmNlc0ZvckZyYW1l
ID0gW107Ci0gICAgICAgIGZvciAodmFyIHVybCBpbiByZXNvdXJjZXNGb3JGcmFtZSkgewotICAg
ICAgICAgICAgdmFyIHJlc291cmNlID0gcmVzb3VyY2VzRm9yRnJhbWVbdXJsXTsKLSAgICAgICAg
ICAgIGlmIChyZXNvdXJjZS5sb2FkZXJJZCA9PT0gbG9hZGVyVG9QcmVzZXJ2ZUlkKSB7Ci0gICAg
ICAgICAgICAgICAgcHJlc2VydmVkUmVzb3VyY2VzRm9yRnJhbWVbdXJsXSA9IHJlc291cmNlOwot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhp
cy5fdW5iaW5kUmVzb3VyY2VVUkwocmVzb3VyY2UpOwotICAgICAgICB9CitXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmpl
Y3QucHJvdG90eXBlOwogCi0gICAgICAgIGRlbGV0ZSB0aGlzLl9yZXNvdXJjZXNCeUZyYW1lSWRb
ZnJhbWVJZF07Ci0gICAgICAgIGlmIChwcmVzZXJ2ZWRSZXNvdXJjZXNGb3JGcmFtZS5sZW5ndGgp
IHsKLSAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5RnJhbWVJZFtmcmFtZUlkXSA9IHByZXNl
cnZlZFJlc291cmNlc0ZvckZyYW1lOwotICAgICAgICB9CisvKioKKyAqIEBjb25zdHJ1Y3Rvcgor
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWx9IG1vZGVsCisgKiBAcGFy
YW0gez9XZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWV9IHBhcmVudEZyYW1lCisgKiBAcGFy
YW0ge1BhZ2VBZ2VudC5GcmFtZX0gcGF5bG9hZAorICovCitXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
cmVlRnJhbWUgPSBmdW5jdGlvbihtb2RlbCwgcGFyZW50RnJhbWUsIHBheWxvYWQpCit7CisgICAg
dGhpcy5fbW9kZWwgPSBtb2RlbDsKKyAgICB0aGlzLl9wYXJlbnRGcmFtZSA9IHBhcmVudEZyYW1l
OyAKKworICAgIHRoaXMuX2lkID0gcGF5bG9hZC5pZDsKKyAgICB0aGlzLl9sb2FkZXJJZCA9IHBh
eWxvYWQubG9hZGVySWQ7CisgICAgdGhpcy5fbmFtZSA9IHBheWxvYWQubmFtZTsKKyAgICB0aGlz
Ll91cmwgPSBwYXlsb2FkLnVybDsKKyAgICB0aGlzLl9taW1lVHlwZSA9IHBheWxvYWQubWltZVR5
cGU7CisKKyAgICAvKioKKyAgICAgKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVGcmFtZT59CisgICAgICovCisgICAgdGhpcy5fY2hpbGRGcmFtZXMgPSBbXTsKKworICAg
IC8qKgorICAgICAqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlJlc291cmNl
Pn0KKyAgICAgKi8KKyAgICB0aGlzLl9yZXNvdXJjZXNNYXAgPSB7fTsKKworICAgIGlmICh0aGlz
Ll9wYXJlbnRGcmFtZSkKKyAgICAgICAgdGhpcy5fcGFyZW50RnJhbWUuX2NoaWxkRnJhbWVzLnB1
c2godGhpcyk7Cit9CisKK1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUg
PSB7CisgICAgZ2V0IGlkKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9pZDsKICAgICB9
LAogCi0gICAgX2NhbGxGb3JGcmFtZVJlc291cmNlczogZnVuY3Rpb24oZnJhbWVJZCwgY2FsbGJh
Y2spCisgICAgZ2V0IG5hbWUoKQogICAgIHsKLSAgICAgICAgdmFyIHJlc291cmNlcyA9IHRoaXMu
X3Jlc291cmNlc0J5RnJhbWVJZFtmcmFtZUlkXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7
CisgICAgfSwKIAotICAgICAgICBmb3IgKHZhciB1cmwgaW4gcmVzb3VyY2VzKSB7Ci0gICAgICAg
ICAgICBpZiAoY2FsbGJhY2socmVzb3VyY2VzW3VybF0pKQotICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICB9CisgICAgZ2V0IHVybCgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5fdXJsOworICAgIH0sCiAKLSAgICAgICAgdmFyIGZyYW1lcyA9IHRoaXMuX3N1YmZyYW1l
c1tmcmFtZUlkXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGZyYW1lcyAmJiBpIDwgZnJhbWVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fY2FsbEZvckZyYW1lUmVzb3Vy
Y2VzKGZyYW1lc1tpXS5pZCwgY2FsbGJhY2spKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBnZXQgbG9hZGVySWQoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlcklkOwogICAgIH0sCiAKLSAgICBfdW5i
aW5kUmVzb3VyY2VVUkw6IGZ1bmN0aW9uKHJlc291cmNlKQorICAgIGdldCBwYXJlbnRGcmFtZSgp
CiAgICAgewotICAgICAgICBkZWxldGUgdGhpcy5fcmVzb3VyY2VzQnlVUkxbcmVzb3VyY2UudXJs
XTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEZyYW1lOwogICAgIH0sCiAKLSAgICBfYWRk
RnJhbWVzUmVjdXJzaXZlbHk6IGZ1bmN0aW9uKGZyYW1lVHJlZVBheWxvYWQpCisgICAgZ2V0IGNo
aWxkRnJhbWVzKCkKICAgICB7Ci0gICAgICAgIHZhciBmcmFtZVBheWxvYWQgPSBmcmFtZVRyZWVQ
YXlsb2FkLmZyYW1lOworICAgICAgICByZXR1cm4gdGhpcy5fY2hpbGRGcmFtZXM7CisgICAgfSwK
IAotICAgICAgICAvLyBDcmVhdGUgZnJhbWUgcmVzb3VyY2UuCi0gICAgICAgIHZhciBmcmFtZVJl
c291cmNlID0gdGhpcy5fY3JlYXRlUmVzb3VyY2UoZnJhbWVQYXlsb2FkLCBmcmFtZVBheWxvYWQu
dXJsKTsKLSAgICAgICAgZnJhbWVSZXNvdXJjZS50eXBlID0gV2ViSW5zcGVjdG9yLlJlc291cmNl
LlR5cGUuRG9jdW1lbnQ7Ci0gICAgICAgIGZyYW1lUmVzb3VyY2UuZmluaXNoZWQgPSB0cnVlOwor
ICAgIC8qKgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgaXNNYWluRnJh
bWU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAhdGhpcy5fcGFyZW50RnJhbWU7
CisgICAgfSwKIAotICAgICAgICBpZiAoIWZyYW1lUGF5bG9hZC5wYXJlbnRJZCkgewotICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwgPSBmcmFtZVJlc291cmNlLnVybDsK
LSAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRNYWluRnJhbWVJZCA9IGZyYW1lUGF5bG9hZC5pZDsK
LSAgICAgICAgfQotICAgICAgICB0aGlzLl9hZGRGcmFtZShmcmFtZVBheWxvYWQpOwotICAgICAg
ICB0aGlzLl9hZGRSZXNvdXJjZVRvRnJhbWUoZnJhbWVSZXNvdXJjZSk7CisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtQYWdlQWdlbnQuRnJhbWV9IGZyYW1lUGF5bG9hZAorICAgICAqLworICAgIG5h
dmlnYXRlOiBmdW5jdGlvbihmcmFtZVBheWxvYWQpCisgICAgeworICAgICAgICB0aGlzLl9sb2Fk
ZXJJZCA9IGZyYW1lUGF5bG9hZC5sb2FkZXJJZDsKKyAgICAgICAgdGhpcy5fbmFtZSA9IGZyYW1l
UGF5bG9hZC5uYW1lOworICAgICAgICB0aGlzLl91cmwgPSBmcmFtZVBheWxvYWQudXJsOworICAg
ICAgICB0aGlzLl9taW1lVHlwZSA9IGZyYW1lUGF5bG9hZC5taW1lVHlwZTsKKworICAgICAgICB2
YXIgbWFpblJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VzTWFwW3RoaXMuX3VybF07CisgICAgICAg
IHRoaXMuX3Jlc291cmNlc01hcCA9IHt9OworICAgICAgICB0aGlzLl9yZW1vdmVDaGlsZEZyYW1l
cygpOworICAgICAgICBpZiAobWFpblJlc291cmNlICYmIG1haW5SZXNvdXJjZS5sb2FkZXJJZCA9
PT0gdGhpcy5fbG9hZGVySWQpCisgICAgICAgICAgICB0aGlzLl9hZGRSZXNvdXJjZShtYWluUmVz
b3VyY2UpOworICAgIH0sCiAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGZyYW1lVHJlZVBheWxv
YWQuY2hpbGRGcmFtZXMgJiYgaSA8IGZyYW1lVHJlZVBheWxvYWQuY2hpbGRGcmFtZXMubGVuZ3Ro
OyArK2kpCi0gICAgICAgICAgICB0aGlzLl9hZGRGcmFtZXNSZWN1cnNpdmVseShmcmFtZVRyZWVQ
YXlsb2FkLmNoaWxkRnJhbWVzW2ldKTsKKyAgICBnZXQgbWFpblJlc291cmNlKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZXNNYXBbdGhpcy5fdXJsXTsKKyAgICB9LAogCi0g
ICAgICAgIGlmICghZnJhbWVUcmVlUGF5bG9hZC5yZXNvdXJjZXMpCi0gICAgICAgICAgICByZXR1
cm47CisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJh
bWV9IGZyYW1lCisgICAgICovCisgICAgYWRkQ2hpbGRGcmFtZTogZnVuY3Rpb24oZnJhbWUpCisg
ICAgeworICAgICAgICB0aGlzLl9jaGlsZEZyYW1lcy5wdXNoKGZyYW1lKTsKKyAgICB9LAogCi0g
ICAgICAgIC8vIENyZWF0ZSBmcmFtZSBzdWJyZXNvdXJjZXMuCi0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgZnJhbWVUcmVlUGF5bG9hZC5yZXNvdXJjZXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgICAgIHZhciBzdWJyZXNvdXJjZSA9IGZyYW1lVHJlZVBheWxvYWQucmVzb3VyY2VzW2ldOwot
ICAgICAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fY3JlYXRlUmVzb3VyY2UoZnJhbWVQYXls
b2FkLCBzdWJyZXNvdXJjZS51cmwpOwotICAgICAgICAgICAgcmVzb3VyY2UudHlwZSA9IFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5UeXBlW3N1YnJlc291cmNlLnR5cGVdOwotICAgICAgICAgICAgcmVz
b3VyY2UubWltZVR5cGUgPSBzdWJyZXNvdXJjZS5taW1lVHlwZTsKLSAgICAgICAgICAgIHJlc291
cmNlLmZpbmlzaGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHRoaXMuX2FkZFJlc291cmNlVG9GcmFt
ZShyZXNvdXJjZSk7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUcmVlRnJhbWV9IGZyYW1lCisgICAgICovCisgICAgcmVtb3ZlQ2hpbGRGcmFtZTogZnVuY3Rp
b24oZnJhbWUpCisgICAgeworICAgICAgICBmcmFtZS5fcmVtb3ZlQ2hpbGRGcmFtZXMoKTsKKyAg
ICAgICAgdGhpcy5fY2hpbGRGcmFtZXMucmVtb3ZlKGZyYW1lKTsKKyAgICAgICAgdGhpcy5fbW9k
ZWwuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2Rl
bC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIGZyYW1lKTsKKyAgICB9LAorCisgICAgX3JlbW92
ZUNoaWxkRnJhbWVzOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgY29weSA9IHRoaXMu
X2NoaWxkRnJhbWVzLnNsaWNlKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29weS5s
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRGcmFtZShjb3B5W2ldKTsg
CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNl
fSByZXNvdXJjZQorICAgICAqLworICAgIF9hZGRSZXNvdXJjZTogZnVuY3Rpb24ocmVzb3VyY2Up
CisgICAgeworICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2VzTWFwW3Jlc291cmNlLnVybF0gPT09
IHJlc291cmNlKSB7CisgICAgICAgICAgICAvLyBBbHJlYWR5IGluIHRoZSB0cmVlLCB3ZSBqdXN0
IGdvdCBhbiBleHRyYSB1cGRhdGUuCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAg
ICAgICAgdGhpcy5fcmVzb3VyY2VzTWFwW3Jlc291cmNlLnVybF0gPSByZXNvdXJjZTsKKyAgICAg
ICAgdGhpcy5fbW9kZWwuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHJlc291cmNlKTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5SZXNvdXJj
ZT59CisgICAgICovCisgICAgcmVzb3VyY2VzOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2
YXIgcmVzdWx0ID0gW107CisgICAgICAgIGZvciAodmFyIHVybCBpbiB0aGlzLl9yZXNvdXJjZXNN
YXApCisgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLl9yZXNvdXJjZXNNYXBbdXJsXSk7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7
UGFnZUFnZW50LkZyYW1lfSBmcmFtZQogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAgICAg
KiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLlJlc291cmNlfQogICAgICAqLwotICAgIF9jcmVhdGVS
ZXNvdXJjZTogZnVuY3Rpb24oZnJhbWUsIHVybCkKKyAgICByZXNvdXJjZUZvclVSTDogZnVuY3Rp
b24odXJsKQogICAgIHsKLSAgICAgICAgdmFyIHJlc291cmNlID0gbmV3IFdlYkluc3BlY3Rvci5S
ZXNvdXJjZSgiIiwgdXJsLCBmcmFtZS5pZCwgZnJhbWUubG9hZGVySWQpOwotICAgICAgICByZXNv
dXJjZS5kb2N1bWVudFVSTCA9IGZyYW1lLnVybDsKLSAgICAgICAgcmVzb3VyY2UubWltZVR5cGUg
PSBmcmFtZS5taW1lVHlwZTsKLSAgICAgICAgcmV0dXJuIHJlc291cmNlOworICAgICAgICB2YXIg
cmVzdWx0OworICAgICAgICBmdW5jdGlvbiBmaWx0ZXIocmVzb3VyY2UpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmIChyZXNvdXJjZS51cmwgPT09IHVybCkgeworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IHJlc291cmNlOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIHRoaXMuX2NhbGxGb3JGcmFtZVJlc291cmNlcyhmaWx0
ZXIpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5SZXNvdXJjZSl9IGNhbGxiYWNrCisgICAgICov
CisgICAgX2NhbGxGb3JGcmFtZVJlc291cmNlczogZnVuY3Rpb24oY2FsbGJhY2spCisgICAgewor
ICAgICAgICBmb3IgKHZhciB1cmwgaW4gdGhpcy5fcmVzb3VyY2VzTWFwKSB7CisgICAgICAgICAg
ICBpZiAoY2FsbGJhY2sodGhpcy5fcmVzb3VyY2VzTWFwW3VybF0pKQorICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
aGlzLl9jaGlsZEZyYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHRoaXMuX2No
aWxkRnJhbWVzW2ldLl9jYWxsRm9yRnJhbWVSZXNvdXJjZXMoY2FsbGJhY2spKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiB9CiAKLVdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUuX19wcm90
b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7Ci0KIC8qKgogICogQGNvbnN0cnVj
dG9yCiAgKiBAaW1wbGVtZW50cyB7UGFnZUFnZW50LkRpc3BhdGNoZXJ9CkBAIC00NDEsOSArNTQ1
LDkgQEAgV2ViSW5zcGVjdG9yLlBhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKICAgICB9LAogCi0gICAg
ZnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGZyYW1lLCBsb2FkZXJJZCkKKyAgICBmcmFtZU5hdmln
YXRlZDogZnVuY3Rpb24oZnJhbWUpCiAgICAgewotICAgICAgICB0aGlzLl9yZXNvdXJjZVRyZWVN
b2RlbC5fZnJhbWVOYXZpZ2F0ZWQoZnJhbWUsIGxvYWRlcklkKTsKKyAgICAgICAgdGhpcy5fcmVz
b3VyY2VUcmVlTW9kZWwuX2ZyYW1lTmF2aWdhdGVkKGZyYW1lKTsKICAgICB9LAogCiAgICAgZnJh
bWVEZXRhY2hlZDogZnVuY3Rpb24oZnJhbWVJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IDU1ZDJiMzRjOThiMWYw
ZjNjYjVjMzVmNGM5NTA1YjAyZGNjZGJkZDIuLjUyNDUwODVkODQ2MWM3OGM4MDhiMjhkNzg2YWRl
Yzc5MTdkYmFhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtODYsNiArODYsOCBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VzUGFuZWwgPSBmdW5jdGlvbihkYXRhYmFzZSkKICAgICBXZWJJbnNwZWN0b3IuR29Ub0xp
bmVEaWFsb2cuaW5zdGFsbCh0aGlzLCB2aWV3R2V0dGVyLmJpbmQodGhpcykpOwogCiAgICAgV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuT25Mb2FkLCB0aGlzLl9vbkxvYWRFdmVudEZp
cmVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5DYWNoZWRS
ZXNvdXJjZXNMb2FkZWQsIHRoaXMuX2NhY2hlZFJlc291cmNlc0xvYWRlZCwgdGhpcyk7CisgICAg
V2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuV2lsbExvYWRDYWNoZWRSZXNvdXJjZXMs
IHRoaXMuX3Jlc2V0V2l0aEZyYW1lcywgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CkBAIC0xMDIsMTEgKzEwNCwxNSBAQCBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLndhc1Nob3duLmNhbGwo
dGhpcyk7Ci0gICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgdGhpcy5f
aW5pdGlhbGl6ZSgpOworICAgIH0sCisKKyAgICBfaW5pdGlhbGl6ZTogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCAmJiB0aGlzLmlzU2hvd2luZygpICYm
IHRoaXMuX2NhY2hlZFJlc291cmNlc1dlcmVMb2FkZWQpIHsKICAgICAgICAgICAgIHRoaXMuX3Bv
cHVsYXRlUmVzb3VyY2VUcmVlKCk7CiAgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZUFwcGxpY2F0
aW9uQ2FjaGVUcmVlKCk7CiAgICAgICAgICAgICB0aGlzLl9pbml0RGVmYXVsdFNlbGVjdGlvbigp
OwotCiAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7CiAgICAgICAgIH0KICAg
ICB9LApAQCAtMTM2LDExICsxNDIsMTUgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuc2hvd1Jlc291cmNlKG1haW5SZXNvdXJjZSk7
CiAgICAgfSwKIAotICAgIF9yZXNldDogZnVuY3Rpb24oKQorICAgIF9yZXNldFdpdGhGcmFtZXM6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMucmVzb3VyY2VzTGlzdFRyZWVFbGVtZW50
LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZCA9
IHt9OworICAgICAgICB0aGlzLl9yZXNldCgpOworICAgIH0sCiAKKyAgICBfcmVzZXQ6IGZ1bmN0
aW9uKCkKKyAgICB7CiAgICAgICAgIHRoaXMuX29yaWdpbnMgPSB7fTsKICAgICAgICAgdGhpcy5f
ZG9tYWlucyA9IHt9OwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2RhdGFiYXNl
cy5sZW5ndGg7ICsraSkgewpAQCAtMTgyLDMyICsxOTIsMjggQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJl
ZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2
ZW50VHlwZXMuRnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX2ZyYW1lTmF2aWdhdGVkLCB0aGlzKTsKICAg
ICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgdGhp
cy5fZnJhbWVEZXRhY2hlZCwgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRy
ZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5F
dmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX3Jlc291cmNlQWRkZWQsIHRoaXMpOwotICAg
ICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5DYWNoZWRSZXNvdXJjZXNMb2Fk
ZWQsIHRoaXMuX2NhY2hlZFJlc291cmNlc0xvYWRlZCwgdGhpcyk7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLldpbGxMb2FkQ2FjaGVkUmVzb3VyY2VzLCB0aGlzLl9y
ZXNldCwgdGhpcyk7CiAKLSAgICAgICAgZnVuY3Rpb24gcG9wdWxhdGVGcmFtZShmcmFtZUlkKQor
ICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUZyYW1lKGZyYW1lKQogICAgICAgICB7Ci0gICAgICAg
ICAgICB2YXIgc3ViZnJhbWVzID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLnN1YmZy
YW1lcyhmcmFtZUlkKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3ViZnJhbWVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fZnJhbWVBZGRlZCh7ZGF0YTpz
dWJmcmFtZXNbaV19KTsKLSAgICAgICAgICAgICAgICBwb3B1bGF0ZUZyYW1lLmNhbGwodGhpcywg
c3ViZnJhbWVzW2ldLmlkKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX2ZyYW1l
QWRkZWQoe2RhdGE6ZnJhbWV9KTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZnJh
bWUuY2hpbGRGcmFtZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgcG9wdWxhdGVGcmFt
ZS5jYWxsKHRoaXMsIGZyYW1lLmNoaWxkRnJhbWVzW2ldKTsKIAotICAgICAgICAgICAgdmFyIHJl
c291cmNlcyA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5yZXNvdXJjZXMoZnJhbWVJ
ZCk7CisgICAgICAgICAgICB2YXIgcmVzb3VyY2VzID0gZnJhbWUucmVzb3VyY2VzKCk7CiAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc291cmNlcy5sZW5ndGg7ICsraSkKICAgICAg
ICAgICAgICAgICB0aGlzLl9yZXNvdXJjZUFkZGVkKHtkYXRhOnJlc291cmNlc1tpXX0pOwogICAg
ICAgICB9Ci0gICAgICAgIHBvcHVsYXRlRnJhbWUuY2FsbCh0aGlzLCAiIik7CisgICAgICAgIHBv
cHVsYXRlRnJhbWUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwubWFp
bkZyYW1lKTsKICAgICB9LAogCiAgICAgX2ZyYW1lQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKICAgICAgICAgdmFyIGZyYW1lID0gZXZlbnQuZGF0YTsKLSAgICAgICAgdmFyIHBhcmVudEZy
YW1lSWQgPSBmcmFtZS5wYXJlbnRJZDsKKyAgICAgICAgdmFyIHBhcmVudEZyYW1lID0gZnJhbWUu
cGFyZW50RnJhbWU7CiAKLSAgICAgICAgdmFyIHBhcmVudFRyZWVFbGVtZW50ID0gcGFyZW50RnJh
bWVJZCA/IHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtwYXJlbnRGcmFtZUlkXSA6IHRoaXMu
cmVzb3VyY2VzTGlzdFRyZWVFbGVtZW50OworICAgICAgICB2YXIgcGFyZW50VHJlZUVsZW1lbnQg
PSBwYXJlbnRGcmFtZSA/IHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtwYXJlbnRGcmFtZS5p
ZF0gOiB0aGlzLnJlc291cmNlc0xpc3RUcmVlRWxlbWVudDsKICAgICAgICAgaWYgKCFwYXJlbnRU
cmVlRWxlbWVudCkgewotICAgICAgICAgICAgY29uc29sZS53YXJuKCJObyBmcmFtZSB3aXRoIGlk
OiIgKyBwYXJlbnRGcmFtZUlkICsgIiB0byByb3V0ZSAiICsgZnJhbWUubmFtZSArICIvIiArIGZy
YW1lLnVybCArICIgdG8uIikKKyAgICAgICAgICAgIGNvbnNvbGUud2FybigiTm8gZnJhbWUgdG8g
cm91dGUgIiArIGZyYW1lLnVybCArICIgdG8uIikKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCkBAIC0yMTksMTEgKzIyNSw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgX2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
ICAgICAgICAgdmFyIGZyYW1lID0gZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKCFmcmFtZS5wYXJl
bnRJZCkgewotICAgICAgICAgICAgLy8gUmVzZXQgb24gbWFpbiBmcmFtZSBkZXRhY2gKLSAgICAg
ICAgICAgIHRoaXMuX3Jlc2V0KCk7Ci0gICAgICAgIH0KLQogICAgICAgICB2YXIgZnJhbWVUcmVl
RWxlbWVudCA9IHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtmcmFtZS5pZF07CiAgICAgICAg
IGlmICghZnJhbWVUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1MywxOSAr
MjU0LDI1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAg
ICBfZnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGZy
YW1lSWQgPSBldmVudC5kYXRhLmZyYW1lLmlkOworICAgICAgICB2YXIgZnJhbWUgPSBldmVudC5k
YXRhOworCisgICAgICAgIGlmICghZnJhbWUucGFyZW50RnJhbWUpCisgICAgICAgICAgICB0aGlz
Ll9yZXNldCgpOworCisgICAgICAgIHZhciBmcmFtZUlkID0gZnJhbWUuaWQ7CiAgICAgICAgIHZh
ciBmcmFtZVRyZWVFbGVtZW50ID0gdGhpcy5fdHJlZUVsZW1lbnRGb3JGcmFtZUlkW2ZyYW1lSWRd
OwogICAgICAgICBpZiAoZnJhbWVUcmVlRWxlbWVudCkKLSAgICAgICAgICAgIGZyYW1lVHJlZUVs
ZW1lbnQuZnJhbWVOYXZpZ2F0ZWQoZXZlbnQuZGF0YS5mcmFtZSk7CisgICAgICAgICAgICBmcmFt
ZVRyZWVFbGVtZW50LmZyYW1lTmF2aWdhdGVkKGZyYW1lKTsKIAogICAgICAgICB2YXIgYXBwbGlj
YXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQgPSB0aGlzLl9hcHBsaWNhdGlvbkNhY2hlRnJhbWVF
bGVtZW50c1tmcmFtZUlkXTsKICAgICAgICAgaWYgKGFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVF
bGVtZW50KQotICAgICAgICAgICAgYXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQuZnJh
bWVOYXZpZ2F0ZWQoZXZlbnQuZGF0YS5mcmFtZSk7CisgICAgICAgICAgICBhcHBsaWNhdGlvbkNh
Y2hlRnJhbWVUcmVlRWxlbWVudC5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CiAgICAgfSwKIAogICAg
IF9jYWNoZWRSZXNvdXJjZXNMb2FkZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMu
X2luaXREZWZhdWx0U2VsZWN0aW9uKCk7CisgICAgICAgIHRoaXMuX2NhY2hlZFJlc291cmNlc1dl
cmVMb2FkZWQgPSB0cnVlOworICAgICAgICB0aGlzLl9pbml0aWFsaXplKCk7CiAgICAgfSwKIAog
ICAgIGFkZERhdGFiYXNlOiBmdW5jdGlvbihkYXRhYmFzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMKaW5kZXggZDZlMjg3
MTE0ZGUzMDE0ZDY3NWM2MDQzM2VlZDJhMzY0NmYyYmYxOC4uZGExYWNmMzhiZmRjN2VhMmRhMmMx
MTZlMGZiMDg5YjcwMTU5ZThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMKQEAgLTU3LDcgKzU3LDcgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdEZvcm1hdHRlci5wcm90b3R5cGUgPSB7CiAgICAgZm9ybWF0Q29udGVudDog
ZnVuY3Rpb24obWltZVR5cGUsIGNvbnRlbnQsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgY29u
dGVudCA9IGNvbnRlbnQucmVwbGFjZSgvXHJcbj98W1xuXHUyMDI4XHUyMDI5XS9nLCAiXG4iKS5y
ZXBsYWNlKC9eXHVGRUZGLywgJycpOwotICAgICAgICB2YXIgZGF0YSA9IHsgbWltZVR5cGU6IG1p
bWVUeXBlLCBjb250ZW50OiBjb250ZW50LCBpbmRlbnRTdHJpbmc6IFdlYkluc3BlY3Rvci5zZXR0
aW5ncy50ZXh0RWRpdG9ySW5kZW50LmdldCgpIH07CisgICAgICAgIHZhciBkYXRhID0geyBtaW1l
VHlwZTogbWltZVR5cGUsIGNvbnRlbnQ6IGNvbnRlbnQsIGluZGVudFN0cmluZzogIiAgICAiICB9
OwogICAgICAgICB0aGlzLl90YXNrcy5wdXNoKHsgZGF0YTogZGF0YSwgY2FsbGJhY2s6IGNhbGxi
YWNrIH0pOwogICAgICAgICB0aGlzLl93b3JrZXIucG9zdE1lc3NhZ2UoZGF0YSk7CiAgICAgfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcwppbmRleCA4
Y2FlYzU5ODk2N2E1OGViZWU4N2VkNTY4ZWU5ZjlkMGQ1ZDc5ZjFlLi5jNjMyZGRiYWI2MDhhYWUx
ZGI5NjM5ZDcyNzYwOTRhMzdmNGU1M2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9leHRlcm5zLmpzCkBAIC0xODEsMyArMTgxLDggQEAgV2ViSW5zcGVjdG9yLnNo
b3dQYW5lbEZvckFuY2hvck5hdmlnYXRpb24gPSBmdW5jdGlvbihwYW5lbCkKIFdlYkluc3BlY3Rv
ci5zaG93UGFuZWwgPSBmdW5jdGlvbihwYW5lbCkKIHsKIH0KKworLyoqCisgKiBAdHlwZSB7c3Ry
aW5nfSAKKyAqLworV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VEb21haW47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCA0OTBiOTlhZGEwZGYyZDQ4NWZjODEyM2Y1NjJhNTRhZTY3YmQwYjIwLi5jN2YwNjg2MzI0Njdm
YTA3ZjY3ZmI0NjlhNmYyODlkZGM5MzRkZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ0MSw3ICs0NDEsNiBA
QCBDYWNoZWRSZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLAogCiAgICAgQVNTRVJUKHJlc291cmNlLT51cmwoKSA9
PSB1cmwuc3RyaW5nKCkpOwogICAgIG1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KHJlc291cmNlLT51
cmwoKSwgcmVzb3VyY2UpOwotICAgIAogICAgIHJldHVybiByZXNvdXJjZTsKIH0KICAgICAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBkZDc3ODRhOWE2NmUwOTZlYmRlNzhiYjViZTkyZmQ5Y2Y0NDk4YzhiLi42ZjBjYzA0ZWUw
ZjgwNTJlNzQ4YmE0MzkzNWFjZmJiYjVjMzUwNDM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIw
MTEtMTEtMjQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IHJlZmFjdG9yIHJlc291cmNlIHRyZWUgbW9kZWwgYW5kIGludHJvZHVj
ZSBleHBsaWNpdCBjbGFzcyBmb3IgUmVzb3VyY2VUcmVlRnJhbWUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA3OAorCisgICAgICAgIE90aGVyd2lz
ZSB3ZSBhcmUgbWFuYWdpbmcgZnJhbWVzIGFuZCB0aGVpciByZXNvdXJjZXMgdXNpbmcgdG9vIG1h
bnkgbWFwcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzOgorICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1kb2N1bWVudC11
cmwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jl
c291cmNlLXRyZWUtZXJyb3JzLXJlbG9hZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtbWlt
ZXR5cGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlLXRyZWUtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfUmVzb3VyY2VUcmVl
VGVzdC5JbnNwZWN0b3JUZXN0LmR1bXBSZXNvdXJjZXNVUkxNYXAuY29sbGVjdCk6CisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzLXRlc3QuanM6CisgICAgICAgIChpbml0
aWFsaXplX1Jlc291cmNlVGVzdC5JbnNwZWN0b3JUZXN0LnJ1bkFmdGVyQ2FjaGVkUmVzb3VyY2Vz
UHJvY2Vzc2VkKToKKyAgICAgICAgKGluaXRpYWxpemVfUmVzb3VyY2VUZXN0Lkluc3BlY3RvclRl
c3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZC5jaGVja1Jlc291cmNlcy52aXNpdCk6Cisg
ICAgICAgIChpbml0aWFsaXplX1Jlc291cmNlVGVzdC5JbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUmVz
b3VyY2VzQXJlRmluaXNoZWQuY2hlY2tSZXNvdXJjZXMpOgorICAgICAgICAoaW5pdGlhbGl6ZV9S
ZXNvdXJjZVRlc3QuSW5zcGVjdG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0FyZUZpbmlzaGVkKToK
KyAgICAgICAgKGluaXRpYWxpemVfUmVzb3VyY2VUZXN0Lkluc3BlY3RvclRlc3Quc2hvd1Jlc291
cmNlLnNob3dSZXNvdXJjZUNhbGxiYWNrLnZpc2l0KToKKyAgICAgICAgKGluaXRpYWxpemVfUmVz
b3VyY2VUZXN0Lkluc3BlY3RvclRlc3Quc2hvd1Jlc291cmNlKToKKyAgICAgICAgKGluaXRpYWxp
emVfUmVzb3VyY2VUZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZy
YW1lLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9jc3MtbGl2ZS1lZGl0Lmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisKIDIwMTEtMTEtMjMgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGlu
dGVncmF0aW9uIHRlc3QgZm9yIGNvbXBpbGVyIHNvdXJjZSBtYXBzLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcwppbmRleCAyNzg3MTE5
Njc5YjUyN2JiZGQwYTQ2YzFmNDlhY2VlOThmZTgxNjc4Li5jN2U2MGJhZTA1MWNmMDJmYzZhNDZk
ZTUzYTY1MjcyNDQ1ODVhZjM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcwpAQCAtNjksMjQgKzY5LDYgQEAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0ID0gZnVuY3Rpb24oY29kZSkKICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KHVuZXNjYXBlKCciICsgZXNjYXBlKGNv
ZGUpICsgIicpKSIpOwogfQogCi1JbnNwZWN0b3JUZXN0LnNob3dSZXNvdXJjZSA9IGZ1bmN0aW9u
KHJlc291cmNlVVJMLCBjYWxsYmFjaykKLXsKLSAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Qu
c2FmZVdyYXAoY2FsbGJhY2spOwotICAgIGZvciAodmFyIHVybCBpbiBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUcmVlTW9kZWwuX3Jlc291cmNlc0J5VVJMKSB7Ci0gICAgICAgIGlmICh1cmwuaW5kZXhP
ZihyZXNvdXJjZVVSTCkgIT09IC0xKSB7Ci0gICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuX3Jlc291cmNlc0J5VVJMW3VybF07Ci0gICAgICAg
ICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zaG93UmVzb3VyY2UocmVzb3VyY2Us
IDEpOwotICAgICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5y
ZXNvdXJjZXMuX3Jlc291cmNlVmlld0ZvclJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAg
IGlmIChzb3VyY2VGcmFtZS5sb2FkZWQpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soc291cmNl
RnJhbWUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1lLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5Mb2FkZWQsIGNh
bGxiYWNrLmJpbmQobnVsbCwgc291cmNlRnJhbWUpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfQotICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9y
LnJlc291cmNlVHJlZU1vZGVsLCAiX2JpbmRSZXNvdXJjZVVSTCIsIEluc3BlY3RvclRlc3Quc2hv
d1Jlc291cmNlLmJpbmQoSW5zcGVjdG9yVGVzdCwgdXJsLCBjYWxsYmFjaykpOwotfTsKLQogSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQgPSBmdW5jdGlvbih0ZXh0KQogewogICAgIHJlc3VsdHMucHVz
aCh0ZXh0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1kb2N1bWVudC11cmwuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1kb2N1bWVu
dC11cmwuaHRtbAppbmRleCA1Y2QwYWYxYzUwNDczNTM4ZmZlNjFiZjM0Y2ZiMzRlODQ5OGUyODhi
Li43NDljZWE1MzZhZWFhY2RmOWMwYjU1NmM5Y2MyNzQ2MmFmZTI1M2RkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRy
ZWUtZG9jdW1lbnQtdXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWRvY3VtZW50LXVybC5odG1sCkBAIC04LDcg
KzgsNyBAQAogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVy
UmVzb3VyY2VzQXJlRmluaXNoZWQoWyJkdW1teS1pZnJhbWUuaHRtbCIsICJyZXNvdXJjZS10cmVl
LWRvY3VtZW50LXVybC5odG1sIl0sIHN0ZXAxKTsKKyAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVy
UmVzb3VyY2VzQXJlRmluaXNoZWQoWyJkdW1teS1pZnJhbWUuaHRtbCIsICJpbnNwZWN0b3ItdGVz
dC5qcyIsICJyZXNvdXJjZXMtdGVzdC5qcyIsICJyZXNvdXJjZS10cmVlLXRlc3QuanMiXSwgc3Rl
cDEpOwogCiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1lcnJv
cnMtcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS10cmVlL3Jlc291cmNlLXRyZWUtZXJyb3JzLXJlbG9hZC5odG1sCmluZGV4IGEyODdjYjU2ZjRm
NmQ1OTU1OTU3OTM4Y2E5OWNkZDM5ZThhNTU1OTguLjNjMGM1ZjRhMjAyOWMwYzNlZWIzYzgyMTk4
NmNhZmQyMzFkY2U2ZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1lcnJvcnMtcmVsb2FkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10
cmVlLWVycm9ycy1yZWxvYWQuaHRtbApAQCAtMTQsMTAgKzE0LDEwIEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgIHZhciByZXNvdXJjZXNXZXJlRmluaXNoZWQgPSBmYWxzZTsKICAgICB2YXIgcGFnZVdh
c1JlbG9hZGVkID0gZmFsc2U7CiAKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBl
cy5GcmFtZURldGFjaGVkLCBmcmFtZURldGFjaGVkKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9k
ZWwuRXZlbnRUeXBlcy5NYWluRnJhbWVOYXZpZ2F0ZWQsIGZyYW1lTmF2aWdhdGVkKTsKICAgICBJ
bnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UocGFnZVJlbG9hZGVkKTsKIAotICAgIGZ1bmN0aW9uIGZy
YW1lRGV0YWNoZWQoKQorICAgIGZ1bmN0aW9uIGZyYW1lTmF2aWdhdGVkKCkKICAgICB7CiAgICAg
ICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChbInJlc291cmNl
LXRyZWUtZXJyb3JzLXJlbG9hZC5odG1sIl0sIHJlc291cmNlc0ZpbmlzaGVkKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVl
L3Jlc291cmNlLXRyZWUtZnJhbWUtYWRkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtYWRkLmh0bWwKaW5kZXgg
OGMwZGQwZmZhYmRiZTZiOTVhODRhMmFmMWExZDVkZjgzZTkxYTIxZi4uNzViOTVmODYyMzE2MzZm
OWEwZDQxYzA2YWVhYmJhMWQxZWYzNDZkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLWFkZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVz
b3VyY2UtdHJlZS1mcmFtZS1hZGQuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBvbklm
cmFtZUxvYWQoKQogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkFm
dGVyUmVzb3VyY2VzQXJlRmluaXNoZWQoWyJyZXNvdXJjZS10cmVlLWZyYW1lLWFkZC5odG1sIl0s
IHN0ZXAxKTsKKyAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUmVzb3VyY2VzQXJlRmluaXNoZWQo
WyJyZXNvdXJjZS10cmVlLWZyYW1lLWFkZC5odG1sIiwgInJlc291cmNlLXRyZWUtdGVzdC5qcyIs
ICJzdHlsZXMtaW5pdGlhbC5jc3MiXSwgc3RlcDEpOwogCiAgICAgZnVuY3Rpb24gc3RlcDEoKQog
ICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlLXRyZWUvcmVzb3VyY2UtdHJlZS1taW1ldHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLW1pbWV0eXBlLmh0bWwK
aW5kZXggMDVjNWJiNGNjZjNjMzcxNjYxMGY5MGM2YWM4NDNmMmJiMDg3MzE1Ny4uMGEyNTk0NmIz
NTVjMjEwZjY5OTM1MTk0MjQzNDRiNTk4YTQ0N2NhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLW1pbWV0eXBl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJl
ZS9yZXNvdXJjZS10cmVlLW1pbWV0eXBlLmh0bWwKQEAgLTksNyArOSw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCiAgICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbHMubmV0d29yay5fcmVzZXQoKTsKICAgICBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9k
ZWwuRXZlbnRUeXBlcy5DYWNoZWRSZXNvdXJjZXNMb2FkZWQsIHN0ZXAyKTsKLSAgICBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZnJvbnRlbmRSZXVzZWQoKTsKKyAgICBXZWJJbnNwZWN0
b3IucmVzb3VyY2VUcmVlTW9kZWwuX2ZldGNoUmVzb3VyY2VUcmVlKCk7CiAKICAgICBmdW5jdGlv
biBzdGVwMigpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtdGVzdC5qcwpp
bmRleCA3MjRiNmI5ZmM0ZDA1ZjBmOWM2ZDgzNWQwYTcyYTZkMzMyMjk3N2RhLi40YWMzODdmMzll
YjgzY2UyNjNiZjU2NmU5MmM1OGE5ODA1Njk0Mjg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtdGVzdC5qcwor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291
cmNlLXRyZWUtdGVzdC5qcwpAQCAtMjcsOSArMjcsMTAgQEAgSW5zcGVjdG9yVGVzdC5kdW1wUmVz
b3VyY2VzID0gZnVuY3Rpb24oZm9ybWF0dGVyKQogSW5zcGVjdG9yVGVzdC5kdW1wUmVzb3VyY2Vz
VVJMTWFwID0gZnVuY3Rpb24oKQogewogICAgIHZhciByZXN1bHRzID0gW107Ci0gICAgZm9yICh2
YXIgdXJsIGluIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5fcmVzb3VyY2VzQnlVUkwp
IHsKLSAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVs
Ll9yZXNvdXJjZXNCeVVSTFt1cmxdOwotICAgICAgICByZXN1bHRzLnB1c2goeyB1cmw6IHVybCwg
cmVzb3VyY2U6IHJlc291cmNlIH0pOworICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2Rl
bC5mb3JBbGxSZXNvdXJjZXMoY29sbGVjdCk7CisgICAgZnVuY3Rpb24gY29sbGVjdChyZXNvdXJj
ZSkKKyAgICB7CisgICAgICAgIHJlc3VsdHMucHVzaCh7IHVybDogcmVzb3VyY2UudXJsLCByZXNv
dXJjZTogV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLnJlc291cmNlRm9yVVJMKHJlc291
cmNlLnVybCkgfSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gY29tcGFyYXRvcihyZXN1bHQxLCBy
ZXN1bHQyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMtdGVzdC5qcwppbmRleCA2MTY5MTBjMTlhNzkwMjA2MjIxNmE3ODY4YzBhZjEzOWMxYzM0Yjc0
Li42MmNjYzBjYWUwYzNkNWYzMzUyYzkxMTY0OWI4MzVhYTkzODA5Zjg2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qcworKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMtdGVzdC5qcwpAQCAtMjcs
NTAgKzI3LDU3IEBAIEluc3BlY3RvclRlc3QucmVzb3VyY2VVUkxDb21wYXJlciA9IGZ1bmN0aW9u
KHIxLCByMikKICAgICByZXR1cm4gcjEucmVxdWVzdC51cmwubG9jYWxlQ29tcGFyZShyMi5yZXF1
ZXN0LnVybCk7CiB9CiAKLUluc3BlY3RvclRlc3QucnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hl
ZCA9IGZ1bmN0aW9uKHJlc291cmNlVVJMcywgY2FsbGJhY2spCitJbnNwZWN0b3JUZXN0LnJ1bkFm
dGVyQ2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkID0gZnVuY3Rpb24oY2FsbGJhY2spCiB7Ci0gICAg
SW5zcGVjdG9yVGVzdC5fcnVuQWZ0ZXJSZXNvdXJjZXNBcmVGaW5pc2hlZChyZXNvdXJjZVVSTHMu
a2V5U2V0KCksIGNhbGxiYWNrKTsKKyAgICBpZiAoIVdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVN
b2RlbC5fY2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKQorICAgICAgICBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwuRXZlbnRUeXBlcy5DYWNoZWRSZXNvdXJjZXNMb2FkZWQsIGNhbGxiYWNrKTsKKyAgICBl
bHNlCisgICAgICAgIGNhbGxiYWNrKCk7CiB9CiAKLUluc3BlY3RvclRlc3QuX3J1bkFmdGVyUmVz
b3VyY2VzQXJlRmluaXNoZWQgPSBmdW5jdGlvbihyZXNvdXJjZVVSTHMsIGNhbGxiYWNrKQorSW5z
cGVjdG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0FyZUZpbmlzaGVkID0gZnVuY3Rpb24ocmVzb3Vy
Y2VVUkxzLCBjYWxsYmFjaykKIHsKLSAgICBmdW5jdGlvbiBjaGVja1Jlc291cmNlKHJlc291cmNl
KQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgdXJsIGluIHJlc291cmNlVVJMcykgewotICAgICAg
ICAgICAgaWYgKHJlc291cmNlLnVybC5pbmRleE9mKHVybCkgIT09IC0xKQotICAgICAgICAgICAg
ICAgIGRlbGV0ZSByZXNvdXJjZVVSTHNbdXJsXTsKLSAgICAgICAgfQotICAgIH0KKyAgICB2YXIg
cmVzb3VyY2VVUkxzTWFwID0gcmVzb3VyY2VVUkxzLmtleVNldCgpOwogCi0gICAgZnVuY3Rpb24g
bWF5YmVDYWxsYmFjaygpCisgICAgZnVuY3Rpb24gY2hlY2tSZXNvdXJjZXMoKQogICAgIHsKLSAg
ICAgICAgaWYgKCFPYmplY3Qua2V5cyhyZXNvdXJjZVVSTHMpLmxlbmd0aCkgeworICAgICAgICBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZm9yQWxsUmVzb3VyY2VzKHZpc2l0KTsKKyAg
ICAgICAgZnVuY3Rpb24gdmlzaXQocmVzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZv
ciAodXJsIGluIHJlc291cmNlVVJMc01hcCkgeworICAgICAgICAgICAgICAgIGlmIChyZXNvdXJj
ZS51cmwuaW5kZXhPZih1cmwpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJl
c291cmNlVVJMc01hcFt1cmxdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlm
ICghT2JqZWN0LmtleXMocmVzb3VyY2VVUkxzTWFwKS5sZW5ndGgpIHsKKyAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIGNoZWNrUmVz
b3VyY2VzKTsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogICAgIH0KKyAgICBjaGVja1Jlc291cmNlcygpOworICAgIGlmIChPYmpl
Y3Qua2V5cyhyZXNvdXJjZVVSTHNNYXApLmxlbmd0aCkKKyAgICAgICAgV2ViSW5zcGVjdG9yLnJl
c291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJl
ZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3VyY2VBZGRlZCwgY2hlY2tSZXNvdXJjZXMpOworfQogCi0g
ICAgZnVuY3Rpb24gYWRkU25pZmZlcihyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBl
LCAiX2FkZFJlc291cmNlVG9GcmFtZSIsIHJlc291cmNlQWRkZWRUb0ZyYW1lLmJpbmQodGhpcykp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJlc291cmNlQWRkZWRUb0ZyYW1lKHJlc291cmNlKQot
ICAgIHsKLSAgICAgICAgY2hlY2tSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgIGlmICghbWF5
YmVDYWxsYmFjaygpKQotICAgICAgICAgICAgYWRkU25pZmZlcigpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHZpc2l0KHJlc291cmNlKQorSW5zcGVjdG9yVGVzdC5zaG93UmVzb3VyY2UgPSBmdW5j
dGlvbihyZXNvdXJjZVVSTCwgY2FsbGJhY2spCit7CisgICAgZnVuY3Rpb24gc2hvd1Jlc291cmNl
Q2FsbGJhY2soKQogICAgIHsKLSAgICAgICAgY2hlY2tSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAg
ICAgIHJldHVybiBtYXliZUNhbGxiYWNrKCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXModmlzaXQpOworICAgICAgICBmdW5jdGlvbiB2aXNp
dChyZXNvdXJjZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHJlc291cmNlLnVybC5pbmRl
eE9mKHJlc291cmNlVVJMKSAhPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLnJlc291cmNlcy5zaG93UmVzb3VyY2UocmVzb3VyY2UsIDEpOworICAgICAgICAgICAg
ICAgIHZhciBzb3VyY2VGcmFtZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLl9yZXNv
dXJjZVZpZXdGb3JSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJj
ZUZyYW1lLmxvYWRlZCkKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soc291cmNlRnJhbWUp
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc291cmNlRnJhbWUu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwg
Y2FsbGJhY2suYmluZChudWxsLCBzb3VyY2VGcmFtZSkpOworICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQotCi0gICAgdmFyIHN1Y2Nl
ZWRlZCA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXModmlz
aXQpOwotICAgIGlmICghc3VjY2VlZGVkKQotICAgICAgICBhZGRTbmlmZmVyKCk7CisgICAgSW5z
cGVjdG9yVGVzdC5ydW5BZnRlclJlc291cmNlc0FyZUZpbmlzaGVkKFtyZXNvdXJjZVVSTF0sIHNo
b3dSZXNvdXJjZUNhbGxiYWNrKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1sCmluZGV4IDEyZTAyZjI2MDY1YjBiYzI5ODZjZWEy
MDUxNGFlMWQwNmRjZjM2ODUuLjlhZDQxMDQ3YzRkMzQ0NDJiODZiOTNkYjQxMjI1YzBkNjRkZjA5
YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJh
bWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1l
Lmh0bWwKQEAgLTQ4LDExICs0OCwxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5zaG93UGFuZWwoIm5ldHdvcmsiKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUsICJzaG93
IiwgZGlkU2hvd1NvdXJjZUZyYW1lKTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZXMgPSBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuX3Jlc291cmNlc0J5VVJMOwotICAgICAgICAgICAg
Zm9yICh2YXIgdXJsIGluIHJlc291cmNlcykgewotICAgICAgICAgICAgICAgIGlmICh1cmwuaW5k
ZXhPZigiZGVidWdnZXItdGVzdC5qcyIpICE9PSAtMSkgewotICAgICAgICAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuX3Nob3dSZXNvdXJjZShyZXNvdXJjZXNbdXJsXSwg
MSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IucmVzb3VyY2VUcmVlTW9kZWwuZm9yQWxsUmVzb3VyY2VzKHZpc2l0KTsKKyAgICAgICAgICAg
IGZ1bmN0aW9uIHZpc2l0KHJlc291cmNlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IGlmIChyZXNvdXJjZS51cmwuaW5kZXhPZigiZGVidWdnZXItdGVzdC5qcyIpICE9PSAtMSkgewor
ICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuX3Nob3dSZXNv
dXJjZShyZXNvdXJjZSwgMSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9jc3MtbGl2ZS1lZGl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL2Nzcy1saXZlLWVkaXQuaHRtbAppbmRleCA5YjdhZDEyODM2NjZlMmYwMjY3N2Ex
N2IxZmZkNjkwZGYxMWJhNzNiLi5kNWUwZjI5MjVkZjMwZGViNmY1ZTk1YjU2ZDFkZTdhN2Q1Mjlm
ODYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Nzcy1saXZlLWVk
aXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Nzcy1saXZlLWVkaXQu
aHRtbApAQCAtMyw2ICszLDcgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvbGl2ZS1lZGl0LXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy10ZXN0
LmpzIj48L3NjcmlwdD4KIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2dl
dC1zZXQtc3R5bGVzaGVldC10ZXh0LmNzcyI+CiA8ZGl2IGlkPWZvbz48L2Rpdj4KIDxzY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwK
aW5kZXggMjIwZGU2YmYyZjQwZmNiZTYyY2ZlZTRjNzRlMzczYTY3YmJlYTgyYS4uYmVmZGM0ODdm
ZWRmNGUyYzVmNGFhMDA3ZDU3YjE5OGYwZTlhMDRmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3RvcnkuaHRtbApAQCAtNSwxNCArNSwxMiBAQAogCiA8
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGZ1bmN0aW9u
IHRlc3QoKQogewotICAgIGlmICghV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLl9jYWNo
ZWRSZXNvdXJjZXNQcm9jZXNzZWQpCi0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVN
b2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVu
dFR5cGVzLkNhY2hlZFJlc291cmNlc0xvYWRlZCwgcnVuVGVzdFN1aXRlKTsKLSAgICBlbHNlCi0g
ICAgICAgIHJ1blRlc3RTdWl0ZSgpOworICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJDYWNoZWRS
ZXNvdXJjZXNQcm9jZXNzZWQocnVuVGVzdFN1aXRlKTsKIAogICAgIHZhciBzdHlsZVJlc291cmNl
OwogICAgIHZhciBzdHlsZVNoZWV0SWQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNzc5ZDRkZTY2NmVkZTFjNWUyM2Mx
YWVlYTFjZTdlMGNmOTkyNDcwYi4uMGE0Y2JlYjYzNmYzNDk3M2I4NGNiNjM1NGU0MDJkNGEyODBh
ZTcwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dApAQCAtMzA1OSw3ICszMDU5LDYgQEAgQlVHV0s1OTY3MyA6IGh0dHAvdGVz
dHMvaGlzdG9yeS9jcm9zcy1vcmlnaW4tcmVwbGFjZS1oaXN0b3J5LW9iamVjdC1jaGlsZC5odG1s
ID0KIC8vIEZsYWtpbmVzcyBvbiBjYW5hcmllcyAobm90ZWQgfiByODUxNDApCiBCVUdLQlIgV0lO
IERFQlVHIDogZmFzdC9maWxlc3lzdGVtL2ZpbGUtd3JpdGVyLXRydW5jYXRlLWV4dGVuZC5odG1s
ID0gUEFTUyBURVhUCiBCVUdXSzcwODg2IERFQlVHIDogZmFzdC9ldmVudHMvY2hhbmdlLW92ZXJm
bG93LW9uLW92ZXJmbG93LWNoYW5nZS5odG1sID0gUEFTUyBUSU1FT1VUCi1CVUdXSzcwODg0IExJ
TlVYIFdJTiA6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVzb3VyY2UtdHJl
ZS1mcmFtZS1uYXZpZ2F0ZS5odG1sID0gUEFTUyBUSU1FT1VUIFRFWFQKIAogQlVHV0s2MDExMiA6
IGZhc3QvY3NzL2VwdWItcHJvcGVydGllcy5odG1sID0gVEVYVAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZAppbmRleCBjMmQxMmI5YTdmNzgyMWRhZDBiM2ZmYTJmYTJhY2Q1OGFhZjg3OGFmLi44Nzkx
ZWQ5ZDAyNDQ4Nzg2MzEwMjFiMWM0YzZjMjBhODVjOGI4NmYyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQKQEAgLTUyNiwxMCArNTI2LDYgQEAgaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLXNpemUuaHRtbAogIyBUaGlzIHRlc3QgY29uc2lzdGVudGx5IGZhaWxzIGlmIHJ1biB3
aXRoIC0tc2luZ2x5IGZsYWcKIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1wYWludC5odG1s
CiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NDUzCi0jIFRo
aXMgdGVzdCB3aWxsIGZhaWwgaWYgaXQncyB0aGUgZmlyc3QgaW5zcGVjdG9yIHRlc3QgdG8gcnVu
LgotaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLWJsYW5rLXByb3BlcnR5Lmh0bWwKLQogIyBb
UXRdIE5ldyBmYWlscyBjYXVzZWQgYnkgY2hhbmdlKHMpIGJldHdlZW4gcjc5MzE3LXI3OTMyMC4K
IGluc3BlY3Rvci9kZWJ1Z2dlci9vcGVuLWNsb3NlLW9wZW4uaHRtbAogCkBAIC0yMTU4LDggKzIx
NTQsNiBAQCBmYXN0L3BhcnNlci94aHRtbC1pbm5lcmh0bWwtbnVsbC1ieXRlLnhodG1sCiAKICMg
bmV3IGZhaWxpbmcgaW5zcGVjdG9yIHRlc3RzCiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRy
YWNlLWluLWV2YWwuaHRtbAotaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1sCi1p
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sCiAKICMgVGVzdCBmYWls
cyBiZWNhdXNlIHNjcmlwdCBwcmV0dHktcHJpbnQgZG9lcyBub3Qgd29yayBpbiBpbnNwZWN0b3Ig
b24gSlNDIHdoZW4gcGF1c2VkIG9uIGJyZWFrcG9pbnQuIAogIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMjAK
</data>
<flag name="review"
          id="115720"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>