<?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>99941</bug_id>
          
          <creation_ts>2012-10-21 11:17:16 -0700</creation_ts>
          <short_desc>Web Inspector: Pipe requests through to Inspector in order to add &quot;initiator&quot; links to messages.</short_desc>
          <delta_ts>2012-10-30 09:56:34 -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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>100735</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747137</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-21 11:17:16 -0700</bug_when>
    <thetext>Messages associated with requests can generally be improved by linking to the point at which the message was generated. I had a quick conversation with Pavel about this, he suggested to file a bug to continue the discussion.

As an example, the mixed content warning &quot;The page at XXX displayed insecure content from YYY.&quot; should link off to the element or code snippet that caused the insecure resource to load (see https://mkw.st/p/mixed/ for an example of the current state).  This will be partially resolved with 97979, which adds a call stack when relevant, but won&apos;t help when the resource is loaded by the parser. If no call stack is present, it would make sense to use that space to link to the request&apos;s initiator.

I&apos;ve dug around a bit to see how this might work. The only place I&apos;ve found that creates a console message with a requestID set is the mixed MIME type error from inside the inspector (NetworkManager.js:191). Is there a mechanism to bind requests and console messages together when creating the message from WebCore?

If not, I think the best I can do is to do a &apos;resourceForURL&apos; lookup for every URL I see in the message, which seems error-prone.

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748722</commentid>
    <comment_count>1</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-23 09:26:16 -0700</bug_when>
    <thetext>See ConsoleMessage.cpp:148, it does:

jsonObj-&gt;setNetworkRequestId(m_requestId)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751942</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-26 05:44:20 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; See ConsoleMessage.cpp:148, it does:
&gt; 
&gt; jsonObj-&gt;setNetworkRequestId(m_requestId)

Got it, thanks! At the moment, the only mechanisms to pass a request identifier into the inspector seems to be &apos; InspectorConsoleAgent::didFinishXHRLoading&apos;, &apos;InspectorConsoleAgent::didReceiveResponse&apos;, and &apos;InspectorConsoleAgent::didFailLoading&apos;.

I&apos;d like to expose a new variant of &apos;addMessageToConsole&apos; to allow passing a request identifier in from various other points in WebCore. I&apos;ll spin up a strawman patch for discussion soonish.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752014</commentid>
    <comment_count>3</comment_count>
      <attachid>170919</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-26 07:19:05 -0700</bug_when>
    <thetext>Created attachment 170919
Adding a new &apos;addMessageToConsole&apos; method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752015</commentid>
    <comment_count>4</comment_count>
      <attachid>170919</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-26 07:19:28 -0700</bug_when>
    <thetext>Comment on attachment 170919
Adding a new &apos;addMessageToConsole&apos; method.

Not for landing, but a strawman of how this might look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752017</commentid>
    <comment_count>5</comment_count>
      <attachid>170920</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-26 07:20:08 -0700</bug_when>
    <thetext>Created attachment 170920
How usage might look.

Again, not for landing, but an example of how the new addToConsole method might be useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753147</commentid>
    <comment_count>6</comment_count>
      <attachid>170919</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-29 01:31:00 -0700</bug_when>
    <thetext>Comment on attachment 170919
Adding a new &apos;addMessageToConsole&apos; method.

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

&gt; Source/WebCore/page/Console.h:58
&gt; +    void addMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, const String&amp; sourceURL = String(), unsigned lineNumber = 0, PassRefPtr&lt;ScriptCallStack&gt; = 0, unsigned long identifier = 0);

requestIdentifier?

&gt; Source/WebCore/page/Console.h:60
&gt; +    void addMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, unsigned long identifier, const String&amp; url);

Why do we need this one? Is this convenience method? It sounds like its arguments fall into a subset of the one you are adjusting above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753150</commentid>
    <comment_count>7</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-29 01:33:15 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 170919 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170919&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Console.h:58
&gt; &gt; +    void addMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, const String&amp; sourceURL = String(), unsigned lineNumber = 0, PassRefPtr&lt;ScriptCallStack&gt; = 0, unsigned long identifier = 0);
&gt; 
&gt; requestIdentifier?

Yup. That&apos;s a better name.

&gt; 
&gt; &gt; Source/WebCore/page/Console.h:60
&gt; &gt; +    void addMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, unsigned long identifier, const String&amp; url);
&gt; 
&gt; Why do we need this one? Is this convenience method? It sounds like its arguments fall into a subset of the one you are adjusting above.

Just convenience. It seemed reasonable to have a separate method for resource-related console messages for the same reasons it&apos;s nice to have a separate method for url/line-number and stacktrace messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753154</commentid>
    <comment_count>8</comment_count>
      <attachid>170919</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-29 01:35:21 -0700</bug_when>
    <thetext>Comment on attachment 170919
Adding a new &apos;addMessageToConsole&apos; method.

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

&gt;&gt;&gt; Source/WebCore/page/Console.h:60
&gt;&gt;&gt; +    void addMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, unsigned long identifier, const String&amp; url);
&gt;&gt; 
&gt;&gt; Why do we need this one? Is this convenience method? It sounds like its arguments fall into a subset of the one you are adjusting above.
&gt; 
&gt; Just convenience. It seemed reasonable to have a separate method for resource-related console messages for the same reasons it&apos;s nice to have a separate method for url/line-number and stacktrace messages.

You don&apos;t need another Instrumentation method then - we only want such convenience for the call sites, not inside the inspector guts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753159</commentid>
    <comment_count>9</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-29 01:39:05 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 170919 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170919&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/page/Console.h:60
&gt; &gt;&gt;&gt; +    void addMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, unsigned long identifier, const String&amp; url);
&gt; &gt;&gt; 
&gt; &gt;&gt; Why do we need this one? Is this convenience method? It sounds like its arguments fall into a subset of the one you are adjusting above.
&gt; &gt; 
&gt; &gt; Just convenience. It seemed reasonable to have a separate method for resource-related console messages for the same reasons it&apos;s nice to have a separate method for url/line-number and stacktrace messages.
&gt; 
&gt; You don&apos;t need another Instrumentation method then - we only want such convenience for the call sites, not inside the inspector guts.

You&apos;re right; this would be covered by the new method on Document. I&apos;ll spin a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753194</commentid>
    <comment_count>10</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-29 02:36:50 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 170919 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170919&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebCore/page/Console.h:60
&gt; &gt; &gt;&gt;&gt; +    void addMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, unsigned long identifier, const String&amp; url);
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; Why do we need this one? Is this convenience method? It sounds like its arguments fall into a subset of the one you are adjusting above.
&gt; &gt; &gt; 
&gt; &gt; &gt; Just convenience. It seemed reasonable to have a separate method for resource-related console messages for the same reasons it&apos;s nice to have a separate method for url/line-number and stacktrace messages.
&gt; &gt; 
&gt; &gt; You don&apos;t need another Instrumentation method then - we only want such convenience for the call sites, not inside the inspector guts.
&gt; 
&gt; You&apos;re right; this would be covered by the new method on Document. I&apos;ll spin a new patch.

Actually, now that I look at the Instrumentation code again, I&apos;m not sure I understand your suggestion.

Currently, we have two InspectorInstrumentation::addMessageToConsole methods: one for line numbered messages, and one for stack traces (well, four, since those two are replicated for workers). This patch adds another for request identifiers.

Are you suggesting that those should be combined into one method that accepts all relevant arguments, and decides which ConsoleMessage to construct based upon the given parameters?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753270</commentid>
    <comment_count>11</comment_count>
      <attachid>171204</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-29 04:40:37 -0700</bug_when>
    <thetext>Created attachment 171204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753271</commentid>
    <comment_count>12</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-29 04:42:53 -0700</bug_when>
    <thetext>After a bit of discussion with Pavel (thanks!), I&apos;ve cleaned up this patch, and updated &apos;InspectorConsoleAgent::didFinishXHRLoading&apos;, &apos;InspectorConsoleAgent::didReceiveResponse&apos;, and &apos;InspectorConsoleAgent::didFailLoading&apos; to use the new parameter on &apos;addMessageToConsole&apos; rather than replicating the work themselves. That should test that the existing functionality works as expected.

I&apos;ll repurpose 97979 to use this functionality once it lands, which will still more or less look like https://bugs.webkit.org/attachment.cgi?id=170920.

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753274</commentid>
    <comment_count>13</comment_count>
      <attachid>171204</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-29 04:48:37 -0700</bug_when>
    <thetext>Comment on attachment 171204
Patch

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

&gt; Source/WebCore/dom/ScriptExecutionContext.h:86
&gt; +    void addConsoleMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, const String&amp; sourceURL = String(), unsigned lineNumber = 0, PassRefPtr&lt;ScriptCallStack&gt; = 0, unsigned long requestIdentifier = 0);

Are there any immediate clients for this one?

&gt; Source/WebCore/inspector/InspectorConsoleAgent.cpp:159
&gt; +    String requestId = requestIdentifier ? IdentifiersFactory::requestId(requestIdentifier) : String();

You could push this further and make ConsoleMessage constructor accept unsigned long. You would be able to leave more code below as is then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753284</commentid>
    <comment_count>14</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-29 05:04:35 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 171204 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171204&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ScriptExecutionContext.h:86
&gt; &gt; +    void addConsoleMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, const String&amp; sourceURL = String(), unsigned lineNumber = 0, PassRefPtr&lt;ScriptCallStack&gt; = 0, unsigned long requestIdentifier = 0);
&gt; 
&gt; Are there any immediate clients for this one?

No. I&apos;ll need to do some work in the callers to pipe a request identifier in. I&apos;m happy to drop it from the patch and add it in with a client if that&apos;s something you&apos;d like to see.

&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorConsoleAgent.cpp:159
&gt; &gt; +    String requestId = requestIdentifier ? IdentifiersFactory::requestId(requestIdentifier) : String();
&gt; 
&gt; You could push this further and make ConsoleMessage constructor accept unsigned long. You would be able to leave more code below as is then.

That makes sense. I&apos;ll make this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753302</commentid>
    <comment_count>15</comment_count>
      <attachid>171210</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-29 05:40:38 -0700</bug_when>
    <thetext>Created attachment 171210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753304</commentid>
    <comment_count>16</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-29 05:42:54 -0700</bug_when>
    <thetext>(In reply to comment #14)

&gt; &gt; &gt; Source/WebCore/inspector/InspectorConsoleAgent.cpp:159
&gt; &gt; &gt; +    String requestId = requestIdentifier ? IdentifiersFactory::requestId(requestIdentifier) : String();
&gt; &gt; 
&gt; &gt; You could push this further and make ConsoleMessage constructor accept unsigned long. You would be able to leave more code below as is then.
&gt; 
&gt; That makes sense. I&apos;ll make this change.

I&apos;ve made half of this change. :)  I pushed the IdentifiersFactory::requestId call down into ConsoleMessage (and adjusted it to return an empty string if provided with 0 as an ID to obviate the &apos;if&apos; here). I haven&apos;t, however, reverted the changes to call addMessageToConsole. It makes more sense to me to centralize the logic about which ConsoleMessage to create in that method, rather than spreading it out over these three. These methods generate a message, but I think they should hand off to the existing method to push it to the console.

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754142</commentid>
    <comment_count>17</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-30 03:07:16 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 171204 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171204&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/ScriptExecutionContext.h:86
&gt; &gt; &gt; +    void addConsoleMessage(MessageSource, MessageType, MessageLevel, const String&amp; message, const String&amp; sourceURL = String(), unsigned lineNumber = 0, PassRefPtr&lt;ScriptCallStack&gt; = 0, unsigned long requestIdentifier = 0);
&gt; &gt; 
&gt; &gt; Are there any immediate clients for this one?
&gt; 
&gt; No. I&apos;ll need to do some work in the callers to pipe a request identifier in. I&apos;m happy to drop it from the patch and add it in with a client if that&apos;s something you&apos;d like to see.

There&apos;s now a client of this change in 100735. Would you like me to move the ScriptExecutionContext/Document changes into that patch, or are you ok with landing this patch as-is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754216</commentid>
    <comment_count>18</comment_count>
      <attachid>171210</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-30 04:41:09 -0700</bug_when>
    <thetext>Comment on attachment 171210
Patch

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

&gt; Source/WebCore/inspector/InspectorConsoleAgent.cpp:159
&gt; +    String requestId = requestIdentifier ? IdentifiersFactory::requestId(requestIdentifier) : String();

You don&apos;t need it anymore?

&gt; Source/WebCore/inspector/InspectorConsoleAgent.cpp:167
&gt; +    String requestId = requestIdentifier ? IdentifiersFactory::requestId(requestIdentifier) : String();

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754239</commentid>
    <comment_count>19</comment_count>
      <attachid>171423</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-30 05:20:58 -0700</bug_when>
    <thetext>Created attachment 171423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754240</commentid>
    <comment_count>20</comment_count>
      <attachid>171424</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-30 05:22:16 -0700</bug_when>
    <thetext>Created attachment 171424
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754457</commentid>
    <comment_count>21</comment_count>
      <attachid>171424</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 09:56:29 -0700</bug_when>
    <thetext>Comment on attachment 171424
Patch for landing

Clearing flags on attachment: 171424

Committed r132918: &lt;http://trac.webkit.org/changeset/132918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754459</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 09:56:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170919</attachid>
            <date>2012-10-26 07:19:05 -0700</date>
            <delta_ts>2012-10-29 04:40:28 -0700</delta_ts>
            <desc>Adding a new &apos;addMessageToConsole&apos; method.</desc>
            <filename>0001-Prep.patch</filename>
            <type>text/plain</type>
            <size>13378</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">RnJvbSA2NzM3ZDRlNTk0ZDE5MzVhNDNiYTFiNTI4YmQ1MWFjYTM4ZWM4ZWU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtlIFdlc3QgPG1rd3N0QGNocm9taXVtLm9yZz4KRGF0ZTog
RnJpLCAyNiBPY3QgMjAxMiAxNTowNTowOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBQcmVw
CgotLS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAg
IHwgICAxMyArKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5jcHAgfCAgICA4ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggICB8ICAgIDEgKwogLi4uL2luc3BlY3Rvci9J
bnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggICAgfCAgIDE2ICsrKysrKysrKysrKysr
KysKIC4uLi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIHwg
ICAgNiArKysrKysKIC4uLi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCAgIHwgICAgMyArKysKIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAgICAgICAg
ICAgICAgICAgICAgIHwgICAxNyArKysrKysrKysrKystLS0tLQogU291cmNlL1dlYkNvcmUvcGFn
ZS9Db25zb2xlLmggICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsrLQogOSBmaWxlcyBjaGFu
Z2VkLCA2MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCmluZGV4IDJmMDExYTQuLjYyMjllZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NDg2Miw2ICs0ODYyLDE5IEBAIHZvaWQgRG9jdW1lbnQ6OnBhcnNlRE5TUHJlZmV0Y2hDb250cm9s
SGVhZGVyKGNvbnN0IFN0cmluZyYgZG5zUHJlZmV0Y2hDb250cm9sKQogICAgIG1faGF2ZUV4cGxp
Y2l0bHlEaXNhYmxlZEROU1ByZWZldGNoID0gdHJ1ZTsKIH0KIAordm9pZCBEb2N1bWVudDo6YWRk
TWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxl
dmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgaWYgKCFpc0NvbnRleHRUaHJlYWQoKSkgewor
ICAgICAgICBwb3N0VGFzayhBZGRDb25zb2xlTWVzc2FnZVRhc2s6OmNyZWF0ZShzb3VyY2UsIHR5
cGUsIGxldmVsLCBtZXNzYWdlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
RE9NV2luZG93KiB3aW5kb3cgPSBkb21XaW5kb3coKSkgeworICAgICAgICBpZiAoQ29uc29sZSog
Y29uc29sZSA9IHdpbmRvdy0+Y29uc29sZSgpKQorICAgICAgICAgICAgY29uc29sZS0+YWRkTWVz
c2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBpZGVudGlmaWVyLCB1cmwpOworICAg
IH0KK30KKwogdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQogewogICAgIGlmICghaXNDb250ZXh0VGhy
ZWFkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2VlYTBmMC4uMjAxYmQ1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTExOTQsNiArMTE5NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdDsgLy8gU2FtZSBh
cyBjb21wbGV0ZVVSTCgpIGZvciB0aGUgc2FtZSByZWFzb24gYXMgYWJvdmUuCiAKICAgICB2aXJ0
dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZpcnR1
YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHVybCk7CiAKICAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVtVGltZXJJbnRlcnZh
bCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlQWdlbnQuY3BwCmluZGV4IDllNjIyYzAuLjMwYTI5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0xNjYsNiAr
MTY2LDE0IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwCiAgICAgYWRkQ29uc29sZU1lc3NhZ2Uo
YWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2Us
IHNjcmlwdElkLCBsaW5lTnVtYmVyKSkpOwogfQogCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgaWYgKCFkZXZlbG9w
ZXJFeHRyYXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBTdHJpbmcgcmVxdWVzdElk
ID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7CisgICAgYWRkQ29u
c29sZU1lc3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2
ZWwsIG1lc3NhZ2UsIHVybCwgcmVxdWVzdElkKSkpOworfQorCiBWZWN0b3I8dW5zaWduZWQ+IElu
c3BlY3RvckNvbnNvbGVBZ2VudDo6Y29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50cygpCiB7CiAg
ICAgVmVjdG9yPHVuc2lnbmVkPiByZXN1bHQobV9jb25zb2xlTWVzc2FnZXMuc2l6ZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRl
eCA3ZjQzMzkzLi4wYmYyYjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRz
PiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVy
KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBWZWN0b3I8dW5zaWduZWQ+IGNvbnNv
bGVNZXNzYWdlQXJndW1lbnRDb3VudHMoKTsKIAogICAgIHZvaWQgc3RhcnRUaW1pbmcoY29uc3Qg
U3RyaW5nJiB0aXRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAppbmRleCBmMDQzMjZiLi4xZWQyYjA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUlu
c3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTU1LDYgKzU1LDE0IEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBN
ZXNzYWdlU291CiAjZW5kaWYKIH0KIAoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqIHBhZ2UsIE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCkKK3sKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSkpCisgICAgICAg
IGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlw
ZSwgbGV2ZWwsIG1lc3NhZ2UsIGlkZW50aWZpZXIsIHVybCk7CisjZW5kaWYKK30KKwogI2lmIEVO
QUJMRShXT1JLRVJTKQogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRN
ZXNzYWdlVG9Db25zb2xlKFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQsIE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKQEAgLTcxLDYgKzc5LDE0IEBA
IGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShXb3JrZXJDb250ZXh0KiB3b3JrZXJDCiAgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBs
KGluc3RydW1lbnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNjcmlw
dElkLCBsaW5lTnVtYmVyKTsKICNlbmRpZgogfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyQ29udGV4dCogd29ya2VyQ29u
dGV4dCwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXJsKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yV29ya2VyQ29udGV4dCh3b3JrZXJDb250ZXh0KSkKKyAgICAgICAgYWRkTWVzc2FnZVRv
Q29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVz
c2FnZSwgaWRlbnRpZmllciwgdXJsKTsKKyNlbmRpZgorfQogI2VuZGlmCiAKIGlubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFBhZ2UqIHBhZ2UsIFBhc3NS
ZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiBzdGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggYzljOWU0ZC4uZmE1Y2EwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
QEAgLTk2Nyw2ICs5NjcsMTIgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1l
c3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3QKICAgICAgICAgY29u
c29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3Nh
Z2UsIHNjcmlwdElkLCBsaW5lTnVtYmVyKTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBpZiAoSW5zcGVjdG9yQ29uc29s
ZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JDb25z
b2xlQWdlbnQoKSkKKyAgICAgICAgY29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHNv
dXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGlkZW50aWZpZXIsIHVybCk7Cit9CisKIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBh
cmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFjaykKIHsKICAgICBpZiAo
SW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LT5pbnNwZWN0b3JDb25zb2xlQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBkMWI1Mjc0Li45MDhkY2QyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCkBAIC0xOTgsOSArMTk4LDExIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIGFk
ZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2b2lkIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoUGFnZSosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbGlu
ZU51bWJlcik7CisgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiwgTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsKTsKICNpZiBF
TkFCTEUoV09SS0VSUykKICAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtl
ckNvbnRleHQqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xl
KFdvcmtlckNvbnRleHQqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIpOworICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyQ29udGV4dCos
IE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCk7CiAj
ZW5kaWYKICAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnQoUGFnZSosIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBzdGF0aWMg
dm9pZCBzdGFydENvbnNvbGVUaW1pbmcoRnJhbWUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKQEAg
LTM5MSw2ICszOTMsNyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRv
Q29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3Jp
cHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOworICAgIHN0YXRp
YyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBNZXNz
YWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHN0
YXRpYyB2b2lkIGNvbnNvbGVDb3VudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhc3NSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBz
dGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBG
cmFtZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xl
VGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAK
aW5kZXggOTcxMzM3Ny4uY2MzNzEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC0xMzQs
MTAgKzEzNCwxNSBAQCBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZp
eChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsCiAKIHZvaWQgQ29uc29sZTo6YWRk
TWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxl
dmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2spCiB7Ci0gICAgYWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBt
ZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2FsbFN0YWNrKTsKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwg
dHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOwogfQogCi12
b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
cmwpCit7CisgICAgYWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmws
IDAsIDAsIGlkZW50aWZpZXIpOworfQorCit2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQgbGluZU51bWJl
ciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyKQogewogCiAgICAgaWYgKG11dGVDb3VudCAmJiBzb3VyY2UgIT0gQ29uc29sZUFQ
SU1lc3NhZ2VTb3VyY2UpCkBAIC0xNDcsMTcgKzE1MiwxOSBAQCB2b2lkIENvbnNvbGU6OmFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+Y2hyb21l
KCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1l
c3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVu
dCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHVybCk7CiAKICAgICBpZiAoY2FsbFN0YWNrKQogICAgICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCB0eXBlLCBs
ZXZlbCwgbWVzc2FnZSwgMCwgY2FsbFN0YWNrKTsKKyAgICBlbHNlIGlmIChpZGVudGlmaWVyKQor
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFn
ZSwgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBpZGVudGlmaWVyKTsKICAgICBl
bHNlCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShwYWdlLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1i
ZXIpOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNv
bGUocGFnZSwgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyKTsK
IAogICAgIGlmICghQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHByaW50U291cmNlVVJMQW5kTGluZShzb3VyY2VVUkwsIGxpbmVOdW1iZXIp
OworICAgIHByaW50U291cmNlVVJMQW5kTGluZSh1cmwsIGxpbmVOdW1iZXIpOwogICAgIHByaW50
TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KHNvdXJjZSwgbGV2ZWwpOwogCiAgICAgcHJpbnRm
KCIgJXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCmluZGV4
IDkxNjc5NGUuLjUwMmE3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29s
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCkBAIC01NSw4ICs1NSw5IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25zb2xlPiBjcmVhdGUoRnJhbWUqIGZy
YW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29uc29sZShmcmFtZSkpOyB9CiAgICAgdmlydHVh
bCB+Q29uc29sZSgpOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwgPSBTdHJpbmcoKSwgdW5zaWduZWQgbGluZU51bWJlciA9IDAsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDApOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMID0gU3RyaW5nKCksIHVuc2lnbmVkIGxpbmVOdW1iZXIgPSAw
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIgPSAwKTsKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUs
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4pOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlw
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwpOwogCiAgICAgdm9pZCBkZWJ1ZyhQYXNzUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAgICAgdm9p
ZCBlcnJvcihQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPik7Ci0tIAoxLjcuOS42IChBcHBsZSBHaXQtMzEuMSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170920</attachid>
            <date>2012-10-26 07:20:08 -0700</date>
            <delta_ts>2012-10-29 04:40:32 -0700</delta_ts>
            <desc>How usage might look.</desc>
            <filename>0002-Using-it.patch</filename>
            <type>text/plain</type>
            <size>10230</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">RnJvbSA0N2JjZjAwYTU5MDI0OWQyMGMxMGI3YTE1OGQxZjU3NzEyZjBmYmI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtlIFdlc3QgPG1rd3N0QGNocm9taXVtLm9yZz4KRGF0ZTog
RnJpLCAyNiBPY3QgMjAxMiAxNjoxNjo0NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBVc2lu
ZyBpdC4KCi0tLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAg
ICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tl
ci5jcHAgICAgICB8ICAgMTUgKysrKysrKysrLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TWl4ZWRDb250ZW50Q2hlY2tlci5oICAgICAgICB8ICAgIDYgKysrLS0tCiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwICAgICAgICB8ICAgIDIgKy0KIC4uLi9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgIHwgICAxMCArKysrKy0t
LS0tCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCB8
ICAgIDQgKystLQogNiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDhmMjZhNWQuLjNjODQ2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJl
c28KIAogICAgIEZyYW1lKiB0b3AgPSBtX2ZyYW1lLT50cmVlKCktPnRvcCgpOwogICAgIGlmICh0
b3AgIT0gbV9mcmFtZSkgewotICAgICAgICBpZiAoIWZyYW1lTG9hZGVyKCktPm1peGVkQ29udGVu
dENoZWNrZXIoKS0+Y2FuRGlzcGxheUluc2VjdXJlQ29udGVudCh0b3AtPmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCksIG5ld1JlcXVlc3QudXJsKCkpKSB7CisgICAgICAgIGlmICghZnJhbWVM
b2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5jYW5EaXNwbGF5SW5zZWN1cmVDb250ZW50
KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmV3UmVxdWVzdC51cmwoKSwgaWRl
bnRpZmllcigpKSkgewogICAgICAgICAgICAgY2FuY2VsKCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRl
bnRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2Vy
LmNwcAppbmRleCA3MWZkMmIzLi5kMjFlYzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L01peGVkQ29udGVudENoZWNrZXIuY3BwCkBAIC02NiwxNCArNjYsMTQgQEAgYm9vbCBNaXhlZENv
bnRlbnRDaGVja2VyOjppc01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4sIGNvbnN0IEsKICAgICByZXR1cm4gIVNlY3VyaXR5T3JpZ2luOjppc1NlY3VyZSh1cmwpOwog
fQogCi1ib29sIE1peGVkQ29udGVudENoZWNrZXI6OmNhbkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQo
U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0Citi
b29sIE1peGVkQ29udGVudENoZWNrZXI6OmNhbkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBLVVJMJiB1cmwsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllcikgY29uc3QKIHsKICAgICBpZiAoIWlzTWl4ZWRDb250ZW50KHNlY3VyaXR5T3Jp
Z2luLCB1cmwpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFNldHRpbmdzKiBzZXR0aW5n
cyA9IG1fZnJhbWUtPnNldHRpbmdzKCk7CiAgICAgYm9vbCBhbGxvd2VkID0gY2xpZW50KCktPmFs
bG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dE
aXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQoKSwgc2VjdXJpdHlPcmlnaW4sIHVybCk7Ci0gICAgbG9n
V2FybmluZyhhbGxvd2VkLCAiZGlzcGxheWVkIiwgdXJsKTsKKyAgICBsb2dXYXJuaW5nKGFsbG93
ZWQsICJkaXNwbGF5ZWQiLCB1cmwsIGlkZW50aWZpZXIpOwogCiAgICAgaWYgKGFsbG93ZWQpCiAg
ICAgICAgIGNsaWVudCgpLT5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCk7CkBAIC04MSwxNCAr
ODEsMTQgQEAgYm9vbCBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5EaXNwbGF5SW5zZWN1cmVDb250
ZW50KFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWcKICAgICByZXR1cm4gYWxsb3dlZDsKIH0K
IAotYm9vbCBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5SdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0Citib29sIE1p
eGVkQ29udGVudENoZWNrZXI6OmNhblJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiog
c2VjdXJpdHlPcmlnaW4sIGNvbnN0IEtVUkwmIHVybCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
KSBjb25zdAogewogICAgIGlmICghaXNNaXhlZENvbnRlbnQoc2VjdXJpdHlPcmlnaW4sIHVybCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFt
ZS0+c2V0dGluZ3MoKTsKICAgICBib29sIGFsbG93ZWQgPSBjbGllbnQoKS0+YWxsb3dSdW5uaW5n
SW5zZWN1cmVDb250ZW50KHNldHRpbmdzICYmIHNldHRpbmdzLT5hbGxvd1J1bm5pbmdPZkluc2Vj
dXJlQ29udGVudCgpLCBzZWN1cml0eU9yaWdpbiwgdXJsKTsKLSAgICBsb2dXYXJuaW5nKGFsbG93
ZWQsICJyYW4iLCB1cmwpOworICAgIGxvZ1dhcm5pbmcoYWxsb3dlZCwgInJhbiIsIHVybCwgaWRl
bnRpZmllcik7CiAKICAgICBpZiAoYWxsb3dlZCkKICAgICAgICAgY2xpZW50KCktPmRpZFJ1bklu
c2VjdXJlQ29udGVudChzZWN1cml0eU9yaWdpbiwgdXJsKTsKQEAgLTk2LDEzICs5NiwxNiBAQCBi
b29sIE1peGVkQ29udGVudENoZWNrZXI6OmNhblJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9y
aWdpbiogc2VjdXJpdHlPcmlnaW4sCiAgICAgcmV0dXJuIGFsbG93ZWQ7CiB9CiAKLXZvaWQgTWl4
ZWRDb250ZW50Q2hlY2tlcjo6bG9nV2FybmluZyhib29sIGFsbG93ZWQsIGNvbnN0IFN0cmluZyYg
YWN0aW9uLCBjb25zdCBLVVJMJiB0YXJnZXQpIGNvbnN0Cit2b2lkIE1peGVkQ29udGVudENoZWNr
ZXI6OmxvZ1dhcm5pbmcoYm9vbCBhbGxvd2VkLCBjb25zdCBTdHJpbmcmIGFjdGlvbiwgY29uc3Qg
S1VSTCYgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpIGNvbnN0CiB7CiAgICAgQ29u
c29sZSogY29uc29sZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xl
KCk7CiAgICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgbWVzc2FnZSBub3QgaGF2ZSBhIHNvdXJj
ZSBVUkwgb3IgYSBsaW5lIG51bWJlcj8gd2Via2l0Lm9yZy9iLzk3OTc5CiAgICAgU3RyaW5nIG1l
c3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiJXNUaGUgcGFnZSBhdCAlcyAlcyBpbnNlY3VyZSBjb250
ZW50IGZyb20gJXMuXG4iLAogICAgICAgICAoYWxsb3dlZCA/ICIiIDogIltibG9ja2VkXSAiKSwg
YXNVVEY4KG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKS5kYXRhKCksIGFjdGlvbi51dGY4KCku
ZGF0YSgpLCBhc1VURjgodGFyZ2V0KS5kYXRhKCkpOwotICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uo
SFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBt
ZXNzYWdlKTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgY29uc29sZS0+YWRkTWVzc2Fn
ZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UsIGFjdGlvbiwgaWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBjb25zb2xl
LT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01l
c3NhZ2VMZXZlbCwgbWVzc2FnZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCmluZGV4IGVlN2RhZjYuLjMx
NmY3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVj
a2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaApA
QCAtNDUsMTUgKzQ1LDE1IEBAIGNsYXNzIE1peGVkQ29udGVudENoZWNrZXIgewogcHVibGljOgog
ICAgIE1peGVkQ29udGVudENoZWNrZXIoRnJhbWUqKTsKIAotICAgIGJvb2wgY2FuRGlzcGxheUlu
c2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSBjb25zdDsKLSAgICBi
b29sIGNhblJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSBj
b25zdDsKKyAgICBib29sIGNhbkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4q
LCBjb25zdCBLVVJMJiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIGNvbnN0
OworICAgIGJvb2wgY2FuUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3Qg
S1VSTCYsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBjb25zdDsKIAogcHJp
dmF0ZToKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgaGF2ZSBhIHNlcGFyYXRl
IGNsaWVudCBmcm9tIEZyYW1lTG9hZGVyLgogICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQo
KSBjb25zdDsKIAogICAgIHN0YXRpYyBib29sIGlzTWl4ZWRDb250ZW50KFNlY3VyaXR5T3JpZ2lu
KiwgY29uc3QgS1VSTCYpOwotICAgIHZvaWQgbG9nV2FybmluZyhib29sIGFsbG93ZWQsIGNvbnN0
IFN0cmluZyYgYWN0aW9uLCBjb25zdCBLVVJMJikgY29uc3Q7CisgICAgdm9pZCBsb2dXYXJuaW5n
KGJvb2wgYWxsb3dlZCwgY29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IEtVUkwmLCB1bnNpZ25l
ZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKSBjb25zdDsKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDUw
ZmE1ZTUuLjFhMzNjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcApAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OndpbGxT
ZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291CiAKICAg
ICBBU1NFUlQoIW5ld1JlcXVlc3QuaXNOdWxsKCkpOwogICAgIGlmICghcHJldmlvdXNVUkwuaXNO
dWxsKCkgJiYgcHJldmlvdXNVUkwgIT0gbmV3UmVxdWVzdC51cmwoKSkgewotICAgICAgICBpZiAo
IW1fZG9jdW1lbnRMb2FkZXItPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmNhblJlcXVlc3QobV9y
ZXNvdXJjZS0+dHlwZSgpLCBuZXdSZXF1ZXN0LnVybCgpKSkgeworICAgICAgICBpZiAoIW1fZG9j
dW1lbnRMb2FkZXItPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmNhblJlcXVlc3QobV9yZXNvdXJj
ZS0+dHlwZSgpLCBuZXdSZXF1ZXN0LnVybCgpLCBmYWxzZSwgaWRlbnRpZmllcigpKSkgewogICAg
ICAgICAgICAgY2FuY2VsKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IDE1NjVjNmMuLjljY2YwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtMjUyLDcgKzI1Miw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdE1haW5SZXNvdXJjCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jl
c291cmNlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UsIHJl
cXVlc3QpLmdldCgpKTsKIH0KIAotYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNl
Y3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsKSBj
b25zdAorYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsLCB1bnNpZ25lZCBsb25nIHJl
cXVlc3RJZGVudGlmaWVyKSBjb25zdAogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKQEAgLTI2Niw3ICsyNjYsNyBAQCBib29sIENhY2hlZFJl
c291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBjb25zdAogICAgICAgICAvLyBUaGVzZSByZXNvdXJjZSBjYW4gaW5qZWN0IHNjcmlwdCBp
bnRvIHRoZSBjdXJyZW50IGRvY3VtZW50IChTY3JpcHQsCiAgICAgICAgIC8vIFhTTCkgb3IgZXhm
aWx0cmF0ZSB0aGUgY29udGVudCBvZiB0aGUgY3VycmVudCBkb2N1bWVudCAoQ1NTKS4KICAgICAg
ICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKLSAgICAgICAgICAgIGlmICghZi0+bG9hZGVyKCkt
Pm1peGVkQ29udGVudENoZWNrZXIoKS0+Y2FuUnVuSW5zZWN1cmVDb250ZW50KG1fZG9jdW1lbnQt
PnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCisgICAgICAgICAgICBpZiAoIWYtPmxvYWRlcigpLT5t
aXhlZENvbnRlbnRDaGVja2VyKCktPmNhblJ1bkluc2VjdXJlQ29udGVudChtX2RvY3VtZW50LT5z
ZWN1cml0eU9yaWdpbigpLCB1cmwsIHJlcXVlc3RJZGVudGlmaWVyKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
QEAgLTI4MSw3ICsyODEsNyBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2Vj
dXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdAogICAgICAgICAvLyBU
aGVzZSByZXNvdXJjZXMgY2FuIGNvcnJ1cHQgb25seSB0aGUgZnJhbWUncyBwaXhlbHMuCiAgICAg
ICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsKICAgICAgICAgICAgIEZyYW1lKiB0b3AgPSBm
LT50cmVlKCktPnRvcCgpOwotICAgICAgICAgICAgaWYgKCF0b3AtPmxvYWRlcigpLT5taXhlZENv
bnRlbnRDaGVja2VyKCktPmNhbkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQodG9wLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQorICAgICAgICAgICAgaWYgKCF0b3AtPmxvYWRlcigp
LT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhbkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQodG9wLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwsIHJlcXVlc3RJZGVudGlmaWVyKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBA
IC0yOTcsNyArMjk3LDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3Vy
ZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNv
dXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgZm9yUHJlbG9hZCkKK2Jvb2wg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGZvclByZWxvYWQsIHVuc2lnbmVkIGxvbmcgcmVxdWVz
dElkZW50aWZpZXIpCiB7CiAgICAgaWYgKGRvY3VtZW50KCkgJiYgIWRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCktPmNhbkRpc3BsYXkodXJsKSkgewogICAgICAgICBpZiAoIWZvclByZWxvYWQp
CkBAIC00MDAsNyArNDAwLDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVz
dChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICAvLyBUaGV5
J2xsIHN0aWxsIGdldCBhIHdhcm5pbmcgaW4gdGhlIGNvbnNvbGUgYWJvdXQgQ1NQIGJsb2NraW5n
IHRoZSBsb2FkLgogCiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBjb25zaWRlciBmb3JQcmVsb2Fk
IGhlcmU/Ci0gICAgaWYgKCFjaGVja0luc2VjdXJlQ29udGVudCh0eXBlLCB1cmwpKQorICAgIGlm
ICghY2hlY2tJbnNlY3VyZUNvbnRlbnQodHlwZSwgdXJsLCByZXF1ZXN0SWRlbnRpZmllcikpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCBlMmUyYWU0
Li45NzE5ZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBy
ZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgY2hhcnNldCwgYm9vbCByZWZlcmVuY2VkRnJvbUJvZHkpOwogICAgIHZvaWQgY2hlY2tGb3JQ
ZW5kaW5nUHJlbG9hZHMoKTsKICAgICB2b2lkIHByaW50UHJlbG9hZFN0YXRzKCk7Ci0gICAgYm9v
bCBjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBLVVJMJiwgYm9vbCBmb3JQ
cmVsb2FkID0gZmFsc2UpOworICAgIGJvb2wgY2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlw
ZSwgY29uc3QgS1VSTCYsIGJvb2wgZm9yUHJlbG9hZCA9IGZhbHNlLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIgPSAwKTsKICAgICAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdDsKIApAQCAtMTUyLDcgKzE1Miw3IEBAIHByaXZhdGU6CiAgICAgUmV2
YWxpZGF0aW9uUG9saWN5IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJj
ZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBmb3JQcmVsb2FkLCBDYWNoZWRSZXNvdXJj
ZSogZXhpc3RpbmdSZXNvdXJjZSwgRGVmZXJPcHRpb24pIGNvbnN0OwogICAgIAogICAgIHZvaWQg
bm90aWZ5TG9hZGVkRnJvbU1lbW9yeUNhY2hlKENhY2hlZFJlc291cmNlKik7Ci0gICAgYm9vbCBj
aGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29uc3QgS1VSTCYpIGNv
bnN0OworICAgIGJvb2wgY2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUs
IGNvbnN0IEtVUkwmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpIGNvbnN0OwogCiAgICAgdm9p
ZCBnYXJiYWdlQ29sbGVjdERvY3VtZW50UmVzb3VyY2VzVGltZXJGaXJlZChUaW1lcjxDYWNoZWRS
ZXNvdXJjZUxvYWRlcj4qKTsKICAgICB2b2lkIHBlcmZvcm1Qb3N0TG9hZEFjdGlvbnMoKTsKLS0g
CjEuNy45LjYgKEFwcGxlIEdpdC0zMS4xKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171204</attachid>
            <date>2012-10-29 04:40:37 -0700</date>
            <delta_ts>2012-10-29 05:40:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99941-20121029123903.patch</filename>
            <type>text/plain</type>
            <size>37163</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWIzNzU0NDk4OWQ2MDY3
ZWQ5MDk4MWE1MTcxMDA1NDlhM2JmYzdhZC4uMjM0NTliYTFjNGU2N2NlODhkZDE1Yzk0MDg2ZDc0
YmJkOWYwMGE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTEwLTI5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQXNz
b2NpYXRlIGNvbnNvbGUgbWVzc2FnZXMgd2l0aCB0aGUgcmVxdWVzdHMgdGhhdCBjYXVzZWQgdGhl
bS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGlu
c3BlY3RvciBjdXJyZW50bHkgc3VwcG9ydHMgdGhlIGNvbmNlcHQgb2YgYSByZXF1ZXN0J3MgImlu
aXRpYXRvciIKKyAgICAgICAgaW4gb3JkZXIgdG8gYWRkIGNvbnRleHQgdG8gY29uc29sZSBtZXNz
YWdlcyB0aGF0IGFyZSBnZW5lcmF0ZWQgaW4KKyAgICAgICAgcmVzcG9uc2UgdG8gYSBzcGVjaWZp
YyByZXF1ZXN0LiBUaGUgaW5pdGlhdG9yIGlzIHVzZWQgYXMgdGhlIG1lc3NhZ2UncworICAgICAg
ICBhbmNob3IgbGluayBpZmYgYSByZXF1ZXN0SUQgaXMgcHJlc2VudCwgYW5kIG5vIHN0YWNrIHRy
YWNlIGlzIHByZXNlbnQuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGlzIGZ1bmN0aW9uYWxpdHkg
aXMgb25seSBleHBvc2VkIHRvIHRocmVlIHNwZWNpZmljCisgICAgICAgIGNhbGxzaXRlczogJ0lu
c3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZycsCisgICAgICAgICdJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZScsIGFuZAorICAgICAgICAnSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZycuIFRoaXMgcGF0Y2ggYWRkcyBhIGdl
bmVyaWMKKyAgICAgICAgbWVjaGFuaXNtIHRvIGFzc29jaWF0ZSByZXF1ZXN0cyB3aXRoIGNvbnNv
bGUgbWVzc2FnZXMgYnkgcGFzc2luZyB0aGUKKyAgICAgICAgcmVxdWVzdCdzIGlkZW50aWZpZXIg
dGhyb3VnaCAnU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UnCisgICAg
ICAgIG9yICdDb25zb2xlOjphZGRNZXNzYWdlJyB3aGVuIHJlbGV2YW50LgorCisgICAgICAgIFRo
aXMgcGF0Y2ggc2hvdWxkIGhhdmUgbm8gdmlzaWJsZSBjaGFuZ2VzLiBJdCBqdXN0IGluc3RhbGxz
IHNvbWUgbmV3CisgICAgICAgIHBpcGluZywgYW5kIGFkanVzdHMgdGhlIHRocmVlIG1ldGhvZHMg
bWVudGlvbmVkIGFib3ZlIHRvIHVzZSBpdC4KKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgc2hvdWxk
bid0IGJyZWFrLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKERvY3VtZW50KToKKyAgICAgICAgICAgIEFkZCBhICdyZXF1ZXN0SWRlbnRpZmllcicg
cGFyYW1ldGVyIChkZWZhdWx0aW5nIHRvIDApLCBhbmQgcGlwZSBpdAorICAgICAgICAgICAgdGhy
b3VnaCB0byBDb25zb2xlOjphZGRNZXNzYWdlLgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgICAgICBBZGQg
YSAncmVxdWVzdElkZW50aWZpZXInIHBhcmFtZXRlciAoZGVmYXVsdGluZyB0byAwKSwgYW5kIHBp
cGUgaXQKKyAgICAgICAgICAgIHRocm91Z2ggdG8gdGhlIHN1YmNsYXNzJyBhZGRNZXNzYWdlIG1l
dGhvZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAgKENvbnNvbGVNZXNzYWdlKToKKyAgICAg
ICAgICAgIEFkZCAncmVxdWVzdElkZW50aWZpZXInIChkZWZhdWx0aW5nIHRvIFN0cmluZygpKSB0
byB0aGUKKyAgICAgICAgICAgIENvbnNvbGVNZXNzYWdlIGNvbnN0cnVjdG9yIHRoYXQgYWNjZXB0
cyBhIFNjcmlwdENhbGxTdGFjayAoaXQgd2FzCisgICAgICAgICAgICBhbHJlYWR5IHBhcnQgb2Yg
dGhlIGNvbnN0cnVjdG9yIHRoYXQgYWNjZXB0ZWQgYSBsaW5lIG51bWJlcikuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb25zb2xlQWdlbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAgICAg
QWRkIGEgJ3JlcXVlc3RJZGVudGlmaWVyJyBwYXJhbWV0ZXIgKGRlZmF1bHRpbmcgdG8gMCksIGFu
ZCBwaXBlIGl0CisgICAgICAgICAgICB0aHJvdWdoIHRvIHRoZSAnQ29uc29sZU1lc3NhZ2UnIGNv
bnN0cnVjdG9yIGFmdGVyIGNvbnZlcnRpbmcgaXQgdG8KKyAgICAgICAgICAgIGFuIGludGVybmFs
IGlkZW50aWZpZXIgdmlhICdJZGVudGlmaWVyc0ZhY3Rvcjo6cmVxdWVzdElkJy4KKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZEZhaWxMb2Fk
aW5nKToKKyAgICAgICAgICAgIFVzZSB0aGUgbmV3ICdyZXF1ZXN0SWRlbnRpZmllcicgcGFyYW1l
dGVyIG9uIGFkZE1lc3NhZ2VUb0NvbnNvbGUKKyAgICAgICAgICAgIHJhdGhlciB0aGFuIHJlcGxp
Y2F0aW5nIHRoZSBiZWhhdmlvciBpbiBlYWNoIG9mIHRoZXNlIHRocmVlIG1ldGhvZHMuCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAoSW5zcGVj
dG9yQ29uc29sZUFnZW50KToKKyAgICAgICAgICAgIEFkZCBhICdyZXF1ZXN0SWRlbnRpZmllcicg
cGFyYW1ldGVyIChkZWZhdWx0aW5nIHRvIDApLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNv
bGVJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6
CisgICAgICAgIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAgICAgQWRkIGEg
J3JlcXVlc3RJZGVudGlmaWVyJyBwYXJhbWV0ZXIgKGRlZmF1bHRpbmcgdG8gMCksIGFuZCBwaXBl
IGl0CisgICAgICAgICAgICB0aHJvdWdoIHRvIGxvd2VyIGxldmVscyBvZiB0aGUgc3RhY2suCisg
ICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OmFk
ZE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAgICAoQ29uc29sZSk6
CisgICAgICAgICAgICBBZGQgYSAncmVxdWVzdElkZW50aWZpZXInIHBhcmFtZXRlciAoZGVmYXVs
dGluZyB0byAwKSwgYW5kIHBpcGUgaXQKKyAgICAgICAgICAgIHRocm91Z2ggdG8gJ0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZScuCisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmFk
ZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6YWRkTWVzc2FnZVRv
V29ya2VyQ29uc29sZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAg
ICAgIChXb3JrZXJDb250ZXh0KToKKyAgICAgICAgICAgIEFkZCBhICdyZXF1ZXN0SWRlbnRpZmll
cicgcGFyYW1ldGVyIChkZWZhdWx0aW5nIHRvIDApLCBhbmQgcGlwZSBpdAorICAgICAgICAgICAg
dGhyb3VnaCB0byAnSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xl
Jy4KKwogMjAxMi0xMC0yOSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgTWFrZSByZW5kZXJpbmcgdGFibGVzIHdpdGggPGNvbGdyb3Vwcz4gdHdpY2UgYXMgZmFzdCBi
eSBhdm9pZGluZyB3YWxraW5nIHRoZSBET00gZm9yIGNvbGdyb3VwcyA0IHRpbWVzIGZvciBlYWNo
IGNlbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDM1ZGZjMmJkZjVmNWJiMGU4MzRiZWY2
NGEzNTdiMDZlZTYwZGEzYzIuLjg4Y2E3MTQ2Njk2NTQxMDNiMmIyNjBmYjU1ZmVmYjI5MTBkMjRi
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDg2Miw3ICs0ODYyLDcgQEAgdm9pZCBE
b2N1bWVudDo6cGFyc2VETlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJiBkbnNQ
cmVmZXRjaENvbnRyb2wpCiAgICAgbV9oYXZlRXhwbGljaXRseURpc2FibGVkRE5TUHJlZmV0Y2gg
PSB0cnVlOwogfQogCi12b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIERvY3VtZW50OjphZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFpc0NvbnRl
eHRUaHJlYWQoKSkgewogICAgICAgICBwb3N0VGFzayhBZGRDb25zb2xlTWVzc2FnZVRhc2s6OmNy
ZWF0ZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlKSk7CkBAIC00ODcxLDcgKzQ4NzEsNyBA
QCB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
VHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbAogCiAgICAgaWYgKERPTVdpbmRvdyogd2luZG93ID0g
ZG9tV2luZG93KCkpIHsKICAgICAgICAgaWYgKENvbnNvbGUqIGNvbnNvbGUgPSB3aW5kb3ctPmNv
bnNvbGUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNlLCB0eXBlLCBs
ZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2spOworICAgICAg
ICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBz
b3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzZWVhMGYwZGRhODE4ZDM2MWQwYWUxYmY4
MGYxODg1ZjMwZWE1Mjc0Li4yNTk0YTljMWQ3MzYxMDE0NzBlMTdjOWE3OTQzNTNkZWI0N2E0MTEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE5Myw3ICsxMTkzLDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwoKSBjb25zdDsgLy8gU2FtZSBhcyB1cmwo
KSwgYnV0IG5lZWRlZCBmb3IgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCB0byBpbXBsZW1lbnQgaXQg
d2l0aG91dCBhIHBlcmZvcm1hbmNlIGxvc3MgZm9yIGRpcmVjdCBjYWxscy4KICAgICB2aXJ0dWFs
IEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0OyAvLyBTYW1lIGFz
IGNvbXBsZXRlVVJMKCkgZm9yIHRoZSBzYW1lIHJlYXNvbiBhcyBhYm92ZS4KIAotICAgIHZpcnR1
YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgdmlydHVh
bCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWdu
ZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAKICAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVtVGlt
ZXJJbnRlcnZhbCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHAKaW5kZXggMGY4OGViNjQwYTI5OWMyZmQwZGYwYzE5M2FkNTA2YzEzMGJl
Mzg0Mi4uMzlhM2RjZDYwMzZhZDViYjlmYjVhYTA3MTMxODk1M2M2ZDAzNDE0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMzExLDE0ICsz
MTEsMTQgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBvcnRFeGNlcHRpb24oY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW4KICAgICBtX3BlbmRpbmdFeGNlcHRpb25z
LmNsZWFyKCk7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
dW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
aykKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwg
bGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrKTsKKyAgICBh
ZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51
bWJlciwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKLXZvaWQgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIpCiB7Ci0gICAgYWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBt
ZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2FsbFN0YWNrKTsKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwg
dHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVu
dGlmaWVyKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaAppbmRleCA1MDExMWE0ZmVlYjk4Y2FhMTc3OWRlNTY2MTNiODhmYWNiNDJiZTM2Li4zNDI0
OGY0YzJkYzMzZTEzNGUyYTAwYzJiMzY4NThlZWQzNDI4OGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTgzLDggKzgzLDggQEAgcHVibGljOgog
CiAgICAgYm9vbCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQm
IGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2b2lkIHJlcG9ydEV4Y2VwdGlv
bihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHZvaWQgYWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IFN0cmluZygp
LCB1bnNpZ25lZCBsaW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0g
MCk7Ci0gICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlw
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPik7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMID0gU3RyaW5nKCksIHVuc2lnbmVkIGxpbmVOdW1iZXIgPSAwLCBQYXNz
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlm
aWVyID0gMCk7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwog
CiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgUHVibGljVVJMTWFuYWdlciYgcHVibGljVVJMTWFuYWdl
cigpOwpAQCAtMTg3LDcgKzE4Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBLVVJM
JiB2aXJ0dWFsVVJMKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgS1VSTCB2aXJ0dWFsQ29tcGxl
dGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJl
ciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51
bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyID0gMCkgPSAwOwogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRU
YXJnZXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5l
TnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pID0gMDsKICAgICBib29sIGRpc3Bh
dGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwCmluZGV4IDgwMTc1NTM5MDcwZjdmMzIxY2RmOTVkYjUxOGE5M2VhZWYw
NDM5ZGEuLjU0ZTY5ODI1MGI3MGRjNDFmMzgxODYwOTMzMTdlNGRhNWNmMDgwNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAtNTgsNyArNTgsNyBA
QCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdl
VHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgYwogewogfQogCi1Db25zb2xlTWVzc2FnZTo6Q29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwg
Y29uc3QgU3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQorQ29uc29sZU1lc3NhZ2U6OkNv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVs
IGwsIGNvbnN0IFN0cmluZyYgbSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50
cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0SWQpCiAgICAgOiBtX3NvdXJjZShzKQogICAgICwgbV90eXBlKHQpCiAgICAgLCBtX2xl
dmVsKGwpCkBAIC02Nyw2ICs2Nyw3IEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjCiAgICAgLCBt
X3VybCgpCiAgICAgLCBtX2xpbmUoMCkKICAgICAsIG1fcmVwZWF0Q291bnQoMSkKKyAgICAsIG1f
cmVxdWVzdElkKHJlcXVlc3RJZCkKIHsKICAgICBpZiAoY2FsbFN0YWNrICYmIGNhbGxTdGFjay0+
c2l6ZSgpKSB7CiAgICAgICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYgZnJhbWUgPSBjYWxsU3Rh
Y2stPmF0KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAppbmRl
eCA2NDYxZGI3MjAyNzlhYmI4ZDZjZWIyOGVkNmE5ZTc1MDU3ZmUxNWQzLi43NTg0ZDY2Y2RiMmIz
YmYyMDNhMjljMzgwZTY1ZWVkNTI0MjI4NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Q29uc29sZU1lc3NhZ2UuaApAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBDb25zb2xlTWVzc2FnZSB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29uc29sZU1lc3NhZ2UpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIGNvbnN0IFN0cmluZyYg
dSwgdW5zaWduZWQgbGksIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkID0gU3RyaW5nKCkpOwotICAg
IENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4pOworICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgUGFzc1JlZlB0cjxTY3Jp
cHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIGNvbnN0IFN0cmluZyYg
cmVxdWVzdElkID0gU3RyaW5nKCkpOwogICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3QgU3RyaW5n
JiByZXNwb25zZVVybCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpOwogICAgIH5Db25zb2xlTWVz
c2FnZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25z
b2xlQWdlbnQuY3BwCmluZGV4IDllNjIyYzA0Y2ZkZDY3Yjg5YmMyNTg2ZGJhNjNlOTBhMTI1MTNk
OWIuLmQxMjMwZWM0OTZlYTc0ZDg1N2Y0NDQ1NTAwNmFkYmRkZjAxZTA0ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0x
NTIsMTggKzE1MiwyMCBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y2xlYXJGcm9udGVu
ZCgpCiAgICAgZGlzYWJsZSgmZXJyb3JTdHJpbmcpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNv
bGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBh
c3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJn
dW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ss
IHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFkZXZlbG9wZXJF
eHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBhZGRDb25zb2xlTWVzc2FnZShh
ZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwg
YXJndW1lbnRzLCBjYWxsU3RhY2spKSk7CisgICAgU3RyaW5nIHJlcXVlc3RJZCA9IHJlcXVlc3RJ
ZGVudGlmaWVyID8gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQocmVxdWVzdElkZW50aWZp
ZXIpIDogU3RyaW5nKCk7CisgICAgYWRkQ29uc29sZU1lc3NhZ2UoYWRvcHRQdHIobmV3IENvbnNv
bGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGFyZ3VtZW50cywgY2FsbFN0
YWNrLCByZXF1ZXN0SWQpKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRN
ZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBz
Y3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlcikKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50
OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0
eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0
SWRlbnRpZmllcikKIHsKICAgICBpZiAoIWRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGFkZENvbnNvbGVNZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVz
c2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzY3JpcHRJZCwgbGluZU51bWJlcikp
KTsKKyAgICBTdHJpbmcgcmVxdWVzdElkID0gcmVxdWVzdElkZW50aWZpZXIgPyBJZGVudGlmaWVy
c0ZhY3Rvcnk6OnJlcXVlc3RJZChyZXF1ZXN0SWRlbnRpZmllcikgOiBTdHJpbmcoKTsKKyAgICBh
ZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgc2NyaXB0SWQsIGxpbmVOdW1iZXIsIHJlcXVlc3RJZCkpKTsKIH0K
IAogVmVjdG9yPHVuc2lnbmVkPiBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNvbnNvbGVNZXNzYWdl
QXJndW1lbnRDb3VudHMoKQpAQCAtMjM2LDMyICsyMzgsMzAgQEAgdm9pZCBJbnNwZWN0b3JDb25z
b2xlQWdlbnQ6OmZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyogd2luZG93KQogICAgIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5kaXNjYXJkSW5qZWN0ZWRTY3JpcHRzRm9yKHdpbmRvdyk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRGaW5pc2hYSFJMb2FkaW5nKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
c2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpCit2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5k
TGluZU51bWJlcikKIHsKICAgICBpZiAoIWRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIGlmIChtX2Zyb250ZW5kICYmIG1fc3RhdGUtPmdldEJvb2xlYW4oQ29u
c29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdl
ID0gIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyB1cmwgKyAiXCIuIjsKLSAgICAgICAgU3Ry
aW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIp
OwotICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uo
TmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIG1l
c3NhZ2UsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyLCByZXF1ZXN0SWQpKSk7CisgICAgICAgIGFk
ZE1lc3NhZ2VUb0NvbnNvbGUoTmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBM
b2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyLCByZXF1ZXN0
SWRlbnRpZmllcik7CiAgICAgfQogCiAKIH0KIAotdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6
OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJl
Y2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAoIWRldmVsb3BlckV4dHJhc0VuYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2Rl
KCkgPj0gNDAwKSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIkZhaWxlZCB0byBsb2FkIHJl
c291cmNlOiB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEgc3RhdHVzIG9mICIgKyBTdHJpbmc6
Om51bWJlcihyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKSArICIgKCIgKyByZXNwb25zZS5odHRw
U3RhdHVzVGV4dCgpICsgJyknOwotICAgICAgICBTdHJpbmcgcmVxdWVzdElkID0gSWRlbnRpZmll
cnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7Ci0gICAgICAgIGFkZENvbnNvbGVNZXNz
YWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShOZXR3b3JrTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXNwb25zZS51cmwoKS5z
dHJpbmcoKSwgcmVxdWVzdElkKSkpOworICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKE5ldHdv
cmtNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3Nh
Z2UsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCAwLCByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAg
fQogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkRmFpbExvYWRpbmcodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBpZiAoIWRldmVs
b3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjczLDggKzI3Myw3IEBA
IHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291CiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgi
OiAiKTsKICAgICAgICAgbWVzc2FnZS5hcHBlbmQoZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KSk7CiAgICAgfQotICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJl
cXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcg
Q29uc29sZU1lc3NhZ2UoTmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgbWVzc2FnZS50b1N0cmluZygpLCBlcnJvci5mYWlsaW5nVVJMKCksIHJl
cXVlc3RJZCkpKTsKKyAgICBhZGRNZXNzYWdlVG9Db25zb2xlKE5ldHdvcmtNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UudG9TdHJpbmcoKSwg
ZXJyb3IuZmFpbGluZ1VSTCgpLCAwLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyos
IGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlQWdlbnQuaAppbmRleCA3ZjQzMzkzMTNjMzgxZTE3Mzc3NTE4ODQyZTZiNDI4MjIxZjYw
NGU1Li4xZmU3MTRlNDljZDYxODRjNDNhNDY1NzA0NzM0MTQ5MDljNTY2MWFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC02OCw4
ICs2OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAg
IHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPik7Ci0gICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlcik7CisgICAgdm9pZCBhZGRNZXNzYWdl
VG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4sIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsK
KyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUs
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlw
dElkLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVy
ID0gMCk7CiAgICAgVmVjdG9yPHVuc2lnbmVkPiBjb25zb2xlTWVzc2FnZUFyZ3VtZW50Q291bnRz
KCk7CiAKICAgICB2b2lkIHN0YXJ0VGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpOwpAQCAtNzgs
OSArNzgsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdp
bmRvdyopOwogCi0gICAgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWdu
ZWQgc2VuZExpbmVOdW1iZXIpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlk
RmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9y
Jik7CisgICAgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2ln
bmVkIHNlbmRMaW5lTnVtYmVyKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25l
ZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAg
dm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAg
dm9pZCBhZGRQcm9maWxlRmluaXNoZWRNZXNzYWdlVG9Db25zb2xlKFBhc3NSZWZQdHI8U2NyaXB0
UHJvZmlsZT4sIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsK
ICAgICB2b2lkIGFkZFN0YXJ0UHJvZmlsaW5nTWVzc2FnZVRvQ29uc29sZShjb25zdCBTdHJpbmcm
IHRpdGxlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3Ry
dW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJ
bnN0cnVtZW50YXRpb24uaAppbmRleCBmMDQzMjZiNjlmZDE1YTA0MmE2NTMyMzUwZWNiOTQ2NGFl
Yjk5MGFiLi4wMWI2MGM4ZDM3MDQwYTBmODczODIyYzE3YTUxOTE4YzRjN2NhYWYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5z
dHJ1bWVudGF0aW9uLmgKQEAgLTM5LDM2ICszOSwzNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29u
c29sZShQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2spCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VU
b0NvbnNvbGUoUGFnZSogcGFnZSwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKLSAgICAgICAgYWRkTWVz
c2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc291cmNlLCB0eXBlLCBsZXZl
bCwgbWVzc2FnZSwgYXJndW1lbnRzLCBjYWxsU3RhY2spOworICAgICAgICBhZGRNZXNzYWdlVG9D
b25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNz
YWdlLCBhcmd1bWVudHMsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwogI2VuZGlmCiB9
CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29u
c29sZShQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwgTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBp
bnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKLSAgICAgICAgYWRkTWVzc2FnZVRvQ29u
c29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2Fn
ZSwgc2NyaXB0SWQsIGxpbmVOdW1iZXIpOworICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzY3Jp
cHRJZCwgbGluZU51bWJlciwgcmVxdWVzdElkZW50aWZpZXIpOwogI2VuZGlmCiB9CiAKICNpZiBF
TkFCTEUoV09SS0VSUykKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRk
TWVzc2FnZVRvQ29uc29sZShXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0LCBNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCitpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyQ29udGV4dCogd29y
a2VyQ29udGV4dCwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBp
bnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyQ29udGV4dCh3b3JrZXJDb250ZXh0KSkKLSAgICAg
ICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc291cmNlLCB0
eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRzLCBjYWxsU3RhY2spOworICAgICAgICBhZGRN
ZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxl
dmVsLCBtZXNzYWdlLCBhcmd1bWVudHMsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwog
I2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVz
c2FnZVRvQ29uc29sZShXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0LCBNZXNzYWdlU291cmNl
IHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIp
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNv
bGUoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBs
b25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYg
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5n
QWdlbnRzRm9yV29ya2VyQ29udGV4dCh3b3JrZXJDb250ZXh0KSkKLSAgICAgICAgYWRkTWVzc2Fn
ZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwg
bWVzc2FnZSwgc2NyaXB0SWQsIGxpbmVOdW1iZXIpOworICAgICAgICBhZGRNZXNzYWdlVG9Db25z
b2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdl
LCBzY3JpcHRJZCwgbGluZU51bWJlciwgcmVxdWVzdElkZW50aWZpZXIpOwogI2VuZGlmCiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKaW5kZXggYzljOWU0ZGQwZDQ0MDhlYTg5YzFjZDRmMDRiMjE1NTcxMzEx
YzU0ZS4uMTMyYWRmOWQ2ZmM1Zjg1YzQzNzQ4ZWQ1NTJlNWY3ZGUwMGQzNjA2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKQEAgLTk1MSwyMCArOTUxLDIwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRXcml0ZUhUTUxJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvCiAgICAgICAg
IHRpbWVsaW5lQWdlbnQtPmRpZFdyaXRlSFRNTChlbmRMaW5lKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
VHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFz
c1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNz
YWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBh
cmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAgaWYgKEluc3BlY3RvckNvbnNvbGVBZ2Vu
dCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQ29uc29sZUFn
ZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2Us
IHR5cGUsIGxldmVsLCBtZXNzYWdlLCBhcmd1bWVudHMsIGNhbGxTdGFjayk7CisgICAgICAgIGNv
bnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNz
YWdlLCBhcmd1bWVudHMsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwogI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBk
ZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dCgpKQogICAgICAgICBkZWJ1Z2dlckFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwg
dHlwZSk7CiAjZW5kaWYKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1l
c3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwg
bGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5z
aWduZWQgbGluZU51bWJlcikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNz
YWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAg
aWYgKEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yQ29uc29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+YWRk
TWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzY3JpcHRJZCwg
bGluZU51bWJlcik7CisgICAgICAgIGNvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShz
b3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzY3JpcHRJZCwgbGluZU51bWJlciwgcmVxdWVz
dElkZW50aWZpZXIpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29s
ZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYXNz
UmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gc3RhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggZDFiNTI3NDY2ZDM2ZjBkYmMxOTJiMzhhZWRhOTkxNWJj
YTlkNzQwZi4uZjllMjM2YmEyMzE2ZmNjNmQ2YjUxOWZhNGY2NmYxYmI3Yzk5NjkwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aApAQCAtMTk2LDExICsxOTYsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgd2lsbFdyaXRlSFRNTChEb2N1bWVudCosIHVuc2lnbmVkIGludCBs
ZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpOwogICAgIHN0YXRpYyB2b2lkIGRpZFdyaXRl
SFRNTChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmLCB1bnNpZ25lZCBpbnQg
ZW5kTGluZSk7CiAKLSAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqLCBN
ZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+KTsKLSAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqLCBNZXNz
YWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOworICAgIHN0YXRpYyB2b2lk
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIHVuc2lnbmVkIGxvbmcgcmVxdWVz
dElkZW50aWZpZXIgPSAwKTsKKyAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFBh
Z2UqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICNpZiBFTkFCTEUoV09SS0VSUykKLSAgICBz
dGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckNvbnRleHQqLCBNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBh
c3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsK
LSAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckNvbnRleHQqLCBNZXNz
YWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOworICAgIHN0YXRpYyB2b2lk
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyQ29udGV4dCosIE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKKyAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9D
b25zb2xlKFdvcmtlckNvbnRleHQqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICNlbmRpZgog
ICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudChQYWdlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2b2lkIHN0
YXJ0Q29uc29sZVRpbWluZyhGcmFtZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwpAQCAtMzg5LDgg
KzM4OSw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSB3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50
IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9p
ZCBkaWRXcml0ZUhUTUxJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYs
IHVuc2lnbmVkIGludCBlbmRMaW5lKTsKIAotICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0Nv
bnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlw
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICBzdGF0aWMgdm9p
ZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMg
dm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgc3RhdGljIHZvaWQgYWRk
TWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgbG9uZyByZXF1
ZXN0SWRlbnRpZmllcik7CiAgICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50SW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAg
c3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBG
cmFtZSosIGNvbnN0IFN0cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCA5NzEzMzc3Mjg0YTUzNTQzZmFiOTY2YTMwM2Y4
MWI2NDE0MDExZDNjLi5hOWY5NGI2ZmQxZDIxNjEyMDVmZTUyN2FhOTY2ZjViNTcwOGUxYjk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTEzNCwxMCArMTM0LDEwIEBAIHN0YXRpYyB2b2lk
IHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBN
ZXNzYWdlTGV2ZWwKIAogdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKLSAgICBh
ZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxs
U3RhY2spOworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgU3Ry
aW5nKCksIDAsIGNhbGxTdGFjaywgMCk7CiB9CiAKLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9p
ZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0
eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAKICAgICBp
ZiAobXV0ZUNvdW50ICYmIHNvdXJjZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSkKQEAgLTE0
NywxNyArMTQ3LDE3IEBAIHZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxlCiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3Nh
Z2VUb0NvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291
cmNlVVJMKTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNv
bGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgdXJsKTsKIAogICAg
IGlmIChjYWxsU3RhY2spCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVz
c2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCAwLCBjYWxs
U3RhY2spOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0Nv
bnNvbGUocGFnZSwgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgMCwgY2FsbFN0YWNrLCBy
ZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgZWxzZQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVz
c2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1l
c3NhZ2UsIHVybCwgbGluZU51bWJlciwgcmVxdWVzdElkZW50aWZpZXIpOwogCiAgICAgaWYgKCFD
b25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
cHJpbnRTb3VyY2VVUkxBbmRMaW5lKHNvdXJjZVVSTCwgbGluZU51bWJlcik7CisgICAgcHJpbnRT
b3VyY2VVUkxBbmRMaW5lKHVybCwgbGluZU51bWJlcik7CiAgICAgcHJpbnRNZXNzYWdlU291cmNl
QW5kTGV2ZWxQcmVmaXgoc291cmNlLCBsZXZlbCk7CiAKICAgICBwcmludGYoIiAlc1xuIiwgbWVz
c2FnZS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKaW5kZXggOTE2Nzk0ZWExOTNh
MTU4NTZkYzZlMTU2NDg4MzRkYWRhNTVhN2RhNS4uYzRlMzRkZDk5Y2FhMjBkNmJlNDU5MWE0ZTVh
Njk0ZGMzMTk5NmY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbnNvbGU+IGNyZWF0ZShGcmFtZSogZnJhbWUp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb25zb2xlKGZyYW1lKSk7IH0KICAgICB2aXJ0dWFsIH5D
b25zb2xlKCk7CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCA9IFN0cmluZygpLCB1bnNpZ25lZCBsaW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+ID0gMCk7CisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwgPSBTdHJpbmcoKSwgdW5zaWduZWQgbGluZU51bWJlciA9IDAsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50
aWZpZXIgPSAwKTsKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4pOwogCiAgICAgdm9pZCBkZWJ1ZyhQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmNwcAppbmRleCBkNjkzMWNmZWM5MGU4ZDIyYTE3MmViODIxMjdlMDAwYzdj
NTcwOWFlLi43ZTgyNDJkODc1YjViYmQ3OGUyZDliZjAxYjFhMmY4ZmFhZjE2MDZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKQEAgLTI3OSwyMyArMjc5LDIzIEBA
IHZvaWQgV29ya2VyQ29udGV4dDo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpCiAgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1By
b3h5KCkucG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGVycm9yTWVzc2FnZSwgbGluZU51bWJl
ciwgc291cmNlVVJMKTsKIH0KIAotdm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIFdv
cmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaywgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsK
ICAgICBpZiAoIWlzQ29udGV4dFRocmVhZCgpKSB7CiAgICAgICAgIHBvc3RUYXNrKEFkZENvbnNv
bGVNZXNzYWdlVGFzazo6Y3JlYXRlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5nUHJveHko
KS5wb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChzb3VyY2UsIHR5cGUsIGxldmVsLCBt
ZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwotICAgIGFkZE1lc3NhZ2VUb1dvcmtlckNv
bnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVy
LCBjYWxsU3RhY2spOworICAgIGFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoc291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ssIHJlcXVl
c3RJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlVG9Xb3Jr
ZXJDb25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2spCit2b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoTWVz
c2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQg
bGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgdW5zaWdu
ZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoaXNDb250ZXh0VGhyZWFk
KCkpOwogICAgIGlmIChjYWxsU3RhY2spCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6YWRkTWVzc2FnZVRvQ29uc29sZSh0aGlzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdl
LCAwLCBjYWxsU3RhY2spOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1l
c3NhZ2VUb0NvbnNvbGUodGhpcywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgMCwgY2Fs
bFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgZWxzZQotICAgICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUodGhpcywgc291cmNlLCB0eXBlLCBs
ZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKKyAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHRoaXMsIHNvdXJjZSwgdHlwZSwg
bGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgcmVxdWVzdElkZW50aWZpZXIp
OwogfQogCiBib29sIFdvcmtlckNvbnRleHQ6OmlzQ29udGV4dFRocmVhZCgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCmluZGV4IDk4NDFhNWUxZDI1NmI1YmFmYjM5
NzBkY2ZmMzA0YTEzZGVkY2IyNzYuLjQ4N2Y3NmM2YzUzNGM2ZWQyYTE1MmRlNmUwOTg0ZjZiMDAz
NGQyZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCkBAIC0xNDUsNyAr
MTQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGFwcGx5Q29udGVudFNl
Y3VyaXR5UG9saWN5RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPik7Ci0gICAgICAgIHZvaWQgYWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgICAgICB2b2lkIGFkZE1lc3NhZ2VUb1dvcmtlckNv
bnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJl
ciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyID0gMCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIHsgcmVmKCk7IH0KQEAgLTE1OSw3ICsxNTksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgp
IGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0
cmluZyYpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAp
OwogCiAgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171210</attachid>
            <date>2012-10-29 05:40:38 -0700</date>
            <delta_ts>2012-10-30 05:20:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99941-20121029133904.patch</filename>
            <type>text/plain</type>
            <size>40892</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWIzNzU0NDk4OWQ2MDY3
ZWQ5MDk4MWE1MTcxMDA1NDlhM2JmYzdhZC4uNjBlZTc3MDIzMmQzYzU3MTY0OGJkNDFjZDQ1YjNl
YzUyZjc1ZWQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTEwLTI5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQXNz
b2NpYXRlIGNvbnNvbGUgbWVzc2FnZXMgd2l0aCB0aGUgcmVxdWVzdHMgdGhhdCBjYXVzZWQgdGhl
bS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGlu
c3BlY3RvciBjdXJyZW50bHkgc3VwcG9ydHMgdGhlIGNvbmNlcHQgb2YgYSByZXF1ZXN0J3MgImlu
aXRpYXRvciIKKyAgICAgICAgaW4gb3JkZXIgdG8gYWRkIGNvbnRleHQgdG8gY29uc29sZSBtZXNz
YWdlcyB0aGF0IGFyZSBnZW5lcmF0ZWQgaW4KKyAgICAgICAgcmVzcG9uc2UgdG8gYSBzcGVjaWZp
YyByZXF1ZXN0LiBUaGUgaW5pdGlhdG9yIGlzIHVzZWQgYXMgdGhlIG1lc3NhZ2UncworICAgICAg
ICBhbmNob3IgbGluayBpZmYgYSByZXF1ZXN0SUQgaXMgcHJlc2VudCwgYW5kIG5vIHN0YWNrIHRy
YWNlIGlzIHByZXNlbnQuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGlzIGZ1bmN0aW9uYWxpdHkg
aXMgb25seSBleHBvc2VkIHRvIHRocmVlIHNwZWNpZmljCisgICAgICAgIGNhbGxzaXRlczogJ0lu
c3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZycsCisgICAgICAgICdJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZScsIGFuZAorICAgICAgICAnSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZycuIFRoaXMgcGF0Y2ggYWRkcyBhIGdl
bmVyaWMKKyAgICAgICAgbWVjaGFuaXNtIHRvIGFzc29jaWF0ZSByZXF1ZXN0cyB3aXRoIGNvbnNv
bGUgbWVzc2FnZXMgYnkgcGFzc2luZyB0aGUKKyAgICAgICAgcmVxdWVzdCdzIGlkZW50aWZpZXIg
dGhyb3VnaCAnU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UnCisgICAg
ICAgIG9yICdDb25zb2xlOjphZGRNZXNzYWdlJyB3aGVuIHJlbGV2YW50LgorCisgICAgICAgIFRo
aXMgcGF0Y2ggc2hvdWxkIGhhdmUgbm8gdmlzaWJsZSBjaGFuZ2VzLiBJdCBqdXN0IGluc3RhbGxz
IHNvbWUgbmV3CisgICAgICAgIHBpcGluZywgYW5kIGFkanVzdHMgdGhlIHRocmVlIG1ldGhvZHMg
bWVudGlvbmVkIGFib3ZlIHRvIHVzZSBpdC4KKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgc2hvdWxk
bid0IGJyZWFrLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKERvY3VtZW50KToKKyAgICAgICAgICAgIEFkZCBhICdyZXF1ZXN0SWRlbnRpZmllcicg
cGFyYW1ldGVyIChkZWZhdWx0aW5nIHRvIDApLCBhbmQgcGlwZSBpdAorICAgICAgICAgICAgdGhy
b3VnaCB0byBDb25zb2xlOjphZGRNZXNzYWdlLgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgICAgICBBZGQg
YSAncmVxdWVzdElkZW50aWZpZXInIHBhcmFtZXRlciAoZGVmYXVsdGluZyB0byAwKSwgYW5kIHBp
cGUgaXQKKyAgICAgICAgICAgIHRocm91Z2ggdG8gdGhlIHN1YmNsYXNzJyBhZGRNZXNzYWdlIG1l
dGhvZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgICAgIEFj
Y2VwdCBhbiB1bnNpZ25lZCBsb25nIGluc3RlYWQgb2YgYSBzdHJpbmcsIGFuZCBtb3ZlIHRoZSBj
b252ZXJzaW9uCisgICAgICAgICAgICBmcm9tIFdlYkNvcmUgcmVxdWVzdCBpZGVudGlmaWVycyB0
byBJbnNwZWN0b3IgcmVxdWVzdCBpZGVudGlmaWVycworICAgICAgICAgICAgaW50byBDb25zb2xl
TWVzc2FnZS4KKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAg
KENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgICAgIEFkZCAncmVxdWVzdElkZW50aWZpZXInIChk
ZWZhdWx0aW5nIHRvIDApIHRvIHRoZQorICAgICAgICAgICAgQ29uc29sZU1lc3NhZ2UgY29uc3Ry
dWN0b3IgdGhhdCBhY2NlcHRzIGEgU2NyaXB0Q2FsbFN0YWNrIChpdCB3YXMKKyAgICAgICAgICAg
IGFscmVhZHkgcGFydCBvZiB0aGUgY29uc3RydWN0b3IgdGhhdCBhY2NlcHRlZCBhIGxpbmUgbnVt
YmVyKS4KKyAgICAgICAgKiBpbnNwZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKToKKyAgICAgICAgICAg
IElmIHRoZSBwcm92aWRlZCByZXF1ZXN0IGlkZW50aWZpZXIgaXMgMCwgcmV0dXJuIGFuIGVtcHR5
IHN0cmluZy4KKyAgICAgICAgICAgIFRoaXMgc2ltcGxpZmllcyB0aGUgbG9naWMgYXQgdGhlIGNh
bGxzaXRlLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25z
b2xlKToKKyAgICAgICAgICAgIEFkZCBhICdyZXF1ZXN0SWRlbnRpZmllcicgcGFyYW1ldGVyIChk
ZWZhdWx0aW5nIHRvIDApLCBhbmQgcGlwZSBpdAorICAgICAgICAgICAgdGhyb3VnaCB0byB0aGUg
J0NvbnNvbGVNZXNzYWdlJyBjb25zdHJ1Y3RvciBhZnRlciBjb252ZXJ0aW5nIGl0IHRvCisgICAg
ICAgICAgICBhbiBpbnRlcm5hbCBpZGVudGlmaWVyIHZpYSAnSWRlbnRpZmllcnNGYWN0b3I6OnJl
cXVlc3RJZCcuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZEZp
bmlzaFhIUkxvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29s
ZUFnZW50OjpkaWRGYWlsTG9hZGluZyk6CisgICAgICAgICAgICBVc2UgdGhlIG5ldyAncmVxdWVz
dElkZW50aWZpZXInIHBhcmFtZXRlciBvbiBhZGRNZXNzYWdlVG9Db25zb2xlCisgICAgICAgICAg
ICByYXRoZXIgdGhhbiByZXBsaWNhdGluZyB0aGUgYmVoYXZpb3IgaW4gZWFjaCBvZiB0aGVzZSB0
aHJlZSBtZXRob2RzLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQu
aDoKKyAgICAgICAgKEluc3BlY3RvckNvbnNvbGVBZ2VudCk6CisgICAgICAgICAgICBBZGQgYSAn
cmVxdWVzdElkZW50aWZpZXInIHBhcmFtZXRlciAoZGVmYXVsdGluZyB0byAwKS4KKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uKToK
KyAgICAgICAgICAgIEFkZCBhICdyZXF1ZXN0SWRlbnRpZmllcicgcGFyYW1ldGVyIChkZWZhdWx0
aW5nIHRvIDApLCBhbmQgcGlwZSBpdAorICAgICAgICAgICAgdGhyb3VnaCB0byBsb3dlciBsZXZl
bHMgb2YgdGhlIHN0YWNrLgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb25zb2xlOjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuaDoK
KyAgICAgICAgKENvbnNvbGUpOgorICAgICAgICAgICAgQWRkIGEgJ3JlcXVlc3RJZGVudGlmaWVy
JyBwYXJhbWV0ZXIgKGRlZmF1bHRpbmcgdG8gMCksIGFuZCBwaXBlIGl0CisgICAgICAgICAgICB0
aHJvdWdoIHRvICdJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUn
LgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNv
bnRleHQ6OmFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyQ29udGV4dC5oOgorICAgICAgICAoV29ya2VyQ29udGV4dCk6CisgICAgICAgICAgICBBZGQg
YSAncmVxdWVzdElkZW50aWZpZXInIHBhcmFtZXRlciAoZGVmYXVsdGluZyB0byAwKSwgYW5kIHBp
cGUgaXQKKyAgICAgICAgICAgIHRocm91Z2ggdG8gJ0luc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZScuCisKIDIwMTItMTAtMjkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgcmVuZGVyaW5nIHRhYmxlcyB3aXRoIDxjb2xncm91
cHM+IHR3aWNlIGFzIGZhc3QgYnkgYXZvaWRpbmcgd2Fsa2luZyB0aGUgRE9NIGZvciBjb2xncm91
cHMgNCB0aW1lcyBmb3IgZWFjaCBjZWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAzNWRm
YzJiZGY1ZjViYjBlODM0YmVmNjRhMzU3YjA2ZWU2MGRhM2MyLi44OGNhNzE0NjY5NjU0MTAzYjJi
MjYwZmI1NWZlZmIyOTEwZDI0YmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ4NjIs
NyArNDg2Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnBhcnNlRE5TUHJlZmV0Y2hDb250cm9sSGVhZGVy
KGNvbnN0IFN0cmluZyYgZG5zUHJlZmV0Y2hDb250cm9sKQogICAgIG1faGF2ZUV4cGxpY2l0bHlE
aXNhYmxlZEROU1ByZWZldGNoID0gdHJ1ZTsKIH0KIAotdm9pZCBEb2N1bWVudDo6YWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQor
dm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5
cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQog
ewogICAgIGlmICghaXNDb250ZXh0VGhyZWFkKCkpIHsKICAgICAgICAgcG9zdFRhc2soQWRkQ29u
c29sZU1lc3NhZ2VUYXNrOjpjcmVhdGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSkpOwpA
QCAtNDg3MSw3ICs0ODcxLDcgQEAgdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGwKIAogICAgIGlmIChE
T01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7CiAgICAgICAgIGlmIChDb25zb2xlKiBj
b25zb2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNz
YWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwg
Y2FsbFN0YWNrKTsKKyAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ssIHJlcXVl
c3RJZGVudGlmaWVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2VlYTBm
MGRkYTgxOGQzNjFkMGFlMWJmODBmMTg4NWYzMGVhNTI3NC4uMjU5NGE5YzFkNzM2MTAxNDcwZTE3
YzlhNzk0MzUzZGViNDdhNDExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExOTMsNyArMTE5
Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29u
c3Q7IC8vIFNhbWUgYXMgdXJsKCksIGJ1dCBuZWVkZWQgZm9yIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgdG8gaW1wbGVtZW50IGl0IHdpdGhvdXQgYSBwZXJmb3JtYW5jZSBsb3NzIGZvciBkaXJlY3Qg
Y2FsbHMuCiAgICAgdmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcm
KSBjb25zdDsgLy8gU2FtZSBhcyBjb21wbGV0ZVVSTCgpIGZvciB0aGUgc2FtZSByZWFzb24gYXMg
YWJvdmUuCiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4pOworICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogCiAgICAgdmlydHVh
bCBkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IDBmODhlYjY0MGEyOTljMmZk
MGRmMGMxOTNhZDUwNmMxMzBiZTM4NDIuLjM5YTNkY2Q2MDM2YWQ1YmI5ZmI1YWEwNzEzMTg5NTNj
NmQwMzQxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAKQEAgLTMxMSwxNCArMzExLDE0IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluCiAgICAg
bV9wZW5kaW5nRXhjZXB0aW9ucy5jbGVhcigpOwogfQogCi12b2lkIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBj
YWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7Ci0gICAgYWRkTWVz
c2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIs
IGNhbGxTdGFjayk7CisgICAgYWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdl
LCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwog
fQogCi12b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
aykKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewotICAgIGFkZE1lc3NhZ2Uoc291
cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjayk7CisgICAg
YWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2Fs
bFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggNTAxMTFhNGZlZWI5OGNhYTE3NzlkZTU2NjEz
Yjg4ZmFjYjQyYmUzNi4uMzQyNDhmNGMyZGMzM2UxMzRlMmEwMGMyYjM2ODU4ZWVkMzQyODhiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC04Myw4
ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAg
dm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+KTsKLSAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwgPSBTdHJpbmcoKSwgdW5zaWduZWQgbGluZU51bWJlciA9IDAsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiA9IDApOwotICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IFN0cmluZygpLCB1bnNpZ25lZCBs
aW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIHVuc2lnbmVkIGxvbmcgcmVxdWVz
dElkZW50aWZpZXIgPSAwKTsKIAogI2lmIEVOQUJMRShCTE9CKQogICAgIFB1YmxpY1VSTE1hbmFn
ZXImIHB1YmxpY1VSTE1hbmFnZXIoKTsKQEAgLTE4Nyw3ICsxODcsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKIAotICAg
IHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKICAgICB2aXJ0dWFsIEV2ZW50
VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNl
cHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KSA9
IDA7CiAgICAgYm9vbCBkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA4MDE3NTUzOTA3MGY3ZjMy
MWNkZjk1ZGI1MThhOTNlYWVmMDQzOWRhLi5iZGVhOTc3MGZlYzVkMzkwMzIyMGViNjQ3NTFiZTRi
MGFlZTIyMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1l
c3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5j
cHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgogCiAjaW5j
bHVkZSAiQ29uc29sZS5oIgorI2luY2x1ZGUgIklkZW50aWZpZXJzRmFjdG9yeS5oIgogI2luY2x1
ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKQEAgLTQ2LDcgKzQ3LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1Db25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBt
LCBjb25zdCBTdHJpbmcmIHUsIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkK
K0NvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VU
eXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0sIGNvbnN0IFN0cmluZyYgdSwg
dW5zaWduZWQgbGksIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiAgICAgOiBtX3Nv
dXJjZShzKQogICAgICwgbV90eXBlKHQpCiAgICAgLCBtX2xldmVsKGwpCkBAIC01NCwxMSArNTUs
MTEgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVz
c2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGMKICAgICAsIG1fdXJsKHUpCiAgICAgLCBtX2xp
bmUobGkpCiAgICAgLCBtX3JlcGVhdENvdW50KDEpCi0gICAgLCBtX3JlcXVlc3RJZChyZXF1ZXN0
SWQpCisgICAgLCBtX3JlcXVlc3RJZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChyZXF1
ZXN0SWRlbnRpZmllcikpCiB7CiB9CiAKLUNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJp
bmcmIG0sIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCitDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3Qg
U3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyKQogICAgIDogbV9zb3VyY2UocykKICAgICAsIG1fdHlwZSh0KQogICAgICwgbV9sZXZl
bChsKQpAQCAtNjcsNiArNjgsNyBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgYwogICAgICwgbV91
cmwoKQogICAgICwgbV9saW5lKDApCiAgICAgLCBtX3JlcGVhdENvdW50KDEpCisgICAgLCBtX3Jl
cXVlc3RJZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChyZXF1ZXN0SWRlbnRpZmllcikp
CiB7CiAgICAgaWYgKGNhbGxTdGFjayAmJiBjYWxsU3RhY2stPnNpemUoKSkgewogICAgICAgICBj
b25zdCBTY3JpcHRDYWxsRnJhbWUmIGZyYW1lID0gY2FsbFN0YWNrLT5hdCgwKTsKQEAgLTc2LDcg
Kzc4LDcgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugcywg
TWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGMKICAgICBtX2NhbGxTdGFjayA9IGNhbGxT
dGFjazsKIH0KIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ug
cywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3Qg
U3RyaW5nJiByZXNwb25zZVVybCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCitDb25zb2xlTWVz
c2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNz
YWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHJlc3BvbnNlVXJsLCB1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogICAgIDogbV9zb3VyY2UocykKICAgICAs
IG1fdHlwZSh0KQogICAgICwgbV9sZXZlbChsKQpAQCAtODQsNyArODYsNyBAQCBDb25zb2xlTWVz
c2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNz
YWdlTGV2ZWwgbCwgYwogICAgICwgbV91cmwocmVzcG9uc2VVcmwpCiAgICAgLCBtX2xpbmUoMCkK
ICAgICAsIG1fcmVwZWF0Q291bnQoMSkKLSAgICAsIG1fcmVxdWVzdElkKHJlcXVlc3RJZCkKKyAg
ICAsIG1fcmVxdWVzdElkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKHJlcXVlc3RJZGVu
dGlmaWVyKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
bnNvbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
aAppbmRleCA2NDYxZGI3MjAyNzlhYmI4ZDZjZWIyOGVkNmE5ZTc1MDU3ZmUxNWQzLi4wN2VmYTE3
NjI0ZTg3NDY4MWNlNWU4YmE5NmI2ZmRkYzljMjY2MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuaApAQCAtNTEsOSArNTEsOSBAQCBjbGFzcyBTY3JpcHRWYWx1
ZTsKIGNsYXNzIENvbnNvbGVNZXNzYWdlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb25z
b2xlTWVzc2FnZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbSwgY29uc3QgU3RyaW5nJiB1LCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0SWQgPSBTdHJpbmcoKSk7Ci0gICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNj
cmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHJlc3BvbnNlVXJsLCBjb25zdCBTdHJpbmcmIHJlcXVl
c3RJZCk7CisgICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHUsIHVuc2lnbmVkIGxp
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbSwgY29uc3QgU3RyaW5nJiByZXNwb25zZVVybCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0
SWRlbnRpZmllcik7CiAgICAgfkNvbnNvbGVNZXNzYWdlKCk7CiAKICAgICB2b2lkIGFkZFRvRnJv
bnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQ6OkNvbnNvbGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
LCBib29sIGdlbmVyYXRlUHJldmlldyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
ZGVudGlmaWVyc0ZhY3RvcnkuY3BwCmluZGV4IGMyYWYyYTU2Njk4ODI2NzYzZjNjN2Q5MWNkMzJi
ZDQzNzg5MjdhYTMuLmRjZTJhMjg1MGUzNzU2Mjc2MzE1YmQ4OTg3NGNlOTU5MjBkNzJiMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuY3BwCkBA
IC00OSw3ICs0OSw5IEBAIFN0cmluZyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZp
ZXIoKQogLy8gc3RhdGljCiBTdHJpbmcgSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZGRQcm9jZXNzSWRQcmVmaXhU
byhTdHJpbmc6Om51bWJlcihpZGVudGlmaWVyKSk7CisgICAgaWYgKGlkZW50aWZpZXIpCisgICAg
ICAgIHJldHVybiBhZGRQcm9jZXNzSWRQcmVmaXhUbyhTdHJpbmc6Om51bWJlcihpZGVudGlmaWVy
KSk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCiAvLyBzdGF0aWMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggOWU2MjJj
MDRjZmRkNjdiODliYzI1ODZkYmE2M2U5MGExMjUxM2Q5Yi4uYTA3NTEzOWRjYWZjNjZkMGU1YTdl
ZjFlM2YyZDQ2NDZmOGU5ZmMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBJbnNwZWN0
b3JDb25zb2xlQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiAgICAgbV9zdGF0ZS0+c2V0Qm9v
bGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6Y29uc29sZU1lc3NhZ2VzRW5hYmxlZCwgdHJ1ZSk7CiAK
ICAgICBpZiAobV9leHBpcmVkQ29uc29sZU1lc3NhZ2VDb3VudCkgewotICAgICAgICBDb25zb2xl
TWVzc2FnZSBleHBpcmVkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBXYXJuaW5nTWVzc2FnZUxldmVsLCBTdHJpbmc6OmZvcm1hdCgiJWQgY29uc29sZSBtZXNzYWdl
cyBhcmUgbm90IHNob3duLiIsIG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQpLCAiIiwgMCwg
IiIpOworICAgICAgICBDb25zb2xlTWVzc2FnZSBleHBpcmVkTWVzc2FnZShPdGhlck1lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBTdHJpbmc6OmZvcm1h
dCgiJWQgY29uc29sZSBtZXNzYWdlcyBhcmUgbm90IHNob3duLiIsIG1fZXhwaXJlZENvbnNvbGVN
ZXNzYWdlQ291bnQpLCAiIiwgMCwgMCk7CiAgICAgICAgIGV4cGlyZWRNZXNzYWdlLmFkZFRvRnJv
bnRlbmQobV9mcm9udGVuZCwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIsIGZhbHNlKTsKICAgICB9
CiAKQEAgLTE1MiwxOCArMTUyLDIwIEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpjbGVh
ckZyb250ZW5kKCkKICAgICBkaXNhYmxlKCZlcnJvclN0cmluZyk7CiB9CiAKLXZvaWQgSW5zcGVj
dG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojph
ZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjaywgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKICAgICBpZiAoIWRl
dmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGFkZENvbnNvbGVN
ZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBt
ZXNzYWdlLCBhcmd1bWVudHMsIGNhbGxTdGFjaykpKTsKKyAgICBTdHJpbmcgcmVxdWVzdElkID0g
cmVxdWVzdElkZW50aWZpZXIgPyBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChyZXF1ZXN0
SWRlbnRpZmllcikgOiBTdHJpbmcoKTsKKyAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihu
ZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRz
LCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKSkpOwogfQogCi12b2lkIEluc3BlY3RvckNv
bnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCit2b2lkIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJj
ZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFkZXZlbG9wZXJFeHRyYXNF
bmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0
cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc2NyaXB0
SWQsIGxpbmVOdW1iZXIpKSk7CisgICAgU3RyaW5nIHJlcXVlc3RJZCA9IHJlcXVlc3RJZGVudGlm
aWVyID8gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQocmVxdWVzdElkZW50aWZpZXIpIDog
U3RyaW5nKCk7CisgICAgYWRkQ29uc29sZU1lc3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNz
YWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNjcmlwdElkLCBsaW5lTnVtYmVyLCBy
ZXF1ZXN0SWRlbnRpZmllcikpKTsKIH0KIAogVmVjdG9yPHVuc2lnbmVkPiBJbnNwZWN0b3JDb25z
b2xlQWdlbnQ6OmNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMoKQpAQCAtMjM2LDMyICsyMzgs
MzAgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmZyYW1lV2luZG93RGlzY2FyZGVkKERP
TVdpbmRvdyogd2luZG93KQogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5kaXNjYXJkSW5q
ZWN0ZWRTY3JpcHRzRm9yKHdpbmRvdyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50
OjpkaWRGaW5pc2hYSFJMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIp
Cit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZyh1bnNpZ25l
ZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcikKIHsKICAgICBpZiAoIWRldmVsb3Bl
ckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX2Zyb250ZW5kICYm
IG1fc3RhdGUtPmdldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6Om1vbml0b3JpbmdYSFIpKSB7
CiAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIlhIUiBmaW5pc2hlZCBsb2FkaW5nOiBcIiIgKyB1
cmwgKyAiXCIuIjsKLSAgICAgICAgU3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9y
eTo6cmVxdWVzdElkKGlkZW50aWZpZXIpOwotICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9w
dFB0cihuZXcgQ29uc29sZU1lc3NhZ2UoTmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyLCBy
ZXF1ZXN0SWQpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTmV0d29ya01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHNlbmRVUkws
IHNlbmRMaW5lTnVtYmVyLCByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgfQogCiAKIH0KIAotdm9p
ZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBp
ZiAoIWRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSB7CiAgICAgICAgIFN0cmluZyBtZXNz
YWdlID0gIkZhaWxlZCB0byBsb2FkIHJlc291cmNlOiB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRo
IGEgc3RhdHVzIG9mICIgKyBTdHJpbmc6Om51bWJlcihyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
KSArICIgKCIgKyByZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpICsgJyknOwotICAgICAgICBTdHJp
bmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7
Ci0gICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShO
ZXR3b3JrTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBt
ZXNzYWdlLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgcmVxdWVzdElkKSkpOworICAgICAgICBh
ZGRNZXNzYWdlVG9Db25zb2xlKE5ldHdvcmtNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCAwLCBy
ZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGlu
Zyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKIHsKICAgICBpZiAoIWRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMjczLDggKzI3Myw3IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRG
YWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291CiAgICAgICAg
IG1lc3NhZ2UuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICAgICAgbWVzc2FnZS5hcHBlbmQoZXJy
b3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7CiAgICAgfQotICAgIFN0cmluZyByZXF1ZXN0SWQg
PSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICBhZGRDb25z
b2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2UoTmV0d29ya01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZS50b1N0cmluZygp
LCBlcnJvci5mYWlsaW5nVVJMKCksIHJlcXVlc3RJZCkpKTsKKyAgICBhZGRNZXNzYWdlVG9Db25z
b2xlKE5ldHdvcmtNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsIG1lc3NhZ2UudG9TdHJpbmcoKSwgZXJyb3IuZmFpbGluZ1VSTCgpLCAwLCByZXF1ZXN0SWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzZXRNb25pdG9yaW5n
WEhSRW5hYmxlZChFcnJvclN0cmluZyosIGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA3ZjQzMzkzMTNjMzgx
ZTE3Mzc3NTE4ODQyZTZiNDI4MjIxZjYwNGU1Li4xZmU3MTRlNDljZDYxODRjNDNhNDY1NzA0NzM0
MTQ5MDljNTY2MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oCkBAIC02OCw4ICs2OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgY2xlYXJGcm9udGVuZCgpOwogICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CiAKLSAgICB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgdm9pZCBhZGRNZXNzYWdlVG9D
b25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJl
cik7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3Jp
cHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAgICAgVmVjdG9yPHVuc2lnbmVkPiBjb25z
b2xlTWVzc2FnZUFyZ3VtZW50Q291bnRzKCk7CiAKICAgICB2b2lkIHN0YXJ0VGltaW5nKGNvbnN0
IFN0cmluZyYgdGl0bGUpOwpAQCAtNzgsOSArNzgsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZy
YW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyopOwogCi0gICAgdm9pZCBkaWRGaW5pc2hYSFJM
b2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwotICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOwotICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5n
KHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25z
dCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAjaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgdm9pZCBhZGRQcm9maWxlRmluaXNoZWRNZXNzYWdlVG9D
b25zb2xlKFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4sIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2b2lkIGFkZFN0YXJ0UHJvZmlsaW5nTWVzc2Fn
ZVRvQ29uc29sZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAppbmRleCBmMDQzMjZiNjlm
ZDE1YTA0MmE2NTMyMzUwZWNiOTQ2NGFlYjk5MGFiLi4wMWI2MGM4ZDM3MDQwYTBmODczODIyYzE3
YTUxOTE4YzRjN2NhYWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTM5LDM2ICszOSwzNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwgTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNz
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFn
ZShwYWdlKSkKLSAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0Fn
ZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRzLCBjYWxsU3RhY2sp
OworICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBz
b3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBhcmd1bWVudHMsIGNhbGxTdGFjaywgcmVxdWVz
dElkZW50aWZpZXIpOwogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCitp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUo
UGFnZSogcGFnZSwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlw
dElkLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVy
KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkK
LSAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc291
cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc2NyaXB0SWQsIGxpbmVOdW1iZXIpOworICAgICAg
ICBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5
cGUsIGxldmVsLCBtZXNzYWdlLCBzY3JpcHRJZCwgbGluZU51bWJlciwgcmVxdWVzdElkZW50aWZp
ZXIpOwogI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoV09SS0VSUykKLWlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJDb250ZXh0KiB3
b3JrZXJDb250ZXh0LCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2spCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0Nv
bnNvbGUoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwgTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVy
KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyQ29udGV4
dCh3b3JrZXJDb250ZXh0KSkKLSAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRzLCBj
YWxsU3RhY2spOworICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5n
QWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBhcmd1bWVudHMsIGNhbGxTdGFj
aywgcmVxdWVzdElkZW50aWZpZXIpOwogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJDb250ZXh0KiB3b3Jr
ZXJDb250ZXh0LCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0
SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwg
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yV29ya2VyQ29udGV4dCh3b3JrZXJDb250
ZXh0KSkKLSAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc2NyaXB0SWQsIGxpbmVOdW1iZXIpOwor
ICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3Vy
Y2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzY3JpcHRJZCwgbGluZU51bWJlciwgcmVxdWVzdElk
ZW50aWZpZXIpOwogI2VuZGlmCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggYzljOWU0ZGQwZDQ0
MDhlYTg5YzFjZDRmMDRiMjE1NTcxMzExYzU0ZS4uMTMyYWRmOWQ2ZmM1Zjg1YzQzNzQ4ZWQ1NTJl
NWY3ZGUwMGQzNjA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTk1MSwyMCArOTUxLDIwIEBAIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRXcml0ZUhUTUxJbXBsKGNvbnN0IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZFdyaXRlSFRNTChlbmRM
aW5lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0Nv
bnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50
cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5
cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NS
ZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAg
aWYgKEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yQ29uc29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2VudC0+YWRk
TWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBhcmd1bWVudHMs
IGNhbGxTdGFjayk7CisgICAgICAgIGNvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShz
b3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBhcmd1bWVudHMsIGNhbGxTdGFjaywgcmVxdWVz
dElkZW50aWZpZXIpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKQogICAgICAgICBkZWJ1Z2dlckFnZW50LT5hZGRN
ZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSk7CiAjZW5kaWYKIH0KIAotdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
VHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlcikKK3ZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5
cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgc2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIpCiB7CiAgICAgaWYgKEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29s
ZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQ29uc29sZUFnZW50KCkpCi0g
ICAgICAgIGNvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxl
dmVsLCBtZXNzYWdlLCBzY3JpcHRJZCwgbGluZU51bWJlcik7CisgICAgICAgIGNvbnNvbGVBZ2Vu
dC0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzY3Jp
cHRJZCwgbGluZU51bWJlciwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRz
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggZDFiNTI3NDY2
ZDM2ZjBkYmMxOTJiMzhhZWRhOTkxNWJjYTlkNzQwZi4uZjllMjM2YmEyMzE2ZmNjNmQ2YjUxOWZh
NGY2NmYxYmI3Yzk5NjkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTk2LDExICsxOTYsMTEgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFdyaXRlSFRNTChE
b2N1bWVudCosIHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpOwog
ICAgIHN0YXRpYyB2b2lkIGRpZFdyaXRlSFRNTChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUmLCB1bnNpZ25lZCBpbnQgZW5kTGluZSk7CiAKLSAgICBzdGF0aWMgdm9pZCBhZGRN
ZXNzYWdlVG9Db25zb2xlKFBhZ2UqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRz
PiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICBzdGF0aWMgdm9pZCBhZGRNZXNz
YWdlVG9Db25zb2xlKFBhZ2UqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxpbmVO
dW1iZXIpOworICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSosIE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4sIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKKyAgICBzdGF0aWMgdm9p
ZCBhZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICNp
ZiBFTkFCTEUoV09SS0VSUykKLSAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFdv
cmtlckNvbnRleHQqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25z
b2xlKFdvcmtlckNvbnRleHQqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxpbmVO
dW1iZXIpOworICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyQ29udGV4
dCosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4sIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKKyAgICBz
dGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckNvbnRleHQqLCBNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIgPSAwKTsKICNlbmRpZgogICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudChQYWdl
KiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4pOwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29sZVRpbWluZyhGcmFtZSosIGNvbnN0IFN0
cmluZyYgdGl0bGUpOwpAQCAtMzg5LDggKzM4OSw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsV3JpdGVIVE1MSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSwg
RnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRXcml0ZUhUTUxJbXBsKGNvbnN0IEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGludCBlbmRMaW5lKTsKIAotICAgIHN0
YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBN
ZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+KTsKLSAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBs
aW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmll
cik7CisgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51
bWJlciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgc3RhdGljIHZvaWQg
Y29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFzc1JlZlB0cjxTY3JpcHRB
cmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2b2lk
IHN0YXJ0Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmdJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSosIGNvbnN0IFN0cmluZyYgdGl0bGUsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnNvbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCA5NzEz
Mzc3Mjg0YTUzNTQzZmFiOTY2YTMwM2Y4MWI2NDE0MDExZDNjLi5hOWY5NGI2ZmQxZDIxNjEyMDVm
ZTUyN2FhOTY2ZjViNTcwOGUxYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTEzNCwx
MCArMTM0LDEwIEBAIHN0YXRpYyB2b2lkIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwKIAogdm9pZCBDb25zb2xlOjphZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+IGNhbGxTdGFjaykKIHsKLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1l
c3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2spOworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCB0
eXBlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjaywgMCk7CiB9CiAKLXZv
aWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVz
dElkZW50aWZpZXIpCiB7CiAKICAgICBpZiAobXV0ZUNvdW50ICYmIHNvdXJjZSAhPSBDb25zb2xl
QVBJTWVzc2FnZVNvdXJjZSkKQEAgLTE0NywxNyArMTQ3LDE3IEBAIHZvaWQgQ29uc29sZTo6YWRk
TWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxl
dmVsIGxlCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYWdlLT5jaHJv
bWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwg
bWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+Y2xp
ZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwg
bGluZU51bWJlciwgdXJsKTsKIAogICAgIGlmIChjYWxsU3RhY2spCi0gICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIHR5cGUs
IGxldmVsLCBtZXNzYWdlLCAwLCBjYWxsU3RhY2spOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCB0eXBlLCBsZXZlbCwg
bWVzc2FnZSwgMCwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgZWxzZQotICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwg
c291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKKyAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2Us
IHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgcmVxdWVzdElk
ZW50aWZpZXIpOwogCiAgICAgaWYgKCFDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKHNvdXJjZVVSTCwg
bGluZU51bWJlcik7CisgICAgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKHVybCwgbGluZU51bWJlcik7
CiAgICAgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoc291cmNlLCBsZXZlbCk7CiAK
ICAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25z
b2xlLmgKaW5kZXggOTE2Nzk0ZWExOTNhMTU4NTZkYzZlMTU2NDg4MzRkYWRhNTVhN2RhNS4uYzRl
MzRkZDk5Y2FhMjBkNmJlNDU5MWE0ZTVhNjk0ZGMzMTk5NmY5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xl
LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbnNv
bGU+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb25zb2xlKGZy
YW1lKSk7IH0KICAgICB2aXJ0dWFsIH5Db25zb2xlKCk7CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IFN0cmluZygpLCB1bnNpZ25lZCBsaW5l
TnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCk7CisgICAgdm9pZCBh
ZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwgPSBTdHJpbmcoKSwgdW5z
aWduZWQgbGluZU51bWJlciA9IDAsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDAsIHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICB2b2lkIGFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogCiAgICAgdm9pZCBkZWJ1ZyhQ
YXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAppbmRleCBkNjkzMWNmZWM5
MGU4ZDIyYTE3MmViODIxMjdlMDAwYzdjNTcwOWFlLi43ZTgyNDJkODc1YjViYmQ3OGUyZDliZjAx
YjFhMmY4ZmFhZjE2MDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5j
cHAKQEAgLTI3OSwyMyArMjc5LDIzIEBAIHZvaWQgV29ya2VyQ29udGV4dDo6bG9nRXhjZXB0aW9u
VG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpCiAgICAgdGhy
ZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0
KGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0KIAotdm9pZCBXb3JrZXJD
b250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2spCit2b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51
bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKICAgICBpZiAoIWlzQ29udGV4dFRocmVhZCgpKSB7CiAg
ICAgICAgIHBvc3RUYXNrKEFkZENvbnNvbGVNZXNzYWdlVGFzazo6Y3JlYXRlKHNvdXJjZSwgdHlw
ZSwgbGV2ZWwsIG1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICB0aHJlYWQo
KS0+d29ya2VyUmVwb3J0aW5nUHJveHkoKS5wb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVj
dChzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwot
ICAgIGFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2Fn
ZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2spOworICAgIGFkZE1lc3NhZ2VUb1dv
cmtlckNvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5l
TnVtYmVyLCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXb3JrZXJD
b250ZXh0OjphZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBN
ZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1l
c3NhZ2VUb1dvcmtlckNvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+IGNhbGxTdGFjaywgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKICAg
ICBBU1NFUlQoaXNDb250ZXh0VGhyZWFkKCkpOwogICAgIGlmIChjYWxsU3RhY2spCi0gICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZSh0aGlzLCBzb3Vy
Y2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCAwLCBjYWxsU3RhY2spOworICAgICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUodGhpcywgc291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgMCwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAg
ZWxzZQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNv
bGUodGhpcywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVt
YmVyKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25z
b2xlKHRoaXMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51
bWJlciwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiBib29sIFdvcmtlckNvbnRleHQ6OmlzQ29u
dGV4dFRocmVhZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCmlu
ZGV4IDk4NDFhNWUxZDI1NmI1YmFmYjM5NzBkY2ZmMzA0YTEzZGVkY2IyNzYuLjQ4N2Y3NmM2YzUz
NGM2ZWQyYTE1MmRlNmUwOTg0ZjZiMDAzNGQyZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyQ29udGV4dC5oCkBAIC0xNDUsNyArMTQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIGFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5RnJvbVN0cmluZyhjb25zdCBTdHJp
bmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJU
eXBlKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVO
dW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgICAgIHZvaWQgYWRkTWVz
c2FnZVRvV29ya2VyQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgICAgICB2
b2lkIGFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUs
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCB1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHsgcmVmKCk7IH0K
QEAgLTE1OSw3ICsxNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
Y29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEtVUkwgdmly
dHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogCiAgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQq
IGVycm9yRXZlbnRUYXJnZXQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171423</attachid>
            <date>2012-10-30 05:20:58 -0700</date>
            <delta_ts>2012-10-30 05:22:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99941-20121030131922.patch</filename>
            <type>text/plain</type>
            <size>40909</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWIzNzU0NDk4OWQ2MDY3
ZWQ5MDk4MWE1MTcxMDA1NDlhM2JmYzdhZC4uNjBlZTc3MDIzMmQzYzU3MTY0OGJkNDFjZDQ1YjNl
YzUyZjc1ZWQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTEwLTI5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQXNz
b2NpYXRlIGNvbnNvbGUgbWVzc2FnZXMgd2l0aCB0aGUgcmVxdWVzdHMgdGhhdCBjYXVzZWQgdGhl
bS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGlu
c3BlY3RvciBjdXJyZW50bHkgc3VwcG9ydHMgdGhlIGNvbmNlcHQgb2YgYSByZXF1ZXN0J3MgImlu
aXRpYXRvciIKKyAgICAgICAgaW4gb3JkZXIgdG8gYWRkIGNvbnRleHQgdG8gY29uc29sZSBtZXNz
YWdlcyB0aGF0IGFyZSBnZW5lcmF0ZWQgaW4KKyAgICAgICAgcmVzcG9uc2UgdG8gYSBzcGVjaWZp
YyByZXF1ZXN0LiBUaGUgaW5pdGlhdG9yIGlzIHVzZWQgYXMgdGhlIG1lc3NhZ2UncworICAgICAg
ICBhbmNob3IgbGluayBpZmYgYSByZXF1ZXN0SUQgaXMgcHJlc2VudCwgYW5kIG5vIHN0YWNrIHRy
YWNlIGlzIHByZXNlbnQuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGlzIGZ1bmN0aW9uYWxpdHkg
aXMgb25seSBleHBvc2VkIHRvIHRocmVlIHNwZWNpZmljCisgICAgICAgIGNhbGxzaXRlczogJ0lu
c3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZycsCisgICAgICAgICdJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZScsIGFuZAorICAgICAgICAnSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZycuIFRoaXMgcGF0Y2ggYWRkcyBhIGdl
bmVyaWMKKyAgICAgICAgbWVjaGFuaXNtIHRvIGFzc29jaWF0ZSByZXF1ZXN0cyB3aXRoIGNvbnNv
bGUgbWVzc2FnZXMgYnkgcGFzc2luZyB0aGUKKyAgICAgICAgcmVxdWVzdCdzIGlkZW50aWZpZXIg
dGhyb3VnaCAnU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UnCisgICAg
ICAgIG9yICdDb25zb2xlOjphZGRNZXNzYWdlJyB3aGVuIHJlbGV2YW50LgorCisgICAgICAgIFRo
aXMgcGF0Y2ggc2hvdWxkIGhhdmUgbm8gdmlzaWJsZSBjaGFuZ2VzLiBJdCBqdXN0IGluc3RhbGxz
IHNvbWUgbmV3CisgICAgICAgIHBpcGluZywgYW5kIGFkanVzdHMgdGhlIHRocmVlIG1ldGhvZHMg
bWVudGlvbmVkIGFib3ZlIHRvIHVzZSBpdC4KKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgc2hvdWxk
bid0IGJyZWFrLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKERvY3VtZW50KToKKyAgICAgICAgICAgIEFkZCBhICdyZXF1ZXN0SWRlbnRpZmllcicg
cGFyYW1ldGVyIChkZWZhdWx0aW5nIHRvIDApLCBhbmQgcGlwZSBpdAorICAgICAgICAgICAgdGhy
b3VnaCB0byBDb25zb2xlOjphZGRNZXNzYWdlLgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oOgorICAgICAgICAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgICAgICBBZGQg
YSAncmVxdWVzdElkZW50aWZpZXInIHBhcmFtZXRlciAoZGVmYXVsdGluZyB0byAwKSwgYW5kIHBp
cGUgaXQKKyAgICAgICAgICAgIHRocm91Z2ggdG8gdGhlIHN1YmNsYXNzJyBhZGRNZXNzYWdlIG1l
dGhvZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgICAgIEFj
Y2VwdCBhbiB1bnNpZ25lZCBsb25nIGluc3RlYWQgb2YgYSBzdHJpbmcsIGFuZCBtb3ZlIHRoZSBj
b252ZXJzaW9uCisgICAgICAgICAgICBmcm9tIFdlYkNvcmUgcmVxdWVzdCBpZGVudGlmaWVycyB0
byBJbnNwZWN0b3IgcmVxdWVzdCBpZGVudGlmaWVycworICAgICAgICAgICAgaW50byBDb25zb2xl
TWVzc2FnZS4KKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAg
KENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgICAgIEFkZCAncmVxdWVzdElkZW50aWZpZXInIChk
ZWZhdWx0aW5nIHRvIDApIHRvIHRoZQorICAgICAgICAgICAgQ29uc29sZU1lc3NhZ2UgY29uc3Ry
dWN0b3IgdGhhdCBhY2NlcHRzIGEgU2NyaXB0Q2FsbFN0YWNrIChpdCB3YXMKKyAgICAgICAgICAg
IGFscmVhZHkgcGFydCBvZiB0aGUgY29uc3RydWN0b3IgdGhhdCBhY2NlcHRlZCBhIGxpbmUgbnVt
YmVyKS4KKyAgICAgICAgKiBpbnNwZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKToKKyAgICAgICAgICAg
IElmIHRoZSBwcm92aWRlZCByZXF1ZXN0IGlkZW50aWZpZXIgaXMgMCwgcmV0dXJuIGFuIGVtcHR5
IHN0cmluZy4KKyAgICAgICAgICAgIFRoaXMgc2ltcGxpZmllcyB0aGUgbG9naWMgYXQgdGhlIGNh
bGxzaXRlLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25z
b2xlKToKKyAgICAgICAgICAgIEFkZCBhICdyZXF1ZXN0SWRlbnRpZmllcicgcGFyYW1ldGVyIChk
ZWZhdWx0aW5nIHRvIDApLCBhbmQgcGlwZSBpdAorICAgICAgICAgICAgdGhyb3VnaCB0byB0aGUg
J0NvbnNvbGVNZXNzYWdlJyBjb25zdHJ1Y3RvciBhZnRlciBjb252ZXJ0aW5nIGl0IHRvCisgICAg
ICAgICAgICBhbiBpbnRlcm5hbCBpZGVudGlmaWVyIHZpYSAnSWRlbnRpZmllcnNGYWN0b3I6OnJl
cXVlc3RJZCcuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZEZp
bmlzaFhIUkxvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29s
ZUFnZW50OjpkaWRGYWlsTG9hZGluZyk6CisgICAgICAgICAgICBVc2UgdGhlIG5ldyAncmVxdWVz
dElkZW50aWZpZXInIHBhcmFtZXRlciBvbiBhZGRNZXNzYWdlVG9Db25zb2xlCisgICAgICAgICAg
ICByYXRoZXIgdGhhbiByZXBsaWNhdGluZyB0aGUgYmVoYXZpb3IgaW4gZWFjaCBvZiB0aGVzZSB0
aHJlZSBtZXRob2RzLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQu
aDoKKyAgICAgICAgKEluc3BlY3RvckNvbnNvbGVBZ2VudCk6CisgICAgICAgICAgICBBZGQgYSAn
cmVxdWVzdElkZW50aWZpZXInIHBhcmFtZXRlciAoZGVmYXVsdGluZyB0byAwKS4KKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uKToK
KyAgICAgICAgICAgIEFkZCBhICdyZXF1ZXN0SWRlbnRpZmllcicgcGFyYW1ldGVyIChkZWZhdWx0
aW5nIHRvIDApLCBhbmQgcGlwZSBpdAorICAgICAgICAgICAgdGhyb3VnaCB0byBsb3dlciBsZXZl
bHMgb2YgdGhlIHN0YWNrLgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb25zb2xlOjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuaDoK
KyAgICAgICAgKENvbnNvbGUpOgorICAgICAgICAgICAgQWRkIGEgJ3JlcXVlc3RJZGVudGlmaWVy
JyBwYXJhbWV0ZXIgKGRlZmF1bHRpbmcgdG8gMCksIGFuZCBwaXBlIGl0CisgICAgICAgICAgICB0
aHJvdWdoIHRvICdJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUn
LgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNv
bnRleHQ6OmFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyQ29udGV4dC5oOgorICAgICAgICAoV29ya2VyQ29udGV4dCk6CisgICAgICAgICAgICBBZGQg
YSAncmVxdWVzdElkZW50aWZpZXInIHBhcmFtZXRlciAoZGVmYXVsdGluZyB0byAwKSwgYW5kIHBp
cGUgaXQKKyAgICAgICAgICAgIHRocm91Z2ggdG8gJ0luc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZScuCisKIDIwMTItMTAtMjkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgcmVuZGVyaW5nIHRhYmxlcyB3aXRoIDxjb2xncm91
cHM+IHR3aWNlIGFzIGZhc3QgYnkgYXZvaWRpbmcgd2Fsa2luZyB0aGUgRE9NIGZvciBjb2xncm91
cHMgNCB0aW1lcyBmb3IgZWFjaCBjZWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAzNWRm
YzJiZGY1ZjViYjBlODM0YmVmNjRhMzU3YjA2ZWU2MGRhM2MyLi44OGNhNzE0NjY5NjU0MTAzYjJi
MjYwZmI1NWZlZmIyOTEwZDI0YmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ4NjIs
NyArNDg2Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnBhcnNlRE5TUHJlZmV0Y2hDb250cm9sSGVhZGVy
KGNvbnN0IFN0cmluZyYgZG5zUHJlZmV0Y2hDb250cm9sKQogICAgIG1faGF2ZUV4cGxpY2l0bHlE
aXNhYmxlZEROU1ByZWZldGNoID0gdHJ1ZTsKIH0KIAotdm9pZCBEb2N1bWVudDo6YWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQor
dm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5
cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQog
ewogICAgIGlmICghaXNDb250ZXh0VGhyZWFkKCkpIHsKICAgICAgICAgcG9zdFRhc2soQWRkQ29u
c29sZU1lc3NhZ2VUYXNrOjpjcmVhdGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSkpOwpA
QCAtNDg3MSw3ICs0ODcxLDcgQEAgdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGwKIAogICAgIGlmIChE
T01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7CiAgICAgICAgIGlmIChDb25zb2xlKiBj
b25zb2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNz
YWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwg
Y2FsbFN0YWNrKTsKKyAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ssIHJlcXVl
c3RJZGVudGlmaWVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2VlYTBm
MGRkYTgxOGQzNjFkMGFlMWJmODBmMTg4NWYzMGVhNTI3NC4uMjU5NGE5YzFkNzM2MTAxNDcwZTE3
YzlhNzk0MzUzZGViNDdhNDExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExOTMsNyArMTE5
Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29u
c3Q7IC8vIFNhbWUgYXMgdXJsKCksIGJ1dCBuZWVkZWQgZm9yIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgdG8gaW1wbGVtZW50IGl0IHdpdGhvdXQgYSBwZXJmb3JtYW5jZSBsb3NzIGZvciBkaXJlY3Qg
Y2FsbHMuCiAgICAgdmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcm
KSBjb25zdDsgLy8gU2FtZSBhcyBjb21wbGV0ZVVSTCgpIGZvciB0aGUgc2FtZSByZWFzb24gYXMg
YWJvdmUuCiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4pOworICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogCiAgICAgdmlydHVh
bCBkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IDBmODhlYjY0MGEyOTljMmZk
MGRmMGMxOTNhZDUwNmMxMzBiZTM4NDIuLjM5YTNkY2Q2MDM2YWQ1YmI5ZmI1YWEwNzEzMTg5NTNj
NmQwMzQxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAKQEAgLTMxMSwxNCArMzExLDE0IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluCiAgICAg
bV9wZW5kaW5nRXhjZXB0aW9ucy5jbGVhcigpOwogfQogCi12b2lkIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBj
YWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7Ci0gICAgYWRkTWVz
c2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIs
IGNhbGxTdGFjayk7CisgICAgYWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdl
LCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwog
fQogCi12b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
aykKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewotICAgIGFkZE1lc3NhZ2Uoc291
cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjayk7CisgICAg
YWRkTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2Fs
bFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggNTAxMTFhNGZlZWI5OGNhYTE3NzlkZTU2NjEz
Yjg4ZmFjYjQyYmUzNi4uMzQyNDhmNGMyZGMzM2UxMzRlMmEwMGMyYjM2ODU4ZWVkMzQyODhiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC04Myw4
ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAg
dm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5l
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+KTsKLSAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwgPSBTdHJpbmcoKSwgdW5zaWduZWQgbGluZU51bWJlciA9IDAsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiA9IDApOwotICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IFN0cmluZygpLCB1bnNpZ25lZCBs
aW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIHVuc2lnbmVkIGxvbmcgcmVxdWVz
dElkZW50aWZpZXIgPSAwKTsKIAogI2lmIEVOQUJMRShCTE9CKQogICAgIFB1YmxpY1VSTE1hbmFn
ZXImIHB1YmxpY1VSTE1hbmFnZXIoKTsKQEAgLTE4Nyw3ICsxODcsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgY29uc3QgS1VSTCYgdmlydHVhbFVSTCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKIAotICAg
IHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKICAgICB2aXJ0dWFsIEV2ZW50
VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNl
cHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KSA9
IDA7CiAgICAgYm9vbCBkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA4MDE3NTUzOTA3MGY3ZjMy
MWNkZjk1ZGI1MThhOTNlYWVmMDQzOWRhLi5iZGVhOTc3MGZlYzVkMzkwMzIyMGViNjQ3NTFiZTRi
MGFlZTIyMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1l
c3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5j
cHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgogCiAjaW5j
bHVkZSAiQ29uc29sZS5oIgorI2luY2x1ZGUgIklkZW50aWZpZXJzRmFjdG9yeS5oIgogI2luY2x1
ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKQEAgLTQ2LDcgKzQ3LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1Db25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBt
LCBjb25zdCBTdHJpbmcmIHUsIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkK
K0NvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VU
eXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0sIGNvbnN0IFN0cmluZyYgdSwg
dW5zaWduZWQgbGksIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiAgICAgOiBtX3Nv
dXJjZShzKQogICAgICwgbV90eXBlKHQpCiAgICAgLCBtX2xldmVsKGwpCkBAIC01NCwxMSArNTUs
MTEgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVz
c2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGMKICAgICAsIG1fdXJsKHUpCiAgICAgLCBtX2xp
bmUobGkpCiAgICAgLCBtX3JlcGVhdENvdW50KDEpCi0gICAgLCBtX3JlcXVlc3RJZChyZXF1ZXN0
SWQpCisgICAgLCBtX3JlcXVlc3RJZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChyZXF1
ZXN0SWRlbnRpZmllcikpCiB7CiB9CiAKLUNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJp
bmcmIG0sIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCitDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3Qg
U3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyKQogICAgIDogbV9zb3VyY2UocykKICAgICAsIG1fdHlwZSh0KQogICAgICwgbV9sZXZl
bChsKQpAQCAtNjcsNiArNjgsNyBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgYwogICAgICwgbV91
cmwoKQogICAgICwgbV9saW5lKDApCiAgICAgLCBtX3JlcGVhdENvdW50KDEpCisgICAgLCBtX3Jl
cXVlc3RJZChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChyZXF1ZXN0SWRlbnRpZmllcikp
CiB7CiAgICAgaWYgKGNhbGxTdGFjayAmJiBjYWxsU3RhY2stPnNpemUoKSkgewogICAgICAgICBj
b25zdCBTY3JpcHRDYWxsRnJhbWUmIGZyYW1lID0gY2FsbFN0YWNrLT5hdCgwKTsKQEAgLTc2LDcg
Kzc4LDcgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugcywg
TWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGMKICAgICBtX2NhbGxTdGFjayA9IGNhbGxT
dGFjazsKIH0KIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ug
cywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3Qg
U3RyaW5nJiByZXNwb25zZVVybCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCitDb25zb2xlTWVz
c2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNz
YWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHJlc3BvbnNlVXJsLCB1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogICAgIDogbV9zb3VyY2UocykKICAgICAs
IG1fdHlwZSh0KQogICAgICwgbV9sZXZlbChsKQpAQCAtODQsNyArODYsNyBAQCBDb25zb2xlTWVz
c2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNz
YWdlTGV2ZWwgbCwgYwogICAgICwgbV91cmwocmVzcG9uc2VVcmwpCiAgICAgLCBtX2xpbmUoMCkK
ICAgICAsIG1fcmVwZWF0Q291bnQoMSkKLSAgICAsIG1fcmVxdWVzdElkKHJlcXVlc3RJZCkKKyAg
ICAsIG1fcmVxdWVzdElkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKHJlcXVlc3RJZGVu
dGlmaWVyKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
bnNvbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
aAppbmRleCA2NDYxZGI3MjAyNzlhYmI4ZDZjZWIyOGVkNmE5ZTc1MDU3ZmUxNWQzLi4wN2VmYTE3
NjI0ZTg3NDY4MWNlNWU4YmE5NmI2ZmRkYzljMjY2MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuaApAQCAtNTEsOSArNTEsOSBAQCBjbGFzcyBTY3JpcHRWYWx1
ZTsKIGNsYXNzIENvbnNvbGVNZXNzYWdlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb25z
b2xlTWVzc2FnZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbSwgY29uc3QgU3RyaW5nJiB1LCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0SWQgPSBTdHJpbmcoKSk7Ci0gICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNj
cmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHJlc3BvbnNlVXJsLCBjb25zdCBTdHJpbmcmIHJlcXVl
c3RJZCk7CisgICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHUsIHVuc2lnbmVkIGxp
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbSwgY29uc3QgU3RyaW5nJiByZXNwb25zZVVybCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0
SWRlbnRpZmllcik7CiAgICAgfkNvbnNvbGVNZXNzYWdlKCk7CiAKICAgICB2b2lkIGFkZFRvRnJv
bnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQ6OkNvbnNvbGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
LCBib29sIGdlbmVyYXRlUHJldmlldyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
ZGVudGlmaWVyc0ZhY3RvcnkuY3BwCmluZGV4IGMyYWYyYTU2Njk4ODI2NzYzZjNjN2Q5MWNkMzJi
ZDQzNzg5MjdhYTMuLmRjZTJhMjg1MGUzNzU2Mjc2MzE1YmQ4OTg3NGNlOTU5MjBkNzJiMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuY3BwCkBA
IC00OSw3ICs0OSw5IEBAIFN0cmluZyBJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZp
ZXIoKQogLy8gc3RhdGljCiBTdHJpbmcgSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZGRQcm9jZXNzSWRQcmVmaXhU
byhTdHJpbmc6Om51bWJlcihpZGVudGlmaWVyKSk7CisgICAgaWYgKGlkZW50aWZpZXIpCisgICAg
ICAgIHJldHVybiBhZGRQcm9jZXNzSWRQcmVmaXhUbyhTdHJpbmc6Om51bWJlcihpZGVudGlmaWVy
KSk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCiAvLyBzdGF0aWMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggOWU2MjJj
MDRjZmRkNjdiODliYzI1ODZkYmE2M2U5MGExMjUxM2Q5Yi4uYTgzM2ZjMWU5ZjEwMTVjN2U2ZTFj
YjAyOGJjZTRhYWNjOGY3MGI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJD
b25zb2xlLmgiCiAjaW5jbHVkZSAiQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJET01XaW5k
b3cuaCIKLSNpbmNsdWRlICJJZGVudGlmaWVyc0ZhY3RvcnkuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZFNjcmlwdEhvc3QuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgpAQCAtOTQsNyArOTMsNyBAQCB2b2lkIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKICAgICBtX3N0YXRlLT5zZXRCb29s
ZWFuKENvbnNvbGVBZ2VudFN0YXRlOjpjb25zb2xlTWVzc2FnZXNFbmFibGVkLCB0cnVlKTsKIAog
ICAgIGlmIChtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KSB7Ci0gICAgICAgIENvbnNvbGVN
ZXNzYWdlIGV4cGlyZWRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IFdhcm5pbmdNZXNzYWdlTGV2ZWwsIFN0cmluZzo6Zm9ybWF0KCIlZCBjb25zb2xlIG1lc3NhZ2Vz
IGFyZSBub3Qgc2hvd24uIiwgbV9leHBpcmVkQ29uc29sZU1lc3NhZ2VDb3VudCksICIiLCAwLCAi
Iik7CisgICAgICAgIENvbnNvbGVNZXNzYWdlIGV4cGlyZWRNZXNzYWdlKE90aGVyTWVzc2FnZVNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIFN0cmluZzo6Zm9ybWF0
KCIlZCBjb25zb2xlIG1lc3NhZ2VzIGFyZSBub3Qgc2hvd24uIiwgbV9leHBpcmVkQ29uc29sZU1l
c3NhZ2VDb3VudCksICIiLCAwLCAwKTsKICAgICAgICAgZXhwaXJlZE1lc3NhZ2UuYWRkVG9Gcm9u
dGVuZChtX2Zyb250ZW5kLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlciwgZmFsc2UpOwogICAgIH0K
IApAQCAtMTUyLDE4ICsxNTEsMTggQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNsZWFy
RnJvbnRlbmQoKQogICAgIGRpc2FibGUoJmVycm9yU3RyaW5nKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JDb25zb2xlQWdlbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUs
IE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNj
cmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2Fs
bFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogICAgIGlmICghZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgYWRkQ29uc29sZU1l
c3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1l
c3NhZ2UsIGFyZ3VtZW50cywgY2FsbFN0YWNrKSkpOworICAgIGFkZENvbnNvbGVNZXNzYWdlKGFk
b3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBh
cmd1bWVudHMsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpKSk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlcikKK3Zv
aWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJl
ciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKICAgICBpZiAoIWRldmVsb3Bl
ckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGFkZENvbnNvbGVNZXNzYWdl
KGFkb3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdl
LCBzY3JpcHRJZCwgbGluZU51bWJlcikpKTsKKyAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0
cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc2NyaXB0
SWQsIGxpbmVOdW1iZXIsIHJlcXVlc3RJZGVudGlmaWVyKSkpOwogfQogCiBWZWN0b3I8dW5zaWdu
ZWQ+IEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50cygp
CkBAIC0yMzYsMzIgKzIzNSwzMCBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZnJhbWVX
aW5kb3dEaXNjYXJkZWQoRE9NV2luZG93KiB3aW5kb3cpCiAgICAgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXItPmRpc2NhcmRJbmplY3RlZFNjcmlwdHNGb3Iod2luZG93KTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZEZpbmlzaFhIUkxvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25l
ZCBzZW5kTGluZU51bWJlcikKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRGaW5pc2hY
SFJMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKQogewog
ICAgIGlmICghZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKG1fZnJvbnRlbmQgJiYgbV9zdGF0ZS0+Z2V0Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6
bW9uaXRvcmluZ1hIUikpIHsKICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiWEhSIGZpbmlzaGVk
IGxvYWRpbmc6IFwiIiArIHVybCArICJcIi4iOwotICAgICAgICBTdHJpbmcgcmVxdWVzdElkID0g
SWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7Ci0gICAgICAgIGFkZENv
bnNvbGVNZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShOZXR3b3JrTWVzc2FnZVNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgc2VuZFVSTCwg
c2VuZExpbmVOdW1iZXIsIHJlcXVlc3RJZCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29s
ZShOZXR3b3JrTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwg
bWVzc2FnZSwgc2VuZFVSTCwgc2VuZExpbmVOdW1iZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKICAg
ICB9CiAKIAogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogewogICAgIGlmICghZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApIHsKICAg
ICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2U6IHRoZSBzZXJ2
ZXIgcmVzcG9uZGVkIHdpdGggYSBzdGF0dXMgb2YgIiArIFN0cmluZzo6bnVtYmVyKHJlc3BvbnNl
Lmh0dHBTdGF0dXNDb2RlKCkpICsgIiAoIiArIHJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCkgKyAn
KSc7Ci0gICAgICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVl
c3RJZChpZGVudGlmaWVyKTsKLSAgICAgICAgYWRkQ29uc29sZU1lc3NhZ2UoYWRvcHRQdHIobmV3
IENvbnNvbGVNZXNzYWdlKE5ldHdvcmtNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCByZXF1ZXN0
SWQpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTmV0d29ya01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgcmVzcG9uc2UudXJs
KCkuc3RyaW5nKCksIDAsIHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICB9CiB9CiAKLXZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdl
bnQ6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlmICghZGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47CkBAIC0yNzMsOCArMjcwLDcgQEAgdm9pZCBJbnNwZWN0b3JD
b25zb2xlQWdlbnQ6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgUmVzb3UKICAgICAgICAgbWVzc2FnZS5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgICAgICBt
ZXNzYWdlLmFwcGVuZChlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKICAgICB9Ci0gICAg
U3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZp
ZXIpOwotICAgIGFkZENvbnNvbGVNZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShO
ZXR3b3JrTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBt
ZXNzYWdlLnRvU3RyaW5nKCksIGVycm9yLmZhaWxpbmdVUkwoKSwgcmVxdWVzdElkKSkpOworICAg
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoTmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZS50b1N0cmluZygpLCBlcnJvci5mYWlsaW5nVVJM
KCksIDAsIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdl
bnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBlbmFibGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmlu
ZGV4IDdmNDMzOTMxM2MzODFlMTczNzc1MTg4NDJlNmI0MjgyMjFmNjA0ZTUuLjFmZTcxNGU0OWNk
NjE4NGM0M2E0NjU3MDQ3MzQxNDkwOWM1NjYxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTY4LDggKzY4LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAgICAgdmlydHVhbCB2b2lkIHJl
c3RvcmUoKTsKIAotICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1
bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkTWVz
c2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICBWZWN0
b3I8dW5zaWduZWQ+IGNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMoKTsKIAogICAgIHZvaWQg
c3RhcnRUaW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC03OCw5ICs3OCw5IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9NV2luZG93Kik7CiAKLSAgICB2
b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJl
cik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGRp
ZEZpbmlzaFhIUkxvYWRpbmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1i
ZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZEZhaWxMb2Fk
aW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3Im
KTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICB2b2lkIGFkZFByb2ZpbGVG
aW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUoUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxlPiwgdW5zaWdu
ZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogICAgIHZvaWQgYWRkU3Rh
cnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5o
CmluZGV4IGYwNDMyNmI2OWZkMTVhMDQyYTY1MzIzNTBlY2I5NDY0YWViOTkwYWIuLjAxYjYwYzhk
MzcwNDBhMGY4NzM4MjJjMTdhNTE5MThjNGM3Y2FhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaApA
QCAtMzksMzYgKzM5LDM2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqIHBhZ2Us
IE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFy
Z3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK2lubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBw
YWdlLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRz
PiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1l
bnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1w
bChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBhcmd1
bWVudHMsIGNhbGxTdGFjayk7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGFyZ3VtZW50cywg
Y2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiAjZW5kaWYKIH0KIAotaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqIHBhZ2Us
IE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWdu
ZWQgbGluZU51bWJlcikKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRk
TWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgc2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JQYWdlKHBhZ2UpKQotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzY3JpcHRJZCwgbGlu
ZU51bWJlcik7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKGluc3RydW1lbnRpbmdB
Z2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNjcmlwdElkLCBsaW5lTnVtYmVy
LCByZXF1ZXN0SWRlbnRpZmllcik7CiAjZW5kaWYKIH0KIAogI2lmIEVOQUJMRShXT1JLRVJTKQot
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xl
KFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
UGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6YWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0LCBNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVu
dHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JXb3JrZXJDb250ZXh0KHdvcmtlckNvbnRleHQpKQotICAgICAgICBhZGRNZXNzYWdlVG9D
b25zb2xlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNz
YWdlLCBhcmd1bWVudHMsIGNhbGxTdGFjayk7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJ
bXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGFy
Z3VtZW50cywgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiAjZW5kaWYKIH0KIAotaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFdv
cmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
VHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlcikKK2lubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJDb250ZXh0
KiB3b3JrZXJDb250ZXh0LCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50
aWZpZXIpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JXb3JrZXJD
b250ZXh0KHdvcmtlckNvbnRleHQpKQotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChp
bnN0cnVtZW50aW5nQWdlbnRzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzY3JpcHRJ
ZCwgbGluZU51bWJlcik7CisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNjcmlwdElkLCBsaW5l
TnVtYmVyLCByZXF1ZXN0SWRlbnRpZmllcik7CiAjZW5kaWYKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApp
bmRleCBjOWM5ZTRkZDBkNDQwOGVhODljMWNkNGYwNGIyMTU1NzEzMTFjNTRlLi4xMzJhZGY5ZDZm
YzVmODVjNDM3NDhlZDU1MmU1ZjdkZTAwZDM2MDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtOTUxLDIwICs5
NTEsMjAgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFdyaXRlSFRNTEltcGwo
Y29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ28KICAgICAgICAgdGltZWxpbmVBZ2VudC0+
ZGlkV3JpdGVIVE1MKGVuZExpbmUpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6YWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
KQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRl
bnRpZmllcikKIHsKICAgICBpZiAoSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JDb25zb2xlQWdlbnQoKSkKLSAgICAgICAg
Y29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1l
c3NhZ2UsIGFyZ3VtZW50cywgY2FsbFN0YWNrKTsKKyAgICAgICAgY29uc29sZUFnZW50LT5hZGRN
ZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGFyZ3VtZW50cywg
Y2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCiAgICAgaWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkpCiAgICAgICAgIGRl
YnVnZ2VyQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCB0eXBlKTsKICNlbmRpZgog
fQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVy
KQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlciwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKICAgICBpZiAoSW5zcGVjdG9yQ29u
c29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JD
b25zb2xlQWdlbnQoKSkKLSAgICAgICAgY29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xl
KHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNjcmlwdElkLCBsaW5lTnVtYmVyKTsKKyAg
ICAgICAgY29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2
ZWwsIG1lc3NhZ2UsIHNjcmlwdElkLCBsaW5lTnVtYmVyLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9
CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFBhc3NSZWZQdHI8U2NyaXB0QXJn
dW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFjaykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAppbmRleCBkMWI1Mjc0NjZkMzZmMGRiYzE5MmIzOGFlZGE5OTE1YmNhOWQ3NDBmLi5mOWUyMzZi
YTIzMTZmY2M2ZDZiNTE5ZmE0ZjY2ZjFiYjdjOTk2OTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xOTYsMTEgKzE5
NiwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSB3aWxsV3JpdGVIVE1MKERvY3VtZW50KiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQg
aW50IHN0YXJ0TGluZSk7CiAgICAgc3RhdGljIHZvaWQgZGlkV3JpdGVIVE1MKGNvbnN0IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGludCBlbmRMaW5lKTsKIAotICAg
IHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSosIE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0
cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHN0
YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSosIE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiwgdW5zaWduZWQgbGluZU51bWJlcik7CisgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29u
c29sZShQYWdlKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAp
OworICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSosIE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRl
bnRpZmllciA9IDApOwogI2lmIEVOQUJMRShXT1JLRVJTKQotICAgIHN0YXRpYyB2b2lkIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoV29ya2VyQ29udGV4dCosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRB
cmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHN0YXRpYyB2b2lk
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyQ29udGV4dCosIE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiwgdW5zaWduZWQgbGluZU51bWJlcik7CisgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29u
c29sZShXb3JrZXJDb250ZXh0KiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4s
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllciA9IDApOworICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyQ29u
dGV4dCosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWdu
ZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogI2VuZGlmCiAgICAgc3RhdGljIHZvaWQg
Y29uc29sZUNvdW50KFBhZ2UqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAgICAgc3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5n
KEZyYW1lKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC0zODksOCArMzg5LDggQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxXcml0ZUhU
TUxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25l
ZCBpbnQgc3RhcnRMaW5lLCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZFdyaXRlSFRNTElt
cGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiwgdW5zaWduZWQgaW50IGVu
ZExpbmUpOwogCi0gICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNz
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0Nv
bnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlw
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOworICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VU
b0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdl
VHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xl
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElk
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKTsK
ICAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBQ
YXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7
CiAgICAgc3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiwgRnJhbWUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgdm9pZCBzdG9w
Q29uc29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNv
bGUuY3BwCmluZGV4IDk3MTMzNzcyODRhNTM1NDNmYWI5NjZhMzAzZjgxYjY0MTQwMTFkM2MuLmE5
Zjk0YjZmZDFkMjE2MTIwNWZlNTI3YWE5NjZmNWI1NzA4ZTFiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25z
b2xlLmNwcApAQCAtMTM0LDEwICsxMzQsMTAgQEAgc3RhdGljIHZvaWQgcHJpbnRNZXNzYWdlU291
cmNlQW5kTGV2ZWxQcmVmaXgoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbAogCiB2
b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQogewotICAgIGFkZE1lc3NhZ2Uoc291cmNl
LCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjayk7CisgICAgYWRk
TWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2FsbFN0
YWNrLCAwKTsKIH0KIAotdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIENvbnNvbGU6OmFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwgdW5zaWdu
ZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKIAogICAgIGlmIChtdXRlQ291bnQgJiYg
c291cmNlICE9IENvbnNvbGVBUElNZXNzYWdlU291cmNlKQpAQCAtMTQ3LDE3ICsxNDcsMTcgQEAg
dm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGUKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3Vy
Y2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAgIHBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUs
IGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwpOwogCiAgICAgaWYgKGNhbGxTdGFjaykK
LSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBh
Z2UsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIDAsIGNhbGxTdGFjayk7CisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3Vy
Y2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCAwLCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVy
KTsKICAgICBlbHNlCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2Fn
ZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkws
IGxpbmVOdW1iZXIpOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3Nh
Z2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5l
TnVtYmVyLCByZXF1ZXN0SWRlbnRpZmllcik7CiAKICAgICBpZiAoIUNvbnNvbGU6OnNob3VsZFBy
aW50RXhjZXB0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmludFNvdXJjZVVSTEFu
ZExpbmUoc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKKyAgICBwcmludFNvdXJjZVVSTEFuZExpbmUo
dXJsLCBsaW5lTnVtYmVyKTsKICAgICBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChz
b3VyY2UsIGxldmVsKTsKIAogICAgIHByaW50ZigiICVzXG4iLCBtZXNzYWdlLnV0ZjgoKS5kYXRh
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRleCA5MTY3OTRlYTE5M2ExNTg1NmRjNmUxNTY0ODgz
NGRhZGE1NWE3ZGE1Li5jNGUzNGRkOTljYWEyMGQ2YmU0NTkxYTRlNWE2OTRkYzMxOTk2ZjlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnNvbGUuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8Q29uc29sZT4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IENvbnNvbGUoZnJhbWUpKTsgfQogICAgIHZpcnR1YWwgfkNvbnNvbGUoKTsKIAotICAg
IHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMID0gU3RyaW5n
KCksIHVuc2lnbmVkIGxpbmVOdW1iZXIgPSAwLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
PSAwKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCA9IFN0cmluZygpLCB1bnNpZ25lZCBsaW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+ID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogICAg
IHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAK
ICAgICB2b2lkIGRlYnVnKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3Bw
CmluZGV4IGQ2OTMxY2ZlYzkwZThkMjJhMTcyZWI4MjEyN2UwMDBjN2M1NzA5YWUuLjdlODI0MmQ4
NzViNWJiZDc4ZTJkOWJmMDFiMWEyZjhmYWFmMTYwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtMjc5LDIzICsyNzksMjMgQEAgdm9pZCBXb3JrZXJDb250
ZXh0Ojpsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNv
bnN0IFN0cmkKICAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5nUHJveHkoKS5wb3N0RXhjZXB0
aW9uVG9Xb3JrZXJPYmplY3QoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwog
fQogCi12b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgV29ya2VyQ29udGV4dDo6YWRk
TWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxl
dmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogICAgIGlmICghaXNDb250
ZXh0VGhyZWFkKCkpIHsKICAgICAgICAgcG9zdFRhc2soQWRkQ29uc29sZU1lc3NhZ2VUYXNrOjpj
cmVhdGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RDb25zb2xlTWVz
c2FnZVRvV29ya2VyT2JqZWN0KHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1i
ZXIsIHNvdXJjZVVSTCk7Ci0gICAgYWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShzb3VyY2UsIHR5
cGUsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjayk7Cisg
ICAgYWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdl
LCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwog
fQogCi12b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgV29y
a2VyQ29udGV4dDo6YWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJj
ZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNz
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyKQogewogICAgIEFTU0VSVChpc0NvbnRleHRUaHJlYWQoKSk7CiAgICAgaWYgKGNh
bGxTdGFjaykKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9D
b25zb2xlKHRoaXMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIDAsIGNhbGxTdGFjayk7
CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZSh0
aGlzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCAwLCBjYWxsU3RhY2ssIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKICAgICBlbHNlCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZSh0aGlzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBz
b3VyY2VVUkwsIGxpbmVOdW1iZXIpOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmFkZE1lc3NhZ2VUb0NvbnNvbGUodGhpcywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwg
c291cmNlVVJMLCBsaW5lTnVtYmVyLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKIGJvb2wgV29y
a2VyQ29udGV4dDo6aXNDb250ZXh0VGhyZWFkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmgKaW5kZXggOTg0MWE1ZTFkMjU2YjViYWZiMzk3MGRjZmYzMDRhMTNkZWRj
YjI3Ni4uNDg3Zjc2YzZjNTM0YzZlZDJhMTUyZGU2ZTA5ODRmNmIwMDM0ZDJmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OkhlYWRlclR5cGUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRp
b25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMLCBpbnQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAg
ICAgICAgdm9pZCBhZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPik7CisgICAgICAgIHZvaWQgYWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4sIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgeyByZWYoKTsgfQpAQCAtMTU5LDcgKzE1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgS1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAK
LSAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAKICAgICAgICAgdmly
dHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171424</attachid>
            <date>2012-10-30 05:22:16 -0700</date>
            <delta_ts>2012-10-30 09:56:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-99941-20121030132040.patch</filename>
            <type>text/plain</type>
            <size>40908</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWIzNzU0NDk4OWQ2MDY3
ZWQ5MDk4MWE1MTcxMDA1NDlhM2JmYzdhZC4uODQ3Y2JmNzdjMGZlODdhMjg1MDQ3OGJhYzVhOGVj
NWM3YzZjZWE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTEwLTI5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQXNz
b2NpYXRlIGNvbnNvbGUgbWVzc2FnZXMgd2l0aCB0aGUgcmVxdWVzdHMgdGhhdCBjYXVzZWQgdGhl
bS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KKworICAgICAgICBUaGUgaW5z
cGVjdG9yIGN1cnJlbnRseSBzdXBwb3J0cyB0aGUgY29uY2VwdCBvZiBhIHJlcXVlc3QncyAiaW5p
dGlhdG9yIgorICAgICAgICBpbiBvcmRlciB0byBhZGQgY29udGV4dCB0byBjb25zb2xlIG1lc3Nh
Z2VzIHRoYXQgYXJlIGdlbmVyYXRlZCBpbgorICAgICAgICByZXNwb25zZSB0byBhIHNwZWNpZmlj
IHJlcXVlc3QuIFRoZSBpbml0aWF0b3IgaXMgdXNlZCBhcyB0aGUgbWVzc2FnZSdzCisgICAgICAg
IGFuY2hvciBsaW5rIGlmZiBhIHJlcXVlc3RJRCBpcyBwcmVzZW50LCBhbmQgbm8gc3RhY2sgdHJh
Y2UgaXMgcHJlc2VudC4KKworICAgICAgICBDdXJyZW50bHksIHRoaXMgZnVuY3Rpb25hbGl0eSBp
cyBvbmx5IGV4cG9zZWQgdG8gdGhyZWUgc3BlY2lmaWMKKyAgICAgICAgY2FsbHNpdGVzOiAnSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpkaWRGaW5pc2hYSFJMb2FkaW5nJywKKyAgICAgICAgJ0luc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlJywgYW5kCisgICAgICAgICdJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZEZhaWxMb2FkaW5nJy4gVGhpcyBwYXRjaCBhZGRzIGEgZ2Vu
ZXJpYworICAgICAgICBtZWNoYW5pc20gdG8gYXNzb2NpYXRlIHJlcXVlc3RzIHdpdGggY29uc29s
ZSBtZXNzYWdlcyBieSBwYXNzaW5nIHRoZQorICAgICAgICByZXF1ZXN0J3MgaWRlbnRpZmllciB0
aHJvdWdoICdTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZScKKyAgICAg
ICAgb3IgJ0NvbnNvbGU6OmFkZE1lc3NhZ2UnIHdoZW4gcmVsZXZhbnQuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBzaG91bGQgaGF2ZSBubyB2aXNpYmxlIGNoYW5nZXMuIEl0IGp1c3QgaW5zdGFsbHMg
c29tZSBuZXcKKyAgICAgICAgcGlwaW5nLCBhbmQgYWRqdXN0cyB0aGUgdGhyZWUgbWV0aG9kcyBt
ZW50aW9uZWQgYWJvdmUgdG8gdXNlIGl0LgorICAgICAgICBFeGlzdGluZyB0ZXN0cyBzaG91bGRu
J3QgYnJlYWsuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAoRG9jdW1lbnQpOgorICAgICAgICAgICAgQWRkIGEgJ3JlcXVlc3RJZGVudGlmaWVyJyBw
YXJhbWV0ZXIgKGRlZmF1bHRpbmcgdG8gMCksIGFuZCBwaXBlIGl0CisgICAgICAgICAgICB0aHJv
dWdoIHRvIENvbnNvbGU6OmFkZE1lc3NhZ2UuCisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
YWRkQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
Lmg6CisgICAgICAgIChTY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgICAgIEFkZCBh
ICdyZXF1ZXN0SWRlbnRpZmllcicgcGFyYW1ldGVyIChkZWZhdWx0aW5nIHRvIDApLCBhbmQgcGlw
ZSBpdAorICAgICAgICAgICAgdGhyb3VnaCB0byB0aGUgc3ViY2xhc3MnIGFkZE1lc3NhZ2UgbWV0
aG9kLgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAgICAgQWNj
ZXB0IGFuIHVuc2lnbmVkIGxvbmcgaW5zdGVhZCBvZiBhIHN0cmluZywgYW5kIG1vdmUgdGhlIGNv
bnZlcnNpb24KKyAgICAgICAgICAgIGZyb20gV2ViQ29yZSByZXF1ZXN0IGlkZW50aWZpZXJzIHRv
IEluc3BlY3RvciByZXF1ZXN0IGlkZW50aWZpZXJzCisgICAgICAgICAgICBpbnRvIENvbnNvbGVN
ZXNzYWdlLgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oOgorICAgICAgICAo
Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAgICAgQWRkICdyZXF1ZXN0SWRlbnRpZmllcicgKGRl
ZmF1bHRpbmcgdG8gMCkgdG8gdGhlCisgICAgICAgICAgICBDb25zb2xlTWVzc2FnZSBjb25zdHJ1
Y3RvciB0aGF0IGFjY2VwdHMgYSBTY3JpcHRDYWxsU3RhY2sgKGl0IHdhcworICAgICAgICAgICAg
YWxyZWFkeSBwYXJ0IG9mIHRoZSBjb25zdHJ1Y3RvciB0aGF0IGFjY2VwdGVkIGEgbGluZSBudW1i
ZXIpLgorICAgICAgICAqIGluc3BlY3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQpOgorICAgICAgICAgICAg
SWYgdGhlIHByb3ZpZGVkIHJlcXVlc3QgaWRlbnRpZmllciBpcyAwLCByZXR1cm4gYW4gZW1wdHkg
c3RyaW5nLgorICAgICAgICAgICAgVGhpcyBzaW1wbGlmaWVzIHRoZSBsb2dpYyBhdCB0aGUgY2Fs
bHNpdGUuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmFkZE1lc3NhZ2VUb0NvbnNv
bGUpOgorICAgICAgICAgICAgQWRkIGEgJ3JlcXVlc3RJZGVudGlmaWVyJyBwYXJhbWV0ZXIgKGRl
ZmF1bHRpbmcgdG8gMCksIGFuZCBwaXBlIGl0CisgICAgICAgICAgICB0aHJvdWdoIHRvIHRoZSAn
Q29uc29sZU1lc3NhZ2UnIGNvbnN0cnVjdG9yIGFmdGVyIGNvbnZlcnRpbmcgaXQgdG8KKyAgICAg
ICAgICAgIGFuIGludGVybmFsIGlkZW50aWZpZXIgdmlhICdJZGVudGlmaWVyc0ZhY3Rvcjo6cmVx
dWVzdElkJy4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkRmlu
aXNoWEhSTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6
OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xl
QWdlbnQ6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgICAgIFVzZSB0aGUgbmV3ICdyZXF1ZXN0
SWRlbnRpZmllcicgcGFyYW1ldGVyIG9uIGFkZE1lc3NhZ2VUb0NvbnNvbGUKKyAgICAgICAgICAg
IHJhdGhlciB0aGFuIHJlcGxpY2F0aW5nIHRoZSBiZWhhdmlvciBpbiBlYWNoIG9mIHRoZXNlIHRo
cmVlIG1ldGhvZHMuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5o
OgorICAgICAgICAoSW5zcGVjdG9yQ29uc29sZUFnZW50KToKKyAgICAgICAgICAgIEFkZCBhICdy
ZXF1ZXN0SWRlbnRpZmllcicgcGFyYW1ldGVyIChkZWZhdWx0aW5nIHRvIDApLgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24pOgor
ICAgICAgICAgICAgQWRkIGEgJ3JlcXVlc3RJZGVudGlmaWVyJyBwYXJhbWV0ZXIgKGRlZmF1bHRp
bmcgdG8gMCksIGFuZCBwaXBlIGl0CisgICAgICAgICAgICB0aHJvdWdoIHRvIGxvd2VyIGxldmVs
cyBvZiB0aGUgc3RhY2suCisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnNvbGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgor
ICAgICAgICAoQ29uc29sZSk6CisgICAgICAgICAgICBBZGQgYSAncmVxdWVzdElkZW50aWZpZXIn
IHBhcmFtZXRlciAoZGVmYXVsdGluZyB0byAwKSwgYW5kIHBpcGUgaXQKKyAgICAgICAgICAgIHRo
cm91Z2ggdG8gJ0luc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZScu
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29u
dGV4dDo6YWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZSk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJDb250ZXh0Lmg6CisgICAgICAgIChXb3JrZXJDb250ZXh0KToKKyAgICAgICAgICAgIEFkZCBh
ICdyZXF1ZXN0SWRlbnRpZmllcicgcGFyYW1ldGVyIChkZWZhdWx0aW5nIHRvIDApLCBhbmQgcGlw
ZSBpdAorICAgICAgICAgICAgdGhyb3VnaCB0byAnSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjph
ZGRNZXNzYWdlVG9Db25zb2xlJy4KKwogMjAxMi0xMC0yOSAgRXJpYyBTZWlkZWwgIDxlcmljQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSByZW5kZXJpbmcgdGFibGVzIHdpdGggPGNvbGdyb3Vw
cz4gdHdpY2UgYXMgZmFzdCBieSBhdm9pZGluZyB3YWxraW5nIHRoZSBET00gZm9yIGNvbGdyb3Vw
cyA0IHRpbWVzIGZvciBlYWNoIGNlbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDM1ZGZj
MmJkZjVmNWJiMGU4MzRiZWY2NGEzNTdiMDZlZTYwZGEzYzIuLjg4Y2E3MTQ2Njk2NTQxMDNiMmIy
NjBmYjU1ZmVmYjI5MTBkMjRiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDg2Miw3
ICs0ODYyLDcgQEAgdm9pZCBEb2N1bWVudDo6cGFyc2VETlNQcmVmZXRjaENvbnRyb2xIZWFkZXIo
Y29uc3QgU3RyaW5nJiBkbnNQcmVmZXRjaENvbnRyb2wpCiAgICAgbV9oYXZlRXhwbGljaXRseURp
c2FibGVkRE5TUHJlZmV0Y2ggPSB0cnVlOwogfQogCi12b2lkIERvY3VtZW50OjphZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2
b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7
CiAgICAgaWYgKCFpc0NvbnRleHRUaHJlYWQoKSkgewogICAgICAgICBwb3N0VGFzayhBZGRDb25z
b2xlTWVzc2FnZVRhc2s6OmNyZWF0ZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlKSk7CkBA
IC00ODcxLDcgKzQ4NzEsNyBAQCB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbAogCiAgICAgaWYgKERP
TVdpbmRvdyogd2luZG93ID0gZG9tV2luZG93KCkpIHsKICAgICAgICAgaWYgKENvbnNvbGUqIGNv
bnNvbGUgPSB3aW5kb3ctPmNvbnNvbGUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3Nh
Z2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBj
YWxsU3RhY2spOworICAgICAgICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShzb3VyY2UsIHR5cGUs
IGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjaywgcmVxdWVz
dElkZW50aWZpZXIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzZWVhMGYw
ZGRhODE4ZDM2MWQwYWUxYmY4MGYxODg1ZjMwZWE1Mjc0Li4yNTk0YTljMWQ3MzYxMDE0NzBlMTdj
OWE3OTQzNTNkZWI0N2E0MTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE5Myw3ICsxMTkz
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwoKSBjb25z
dDsgLy8gU2FtZSBhcyB1cmwoKSwgYnV0IG5lZWRlZCBmb3IgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCB0byBpbXBsZW1lbnQgaXQgd2l0aG91dCBhIHBlcmZvcm1hbmNlIGxvc3MgZm9yIGRpcmVjdCBj
YWxscy4KICAgICB2aXJ0dWFsIEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYp
IGNvbnN0OyAvLyBTYW1lIGFzIGNvbXBsZXRlVVJMKCkgZm9yIHRoZSBzYW1lIHJlYXNvbiBhcyBh
Ym92ZS4KIAotICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPik7CisgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAKICAgICB2aXJ0dWFs
IGRvdWJsZSBtaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMGY4OGViNjQwYTI5OWMyZmQw
ZGYwYzE5M2FkNTA2YzEzMGJlMzg0Mi4uMzlhM2RjZDYwMzZhZDViYjlmYjVhYTA3MTMxODk1M2M2
ZDAzNDE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcApAQCAtMzExLDE0ICszMTEsMTQgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpy
ZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW4KICAgICBt
X3BlbmRpbmdFeGNlcHRpb25zLmNsZWFyKCk7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjaywgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKLSAgICBhZGRNZXNz
YWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwg
Y2FsbFN0YWNrKTsKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2Us
IHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9
CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
KQordm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ss
IHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7Ci0gICAgYWRkTWVzc2FnZShzb3Vy
Y2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2FsbFN0YWNrKTsKKyAgICBh
ZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxs
U3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCA1MDExMWE0ZmVlYjk4Y2FhMTc3OWRlNTY2MTNi
ODhmYWNiNDJiZTM2Li4zNDI0OGY0YzJkYzMzZTEzNGUyYTAwYzJiMzY4NThlZWQzNDI4OGIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTgzLDgg
KzgzLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2
b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVO
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4pOwotICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCA9IFN0cmluZygpLCB1bnNpZ25lZCBsaW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+ID0gMCk7Ci0gICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMID0gU3RyaW5nKCksIHVuc2lnbmVkIGxp
bmVOdW1iZXIgPSAwLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwLCB1bnNpZ25lZCBs
b25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0
SWRlbnRpZmllciA9IDApOwogCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgUHVibGljVVJMTWFuYWdl
ciYgcHVibGljVVJMTWFuYWdlcigpOwpAQCAtMTg3LDcgKzE4Nyw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
S1VSTCB2aXJ0dWFsQ29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3QgPSAwOwogCi0gICAg
dmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
dW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCB1bnNp
Z25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2Vw
dGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pID0g
MDsKICAgICBib29sIGRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IDgwMTc1NTM5MDcwZjdmMzIx
Y2RmOTVkYjUxOGE5M2VhZWYwNDM5ZGEuLmJkZWE5NzcwZmVjNWQzOTAzMjIwZWI2NDc1MWJlNGIw
YWVlMjIxMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVz
c2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNw
cApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCiAKICNpbmNs
dWRlICJDb25zb2xlLmgiCisjaW5jbHVkZSAiSWRlbnRpZmllcnNGYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiSW5qZWN0ZWRTY3JpcHQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgpAQCAtNDYsNyArNDcsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLUNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0s
IGNvbnN0IFN0cmluZyYgdSwgdW5zaWduZWQgbGksIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKQor
Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5
cGUgdCwgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3QgU3RyaW5nJiB1LCB1
bnNpZ25lZCBsaSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKICAgICA6IG1fc291
cmNlKHMpCiAgICAgLCBtX3R5cGUodCkKICAgICAsIG1fbGV2ZWwobCkKQEAgLTU0LDExICs1NSwx
MSBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNz
YWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgYwogICAgICwgbV91cmwodSkKICAgICAsIG1fbGlu
ZShsaSkKICAgICAsIG1fcmVwZWF0Q291bnQoMSkKLSAgICAsIG1fcmVxdWVzdElkKHJlcXVlc3RJ
ZCkKKyAgICAsIG1fcmVxdWVzdElkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKHJlcXVl
c3RJZGVudGlmaWVyKSkKIHsKIH0KIAotQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGNvbnN0IFN0cmlu
ZyYgbSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK0NvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBT
dHJpbmcmIG0sIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50
aWZpZXIpCiAgICAgOiBtX3NvdXJjZShzKQogICAgICwgbV90eXBlKHQpCiAgICAgLCBtX2xldmVs
KGwpCkBAIC02Nyw2ICs2OCw3IEBAIENvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjCiAgICAgLCBtX3Vy
bCgpCiAgICAgLCBtX2xpbmUoMCkKICAgICAsIG1fcmVwZWF0Q291bnQoMSkKKyAgICAsIG1fcmVx
dWVzdElkKElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKHJlcXVlc3RJZGVudGlmaWVyKSkK
IHsKICAgICBpZiAoY2FsbFN0YWNrICYmIGNhbGxTdGFjay0+c2l6ZSgpKSB7CiAgICAgICAgIGNv
bnN0IFNjcmlwdENhbGxGcmFtZSYgZnJhbWUgPSBjYWxsU3RhY2stPmF0KDApOwpAQCAtNzYsNyAr
NzgsNyBAQCBDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBN
ZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgYwogICAgIG1fY2FsbFN0YWNrID0gY2FsbFN0
YWNrOwogfQogCi1Db25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBz
LCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBtLCBjb25zdCBT
dHJpbmcmIHJlc3BvbnNlVXJsLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkKK0NvbnNvbGVNZXNz
YWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3Nh
Z2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0sIGNvbnN0IFN0cmluZyYgcmVzcG9uc2VVcmwsIHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiAgICAgOiBtX3NvdXJjZShzKQogICAgICwg
bV90eXBlKHQpCiAgICAgLCBtX2xldmVsKGwpCkBAIC04NCw3ICs4Niw3IEBAIENvbnNvbGVNZXNz
YWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3Nh
Z2VMZXZlbCBsLCBjCiAgICAgLCBtX3VybChyZXNwb25zZVVybCkKICAgICAsIG1fbGluZSgwKQog
ICAgICwgbV9yZXBlYXRDb3VudCgxKQotICAgICwgbV9yZXF1ZXN0SWQocmVxdWVzdElkKQorICAg
ICwgbV9yZXF1ZXN0SWQoSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQocmVxdWVzdElkZW50
aWZpZXIpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5o
CmluZGV4IDY0NjFkYjcyMDI3OWFiYjhkNmNlYjI4ZWQ2YTllNzUwNTdmZTE1ZDMuLjA3ZWZhMTc2
MjRlODc0NjgxY2U1ZThiYTk2YjZmZGRjOWMyNjYxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5oCkBAIC01MSw5ICs1MSw5IEBAIGNsYXNzIFNjcmlwdFZhbHVl
OwogY2xhc3MgQ29uc29sZU1lc3NhZ2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnNv
bGVNZXNzYWdlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHUsIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHJl
cXVlc3RJZCA9IFN0cmluZygpKTsKLSAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICBDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG0sIGNvbnN0IFN0cmluZyYgcmVzcG9uc2VVcmwsIGNvbnN0IFN0cmluZyYgcmVxdWVz
dElkKTsKKyAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIGNvbnN0IFN0cmluZyYgdSwgdW5zaWduZWQgbGks
IHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKKyAgICBDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcm
IG0sIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtLCBjb25zdCBTdHJpbmcmIHJlc3BvbnNlVXJsLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKICAgICB+Q29uc29sZU1lc3NhZ2UoKTsKIAogICAgIHZvaWQgYWRkVG9Gcm9u
dGVuZChJbnNwZWN0b3JGcm9udGVuZDo6Q29uc29sZSosIEluamVjdGVkU2NyaXB0TWFuYWdlcios
IGJvb2wgZ2VuZXJhdGVQcmV2aWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lk
ZW50aWZpZXJzRmFjdG9yeS5jcHAKaW5kZXggYzJhZjJhNTY2OTg4MjY3NjNmM2M3ZDkxY2QzMmJk
NDM3ODkyN2FhMy4uZGNlMmEyODUwZTM3NTYyNzYzMTViZDg5ODc0Y2U5NTkyMGQ3MmIyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5jcHAKQEAg
LTQ5LDcgKzQ5LDkgQEAgU3RyaW5nIElkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmll
cigpCiAvLyBzdGF0aWMKIFN0cmluZyBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZCh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkZFByb2Nlc3NJZFByZWZpeFRv
KFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIpKTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAg
ICAgcmV0dXJuIGFkZFByb2Nlc3NJZFByZWZpeFRvKFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIp
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIC8vIHN0YXRpYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA5ZTYyMmMw
NGNmZGQ2N2I4OWJjMjU4NmRiYTYzZTkwYTEyNTEzZDliLi5hODMzZmMxZTlmMTAxNWM3ZTZlMWNi
MDI4YmNlNGFhY2M4ZjcwYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkNv
bnNvbGUuaCIKICNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgotI2luY2x1ZGUgIklkZW50aWZpZXJzRmFjdG9yeS5oIgogI2luY2x1ZGUgIkluamVjdGVk
U2NyaXB0SG9zdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCkBAIC05NCw3ICs5Myw3IEBAIHZvaWQgSW5zcGVjdG9y
Q29uc29sZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqKQogICAgIG1fc3RhdGUtPnNldEJvb2xl
YW4oQ29uc29sZUFnZW50U3RhdGU6OmNvbnNvbGVNZXNzYWdlc0VuYWJsZWQsIHRydWUpOwogCiAg
ICAgaWYgKG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQpIHsKLSAgICAgICAgQ29uc29sZU1l
c3NhZ2UgZXhwaXJlZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
V2FybmluZ01lc3NhZ2VMZXZlbCwgU3RyaW5nOjpmb3JtYXQoIiVkIGNvbnNvbGUgbWVzc2FnZXMg
YXJlIG5vdCBzaG93bi4iLCBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KSwgIiIsIDAsICIi
KTsKKyAgICAgICAgQ29uc29sZU1lc3NhZ2UgZXhwaXJlZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgU3RyaW5nOjpmb3JtYXQo
IiVkIGNvbnNvbGUgbWVzc2FnZXMgYXJlIG5vdCBzaG93bi4iLCBtX2V4cGlyZWRDb25zb2xlTWVz
c2FnZUNvdW50KSwgIiIsIDAsIDApOwogICAgICAgICBleHBpcmVkTWVzc2FnZS5hZGRUb0Zyb250
ZW5kKG1fZnJvbnRlbmQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBmYWxzZSk7CiAgICAgfQog
CkBAIC0xNTIsMTggKzE1MSwxOCBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y2xlYXJG
cm9udGVuZCgpCiAgICAgZGlzYWJsZSgmZXJyb3JTdHJpbmcpOwogfQogCi12b2lkIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRk
TWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFkZXZl
bG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBhZGRDb25zb2xlTWVz
c2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVz
c2FnZSwgYXJndW1lbnRzLCBjYWxsU3RhY2spKSk7CisgICAgYWRkQ29uc29sZU1lc3NhZ2UoYWRv
cHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGFy
Z3VtZW50cywgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcikpKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQordm9p
ZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogICAgIGlmICghZGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgYWRkQ29uc29sZU1lc3NhZ2Uo
YWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2Us
IHNjcmlwdElkLCBsaW5lTnVtYmVyKSkpOworICAgIGFkZENvbnNvbGVNZXNzYWdlKGFkb3B0UHRy
KG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzY3JpcHRJ
ZCwgbGluZU51bWJlciwgcmVxdWVzdElkZW50aWZpZXIpKSk7CiB9CiAKIFZlY3Rvcjx1bnNpZ25l
ZD4gSW5zcGVjdG9yQ29uc29sZUFnZW50Ojpjb25zb2xlTWVzc2FnZUFyZ3VtZW50Q291bnRzKCkK
QEAgLTIzNiwzMiArMjM1LDMwIEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpmcmFtZVdp
bmRvd0Rpc2NhcmRlZChET01XaW5kb3cqIHdpbmRvdykKICAgICBtX2luamVjdGVkU2NyaXB0TWFu
YWdlci0+ZGlzY2FyZEluamVjdGVkU2NyaXB0c0Zvcih3aW5kb3cpOwogfQogCi12b2lkIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVk
IHNlbmRMaW5lTnVtYmVyKQordm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZEZpbmlzaFhI
UkxvYWRpbmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpCiB7CiAg
ICAgaWYgKCFkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKICAgICBp
ZiAobV9mcm9udGVuZCAmJiBtX3N0YXRlLT5nZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjpt
b25pdG9yaW5nWEhSKSkgewogICAgICAgICBTdHJpbmcgbWVzc2FnZSA9ICJYSFIgZmluaXNoZWQg
bG9hZGluZzogXCIiICsgdXJsICsgIlwiLiI7Ci0gICAgICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJ
ZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICAgICAgYWRkQ29u
c29sZU1lc3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKE5ldHdvcmtNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzZW5kVVJMLCBz
ZW5kTGluZU51bWJlciwgcmVxdWVzdElkKSkpOworICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xl
KE5ldHdvcmtNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBt
ZXNzYWdlLCBzZW5kVVJMLCBzZW5kTGluZU51bWJlciwgcmVxdWVzdElkZW50aWZpZXIpOwogICAg
IH0KIAogCiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9u
c2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCiB7CiAgICAgaWYgKCFkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCkgewogICAg
ICAgICBTdHJpbmcgbWVzc2FnZSA9ICJGYWlsZWQgdG8gbG9hZCByZXNvdXJjZTogdGhlIHNlcnZl
ciByZXNwb25kZWQgd2l0aCBhIHN0YXR1cyBvZiAiICsgU3RyaW5nOjpudW1iZXIocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSkgKyAiICgiICsgcmVzcG9uc2UuaHR0cFN0YXR1c1RleHQoKSArICcp
JzsKLSAgICAgICAgU3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVz
dElkKGlkZW50aWZpZXIpOwotICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcg
Q29uc29sZU1lc3NhZ2UoTmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIHJlcXVlc3RJ
ZCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZShOZXR3b3JrTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXNwb25zZS51cmwo
KS5zdHJpbmcoKSwgMCwgcmVxdWVzdElkZW50aWZpZXIpOwogICAgIH0KIH0KIAotdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKCFkZXZlbG9wZXJFeHRyYXNFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI3Myw4ICsyNzAsNyBAQCB2b2lkIEluc3BlY3RvckNv
bnNvbGVBZ2VudDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdQogICAgICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIjogIik7CiAgICAgICAgIG1l
c3NhZ2UuYXBwZW5kKGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwogICAgIH0KLSAgICBT
dHJpbmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmll
cik7Ci0gICAgYWRkQ29uc29sZU1lc3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKE5l
dHdvcmtNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1l
c3NhZ2UudG9TdHJpbmcoKSwgZXJyb3IuZmFpbGluZ1VSTCgpLCByZXF1ZXN0SWQpKSk7CisgICAg
YWRkTWVzc2FnZVRvQ29uc29sZShOZXR3b3JrTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLnRvU3RyaW5nKCksIGVycm9yLmZhaWxpbmdVUkwo
KSwgMCwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcqLCBib29sIGVuYWJsZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5k
ZXggN2Y0MzM5MzEzYzM4MWUxNzM3NzUxODg0MmU2YjQyODIyMWY2MDRlNS4uMWZlNzE0ZTQ5Y2Q2
MTg0YzQzYTQ2NTcwNDczNDE0OTA5YzU2NjFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNjgsOCArNjgsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVz
dG9yZSgpOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0
cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHZv
aWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIHVu
c2lnbmVkIGxpbmVOdW1iZXIpOworICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgdm9pZCBhZGRNZXNz
YWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogICAgIFZlY3Rv
cjx1bnNpZ25lZD4gY29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50cygpOwogCiAgICAgdm9pZCBz
dGFydFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlKTsKQEAgLTc4LDkgKzc4LDkgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqKTsKIAotICAgIHZv
aWQgZGlkRmluaXNoWEhSTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVy
KTsKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkaW5nKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgZGlk
RmluaXNoWEhSTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJl
cik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGlkRmFpbExvYWRp
bmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYp
OwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIHZvaWQgYWRkUHJvZmlsZUZp
bmlzaGVkTWVzc2FnZVRvQ29uc29sZShQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+LCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdm9pZCBhZGRTdGFy
dFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgK
aW5kZXggZjA0MzI2YjY5ZmQxNWEwNDJhNjUzMjM1MGVjYjk0NjRhZWI5OTBhYi4uMDFiNjBjOGQz
NzA0MGEwZjg3MzgyMmMxN2E1MTkxOGM0YzdjYWFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCkBA
IC0zOSwzNiArMzksMzYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwg
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJn
dW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQoraW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqIHBh
Z2UsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwg
bGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+
IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgdW5zaWdu
ZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
IGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVu
dGluZ0FnZW50c0ZvclBhZ2UocGFnZSkpCi0gICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBs
KGluc3RydW1lbnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGFyZ3Vt
ZW50cywgY2FsbFN0YWNrKTsKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1
bWVudGluZ0FnZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRzLCBj
YWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKICNlbmRpZgogfQogCi1pbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwg
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRN
ZXNzYWdlVG9Db25zb2xlKFBhZ2UqIHBhZ2UsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
VHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBzY3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50
c0ZvclBhZ2UocGFnZSkpCi0gICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKGluc3RydW1l
bnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNjcmlwdElkLCBsaW5l
TnVtYmVyKTsKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVudGluZ0Fn
ZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc2NyaXB0SWQsIGxpbmVOdW1iZXIs
IHJlcXVlc3RJZGVudGlmaWVyKTsKICNlbmRpZgogfQogCiAjaWYgRU5BQkxFKFdPUktFUlMpCi1p
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUo
V29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQ
YXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gY2FsbFN0YWNrKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjphZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQsIE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50
cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50
c0ZvcldvcmtlckNvbnRleHQod29ya2VyQ29udGV4dCkpCi0gICAgICAgIGFkZE1lc3NhZ2VUb0Nv
bnNvbGVJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3Nh
Z2UsIGFyZ3VtZW50cywgY2FsbFN0YWNrKTsKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUlt
cGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJn
dW1lbnRzLCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKICNlbmRpZgogfQogCi1pbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoV29y
a2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VU
eXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQoraW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKFdvcmtlckNvbnRleHQq
IHdvcmtlckNvbnRleHQsIE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBz
Y3JpcHRJZCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvcldvcmtlckNv
bnRleHQod29ya2VyQ29udGV4dCkpCi0gICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKGlu
c3RydW1lbnRpbmdBZ2VudHMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNjcmlwdElk
LCBsaW5lTnVtYmVyKTsKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoaW5zdHJ1bWVu
dGluZ0FnZW50cywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc2NyaXB0SWQsIGxpbmVO
dW1iZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmlu
ZGV4IGM5YzllNGRkMGQ0NDA4ZWE4OWMxY2Q0ZjA0YjIxNTU3MTMxMWM1NGUuLjEzMmFkZjlkNmZj
NWY4NWM0Mzc0OGVkNTUyZTVmN2RlMDBkMzYwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC05NTEsMjAgKzk1
MSwyMCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkV3JpdGVIVE1MSW1wbChj
b25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25DbwogICAgICAgICB0aW1lbGluZUFnZW50LT5k
aWRXcml0ZUhUTUwoZW5kTGluZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjphZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJn
dW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2sp
Cit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyKQogewogICAgIGlmIChJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNvbnNvbGVBZ2VudCgpKQotICAgICAgICBj
b25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVz
c2FnZSwgYXJndW1lbnRzLCBjYWxsU3RhY2spOworICAgICAgICBjb25zb2xlQWdlbnQtPmFkZE1l
c3NhZ2VUb0NvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRzLCBj
YWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKICAgICBpZiAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkKICAgICAgICAgZGVi
dWdnZXJBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIHR5cGUpOwogI2VuZGlmCiB9
CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBNZXNzYWdlU291cmNl
IHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQsIHVuc2lnbmVkIGxpbmVOdW1iZXIp
Cit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgTWVzc2FnZVNvdXJjZSBz
b3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElkLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogICAgIGlmIChJbnNwZWN0b3JDb25z
b2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNv
bnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUo
c291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc2NyaXB0SWQsIGxpbmVOdW1iZXIpOworICAg
ICAgICBjb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCB0eXBlLCBsZXZl
bCwgbWVzc2FnZSwgc2NyaXB0SWQsIGxpbmVOdW1iZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVDb3VudEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CmluZGV4IGQxYjUyNzQ2NmQzNmYwZGJjMTkyYjM4YWVkYTk5MTViY2E5ZDc0MGYuLmY5ZTIzNmJh
MjMxNmZjYzZkNmI1MTlmYTRmNjZmMWJiN2M5OTY5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE5NiwxMSArMTk2
LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
IHdpbGxXcml0ZUhUTUwoRG9jdW1lbnQqLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBp
bnQgc3RhcnRMaW5lKTsKICAgICBzdGF0aWMgdm9pZCBkaWRXcml0ZUhUTUwoY29uc3QgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiwgdW5zaWduZWQgaW50IGVuZExpbmUpOwogCi0gICAg
c3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiwgTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgc3Rh
dGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
LCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25z
b2xlKFBhZ2UqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7
CisgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiwgTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyID0gMCk7CiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgc3RhdGljIHZvaWQgYWRkTWVz
c2FnZVRvQ29uc29sZShXb3JrZXJDb250ZXh0KiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUs
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgc3RhdGljIHZvaWQg
YWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJDb250ZXh0KiwgTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
LCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25z
b2xlKFdvcmtlckNvbnRleHQqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlm
aWVyID0gMCk7CisgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJDb250
ZXh0KiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAjZW5kaWYKICAgICBzdGF0aWMgdm9pZCBj
b25zb2xlQ291bnQoUGFnZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmco
RnJhbWUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKQEAgLTM4OSw4ICszODksOCBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFdyaXRlSFRN
TEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVk
IGludCBzdGFydExpbmUsIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkV3JpdGVIVE1MSW1w
bChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmLCB1bnNpZ25lZCBpbnQgZW5k
TGluZSk7CiAKLSAgICBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29u
c29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzY3Jp
cHRJZCwgdW5zaWduZWQgbGluZU51bWJlcik7CisgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRv
Q29uc29sZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3Jp
cHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIpOworICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2NyaXB0SWQs
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpOwog
ICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVDb3VudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBh
c3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsK
ICAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBGcmFtZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0b3BD
b25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRnJhbWUqLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29s
ZS5jcHAKaW5kZXggOTcxMzM3NzI4NGE1MzU0M2ZhYjk2NmEzMDNmODFiNjQxNDAxMWQzYy4uYTlm
OTRiNmZkMWQyMTYxMjA1ZmU1MjdhYTk2NmY1YjU3MDhlMWI5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNv
bGUuY3BwCkBAIC0xMzQsMTAgKzEzNCwxMCBAQCBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3Vy
Y2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsCiAKIHZv
aWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7Ci0gICAgYWRkTWVzc2FnZShzb3VyY2Us
IHR5cGUsIGxldmVsLCBtZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2FsbFN0YWNrKTsKKyAgICBhZGRN
ZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3Rh
Y2ssIDApOwogfQogCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgQ29uc29sZTo6YWRkTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNp
Z25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogCiAgICAgaWYgKG11dGVDb3VudCAmJiBz
b3VyY2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UpCkBAIC0xNDcsMTcgKzE0NywxNyBAQCB2
b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJj
ZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CisgICAgcGFn
ZS0+Y2hyb21lKCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgdHlwZSwg
bGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHVybCk7CiAKICAgICBpZiAoY2FsbFN0YWNrKQot
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFn
ZSwgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgMCwgY2FsbFN0YWNrKTsKKyAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJj
ZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIDAsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIp
OwogICAgIGVsc2UKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdl
VG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwg
bGluZU51bWJlcik7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2Fn
ZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmVO
dW1iZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKIAogICAgIGlmICghQ29uc29sZTo6c2hvdWxkUHJp
bnRFeGNlcHRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHByaW50U291cmNlVVJMQW5k
TGluZShzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOworICAgIHByaW50U291cmNlVVJMQW5kTGluZSh1
cmwsIGxpbmVOdW1iZXIpOwogICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KHNv
dXJjZSwgbGV2ZWwpOwogCiAgICAgcHJpbnRmKCIgJXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29uc29sZS5oCmluZGV4IDkxNjc5NGVhMTkzYTE1ODU2ZGM2ZTE1NjQ4ODM0
ZGFkYTU1YTdkYTUuLmM0ZTM0ZGQ5OWNhYTIwZDZiZTQ1OTFhNGU1YTY5NGRjMzE5OTZmOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29uc29sZS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxDb25zb2xlPiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgQ29uc29sZShmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+Q29uc29sZSgpOwogCi0gICAg
dm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwgPSBTdHJpbmco
KSwgdW5zaWduZWQgbGluZU51bWJlciA9IDAsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9
IDApOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
ID0gU3RyaW5nKCksIHVuc2lnbmVkIGxpbmVOdW1iZXIgPSAwLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gPSAwLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAgICAg
dm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKIAog
ICAgIHZvaWQgZGVidWcoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAK
aW5kZXggZDY5MzFjZmVjOTBlOGQyMmExNzJlYjgyMTI3ZTAwMGM3YzU3MDlhZS4uN2U4MjQyZDg3
NWI1YmJkNzhlMmQ5YmYwMWIxYTJmOGZhYWYxNjA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckNvbnRleHQuY3BwCkBAIC0yNzksMjMgKzI3OSwyMyBAQCB2b2lkIFdvcmtlckNvbnRl
eHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29u
c3QgU3RyaQogICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RFeGNlcHRp
b25Ub1dvcmtlck9iamVjdChlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiB9
CiAKLXZvaWQgV29ya2VyQ29udGV4dDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBXb3JrZXJDb250ZXh0OjphZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFpc0NvbnRl
eHRUaHJlYWQoKSkgewogICAgICAgICBwb3N0VGFzayhBZGRDb25zb2xlTWVzc2FnZVRhc2s6OmNy
ZWF0ZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1Byb3h5KCkucG9zdENvbnNvbGVNZXNz
YWdlVG9Xb3JrZXJPYmplY3Qoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJl
ciwgc291cmNlVVJMKTsKLSAgICBhZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKHNvdXJjZSwgdHlw
ZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrKTsKKyAg
ICBhZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2Us
IHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9
CiAKLXZvaWQgV29ya2VyQ29udGV4dDo6YWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5l
TnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBXb3Jr
ZXJDb250ZXh0OjphZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKGlzQ29udGV4dFRocmVhZCgpKTsKICAgICBpZiAoY2Fs
bFN0YWNrKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0Nv
bnNvbGUodGhpcywgc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgMCwgY2FsbFN0YWNrKTsK
KyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHRo
aXMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIDAsIGNhbGxTdGFjaywgcmVxdWVzdElk
ZW50aWZpZXIpOwogICAgIGVsc2UKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjph
ZGRNZXNzYWdlVG9Db25zb2xlKHRoaXMsIHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHNv
dXJjZVVSTCwgbGluZU51bWJlcik7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZSh0aGlzLCBzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBz
b3VyY2VVUkwsIGxpbmVOdW1iZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0KIAogYm9vbCBXb3Jr
ZXJDb250ZXh0Ojppc0NvbnRleHRUaHJlYWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuaAppbmRleCA5ODQxYTVlMWQyNTZiNWJhZmIzOTcwZGNmZjMwNGExM2RlZGNi
Mjc2Li40ODdmNzZjNmM1MzRjNmVkMmExNTJkZTZlMDk4NGY2YjAwMzRkMmY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApAQCAtMTQ1LDcgKzE0NSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBhcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeUZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6SGVhZGVyVHlwZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlv
blRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIGludCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAg
ICAgICB2b2lkIGFkZE1lc3NhZ2VUb1dvcmtlckNvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+KTsKKyAgICAgICAgdm9pZCBhZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSB7IHJlZigpOyB9CkBAIC0xNTksNyArMTU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwoKSBjb25zdDsKICAgICAgICAg
dmlydHVhbCBLVVJMIHZpcnR1YWxDb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdDsKIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlw
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4p
OworICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
VHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4sIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKIAogICAgICAgICB2aXJ0
dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>