<?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>20625</bug_id>
          
          <creation_ts>2008-09-03 07:51:38 -0700</creation_ts>
          <short_desc>ConsoleMessage should have a &quot;type&quot; attribute</short_desc>
          <delta_ts>2009-07-12 23:15:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>90019</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-09-03 07:51:38 -0700</bug_when>
    <thetext>ConsoleMessage should have a &quot;type&quot; attribute to separate console message types from console message levels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93357</commentid>
    <comment_count>1</comment_count>
      <attachid>23938</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-09-30 05:48:44 -0700</bug_when>
    <thetext>Created attachment 23938
patch

Clean up. Moved message types from MessageLevel to MessageType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93764</commentid>
    <comment_count>2</comment_count>
      <attachid>23938</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-02 12:17:38 -0700</bug_when>
    <thetext>Comment on attachment 23938
patch

This needs some updates to work with TOT.


             // This _format call passes in true for the plainText argument. The result&apos;s textContent is
             // used for inline message bubbles in SourceFrames, or other plain-text representations.
-            this.message = this._format(Array.prototype.slice.call(arguments, 6), true).textContent;
+            this.message = this._format(Array.prototype.slice.call(arguments, 7), true).textContent;
 
             // The formatedMessage property is used for the rich and interactive console.
-            this.formattedMessage = this._format(Array.prototype.slice.call(arguments, 6));
+            this.formattedMessage = this._format(Array.prototype.slice.call(arguments, 7));
             break;

We no longer call _format twice.

Otherwise looks good! But r- until it can apply to TOT,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130618</commentid>
    <comment_count>3</comment_count>
      <attachid>32502</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-07-08 22:50:23 -0700</bug_when>
    <thetext>Created attachment 32502
Patch to add MessageType to ConsoleMessage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130623</commentid>
    <comment_count>4</comment_count>
      <attachid>32504</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-07-09 00:18:21 -0700</bug_when>
    <thetext>Created attachment 32504
forgot to write WebKit ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130719</commentid>
    <comment_count>5</comment_count>
      <attachid>32504</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-07-09 13:41:50 -0700</bug_when>
    <thetext>Comment on attachment 32504
forgot to write WebKit ChangeLog


&gt; -            case WebInspector.ConsoleMessage.MessageLevel.StartGroup:
&gt; -                element.addStyleClass(&quot;console-group-title-level&quot;);
&gt; +        }
&gt; +        
&gt; +        if (this.type === WebInspector.ConsoleMessage.MessageType.StartGroup) {
&gt; +            element.addStyleClass(&quot;console-group-title&quot;);

Why can&apos;t this be in the switch liek before?

&gt; diff --git a/WebCore/workers/GenericWorkerTask.h b/WebCore/workers/GenericWorkerTask.h
&gt; index 3611fea..d6a9994 100644
&gt; --- a/WebCore/workers/GenericWorkerTask.h
&gt; +++ b/WebCore/workers/GenericWorkerTask.h
&gt; @@ -328,6 +328,56 @@ namespace WebCore {
&gt;          P6 m_parameter6;
&gt;          P7 m_parameter7;
&gt;      };
&gt; +    
&gt; +    template&lt;typename P1, typename MP1, typename P2, typename MP2, typename P3, typename MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typename MP6, typename P7, typename MP7, typename P8, typename MP8&gt;
&gt; +    class GenericWorkerTask8 : public ScriptExecutionContext::Task {
&gt; +    public:
&gt; +        typedef void (*Method)(ScriptExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6, MP7, MP8);
&gt; +        typedef GenericWorkerTask8&lt;P1, MP1, P2, MP2, P3, MP3, P4, MP4, P5, MP5, P6, MP6, P7, MP7, P8, MP8&gt; GenericWorkerTask;
&gt; +        typedef typename GenericWorkerTaskTraits&lt;P1&gt;::ParamType Param1;
&gt; +        typedef typename GenericWorkerTaskTraits&lt;P2&gt;::ParamType Param2;
&gt; +        typedef typename GenericWorkerTaskTraits&lt;P3&gt;::ParamType Param3;
&gt; +        typedef typename GenericWorkerTaskTraits&lt;P4&gt;::ParamType Param4;
&gt; +        typedef typename GenericWorkerTaskTraits&lt;P5&gt;::ParamType Param5;
&gt; +        typedef typename GenericWorkerTaskTraits&lt;P6&gt;::ParamType Param6;
&gt; +        typedef typename GenericWorkerTaskTraits&lt;P7&gt;::ParamType Param7;
&gt; +        typedef typename GenericWorkerTaskTraits&lt;P8&gt;::ParamType Param8;
&gt; +        
&gt; +        static PassRefPtr&lt;GenericWorkerTask&gt; create(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3, Param4 parameter4, Param5 parameter5, Param6 parameter6, Param7 parameter7, Param8 parameter8)
&gt; +        {
&gt; +            return adoptRef(new GenericWorkerTask(method, parameter1, parameter2, parameter3, parameter4, parameter5, parameter6, parameter7, parameter8));
&gt; +        }
&gt; +        
&gt; +    private:
&gt; +        GenericWorkerTask8(Method method, Param1 parameter1, Param2 parameter2, Param3 parameter3, Param4 parameter4, Param5 parameter5, Param6 parameter6, Param7 parameter7, Param8 parameter8)
&gt; +        : m_method(method)
&gt; +        , m_parameter1(parameter1)
&gt; +        , m_parameter2(parameter2)
&gt; +        , m_parameter3(parameter3)
&gt; +        , m_parameter4(parameter4)
&gt; +        , m_parameter5(parameter5)
&gt; +        , m_parameter6(parameter6)
&gt; +        , m_parameter7(parameter7)
&gt; +        , m_parameter8(parameter8)
&gt; +        {
&gt; +        }
&gt; +        
&gt; +        virtual void performTask(ScriptExecutionContext* context)
&gt; +        {
&gt; +            (*m_method)(context, m_parameter1, m_parameter2, m_parameter3, m_parameter4, m_parameter5, m_parameter6, m_parameter7, m_parameter8);
&gt; +        }
&gt; +        
&gt; +    private:
&gt; +        Method m_method;
&gt; +        P1 m_parameter1;
&gt; +        P2 m_parameter2;
&gt; +        P3 m_parameter3;
&gt; +        P4 m_parameter4;
&gt; +        P5 m_parameter5;
&gt; +        P6 m_parameter6;
&gt; +        P7 m_parameter7;
&gt; +        P8 m_parameter8;
&gt; +    };
&gt;  
&gt;      template&lt;typename P1, typename MP1&gt;
&gt;      PassRefPtr&lt;ScriptExecutionContext::Task&gt; createCallbackTask(
&gt; @@ -413,6 +463,21 @@ namespace WebCore {
&gt;                  CrossThreadCopier&lt;P7&gt;::copy(parameter7));
&gt;      }
&gt;  
&gt; +    template&lt;typename P1, typename MP1, typename P2, typename MP2, typename P3, typename MP3, typename P4, typename MP4, typename P5, typename MP5, typename P6, typename MP6, typename P7, typename MP7, typename P8, typename MP8&gt;
&gt; +    PassRefPtr&lt;ScriptExecutionContext::Task&gt; createCallbackTask(
&gt; +                                                                void (*method)(ScriptExecutionContext*, MP1, MP2, MP3, MP4, MP5, MP6, MP7, MP8),
&gt; +                                                                const P1&amp; parameter1, const P2&amp; parameter2, const P3&amp; parameter3, const P4&amp; parameter4, const P5&amp; parameter5, const P6&amp; parameter6, const P7&amp; parameter7, const P8&amp; parameter8)
&gt; +    {
&gt; +        return GenericWorkerTask8&lt;typename CrossThreadCopier&lt;P1&gt;::Type, MP1, typename CrossThreadCopier&lt;P2&gt;::Type, MP2, typename CrossThreadCopier&lt;P3&gt;::Type, MP3,
&gt; +        typename CrossThreadCopier&lt;P4&gt;::Type, MP4, typename CrossThreadCopier&lt;P5&gt;::Type, MP5, typename CrossThreadCopier&lt;P6&gt;::Type, MP6,
&gt; +        typename CrossThreadCopier&lt;P7&gt;::Type, MP7, typename CrossThreadCopier&lt;P8&gt;::Type, MP8&gt;::create(
&gt; +                                                           method,
&gt; +                                                           CrossThreadCopier&lt;P1&gt;::copy(parameter1), CrossThreadCopier&lt;P2&gt;::copy(parameter2),
&gt; +                                                           CrossThreadCopier&lt;P3&gt;::copy(parameter3), CrossThreadCopier&lt;P4&gt;::copy(parameter4),
&gt; +                                                           CrossThreadCopier&lt;P5&gt;::copy(parameter5), CrossThreadCopier&lt;P6&gt;::copy(parameter6),
&gt; +                                                           CrossThreadCopier&lt;P7&gt;::copy(parameter7), CrossThreadCopier&lt;P8&gt;::copy(parameter8));
&gt; +    }
&gt; +
&gt;  } // namespace WebCore
&gt;  
&gt;  #endif // ENABLE(WORKERS)

What is up with the change to WebCore/workers/GenericWorkerTask.h? I don&apos;t think that is relivant to this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130736</commentid>
    <comment_count>6</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-07-09 14:43:19 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 32504 [details])
&gt; 
&gt; &gt; -            case WebInspector.ConsoleMessage.MessageLevel.StartGroup:
&gt; &gt; -                element.addStyleClass(&quot;console-group-title-level&quot;);
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt; +        if (this.type === WebInspector.ConsoleMessage.MessageType.StartGroup) {
&gt; &gt; +            element.addStyleClass(&quot;console-group-title&quot;);
&gt; 
&gt; Why can&apos;t this be in the switch liek before?
&gt;

I only had one case to switch depending on &quot;this.type&quot; so I used an if statement.

&gt; What is up with the change to WebCore/workers/GenericWorkerTask.h? I don&apos;t
&gt; think that is relivant to this change.

I added a type argument to &quot;WorkerContext::addMessage&quot;
then to &quot;WorkerMessagingProxy::postConsoleMessageToWorkerObject&quot;
then to &quot;postConsoleMessageTask&quot;

Then &quot;createCallbackTask&quot; needed an additional argument so I added &quot;GenericWorkerTask8&quot;.

Is this not necessary? I&apos;m not sure when WorkerContext::addMessage gets called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131242</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2009-07-12 22:09:38 -0700</bug_when>
    <thetext>Patch needed some tiny adjustments to XSSAuditor.cpp, but tests pass after my adjustments so I think it&apos;s okay.

Landed in http://trac.webkit.org/changeset/45786.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131251</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2009-07-12 23:15:04 -0700</bug_when>
    <thetext>Note that the original patch broke Qt, wx, Gtk+, and Windows support as written.

See:

http://trac.webkit.org/changeset/45789
http://trac.webkit.org/changeset/45790</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23938</attachid>
            <date>2008-09-30 05:48:44 -0700</date>
            <delta_ts>2009-07-08 22:50:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch60.txt</filename>
            <type>text/plain</type>
            <size>23661</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzA5MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMDgtMDktMzAgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgQWRkZWQgdHlwZSBhdHRyaWJ1dGUgdG8gQ29uc29sZU1l
c3NhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDYyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OmFkZE1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6
Q29uc29sZTo6aW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjpsb2cpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29uc29sZTo6ZGlyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OmRp
cnhtbCk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjp0cmFjZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb25zb2xlOjphc3NlcnRDb25kaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29s
ZTo6dGltZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjp3YXJuKToKKyAgICAgICAg
KiBwYWdlL0NvbnNvbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6IEFkZGVkIE1lc3NhZ2VUeXBl
IGVudW0gYW5kIG1vdmVkIG1lc3NhZ2UgdHlwZXMgZnJvbSBNZXNzYWdlTGV2ZWwgdG8gTWVzc2Fn
ZVR5cGUuCisgICAgICAgICogcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZSk6IEFkZGVkIE1lc3NhZ2VU
eXBlIG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdlOjppc0VxdWFsKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmFkZE1lc3NhZ2VUb0NvbnNv
bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRHcm91cCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjplbmRHcm91cCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjphZGRQcm9maWxlTWVzc2FnZVRvQ29u
c29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjphZGRTY3JpcHRD
b25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpj
b3VudCk6CisgICAgICAgICogcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICog
cGFnZS9pbnNwZWN0b3IvQ29uc29sZS5qczoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcp
OgorCiAyMDA4LTA5LTI5ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgVGltIEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCShyZXZpc2lvbiAzNzA2MSkK
KysrIFdlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDcgKzE2
Niw3IEBAIHZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHMKICAgICBpZiAo
c291cmNlID09IEpTTWVzc2FnZVNvdXJjZSkKICAgICAgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVu
dCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7
CiAKLSAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUo
c291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICBwYWdl
LT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiAKICAg
ICBwcmludFRvU3RhbmRhcmRPdXQoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBs
aW5lTnVtYmVyKTsKIH0KQEAgLTE5Niw3ICsxOTYsNyBAQCB2b2lkIENvbnNvbGU6OmVycm9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uCiAgICAgcmV0cmlldmVMYXN0Q2FsbGVyKGV4ZWMsIHVybCwgbGlu
ZU51bWJlcik7CiAKICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0Nv
bnNvbGUobWVzc2FnZSwgbGluZU51bWJlciwgdXJsLnByZXR0eVVSTCgpKTsKLSAgICBwYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgZXhlYywgYXJncywgbGluZU51bWJlciwgdXJsLnN0cmluZygp
KTsKKyAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUo
SlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGV4ZWMs
IGFyZ3MsIGxpbmVOdW1iZXIsIHVybC5zdHJpbmcoKSk7CiAKICAgICBwcmludFRvU3RhbmRhcmRP
dXQoRXJyb3JNZXNzYWdlTGV2ZWwsIGV4ZWMsIGFyZ3MsIHVybCk7CiB9CkBAIC0yMjAsNyArMjIw
LDcgQEAgdm9pZCBDb25zb2xlOjppbmZvKEV4ZWNTdGF0ZSogZXhlYywgY29ucwogICAgIHJldHJp
ZXZlTGFzdENhbGxlcihleGVjLCB1cmwsIGxpbmVOdW1iZXIpOwogCiAgICAgcGFnZS0+Y2hyb21l
KCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHVy
bC5wcmV0dHlVUkwoKSk7Ci0gICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNz
YWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZUxldmVsLCBleGVjLCBhcmdz
LCBsaW5lTnVtYmVyLCB1cmwuc3RyaW5nKCkpOworICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xs
ZXIoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBMb2dNZXNzYWdlTGV2ZWwsIGV4ZWMsIGFyZ3MsIGxpbmVOdW1iZXIsIHVybC5zdHJpbmcoKSk7
CiAKICAgICBwcmludFRvU3RhbmRhcmRPdXQoTG9nTWVzc2FnZUxldmVsLCBleGVjLCBhcmdzLCB1
cmwpOwogfQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgQ29uc29sZTo6bG9nKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QKICAgICByZXRyaWV2ZUxhc3RDYWxsZXIoZXhlYywgdXJsLCBsaW5lTnVtYmVy
KTsKIAogICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZSht
ZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwucHJldHR5VVJMKCkpOwotICAgIHBhZ2UtPmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VMZXZlbCwgZXhlYywgYXJncywgbGluZU51bWJlciwgdXJsLnN0cmluZygpKTsKKyAgICBw
YWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBleGVjLCBhcmdzLCBsaW5l
TnVtYmVyLCB1cmwuc3RyaW5nKCkpOwogCiAgICAgcHJpbnRUb1N0YW5kYXJkT3V0KExvZ01lc3Nh
Z2VMZXZlbCwgZXhlYywgYXJncywgdXJsKTsKIH0KQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIENv
bnNvbGU6OmRpcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3NhZ2VU
b0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBPYmplY3RNZXNzYWdlTGV2ZWwsIGV4ZWMsIGFyZ3Ms
IDAsIFN0cmluZygpKTsKKyAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3Nh
Z2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBPYmplY3RNZXNzYWdlVHlwZSwgTG9nTWVzc2Fn
ZUxldmVsLCBleGVjLCBhcmdzLCAwLCBTdHJpbmcoKSk7CiB9CiAKIHZvaWQgQ29uc29sZTo6ZGly
eG1sKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKQEAgLTI3Myw3ICsyNzMs
NyBAQCB2b2lkIENvbnNvbGU6OmRpcnhtbChFeGVjU3RhdGUqIGV4ZWMsIGNvCiAgICAgaWYgKCFw
YWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkt
PmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBOb2RlTWVzc2FnZUxldmVsLCBl
eGVjLCBhcmdzLCAwLCBTdHJpbmcoKSk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTm9kZU1lc3NhZ2VUeXBlLCBM
b2dNZXNzYWdlTGV2ZWwsIGV4ZWMsIGFyZ3MsIDAsIFN0cmluZygpKTsKIH0KIAogdm9pZCBDb25z
b2xlOjp0cmFjZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBDb25z
b2xlOjp0cmFjZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGZ1bmMgPSBleGVjLT5tYWNoaW5l
KCktPnJldHJpZXZlQ2FsbGVyKGV4ZWMsIHN0YXRpY19jYXN0PEludGVybmFsRnVuY3Rpb24qPihm
dW5jKSk7CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+YWRk
TWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIFRyYWNlTWVzc2FnZUxldmVsLCBleGVj
LCBhcmdzLCAwLCBTdHJpbmcoKSk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5h
ZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgVHJhY2VNZXNzYWdlVHlwZSwgTG9n
TWVzc2FnZUxldmVsLCBleGVjLCBhcmdzLCAwLCBTdHJpbmcoKSk7CiB9CiAKIHZvaWQgQ29uc29s
ZTo6YXNzZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IEFyZ0xpc3QmIGFyZ3MpCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBDb25zb2xlOjphc3NlcnRD
b25kaXRpb24oYm9vbCBjb25kaQogICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTM1PiBJdCB3b3VsZCBiZSBuaWNlIHRvIHByZWZpeCBhc3Nl
cnRpb24gZmFpbHVyZXMgd2l0aCBhIG1lc3NhZ2UgbGlrZSAiQXNzZXJ0aW9uIGZhaWxlZDogIi4K
ICAgICAvLyBGSVhNRTogPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTEzNj4gV2Ugc2hvdWxkIHByaW50IGEgbWVzc2FnZSBldmVuIHdoZW4gYXJncy5pc0VtcHR5KCkg
aXMgdHJ1ZS4KIAotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+YWRkTWVzc2FnZVRv
Q29uc29sZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBleGVjLCBhcmdzLCBs
aW5lTnVtYmVyLCB1cmwuc3RyaW5nKCkpOworICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS0+YWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgZXhlYywgYXJncywgbGluZU51bWJlciwgdXJsLnN0cmluZygpKTsK
IAogICAgIHByaW50VG9TdGFuZGFyZE91dChFcnJvck1lc3NhZ2VMZXZlbCwgZXhlYywgYXJncywg
dXJsKTsKIH0KQEAgLTM5OSw3ICszOTksNyBAQCB2b2lkIENvbnNvbGU6OnRpbWVFbmQoRXhlY1N0
YXRlKiBleGVjLCBjCiAgICAgdW5zaWduZWQgbGluZU51bWJlcjsKICAgICByZXRyaWV2ZUxhc3RD
YWxsZXIoZXhlYywgdXJsLCBsaW5lTnVtYmVyKTsKIAotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRy
b2xsZXIoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VM
ZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgdXJsLnN0cmluZygpKTsKKyAgICBwYWdlLT5pbnNw
ZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwu
c3RyaW5nKCkpOwogfQogCiB2b2lkIENvbnNvbGU6Omdyb3VwKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgQXJnTGlzdCYgYXJndW1lbnRzKQpAQCAtNDM5LDcgKzQzOSw3IEBAIHZvaWQgQ29uc29sZTo6
d2FybihFeGVjU3RhdGUqIGV4ZWMsIGNvbnMKICAgICByZXRyaWV2ZUxhc3RDYWxsZXIoZXhlYywg
dXJsLCBsaW5lTnVtYmVyKTsKIAogICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVz
c2FnZVRvQ29uc29sZShtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwucHJldHR5VVJMKCkpOwotICAg
IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3Nh
Z2VTb3VyY2UsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIGV4ZWMsIGFyZ3MsIGxpbmVOdW1iZXIsIHVy
bC5zdHJpbmcoKSk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdl
VG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdl
TGV2ZWwsIGV4ZWMsIGFyZ3MsIGxpbmVOdW1iZXIsIHVybC5zdHJpbmcoKSk7CiAKICAgICBwcmlu
dFRvU3RhbmRhcmRPdXQoV2FybmluZ01lc3NhZ2VMZXZlbCwgZXhlYywgYXJncywgdXJsKTsKIH0K
SW5kZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L0NvbnNvbGUuaAkocmV2aXNpb24gMzcwNjEpCisrKyBXZWJDb3JlL3BhZ2UvQ29uc29sZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NCwxNiArNTQsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBPdGhlck1lc3NhZ2VTb3VyY2UKICAgICB9OwogCisgICAgZW51bSBNZXNzYWdlVHlwZSB7
CisgICAgICAgIExvZ01lc3NhZ2VUeXBlLAorICAgICAgICBPYmplY3RNZXNzYWdlVHlwZSwKKyAg
ICAgICAgTm9kZU1lc3NhZ2VUeXBlLAorICAgICAgICBUcmFjZU1lc3NhZ2VUeXBlLAorICAgICAg
ICBTdGFydEdyb3VwTWVzc2FnZVR5cGUsCisgICAgICAgIEVuZEdyb3VwTWVzc2FnZVR5cGUKKyAg
ICB9OworCiAgICAgZW51bSBNZXNzYWdlTGV2ZWwgewogICAgICAgICBUaXBNZXNzYWdlTGV2ZWws
CiAgICAgICAgIExvZ01lc3NhZ2VMZXZlbCwKICAgICAgICAgV2FybmluZ01lc3NhZ2VMZXZlbCwK
LSAgICAgICAgRXJyb3JNZXNzYWdlTGV2ZWwsCi0gICAgICAgIE9iamVjdE1lc3NhZ2VMZXZlbCwK
LSAgICAgICAgTm9kZU1lc3NhZ2VMZXZlbCwKLSAgICAgICAgVHJhY2VNZXNzYWdlTGV2ZWwsCi0g
ICAgICAgIFN0YXJ0R3JvdXBNZXNzYWdlTGV2ZWwsCi0gICAgICAgIEVuZEdyb3VwTWVzc2FnZUxl
dmVsCisgICAgICAgIEVycm9yTWVzc2FnZUxldmVsCiAgICAgfTsKIAogICAgIGNsYXNzIENvbnNv
bGUgOiBwdWJsaWMgUmVmQ291bnRlZDxDb25zb2xlPiB7CkluZGV4OiBXZWJDb3JlL3BhZ2UvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAzNzA2MSkKKysrIFdlYkNvcmUvcGFnZS9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDggKzE1NCw5IEBAIEpTVmFs
dWVSZWYgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y2FsbEZ1bmMKIC8vIENvbnNvbGVNZXNzYWdlIFN0
cnVjdAogCiBzdHJ1Y3QgQ29uc29sZU1lc3NhZ2UgewotICAgIENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2UgcywgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGks
IGNvbnN0IFN0cmluZyYgdSwgdW5zaWduZWQgZykKKyAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0s
IHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUsIHVuc2lnbmVkIGcpCiAgICAgICAgIDogc291
cmNlKHMpCisgICAgICAgICwgdHlwZSh0KQogICAgICAgICAsIGxldmVsKGwpCiAgICAgICAgICwg
bWVzc2FnZShtKQogICAgICAgICAsIGxpbmUobGkpCkBAIC0xNjUsOCArMTY2LDkgQEAgc3RydWN0
IENvbnNvbGVNZXNzYWdlIHsKICAgICB7CiAgICAgfQogCi0gICAgQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSBzLCBNZXNzYWdlTGV2ZWwgbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdM
aXN0JiBhcmdzLCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCB1bnNpZ25lZCBnKQorICAg
IENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxl
dmVsIGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncywgdW5zaWduZWQgbGks
IGNvbnN0IFN0cmluZyYgdSwgdW5zaWduZWQgZykKICAgICAgICAgOiBzb3VyY2UocykKKyAgICAg
ICAgLCB0eXBlKHQpCiAgICAgICAgICwgbGV2ZWwobCkKICAgICAgICAgLCB3cmFwcGVkQXJndW1l
bnRzKGFyZ3Muc2l6ZSgpKQogICAgICAgICAsIGxpbmUobGkpCkBAIC0xOTIsNiArMTk0LDcgQEAg
c3RydWN0IENvbnNvbGVNZXNzYWdlIHsKICAgICAgICAgfQogICAgIAogICAgICAgICByZXR1cm4g
bXNnLT5zb3VyY2UgPT0gdGhpcy0+c291cmNlCisgICAgICAgICAgICAmJiBtc2ctPnR5cGUgPT0g
dGhpcy0+dHlwZQogICAgICAgICAgICAgJiYgbXNnLT5sZXZlbCA9PSB0aGlzLT5sZXZlbAogICAg
ICAgICAgICAgJiYgbXNnLT5tZXNzYWdlID09IHRoaXMtPm1lc3NhZ2UKICAgICAgICAgICAgICYm
IG1zZy0+bGluZSA9PSB0aGlzLT5saW5lCkBAIC0yMDAsNiArMjAzLDcgQEAgc3RydWN0IENvbnNv
bGVNZXNzYWdlIHsKICAgICB9CiAKICAgICBNZXNzYWdlU291cmNlIHNvdXJjZTsKKyAgICBNZXNz
YWdlVHlwZSB0eXBlOwogICAgIE1lc3NhZ2VMZXZlbCBsZXZlbDsKICAgICBTdHJpbmcgbWVzc2Fn
ZTsKICAgICBWZWN0b3I8UHJvdGVjdGVkUHRyPEpTVmFsdWU+ID4gd3JhcHBlZEFyZ3VtZW50czsK
QEAgLTExMjUsMjAgKzExMjksMjAgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRXaW5k
b3dWaXNpYgogICAgIG1fc2hvd0FmdGVyVmlzaWJsZSA9IEN1cnJlbnRQYW5lbDsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlz
dCYgYXJndW1lbnRzLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3VtZW50cywgdW5zaWduZWQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7CiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGFkZENvbnNvbGVNZXNzYWdlKGV4ZWMsIG5ldyBDb25zb2xlTWVz
c2FnZShzb3VyY2UsIGxldmVsLCBleGVjLCBhcmd1bWVudHMsIGxpbmVOdW1iZXIsIHNvdXJjZVVS
TCwgbV9ncm91cExldmVsKSk7CisgICAgYWRkQ29uc29sZU1lc3NhZ2UoZXhlYywgbmV3IENvbnNv
bGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIGV4ZWMsIGFyZ3VtZW50cywgbGluZU51bWJl
ciwgc291cmNlVVJMLCBtX2dyb3VwTGV2ZWwpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9s
bGVyOjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VJRCkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlSUQpCiB7CiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGFkZENvbnNvbGVNZXNzYWdlKDAsIG5ldyBDb25zb2xlTWVzc2FnZShz
b3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VJRCwgbV9ncm91cExldmVs
KSk7CisgICAgYWRkQ29uc29sZU1lc3NhZ2UoMCwgbmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwg
dHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZUlELCBtX2dyb3VwTGV2ZWwp
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRDb25zb2xlTWVzc2FnZShFeGVj
U3RhdGUqIGV4ZWMsIENvbnNvbGVNZXNzYWdlKiBjb25zb2xlTWVzc2FnZSkKQEAgLTExODAsNyAr
MTE4NCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRHcm91cChNZXMKIHsgICAg
CiAgICAgKyttX2dyb3VwTGV2ZWw7CiAKLSAgICBhZGRDb25zb2xlTWVzc2FnZShleGVjLCBuZXcg
Q29uc29sZU1lc3NhZ2Uoc291cmNlLCBTdGFydEdyb3VwTWVzc2FnZUxldmVsLCBleGVjLCBhcmd1
bWVudHMsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgbV9ncm91cExldmVsKSk7CisgICAgYWRkQ29u
c29sZU1lc3NhZ2UoZXhlYywgbmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgU3RhcnRHcm91cE1l
c3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIGV4ZWMsIGFyZ3VtZW50cywgbGluZU51bWJlciwg
c291cmNlVVJMLCBtX2dyb3VwTGV2ZWwpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjplbmRHcm91cChNZXNzYWdlU291cmNlIHNvdXJjZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwpCkBAIC0xMTkwLDcgKzExOTQsNyBAQCB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmVuZEdyb3VwKE1lc3NhCiAKICAgICAtLW1fZ3JvdXBMZXZlbDsKIAotICAg
IGFkZENvbnNvbGVNZXNzYWdlKDAsIG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIEVuZEdyb3Vw
TWVzc2FnZUxldmVsLCBTdHJpbmcoKSwgbGluZU51bWJlciwgc291cmNlVVJMLCBtX2dyb3VwTGV2
ZWwpKTsKKyAgICBhZGRDb25zb2xlTWVzc2FnZSgwLCBuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNl
LCBFbmRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIFN0cmluZygpLCBsaW5lTnVt
YmVyLCBzb3VyY2VVUkwsIG1fZ3JvdXBMZXZlbCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OmFkZFByb2ZpbGUoUGFzc1JlZlB0cjxQcm9maWxlPiBwcnBQcm9maWxlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwpCkBAIC0xMjE2LDcgKzEyMjAs
NyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFkZFByb2ZpbGVNZXNzCiAgICAgbWVzc2Fn
ZSArPSAiLyI7CiAgICAgbWVzc2FnZSArPSBVU3RyaW5nOjpmcm9tKHByb2ZpbGUtPnVpZCgpKTsK
ICAgICBtZXNzYWdlICs9ICJcIiBmaW5pc2hlZC4iOwotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
SlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCk7CisgICAgYWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVS
TCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YXR0YWNoV2luZG93KCkKQEAgLTE5
MzUsNiArMTkzOSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkU2NyaXB0Q29uc28K
ICAgICAgICAgcmV0dXJuOwogCiAgICAgSlNWYWx1ZVJlZiBzb3VyY2VWYWx1ZSA9IEpTVmFsdWVN
YWtlTnVtYmVyKG1fc2NyaXB0Q29udGV4dCwgbWVzc2FnZS0+c291cmNlKTsKKyAgICBKU1ZhbHVl
UmVmIHR5cGVWYWx1ZSA9IEpTVmFsdWVNYWtlTnVtYmVyKG1fc2NyaXB0Q29udGV4dCwgbWVzc2Fn
ZS0+dHlwZSk7CiAgICAgSlNWYWx1ZVJlZiBsZXZlbFZhbHVlID0gSlNWYWx1ZU1ha2VOdW1iZXIo
bV9zY3JpcHRDb250ZXh0LCBtZXNzYWdlLT5sZXZlbCk7CiAgICAgSlNWYWx1ZVJlZiBsaW5lVmFs
dWUgPSBKU1ZhbHVlTWFrZU51bWJlcihtX3NjcmlwdENvbnRleHQsIG1lc3NhZ2UtPmxpbmUpOwog
ICAgIEpTVmFsdWVSZWYgdXJsVmFsdWUgPSBKU1ZhbHVlTWFrZVN0cmluZyhtX3NjcmlwdENvbnRl
eHQsIGpzU3RyaW5nUmVmKG1lc3NhZ2UtPnVybCkuZ2V0KCkpOwpAQCAtMTk0NSw2ICsxOTUwLDcg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRTY3JpcHRDb25zbwogICAgIEpTVmFsdWVS
ZWYgYXJndW1lbnRzW21heGltdW1NZXNzYWdlQXJndW1lbnRzXTsKICAgICB1bnNpZ25lZCBhcmd1
bWVudENvdW50ID0gMDsKICAgICBhcmd1bWVudHNbYXJndW1lbnRDb3VudCsrXSA9IHNvdXJjZVZh
bHVlOworICAgIGFyZ3VtZW50c1thcmd1bWVudENvdW50KytdID0gdHlwZVZhbHVlOwogICAgIGFy
Z3VtZW50c1thcmd1bWVudENvdW50KytdID0gbGV2ZWxWYWx1ZTsKICAgICBhcmd1bWVudHNbYXJn
dW1lbnRDb3VudCsrXSA9IGxpbmVWYWx1ZTsKICAgICBhcmd1bWVudHNbYXJndW1lbnRDb3VudCsr
XSA9IHVybFZhbHVlOwpAQCAtMjUyMiw3ICsyNTI4LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9s
bGVyOjpjb3VudChjb25zdCBVUwogICAgIG1fY291bnRzLmFkZChpZGVudGlmaWVyLCBjb3VudCk7
CiAKICAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6Zm9ybWF0KCIlczogJWQiLCB0aXRsZS5V
VEY4U3RyaW5nKCkuY19zdHIoKSwgY291bnQpOwotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJj
ZUlEKTsKKyAgICBhZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2Fn
ZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlSUQpOwog
fQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltaW5nKGNvbnN0IFVTdHJpbmcm
IHRpdGxlKQpJbmRleDogV2ViQ29yZS9wYWdlL0luc3BlY3RvckNvbnRyb2xsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5oCShyZXZpc2lvbiAzNzA2
MSkKKysrIFdlYkNvcmUvcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwNiw4ICsxMDYsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCB3aW5kb3dWaXNpYmxlKCk7CiAg
ICAgdm9pZCBzZXRXaW5kb3dWaXNpYmxlKGJvb2wgdmlzaWJsZSA9IHRydWUsIGJvb2wgYXR0YWNo
ZWQgPSBmYWxzZSk7CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6QXJnTGlzdCYgYXJn
dW1lbnRzLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKTsKLSAg
ICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlSUQpOworICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6QXJn
TGlzdCYgYXJndW1lbnRzLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUlEKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKTsKICAgICB2b2lkIGNsZWFyQ29uc29sZU1l
c3NhZ2VzKCk7CiAgICAgdm9pZCB0b2dnbGVSZWNvcmRCdXR0b24oYm9vbCk7CiAKSW5kZXg6IFdl
YkNvcmUvcGFnZS9pbnNwZWN0b3IvQ29uc29sZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvaW5zcGVjdG9yL0NvbnNvbGUuanMJKHJldmlzaW9uIDM3MDYxKQorKysgV2ViQ29yZS9wYWdl
L2luc3BlY3Rvci9Db25zb2xlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsNyArMTk3LDcgQEAg
V2ViSW5zcGVjdG9yLkNvbnNvbGUucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMubWVzc2Fn
ZXMucHVzaChtc2cpOwogCi0gICAgICAgIGlmIChtc2cubGV2ZWwgPT09IFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRW5kR3JvdXApIHsKKyAgICAgICAgaWYgKG1zZy50
eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuRW5kR3JvdXAp
IHsKICAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwTGV2ZWwgPCAxKQogICAgICAgICAgICAgICAg
IHJldHVybjsKIApAQCAtMjA1LDcgKzIwNSw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlLnByb3Rv
dHlwZSA9IHsKIAogICAgICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAgPSB0aGlzLmN1cnJlbnRH
cm91cC5wYXJlbnRHcm91cDsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtc2cu
bGV2ZWwgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuU3RhcnRH
cm91cCkgeworICAgICAgICAgICAgaWYgKG1zZy50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZVR5cGUuU3RhcnRHcm91cCkgewogICAgICAgICAgICAgICAgIHRoaXMu
Z3JvdXBMZXZlbCsrOwogCiAgICAgICAgICAgICAgICAgdmFyIGdyb3VwID0gbmV3IFdlYkluc3Bl
Y3Rvci5Db25zb2xlR3JvdXAodGhpcy5jdXJyZW50R3JvdXAsIHRoaXMuZ3JvdXBMZXZlbCk7CkBA
IC01NjgsNDUgKzU2OCw0OCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZS5wcm90b3R5cGUgPSB7CiAK
IFdlYkluc3BlY3Rvci5Db25zb2xlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGU7CiAKLVdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSA9IGZ1bmN0aW9u
KHNvdXJjZSwgbGV2ZWwsIGxpbmUsIHVybCwgZ3JvdXBMZXZlbCwgcmVwZWF0Q291bnQpCitXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UgPSBmdW5jdGlvbihzb3VyY2UsIHR5cGUsIGxldmVsLCBs
aW5lLCB1cmwsIGdyb3VwTGV2ZWwsIHJlcGVhdENvdW50KQogewogICAgIHRoaXMuc291cmNlID0g
c291cmNlOworICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICAgdGhpcy5sZXZlbCA9IGxldmVsOwog
ICAgIHRoaXMubGluZSA9IGxpbmU7CiAgICAgdGhpcy51cmwgPSB1cmw7CiAgICAgdGhpcy5ncm91
cExldmVsID0gZ3JvdXBMZXZlbDsKICAgICB0aGlzLnJlcGVhdENvdW50ID0gcmVwZWF0Q291bnQ7
CiAKLSAgICBzd2l0Y2ggKHRoaXMubGV2ZWwpIHsKLSAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLk9iamVjdDoKLSAgICAgICAgICAgIHZhciBwcm9w
ZXJ0aWVzU2VjdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24o
YXJndW1lbnRzWzZdLCBudWxsLCBudWxsLCBudWxsLCB0cnVlKTsKLSAgICAgICAgICAgIHByb3Bl
cnRpZXNTZWN0aW9uLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiY29uc29sZS1tZXNzYWdlIik7Ci0g
ICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNTZWN0aW9uID0gcHJvcGVydGllc1NlY3Rpb247Cisg
ICAgc3dpdGNoICh0aGlzLnR5cGUpIHsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZVR5cGUuT2JqZWN0OgorICAgICAgICAgICAgdmFyIHByb3BlcnRpZXNT
ZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbihhcmd1bWVu
dHNbN10sIG51bGwsIG51bGwsIG51bGwsIHRydWUpOworICAgICAgICAgICAgdGhpcy5tZXNzYWdl
ID0gdGhpcy5fZm9ybWF0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgNyks
IHRydWUpLnRleHRDb250ZW50OworICAgICAgICAgICAgdGhpcy5lbGVtZW50ID0gcHJvcGVydGll
c1NlY3Rpb24uZWxlbWVudDsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTm9kZToKLSAgICAgICAgICAgIHZh
ciBub2RlID0gYXJndW1lbnRzWzZdOworICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZS5NZXNzYWdlVHlwZS5Ob2RlOgorICAgICAgICAgICAgdmFyIG5vZGUgPSBhcmd1bWVu
dHNbN107CiAgICAgICAgICAgICBpZiAoIShub2RlIGluc3RhbmNlb2YgSW5zcGVjdG9yQ29udHJv
bGxlci5pbnNwZWN0ZWRXaW5kb3coKS5Ob2RlKSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICB0aGlzLmVsZW1lbnRzVHJlZU91dGxpbmUgPSBuZXcgV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzVHJlZU91dGxpbmUoKTsKLSAgICAgICAgICAgIHRoaXMuZWxlbWVudHNUcmVlT3V0bGlu
ZS5yb290RE9NTm9kZSA9IG5vZGU7CisgICAgICAgICAgICB2YXIgZWxlbWVudHNUcmVlT3V0bGlu
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZSgpOworICAgICAgICAgICAg
ZWxlbWVudHNUcmVlT3V0bGluZS5yb290RE9NTm9kZSA9IG5vZGU7CisgICAgICAgICAgICB0aGlz
Lm1lc3NhZ2UgPSB0aGlzLl9mb3JtYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1l
bnRzLCA3KSwgdHJ1ZSkudGV4dENvbnRlbnQ7CisgICAgICAgICAgICB0aGlzLmVsZW1lbnQgPSBl
bGVtZW50c1RyZWVPdXRsaW5lLmVsZW1lbnQ7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLlRyYWNlOgorICAg
ICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5UcmFjZToK
ICAgICAgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwot
ICAgICAgICAgICAgc3Bhbi5hZGRTdHlsZUNsYXNzKCJjb25zb2xlLWZvcm1hdHRlZC10cmFjZSIp
OwotICAgICAgICAgICAgdmFyIHN0YWNrID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJn
dW1lbnRzLCA2KTsKKyAgICAgICAgICAgIHZhciBzdGFjayA9IEFycmF5LnByb3RvdHlwZS5zbGlj
ZS5jYWxsKGFyZ3VtZW50cywgNyk7CiAgICAgICAgICAgICB2YXIgZnVuY05hbWVzID0gc3RhY2su
bWFwKGZ1bmN0aW9uKGYpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gZi5uYW1lIHx8IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiKGFub255bW91cyBmdW5jdGlvbikiKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShm
dW5jTmFtZXMuam9pbigiXG4iKSkpOworICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gc3Bhbi50
ZXh0Q29udGVudDsKICAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkTWVzc2FnZSA9IHNwYW47CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIC8vIFRoaXMg
X2Zvcm1hdCBjYWxsIHBhc3NlcyBpbiB0cnVlIGZvciB0aGUgcGxhaW5UZXh0IGFyZ3VtZW50LiBU
aGUgcmVzdWx0J3MgdGV4dENvbnRlbnQgaXMKICAgICAgICAgICAgIC8vIHVzZWQgZm9yIGlubGlu
ZSBtZXNzYWdlIGJ1YmJsZXMgaW4gU291cmNlRnJhbWVzLCBvciBvdGhlciBwbGFpbi10ZXh0IHJl
cHJlc2VudGF0aW9ucy4KLSAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9IHRoaXMuX2Zvcm1hdChB
cnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDYpLCB0cnVlKS50ZXh0Q29udGVu
dDsKKyAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9IHRoaXMuX2Zvcm1hdChBcnJheS5wcm90b3R5
cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDcpLCB0cnVlKS50ZXh0Q29udGVudDsKIAogICAgICAg
ICAgICAgLy8gVGhlIGZvcm1hdGVkTWVzc2FnZSBwcm9wZXJ0eSBpcyB1c2VkIGZvciB0aGUgcmlj
aCBhbmQgaW50ZXJhY3RpdmUgY29uc29sZS4KLSAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkTWVz
c2FnZSA9IHRoaXMuX2Zvcm1hdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMs
IDYpKTsKKyAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkTWVzc2FnZSA9IHRoaXMuX2Zvcm1hdChB
cnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDcpKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KQEAgLTY2OSwxMiArNjcyLDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlLnByb3RvdHlwZSA9IAogCiAgICAgdG9NZXNzYWdlRWxlbWVudDogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMucHJvcGVydGllc1NlY3Rpb24pCi0gICAgICAgICAgICBy
ZXR1cm4gdGhpcy5wcm9wZXJ0aWVzU2VjdGlvbi5lbGVtZW50OwotCi0gICAgICAgIHZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIHZhciBlbGVtZW50
ID0gdGhpcy5lbGVtZW50IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAg
ICBlbGVtZW50Lm1lc3NhZ2UgPSB0aGlzOwotICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJj
b25zb2xlLW1lc3NhZ2UiOworICAgICAgICBlbGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUt
bWVzc2FnZSIpOwogCiAgICAgICAgIHN3aXRjaCAodGhpcy5zb3VyY2UpIHsKICAgICAgICAgICAg
IGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuSFRNTDoKQEAg
LTY5NCw2ICs2OTQsMTUgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9
IAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAgc3dpdGNoICh0
aGlzLnR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXA6CisgICAgICAgICAgICAgICAgZWxlbWVudC5hZGRTdHls
ZUNsYXNzKCJjb25zb2xlLWdyb3VwLXRpdGxlLWxldmVsIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
VHlwZS5Ob2RlOgorICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygib3V0bGlu
ZS1kaXNjbG9zdXJlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAg
ICAgICBzd2l0Y2ggKHRoaXMubGV2ZWwpIHsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5UaXA6CiAgICAgICAgICAgICAgICAgZWxlbWVu
dC5hZGRTdHlsZUNsYXNzKCJjb25zb2xlLXRpcC1sZXZlbCIpOwpAQCAtNzA3LDE0ICs3MTYsNiBA
QCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gCiAgICAgICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRXJyb3I6CiAgICAg
ICAgICAgICAgICAgZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJjb25zb2xlLWVycm9yLWxldmVsIik7
CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuU3RhcnRHcm91cDoKLSAgICAgICAgICAgICAgICBl
bGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZ3JvdXAtdGl0bGUtbGV2ZWwiKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICh0aGlzLmVsZW1lbnRzVHJlZU91dGxpbmUpIHsKLSAgICAgICAg
ICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygib3V0bGluZS1kaXNjbG9zdXJlIik7Ci0gICAgICAg
ICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudHNUcmVlT3V0bGluZS5lbGVtZW50
KTsKLSAgICAgICAgICAgIHJldHVybiBlbGVtZW50OwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KHRoaXMucmVwZWF0Q291bnQgPiAxKSB7CkBAIC03NDMsMTAgKzc0NCwxMiBAQCBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gCiAgICAgICAgICAgICBlbGVtZW50LmFwcGVu
ZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIG1lc3NhZ2VUZXh0
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgbWVzc2Fn
ZVRleHRFbGVtZW50LmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2UtdGV4dCI7Ci0gICAgICAg
IG1lc3NhZ2VUZXh0RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmZvcm1hdHRlZE1lc3NhZ2UpOwot
ICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKG1lc3NhZ2VUZXh0RWxlbWVudCk7CisgICAgICAg
IGlmICghdGhpcy5lbGVtZW50KSB7CisgICAgICAgICAgICB2YXIgbWVzc2FnZVRleHRFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgbWVzc2FnZVRl
eHRFbGVtZW50LmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2UtdGV4dCI7CisgICAgICAgICAg
ICBtZXNzYWdlVGV4dEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5mb3JtYXR0ZWRNZXNzYWdlKTsK
KyAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQobWVzc2FnZVRleHRFbGVtZW50KTsKKyAg
ICAgICAgfQogCiAgICAgICAgIHJldHVybiBlbGVtZW50OwogICAgIH0sCkBAIC04MDMsNiArODA2
LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IAogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHZhciByZXQgPSAodGhpcy5zb3VyY2UgPT0gbXNn
LnNvdXJjZSkKKyAgICAgICAgICAgICYmICh0aGlzLnR5cGUgPT0gbXNnLnR5cGUpCiAgICAgICAg
ICAgICAmJiAodGhpcy5sZXZlbCA9PSBtc2cubGV2ZWwpCiAgICAgICAgICAgICAmJiAodGhpcy5s
aW5lID09IG1zZy5saW5lKQogICAgICAgICAgICAgJiYgKHRoaXMudXJsID09IG1zZy51cmwpCkBA
IC04MjEsMTYgKzgyNSwyMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNv
dXJjCiAgICAgT3RoZXI6IDQsCiB9CiAKK1dlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNz
YWdlVHlwZSA9IHsKKyAgICBMb2c6IDAsCisgICAgT2JqZWN0OiAxLAorICAgIE5vZGU6IDIsCisg
ICAgVHJhY2U6IDMsCisgICAgU3RhcnRHcm91cDogNCwKKyAgICBFbmRHcm91cDogNQorfQorCiBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsID0gewogICAgIFRpcDogMCwK
ICAgICBMb2c6IDEsCiAgICAgV2FybmluZzogMiwKLSAgICBFcnJvcjogMywKLSAgICBPYmplY3Q6
IDQsCi0gICAgTm9kZTogNSwKLSAgICBUcmFjZTogNiwKLSAgICBTdGFydEdyb3VwOiA3LAotICAg
IEVuZEdyb3VwOiA4CisgICAgRXJyb3I6IDMKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21t
YW5kID0gZnVuY3Rpb24oY29tbWFuZCwgcmVzdWx0LCBmb3JtYXR0ZWRSZXN1bHRFbGVtZW50LCBs
ZXZlbCkKQEAgLTg5Nyw3ICs5MDUsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3Rv
dHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBlbGVtZW50ID0gbXNnLnRvTWVzc2FnZUVsZW1l
bnQoKTsKICAgICAgICAgCi0gICAgICAgIGlmIChtc2cubGV2ZWwgPT09IFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuU3RhcnRHcm91cCkgeworICAgICAgICBpZiAobXNn
LnR5cGUgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdy
b3VwKSB7CiAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VzRWxlbWVudC5wYXJlbnROb2RlLmluc2Vy
dEJlZm9yZShlbGVtZW50LCB0aGlzLm1lc3NhZ2VzRWxlbWVudCk7CiAgICAgICAgICAgICBlbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdGl0bGVDbGlja2VkLmJpbmQodGhp
cyksIHRydWUpOwogICAgICAgICB9IGVsc2UKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJl
dmlzaW9uIDM3MDYxKQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDc0LDcgKzEwNzQsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5p
c2hMb2FkaW5nKFN1CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jLT5mcmFtZSgpKSB7CiAg
ICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICAgICAgcGFn
ZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVl
c3QobV9sb2FkZXIgPyBtX2xvYWRlci0+aWRlbnRpZmllcigpIDogbV9pZGVudGlmaWVyLCBtX3Jl
c3BvbnNlVGV4dCk7Ci0gICAgICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsICJYSFIg
ZmluaXNoZWQgbG9hZGluZzogXCIiICsgbV91cmwgKyAiXCIuIiwgbV9sYXN0U2VuZExpbmVOdW1i
ZXIsIG1fbGFzdFNlbmRVUkwpOworICAgICAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IExvZ01lc3NhZ2VMZXZlbCwgIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyBtX3VybCArICJc
Ii4iLCBtX2xhc3RTZW5kTGluZU51bWJlciwgbV9sYXN0U2VuZFVSTCk7CiAgICAgICAgIH0KICAg
ICB9CiAK
</data>
<flag name="review"
          id="10802"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32502</attachid>
            <date>2009-07-08 22:50:23 -0700</date>
            <delta_ts>2009-07-09 00:18:21 -0700</delta_ts>
            <desc>Patch to add MessageType to ConsoleMessage</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>60007</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODJmYzE3ZC4uOGEwNzgxZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDAgQEAKKzIwMDktMDctMDggIEtlaXNoaSBIYXR0
b3JpICA8Y2FzZXkuaGF0dG9yaUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgQ29uc29sZU1lc3NhZ2UgdG8gYWRkIE1l
c3NhZ2VUeXBlIGF0dHJpYnV0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNjI1CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
cjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpwcmludEVycm9y
TWVzc2FnZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpyZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogaHRtbC9IVE1MUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXI6OnJlcG9ydEVycm9yVG9Db25zb2xlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNv
bGVNZXNzYWdlOjphZGRUb0NvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3Nh
Z2U6OmlzRXF1YWwpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRHcm91cCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjplbmRHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjphZGRQcm9maWxlRmluaXNoZWRNZXNzYWdlVG9Db25zb2xlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmFkZFN0YXJ0UHJvZmlsaW5n
TWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
Ojpjb3VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29uc29sZS5wcm90b3R5cGUuYWRkTWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UpOiBBZGRlZCB0eXBlIHByb3BlcnR5LgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS50b01lc3NhZ2VFbGVtZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUudG9TdHJpbmcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5pc0VxdWFsKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZS5hZGRNZXNzYWdlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25zb2xlR3JvdXAucHJvdG90eXBlLl90aXRsZUNsaWNrZWQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2UucHJvdG90eXBlLl9hZGRUaXApOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlLnByb3RvdHlwZS5fY2hlY2tXYXJuaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5jc3M6IENoYW5nZWQgIi5jb25zb2xlLWdyb3VwLXRpdGxlLWxldmVs
IiB0byAiLmNvbnNvbGUtZ3JvdXAtdGl0bGUiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuYWRkTWVzc2FnZVRvQ29uc29s
ZSk6CisgICAgICAgICogbG9hZGVyL0RvY0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2NMb2FkZXI6OnByaW50QWNjZXNzRGVuaWVkTWVzc2FnZSk6CisgICAgICAgICogbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmFkZE1l
c3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnNvbGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
c29sZTo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6bG9nKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnNvbGU6OmRpcik6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjp0cmFj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjphc3NlcnRDb25kaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q29uc29sZTo6dGltZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xl
Ojp3YXJuKToKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuaDogQWRkZWQgTWVzc2FnZVR5cGUgZW51
bS4KKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOgorICAg
ICAgICAqIHBhZ2UvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9y
OjpjYW5FdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpjYW5Mb2FkRXh0
ZXJuYWxTY3JpcHRGcm9tU3JjKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhbkxv
YWRPYmplY3QpOgorICAgICAgICAqIHN2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpyZXBvcnRXYXJuaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50RXh0ZW5zaW9uczo6cmVwb3J0RXJyb3IpOgorICAg
ICAgICAqIHdtbC9XTUxFcnJvckhhbmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9y
dFdNTEVycm9yKToKKyAgICAgICAgKiB3b3JrZXJzL0dlbmVyaWNXb3JrZXJUYXNrLmg6IEFkZGVk
IEdlbmVyaWNXb3JrZXJUYXNrOCBmb3IgdGhlIGV4dHJhIGFyZ3VtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6R2VuZXJpY1dvcmtlclRhc2s4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2Vu
ZXJpY1dvcmtlclRhc2s4OjpHZW5lcmljV29ya2VyVGFzazgpOgorICAgICAgICAoV2ViQ29yZTo6
R2VuZXJpY1dvcmtlclRhc2s4OjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVDYWxsYmFja1Rhc2spOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckNvbnRleHQ6OmltcG9ydFNjcmlwdHMpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyQ29udGV4dC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cG9zdENvbnNvbGVNZXNzYWdlVGFzayk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3Jr
ZXJPYmplY3QpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck9iamVjdFByb3h5Lmg6CisgICAgICAgICogeG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydFVuc2FmZVVzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAg
ICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xUUHJvY2Vz
c29yOjpwYXJzZUVycm9yRnVuYyk6CisKIDIwMDktMDctMDcgIFBpZXJyZSBkJ0hlcmJlbW9udCAg
PHBkaGVyYmVtb250QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFz
ZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3Bw
CmluZGV4IDYzNjFlNzAuLmZmZThjZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC04NCw3ICs4NCw3IEBAIFN0cmluZyBKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4
KQogICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldENhbGxEYXRhKGNhbGxE
YXRhKTsKICAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewogICAgICAgICAg
ICAgLy8gRklYTUU6IFBhc3MgYWN0dWFsIGxpbmUgbnVtYmVyIGFuZCBzb3VyY2UgVVJMLgotICAg
ICAgICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90
IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIsIDAsIFN0cmluZygpKTsKKyAgICAg
ICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVz
b2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIiwgMCwgU3Ry
aW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CiAgICAgICAg
IGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcAppbmRleCAwZWVmZWJlLi4wZjQxOWJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgSlNET01XaW5kb3dCYXNl
OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgaWYg
KHNldHRpbmdzLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGltcGwoKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsgLy8gRklYTUU6IHByb3ZpZGUgYSBy
ZWFsIGxpbmUgbnVtYmVyIGFuZCBzb3VyY2UgVVJMLgorICAgIGltcGwoKS0+Y29uc29sZSgpLT5h
ZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxl
dmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7IC8vIEZJWE1FOiBwcm92aWRlIGEgcmVhbCBsaW5l
IG51bWJlciBhbmQgc291cmNlIFVSTC4KIH0KIAogRXhlY1N0YXRlKiBKU0RPTVdpbmRvd0Jhc2U6
Omdsb2JhbEV4ZWMoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGQ4YzJmM2MuLmI1NWYxMjAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTQzNjAsMTkgKzQzNjAsMTkgQEAgdm9pZCBEb2N1bWVudDo6cGFyc2VETlNQcmVmZXRjaENv
bnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJiBkbnNQcmVmZXRjaENvbnRyb2wpCiB2b2lkIERvY3Vt
ZW50OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKICAgICBpZiAoRE9NV2luZG93KiB3
aW5kb3cgPSBkb21XaW5kb3coKSkKLSAgICAgICAgd2luZG93LT5jb25zb2xlKCktPmFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgZXJyb3JNZXNzYWdlLCBsaW5l
TnVtYmVyLCBzb3VyY2VVUkwpOworICAgICAgICB3aW5kb3ctPmNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgZXJy
b3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogfQogCi12b2lkIERvY3VtZW50Ojph
ZGRNZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3ZvaWQgRG9jdW1lbnQ6OmFk
ZE1lc3NhZ2UoTWVzc2FnZURlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQog
ewogICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKICAgICBjYXNlIEluc3BlY3RvckNvbnRyb2xs
ZXJEZXN0aW5hdGlvbjoKICAgICAgICAgaWYgKHBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UoKS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWws
IG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgICAgICBwYWdlKCktPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBDb25zb2xlRGVzdGluYXRpb246CiAgICAgICAgIGlmIChET01XaW5kb3cqIHdpbmRv
dyA9IGRvbVdpbmRvdygpKQotICAgICAgICAgICAgd2luZG93LT5jb25zb2xlKCktPmFkZE1lc3Nh
Z2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAg
ICAgICAgIHdpbmRvdy0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWws
IG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5Mjg2NWY0Li5jZGZkOWFmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTc4Nyw3ICs3ODcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZUROU1ByZWZl
dGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0gICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVz
c2FnZURlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
OworICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFNjcmlwdFN0cmluZyYgc291cmNlU3RyaW5nKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2NyaXB0SW1wb3J0ZWQodW5zaWduZWQgbG9uZywgY29uc3QgU3RyaW5nJik7CiAg
ICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFBhc3NSZWZQdHI8VGFzaz4pOyAvLyBFeGVjdXRlcyB0
aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDdiMmYzNmEuLjNmOGZlYmMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTY0LDcgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVy
biBtX3NlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9y
dEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNz
YWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VEZXN0
aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0
dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU2NyaXB0U3RyaW5nJiBz
b3VyY2VTdHJpbmcpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcmlwdEltcG9ydGVkKHVu
c2lnbmVkIGxvbmcsIGNvbnN0IFN0cmluZyYpID0gMDsKICAgICAgICAgCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAK
aW5kZXggZWE2YmJlMi4uNGY2OTBiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxQYXJz
ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNwcApAQCAtMTY1Niw3ICsxNjU2
LDcgQEAgdm9pZCBIVE1MUGFyc2VyOjpyZXBvcnRFcnJvclRvQ29uc29sZShIVE1MUGFyc2VyRXJy
b3JDb2RlIGVycm9yQ29kZSwgY29uc3QgQXRvbWkKICAgICBtZXNzYWdlLnJlcGxhY2UoIiV0YWcx
IiwgdGFnMSk7CiAgICAgbWVzc2FnZS5yZXBsYWNlKCIldGFnMiIsIHRhZzIpOwogCi0gICAgZnJh
bWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2Us
CisgICAgZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3Nh
Z2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCAKICAgICAgICAgaXNXYXJuaW5nKGVycm9yQ29kZSkg
PyBXYXJuaW5nTWVzc2FnZUxldmVsIDogRXJyb3JNZXNzYWdlTGV2ZWwsCiAgICAgICAgIG1lc3Nh
Z2UsIGxpbmVOdW1iZXIsIG1fZG9jdW1lbnQtPnVybCgpLnN0cmluZygpKTsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCBiM2MwMjE4Li42MDkxOTdlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0zOCw4ICszOCw5IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ug
cywgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGksIGNvbnN0IFN0
cmluZyYgdSwgdW5zaWduZWQgZykKK0NvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcm
IG0sIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUsIHVuc2lnbmVkIGcpCiAgICAgOiBtX3Nv
dXJjZShzKQorICAgICwgbV90eXBlKHQpCiAgICAgLCBtX2xldmVsKGwpCiAgICAgLCBtX21lc3Nh
Z2UobSkKICAgICAsIG1fbGluZShsaSkKQEAgLTQ5LDggKzUwLDkgQEAgQ29uc29sZU1lc3NhZ2U6
OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0
cmluZyYgbSwKIHsKIH0KIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UgcywgTWVzc2FnZUxldmVsIGwsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrLCB1bnNp
Z25lZCBnLCBib29sIHN0b3JlVHJhY2UpCitDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgU2NyaXB0Q2Fs
bFN0YWNrKiBjYWxsU3RhY2ssIHVuc2lnbmVkIGcsIGJvb2wgc3RvcmVUcmFjZSkKICAgICA6IG1f
c291cmNlKHMpCisgICAgLCBtX3R5cGUodCkKICAgICAsIG1fbGV2ZWwobCkKICAgICAsIG1fd3Jh
cHBlZEFyZ3VtZW50cyhjYWxsU3RhY2stPmF0KDApLmFyZ3VtZW50Q291bnQoKSkKICAgICAsIG1f
ZnJhbWVzKHN0b3JlVHJhY2UgPyBjYWxsU3RhY2stPnNpemUoKSA6IDApCkBAIC03Nyw2ICs3OSw3
IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmFkZFRvQ29uc29sZShJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpCiB7CiAgICAgSW5zcGVjdG9ySlNPTk9iamVjdCBqc29uT2JqID0gZnJvbnRlbmQt
Pm5ld0luc3BlY3RvckpTT05PYmplY3QoKTsKICAgICBqc29uT2JqLnNldCgic291cmNlIiwgc3Rh
dGljX2Nhc3Q8aW50PihtX3NvdXJjZSkpOworICAgIGpzb25PYmouc2V0KCJ0eXBlIiwgc3RhdGlj
X2Nhc3Q8aW50PihtX3R5cGUpKTsKICAgICBqc29uT2JqLnNldCgibGV2ZWwiLCBzdGF0aWNfY2Fz
dDxpbnQ+KG1fbGV2ZWwpKTsKICAgICBqc29uT2JqLnNldCgibGluZSIsIHN0YXRpY19jYXN0PGlu
dD4obV9saW5lKSk7CiAgICAganNvbk9iai5zZXQoInVybCIsIG1fdXJsKTsKQEAgLTEwOSw2ICsx
MTIsNyBAQCBib29sIENvbnNvbGVNZXNzYWdlOjppc0VxdWFsKFNjcmlwdFN0YXRlKiBzdGF0ZSwg
Q29uc29sZU1lc3NhZ2UqIG1zZykgY29uc3QKICAgICB9CiAKICAgICByZXR1cm4gbXNnLT5tX3Nv
dXJjZSA9PSBtX3NvdXJjZQorICAgICAgICAmJiBtc2ctPm1fdHlwZSA9PSBtX3R5cGUKICAgICAg
ICAgJiYgbXNnLT5tX2xldmVsID09IG1fbGV2ZWwKICAgICAgICAgJiYgbXNnLT5tX21lc3NhZ2Ug
PT0gbV9tZXNzYWdlCiAgICAgICAgICYmIG1zZy0+bV9saW5lID09IG1fbGluZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmgKaW5kZXggMTVlNmU3ZS4uNWIyZjdkNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9D
b25zb2xlTWVzc2FnZS5oCkBAIC00NCw4ICs0NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgIGNsYXNzIENvbnNvbGVNZXNzYWdlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCB1bnNp
Z25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCB1bnNpZ25lZCBnKTsgICAgICAgIAotICAgICAgICBD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIFNjcmlwdENhbGxTdGFj
ayosIHVuc2lnbmVkIGcsIGJvb2wgc3RvcmVUcmFjZSA9IGZhbHNlKTsKKyAgICAgICAgQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtLCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCB1bnNpZ25lZCBnKTsgICAg
ICAgIAorICAgICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBTY3JpcHRDYWxsU3RhY2sqLCB1bnNpZ25lZCBnLCBib29sIHN0b3JlVHJh
Y2UgPSBmYWxzZSk7CiAKICAgICAgICAgdm9pZCBhZGRUb0NvbnNvbGUoSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW5kKTsKICAgICAgICAgdm9pZCBpbmNyZW1lbnRDb3VudCgpIHsgKyttX3JlcGVh
dENvdW50OyB9OwpAQCAtNTMsNiArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBw
cml2YXRlOgogICAgICAgICBNZXNzYWdlU291cmNlIG1fc291cmNlOworICAgICAgICBNZXNzYWdl
VHlwZSBtX3R5cGU7CiAgICAgICAgIE1lc3NhZ2VMZXZlbCBtX2xldmVsOwogICAgICAgICBTdHJp
bmcgbV9tZXNzYWdlOwogICAgICAgICBWZWN0b3I8U2NyaXB0VmFsdWU+IG1fd3JhcHBlZEFyZ3Vt
ZW50czsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggN2Uw
Y2YzMS4uNDEwMjI2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKQEAgLTM5NSwyMCArMzk1LDIwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0V2lu
ZG93VmlzaWJsZShib29sIHZpc2libGUsIGJvb2wgYXR0YWNoZWQpCiAgICAgbV9zaG93QWZ0ZXJW
aXNpYmxlID0gQ3VycmVudFBhbmVsOwogfQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiB7CiAg
ICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFkZENvbnNvbGVNZXNz
YWdlKGNhbGxTdGFjay0+c3RhdGUoKSwgbmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgbGV2ZWws
IGNhbGxTdGFjaywgbV9ncm91cExldmVsLCBsZXZlbCA9PSBUcmFjZU1lc3NhZ2VMZXZlbCkpOwor
ICAgIGFkZENvbnNvbGVNZXNzYWdlKGNhbGxTdGFjay0+c3RhdGUoKSwgbmV3IENvbnNvbGVNZXNz
YWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIGNhbGxTdGFjaywgbV9ncm91cExldmVsLCB0eXBlID09
IFRyYWNlTWVzc2FnZVR5cGUpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRN
ZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VJRCkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlSUQpCiB7CiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGFkZENvbnNvbGVNZXNzYWdlKDAsIG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VJRCwgbV9ncm91cExldmVsKSk7CisgICAg
YWRkQ29uc29sZU1lc3NhZ2UoMCwgbmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2
ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZUlELCBtX2dyb3VwTGV2ZWwpKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRDb25zb2xlTWVzc2FnZShTY3JpcHRTdGF0ZSog
c2NyaXB0U3RhdGUsIENvbnNvbGVNZXNzYWdlKiBjb25zb2xlTWVzc2FnZSkKQEAgLTQ0MCw3ICs0
NDAsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0R3JvdXAoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIFNjcmlwdENhbGxTdGFjayogY2FsbAogewogICAgICsrbV9ncm91cExldmVsOwog
Ci0gICAgYWRkQ29uc29sZU1lc3NhZ2UoY2FsbFN0YWNrLT5zdGF0ZSgpLCBuZXcgQ29uc29sZU1l
c3NhZ2Uoc291cmNlLCBTdGFydEdyb3VwTWVzc2FnZUxldmVsLCBjYWxsU3RhY2ssIG1fZ3JvdXBM
ZXZlbCkpOworICAgIGFkZENvbnNvbGVNZXNzYWdlKGNhbGxTdGFjay0+c3RhdGUoKSwgbmV3IENv
bnNvbGVNZXNzYWdlKHNvdXJjZSwgU3RhcnRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2
ZWwsIGNhbGxTdGFjaywgbV9ncm91cExldmVsKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJv
bGxlcjo6ZW5kR3JvdXAoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQpAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6ZW5kR3JvdXAoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIGNvCiAKICAgICAtLW1fZ3JvdXBMZXZlbDsKIAotICAgIGFkZENvbnNvbGVNZXNz
YWdlKDAsIG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIEVuZEdyb3VwTWVzc2FnZUxldmVsLCBT
dHJpbmcoKSwgbGluZU51bWJlciwgc291cmNlVVJMLCBtX2dyb3VwTGV2ZWwpKTsKKyAgICBhZGRD
b25zb2xlTWVzc2FnZSgwLCBuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCBFbmRHcm91cE1lc3Nh
Z2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIFN0cmluZygpLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkws
IG1fZ3JvdXBMZXZlbCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmF0dGFjaFdp
bmRvdygpCkBAIC0xMDk4LDcgKzEwOTgsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFk
ZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUoUGFzc1JlZlB0cjxQcm9maWxlPgogICAg
IG1lc3NhZ2UgKz0gIi8iOwogICAgIG1lc3NhZ2UgKz0gVVN0cmluZzo6ZnJvbShwcm9maWxlLT51
aWQoKSk7CiAgICAgbWVzc2FnZSArPSAiXCIgZmluaXNoZWQuIjsKLSAgICBhZGRNZXNzYWdlVG9D
b25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsaW5lTnVt
YmVyLCBzb3VyY2VVUkwpOworICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBz
b3VyY2VVUkwpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFkZFN0YXJ0UHJvZmls
aW5nTWVzc2FnZVRvQ29uc29sZShjb25zdCBVU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgbGluZU51
bWJlciwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMKQpAQCAtMTEwNiw3ICsxMTA2LDcgQEAgdm9p
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUo
Y29uc3QgVVN0cmluZyYgdGl0bGUKICAgICBVU3RyaW5nIG1lc3NhZ2UgPSAiUHJvZmlsZSBcIndl
YmtpdC1wcm9maWxlOi8vIjsKICAgICBtZXNzYWdlICs9IGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1
ZW5jZXModGl0bGUpOwogICAgIG1lc3NhZ2UgKz0gIi8wXCIgc3RhcnRlZC4iOwotICAgIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2Us
IGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgYWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3Nh
Z2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkU2Ny
aXB0UHJvZmlsZShQcm9maWxlKiBwcm9maWxlKQpAQCAtMTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpjb3VudChjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCBs
aW5lTnVtYmVyLCBjb25zdAogICAgIG1fY291bnRzLmFkZChpZGVudGlmaWVyLCBjb3VudCk7CiAK
ICAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6Zm9ybWF0KCIlczogJWQiLCB0aXRsZS51dGY4
KCkuZGF0YSgpLCBjb3VudCk7Ci0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlSUQpOworICAg
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9n
TWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VJRCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA4YmE4NjY5Li40YzkwYmM1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xNzMsOCArMTcz
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRSZXNvdXJjZVNvdXJjZVRvRnJhbWUobG9uZyBp
ZGVudGlmaWVyLCBOb2RlKiBmcmFtZSk7CiAgICAgYm9vbCBhZGRTb3VyY2VUb0ZyYW1lKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlLCBOb2RlKik7Ci0gICAgdm9p
ZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgU2NyaXB0
Q2FsbFN0YWNrKik7Ci0gICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgU2NyaXB0Q2FsbFN0YWNr
Kik7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCk7CiAgICAgdm9pZCBjbGVhckNvbnNvbGVNZXNz
YWdlcygpOwogCiAgICAgdm9pZCBhdHRhY2hXaW5kb3coKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGUuanMKaW5kZXggYjM0MDYxZS4uY2E5YWMwMCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGUuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGUuanMKQEAgLTE5OCw3ICsxOTgsNyBAQCBXZWJJbnNwZWN0b3IuQ29u
c29sZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1zZyk7CiAK
LSAgICAgICAgaWYgKG1zZy5sZXZlbCA9PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VMZXZlbC5FbmRHcm91cCkgeworICAgICAgICBpZiAobXNnLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5FbmRHcm91cCkgewogICAgICAgICAgICAg
aWYgKHRoaXMuZ3JvdXBMZXZlbCA8IDEpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0y
MDYsNyArMjA2LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGUucHJvdG90eXBlID0gewogCiAgICAg
ICAgICAgICB0aGlzLmN1cnJlbnRHcm91cCA9IHRoaXMuY3VycmVudEdyb3VwLnBhcmVudEdyb3Vw
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1zZy5sZXZlbCA9PT0gV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5TdGFydEdyb3VwKSB7CisgICAgICAg
ICAgICBpZiAobXNnLnR5cGUgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
VHlwZS5TdGFydEdyb3VwKSB7CiAgICAgICAgICAgICAgICAgdGhpcy5ncm91cExldmVsKys7CiAK
ICAgICAgICAgICAgICAgICB2YXIgZ3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVHcm91
cCh0aGlzLmN1cnJlbnRHcm91cCwgdGhpcy5ncm91cExldmVsKTsKQEAgLTU3NiwyMyArNTc2LDI0
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlLnByb3RvdHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLkNv
bnNvbGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsK
IAotV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlID0gZnVuY3Rpb24oc291cmNlLCBsZXZlbCwg
bGluZSwgdXJsLCBncm91cExldmVsLCByZXBlYXRDb3VudCkKK1dlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZSA9IGZ1bmN0aW9uKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIGxpbmUsIHVybCwgZ3JvdXBM
ZXZlbCwgcmVwZWF0Q291bnQpCiB7CiAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7CisgICAgdGhp
cy50eXBlID0gdHlwZTsKICAgICB0aGlzLmxldmVsID0gbGV2ZWw7CiAgICAgdGhpcy5saW5lID0g
bGluZTsKICAgICB0aGlzLnVybCA9IHVybDsKICAgICB0aGlzLmdyb3VwTGV2ZWwgPSBncm91cExl
dmVsOwogICAgIHRoaXMucmVwZWF0Q291bnQgPSByZXBlYXRDb3VudDsKLSAgICBpZiAoYXJndW1l
bnRzLmxlbmd0aCA+IDYpCi0gICAgICAgIHRoaXMuc2V0TWVzc2FnZUJvZHkoQXJyYXkucHJvdG90
eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCA2KSk7CisgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGgg
PiA3KQorICAgICAgICB0aGlzLnNldE1lc3NhZ2VCb2R5KEFycmF5LnByb3RvdHlwZS5zbGljZS5j
YWxsKGFyZ3VtZW50cywgNykpOwogfQogCiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJv
dG90eXBlID0gewogICAgIHNldE1lc3NhZ2VCb2R5OiBmdW5jdGlvbihhcmdzKQogICAgIHsKLSAg
ICAgICAgc3dpdGNoICh0aGlzLmxldmVsKSB7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuVHJhY2U6CisgICAgICAgIHN3aXRjaCAodGhp
cy50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5N
ZXNzYWdlVHlwZS5UcmFjZToKICAgICAgICAgICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgICAgICBzcGFuLmFkZFN0eWxlQ2xhc3Mo
ImNvbnNvbGUtZm9ybWF0dGVkLXRyYWNlIik7CiAgICAgICAgICAgICAgICAgdmFyIHN0YWNrID0g
QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncyk7CkBAIC02MDIsNyArNjAzLDcgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBz
cGFuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGZ1bmNOYW1lcy5qb2luKCJc
biIpKSk7CiAgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWRNZXNzYWdlID0gc3BhbjsKICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5PYmplY3Q6CisgICAgICAgICAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5PYmplY3Q6CiAgICAgICAgICAgICAgICAg
dGhpcy5mb3JtYXR0ZWRNZXNzYWdlID0gdGhpcy5fZm9ybWF0KFsiJU8iLCBhcmdzWzBdXSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtNzIwLDggKzcy
MSwxMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9y
OgogICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygiY29uc29sZS1lcnJvci1s
ZXZlbCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLlN0YXJ0R3JvdXA6Ci0gICAgICAgICAg
ICAgICAgZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJjb25zb2xlLWdyb3VwLXRpdGxlLWxldmVsIik7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdyb3VwKSB7CisgICAgICAgICAg
ICBlbGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZ3JvdXAtdGl0bGUiKTsKICAgICAgICAg
fQogCiAgICAgICAgIGlmICh0aGlzLmVsZW1lbnRzVHJlZU91dGxpbmUpIHsKQEAgLTc4OCw2ICs3
OTEsMjUgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisgICAgICAgIHZhciB0eXBlU3RyaW5nOwor
ICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkgeworICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuTG9nOgorICAgICAgICAgICAgICAgIHR5cGVT
dHJpbmcgPSAiTG9nIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLk9iamVjdDoKKyAgICAgICAg
ICAgICAgICB0eXBlU3RyaW5nID0gIk9iamVjdCI7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5U
cmFjZToKKyAgICAgICAgICAgICAgICB0eXBlU3RyaW5nID0gIlRyYWNlIjsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXA6CisgICAgICAgICAgICAgICAgdHlwZVN0cmluZyA9ICJT
dGFydCBHcm91cCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5FbmRHcm91cDoKKyAgICAgICAg
ICAgICAgICB0eXBlU3RyaW5nID0gIkVuZCBHcm91cCI7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIHZhciBsZXZlbFN0cmluZzsKICAgICAgICAg
c3dpdGNoICh0aGlzLmxldmVsKSB7CiAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25z
b2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuVGlwOgpAQCAtODAyLDIxICs4MjQsOSBAQCBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgICAgICAgICAgY2FzZSBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yOgogICAgICAgICAgICAg
ICAgIGxldmVsU3RyaW5nID0gIkVycm9yIjsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5PYmpl
Y3Q6Ci0gICAgICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiT2JqZWN0IjsKLSAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VMZXZlbC5UcmFjZToKLSAgICAgICAgICAgICAgICBsZXZlbFN0cmluZyA9ICJUcmFj
ZSI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuU3RhcnRHcm91cDoKLSAgICAgICAgICAgICAg
ICBsZXZlbFN0cmluZyA9ICJTdGFydCBHcm91cCI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwu
RW5kR3JvdXA6Ci0gICAgICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRW5kIEdyb3VwIjsKLSAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBzb3VyY2VT
dHJpbmcgKyAiICIgKyBsZXZlbFN0cmluZyArICI6ICIgKyB0aGlzLmZvcm1hdHRlZE1lc3NhZ2Uu
dGV4dENvbnRlbnQgKyAiXG4iICsgdGhpcy51cmwgKyAiIGxpbmUgIiArIHRoaXMubGluZTsKKyAg
ICAgICAgcmV0dXJuIHNvdXJjZVN0cmluZyArICIgIiArIHR5cGVTdHJpbmcgKyAiICIgKyBsZXZl
bFN0cmluZyArICI6ICIgKyB0aGlzLmZvcm1hdHRlZE1lc3NhZ2UudGV4dENvbnRlbnQgKyAiXG4i
ICsgdGhpcy51cmwgKyAiIGxpbmUgIiArIHRoaXMubGluZTsKICAgICB9LAogCiAgICAgaXNFcXVh
bDogZnVuY3Rpb24obXNnLCBkaXNyZWd1YXJkR3JvdXApCkBAIC04MjUsNiArODM1LDcgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgICAgICB2YXIgcmV0ID0gKHRoaXMuc291cmNlID09IG1zZy5zb3VyY2Up
CisgICAgICAgICAgICAmJiAodGhpcy50eXBlID09IG1zZy50eXBlKQogICAgICAgICAgICAgJiYg
KHRoaXMubGV2ZWwgPT0gbXNnLmxldmVsKQogICAgICAgICAgICAgJiYgKHRoaXMubGluZSA9PSBt
c2cubGluZSkKICAgICAgICAgICAgICYmICh0aGlzLnVybCA9PSBtc2cudXJsKQpAQCAtODQ0LDE1
ICs4NTUsMTkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UgPSB7
CiAgICAgT3RoZXI6IDUKIH0KIAorV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VU
eXBlID0geworICAgIExvZzogMCwKKyAgICBPYmplY3Q6IDEsCisgICAgVHJhY2U6IDIsCisgICAg
U3RhcnRHcm91cDogMywKKyAgICBFbmRHcm91cDogNAorfQorCiBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZUxldmVsID0gewogICAgIFRpcDogMCwKICAgICBMb2c6IDEsCiAgICAg
V2FybmluZzogMiwKLSAgICBFcnJvcjogMywKLSAgICBPYmplY3Q6IDQsCi0gICAgVHJhY2U6IDUs
Ci0gICAgU3RhcnRHcm91cDogNiwKLSAgICBFbmRHcm91cDogNworICAgIEVycm9yOiAzCiB9CiAK
IFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZCA9IGZ1bmN0aW9uKGNvbW1hbmQpCkBAIC04ODMs
NyArODk4LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0ID0gZnVuY3Rpb24o
cmVzdWx0LCBleGNlcHRpb24sIG9yaWdpbmF0aW5nQ29tbWEKICAgICB2YXIgbGluZSA9IChleGNl
cHRpb24gPyByZXN1bHQubGluZSA6IC0xKTsKICAgICB2YXIgdXJsID0gKGV4Y2VwdGlvbiA/IHJl
c3VsdC5zb3VyY2VVUkwgOiBudWxsKTsKIAotICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkpT
LCBsZXZlbCwgbGluZSwgdXJsLCBudWxsLCAxLCBtZXNzYWdlKTsKKyAgICBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVz
c2FnZVNvdXJjZS5KUywgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkxv
ZywgbGV2ZWwsIGxpbmUsIHVybCwgbnVsbCwgMSwgbWVzc2FnZSk7CiAKICAgICB0aGlzLm9yaWdp
bmF0aW5nQ29tbWFuZCA9IG9yaWdpbmF0aW5nQ29tbWFuZDsKIH0KQEAgLTkyMCw3ICs5MzUsNyBA
QCBXZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAg
IHZhciBlbGVtZW50ID0gbXNnLnRvTWVzc2FnZUVsZW1lbnQoKTsKICAgICAgICAgCi0gICAgICAg
IGlmIChtc2cubGV2ZWwgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2
ZWwuU3RhcnRHcm91cCkgeworICAgICAgICBpZiAobXNnLnR5cGUgPT09IFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdyb3VwKSB7CiAgICAgICAgICAgICB0aGlz
Lm1lc3NhZ2VzRWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCB0aGlzLm1l
c3NhZ2VzRWxlbWVudCk7CiAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5fdGl0bGVDbGlja2VkLmJpbmQodGhpcyksIHRydWUpOwogICAgICAgICB9IGVs
c2UKQEAgLTkzMiw3ICs5NDcsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlw
ZSA9IHsKIAogICAgIF90aXRsZUNsaWNrZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAg
ICAgdmFyIGdyb3VwVGl0bGVFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNl
bGZXaXRoQ2xhc3MoImNvbnNvbGUtZ3JvdXAtdGl0bGUtbGV2ZWwiKTsKKyAgICAgICAgdmFyIGdy
b3VwVGl0bGVFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xh
c3MoImNvbnNvbGUtZ3JvdXAtdGl0bGUiKTsKICAgICAgICAgaWYgKGdyb3VwVGl0bGVFbGVtZW50
KSB7CiAgICAgICAgICAgICB2YXIgZ3JvdXBFbGVtZW50ID0gZ3JvdXBUaXRsZUVsZW1lbnQuZW5j
bG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygiY29uc29sZS1ncm91cCIpOwogICAgICAgICAgICAg
aWYgKGdyb3VwRWxlbWVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpp
bmRleCAwNThmMjMyLi44NWQ1Y2QyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlLmpzCkBAIC00ODksNyArNDg5LDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBmbG9vZCB0aGUgQ29uc29sZSB3aXRoIHRv
byBtYW55IHRpcHMuCiAgICAgICAgIC8qCiAgICAgICAgIHZhciBtc2cgPSBuZXcgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291
cmNlLk90aGVyLAotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VMZXZlbC5UaXAsIC0xLCB0aGlzLnVybCwgbnVsbCwgMSwgdGlwLm1lc3NhZ2UpOworICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkxvZywgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5UaXAsIAorICAgICAgICAgICAgLTEs
IHRoaXMudXJsLCBudWxsLCAxLCB0aXAubWVzc2FnZSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5j
b25zb2xlLmFkZE1lc3NhZ2UobXNnKTsKICAgICAgICAgKi8KICAgICB9LApAQCAtNTQ5LDYgKzU1
MCw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5XYXJuaW5ncy5JbmNvcnJlY3RNSU1FVHlwZS5pZDoKICAgICAgICAg
ICAgICAgICBpZiAoIXRoaXMuX21pbWVUeXBlSXNDb25zaXN0ZW50V2l0aFR5cGUoKSkKICAgICAg
ICAgICAgICAgICAgICAgbXNnID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZShXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5PdGhlciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2cs
IAogICAgICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VMZXZlbC5XYXJuaW5nLCAtMSwgdGhpcy51cmwsIG51bGwsIDEsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBTdHJpbmcuc3ByaW50ZihXZWJJbnNwZWN0b3IuV2FybmluZ3MuSW5jb3JyZWN0
TUlNRVR5cGUubWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5UeXBlLnRvU3RyaW5nKHRoaXMudHlwZSksIHRoaXMubWltZVR5cGUpKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggYzE2MjUzMS4uOTI5Y2Fh
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTQ4Myw3
ICs0ODMsNyBAQCBib2R5LmNvbnNvbGUtdmlzaWJsZSAjY29uc29sZSB7CiAgICAgYmFja2dyb3Vu
ZC1pbWFnZTogbm9uZTsKIH0KIAotLmNvbnNvbGUtbWVzc2FnZTo6YmVmb3JlLCAuY29uc29sZS11
c2VyLWNvbW1hbmQ6OmJlZm9yZSwgI2NvbnNvbGUtcHJvbXB0OjpiZWZvcmUsIC5jb25zb2xlLWdy
b3VwLXRpdGxlLWxldmVsOjpiZWZvcmUgeworLmNvbnNvbGUtbWVzc2FnZTo6YmVmb3JlLCAuY29u
c29sZS11c2VyLWNvbW1hbmQ6OmJlZm9yZSwgI2NvbnNvbGUtcHJvbXB0OjpiZWZvcmUsIC5jb25z
b2xlLWdyb3VwLXRpdGxlOjpiZWZvcmUgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBk
aXNwbGF5OiBibG9jazsKICAgICBjb250ZW50OiAiIjsKQEAgLTUyOSwxOCArNTI5LDE4IEBAIGJv
ZHkuY29uc29sZS12aXNpYmxlICNjb25zb2xlIHsKICAgICBtYXJnaW4tbGVmdDogMTZweDsKIH0K
IAotLmNvbnNvbGUtZ3JvdXAtdGl0bGUtbGV2ZWwgeworLmNvbnNvbGUtZ3JvdXAtdGl0bGUgewog
ICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogfQogCi0uY29uc29sZS1ncm91cC10aXRsZS1sZXZlbDo6
YmVmb3JlIHsKKy5jb25zb2xlLWdyb3VwLXRpdGxlOjpiZWZvcmUgewogICAgIGJhY2tncm91bmQt
aW1hZ2U6IHVybChJbWFnZXMvZGlzY2xvc3VyZVRyaWFuZ2xlU21hbGxEb3duLnBuZyk7CiAgICAg
dG9wOiAwLjZlbTsKICAgICB3aWR0aDogMTFweDsKICAgICBoZWlnaHQ6IDEycHg7CiB9CiAKLS5j
b25zb2xlLWdyb3VwLmNvbGxhcHNlZCAuY29uc29sZS1ncm91cC10aXRsZS1sZXZlbDo6YmVmb3Jl
IHsKKy5jb25zb2xlLWdyb3VwLmNvbGxhcHNlZCAuY29uc29sZS1ncm91cC10aXRsZTo6YmVmb3Jl
IHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL2Rpc2Nsb3N1cmVUcmlhbmdsZVNt
YWxsUmlnaHQucG5nKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKaW5kZXggOWQ1YmFjMC4uOTFmMjY1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzCkBAIC05NzksNiArOTc5LDcgQEAgV2ViSW5zcGVjdG9yLmFkZE1lc3NhZ2VU
b0NvbnNvbGUgPSBmdW5jdGlvbihwYXlsb2FkKQogewogICAgIHZhciBjb25zb2xlTWVzc2FnZSA9
IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UoCiAgICAgICAgIHBheWxvYWQuc291cmNl
LAorICAgICAgICBwYXlsb2FkLnR5cGUsCiAgICAgICAgIHBheWxvYWQubGV2ZWwsCiAgICAgICAg
IHBheWxvYWQubGluZSwKICAgICAgICAgcGF5bG9hZC51cmwsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9Eb2NMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmNwcAppbmRl
eCAwNmQ5NmJjLi4wYjcyZjk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIu
Y3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBA
QCB2b2lkIERvY0xvYWRlcjo6cHJpbnRBY2Nlc3NEZW5pZWRNZXNzYWdlKGNvbnN0IEtVUkwmIHVy
bCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2MtPnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCiAgICAgLy8gRklYTUU6IHByb3ZpZGUgYSByZWFsIGxpbmUgbnVtYmVy
IGFuZCBzb3VyY2UgVVJMLgotICAgIGZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFk
ZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
MSwgU3RyaW5nKCkpOworICAgIGZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1l
c3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKIH0KIAogdm9pZCBEb2NMb2FkZXI6OnNldEF1dG9M
b2FkSW1hZ2VzKGJvb2wgZW5hYmxlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAyYWJkNTRmLi4y
OWFhMDE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIHsgfQogCi0gICAgdmlydHVhbCB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQogCiAgICAg
dmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25z
dCBTdHJpbmcmLCBGcmFtZSopIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCA2NWZiOTk1Li4zMjM3OTJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yNDExLDcg
KzI0MTEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIHVybCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1
cm47CiAKLSAgICBmcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiTm90IGFsbG93ZWQgdG8gbG9hZCBsb2Nh
bCByZXNvdXJjZTogIiArIHVybCwgMCwgU3RyaW5nKCkpOworICAgIGZyYW1lLT5kb21XaW5kb3co
KS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCAiTm90IGFsbG93ZWQgdG8gbG9hZCBsb2NhbCByZXNvdXJjZTog
IiArIHVybCwgMCwgU3RyaW5nKCkpOwogfQogCiBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRIaWRl
UmVmZXJyZXIoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQpAQCAtMjYy
OCw3ICsyNjI4LDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKEZy
YW1lKiB0YXJnZXRGcmFtZSkgY29uc3QKICAgICAgICAgICAgIHRhcmdldERvY3VtZW50LT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBhY3RpdmVEb2N1bWVudC0+dXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAKICAgICAgICAgLy8gRklYTUU6IHNob3VsZCB3ZSBwcmludCB0byB0
aGUgY29uc29sZSBvZiB0aGUgYWN0aXZlRnJhbWUgYXMgd2VsbD8KLSAgICAgICAgdGFyZ2V0RnJh
bWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCkpOworICAgICAgICB0YXJnZXRG
cmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCkp
OwogICAgIH0KICAgICAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZTE1
NTc1NC4uOTBmOTVhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisr
KyBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTAzLDcgKzEwMyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wp
ID0gMDsKICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNp
Z25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgPSAwOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
VHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpID0gMDsKICAgICAgICAgdmly
dHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIEZyYW1lKiBmcmFtZSkgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
Y3BwIGIvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCmluZGV4IDFhNjU0YWIuLjllYzQ1NzggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5jcHAKQEAgLTEyOCwxOCArMTI4LDYgQEAgc3RhdGljIHZvaWQgcHJpbnRNZXNzYWdlU291
cmNlQW5kTGV2ZWxQcmVmaXgoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbAogICAg
ICAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVsOgogICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAi
RVJST1IiOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT2JqZWN0TWVzc2FnZUxl
dmVsOgotICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiT0JKRUNUIjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFRyYWNlTWVzc2FnZUxldmVsOgotICAgICAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiVFJBQ0UiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RhcnRH
cm91cE1lc3NhZ2VMZXZlbDoKLSAgICAgICAgICAgIGxldmVsU3RyaW5nID0gIlNUQVJUIEdST1VQ
IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEVuZEdyb3VwTWVzc2FnZUxldmVs
OgotICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRU5EIEdST1VQIjsKLSAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICBsZXZlbFN0cmluZyA9ICJVTktOT1dOIjsKQEAgLTE0OSwxNiArMTM3LDE2
IEBAIHN0YXRpYyB2b2lkIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwKICAgICBwcmludGYoIiVzICVzOiIsIHNvdXJjZVN0
cmluZywgbGV2ZWxTdHJpbmcpOwogfQogCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3ZvaWQgQ29u
c29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlz
LT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoc291
cmNlID09IEpTTWVzc2FnZVNvdXJjZSB8fCBzb3VyY2UgPT0gV01MTWVzc2FnZVNvdXJjZSkKLSAg
ICAgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJj
ZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgIHBhZ2Ut
PmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogCi0gICAgcGFnZS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWwsIG1lc3Nh
Z2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHNvdXJjZVVSTCk7CiAKICAgICBpZiAoIUNvbnNvbGU6OnNob3VsZFByaW50RXhj
ZXB0aW9ucygpKQogICAgICAgICByZXR1cm47CkBAIC0xNjksNyArMTU3LDcgQEAgdm9pZCBDb25z
b2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYKICAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgp
KTsKIH0KIAotdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VMZXZlbCBsZXZlbCwgU2Ny
aXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2ssIGJvb2wgYWNjZXB0Tm9Bcmd1bWVudHMpIHsKK3ZvaWQg
Q29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrLCBib29sIGFjY2VwdE5vQXJndW1lbnRzKSB7CiAg
ICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJl
dHVybjsKQEAgLTE4MSw5ICsxNjksOSBAQCB2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2Fn
ZUxldmVsIGxldmVsLCBTY3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaywgYm9vbCBhYwogCiAgICAg
U3RyaW5nIG1lc3NhZ2U7CiAgICAgaWYgKGdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhjYWxsU3Rh
Y2stPnN0YXRlKCksIGxhc3RDYWxsZXIsIG1lc3NhZ2UpKQotICAgICAgICBwYWdlLT5jaHJvbWUo
KS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBsZXZlbCwg
bWVzc2FnZSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuc291cmNlVVJMKCku
cHJldHR5VVJMKCkpOworICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3Nh
Z2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGFzdENh
bGxlci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuc291cmNlVVJMKCkucHJldHR5VVJMKCkpOwog
Ci0gICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpT
TWVzc2FnZVNvdXJjZSwgbGV2ZWwsIGNhbGxTdGFjayk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgdHlwZSwgbGV2
ZWwsIGNhbGxTdGFjayk7CiAKICAgICBpZiAoIUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9u
cygpKQogICAgICAgICByZXR1cm47CkBAIC0yMDcsNyArMTk1LDcgQEAgdm9pZCBDb25zb2xlOjpk
ZWJ1ZyhTY3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKIAogdm9pZCBDb25zb2xlOjplcnJvcihT
Y3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKIHsKLSAgICBhZGRNZXNzYWdlKEVycm9yTWVzc2Fn
ZUxldmVsLCBjYWxsU3RhY2spOworICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUsIEVycm9y
TWVzc2FnZUxldmVsLCBjYWxsU3RhY2spOwogfQogCiB2b2lkIENvbnNvbGU6OmluZm8oU2NyaXB0
Q2FsbFN0YWNrKiBjYWxsU3RhY2spCkBAIC0yMTcsMTIgKzIwNSwxMiBAQCB2b2lkIENvbnNvbGU6
OmluZm8oU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiAKIHZvaWQgQ29uc29sZTo6bG9nKFNj
cmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQogewotICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZUxl
dmVsLCBjYWxsU3RhY2spOworICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUsIExvZ01lc3Nh
Z2VMZXZlbCwgY2FsbFN0YWNrKTsKIH0KIAogdm9pZCBDb25zb2xlOjpkaXIoU2NyaXB0Q2FsbFN0
YWNrKiBjYWxsU3RhY2spCiB7Ci0gICAgYWRkTWVzc2FnZShPYmplY3RNZXNzYWdlTGV2ZWwsIGNh
bGxTdGFjayk7CisgICAgYWRkTWVzc2FnZShPYmplY3RNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxl
dmVsLCBjYWxsU3RhY2spOwogfQogCiB2b2lkIENvbnNvbGU6OmRpcnhtbChTY3JpcHRDYWxsU3Rh
Y2sqIGNhbGxTdGFjaykKQEAgLTIzMyw3ICsyMjEsNyBAQCB2b2lkIENvbnNvbGU6OmRpcnhtbChT
Y3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKIAogdm9pZCBDb25zb2xlOjp0cmFjZShTY3JpcHRD
YWxsU3RhY2sqIGNhbGxTdGFjaykKIHsKLSAgICBhZGRNZXNzYWdlKFRyYWNlTWVzc2FnZUxldmVs
LCBjYWxsU3RhY2ssIHRydWUpOworICAgIGFkZE1lc3NhZ2UoVHJhY2VNZXNzYWdlVHlwZSwgTG9n
TWVzc2FnZUxldmVsLCBjYWxsU3RhY2ssIHRydWUpOwogCiAgICAgaWYgKCFzaG91bGRQcmludEV4
Y2VwdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjUxLDcgKzIzOSw3IEBAIHZvaWQgQ29u
c29sZTo6YXNzZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBTY3JpcHRDYWxsU3RhY2sqIGNh
bGxTdGFjaykKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IDxodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMzU+IEl0IHdvdWxkIGJlIG5pY2UgdG8gcHJl
Zml4IGFzc2VydGlvbiBmYWlsdXJlcyB3aXRoIGEgbWVzc2FnZSBsaWtlICJBc3NlcnRpb24gZmFp
bGVkOiAiLgotICAgIGFkZE1lc3NhZ2UoRXJyb3JNZXNzYWdlTGV2ZWwsIGNhbGxTdGFjaywgdHJ1
ZSk7CisgICAgYWRkTWVzc2FnZShMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGNh
bGxTdGFjaywgdHJ1ZSk7CiB9CiAKIHZvaWQgQ29uc29sZTo6Y291bnQoU2NyaXB0Q2FsbFN0YWNr
KiBjYWxsU3RhY2spCkBAIC0zNDksNyArMzM3LDcgQEAgdm9pZCBDb25zb2xlOjp0aW1lRW5kKGNv
bnN0IFN0cmluZyYgdGl0bGUsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQogICAgIFN0cmlu
ZyBtZXNzYWdlID0gdGl0bGUgKyBTdHJpbmc6OmZvcm1hdCgiOiAlLjBmbXMiLCBlbGFwc2VkKTsK
IAogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYgbGFzdENhbGxlciA9IGNhbGxTdGFjay0+YXQo
MCk7Ci0gICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xl
KEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsYXN0Q2FsbGVyLmxp
bmVOdW1iZXIoKSwgbGFzdENhbGxlci5zb3VyY2VVUkwoKS5zdHJpbmcoKSk7CisgICAgcGFnZS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGFzdENhbGxlci5s
aW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuc291cmNlVVJMKCkuc3RyaW5nKCkpOwogfQogCiB2b2lk
IENvbnNvbGU6Omdyb3VwKFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQpAQCAtMzcyLDcgKzM2
MCw3IEBAIHZvaWQgQ29uc29sZTo6Z3JvdXBFbmQoKQogCiB2b2lkIENvbnNvbGU6Ondhcm4oU2Ny
aXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiB7Ci0gICAgYWRkTWVzc2FnZShXYXJuaW5nTWVzc2Fn
ZUxldmVsLCBjYWxsU3RhY2spOworICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUsIFdhcm5p
bmdNZXNzYWdlTGV2ZWwsIGNhbGxTdGFjayk7CiB9CiAKIHN0YXRpYyBib29sIHByaW50RXhjZXB0
aW9ucyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaCBiL1dlYkNv
cmUvcGFnZS9Db25zb2xlLmgKaW5kZXggNzkzOTZlYS4uNjRlNTk2ZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCkBAIC01OSwx
NiArNTksMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBPdGhlck1lc3NhZ2VTb3Vy
Y2UKICAgICB9OwogCisgICAgZW51bSBNZXNzYWdlVHlwZSB7CisgICAgICAgIExvZ01lc3NhZ2VU
eXBlLAorICAgICAgICBPYmplY3RNZXNzYWdlVHlwZSwKKyAgICAgICAgVHJhY2VNZXNzYWdlVHlw
ZSwKKyAgICAgICAgU3RhcnRHcm91cE1lc3NhZ2VUeXBlLAorICAgICAgICBFbmRHcm91cE1lc3Nh
Z2VUeXBlCisgICAgfTsKKwogICAgIGVudW0gTWVzc2FnZUxldmVsIHsKICAgICAgICAgVGlwTWVz
c2FnZUxldmVsLAogICAgICAgICBMb2dNZXNzYWdlTGV2ZWwsCiAgICAgICAgIFdhcm5pbmdNZXNz
YWdlTGV2ZWwsCi0gICAgICAgIEVycm9yTWVzc2FnZUxldmVsLAotICAgICAgICAvLyBGSVhNRTog
dGhlIHJlbWFpbmluZyBsZXZlbHMgc2hvdWxkIGJlY29tZSBhIG5ldyBNZXNzYWdlVHlwZSBlbnVt
LgotICAgICAgICBPYmplY3RNZXNzYWdlTGV2ZWwsCi0gICAgICAgIFRyYWNlTWVzc2FnZUxldmVs
LAotICAgICAgICBTdGFydEdyb3VwTWVzc2FnZUxldmVsLAotICAgICAgICBFbmRHcm91cE1lc3Nh
Z2VMZXZlbAorICAgICAgICBFcnJvck1lc3NhZ2VMZXZlbAogICAgIH07CiAKICAgICBjbGFzcyBD
b25zb2xlIDogcHVibGljIFJlZkNvdW50ZWQ8Q29uc29sZT4gewpAQCAtNzgsNyArODEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogICAgICAg
ICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwogCi0gICAgICAgIHZvaWQgYWRkTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOworICAgICAgICB2b2lkIGFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCk7CiAKICAgICAgICAgdm9pZCBkZWJ1ZyhTY3JpcHRDYWxsU3RhY2sqKTsKICAgICAgICAgdm9p
ZCBlcnJvcihTY3JpcHRDYWxsU3RhY2sqKTsKQEAgLTEwOCw3ICsxMTEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBpbmxpbmUgUGFnZSogcGFnZSgpIGNv
bnN0OwotICAgICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZUxldmVsLCBTY3JpcHRDYWxsU3Rh
Y2sqLCBib29sIGFjY2VwdE5vQXJndW1lbnRzID0gZmFsc2UpOworICAgICAgICB2b2lkIGFkZE1l
c3NhZ2UoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgU2NyaXB0Q2FsbFN0YWNrKiwgYm9vbCBh
Y2NlcHROb0FyZ3VtZW50cyA9IGZhbHNlKTsKIAogICAgICAgICBDb25zb2xlKEZyYW1lKik7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggZWIxOTgxYy4uOGU2NGZlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTYz
NCw3ICs2MzQsNyBAQCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RN
ZXNzYWdlVGltZXIqIHQpCiAgICAgICAgIGlmICghdGltZXItPnRhcmdldE9yaWdpbigpLT5pc1Nh
bWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAg
ICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiVW5hYmxlIHRvIHBvc3QgbWVz
c2FnZSB0byAlcy4gUmVjaXBpZW50IGhhcyBvcmlnaW4gJXMuXG4iLCAKICAgICAgICAgICAgICAg
ICB0aW1lci0+dGFyZ2V0T3JpZ2luKCktPnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCAwLCBTdHJpbmcoKSk7CisgICAgICAgICAgICBjb25zb2xlKCktPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsIG1lc3NhZ2UsIDAsIFN0cmluZygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcCBiL1dlYkNv
cmUvcGFnZS9YU1NBdWRpdG9yLmNwcAppbmRleCA2YTA4NTViLi5jNWUyZDQ4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0
b3IuY3BwCkBAIC02Niw3ICs2Niw3IEBAIGJvb2wgWFNTQXVkaXRvcjo6Y2FuRXZhbHVhdGUoY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlKSBjb25zdAogCiAgICAgaWYgKGZpbmRJblJlcXVlc3Qoc291
cmNlQ29kZSkpIHsKICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVN
ZXNzYWdlLCAoIlJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2Ug
Y29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuXG4iKSk7Ci0gICAgICAgIG1fZnJh
bWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0cmluZygpKTsKKyAgICAgICAg
bV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEs
IFN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTg3LDcgKzg3LDcgQEAgYm9vbCBYU1NBdWRpdG9yOjpjYW5Mb2FkRXh0ZXJuYWxTY3Jp
cHRGcm9tU3JjKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogCiAgICAgaWYgKGZpbmRJblJlcXVl
c3QodXJsKSkgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1l
c3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBj
b2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKTsKLSAgICAgICAgbV9mcmFt
ZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVy
cm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwgMSwgU3RyaW5nKCkpOworICAgICAgICBt
X2ZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwgMSwg
U3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVl
OwpAQCAtMTAwLDcgKzEwMCw3IEBAIGJvb2wgWFNTQXVkaXRvcjo6Y2FuTG9hZE9iamVjdChjb25z
dCBTdHJpbmcmIHVybCkgY29uc3QKIAogICAgIGlmIChmaW5kSW5SZXF1ZXN0KHVybCkpIHsKICAg
ICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoIlJlZnVz
ZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQg
Zm91bmQgd2l0aGluIHJlcXVlc3QiKSk7Ci0gICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5j
b25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZl
bCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0cmluZygpKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9tV2lu
ZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0cmluZygpKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgYi9XZWJDb3JlL3N2Zy9T
VkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGQ3MTY5ZTEuLjYxNjQ1ZjQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvV2ViQ29yZS9z
dmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcApAQCAtODksMTMgKzg5LDEzIEBAIHZvaWQgU1ZH
RG9jdW1lbnRFeHRlbnNpb25zOjp1bnBhdXNlQW5pbWF0aW9ucygpCiB2b2lkIFNWR0RvY3VtZW50
RXh0ZW5zaW9uczo6cmVwb3J0V2FybmluZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAg
aWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jLT5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+ZG9tV2lu
ZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2Fn
ZUxldmVsLCAiV2FybmluZzogIiArIG1lc3NhZ2UsIG1fZG9jLT50b2tlbml6ZXIoKSA/IG1fZG9j
LT50b2tlbml6ZXIoKS0+bGluZU51bWJlcigpIDogMSwgU3RyaW5nKCkpOworICAgICAgICBmcmFt
ZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIldhcm5pbmc6ICIgKyBtZXNzYWdlLCBt
X2RvYy0+dG9rZW5pemVyKCkgPyBtX2RvYy0+dG9rZW5pemVyKCktPmxpbmVOdW1iZXIoKSA6IDEs
IFN0cmluZygpKTsKIH0KIAogdm9pZCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnJlcG9ydEVycm9y
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2Mt
PmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJvcjogIiArIG1lc3Nh
Z2UsIG1fZG9jLT50b2tlbml6ZXIoKSA/IG1fZG9jLT50b2tlbml6ZXIoKS0+bGluZU51bWJlcigp
IDogMSwgU3RyaW5nKCkpOworICAgICAgICBmcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+
YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgIkVycm9yOiAiICsgbWVzc2FnZSwgbV9kb2MtPnRva2VuaXplcigpID8gbV9kb2MtPnRv
a2VuaXplcigpLT5saW5lTnVtYmVyKCkgOiAxLCBTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHRG9j
dW1lbnRFeHRlbnNpb25zOjphZGRQZW5kaW5nUmVzb3VyY2UoY29uc3QgQXRvbWljU3RyaW5nJiBp
ZCwgU1ZHU3R5bGVkRWxlbWVudCogb2JqKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MRXJy
b3JIYW5kbGluZy5jcHAgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAppbmRleCBh
MjI4Mjk5Li44N2M4MDAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5n
LmNwcAorKysgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcApAQCAtNjEsNyArNjEs
NyBAQCB2b2lkIHJlcG9ydFdNTEVycm9yKERvY3VtZW50KiBkb2MsIFdNTEVycm9yQ29kZSBlcnJv
cikKICAgICAgICAgaWYgKCFjb25zb2xlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IGNvbnNvbGUtPmFkZE1lc3NhZ2UoV01MTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IGVycm9yTWVzc2FnZSwgMCwgU3RyaW5nKCkpOworICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdl
KFdNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgZXJy
b3JNZXNzYWdlLCAwLCBTdHJpbmcoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3dvcmtlcnMvR2VuZXJpY1dvcmtlclRhc2suaCBiL1dlYkNvcmUvd29ya2Vycy9HZW5lcmljV29y
a2VyVGFzay5oCmluZGV4IDM2MTFmZWEuLmQ2YTk5OTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29y
a2Vycy9HZW5lcmljV29ya2VyVGFzay5oCisrKyBiL1dlYkNvcmUvd29ya2Vycy9HZW5lcmljV29y
a2VyVGFzay5oCkBAIC0zMjgsNiArMzI4LDU2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgUDYgbV9wYXJhbWV0ZXI2OwogICAgICAgICBQNyBtX3BhcmFtZXRlcjc7CiAgICAgfTsKKyAg
ICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwg
dHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlw
ZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5h
bWUgTVA2LCB0eXBlbmFtZSBQNywgdHlwZW5hbWUgTVA3LCB0eXBlbmFtZSBQOCwgdHlwZW5hbWUg
TVA4PgorICAgIGNsYXNzIEdlbmVyaWNXb3JrZXJUYXNrOCA6IHB1YmxpYyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdm9pZCAoKk1l
dGhvZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBN
UDYsIE1QNywgTVA4KTsKKyAgICAgICAgdHlwZWRlZiBHZW5lcmljV29ya2VyVGFzazg8UDEsIE1Q
MSwgUDIsIE1QMiwgUDMsIE1QMywgUDQsIE1QNCwgUDUsIE1QNSwgUDYsIE1QNiwgUDcsIE1QNywg
UDgsIE1QOD4gR2VuZXJpY1dvcmtlclRhc2s7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2Vu
ZXJpY1dvcmtlclRhc2tUcmFpdHM8UDE+OjpQYXJhbVR5cGUgUGFyYW0xOworICAgICAgICB0eXBl
ZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFAyPjo6UGFyYW1UeXBlIFBhcmFt
MjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMz46
OlBhcmFtVHlwZSBQYXJhbTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtl
clRhc2tUcmFpdHM8UDQ+OjpQYXJhbVR5cGUgUGFyYW00OworICAgICAgICB0eXBlZGVmIHR5cGVu
YW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFA1Pjo6UGFyYW1UeXBlIFBhcmFtNTsKKyAgICAg
ICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQNj46OlBhcmFtVHlw
ZSBQYXJhbTY7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFp
dHM8UDc+OjpQYXJhbVR5cGUgUGFyYW03OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVy
aWNXb3JrZXJUYXNrVHJhaXRzPFA4Pjo6UGFyYW1UeXBlIFBhcmFtODsKKyAgICAgICAgCisgICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNXb3JrZXJUYXNrPiBjcmVhdGUoTWV0aG9kIG1l
dGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBwYXJhbWV0ZXIyLCBQYXJhbTMgcGFyYW1l
dGVyMywgUGFyYW00IHBhcmFtZXRlcjQsIFBhcmFtNSBwYXJhbWV0ZXI1LCBQYXJhbTYgcGFyYW1l
dGVyNiwgUGFyYW03IHBhcmFtZXRlcjcsIFBhcmFtOCBwYXJhbWV0ZXI4KQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNXb3JrZXJUYXNrKG1ldGhvZCwg
cGFyYW1ldGVyMSwgcGFyYW1ldGVyMiwgcGFyYW1ldGVyMywgcGFyYW1ldGVyNCwgcGFyYW1ldGVy
NSwgcGFyYW1ldGVyNiwgcGFyYW1ldGVyNywgcGFyYW1ldGVyOCkpOworICAgICAgICB9CisgICAg
ICAgIAorICAgIHByaXZhdGU6CisgICAgICAgIEdlbmVyaWNXb3JrZXJUYXNrOChNZXRob2QgbWV0
aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFyYW0yIHBhcmFtZXRlcjIsIFBhcmFtMyBwYXJhbWV0
ZXIzLCBQYXJhbTQgcGFyYW1ldGVyNCwgUGFyYW01IHBhcmFtZXRlcjUsIFBhcmFtNiBwYXJhbWV0
ZXI2LCBQYXJhbTcgcGFyYW1ldGVyNywgUGFyYW04IHBhcmFtZXRlcjgpCisgICAgICAgIDogbV9t
ZXRob2QobWV0aG9kKQorICAgICAgICAsIG1fcGFyYW1ldGVyMShwYXJhbWV0ZXIxKQorICAgICAg
ICAsIG1fcGFyYW1ldGVyMihwYXJhbWV0ZXIyKQorICAgICAgICAsIG1fcGFyYW1ldGVyMyhwYXJh
bWV0ZXIzKQorICAgICAgICAsIG1fcGFyYW1ldGVyNChwYXJhbWV0ZXI0KQorICAgICAgICAsIG1f
cGFyYW1ldGVyNShwYXJhbWV0ZXI1KQorICAgICAgICAsIG1fcGFyYW1ldGVyNihwYXJhbWV0ZXI2
KQorICAgICAgICAsIG1fcGFyYW1ldGVyNyhwYXJhbWV0ZXI3KQorICAgICAgICAsIG1fcGFyYW1l
dGVyOChwYXJhbWV0ZXI4KQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQorICAgICAgICB7CisgICAgICAgICAgICAoKm1fbWV0aG9kKShjb250ZXh0LCBtX3BhcmFtZXRl
cjEsIG1fcGFyYW1ldGVyMiwgbV9wYXJhbWV0ZXIzLCBtX3BhcmFtZXRlcjQsIG1fcGFyYW1ldGVy
NSwgbV9wYXJhbWV0ZXI2LCBtX3BhcmFtZXRlcjcsIG1fcGFyYW1ldGVyOCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgcHJpdmF0ZToKKyAgICAgICAgTWV0aG9kIG1fbWV0aG9kOworICAgICAg
ICBQMSBtX3BhcmFtZXRlcjE7CisgICAgICAgIFAyIG1fcGFyYW1ldGVyMjsKKyAgICAgICAgUDMg
bV9wYXJhbWV0ZXIzOworICAgICAgICBQNCBtX3BhcmFtZXRlcjQ7CisgICAgICAgIFA1IG1fcGFy
YW1ldGVyNTsKKyAgICAgICAgUDYgbV9wYXJhbWV0ZXI2OworICAgICAgICBQNyBtX3BhcmFtZXRl
cjc7CisgICAgICAgIFA4IG1fcGFyYW1ldGVyODsKKyAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUDEsIHR5cGVuYW1lIE1QMT4KICAgICBQYXNzUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKQEAgLTQxMyw2ICs0NjMsMjEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6
Y29weShwYXJhbWV0ZXI3KSk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5
cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVu
YW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1l
IE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1Q
NywgdHlwZW5hbWUgUDgsIHR5cGVuYW1lIE1QOD4KKyAgICBQYXNzUmVmUHRyPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqbWV0
aG9kKShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1Q
NiwgTVA3LCBNUDgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLCBjb25zdCBQMiYgcGFy
YW1ldGVyMiwgY29uc3QgUDMmIHBhcmFtZXRlcjMsIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LCBjb25z
dCBQNSYgcGFyYW1ldGVyNSwgY29uc3QgUDYmIHBhcmFtZXRlcjYsIGNvbnN0IFA3JiBwYXJhbWV0
ZXI3LCBjb25zdCBQOCYgcGFyYW1ldGVyOCkKKyAgICB7CisgICAgICAgIHJldHVybiBHZW5lcmlj
V29ya2VyVGFzazg8dHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5
cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAyPjo6VHlwZSwgTVAyLCB0eXBlbmFtZSBDcm9zc1Ro
cmVhZENvcGllcjxQMz46OlR5cGUsIE1QMywKKyAgICAgICAgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRD
b3BpZXI8UDQ+OjpUeXBlLCBNUDQsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFA1Pjo6VHlw
ZSwgTVA1LCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQNj46OlR5cGUsIE1QNiwKKyAgICAg
ICAgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDc+OjpUeXBlLCBNUDcsIHR5cGVuYW1lIENy
b3NzVGhyZWFkQ29waWVyPFA4Pjo6VHlwZSwgTVA4Pjo6Y3JlYXRlKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy
b3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwgQ3Jvc3NUaHJlYWRDb3BpZXI8
UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFy
YW1ldGVyMyksIENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jv
c3NUaHJlYWRDb3BpZXI8UDU+Ojpjb3B5KHBhcmFtZXRlcjUpLCBDcm9zc1RocmVhZENvcGllcjxQ
Nj46OmNvcHkocGFyYW1ldGVyNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6Y29weShwYXJh
bWV0ZXI3KSwgQ3Jvc3NUaHJlYWRDb3BpZXI8UDg+Ojpjb3B5KHBhcmFtZXRlcjgpKTsKKyAgICB9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IDliMDE5YjguLjhlOWZiOTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQ29udGV4dC5jcHAKQEAgLTE0Niw5ICsxNDYsOSBAQCB2b2lkIFdvcmtlckNvbnRl
eHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVO
dW1iZXIsCiAgICAgbV90aHJlYWQtPndvcmtlck9iamVjdFByb3h5KCkucG9zdEV4Y2VwdGlvblRv
V29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0KIAot
dm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5h
dGlvbiwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkKK3ZvaWQgV29ya2VyQ29udGV4dDo6YWRkTWVzc2FnZShNZXNzYWdlRGVzdGluYXRpb24gZGVz
dGluYXRpb24sIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgbV90aHJlYWQtPndvcmtlck9iamVjdFBy
b3h5KCkucG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoZGVzdGluYXRpb24sIHNvdXJj
ZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgbV90aHJlYWQt
Pndvcmtlck9iamVjdFByb3h5KCkucG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoZGVz
dGluYXRpb24sIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJj
ZVVSTCk7CiB9CiAKIHZvaWQgV29ya2VyQ29udGV4dDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0
dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFNjcmlwdFN0cmluZyYpCkBAIC0yOTksNyAr
Mjk5LDcgQEAgdm9pZCBXb3JrZXJDb250ZXh0OjppbXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB1cmxzLCBjb25zdCBTdHJpbmcmIGNhbGwKICAgICAgICAgfQogCiAgICAgICAgIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2NyaXB0SW1wb3J0ZWQoc2NyaXB0TG9hZGVyLmlkZW50
aWZpZXIoKSwgc2NyaXB0TG9hZGVyLnNjcmlwdCgpKTsKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5hZGRNZXNzYWdlKEluc3BlY3RvckNvbnRyb2xsZXJEZXN0aW5hdGlvbiwgSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsICJXb3JrZXIgc2NyaXB0IGltcG9ydGVkOiBc
IiIgKyAqaXQgKyAiXCIuIiwgY2FsbGVyTGluZSwgY2FsbGVyVVJMKTsKKyAgICAgICAgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRNZXNzYWdlKEluc3BlY3RvckNvbnRyb2xsZXJEZXN0aW5h
dGlvbiwgSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCAi
V29ya2VyIHNjcmlwdCBpbXBvcnRlZDogXCIiICsgKml0ICsgIlwiLiIsIGNhbGxlckxpbmUsIGNh
bGxlclVSTCk7CiAKICAgICAgICAgU2NyaXB0VmFsdWUgZXhjZXB0aW9uOwogICAgICAgICBtX3Nj
cmlwdC0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShzY3JpcHRMb2FkZXIuc2NyaXB0KCksICpp
dCksICZleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRl
eHQuaCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKaW5kZXggYmNlYzc2OS4uMTZm
NDNmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAorKysgYi9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCkBAIC03NCw3ICs3NCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsKIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlRGVzdGluYXRpb24sIE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRN
ZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXNvdXJjZVJl
dHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBT
Y3JpcHRTdHJpbmcmIHNvdXJjZVN0cmluZyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JpcHRJ
bXBvcnRlZCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3Ry
aW5nKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMDRl
NjFjMS4uYjZlMTY0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3Bw
CkBAIC0yNTUsMTYgKzI1NSwxNiBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhj
ZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZwogICAgIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soV29ya2VyRXhjZXB0aW9uVGFzazo6Y3JlYXRl
KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCB0aGlzKSk7CiB9CiAgICAgCi1z
dGF0aWMgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFdvcmtlck1lc3NhZ2luZ1Byb3h5KiBtZXNzYWdpbmdQcm94eSwgTWVzc2FnZURl
c3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMKQorc3RhdGljIHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVGFzayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVz
c2FnaW5nUHJveHksIE1lc3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkKIHsKICAgICBpZiAobWVzc2FnaW5nUHJveHktPmFza2VkVG9UZXJtaW5hdGUoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGNvbnRleHQtPmFkZE1lc3NhZ2UoZGVzdGluYXRpb24sIHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgY29udGV4dC0+YWRk
TWVzc2FnZShkZXN0aW5hdGlvbiwgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51
bWJlciwgc291cmNlVVJMKTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdENv
bnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZURlc3RpbmF0aW9uIGRlc3RpbmF0aW9u
LCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3ZvaWQg
V29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KE1l
c3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBp
bnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soJnBvc3RDb25zb2xl
TWVzc2FnZVRhc2ssIHRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBs
aW5lTnVtYmVyLCBzb3VyY2VVUkwpKTsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBv
c3RUYXNrKGNyZWF0ZUNhbGxiYWNrVGFzaygmcG9zdENvbnNvbGVNZXNzYWdlVGFzaywgdGhpcywg
ZGVzdGluYXRpb24sIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCkpOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJUaHJlYWRD
cmVhdGVkKFBhc3NSZWZQdHI8V29ya2VyVGhyZWFkPiB3b3JrZXJUaHJlYWQpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IDI5OGQ4NjguLmY5ZTFjZDQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC02Myw3ICs2Myw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIG1ldGhvZHMgaW4gdGhlIHdv
cmtlciBjb250ZXh0IHRocmVhZC4pCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRv
V29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVs
Pik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtl
ck9iamVjdChNZXNzYWdlRGVzdGluYXRpb24sIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJP
YmplY3QoTWVzc2FnZURlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjb25maXJtTWVzc2FnZUZy
b21Xb3JrZXJPYmplY3QoYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHdvcmtlckNvbnRleHREZXN0cm95ZWQoKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPYmplY3RQcm94eS5oIGIvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9iamVjdFByb3h5LmgKaW5kZXggYmRiYzJiYi4uYzVmNDQ1NiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9iamVjdFByb3h5LmgKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9iamVjdFByb3h5LmgKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkgPSAwOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dv
cmtlck9iamVjdChNZXNzYWdlRGVzdGluYXRpb24sIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRv
V29ya2VyT2JqZWN0KE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgY29u
ZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KSA9IDA7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA1OWNhY2JkLi43Mjg0ZjE5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCkBAIC04MDcsNyArODA3LDcgQEAgc3RhdGljIHZvaWQgcmVwb3J0VW5zYWZl
VXNhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtZXMK
ICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBnb29kIHRvIHJlcG9ydCB0
aGUgYmFkIHVzYWdlIHdpdGhvdXQgaW5kaWNhdGluZyB3aGF0IHNvdXJjZSBsaW5lIGl0IGNhbWUg
ZnJvbS4KICAgICAvLyBXZSBzaG91bGQgcGFzcyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgc28gd2Ug
Y2FuIHRlbGwgdGhlIGNvbnNvbGUgd2hlcmUgdGhlIG1pc3Rha2Ugb2NjdXJyZWQuCi0gICAgY29u
dGV4dC0+YWRkTWVzc2FnZShDb25zb2xlRGVzdGluYXRpb24sIEpTTWVzc2FnZVNvdXJjZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKKyAgICBjb250ZXh0LT5hZGRN
ZXNzYWdlKENvbnNvbGVEZXN0aW5hdGlvbiwgSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKIH0KIAogdm9pZCBY
TUxIdHRwUmVxdWVzdDo6c2V0UmVxdWVzdEhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtOTk3LDcgKzk5Nyw3
IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyKQogICAgICAgICBtX3Jlc3BvbnNlVGV4dCArPSBtX2RlY29kZXItPmZsdXNoKCk7
CiAKICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnJlc291cmNlUmV0cmlldmVkQnlYTUxI
dHRwUmVxdWVzdChpZGVudGlmaWVyLCBtX3Jlc3BvbnNlVGV4dCk7Ci0gICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5hZGRNZXNzYWdlKEluc3BlY3RvckNvbnRyb2xsZXJEZXN0aW5hdGlvbiwg
SlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsICJYSFIgZmluaXNoZWQgbG9hZGluZzog
XCIiICsgbV91cmwgKyAiXCIuIiwgbV9sYXN0U2VuZExpbmVOdW1iZXIsIG1fbGFzdFNlbmRVUkwp
OworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShJbnNwZWN0b3JDb250
cm9sbGVyRGVzdGluYXRpb24sIEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIExvZ01l
c3NhZ2VMZXZlbCwgIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyBtX3VybCArICJcIi4iLCBt
X2xhc3RTZW5kTGluZU51bWJlciwgbV9sYXN0U2VuZFVSTCk7CiAKICAgICBib29sIGhhZExvYWRl
ciA9IG1fbG9hZGVyOwogICAgIG1fbG9hZGVyID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3IuY3BwIGIvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKaW5kZXgg
Mzg2NTEyNC4uYTI2ZmU3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5j
cHAKKysrIGIvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKQEAgLTk5LDcgKzk5LDcgQEAg
dm9pZCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwgeG1sRXJy
b3IqIGVycm9yKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY29uc29sZS0+YWRk
TWVzc2FnZShYTUxNZXNzYWdlU291cmNlLCBsZXZlbCwgZXJyb3ItPm1lc3NhZ2UsIGVycm9yLT5s
aW5lLCBlcnJvci0+ZmlsZSk7CisgICAgY29uc29sZS0+YWRkTWVzc2FnZShYTUxNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIGVycm9yLT5tZXNzYWdlLCBlcnJvci0+bGluZSwg
ZXJyb3ItPmZpbGUpOwogfQogCiAvLyBGSVhNRTogVGhlcmUgc2VlbXMgdG8gYmUgbm8gd2F5IHRv
IGNvbnRyb2wgdGhlIGN0eHQgcG9pbnRlciBmb3IgbG9hZGluZyBoZXJlLCB0aHVzIHdlIGhhdmUg
Z2xvYmFscy4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggMWU3MmUxNC4uODc2YzU5OCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAw
OS0wNy0wOCAgS2Vpc2hpIEhhdHRvcmkgIDxjYXNleS5oYXR0b3JpQGdtYWlsLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTSE9SVCBERVNDUklQ
VElPTi9CVUcgVElUTEUgR09FUyBIRVJFIChPT1BTISkKKyAgICAgICAgQlVHIFVSTCBHT0VTIEhF
UkUgKHBhc3MgLS1idWc9IHRvIGF1dG9maWxsKQorCisgICAgICAgIERFVEFJTEVEIERFU0NSSVBU
SU9OIE9GIFRIRSBDSEFOR0VTIEdPRVMgSEVSRS4gKE9PUFMhKSBTRUU6CisgICAgICAgIGh0dHA6
Ly93ZWJraXQub3JnL2NvZGluZy9jb250cmlidXRpbmcuaHRtbCBGT1IgTU9SRSBJTkZPUk1BVElP
TgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKToKKwogMjAwOS0wNy0wNyAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWlu
aWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA4
ZGFhZDEzLi44OGM2OTE1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZXNpemFibGUoYm9vbCk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VU
b0NvbnNvbGUoV2ViQ29yZTo6TWVzc2FnZVNvdXJjZSBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VM
ZXZlbCBsZXZlbCwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQg
bGluZU51bWJlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VVUkwpOworICAgIHZpcnR1
YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFdlYkNvcmU6Ok1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBXZWJDb3JlOjpNZXNzYWdlVHlwZSB0eXBlLCBXZWJDb3JlOjpNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIs
IGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgc291cmNlVVJMKTsKIAogICAgIHZpcnR1YWwgYm9vbCBj
YW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgbWVzc2FnZSwgV2Vi
Q29yZTo6RnJhbWUqIGZyYW1lKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KaW5kZXggNWM2NGMzMC4uYzAzZDU1MyAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2V0UmVzaXphYmxlKGJvb2wgYikKICAgICBbW21fd2ViVmlldyBfVUlE
ZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgc2V0UmVzaXphYmxlOmJdOwogfQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNl
IHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2ln
bmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewogICAg
IGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3Ig
PSBAc2VsZWN0b3Iod2ViVmlldzphZGRNZXNzYWdlVG9Db25zb2xlOik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32504</attachid>
            <date>2009-07-09 00:18:21 -0700</date>
            <delta_ts>2009-07-09 15:12:23 -0700</delta_ts>
            <desc>forgot to write WebKit ChangeLog</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>59873</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODJmYzE3ZC4uOGEwNzgxZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDAgQEAKKzIwMDktMDctMDggIEtlaXNoaSBIYXR0
b3JpICA8Y2FzZXkuaGF0dG9yaUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgQ29uc29sZU1lc3NhZ2UgdG8gYWRkIE1l
c3NhZ2VUeXBlIGF0dHJpYnV0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNjI1CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
cjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpwcmludEVycm9y
TWVzc2FnZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpyZXBvcnRFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICogaHRtbC9IVE1MUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXI6OnJlcG9ydEVycm9yVG9Db25zb2xlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNv
bGVNZXNzYWdlOjphZGRUb0NvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3Nh
Z2U6OmlzRXF1YWwpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRHcm91cCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjplbmRHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjphZGRQcm9maWxlRmluaXNoZWRNZXNzYWdlVG9Db25zb2xlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmFkZFN0YXJ0UHJvZmlsaW5n
TWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
Ojpjb3VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29uc29sZS5wcm90b3R5cGUuYWRkTWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UpOiBBZGRlZCB0eXBlIHByb3BlcnR5LgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS50b01lc3NhZ2VFbGVtZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUudG9TdHJpbmcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5pc0VxdWFsKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZS5hZGRNZXNzYWdlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25zb2xlR3JvdXAucHJvdG90eXBlLl90aXRsZUNsaWNrZWQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2UucHJvdG90eXBlLl9hZGRUaXApOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlLnByb3RvdHlwZS5fY2hlY2tXYXJuaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5jc3M6IENoYW5nZWQgIi5jb25zb2xlLWdyb3VwLXRpdGxlLWxldmVs
IiB0byAiLmNvbnNvbGUtZ3JvdXAtdGl0bGUiCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuYWRkTWVzc2FnZVRvQ29uc29s
ZSk6CisgICAgICAgICogbG9hZGVyL0RvY0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2NMb2FkZXI6OnByaW50QWNjZXNzRGVuaWVkTWVzc2FnZSk6CisgICAgICAgICogbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmFkZE1l
c3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnNvbGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
c29sZTo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6bG9nKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnNvbGU6OmRpcik6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjp0cmFj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjphc3NlcnRDb25kaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q29uc29sZTo6dGltZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xl
Ojp3YXJuKToKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuaDogQWRkZWQgTWVzc2FnZVR5cGUgZW51
bS4KKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOgorICAg
ICAgICAqIHBhZ2UvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9y
OjpjYW5FdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpjYW5Mb2FkRXh0
ZXJuYWxTY3JpcHRGcm9tU3JjKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhbkxv
YWRPYmplY3QpOgorICAgICAgICAqIHN2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpyZXBvcnRXYXJuaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50RXh0ZW5zaW9uczo6cmVwb3J0RXJyb3IpOgorICAg
ICAgICAqIHdtbC9XTUxFcnJvckhhbmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9y
dFdNTEVycm9yKToKKyAgICAgICAgKiB3b3JrZXJzL0dlbmVyaWNXb3JrZXJUYXNrLmg6IEFkZGVk
IEdlbmVyaWNXb3JrZXJUYXNrOCBmb3IgdGhlIGV4dHJhIGFyZ3VtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6R2VuZXJpY1dvcmtlclRhc2s4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2Vu
ZXJpY1dvcmtlclRhc2s4OjpHZW5lcmljV29ya2VyVGFzazgpOgorICAgICAgICAoV2ViQ29yZTo6
R2VuZXJpY1dvcmtlclRhc2s4OjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVDYWxsYmFja1Rhc2spOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckNvbnRleHQ6OmltcG9ydFNjcmlwdHMpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyQ29udGV4dC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cG9zdENvbnNvbGVNZXNzYWdlVGFzayk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdENvbnNvbGVNZXNzYWdlVG9Xb3Jr
ZXJPYmplY3QpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck9iamVjdFByb3h5Lmg6CisgICAgICAgICogeG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydFVuc2FmZVVzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAg
ICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xUUHJvY2Vz
c29yOjpwYXJzZUVycm9yRnVuYyk6CisKIDIwMDktMDctMDcgIFBpZXJyZSBkJ0hlcmJlbW9udCAg
PHBkaGVyYmVtb250QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFz
ZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3Bw
CmluZGV4IDYzNjFlNzAuLmZmZThjZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC04NCw3ICs4NCw3IEBAIFN0cmluZyBKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4
KQogICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldENhbGxEYXRhKGNhbGxE
YXRhKTsKICAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewogICAgICAgICAg
ICAgLy8gRklYTUU6IFBhc3MgYWN0dWFsIGxpbmUgbnVtYmVyIGFuZCBzb3VyY2UgVVJMLgotICAg
ICAgICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90
IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIsIDAsIFN0cmluZygpKTsKKyAgICAg
ICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVz
b2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIiwgMCwgU3Ry
aW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CiAgICAgICAg
IGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcAppbmRleCAwZWVmZWJlLi4wZjQxOWJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgSlNET01XaW5kb3dCYXNl
OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgaWYg
KHNldHRpbmdzLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGltcGwoKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsgLy8gRklYTUU6IHByb3ZpZGUgYSBy
ZWFsIGxpbmUgbnVtYmVyIGFuZCBzb3VyY2UgVVJMLgorICAgIGltcGwoKS0+Y29uc29sZSgpLT5h
ZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxl
dmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7IC8vIEZJWE1FOiBwcm92aWRlIGEgcmVhbCBsaW5l
IG51bWJlciBhbmQgc291cmNlIFVSTC4KIH0KIAogRXhlY1N0YXRlKiBKU0RPTVdpbmRvd0Jhc2U6
Omdsb2JhbEV4ZWMoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGQ4YzJmM2MuLmI1NWYxMjAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTQzNjAsMTkgKzQzNjAsMTkgQEAgdm9pZCBEb2N1bWVudDo6cGFyc2VETlNQcmVmZXRjaENv
bnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJiBkbnNQcmVmZXRjaENvbnRyb2wpCiB2b2lkIERvY3Vt
ZW50OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKICAgICBpZiAoRE9NV2luZG93KiB3
aW5kb3cgPSBkb21XaW5kb3coKSkKLSAgICAgICAgd2luZG93LT5jb25zb2xlKCktPmFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgZXJyb3JNZXNzYWdlLCBsaW5l
TnVtYmVyLCBzb3VyY2VVUkwpOworICAgICAgICB3aW5kb3ctPmNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgZXJy
b3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogfQogCi12b2lkIERvY3VtZW50Ojph
ZGRNZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3ZvaWQgRG9jdW1lbnQ6OmFk
ZE1lc3NhZ2UoTWVzc2FnZURlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQog
ewogICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKICAgICBjYXNlIEluc3BlY3RvckNvbnRyb2xs
ZXJEZXN0aW5hdGlvbjoKICAgICAgICAgaWYgKHBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UoKS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWws
IG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgICAgICBwYWdlKCktPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBDb25zb2xlRGVzdGluYXRpb246CiAgICAgICAgIGlmIChET01XaW5kb3cqIHdpbmRv
dyA9IGRvbVdpbmRvdygpKQotICAgICAgICAgICAgd2luZG93LT5jb25zb2xlKCktPmFkZE1lc3Nh
Z2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICAg
ICAgICAgIHdpbmRvdy0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWws
IG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5Mjg2NWY0Li5jZGZkOWFmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTc4Nyw3ICs3ODcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZUROU1ByZWZl
dGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0gICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVz
c2FnZURlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
OworICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFNjcmlwdFN0cmluZyYgc291cmNlU3RyaW5nKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2NyaXB0SW1wb3J0ZWQodW5zaWduZWQgbG9uZywgY29uc3QgU3RyaW5nJik7CiAg
ICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFBhc3NSZWZQdHI8VGFzaz4pOyAvLyBFeGVjdXRlcyB0
aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDdiMmYzNmEuLjNmOGZlYmMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTY0LDcgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVy
biBtX3NlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcG9y
dEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNz
YWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VEZXN0
aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0
dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU2NyaXB0U3RyaW5nJiBz
b3VyY2VTdHJpbmcpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcmlwdEltcG9ydGVkKHVu
c2lnbmVkIGxvbmcsIGNvbnN0IFN0cmluZyYpID0gMDsKICAgICAgICAgCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAK
aW5kZXggZWE2YmJlMi4uNGY2OTBiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxQYXJz
ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNwcApAQCAtMTY1Niw3ICsxNjU2
LDcgQEAgdm9pZCBIVE1MUGFyc2VyOjpyZXBvcnRFcnJvclRvQ29uc29sZShIVE1MUGFyc2VyRXJy
b3JDb2RlIGVycm9yQ29kZSwgY29uc3QgQXRvbWkKICAgICBtZXNzYWdlLnJlcGxhY2UoIiV0YWcx
IiwgdGFnMSk7CiAgICAgbWVzc2FnZS5yZXBsYWNlKCIldGFnMiIsIHRhZzIpOwogCi0gICAgZnJh
bWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2Us
CisgICAgZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3Nh
Z2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCAKICAgICAgICAgaXNXYXJuaW5nKGVycm9yQ29kZSkg
PyBXYXJuaW5nTWVzc2FnZUxldmVsIDogRXJyb3JNZXNzYWdlTGV2ZWwsCiAgICAgICAgIG1lc3Nh
Z2UsIGxpbmVOdW1iZXIsIG1fZG9jdW1lbnQtPnVybCgpLnN0cmluZygpKTsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCBiM2MwMjE4Li42MDkxOTdlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0zOCw4ICszOCw5IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ug
cywgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGksIGNvbnN0IFN0
cmluZyYgdSwgdW5zaWduZWQgZykKK0NvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcm
IG0sIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUsIHVuc2lnbmVkIGcpCiAgICAgOiBtX3Nv
dXJjZShzKQorICAgICwgbV90eXBlKHQpCiAgICAgLCBtX2xldmVsKGwpCiAgICAgLCBtX21lc3Nh
Z2UobSkKICAgICAsIG1fbGluZShsaSkKQEAgLTQ5LDggKzUwLDkgQEAgQ29uc29sZU1lc3NhZ2U6
OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0
cmluZyYgbSwKIHsKIH0KIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UgcywgTWVzc2FnZUxldmVsIGwsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrLCB1bnNp
Z25lZCBnLCBib29sIHN0b3JlVHJhY2UpCitDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgU2NyaXB0Q2Fs
bFN0YWNrKiBjYWxsU3RhY2ssIHVuc2lnbmVkIGcsIGJvb2wgc3RvcmVUcmFjZSkKICAgICA6IG1f
c291cmNlKHMpCisgICAgLCBtX3R5cGUodCkKICAgICAsIG1fbGV2ZWwobCkKICAgICAsIG1fd3Jh
cHBlZEFyZ3VtZW50cyhjYWxsU3RhY2stPmF0KDApLmFyZ3VtZW50Q291bnQoKSkKICAgICAsIG1f
ZnJhbWVzKHN0b3JlVHJhY2UgPyBjYWxsU3RhY2stPnNpemUoKSA6IDApCkBAIC03Nyw2ICs3OSw3
IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmFkZFRvQ29uc29sZShJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpCiB7CiAgICAgSW5zcGVjdG9ySlNPTk9iamVjdCBqc29uT2JqID0gZnJvbnRlbmQt
Pm5ld0luc3BlY3RvckpTT05PYmplY3QoKTsKICAgICBqc29uT2JqLnNldCgic291cmNlIiwgc3Rh
dGljX2Nhc3Q8aW50PihtX3NvdXJjZSkpOworICAgIGpzb25PYmouc2V0KCJ0eXBlIiwgc3RhdGlj
X2Nhc3Q8aW50PihtX3R5cGUpKTsKICAgICBqc29uT2JqLnNldCgibGV2ZWwiLCBzdGF0aWNfY2Fz
dDxpbnQ+KG1fbGV2ZWwpKTsKICAgICBqc29uT2JqLnNldCgibGluZSIsIHN0YXRpY19jYXN0PGlu
dD4obV9saW5lKSk7CiAgICAganNvbk9iai5zZXQoInVybCIsIG1fdXJsKTsKQEAgLTEwOSw2ICsx
MTIsNyBAQCBib29sIENvbnNvbGVNZXNzYWdlOjppc0VxdWFsKFNjcmlwdFN0YXRlKiBzdGF0ZSwg
Q29uc29sZU1lc3NhZ2UqIG1zZykgY29uc3QKICAgICB9CiAKICAgICByZXR1cm4gbXNnLT5tX3Nv
dXJjZSA9PSBtX3NvdXJjZQorICAgICAgICAmJiBtc2ctPm1fdHlwZSA9PSBtX3R5cGUKICAgICAg
ICAgJiYgbXNnLT5tX2xldmVsID09IG1fbGV2ZWwKICAgICAgICAgJiYgbXNnLT5tX21lc3NhZ2Ug
PT0gbV9tZXNzYWdlCiAgICAgICAgICYmIG1zZy0+bV9saW5lID09IG1fbGluZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmgKaW5kZXggMTVlNmU3ZS4uNWIyZjdkNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9D
b25zb2xlTWVzc2FnZS5oCkBAIC00NCw4ICs0NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgIGNsYXNzIENvbnNvbGVNZXNzYWdlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCB1bnNp
Z25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCB1bnNpZ25lZCBnKTsgICAgICAgIAotICAgICAgICBD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIFNjcmlwdENhbGxTdGFj
ayosIHVuc2lnbmVkIGcsIGJvb2wgc3RvcmVUcmFjZSA9IGZhbHNlKTsKKyAgICAgICAgQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtLCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCB1bnNpZ25lZCBnKTsgICAg
ICAgIAorICAgICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBTY3JpcHRDYWxsU3RhY2sqLCB1bnNpZ25lZCBnLCBib29sIHN0b3JlVHJh
Y2UgPSBmYWxzZSk7CiAKICAgICAgICAgdm9pZCBhZGRUb0NvbnNvbGUoSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW5kKTsKICAgICAgICAgdm9pZCBpbmNyZW1lbnRDb3VudCgpIHsgKyttX3JlcGVh
dENvdW50OyB9OwpAQCAtNTMsNiArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBw
cml2YXRlOgogICAgICAgICBNZXNzYWdlU291cmNlIG1fc291cmNlOworICAgICAgICBNZXNzYWdl
VHlwZSBtX3R5cGU7CiAgICAgICAgIE1lc3NhZ2VMZXZlbCBtX2xldmVsOwogICAgICAgICBTdHJp
bmcgbV9tZXNzYWdlOwogICAgICAgICBWZWN0b3I8U2NyaXB0VmFsdWU+IG1fd3JhcHBlZEFyZ3Vt
ZW50czsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggN2Uw
Y2YzMS4uNDEwMjI2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKQEAgLTM5NSwyMCArMzk1LDIwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0V2lu
ZG93VmlzaWJsZShib29sIHZpc2libGUsIGJvb2wgYXR0YWNoZWQpCiAgICAgbV9zaG93QWZ0ZXJW
aXNpYmxlID0gQ3VycmVudFBhbmVsOwogfQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiB7CiAg
ICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFkZENvbnNvbGVNZXNz
YWdlKGNhbGxTdGFjay0+c3RhdGUoKSwgbmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgbGV2ZWws
IGNhbGxTdGFjaywgbV9ncm91cExldmVsLCBsZXZlbCA9PSBUcmFjZU1lc3NhZ2VMZXZlbCkpOwor
ICAgIGFkZENvbnNvbGVNZXNzYWdlKGNhbGxTdGFjay0+c3RhdGUoKSwgbmV3IENvbnNvbGVNZXNz
YWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIGNhbGxTdGFjaywgbV9ncm91cExldmVsLCB0eXBlID09
IFRyYWNlTWVzc2FnZVR5cGUpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRN
ZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VJRCkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlSUQpCiB7CiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGFkZENvbnNvbGVNZXNzYWdlKDAsIG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VJRCwgbV9ncm91cExldmVsKSk7CisgICAg
YWRkQ29uc29sZU1lc3NhZ2UoMCwgbmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2
ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZUlELCBtX2dyb3VwTGV2ZWwpKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRDb25zb2xlTWVzc2FnZShTY3JpcHRTdGF0ZSog
c2NyaXB0U3RhdGUsIENvbnNvbGVNZXNzYWdlKiBjb25zb2xlTWVzc2FnZSkKQEAgLTQ0MCw3ICs0
NDAsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0R3JvdXAoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIFNjcmlwdENhbGxTdGFjayogY2FsbAogewogICAgICsrbV9ncm91cExldmVsOwog
Ci0gICAgYWRkQ29uc29sZU1lc3NhZ2UoY2FsbFN0YWNrLT5zdGF0ZSgpLCBuZXcgQ29uc29sZU1l
c3NhZ2Uoc291cmNlLCBTdGFydEdyb3VwTWVzc2FnZUxldmVsLCBjYWxsU3RhY2ssIG1fZ3JvdXBM
ZXZlbCkpOworICAgIGFkZENvbnNvbGVNZXNzYWdlKGNhbGxTdGFjay0+c3RhdGUoKSwgbmV3IENv
bnNvbGVNZXNzYWdlKHNvdXJjZSwgU3RhcnRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2
ZWwsIGNhbGxTdGFjaywgbV9ncm91cExldmVsKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJv
bGxlcjo6ZW5kR3JvdXAoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQpAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6ZW5kR3JvdXAoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIGNvCiAKICAgICAtLW1fZ3JvdXBMZXZlbDsKIAotICAgIGFkZENvbnNvbGVNZXNz
YWdlKDAsIG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIEVuZEdyb3VwTWVzc2FnZUxldmVsLCBT
dHJpbmcoKSwgbGluZU51bWJlciwgc291cmNlVVJMLCBtX2dyb3VwTGV2ZWwpKTsKKyAgICBhZGRD
b25zb2xlTWVzc2FnZSgwLCBuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCBFbmRHcm91cE1lc3Nh
Z2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIFN0cmluZygpLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkws
IG1fZ3JvdXBMZXZlbCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmF0dGFjaFdp
bmRvdygpCkBAIC0xMDk4LDcgKzEwOTgsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFk
ZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUoUGFzc1JlZlB0cjxQcm9maWxlPgogICAg
IG1lc3NhZ2UgKz0gIi8iOwogICAgIG1lc3NhZ2UgKz0gVVN0cmluZzo6ZnJvbShwcm9maWxlLT51
aWQoKSk7CiAgICAgbWVzc2FnZSArPSAiXCIgZmluaXNoZWQuIjsKLSAgICBhZGRNZXNzYWdlVG9D
b25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsaW5lTnVt
YmVyLCBzb3VyY2VVUkwpOworICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBz
b3VyY2VVUkwpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFkZFN0YXJ0UHJvZmls
aW5nTWVzc2FnZVRvQ29uc29sZShjb25zdCBVU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgbGluZU51
bWJlciwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMKQpAQCAtMTEwNiw3ICsxMTA2LDcgQEAgdm9p
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUo
Y29uc3QgVVN0cmluZyYgdGl0bGUKICAgICBVU3RyaW5nIG1lc3NhZ2UgPSAiUHJvZmlsZSBcIndl
YmtpdC1wcm9maWxlOi8vIjsKICAgICBtZXNzYWdlICs9IGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1
ZW5jZXModGl0bGUpOwogICAgIG1lc3NhZ2UgKz0gIi8wXCIgc3RhcnRlZC4iOwotICAgIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2Us
IGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgYWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3Nh
Z2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHNvdXJjZVVSTCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkU2Ny
aXB0UHJvZmlsZShQcm9maWxlKiBwcm9maWxlKQpAQCAtMTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpjb3VudChjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCBs
aW5lTnVtYmVyLCBjb25zdAogICAgIG1fY291bnRzLmFkZChpZGVudGlmaWVyLCBjb3VudCk7CiAK
ICAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6Zm9ybWF0KCIlczogJWQiLCB0aXRsZS51dGY4
KCkuZGF0YSgpLCBjb3VudCk7Ci0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlSUQpOworICAg
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9n
TWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VJRCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA4YmE4NjY5Li40YzkwYmM1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xNzMsOCArMTcz
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRSZXNvdXJjZVNvdXJjZVRvRnJhbWUobG9uZyBp
ZGVudGlmaWVyLCBOb2RlKiBmcmFtZSk7CiAgICAgYm9vbCBhZGRTb3VyY2VUb0ZyYW1lKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlLCBOb2RlKik7Ci0gICAgdm9p
ZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgU2NyaXB0
Q2FsbFN0YWNrKik7Ci0gICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgU2NyaXB0Q2FsbFN0YWNr
Kik7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCk7CiAgICAgdm9pZCBjbGVhckNvbnNvbGVNZXNz
YWdlcygpOwogCiAgICAgdm9pZCBhdHRhY2hXaW5kb3coKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGUuanMKaW5kZXggYjM0MDYxZS4uY2E5YWMwMCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGUuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGUuanMKQEAgLTE5OCw3ICsxOTgsNyBAQCBXZWJJbnNwZWN0b3IuQ29u
c29sZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1zZyk7CiAK
LSAgICAgICAgaWYgKG1zZy5sZXZlbCA9PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VMZXZlbC5FbmRHcm91cCkgeworICAgICAgICBpZiAobXNnLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5FbmRHcm91cCkgewogICAgICAgICAgICAg
aWYgKHRoaXMuZ3JvdXBMZXZlbCA8IDEpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0y
MDYsNyArMjA2LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGUucHJvdG90eXBlID0gewogCiAgICAg
ICAgICAgICB0aGlzLmN1cnJlbnRHcm91cCA9IHRoaXMuY3VycmVudEdyb3VwLnBhcmVudEdyb3Vw
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1zZy5sZXZlbCA9PT0gV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5TdGFydEdyb3VwKSB7CisgICAgICAg
ICAgICBpZiAobXNnLnR5cGUgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
VHlwZS5TdGFydEdyb3VwKSB7CiAgICAgICAgICAgICAgICAgdGhpcy5ncm91cExldmVsKys7CiAK
ICAgICAgICAgICAgICAgICB2YXIgZ3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVHcm91
cCh0aGlzLmN1cnJlbnRHcm91cCwgdGhpcy5ncm91cExldmVsKTsKQEAgLTU3NiwyMyArNTc2LDI0
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlLnByb3RvdHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLkNv
bnNvbGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsK
IAotV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlID0gZnVuY3Rpb24oc291cmNlLCBsZXZlbCwg
bGluZSwgdXJsLCBncm91cExldmVsLCByZXBlYXRDb3VudCkKK1dlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZSA9IGZ1bmN0aW9uKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIGxpbmUsIHVybCwgZ3JvdXBM
ZXZlbCwgcmVwZWF0Q291bnQpCiB7CiAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7CisgICAgdGhp
cy50eXBlID0gdHlwZTsKICAgICB0aGlzLmxldmVsID0gbGV2ZWw7CiAgICAgdGhpcy5saW5lID0g
bGluZTsKICAgICB0aGlzLnVybCA9IHVybDsKICAgICB0aGlzLmdyb3VwTGV2ZWwgPSBncm91cExl
dmVsOwogICAgIHRoaXMucmVwZWF0Q291bnQgPSByZXBlYXRDb3VudDsKLSAgICBpZiAoYXJndW1l
bnRzLmxlbmd0aCA+IDYpCi0gICAgICAgIHRoaXMuc2V0TWVzc2FnZUJvZHkoQXJyYXkucHJvdG90
eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCA2KSk7CisgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGgg
PiA3KQorICAgICAgICB0aGlzLnNldE1lc3NhZ2VCb2R5KEFycmF5LnByb3RvdHlwZS5zbGljZS5j
YWxsKGFyZ3VtZW50cywgNykpOwogfQogCiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJv
dG90eXBlID0gewogICAgIHNldE1lc3NhZ2VCb2R5OiBmdW5jdGlvbihhcmdzKQogICAgIHsKLSAg
ICAgICAgc3dpdGNoICh0aGlzLmxldmVsKSB7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuVHJhY2U6CisgICAgICAgIHN3aXRjaCAodGhp
cy50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5N
ZXNzYWdlVHlwZS5UcmFjZToKICAgICAgICAgICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgICAgICBzcGFuLmFkZFN0eWxlQ2xhc3Mo
ImNvbnNvbGUtZm9ybWF0dGVkLXRyYWNlIik7CiAgICAgICAgICAgICAgICAgdmFyIHN0YWNrID0g
QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncyk7CkBAIC02MDIsNyArNjAzLDcgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBz
cGFuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGZ1bmNOYW1lcy5qb2luKCJc
biIpKSk7CiAgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWRNZXNzYWdlID0gc3BhbjsKICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5PYmplY3Q6CisgICAgICAgICAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5PYmplY3Q6CiAgICAgICAgICAgICAgICAg
dGhpcy5mb3JtYXR0ZWRNZXNzYWdlID0gdGhpcy5fZm9ybWF0KFsiJU8iLCBhcmdzWzBdXSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtNzIwLDggKzcy
MSwxMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9y
OgogICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygiY29uc29sZS1lcnJvci1s
ZXZlbCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLlN0YXJ0R3JvdXA6Ci0gICAgICAgICAg
ICAgICAgZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJjb25zb2xlLWdyb3VwLXRpdGxlLWxldmVsIik7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdyb3VwKSB7CisgICAgICAgICAg
ICBlbGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZ3JvdXAtdGl0bGUiKTsKICAgICAgICAg
fQogCiAgICAgICAgIGlmICh0aGlzLmVsZW1lbnRzVHJlZU91dGxpbmUpIHsKQEAgLTc4OCw2ICs3
OTEsMjUgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisgICAgICAgIHZhciB0eXBlU3RyaW5nOwor
ICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkgeworICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuTG9nOgorICAgICAgICAgICAgICAgIHR5cGVT
dHJpbmcgPSAiTG9nIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLk9iamVjdDoKKyAgICAgICAg
ICAgICAgICB0eXBlU3RyaW5nID0gIk9iamVjdCI7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5U
cmFjZToKKyAgICAgICAgICAgICAgICB0eXBlU3RyaW5nID0gIlRyYWNlIjsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXA6CisgICAgICAgICAgICAgICAgdHlwZVN0cmluZyA9ICJT
dGFydCBHcm91cCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5FbmRHcm91cDoKKyAgICAgICAg
ICAgICAgICB0eXBlU3RyaW5nID0gIkVuZCBHcm91cCI7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIHZhciBsZXZlbFN0cmluZzsKICAgICAgICAg
c3dpdGNoICh0aGlzLmxldmVsKSB7CiAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25z
b2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuVGlwOgpAQCAtODAyLDIxICs4MjQsOSBAQCBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgICAgICAgICAgY2FzZSBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yOgogICAgICAgICAgICAg
ICAgIGxldmVsU3RyaW5nID0gIkVycm9yIjsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5PYmpl
Y3Q6Ci0gICAgICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiT2JqZWN0IjsKLSAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VMZXZlbC5UcmFjZToKLSAgICAgICAgICAgICAgICBsZXZlbFN0cmluZyA9ICJUcmFj
ZSI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuU3RhcnRHcm91cDoKLSAgICAgICAgICAgICAg
ICBsZXZlbFN0cmluZyA9ICJTdGFydCBHcm91cCI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwu
RW5kR3JvdXA6Ci0gICAgICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRW5kIEdyb3VwIjsKLSAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBzb3VyY2VT
dHJpbmcgKyAiICIgKyBsZXZlbFN0cmluZyArICI6ICIgKyB0aGlzLmZvcm1hdHRlZE1lc3NhZ2Uu
dGV4dENvbnRlbnQgKyAiXG4iICsgdGhpcy51cmwgKyAiIGxpbmUgIiArIHRoaXMubGluZTsKKyAg
ICAgICAgcmV0dXJuIHNvdXJjZVN0cmluZyArICIgIiArIHR5cGVTdHJpbmcgKyAiICIgKyBsZXZl
bFN0cmluZyArICI6ICIgKyB0aGlzLmZvcm1hdHRlZE1lc3NhZ2UudGV4dENvbnRlbnQgKyAiXG4i
ICsgdGhpcy51cmwgKyAiIGxpbmUgIiArIHRoaXMubGluZTsKICAgICB9LAogCiAgICAgaXNFcXVh
bDogZnVuY3Rpb24obXNnLCBkaXNyZWd1YXJkR3JvdXApCkBAIC04MjUsNiArODM1LDcgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgICAgICB2YXIgcmV0ID0gKHRoaXMuc291cmNlID09IG1zZy5zb3VyY2Up
CisgICAgICAgICAgICAmJiAodGhpcy50eXBlID09IG1zZy50eXBlKQogICAgICAgICAgICAgJiYg
KHRoaXMubGV2ZWwgPT0gbXNnLmxldmVsKQogICAgICAgICAgICAgJiYgKHRoaXMubGluZSA9PSBt
c2cubGluZSkKICAgICAgICAgICAgICYmICh0aGlzLnVybCA9PSBtc2cudXJsKQpAQCAtODQ0LDE1
ICs4NTUsMTkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UgPSB7
CiAgICAgT3RoZXI6IDUKIH0KIAorV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VU
eXBlID0geworICAgIExvZzogMCwKKyAgICBPYmplY3Q6IDEsCisgICAgVHJhY2U6IDIsCisgICAg
U3RhcnRHcm91cDogMywKKyAgICBFbmRHcm91cDogNAorfQorCiBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZUxldmVsID0gewogICAgIFRpcDogMCwKICAgICBMb2c6IDEsCiAgICAg
V2FybmluZzogMiwKLSAgICBFcnJvcjogMywKLSAgICBPYmplY3Q6IDQsCi0gICAgVHJhY2U6IDUs
Ci0gICAgU3RhcnRHcm91cDogNiwKLSAgICBFbmRHcm91cDogNworICAgIEVycm9yOiAzCiB9CiAK
IFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZCA9IGZ1bmN0aW9uKGNvbW1hbmQpCkBAIC04ODMs
NyArODk4LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0ID0gZnVuY3Rpb24o
cmVzdWx0LCBleGNlcHRpb24sIG9yaWdpbmF0aW5nQ29tbWEKICAgICB2YXIgbGluZSA9IChleGNl
cHRpb24gPyByZXN1bHQubGluZSA6IC0xKTsKICAgICB2YXIgdXJsID0gKGV4Y2VwdGlvbiA/IHJl
c3VsdC5zb3VyY2VVUkwgOiBudWxsKTsKIAotICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkpT
LCBsZXZlbCwgbGluZSwgdXJsLCBudWxsLCAxLCBtZXNzYWdlKTsKKyAgICBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVz
c2FnZVNvdXJjZS5KUywgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkxv
ZywgbGV2ZWwsIGxpbmUsIHVybCwgbnVsbCwgMSwgbWVzc2FnZSk7CiAKICAgICB0aGlzLm9yaWdp
bmF0aW5nQ29tbWFuZCA9IG9yaWdpbmF0aW5nQ29tbWFuZDsKIH0KQEAgLTkyMCw3ICs5MzUsNyBA
QCBXZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAg
IHZhciBlbGVtZW50ID0gbXNnLnRvTWVzc2FnZUVsZW1lbnQoKTsKICAgICAgICAgCi0gICAgICAg
IGlmIChtc2cubGV2ZWwgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2
ZWwuU3RhcnRHcm91cCkgeworICAgICAgICBpZiAobXNnLnR5cGUgPT09IFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdyb3VwKSB7CiAgICAgICAgICAgICB0aGlz
Lm1lc3NhZ2VzRWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCB0aGlzLm1l
c3NhZ2VzRWxlbWVudCk7CiAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5fdGl0bGVDbGlja2VkLmJpbmQodGhpcyksIHRydWUpOwogICAgICAgICB9IGVs
c2UKQEAgLTkzMiw3ICs5NDcsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlw
ZSA9IHsKIAogICAgIF90aXRsZUNsaWNrZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAg
ICAgdmFyIGdyb3VwVGl0bGVFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNl
bGZXaXRoQ2xhc3MoImNvbnNvbGUtZ3JvdXAtdGl0bGUtbGV2ZWwiKTsKKyAgICAgICAgdmFyIGdy
b3VwVGl0bGVFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xh
c3MoImNvbnNvbGUtZ3JvdXAtdGl0bGUiKTsKICAgICAgICAgaWYgKGdyb3VwVGl0bGVFbGVtZW50
KSB7CiAgICAgICAgICAgICB2YXIgZ3JvdXBFbGVtZW50ID0gZ3JvdXBUaXRsZUVsZW1lbnQuZW5j
bG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygiY29uc29sZS1ncm91cCIpOwogICAgICAgICAgICAg
aWYgKGdyb3VwRWxlbWVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpp
bmRleCAwNThmMjMyLi44NWQ1Y2QyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlLmpzCkBAIC00ODksNyArNDg5LDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBmbG9vZCB0aGUgQ29uc29sZSB3aXRoIHRv
byBtYW55IHRpcHMuCiAgICAgICAgIC8qCiAgICAgICAgIHZhciBtc2cgPSBuZXcgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291
cmNlLk90aGVyLAotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VMZXZlbC5UaXAsIC0xLCB0aGlzLnVybCwgbnVsbCwgMSwgdGlwLm1lc3NhZ2UpOworICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkxvZywgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5UaXAsIAorICAgICAgICAgICAgLTEs
IHRoaXMudXJsLCBudWxsLCAxLCB0aXAubWVzc2FnZSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5j
b25zb2xlLmFkZE1lc3NhZ2UobXNnKTsKICAgICAgICAgKi8KICAgICB9LApAQCAtNTQ5LDYgKzU1
MCw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5XYXJuaW5ncy5JbmNvcnJlY3RNSU1FVHlwZS5pZDoKICAgICAgICAg
ICAgICAgICBpZiAoIXRoaXMuX21pbWVUeXBlSXNDb25zaXN0ZW50V2l0aFR5cGUoKSkKICAgICAg
ICAgICAgICAgICAgICAgbXNnID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZShXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5PdGhlciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2cs
IAogICAgICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VMZXZlbC5XYXJuaW5nLCAtMSwgdGhpcy51cmwsIG51bGwsIDEsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBTdHJpbmcuc3ByaW50ZihXZWJJbnNwZWN0b3IuV2FybmluZ3MuSW5jb3JyZWN0
TUlNRVR5cGUubWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5UeXBlLnRvU3RyaW5nKHRoaXMudHlwZSksIHRoaXMubWltZVR5cGUpKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggYzE2MjUzMS4uOTI5Y2Fh
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTQ4Myw3
ICs0ODMsNyBAQCBib2R5LmNvbnNvbGUtdmlzaWJsZSAjY29uc29sZSB7CiAgICAgYmFja2dyb3Vu
ZC1pbWFnZTogbm9uZTsKIH0KIAotLmNvbnNvbGUtbWVzc2FnZTo6YmVmb3JlLCAuY29uc29sZS11
c2VyLWNvbW1hbmQ6OmJlZm9yZSwgI2NvbnNvbGUtcHJvbXB0OjpiZWZvcmUsIC5jb25zb2xlLWdy
b3VwLXRpdGxlLWxldmVsOjpiZWZvcmUgeworLmNvbnNvbGUtbWVzc2FnZTo6YmVmb3JlLCAuY29u
c29sZS11c2VyLWNvbW1hbmQ6OmJlZm9yZSwgI2NvbnNvbGUtcHJvbXB0OjpiZWZvcmUsIC5jb25z
b2xlLWdyb3VwLXRpdGxlOjpiZWZvcmUgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBk
aXNwbGF5OiBibG9jazsKICAgICBjb250ZW50OiAiIjsKQEAgLTUyOSwxOCArNTI5LDE4IEBAIGJv
ZHkuY29uc29sZS12aXNpYmxlICNjb25zb2xlIHsKICAgICBtYXJnaW4tbGVmdDogMTZweDsKIH0K
IAotLmNvbnNvbGUtZ3JvdXAtdGl0bGUtbGV2ZWwgeworLmNvbnNvbGUtZ3JvdXAtdGl0bGUgewog
ICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogfQogCi0uY29uc29sZS1ncm91cC10aXRsZS1sZXZlbDo6
YmVmb3JlIHsKKy5jb25zb2xlLWdyb3VwLXRpdGxlOjpiZWZvcmUgewogICAgIGJhY2tncm91bmQt
aW1hZ2U6IHVybChJbWFnZXMvZGlzY2xvc3VyZVRyaWFuZ2xlU21hbGxEb3duLnBuZyk7CiAgICAg
dG9wOiAwLjZlbTsKICAgICB3aWR0aDogMTFweDsKICAgICBoZWlnaHQ6IDEycHg7CiB9CiAKLS5j
b25zb2xlLWdyb3VwLmNvbGxhcHNlZCAuY29uc29sZS1ncm91cC10aXRsZS1sZXZlbDo6YmVmb3Jl
IHsKKy5jb25zb2xlLWdyb3VwLmNvbGxhcHNlZCAuY29uc29sZS1ncm91cC10aXRsZTo6YmVmb3Jl
IHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL2Rpc2Nsb3N1cmVUcmlhbmdsZVNt
YWxsUmlnaHQucG5nKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKaW5kZXggOWQ1YmFjMC4uOTFmMjY1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzCkBAIC05NzksNiArOTc5LDcgQEAgV2ViSW5zcGVjdG9yLmFkZE1lc3NhZ2VU
b0NvbnNvbGUgPSBmdW5jdGlvbihwYXlsb2FkKQogewogICAgIHZhciBjb25zb2xlTWVzc2FnZSA9
IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UoCiAgICAgICAgIHBheWxvYWQuc291cmNl
LAorICAgICAgICBwYXlsb2FkLnR5cGUsCiAgICAgICAgIHBheWxvYWQubGV2ZWwsCiAgICAgICAg
IHBheWxvYWQubGluZSwKICAgICAgICAgcGF5bG9hZC51cmwsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9Eb2NMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmNwcAppbmRl
eCAwNmQ5NmJjLi4wYjcyZjk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIu
Y3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBA
QCB2b2lkIERvY0xvYWRlcjo6cHJpbnRBY2Nlc3NEZW5pZWRNZXNzYWdlKGNvbnN0IEtVUkwmIHVy
bCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgbV9kb2MtPnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCiAgICAgLy8gRklYTUU6IHByb3ZpZGUgYSByZWFsIGxpbmUgbnVtYmVy
IGFuZCBzb3VyY2UgVVJMLgotICAgIGZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFk
ZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
MSwgU3RyaW5nKCkpOworICAgIGZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1l
c3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKIH0KIAogdm9pZCBEb2NMb2FkZXI6OnNldEF1dG9M
b2FkSW1hZ2VzKGJvb2wgZW5hYmxlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAyYWJkNTRmLi4y
OWFhMDE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIHsgfQogCi0gICAgdmlydHVhbCB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQogCiAgICAg
dmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25z
dCBTdHJpbmcmLCBGcmFtZSopIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCA2NWZiOTk1Li4zMjM3OTJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yNDExLDcg
KzI0MTEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIHVybCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1
cm47CiAKLSAgICBmcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiTm90IGFsbG93ZWQgdG8gbG9hZCBsb2Nh
bCByZXNvdXJjZTogIiArIHVybCwgMCwgU3RyaW5nKCkpOworICAgIGZyYW1lLT5kb21XaW5kb3co
KS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCAiTm90IGFsbG93ZWQgdG8gbG9hZCBsb2NhbCByZXNvdXJjZTog
IiArIHVybCwgMCwgU3RyaW5nKCkpOwogfQogCiBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRIaWRl
UmVmZXJyZXIoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQpAQCAtMjYy
OCw3ICsyNjI4LDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKEZy
YW1lKiB0YXJnZXRGcmFtZSkgY29uc3QKICAgICAgICAgICAgIHRhcmdldERvY3VtZW50LT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBhY3RpdmVEb2N1bWVudC0+dXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAKICAgICAgICAgLy8gRklYTUU6IHNob3VsZCB3ZSBwcmludCB0byB0
aGUgY29uc29sZSBvZiB0aGUgYWN0aXZlRnJhbWUgYXMgd2VsbD8KLSAgICAgICAgdGFyZ2V0RnJh
bWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCkpOworICAgICAgICB0YXJnZXRG
cmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCkp
OwogICAgIH0KICAgICAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZTE1
NTc1NC4uOTBmOTVhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisr
KyBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTAzLDcgKzEwMyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wp
ID0gMDsKICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNp
Z25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgPSAwOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
VHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpID0gMDsKICAgICAgICAgdmly
dHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIEZyYW1lKiBmcmFtZSkgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
Y3BwIGIvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCmluZGV4IDFhNjU0YWIuLjllYzQ1NzggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5jcHAKQEAgLTEyOCwxOCArMTI4LDYgQEAgc3RhdGljIHZvaWQgcHJpbnRNZXNzYWdlU291
cmNlQW5kTGV2ZWxQcmVmaXgoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbAogICAg
ICAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVsOgogICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAi
RVJST1IiOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT2JqZWN0TWVzc2FnZUxl
dmVsOgotICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiT0JKRUNUIjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFRyYWNlTWVzc2FnZUxldmVsOgotICAgICAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiVFJBQ0UiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU3RhcnRH
cm91cE1lc3NhZ2VMZXZlbDoKLSAgICAgICAgICAgIGxldmVsU3RyaW5nID0gIlNUQVJUIEdST1VQ
IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEVuZEdyb3VwTWVzc2FnZUxldmVs
OgotICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRU5EIEdST1VQIjsKLSAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICBsZXZlbFN0cmluZyA9ICJVTktOT1dOIjsKQEAgLTE0OSwxNiArMTM3LDE2
IEBAIHN0YXRpYyB2b2lkIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwKICAgICBwcmludGYoIiVzICVzOiIsIHNvdXJjZVN0
cmluZywgbGV2ZWxTdHJpbmcpOwogfQogCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3ZvaWQgQ29u
c29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlz
LT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoc291
cmNlID09IEpTTWVzc2FnZVNvdXJjZSB8fCBzb3VyY2UgPT0gV01MTWVzc2FnZVNvdXJjZSkKLSAg
ICAgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJj
ZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgICAgIHBhZ2Ut
PmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogCi0gICAgcGFnZS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWwsIG1lc3Nh
Z2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHNvdXJjZVVSTCk7CiAKICAgICBpZiAoIUNvbnNvbGU6OnNob3VsZFByaW50RXhj
ZXB0aW9ucygpKQogICAgICAgICByZXR1cm47CkBAIC0xNjksNyArMTU3LDcgQEAgdm9pZCBDb25z
b2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYKICAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgp
KTsKIH0KIAotdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VMZXZlbCBsZXZlbCwgU2Ny
aXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2ssIGJvb2wgYWNjZXB0Tm9Bcmd1bWVudHMpIHsKK3ZvaWQg
Q29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrLCBib29sIGFjY2VwdE5vQXJndW1lbnRzKSB7CiAg
ICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJl
dHVybjsKQEAgLTE4MSw5ICsxNjksOSBAQCB2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2Fn
ZUxldmVsIGxldmVsLCBTY3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaywgYm9vbCBhYwogCiAgICAg
U3RyaW5nIG1lc3NhZ2U7CiAgICAgaWYgKGdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhjYWxsU3Rh
Y2stPnN0YXRlKCksIGxhc3RDYWxsZXIsIG1lc3NhZ2UpKQotICAgICAgICBwYWdlLT5jaHJvbWUo
KS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBsZXZlbCwg
bWVzc2FnZSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuc291cmNlVVJMKCku
cHJldHR5VVJMKCkpOworICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3Nh
Z2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGFzdENh
bGxlci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuc291cmNlVVJMKCkucHJldHR5VVJMKCkpOwog
Ci0gICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpT
TWVzc2FnZVNvdXJjZSwgbGV2ZWwsIGNhbGxTdGFjayk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgdHlwZSwgbGV2
ZWwsIGNhbGxTdGFjayk7CiAKICAgICBpZiAoIUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9u
cygpKQogICAgICAgICByZXR1cm47CkBAIC0yMDcsNyArMTk1LDcgQEAgdm9pZCBDb25zb2xlOjpk
ZWJ1ZyhTY3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKIAogdm9pZCBDb25zb2xlOjplcnJvcihT
Y3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKIHsKLSAgICBhZGRNZXNzYWdlKEVycm9yTWVzc2Fn
ZUxldmVsLCBjYWxsU3RhY2spOworICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUsIEVycm9y
TWVzc2FnZUxldmVsLCBjYWxsU3RhY2spOwogfQogCiB2b2lkIENvbnNvbGU6OmluZm8oU2NyaXB0
Q2FsbFN0YWNrKiBjYWxsU3RhY2spCkBAIC0yMTcsMTIgKzIwNSwxMiBAQCB2b2lkIENvbnNvbGU6
OmluZm8oU2NyaXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiAKIHZvaWQgQ29uc29sZTo6bG9nKFNj
cmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQogewotICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZUxl
dmVsLCBjYWxsU3RhY2spOworICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUsIExvZ01lc3Nh
Z2VMZXZlbCwgY2FsbFN0YWNrKTsKIH0KIAogdm9pZCBDb25zb2xlOjpkaXIoU2NyaXB0Q2FsbFN0
YWNrKiBjYWxsU3RhY2spCiB7Ci0gICAgYWRkTWVzc2FnZShPYmplY3RNZXNzYWdlTGV2ZWwsIGNh
bGxTdGFjayk7CisgICAgYWRkTWVzc2FnZShPYmplY3RNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxl
dmVsLCBjYWxsU3RhY2spOwogfQogCiB2b2lkIENvbnNvbGU6OmRpcnhtbChTY3JpcHRDYWxsU3Rh
Y2sqIGNhbGxTdGFjaykKQEAgLTIzMyw3ICsyMjEsNyBAQCB2b2lkIENvbnNvbGU6OmRpcnhtbChT
Y3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaykKIAogdm9pZCBDb25zb2xlOjp0cmFjZShTY3JpcHRD
YWxsU3RhY2sqIGNhbGxTdGFjaykKIHsKLSAgICBhZGRNZXNzYWdlKFRyYWNlTWVzc2FnZUxldmVs
LCBjYWxsU3RhY2ssIHRydWUpOworICAgIGFkZE1lc3NhZ2UoVHJhY2VNZXNzYWdlVHlwZSwgTG9n
TWVzc2FnZUxldmVsLCBjYWxsU3RhY2ssIHRydWUpOwogCiAgICAgaWYgKCFzaG91bGRQcmludEV4
Y2VwdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjUxLDcgKzIzOSw3IEBAIHZvaWQgQ29u
c29sZTo6YXNzZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBTY3JpcHRDYWxsU3RhY2sqIGNh
bGxTdGFjaykKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IDxodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMzU+IEl0IHdvdWxkIGJlIG5pY2UgdG8gcHJl
Zml4IGFzc2VydGlvbiBmYWlsdXJlcyB3aXRoIGEgbWVzc2FnZSBsaWtlICJBc3NlcnRpb24gZmFp
bGVkOiAiLgotICAgIGFkZE1lc3NhZ2UoRXJyb3JNZXNzYWdlTGV2ZWwsIGNhbGxTdGFjaywgdHJ1
ZSk7CisgICAgYWRkTWVzc2FnZShMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGNh
bGxTdGFjaywgdHJ1ZSk7CiB9CiAKIHZvaWQgQ29uc29sZTo6Y291bnQoU2NyaXB0Q2FsbFN0YWNr
KiBjYWxsU3RhY2spCkBAIC0zNDksNyArMzM3LDcgQEAgdm9pZCBDb25zb2xlOjp0aW1lRW5kKGNv
bnN0IFN0cmluZyYgdGl0bGUsIFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQogICAgIFN0cmlu
ZyBtZXNzYWdlID0gdGl0bGUgKyBTdHJpbmc6OmZvcm1hdCgiOiAlLjBmbXMiLCBlbGFwc2VkKTsK
IAogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYgbGFzdENhbGxlciA9IGNhbGxTdGFjay0+YXQo
MCk7Ci0gICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xl
KEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsYXN0Q2FsbGVyLmxp
bmVOdW1iZXIoKSwgbGFzdENhbGxlci5zb3VyY2VVUkwoKS5zdHJpbmcoKSk7CisgICAgcGFnZS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGFzdENhbGxlci5s
aW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuc291cmNlVVJMKCkuc3RyaW5nKCkpOwogfQogCiB2b2lk
IENvbnNvbGU6Omdyb3VwKFNjcmlwdENhbGxTdGFjayogY2FsbFN0YWNrKQpAQCAtMzcyLDcgKzM2
MCw3IEBAIHZvaWQgQ29uc29sZTo6Z3JvdXBFbmQoKQogCiB2b2lkIENvbnNvbGU6Ondhcm4oU2Ny
aXB0Q2FsbFN0YWNrKiBjYWxsU3RhY2spCiB7Ci0gICAgYWRkTWVzc2FnZShXYXJuaW5nTWVzc2Fn
ZUxldmVsLCBjYWxsU3RhY2spOworICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUsIFdhcm5p
bmdNZXNzYWdlTGV2ZWwsIGNhbGxTdGFjayk7CiB9CiAKIHN0YXRpYyBib29sIHByaW50RXhjZXB0
aW9ucyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaCBiL1dlYkNv
cmUvcGFnZS9Db25zb2xlLmgKaW5kZXggNzkzOTZlYS4uNjRlNTk2ZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCkBAIC01OSwx
NiArNTksMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBPdGhlck1lc3NhZ2VTb3Vy
Y2UKICAgICB9OwogCisgICAgZW51bSBNZXNzYWdlVHlwZSB7CisgICAgICAgIExvZ01lc3NhZ2VU
eXBlLAorICAgICAgICBPYmplY3RNZXNzYWdlVHlwZSwKKyAgICAgICAgVHJhY2VNZXNzYWdlVHlw
ZSwKKyAgICAgICAgU3RhcnRHcm91cE1lc3NhZ2VUeXBlLAorICAgICAgICBFbmRHcm91cE1lc3Nh
Z2VUeXBlCisgICAgfTsKKwogICAgIGVudW0gTWVzc2FnZUxldmVsIHsKICAgICAgICAgVGlwTWVz
c2FnZUxldmVsLAogICAgICAgICBMb2dNZXNzYWdlTGV2ZWwsCiAgICAgICAgIFdhcm5pbmdNZXNz
YWdlTGV2ZWwsCi0gICAgICAgIEVycm9yTWVzc2FnZUxldmVsLAotICAgICAgICAvLyBGSVhNRTog
dGhlIHJlbWFpbmluZyBsZXZlbHMgc2hvdWxkIGJlY29tZSBhIG5ldyBNZXNzYWdlVHlwZSBlbnVt
LgotICAgICAgICBPYmplY3RNZXNzYWdlTGV2ZWwsCi0gICAgICAgIFRyYWNlTWVzc2FnZUxldmVs
LAotICAgICAgICBTdGFydEdyb3VwTWVzc2FnZUxldmVsLAotICAgICAgICBFbmRHcm91cE1lc3Nh
Z2VMZXZlbAorICAgICAgICBFcnJvck1lc3NhZ2VMZXZlbAogICAgIH07CiAKICAgICBjbGFzcyBD
b25zb2xlIDogcHVibGljIFJlZkNvdW50ZWQ8Q29uc29sZT4gewpAQCAtNzgsNyArODEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogICAgICAg
ICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwogCi0gICAgICAgIHZvaWQgYWRkTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOworICAgICAgICB2b2lkIGFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCk7CiAKICAgICAgICAgdm9pZCBkZWJ1ZyhTY3JpcHRDYWxsU3RhY2sqKTsKICAgICAgICAgdm9p
ZCBlcnJvcihTY3JpcHRDYWxsU3RhY2sqKTsKQEAgLTEwOCw3ICsxMTEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBpbmxpbmUgUGFnZSogcGFnZSgpIGNv
bnN0OwotICAgICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZUxldmVsLCBTY3JpcHRDYWxsU3Rh
Y2sqLCBib29sIGFjY2VwdE5vQXJndW1lbnRzID0gZmFsc2UpOworICAgICAgICB2b2lkIGFkZE1l
c3NhZ2UoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgU2NyaXB0Q2FsbFN0YWNrKiwgYm9vbCBh
Y2NlcHROb0FyZ3VtZW50cyA9IGZhbHNlKTsKIAogICAgICAgICBDb25zb2xlKEZyYW1lKik7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggZWIxOTgxYy4uOGU2NGZlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTYz
NCw3ICs2MzQsNyBAQCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RN
ZXNzYWdlVGltZXIqIHQpCiAgICAgICAgIGlmICghdGltZXItPnRhcmdldE9yaWdpbigpLT5pc1Nh
bWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAg
ICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiVW5hYmxlIHRvIHBvc3QgbWVz
c2FnZSB0byAlcy4gUmVjaXBpZW50IGhhcyBvcmlnaW4gJXMuXG4iLCAKICAgICAgICAgICAgICAg
ICB0aW1lci0+dGFyZ2V0T3JpZ2luKCktPnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCAwLCBTdHJpbmcoKSk7CisgICAgICAgICAgICBjb25zb2xlKCktPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsIG1lc3NhZ2UsIDAsIFN0cmluZygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcCBiL1dlYkNv
cmUvcGFnZS9YU1NBdWRpdG9yLmNwcAppbmRleCA2YTA4NTViLi5jNWUyZDQ4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0
b3IuY3BwCkBAIC02Niw3ICs2Niw3IEBAIGJvb2wgWFNTQXVkaXRvcjo6Y2FuRXZhbHVhdGUoY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlKSBjb25zdAogCiAgICAgaWYgKGZpbmRJblJlcXVlc3Qoc291
cmNlQ29kZSkpIHsKICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVN
ZXNzYWdlLCAoIlJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2Ug
Y29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuXG4iKSk7Ci0gICAgICAgIG1fZnJh
bWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0cmluZygpKTsKKyAgICAgICAg
bV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEs
IFN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTg3LDcgKzg3LDcgQEAgYm9vbCBYU1NBdWRpdG9yOjpjYW5Mb2FkRXh0ZXJuYWxTY3Jp
cHRGcm9tU3JjKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogCiAgICAgaWYgKGZpbmRJblJlcXVl
c3QodXJsKSkgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1l
c3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBj
b2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKTsKLSAgICAgICAgbV9mcmFt
ZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVy
cm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwgMSwgU3RyaW5nKCkpOworICAgICAgICBt
X2ZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwgMSwg
U3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVl
OwpAQCAtMTAwLDcgKzEwMCw3IEBAIGJvb2wgWFNTQXVkaXRvcjo6Y2FuTG9hZE9iamVjdChjb25z
dCBTdHJpbmcmIHVybCkgY29uc3QKIAogICAgIGlmIChmaW5kSW5SZXF1ZXN0KHVybCkpIHsKICAg
ICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoIlJlZnVz
ZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQg
Zm91bmQgd2l0aGluIHJlcXVlc3QiKSk7Ci0gICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5j
b25zb2xlKCktPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZl
bCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0cmluZygpKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9tV2lu
ZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0cmluZygpKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgYi9XZWJDb3JlL3N2Zy9T
VkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGQ3MTY5ZTEuLjYxNjQ1ZjQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvV2ViQ29yZS9z
dmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcApAQCAtODksMTMgKzg5LDEzIEBAIHZvaWQgU1ZH
RG9jdW1lbnRFeHRlbnNpb25zOjp1bnBhdXNlQW5pbWF0aW9ucygpCiB2b2lkIFNWR0RvY3VtZW50
RXh0ZW5zaW9uczo6cmVwb3J0V2FybmluZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAg
aWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jLT5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+ZG9tV2lu
ZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2Fn
ZUxldmVsLCAiV2FybmluZzogIiArIG1lc3NhZ2UsIG1fZG9jLT50b2tlbml6ZXIoKSA/IG1fZG9j
LT50b2tlbml6ZXIoKS0+bGluZU51bWJlcigpIDogMSwgU3RyaW5nKCkpOworICAgICAgICBmcmFt
ZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIldhcm5pbmc6ICIgKyBtZXNzYWdlLCBt
X2RvYy0+dG9rZW5pemVyKCkgPyBtX2RvYy0+dG9rZW5pemVyKCktPmxpbmVOdW1iZXIoKSA6IDEs
IFN0cmluZygpKTsKIH0KIAogdm9pZCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnJlcG9ydEVycm9y
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2Mt
PmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJvcjogIiArIG1lc3Nh
Z2UsIG1fZG9jLT50b2tlbml6ZXIoKSA/IG1fZG9jLT50b2tlbml6ZXIoKS0+bGluZU51bWJlcigp
IDogMSwgU3RyaW5nKCkpOworICAgICAgICBmcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+
YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgIkVycm9yOiAiICsgbWVzc2FnZSwgbV9kb2MtPnRva2VuaXplcigpID8gbV9kb2MtPnRv
a2VuaXplcigpLT5saW5lTnVtYmVyKCkgOiAxLCBTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHRG9j
dW1lbnRFeHRlbnNpb25zOjphZGRQZW5kaW5nUmVzb3VyY2UoY29uc3QgQXRvbWljU3RyaW5nJiBp
ZCwgU1ZHU3R5bGVkRWxlbWVudCogb2JqKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MRXJy
b3JIYW5kbGluZy5jcHAgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAppbmRleCBh
MjI4Mjk5Li44N2M4MDAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5n
LmNwcAorKysgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcApAQCAtNjEsNyArNjEs
NyBAQCB2b2lkIHJlcG9ydFdNTEVycm9yKERvY3VtZW50KiBkb2MsIFdNTEVycm9yQ29kZSBlcnJv
cikKICAgICAgICAgaWYgKCFjb25zb2xlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IGNvbnNvbGUtPmFkZE1lc3NhZ2UoV01MTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IGVycm9yTWVzc2FnZSwgMCwgU3RyaW5nKCkpOworICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdl
KFdNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgZXJy
b3JNZXNzYWdlLCAwLCBTdHJpbmcoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3dvcmtlcnMvR2VuZXJpY1dvcmtlclRhc2suaCBiL1dlYkNvcmUvd29ya2Vycy9HZW5lcmljV29y
a2VyVGFzay5oCmluZGV4IDM2MTFmZWEuLmQ2YTk5OTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29y
a2Vycy9HZW5lcmljV29ya2VyVGFzay5oCisrKyBiL1dlYkNvcmUvd29ya2Vycy9HZW5lcmljV29y
a2VyVGFzay5oCkBAIC0zMjgsNiArMzI4LDU2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgUDYgbV9wYXJhbWV0ZXI2OwogICAgICAgICBQNyBtX3BhcmFtZXRlcjc7CiAgICAgfTsKKyAg
ICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwg
dHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlw
ZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5h
bWUgTVA2LCB0eXBlbmFtZSBQNywgdHlwZW5hbWUgTVA3LCB0eXBlbmFtZSBQOCwgdHlwZW5hbWUg
TVA4PgorICAgIGNsYXNzIEdlbmVyaWNXb3JrZXJUYXNrOCA6IHB1YmxpYyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdm9pZCAoKk1l
dGhvZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBN
UDYsIE1QNywgTVA4KTsKKyAgICAgICAgdHlwZWRlZiBHZW5lcmljV29ya2VyVGFzazg8UDEsIE1Q
MSwgUDIsIE1QMiwgUDMsIE1QMywgUDQsIE1QNCwgUDUsIE1QNSwgUDYsIE1QNiwgUDcsIE1QNywg
UDgsIE1QOD4gR2VuZXJpY1dvcmtlclRhc2s7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2Vu
ZXJpY1dvcmtlclRhc2tUcmFpdHM8UDE+OjpQYXJhbVR5cGUgUGFyYW0xOworICAgICAgICB0eXBl
ZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFAyPjo6UGFyYW1UeXBlIFBhcmFt
MjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMz46
OlBhcmFtVHlwZSBQYXJhbTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtl
clRhc2tUcmFpdHM8UDQ+OjpQYXJhbVR5cGUgUGFyYW00OworICAgICAgICB0eXBlZGVmIHR5cGVu
YW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFA1Pjo6UGFyYW1UeXBlIFBhcmFtNTsKKyAgICAg
ICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQNj46OlBhcmFtVHlw
ZSBQYXJhbTY7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFp
dHM8UDc+OjpQYXJhbVR5cGUgUGFyYW03OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVy
aWNXb3JrZXJUYXNrVHJhaXRzPFA4Pjo6UGFyYW1UeXBlIFBhcmFtODsKKyAgICAgICAgCisgICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNXb3JrZXJUYXNrPiBjcmVhdGUoTWV0aG9kIG1l
dGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBwYXJhbWV0ZXIyLCBQYXJhbTMgcGFyYW1l
dGVyMywgUGFyYW00IHBhcmFtZXRlcjQsIFBhcmFtNSBwYXJhbWV0ZXI1LCBQYXJhbTYgcGFyYW1l
dGVyNiwgUGFyYW03IHBhcmFtZXRlcjcsIFBhcmFtOCBwYXJhbWV0ZXI4KQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNXb3JrZXJUYXNrKG1ldGhvZCwg
cGFyYW1ldGVyMSwgcGFyYW1ldGVyMiwgcGFyYW1ldGVyMywgcGFyYW1ldGVyNCwgcGFyYW1ldGVy
NSwgcGFyYW1ldGVyNiwgcGFyYW1ldGVyNywgcGFyYW1ldGVyOCkpOworICAgICAgICB9CisgICAg
ICAgIAorICAgIHByaXZhdGU6CisgICAgICAgIEdlbmVyaWNXb3JrZXJUYXNrOChNZXRob2QgbWV0
aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFyYW0yIHBhcmFtZXRlcjIsIFBhcmFtMyBwYXJhbWV0
ZXIzLCBQYXJhbTQgcGFyYW1ldGVyNCwgUGFyYW01IHBhcmFtZXRlcjUsIFBhcmFtNiBwYXJhbWV0
ZXI2LCBQYXJhbTcgcGFyYW1ldGVyNywgUGFyYW04IHBhcmFtZXRlcjgpCisgICAgICAgIDogbV9t
ZXRob2QobWV0aG9kKQorICAgICAgICAsIG1fcGFyYW1ldGVyMShwYXJhbWV0ZXIxKQorICAgICAg
ICAsIG1fcGFyYW1ldGVyMihwYXJhbWV0ZXIyKQorICAgICAgICAsIG1fcGFyYW1ldGVyMyhwYXJh
bWV0ZXIzKQorICAgICAgICAsIG1fcGFyYW1ldGVyNChwYXJhbWV0ZXI0KQorICAgICAgICAsIG1f
cGFyYW1ldGVyNShwYXJhbWV0ZXI1KQorICAgICAgICAsIG1fcGFyYW1ldGVyNihwYXJhbWV0ZXI2
KQorICAgICAgICAsIG1fcGFyYW1ldGVyNyhwYXJhbWV0ZXI3KQorICAgICAgICAsIG1fcGFyYW1l
dGVyOChwYXJhbWV0ZXI4KQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQorICAgICAgICB7CisgICAgICAgICAgICAoKm1fbWV0aG9kKShjb250ZXh0LCBtX3BhcmFtZXRl
cjEsIG1fcGFyYW1ldGVyMiwgbV9wYXJhbWV0ZXIzLCBtX3BhcmFtZXRlcjQsIG1fcGFyYW1ldGVy
NSwgbV9wYXJhbWV0ZXI2LCBtX3BhcmFtZXRlcjcsIG1fcGFyYW1ldGVyOCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgcHJpdmF0ZToKKyAgICAgICAgTWV0aG9kIG1fbWV0aG9kOworICAgICAg
ICBQMSBtX3BhcmFtZXRlcjE7CisgICAgICAgIFAyIG1fcGFyYW1ldGVyMjsKKyAgICAgICAgUDMg
bV9wYXJhbWV0ZXIzOworICAgICAgICBQNCBtX3BhcmFtZXRlcjQ7CisgICAgICAgIFA1IG1fcGFy
YW1ldGVyNTsKKyAgICAgICAgUDYgbV9wYXJhbWV0ZXI2OworICAgICAgICBQNyBtX3BhcmFtZXRl
cjc7CisgICAgICAgIFA4IG1fcGFyYW1ldGVyODsKKyAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUDEsIHR5cGVuYW1lIE1QMT4KICAgICBQYXNzUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKQEAgLTQxMyw2ICs0NjMsMjEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6
Y29weShwYXJhbWV0ZXI3KSk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5
cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVu
YW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1l
IE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1Q
NywgdHlwZW5hbWUgUDgsIHR5cGVuYW1lIE1QOD4KKyAgICBQYXNzUmVmUHRyPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqbWV0
aG9kKShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1Q
NiwgTVA3LCBNUDgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLCBjb25zdCBQMiYgcGFy
YW1ldGVyMiwgY29uc3QgUDMmIHBhcmFtZXRlcjMsIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LCBjb25z
dCBQNSYgcGFyYW1ldGVyNSwgY29uc3QgUDYmIHBhcmFtZXRlcjYsIGNvbnN0IFA3JiBwYXJhbWV0
ZXI3LCBjb25zdCBQOCYgcGFyYW1ldGVyOCkKKyAgICB7CisgICAgICAgIHJldHVybiBHZW5lcmlj
V29ya2VyVGFzazg8dHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5
cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAyPjo6VHlwZSwgTVAyLCB0eXBlbmFtZSBDcm9zc1Ro
cmVhZENvcGllcjxQMz46OlR5cGUsIE1QMywKKyAgICAgICAgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRD
b3BpZXI8UDQ+OjpUeXBlLCBNUDQsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFA1Pjo6VHlw
ZSwgTVA1LCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQNj46OlR5cGUsIE1QNiwKKyAgICAg
ICAgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDc+OjpUeXBlLCBNUDcsIHR5cGVuYW1lIENy
b3NzVGhyZWFkQ29waWVyPFA4Pjo6VHlwZSwgTVA4Pjo6Y3JlYXRlKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy
b3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwgQ3Jvc3NUaHJlYWRDb3BpZXI8
UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFy
YW1ldGVyMyksIENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jv
c3NUaHJlYWRDb3BpZXI8UDU+Ojpjb3B5KHBhcmFtZXRlcjUpLCBDcm9zc1RocmVhZENvcGllcjxQ
Nj46OmNvcHkocGFyYW1ldGVyNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6Y29weShwYXJh
bWV0ZXI3KSwgQ3Jvc3NUaHJlYWRDb3BpZXI8UDg+Ojpjb3B5KHBhcmFtZXRlcjgpKTsKKyAgICB9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IDliMDE5YjguLjhlOWZiOTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQ29udGV4dC5jcHAKQEAgLTE0Niw5ICsxNDYsOSBAQCB2b2lkIFdvcmtlckNvbnRl
eHQ6OnJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVO
dW1iZXIsCiAgICAgbV90aHJlYWQtPndvcmtlck9iamVjdFByb3h5KCkucG9zdEV4Y2VwdGlvblRv
V29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0KIAot
dm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5h
dGlvbiwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkKK3ZvaWQgV29ya2VyQ29udGV4dDo6YWRkTWVzc2FnZShNZXNzYWdlRGVzdGluYXRpb24gZGVz
dGluYXRpb24sIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgbV90aHJlYWQtPndvcmtlck9iamVjdFBy
b3h5KCkucG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoZGVzdGluYXRpb24sIHNvdXJj
ZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgbV90aHJlYWQt
Pndvcmtlck9iamVjdFByb3h5KCkucG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoZGVz
dGluYXRpb24sIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJj
ZVVSTCk7CiB9CiAKIHZvaWQgV29ya2VyQ29udGV4dDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0
dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFNjcmlwdFN0cmluZyYpCkBAIC0yOTksNyAr
Mjk5LDcgQEAgdm9pZCBXb3JrZXJDb250ZXh0OjppbXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB1cmxzLCBjb25zdCBTdHJpbmcmIGNhbGwKICAgICAgICAgfQogCiAgICAgICAgIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2NyaXB0SW1wb3J0ZWQoc2NyaXB0TG9hZGVyLmlkZW50
aWZpZXIoKSwgc2NyaXB0TG9hZGVyLnNjcmlwdCgpKTsKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5hZGRNZXNzYWdlKEluc3BlY3RvckNvbnRyb2xsZXJEZXN0aW5hdGlvbiwgSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsICJXb3JrZXIgc2NyaXB0IGltcG9ydGVkOiBc
IiIgKyAqaXQgKyAiXCIuIiwgY2FsbGVyTGluZSwgY2FsbGVyVVJMKTsKKyAgICAgICAgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRNZXNzYWdlKEluc3BlY3RvckNvbnRyb2xsZXJEZXN0aW5h
dGlvbiwgSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCAi
V29ya2VyIHNjcmlwdCBpbXBvcnRlZDogXCIiICsgKml0ICsgIlwiLiIsIGNhbGxlckxpbmUsIGNh
bGxlclVSTCk7CiAKICAgICAgICAgU2NyaXB0VmFsdWUgZXhjZXB0aW9uOwogICAgICAgICBtX3Nj
cmlwdC0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShzY3JpcHRMb2FkZXIuc2NyaXB0KCksICpp
dCksICZleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRl
eHQuaCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKaW5kZXggYmNlYzc2OS4uMTZm
NDNmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAorKysgYi9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCkBAIC03NCw3ICs3NCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsKIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlRGVzdGluYXRpb24sIE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRN
ZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXNvdXJjZVJl
dHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBT
Y3JpcHRTdHJpbmcmIHNvdXJjZVN0cmluZyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JpcHRJ
bXBvcnRlZCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3Ry
aW5nKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMDRl
NjFjMS4uYjZlMTY0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3Bw
CkBAIC0yNTUsMTYgKzI1NSwxNiBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhj
ZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZwogICAgIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soV29ya2VyRXhjZXB0aW9uVGFzazo6Y3JlYXRl
KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMLCB0aGlzKSk7CiB9CiAgICAgCi1z
dGF0aWMgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFdvcmtlck1lc3NhZ2luZ1Byb3h5KiBtZXNzYWdpbmdQcm94eSwgTWVzc2FnZURl
c3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMKQorc3RhdGljIHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVGFzayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVz
c2FnaW5nUHJveHksIE1lc3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkKIHsKICAgICBpZiAobWVzc2FnaW5nUHJveHktPmFza2VkVG9UZXJtaW5hdGUoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGNvbnRleHQtPmFkZE1lc3NhZ2UoZGVzdGluYXRpb24sIHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgY29udGV4dC0+YWRk
TWVzc2FnZShkZXN0aW5hdGlvbiwgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51
bWJlciwgc291cmNlVVJMKTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdENv
bnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZURlc3RpbmF0aW9uIGRlc3RpbmF0aW9u
LCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKK3ZvaWQg
V29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KE1l
c3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBp
bnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7Ci0gICAgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soJnBvc3RDb25zb2xl
TWVzc2FnZVRhc2ssIHRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBs
aW5lTnVtYmVyLCBzb3VyY2VVUkwpKTsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBv
c3RUYXNrKGNyZWF0ZUNhbGxiYWNrVGFzaygmcG9zdENvbnNvbGVNZXNzYWdlVGFzaywgdGhpcywg
ZGVzdGluYXRpb24sIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCkpOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJUaHJlYWRD
cmVhdGVkKFBhc3NSZWZQdHI8V29ya2VyVGhyZWFkPiB3b3JrZXJUaHJlYWQpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IDI5OGQ4NjguLmY5ZTFjZDQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC02Myw3ICs2Myw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIG1ldGhvZHMgaW4gdGhlIHdv
cmtlciBjb250ZXh0IHRocmVhZC4pCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRv
V29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVs
Pik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtl
ck9iamVjdChNZXNzYWdlRGVzdGluYXRpb24sIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJP
YmplY3QoTWVzc2FnZURlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjb25maXJtTWVzc2FnZUZy
b21Xb3JrZXJPYmplY3QoYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHdvcmtlckNvbnRleHREZXN0cm95ZWQoKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPYmplY3RQcm94eS5oIGIvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9iamVjdFByb3h5LmgKaW5kZXggYmRiYzJiYi4uYzVmNDQ1NiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9iamVjdFByb3h5LmgKKysrIGIvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9iamVjdFByb3h5LmgKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkgPSAwOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dv
cmtlck9iamVjdChNZXNzYWdlRGVzdGluYXRpb24sIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRv
V29ya2VyT2JqZWN0KE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgY29u
ZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KSA9IDA7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA1OWNhY2JkLi43Mjg0ZjE5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCkBAIC04MDcsNyArODA3LDcgQEAgc3RhdGljIHZvaWQgcmVwb3J0VW5zYWZl
VXNhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtZXMK
ICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBnb29kIHRvIHJlcG9ydCB0
aGUgYmFkIHVzYWdlIHdpdGhvdXQgaW5kaWNhdGluZyB3aGF0IHNvdXJjZSBsaW5lIGl0IGNhbWUg
ZnJvbS4KICAgICAvLyBXZSBzaG91bGQgcGFzcyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgc28gd2Ug
Y2FuIHRlbGwgdGhlIGNvbnNvbGUgd2hlcmUgdGhlIG1pc3Rha2Ugb2NjdXJyZWQuCi0gICAgY29u
dGV4dC0+YWRkTWVzc2FnZShDb25zb2xlRGVzdGluYXRpb24sIEpTTWVzc2FnZVNvdXJjZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKKyAgICBjb250ZXh0LT5hZGRN
ZXNzYWdlKENvbnNvbGVEZXN0aW5hdGlvbiwgSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKIH0KIAogdm9pZCBY
TUxIdHRwUmVxdWVzdDo6c2V0UmVxdWVzdEhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtOTk3LDcgKzk5Nyw3
IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyKQogICAgICAgICBtX3Jlc3BvbnNlVGV4dCArPSBtX2RlY29kZXItPmZsdXNoKCk7
CiAKICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnJlc291cmNlUmV0cmlldmVkQnlYTUxI
dHRwUmVxdWVzdChpZGVudGlmaWVyLCBtX3Jlc3BvbnNlVGV4dCk7Ci0gICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5hZGRNZXNzYWdlKEluc3BlY3RvckNvbnRyb2xsZXJEZXN0aW5hdGlvbiwg
SlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsICJYSFIgZmluaXNoZWQgbG9hZGluZzog
XCIiICsgbV91cmwgKyAiXCIuIiwgbV9sYXN0U2VuZExpbmVOdW1iZXIsIG1fbGFzdFNlbmRVUkwp
OworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShJbnNwZWN0b3JDb250
cm9sbGVyRGVzdGluYXRpb24sIEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIExvZ01l
c3NhZ2VMZXZlbCwgIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyBtX3VybCArICJcIi4iLCBt
X2xhc3RTZW5kTGluZU51bWJlciwgbV9sYXN0U2VuZFVSTCk7CiAKICAgICBib29sIGhhZExvYWRl
ciA9IG1fbG9hZGVyOwogICAgIG1fbG9hZGVyID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3IuY3BwIGIvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKaW5kZXgg
Mzg2NTEyNC4uYTI2ZmU3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5j
cHAKKysrIGIvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKQEAgLTk5LDcgKzk5LDcgQEAg
dm9pZCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwgeG1sRXJy
b3IqIGVycm9yKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY29uc29sZS0+YWRk
TWVzc2FnZShYTUxNZXNzYWdlU291cmNlLCBsZXZlbCwgZXJyb3ItPm1lc3NhZ2UsIGVycm9yLT5s
aW5lLCBlcnJvci0+ZmlsZSk7CisgICAgY29uc29sZS0+YWRkTWVzc2FnZShYTUxNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIGVycm9yLT5tZXNzYWdlLCBlcnJvci0+bGluZSwg
ZXJyb3ItPmZpbGUpOwogfQogCiAvLyBGSVhNRTogVGhlcmUgc2VlbXMgdG8gYmUgbm8gd2F5IHRv
IGNvbnRyb2wgdGhlIGN0eHQgcG9pbnRlciBmb3IgbG9hZGluZyBoZXJlLCB0aHVzIHdlIGhhdmUg
Z2xvYmFscy4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggMWU3MmUxNC4uN2I5N2ZmZCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAw
OS0wNy0wOCAgS2Vpc2hpIEhhdHRvcmkgIDxjYXNleS5oYXR0b3JpQGdtYWlsLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBDb25z
b2xlTWVzc2FnZSB0byBhZGQgTWVzc2FnZVR5cGUgYXR0cmlidXRlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MjUKKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRv
Q29uc29sZSk6CisKIDIwMDktMDctMDcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOGRhYWQxMy4uODhjNjkxNSAxMDA2
NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysg
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC03Myw3ICs3
Myw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wp
OwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFdlYkNvcmU6Ok1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBXZWJDb3JlOjpNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFdl
YkNvcmU6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFdl
YkNvcmU6OlN0cmluZyYgc291cmNlVVJMKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRv
Q29uc29sZShXZWJDb3JlOjpNZXNzYWdlU291cmNlIHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZVR5
cGUgdHlwZSwgV2ViQ29yZTo6TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBXZWJDb3JlOjpTdHJp
bmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBXZWJDb3JlOjpTdHJp
bmcmIHNvdXJjZVVSTCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKCk7CiAgICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBXZWJDb3JlOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSk7
CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDVj
NjRjMzAuLmMwM2Q1NTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFJl
c2l6YWJsZShib29sIGIpCiAgICAgW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdl
YlZpZXc6bV93ZWJWaWV3IHNldFJlc2l6YWJsZTpiXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dl
YlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6
YWRkTWVzc2FnZVRvQ29uc29sZTopOwo=
</data>
<flag name="review"
          id="16929"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>