<?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>106847</bug_id>
          
          <creation_ts>2013-01-14 17:42:24 -0800</creation_ts>
          <short_desc>Stub out WebSpeech synthesis</short_desc>
          <delta_ts>2013-01-22 13:25:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>106742</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>806832</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-14 17:42:24 -0800</bug_when>
    <thetext>The first part will be to stub out the API and put it behind the right feature flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808090</commentid>
    <comment_count>1</comment_count>
      <attachid>182923</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-15 23:46:17 -0800</bug_when>
    <thetext>Created attachment 182923
initial stubbing out of JS objects and code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808094</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-15 23:56:56 -0800</bug_when>
    <thetext>Spec is here for reference
https://dvcs.w3.org/hg/speech-api/raw-file/9a0075d25326/speechapi.html#tts-section</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808101</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 00:09:05 -0800</bug_when>
    <thetext>@Chris: Do you have someone in mind to review this patch?  If not, I can take a look tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808102</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 00:11:45 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; @Chris: Do you have someone in mind to review this patch?  If not, I can take a look tomorrow.

Thanks that would be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808162</commentid>
    <comment_count>5</comment_count>
      <attachid>182923</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-16 01:39:34 -0800</bug_when>
    <thetext>Comment on attachment 182923
initial stubbing out of JS objects and code

Attachment 182923 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15903306

New failing tests:
fast/js/integer-division-neg2tothe32-by-neg1.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808164</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-16 01:41:11 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 182923 [details])
&gt; Attachment 182923 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/15903306
&gt; 
&gt; New failing tests:
&gt; fast/js/integer-division-neg2tothe32-by-neg1.html

Not relevant, that&apos;s a current failure of different origin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808520</commentid>
    <comment_count>7</comment_count>
      <attachid>182923</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 10:42:40 -0800</bug_when>
    <thetext>Comment on attachment 182923
initial stubbing out of JS objects and code

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

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:26207
&gt;  				FD537353137B651800008DCE /* ZeroPole.h in Headers */,
&gt; +				AA2A5ACE16A485FD00975A25 /* SpeechSynthesisVoice.h in Headers */,

Would you be willing to sort the xcodeproj file when you land this patch?  We try to keep the file sorted so that folks have fewer merge conflicts.

&gt; Source/WebCore/Configurations/FeatureDefines.xcconfig:157
&gt; +ENABLE_WEB_SPEECH_SYNTHESIS = ;

nit: I probably would have just called this ENABLE_SPEECH_SYNTHESIS (the &quot;web&quot; doesn&apos;t really mean much in this context).

&gt; Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl:29
&gt; +] interface DOMWindowSpeechSynthesis {

It&apos;s interesting that you&apos;ve created a new interface for synthesis.  I would have expected you to add this code to DOMWindowSpeech.idl, but I agree that this approach is cleaner.

&gt; Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl:33
&gt; +    readonly attribute SpeechSynthesis speechSynthesis;
&gt; +    attribute SpeechSynthesisEventConstructor SpeechSynthesisEvent;
&gt; +    attribute SpeechSynthesisUtteranceConstructor SpeechSynthesisUtterance;

Here you&apos;ve chosen to use unprefixed names.  That&apos;s different from what we did with ENABLE(SCRIPTED_SPEECH), but it&apos;s also a fine approach.

&gt; Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:39
&gt; +    static PassRefPtr&lt;SpeechSynthesisUtterance&gt; create(String text);

String -&gt; const String&amp;

There are many occurrences of this issue in this patch.  Generally speaking, when passing a String as a parameter to a function, you almost always want to use const String&amp; to avoid ref churn.

&gt; Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:60
&gt; +    EventListener* onstart() { return getAttributeEventListener(eventNames().startEvent); }
&gt; +    void setOnstart(PassRefPtr&lt;EventListener&gt; listener) { setAttributeEventListener(eventNames().startEvent, listener); }

I believe we have a macro that does this work for you.  See, for example, http://trac.webkit.org/browser/trunk/Source/WebCore/dom/Document.h#L264

DEFINE_ATTRIBUTE_EVENT_LISTENER(abort);

&gt; Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:86
&gt; +    SpeechSynthesisUtterance(String text);

Please mark one-argument constructors &quot;explicit&quot;.

&gt; Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:97
&gt; +    ScriptExecutionContext* m_scriptExecutionContext;

This is very unlikely to the the right thing to do.  Instead, you probably want to inherit from ContextDestructionObserver so that your ScriptExecutionContext pointer won&apos;t be left dangling when the ScriptExecutionContext is destroyed.

&gt; Source/WebCore/Modules/speech/SpeechSynthesisVoice.h:43
&gt; +    String voiceURI() const { return m_voiceURI; }
&gt; +    String name() const { return m_name; }
&gt; +    String lang() const { return m_lang; }

These should all return const String&amp; because this object hold the underlying String object (again to avoid ref churn)

&gt; Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.h:51
&gt; +    DOMWindow* m_window;

It&apos;s unlikely that you should hold onto a DOMWindow*.  Again, there&apos;s a risk that the DOMWindow pointer will be left dangling.  Given that you&apos;re inheriting from DOMWindowProperty, you already have an m_associatedDOMWindow member variable whose lifetime is managed automatically.

&gt; Source/WebCore/Modules/speech/SpeechSynthesisVoiceList.idl:28
&gt; +] interface SpeechSynthesisVoiceList {

Rather than creating a fake JavaScript array, we should probably change the spec to use sequence&lt;SpeechSynthesisVoice&gt;.  The platform as a whole is moving away from these fake arrays because don&apos;t work correctly from the perspective of a JavaScript developer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808525</commentid>
    <comment_count>8</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 10:47:55 -0800</bug_when>
    <thetext>Thanks for the review. Just a few comments inline and I&apos;ll address the rest of the issues with the next patch

(In reply to comment #7)
&gt; (From update of attachment 182923 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182923&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:26207
&gt; &gt;  				FD537353137B651800008DCE /* ZeroPole.h in Headers */,
&gt; &gt; +				AA2A5ACE16A485FD00975A25 /* SpeechSynthesisVoice.h in Headers */,
&gt; 
&gt; Would you be willing to sort the xcodeproj file when you land this patch?  We try to keep the file sorted so that folks have fewer merge conflicts.

Yea, i&apos;ll fix this in the next upload

&gt; 
&gt; &gt; Source/WebCore/Configurations/FeatureDefines.xcconfig:157
&gt; &gt; +ENABLE_WEB_SPEECH_SYNTHESIS = ;
&gt; 
&gt; nit: I probably would have just called this ENABLE_SPEECH_SYNTHESIS (the &quot;web&quot; doesn&apos;t really mean much in this context).

The spec is called &quot;WebSpeech&quot;, but I can rename to just SPEECH_SYN

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl:29
&gt; &gt; +] interface DOMWindowSpeechSynthesis {
&gt; 
&gt; It&apos;s interesting that you&apos;ve created a new interface for synthesis.  I would have expected you to add this code to DOMWindowSpeech.idl, but I agree that this approach is cleaner.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl:33
&gt; &gt; +    readonly attribute SpeechSynthesis speechSynthesis;
&gt; &gt; +    attribute SpeechSynthesisEventConstructor SpeechSynthesisEvent;
&gt; &gt; +    attribute SpeechSynthesisUtteranceConstructor SpeechSynthesisUtterance;
&gt; 
&gt; Here you&apos;ve chosen to use unprefixed names.  That&apos;s different from what we did with ENABLE(SCRIPTED_SPEECH), but it&apos;s also a fine approach.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:39
&gt; &gt; +    static PassRefPtr&lt;SpeechSynthesisUtterance&gt; create(String text);
&gt; 
&gt; String -&gt; const String&amp;
&gt; 
&gt; There are many occurrences of this issue in this patch.  Generally speaking, when passing a String as a parameter to a function, you almost always want to use const String&amp; to avoid ref churn.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:60
&gt; &gt; +    EventListener* onstart() { return getAttributeEventListener(eventNames().startEvent); }
&gt; &gt; +    void setOnstart(PassRefPtr&lt;EventListener&gt; listener) { setAttributeEventListener(eventNames().startEvent, listener); }
&gt; 
&gt; I believe we have a macro that does this work for you.  See, for example, http://trac.webkit.org/browser/trunk/Source/WebCore/dom/Document.h#L264
&gt; 
&gt; DEFINE_ATTRIBUTE_EVENT_LISTENER(abort);
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:86
&gt; &gt; +    SpeechSynthesisUtterance(String text);
&gt; 
&gt; Please mark one-argument constructors &quot;explicit&quot;.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:97
&gt; &gt; +    ScriptExecutionContext* m_scriptExecutionContext;
&gt; 
&gt; This is very unlikely to the the right thing to do.  Instead, you probably want to inherit from ContextDestructionObserver so that your ScriptExecutionContext pointer won&apos;t be left dangling when the ScriptExecutionContext is destroyed.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechSynthesisVoice.h:43
&gt; &gt; +    String voiceURI() const { return m_voiceURI; }
&gt; &gt; +    String name() const { return m_name; }
&gt; &gt; +    String lang() const { return m_lang; }
&gt; 
&gt; These should all return const String&amp; because this object hold the underlying String object (again to avoid ref churn)
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.h:51
&gt; &gt; +    DOMWindow* m_window;
&gt; 
&gt; It&apos;s unlikely that you should hold onto a DOMWindow*.  Again, there&apos;s a risk that the DOMWindow pointer will be left dangling.  Given that you&apos;re inheriting from DOMWindowProperty, you already have an m_associatedDOMWindow member variable whose lifetime is managed automatically.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechSynthesisVoiceList.idl:28
&gt; &gt; +] interface SpeechSynthesisVoiceList {
&gt; 
&gt; Rather than creating a fake JavaScript array, we should probably change the spec to use sequence&lt;SpeechSynthesisVoice&gt;.  The platform as a whole is moving away from these fake arrays because don&apos;t work correctly from the perspective of a JavaScript developer.

So do you recommend going with sequence&lt;Speec..&gt; now and asking spec developers to change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808534</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 11:04:17 -0800</bug_when>
    <thetext>&gt; So do you recommend going with sequence&lt;Speec..&gt; now and asking spec developers to change?

Yeah, that&apos;s probably fine.  We should just make sure we end up converging with the spec before enabling the feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808623</commentid>
    <comment_count>10</comment_count>
      <attachid>183020</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 12:45:21 -0800</bug_when>
    <thetext>Created attachment 183020
updates based on review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808628</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-16 12:48:21 -0800</bug_when>
    <thetext>Attachment 183020 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:72:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/Modules/speech/SpeechSynthesis.cpp:41:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 2 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808633</commentid>
    <comment_count>12</comment_count>
      <attachid>183022</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 12:50:36 -0800</bug_when>
    <thetext>Created attachment 183022
patch fixing style warnings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808671</commentid>
    <comment_count>13</comment_count>
      <attachid>183022</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 13:39:27 -0800</bug_when>
    <thetext>Comment on attachment 183022
patch fixing style warnings

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

Thanks for updating the patch.  This looks much better!

&gt; Source/WebCore/Modules/speech/SpeechSynthesis.h:55
&gt; +    Vector&lt;RefPtr&lt;SpeechSynthesisVoice&gt; &gt; getVoices() { return m_voiceList; };

Here you probably want an const Vector&lt;RefPtr&lt;SpeechSynthesisVoice&gt; &gt;&amp; to avoid making an extra copy of the vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808678</commentid>
    <comment_count>14</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 13:47:14 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/139918</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808680</commentid>
    <comment_count>15</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 13:48:12 -0800</bug_when>
    <thetext>Thanks for the review. 

I&apos;ll do the rest of the parts in much smaller chunks in bugs off the main bug
https://bugs.webkit.org/show_bug.cgi?id=106742</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813359</commentid>
    <comment_count>16</comment_count>
      <attachid>183022</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-01-22 13:25:42 -0800</bug_when>
    <thetext>Comment on attachment 183022
patch fixing style warnings

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

&gt; Source/WebCore/Configurations/FeatureDefines.xcconfig:157
&gt; +ENABLE_SPEECH_SYNTHESIS = ;

Just a heads up for the future, please keep all the FeatureDefines.xcconfig files in sync across all the OS X projects (JavaScriptCore, WebCore, WebKit, and WebKit2). The files are meant to stay identical. I&apos;ll drive by fix this with my FeatureDefines changes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182923</attachid>
            <date>2013-01-15 23:46:17 -0800</date>
            <delta_ts>2013-01-16 12:45:21 -0800</delta_ts>
            <desc>initial stubbing out of JS objects and code</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>79558</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkocmV2aXNpb24gMTM5ODM4KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDYgKzIxMiw5
IEBACiAgICAgbWFjcm8obm9tYXRjaCkgXAogICAgIG1hY3JvKHN0YXJ0KSBcCiAgICAgbWFjcm8o
ZW5kKSBcCisgICAgbWFjcm8obWFyaykgXAorICAgIG1hY3JvKGJvdW5kYXJ5KSBcCisgICAgbWFj
cm8ocmVzdW1lKSBcCiAgICAgXAogICAgIG1hY3JvKHdlYmdsY29udGV4dGxvc3QpIFwKICAgICBt
YWNybyh3ZWJnbGNvbnRleHRyZXN0b3JlZCkgXApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4JKHJldmlzaW9uIDEzOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiBTcGVlY2hJbnB1dEV2ZW50IGNvbmRp
dGlvbmFsPUlOUFVUX1NQRUVDSAogU3BlZWNoUmVjb2duaXRpb25FcnJvciBjb25kaXRpb25hbD1T
Q1JJUFRFRF9TUEVFQ0gKIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U0NSSVBU
RURfU1BFRUNICitTcGVlY2hTeW50aGVzaXNFdmVudCBjb25kaXRpb25hbD1XRUJfU1BFRUNIX1NZ
TlRIRVNJUwogV2ViR0xDb250ZXh0RXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKIFN0b3JhZ2VFdmVu
dAogU1ZHRXZlbnRzIGludGVyZmFjZU5hbWU9RXZlbnQsIGNvbmRpdGlvbmFsPVNWRwpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCShyZXZpc2lvbiAxMzk4Mzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw2ICszMCw3IEBACiBTaGFyZWRXb3JrZXJDb250ZXh0IGNvbmRpdGlvbmFsPVNI
QVJFRF9XT1JLRVJTCiBTb3VyY2VCdWZmZXJMaXN0IGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQog
U3BlZWNoUmVjb2duaXRpb24gY29uZGl0aW9uYWw9U0NSSVBURURfU1BFRUNICitTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9V0VCX1NQRUVDSF9TWU5USEVTSVMKIFNWR0VsZW1l
bnRJbnN0YW5jZSBjb25kaXRpb25hbD1TVkcKIFRleHRUcmFjayBjb25kaXRpb25hbD1WSURFT19U
UkFDSwogVGV4dFRyYWNrQ3VlIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMzk4MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMDkgQEAKKzIwMTMtMDEtMTUgIENocmlzIEZsZWl6YWNoICA8Y2Zs
ZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBTdHViIG91dCBXZWJTcGVlY2ggc3ludGhlc2lz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY4NDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFk
ZHMgaW4gdGhlIG5lY2Vzc2FyeSBJRExzIGFuZCBzdHVicyBvdXQgdGhlIGNvZGUgZm9yIHRoZSBX
ZWJTcGVlY2ggCisgICAgICAgIHN5bnRoZXNpcyBzcGVjaWZpY2F0aW9uLgorICAgICAgICBJdCBk
b2VzIG5vdCB0dXJuIG9uIHRoZSBmZWF0dXJlIGluIGFueSBwbGF0Zm9ybSwgYnV0IGl0IGNhbiBi
ZSBlbmFibGVkCisgICAgICAgIGFuZCBidWlsdCBmb3IgTWFjLiAKKworICAgICAgICBUaGUgZmVh
dHVyZSBmbGFnIGlzIFdFQl9TUEVFQ0hfU1lOVEhFU0lTLiAKKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lz
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6
OkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dT
cGVlY2hTeW50aGVzaXM6On5ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6c3BlZWNoU3ludGhlc2lzKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaDogQWRkZWQuCisgICAgICAg
IChET01XaW5kb3dTcGVlY2hTeW50aGVzaXMpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
U3ludGhlc2lzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpT
cGVlY2hTeW50aGVzaXMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpnZXRW
b2ljZXMpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oOiBBZGRl
ZC4KKyAgICAgICAgKFNwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoU3ludGhlc2lzRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5
bnRoZXNpc0V2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lz
RXZlbnQ6OlNwZWVjaFN5bnRoZXNpc0V2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXNFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKFNwZWVjaFN5bnRoZXNpc0V2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc0V2ZW50OjpjaGFySW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzRXZlbnQ6OmVsYXBzZWRUaW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc0V2ZW50OjpuYW1lKToKKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpTcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpp
bnRlcmZhY2VOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UuaDogQWRkZWQuCisgICAgICAgIChTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjp0ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6c2V0VGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OmxhbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6dm9pY2VVUkkpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpzZXRWb2ljZVVSSSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnZvbHVtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnJhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpzZXRSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZTo6cGl0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3lu
dGhlc2lzVXR0ZXJhbmNlOjpzZXRQaXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2U6Om9uc3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlOjpzZXRPbnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZTo6b25lbmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlOjpzZXRPbmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2U6Om9uZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlOjpzZXRPbmVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZTo6b25wYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2U6OnNldE9ucGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlOjpvbnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2U6OnNldE9ucmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZTo6b25tYXJrKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVy
YW5jZTo6c2V0T25tYXJrKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVy
YW5jZTo6b25ib3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2U6OnNldE9uYm91bmRhcnkpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hT
eW50aGVzaXNWb2ljZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
c1ZvaWNlOjpTcGVlY2hTeW50aGVzaXNWb2ljZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzVm9pY2UuaDogQWRkZWQuCisgICAgICAgIChTcGVlY2hTeW50aGVzaXNW
b2ljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNWb2ljZTo6dm9pY2VVUkkp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVm9pY2U6Om5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVm9pY2U6OmxhbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoU3ludGhlc2lzVm9pY2U6OmxvY2FsU2VydmljZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hTeW50aGVzaXNWb2ljZTo6aXNEZWZhdWx0KToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0OjpTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0OjppdGVtKToKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuaDogQWRkZWQuCisg
ICAgICAgIChTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoU3ludGhlc2lzVm9pY2VMaXN0OjpsZW5ndGgpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL21hYzogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvbWFjL1NwZWVjaFN5
bnRoZXNpc01hYy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6
OnBlbmRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpzcGVha2luZyk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnBhdXNlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnNwZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFN5bnRoZXNpczo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6
cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpyZXN1bWUpOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20v
RXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgorICAgICAgICAqIGRv
bS9FdmVudFRhcmdldEZhY3RvcnkuaW46CisKIDIwMTMtMDEtMTYgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgR2V0IHJpZCBvZiBOb2RlOjpjcmVhdGVSYXJlRGF0
YQpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMzk4MzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCw3IEBACiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3F1b3RhIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2ViYXVkaW8gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZSBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMgXApAQCAtMTE4LDYgKzExOSwxMiBA
QAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2su
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9RdW90YUNhbGxi
YWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvVXNhZ2VD
YWxsYmFjay5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpc0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpc1ZvaWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hTeW50aGVzaXNWb2ljZUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9CdWZmZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEzOTgzOCkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtNDYxMywxMCArNDYxMywzMyBAQAogCQlBOUQyNDgwOTBENzU3RTdEMDBGREY5NTkg
LyogSlNET01NaW1lVHlwZUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOUQyNDgwNTBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZUFy
cmF5LmggKi87IH07CiAJCUFBMjFFQ0NBMEFCRjBGQkEwMDJCODM0QyAvKiBDU1NDdXJzb3JJbWFn
ZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFBMDk3OEVEMEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAqLzsg
fTsKIAkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMDk3OEVFMEFC
QUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQUEyQTVBQ0MxNkE0ODVGNzAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFDOTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNo
U3ludGhlc2lzVm9pY2VMaXN0LmNwcCAqLzsgfTsKKwkJQUEyQTVBQ0QxNkE0ODVGQTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFBMkE1QUM2MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50
aGVzaXNWb2ljZS5jcHAgKi87IH07CisJCUFBMkE1QUNFMTZBNDg1RkQwMDk3NUEyNSAvKiBTcGVl
Y2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNl
LmggKi87IH07CisJCUFBMkE1QUNGMTZBNDg2MDEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNW
b2ljZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFBMkE1QUNBMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuaCAq
LzsgfTsKKwkJQUEyQTVBRDAxNkE0ODYwNDAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVy
YW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEy
QTVBQzUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oICovOyB9
OworCQlBQTJBNUFEMTE2QTQ4NjA3MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMkE1
QUM0MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwICovOyB9
OworCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMkE1QUMxMTZB
NDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oICovOyB9OworCQlBQTJBNUFE
MjE2QTQ4NjBBMDA5NzZBMjUgLyogSlNTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzExNkE0ODVENTAwOTc2
QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQuaCAqLzsgfTsKKwkJQUEyQTVBRDMxNkE0ODYw
RDAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMkE1QUMwMTZBNDg1RDUwMDk3NUEyNSAvKiBT
cGVlY2hTeW50aGVzaXNFdmVudC5jcHAgKi87IH07CisJCUFBMkE1QUQzMTZBNDg2MEQwMDk3NkEy
NSAvKiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMkE1QUMwMTZBNDg1RDUwMDk3NkEyNSAvKiBKU1NwZWVj
aFN5bnRoZXNpc0V2ZW50LmNwcCAqLzsgfTsKKwkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8q
IFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICov
OyB9OworCQlBQTJBNUFENTE2QTQ4NjE0MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMkE1QUJEMTZB
NDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovOyB9OworCQlBQTJBNUFENjE2
QTQ4NjE2MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVB
MjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi87IH07CisJCUFBMkE1QUQ3MTZBNDg2
MUEwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1
IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi87IH07CisJCUFBMkE1QUQ4MTZBNDg2
MUQwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFCQzE2QTQ4NUQ1MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzTWFjLm1tICovOyB9OwogCQlBQTRDM0E3NjBCMkIxNjc5MDAyMzM0QTIgLyog
U3R5bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFBNEMzQTc0MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuY3BwICovOyB9
OwogCQlBQTRDM0E3NzBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTRDM0E3NTBCMkIxNjc5MDAy
MzM0QTIgLyogU3R5bGVFbGVtZW50LmggKi87IH07CiAJCUFBNzMxODNFMTU5MjU1QjkwMEE5M0U2
RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTczMTgzQzE1OTI1NUI5MDBBOTNFNkUgLyogSW5q
ZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuY3BwICovOyB9OwogCQlBQTczMTgzRjE1OTI1NUI5MDBB
OTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBNzMxODNEMTU5MjU1QjkwMEE5M0U2RSAvKiBJ
bmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oICovOyB9OworCQlBQTdGRUVBNDE2QTRFNkYzMDA0
QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFOUMxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNo
U3ludGhlc2lzLmNwcCAqLzsgfTsKKwkJQUE3RkVFQTYxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFBN0ZFRTlFMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZS5jcHAgKi87IH07CisJCUFBN0ZFRUE3MTZBNEU2RjMwMDRDMEMzMyAvKiBK
U1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFOUYxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3lu
dGhlc2lzVXR0ZXJhbmNlLmggKi87IH07CisJCUFBN0ZFRUE4MTZBNEU2RjMwMDRDMEMzMyAvKiBK
U1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFBN0ZFRUEwMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRo
ZXNpc1ZvaWNlLmNwcCAqLzsgfTsKKwkJQUE3RkVFQTkxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3Bl
ZWNoU3ludGhlc2lzVm9pY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFBN0ZFRUExMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1Zv
aWNlLmggKi87IH07CisJCUFBN0ZFRUFBMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRo
ZXNpc1ZvaWNlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQTdGRUVBMjE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2lj
ZUxpc3QuY3BwICovOyB9OworCQlBQTdGRUVBQjE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hT
eW50aGVzaXNWb2ljZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFBN0ZFRUEzMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1Zv
aWNlTGlzdC5oICovOyB9OworCQlBQTdGRUVBRDE2QTRFNzRCMDA0QzBDMzMgLyogSlNTcGVlY2hT
eW50aGVzaXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFBN0ZFRUFDMTZBNEU3NEIwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5oICovOyB9Owog
CQlBQUI2MDU0RTE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBQjYwNTRBMTU4NzRD
NTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdEJhc2UuY3BwICovOyB9OwogCQlBQUI2MDU0RjE1
ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUI2MDU0QjE1ODc0QzU4MDA3QjUwMzEgLyog
SW5qZWN0ZWRTY3JpcHRCYXNlLmggKi87IH07CiAJCUFBQjYwNTUwMTU4NzRDNTgwMDdCNTAzMSAv
KiBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBQUI2MDU0QzE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3Jp
cHRNb2R1bGUuY3BwICovOyB9OwpAQCAtMTE4ODksMTAgKzExOTEyLDM5IEBACiAJCUE5RDI0ODA1
MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NTWltZVR5cGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBQTA5NzhFRDBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VW
YWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ3Vyc29y
SW1hZ2VWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBMDk3OEVFMEFC
QUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NDdXJzb3JJbWFnZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hT
eW50aGVzaXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRE9NV2luZG93U3BlZWNoU3ludGhlc2lz
LmNwcDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAv
KiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzLmg7IHBhdGggPSBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQkExNkE0ODVENTAw
OTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzLmlkbDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBMkE1QUJDMTZBNDg1
RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFNwZWVjaFN5bnRoZXNpc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEy
QTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBTcGVlY2hTeW50aGVzaXMuY3BwOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQkUxNkE0
ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTcGVlY2hT
eW50aGVzaXMuaDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXMuaWRsOyBwYXRoID0gTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQUEyQTVBQzAxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcDsgcGF0aCA9IE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQUEyQTVBQzAxNkE0ODVENTAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBMkE1QUMxMTZBNDg1RDUwMDk3NUEyNSAvKiBT
cGVlY2hTeW50aGVzaXNFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNFdmVu
dC5oOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQzExNkE0ODVENTAwOTc2QTI1IC8qIEpTU3Bl
ZWNoU3ludGhlc2lzRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXNFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFDMjE2QTQ4NUQ1MDA5NzVB
MjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNpc0V2ZW50
LmlkbDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQzMxNkE0ODVENTAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
LmlkbDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBMkE1QUM0MTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmNwcDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBMkE1QUM1
MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmg7IHBhdGggPSBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QUEyQTVBQzYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcDsgcGF0aCA9IE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmg7IHBhdGggPSBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBQTJBNUFDODE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpc1ZvaWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVB
QzkxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuY3BwOyBwYXRoID0gTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQUEyQTVBQ0ExNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1Zv
aWNlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuaDsgcGF0
aCA9IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFDQjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzVm9pY2VMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuaWRsOyBw
YXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUE0QzNBNzQwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxl
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUE0QzNBNzUwQjJCMTY3
OTAwMjMzNEEyIC8qIFN0eWxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3R5bGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBNzMx
ODNDMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZFNjcmlwdENhbnZhc01v
ZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBNzMxODNEMTU5MjU1Qjkw
MEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBQTdGRUU5QzE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hT
eW50aGVzaXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTcGVl
Y2hTeW50aGVzaXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTdGRUU5RTE2
QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTdGRUU5RjE2QTRFNkYzMDA0QzBD
MzMgLyogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQUE3RkVFQTAxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhl
c2lzVm9pY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTcGVl
Y2hTeW50aGVzaXNWb2ljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBN0ZF
RUExMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUE3RkVFQTIxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3Bl
ZWNoU3ludGhlc2lzVm9pY2VMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQUE3RkVFQTMxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lz
Vm9pY2VMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3BlZWNoU3lu
dGhlc2lzVm9pY2VMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBN0ZFRUFD
MTZBNEU3NEIwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNpcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBQTkwMzBGRTE1N0UxNkEwMDAyNzYyNDcgLyogSW5qZWN0ZWRTY3JpcHRDYW52
YXNNb2R1bGVTb3VyY2UuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGgg
PSBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5qczsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQUE5MTI3NTAxNTdFMzVBNTAwNDU0RTU0IC8qIEluamVjdGVkU2NyaXB0Q2Fu
dmFzTW9kdWxlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVj
dGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUFBQjYwNTRBMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdEJhc2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRCYXNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0Njc3LDYgKzE0NzI5LDcgQEAKIAkJ
CQk0MTdEQTcxMjEzNzM1RDkwMDA3QzU3RkIgLyogVGVzdGluZyAqLywKIAkJCQlFMUM4QkU0QjBF
OEJEMEQxMDA2NENCN0QgLyogVGhyZWFkcyAqLywKIAkJCQlCQzk4NTQ1MzBDRDNEQThGMDAwNjlC
QzEgLyogVHJhdmVyc2FsICovLAorCQkJCUFBN0ZFRTlCMTZBNDkxQTEwMDRDMEMzMyAvKiBTcGVl
Y2ggKi8sCiAJCQkJRkRBMTVFN0IxMkIwM0UwNDAwM0E1ODNBIC8qIFdlYkF1ZGlvICovLAogCQkJ
CTVEQTVFMEY5MTAyQjk1MDQwMDA4OENGOSAvKiBXZWJTb2NrZXRzICovLAogCQkJCUJDOTg1NDQz
MENEM0Q5RDAwMDA2OUJDMSAvKiBXaW5kb3cgKi8sCkBAIC0xODA4OSw2ICsxODE0Miw3IEBACiAJ
CQkJMzMzRjcwM0QwRkI0OUMxNjAwOEUxMkE2IC8qIG5vdGlmaWNhdGlvbnMgKi8sCiAJCQkJRjYw
OThGNzgxNjY2RDg0MTAwMzI2OUQxIC8qIHByb3hpbWl0eSAqLywKIAkJCQk4OUY2MEIwODE1N0Y2
ODM1MDA3NUUxNTcgLyogcXVvdGEgKi8sCisJCQkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8q
IHNwZWVjaCAqLywKIAkJCQlGRDMxNUZBMjEyQjAyNUIxMDBDMUEzNTkgLyogd2ViYXVkaW8gKi8s
CiAJCQkJOTdCQzY5RDUxNTA1RjA1NDAwMUI3NEFDIC8qIHdlYmRhdGFiYXNlICovLAogCQkJCTk3
QUFCQ0Y3MTRGQTA5QjUwMDc0NTdBRSAvKiB3ZWJzb2NrZXRzICovLApAQCAtMTk1NjEsNiArMTk2
MTUsNTggQEAKIAkJCW5hbWUgPSBQbHVnaW5zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQUEyQTVBQkIxNkE0ODVENTAwOTc1
QTI1IC8qIG1hYyAqLywKKwkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93
U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKKwkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyog
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCisJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1
QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCisJCQkJQUEyQTVBQkQxNkE0
ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCisJCQkJQUEyQTVBQkUxNkE0
ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAorCQkJCUFBMkE1QUJGMTZBNDg1
RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLAorCQkJCUFBMkE1QUMwMTZBNDg1
RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAgKi8sCisJCQkJQUEyQTVBQzEx
NkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggKi8sCisJCQkJQUEyQTVB
QzIxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbCAqLywKKwkJCQlB
QTJBNUFDNDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcCAq
LywKKwkJCQlBQTJBNUFDNTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlLmggKi8sCisJCQkJQUEyQTVBQzMxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZS5pZGwgKi8sCisJCQkJQUEyQTVBQzYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpc1ZvaWNlLmNwcCAqLywKKwkJCQlBQTJBNUFDNzE2QTQ4NUQ1MDA5NzVBMjUgLyog
U3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKKwkJCQlBQTJBNUFDODE2QTQ4NUQ1MDA5NzVBMjUg
LyogU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsICovLAorCQkJCUFBMkE1QUM5MTZBNDg1RDUwMDk3
NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuY3BwICovLAorCQkJCUFBMkE1QUNBMTZB
NDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuaCAqLywKKwkJCQlBQTJB
NUFDQjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0LmlkbCAqLywK
KwkJCSk7CisJCQluYW1lID0gc3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKKwkJQUEyQTVBQkIxNkE0ODVENTAwOTc1QTI1IC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQUEyQTVBQkMxNkE0ODVENTAwOTc1QTI1IC8q
IFNwZWVjaFN5bnRoZXNpc01hYy5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gbWFjOworCQkJcGF0
aCA9IE1vZHVsZXMvc3BlZWNoL21hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCUFBN0ZFRTlCMTZBNDkxQTEwMDRDMEMzMyAvKiBTcGVlY2ggKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUFBN0ZFRTlDMTZBNEU2RjMwMDRDMEMzMyAv
KiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCisJCQkJQUE3RkVFQUMxNkE0RTc0QjAwNEMwQzMz
IC8qIEpTU3BlZWNoU3ludGhlc2lzLmggKi8sCisJCQkJQUEyQTVBQzAxNkE0ODVENTAwOTc2QTI1
IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwICovLAorCQkJCUFBMkE1QUMxMTZBNDg1RDUw
MDk3NkEyNSAvKiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmggKi8sCisJCQkJQUE3RkVFOUUxNkE0
RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcCAqLywKKwkJCQlB
QTdGRUU5RjE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCAq
LywKKwkJCQlBQTdGRUVBMDE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2lj
ZS5jcHAgKi8sCisJCQkJQUE3RkVFQTExNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhl
c2lzVm9pY2UuaCAqLywKKwkJCQlBQTdGRUVBMjE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hT
eW50aGVzaXNWb2ljZUxpc3QuY3BwICovLAorCQkJCUFBN0ZFRUEzMTZBNEU2RjMwMDRDMEMzMyAv
KiBKU1NwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBTcGVl
Y2g7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlCMUE5NDJERDE1QjVDRTIy
MDBENTI1RDEgLyogbWVkaWFzb3VyY2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKApAQCAtMjYwOTgsNiArMjYyMDQsMTcgQEAKIAkJCQlFMUJFNTEyRTBDRjZDNTEy
MDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUw
RjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1
MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKKwkJCQlB
QTJBNUFDRTE2QTQ4NUZEMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUFBMkE1QUNGMTZBNDg2MDEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNW
b2ljZUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUFBMkE1QUQwMTZBNDg2MDQwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUFBMkE1QUQy
MTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUFBMkE1QUQ2MTZBNDg2MTYwMDk3NUEyNSAv
KiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUFBN0ZFRUE3
MTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQUE3RkVFQTkxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lz
Vm9pY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUFBN0ZFRUFCMTZBNEU2RjMwMDRDMEMzMyAvKiBK
U1NwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUE3RkVFQUQx
NkE0RTc0QjAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTI5MjI5LDYgKzI5MzQ2LDE4IEBACiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhT
TFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBD
MTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2
NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUEyQTVBQ0Mx
NkE0ODVGNzAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBQTJBNUFDRDE2QTQ4NUZBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9p
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUEyQTVBRDExNkE0ODYwNzAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBQTJBNUFEMzE2
QTQ4NjBEMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQUEyQTVBRDMxNkE0ODYwRDAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUEyQTVBRDUxNkE0ODYxNDAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBQTJBNUFENzE2QTQ4NjFBMDA5NzVB
MjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFB
MkE1QUQ4MTZBNDg2MUQwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNNYWMubW0gaW4gU291cmNl
cyAqLywKKwkJCQlBQTdGRUVBNDE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUE3RkVFQTYxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFBN0ZFRUE4MTZB
NEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUFBN0ZFRUFBMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1ZvaWNl
TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5RjFGMDA1MkQ4NkUgLyog
Q1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDEz
OTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsMTAgKzE1NCwxMSBAQAogRU5BQkxFX1dFQkdM
ID0gRU5BQkxFX1dFQkdMOwogRU5BQkxFX1dFQl9BVURJTyA9IEVOQUJMRV9XRUJfQVVESU87CiBF
TkFCTEVfV0VCX1NPQ0tFVFMgPSBFTkFCTEVfV0VCX1NPQ0tFVFM7CitFTkFCTEVfV0VCX1NQRUVD
SF9TWU5USEVTSVMgPSA7CiBFTkFCTEVfV0VCX1RJTUlORyA9IDsKIEVOQUJMRV9XT1JLRVJTID0g
RU5BQkxFX1dPUktFUlM7CiBFTkFCTEVfWEhSX1RJTUVPVVQgPSBFTkFCTEVfWEhSX1RJTUVPVVQ7
CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRB
VElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVO
QUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9O
KSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NT
U19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NT
X1RSQU5TRk9STVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJWEVEKSAkKEVOQUJMRV9D
U1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJMRV9D
U1MzX1RFWFQpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9ESUFMT0dfRUxFTUVOVCkgJChFTkFCTEVfRElSRUNUT1JZX1VQ
TE9BRCkgJChFTkFCTEVfRFJBR0dBQkxFX1JFR0lPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElB
KSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FO
VkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xF
R0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykg
JChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJ
TykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTElOS19QUkVSRU5ERVIpICQoRU5B
QkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNU
SUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTUlD
Uk9EQVRBKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9D
T05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVN
RU5UKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkp
ICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVf
U0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NP
UEVEKSAkKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRF
X0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEVYVF9OT1RJRklD
QVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNF
TEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVf
V0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxF
X1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVO
QUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JB
VElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1Nf
RVhDTFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklF
TlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJ
T05TKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVO
QUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJ
T05TX1RSQU5TSVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5B
QkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVf
Q1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFC
TEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFC
TEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RJQUxPR19FTEVNRU5UKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9EUkFH
R0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZJTEVfU1lT
VEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
R0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9U
SU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05E
QVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BS
RUZFVENIKSAkKEVOQUJMRV9MSU5LX1BSRVJFTkRFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVS
X0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxF
X1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpICQoRU5BQkxFX1BST1hJ
TUlUWV9FVkVOVFMpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9G
UkFNRSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfU0NSSVBURURf
U1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChF
TkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NVQlBJ
WEVMX0xBWU9VVCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1Mp
ICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVf
VEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFC
TEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VC
X0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1NQRUVDSF9TWU5USEVT
SVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9U
SU1FT1VUKSAkKEVOQUJMRV9YU0xUKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaWRsCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIENvbmRpdGlvbmFsPVdFQl9TUEVFQ0hfU1lOVEhFU0lTLAorICAgIFN1cHBsZW1lbnRhbD1E
T01XaW5kb3cKK10gaW50ZXJmYWNlIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcyB7CisKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNoU3ludGhlc2lzIHNwZWVjaFN5bnRoZXNpczsKKyAgICBh
dHRyaWJ1dGUgU3BlZWNoU3ludGhlc2lzRXZlbnRDb25zdHJ1Y3RvciBTcGVlY2hTeW50aGVzaXNF
dmVudDsKKyAgICBhdHRyaWJ1dGUgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlQ29uc3RydWN0b3Ig
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZV9oCisjZGVmaW5lIFNwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZV9oCisKKyNpZiBFTkFCTEUoV0VCX1NQRUVDSF9TWU5USEVTSVMpCisKKyNpbmNsdWRl
ICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlIDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlPiwgcHVibGljIEV2ZW50VGFyZ2V0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IGNyZWF0ZShTdHJpbmcgdGV4dCk7Cisg
ICAgCisgICAgU3RyaW5nIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICB2b2lk
IHNldFRleHQoU3RyaW5nIHRleHQpIHsgbV90ZXh0ID0gdGV4dDsgfQorCisgICAgU3RyaW5nIGxh
bmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KKyAgICB2b2lkIHNldExhbmcoU3RyaW5nIGxh
bmcpIHsgbV9sYW5nID0gbGFuZzsgfQorCisgICAgU3RyaW5nIHZvaWNlVVJJKCkgY29uc3QgeyBy
ZXR1cm4gbV92b2ljZVVSSTsgfQorICAgIHZvaWQgc2V0Vm9pY2VVUkkoU3RyaW5nIHZvaWNlVVJJ
KSB7IG1fdm9pY2VVUkkgPSB2b2ljZVVSSTsgfQorCisgICAgZmxvYXQgdm9sdW1lKCkgY29uc3Qg
eyByZXR1cm4gbV92b2x1bWU7IH0KKyAgICB2b2lkIHNldFZvbHVtZShmbG9hdCB2b2x1bWUpIHsg
bV92b2x1bWUgPSB2b2x1bWU7IH0KKworICAgIGZsb2F0IHJhdGUoKSBjb25zdCB7IHJldHVybiBt
X3JhdGU7IH0KKyAgICB2b2lkIHNldFJhdGUoZmxvYXQgcmF0ZSkgeyBtX3JhdGUgPSByYXRlOyB9
CisKKyAgICBmbG9hdCBwaXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1fcGl0Y2g7IH0KKyAgICB2b2lk
IHNldFBpdGNoKGZsb2F0IHBpdGNoKSB7IG1fcGl0Y2ggPSBwaXRjaDsgfQorCisgICAgRXZlbnRM
aXN0ZW5lciogb25zdGFydCgpIHsgcmV0dXJuIGdldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZl
bnROYW1lcygpLnN0YXJ0RXZlbnQpOyB9CisgICAgdm9pZCBzZXRPbnN0YXJ0KFBhc3NSZWZQdHI8
RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIpIHsgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVu
dE5hbWVzKCkuc3RhcnRFdmVudCwgbGlzdGVuZXIpOyB9CisKKyAgICBFdmVudExpc3RlbmVyKiBv
bmVuZCgpIHsgcmV0dXJuIGdldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmVu
ZEV2ZW50KTsgfQorICAgIHZvaWQgc2V0T25lbmQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBs
aXN0ZW5lcikgeyBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5lbmRFdmVu
dCwgbGlzdGVuZXIpOyB9CisKKyAgICBFdmVudExpc3RlbmVyKiBvbmVycm9yKCkgeyByZXR1cm4g
Z2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuZXJyb3JFdmVudCk7IH0KKyAg
ICB2b2lkIHNldE9uZXJyb3IoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBsaXN0ZW5lcikgeyBz
ZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBsaXN0ZW5l
cik7IH0KKworICAgIEV2ZW50TGlzdGVuZXIqIG9ucGF1c2UoKSB7IHJldHVybiBnZXRBdHRyaWJ1
dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5wYXVzZUV2ZW50KTsgfQorICAgIHZvaWQgc2V0
T25wYXVzZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyKSB7IHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnBhdXNlRXZlbnQsIGxpc3RlbmVyKTsgfQorCisg
ICAgRXZlbnRMaXN0ZW5lciogb25yZXN1bWUoKSB7IHJldHVybiBnZXRBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKGV2ZW50TmFtZXMoKS5yZXN1bWVFdmVudCk7IH0KKyAgICB2b2lkIHNldE9ucmVzdW1l
KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIpIHsgc2V0QXR0cmlidXRlRXZlbnRM
aXN0ZW5lcihldmVudE5hbWVzKCkucmVzdW1lRXZlbnQsIGxpc3RlbmVyKTsgfQorCisgICAgRXZl
bnRMaXN0ZW5lciogb25tYXJrKCkgeyByZXR1cm4gZ2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihl
dmVudE5hbWVzKCkubWFya0V2ZW50KTsgfQorICAgIHZvaWQgc2V0T25tYXJrKFBhc3NSZWZQdHI8
RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIpIHsgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVu
dE5hbWVzKCkubWFya0V2ZW50LCBsaXN0ZW5lcik7IH0KKworICAgIEV2ZW50TGlzdGVuZXIqIG9u
Ym91bmRhcnkoKSB7IHJldHVybiBnZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5ib3VuZGFyeUV2ZW50KTsgfQorICAgIHZvaWQgc2V0T25ib3VuZGFyeShQYXNzUmVmUHRyPEV2
ZW50TGlzdGVuZXI+IGxpc3RlbmVyKSB7IHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lcygpLmJvdW5kYXJ5RXZlbnQsIGxpc3RlbmVyKTsgfQorICAgIAorICAgIHZpcnR1YWwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQorCisgICAgdXNpbmcgUmVm
Q291bnRlZDxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291
bnRlZDxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+OjpkZXJlZjsKKworcHJpdmF0ZToKKyAgICBT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UoU3RyaW5nIHRleHQpOworCisgICAgU3RyaW5nIG1fdGV4
dDsKKyAgICBTdHJpbmcgbV9sYW5nOworICAgIFN0cmluZyBtX3ZvaWNlVVJJOworICAgIGZsb2F0
IG1fdm9sdW1lOworICAgIGZsb2F0IG1fcmF0ZTsKKyAgICBmbG9hdCBtX3BpdGNoOworICAgIAor
ICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRh
OworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
KworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBy
ZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBk
ZXJlZigpOyB9CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgp
IE9WRVJSSURFIHsgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsgfQorICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBPVkVSUklERSB7IHJldHVybiAm
bV9ldmVudFRhcmdldERhdGE7IH0KK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX1NQRUVDSF9TWU5USEVTSVMpCisKKyNlbmRpZiAvLyBTcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2VfaApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9p
Y2VMaXN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5oIgorCisj
aWYgRU5BQkxFKFdFQl9TUEVFQ0hfU1lOVEhFU0lTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3NSZWZQdHI8U3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0PiBTcGVlY2hTeW50aGVzaXNWb2lj
ZUxpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hTeW50aGVz
aXNWb2ljZUxpc3QoKSk7Cit9CisKK1NwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdDo6U3BlZWNoU3lu
dGhlc2lzVm9pY2VMaXN0KCkKK3sKK30KKyAgICAKK1Bhc3NSZWZQdHI8U3BlZWNoU3ludGhlc2lz
Vm9pY2U+IFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdDo6aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4
KSBjb25zdAoreworICAgIGlmIChpbmRleCA+PSBtX3ZvaWNlTGlzdC5zaXplKCkpCisgICAgICAg
IHJldHVybiAwOworICAgIHJldHVybiBtX3ZvaWNlTGlzdFtpbmRleF07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfU1BFRUNIX1NZTlRIRVNJUykK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpcy5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
IAorWworICAgIENvbmRpdGlvbmFsPVdFQl9TUEVFQ0hfU1lOVEhFU0lTCitdIGludGVyZmFjZSBT
cGVlY2hTeW50aGVzaXMgIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwZW5kaW5n
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHNwZWFraW5nOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIHBhdXNlZDsKKworICAgIHZvaWQgc3BlYWsoU3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlIHV0dGVyYW5jZSk7CisgICAgdm9pZCBjYW5jZWwoKTsKKyAgICB2b2lkIHBh
dXNlKCk7CisgICAgdm9pZCByZXN1bWUoKTsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9p
Y2UuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzVm9pY2UuaCIKKworI2lmIEVOQUJM
RShXRUJfU1BFRUNIX1NZTlRIRVNJUykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUGFz
c1JlZlB0cjxTcGVlY2hTeW50aGVzaXNWb2ljZT4gU3BlZWNoU3ludGhlc2lzVm9pY2U6OmNyZWF0
ZShTdHJpbmcgdm9pY2VVUkksIFN0cmluZyBuYW1lLCBTdHJpbmcgbGFuZywgYm9vbCBsb2NhbFNl
cnZpY2UsIGJvb2wgaXNEZWZhdWx0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNo
U3ludGhlc2lzVm9pY2Uodm9pY2VVUkksIG5hbWUsIGxhbmcsIGxvY2FsU2VydmljZSwgaXNEZWZh
dWx0KSk7Cit9CisKK1NwZWVjaFN5bnRoZXNpc1ZvaWNlOjpTcGVlY2hTeW50aGVzaXNWb2ljZShT
dHJpbmcgdm9pY2VVUkksIFN0cmluZyBuYW1lLCBTdHJpbmcgbGFuZywgYm9vbCBsb2NhbFNlcnZp
Y2UsIGJvb2wgaXNEZWZhdWx0KQorICAgIDogbV92b2ljZVVSSSh2b2ljZVVSSSkKKyAgICAsIG1f
bmFtZShuYW1lKQorICAgICwgbV9sYW5nKGxhbmcpCisgICAgLCBtX2xvY2FsU2VydmljZShsb2Nh
bFNlcnZpY2UpCisgICAgLCBtX2RlZmF1bHQoaXNEZWZhdWx0KQoreworfQorICAgIAorfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9TUEVFQ0hfU1lOVEhFU0lT
KQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3lu
dGhlc2lzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9E
T01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01XaW5k
b3dTcGVlY2hTeW50aGVzaXMuaCIKKworI2lmIEVOQUJMRShXRUJfU1BFRUNIX1NZTlRIRVNJUykK
KworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6RE9N
V2luZG93U3BlZWNoU3ludGhlc2lzKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93
UHJvcGVydHkod2luZG93LT5mcmFtZSgpKQoreworfQorCitET01XaW5kb3dTcGVlY2hTeW50aGVz
aXM6On5ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMoKQoreworfQorCisvLyBzdGF0aWMKK0RPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpcyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpmcm9tKERPTVdp
bmRvdyogd2luZG93KQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBu
YW1lLCAoIkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqIHN1cHBsZW1lbnQg
PSBzdGF0aWNfY2FzdDxET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqPihTdXBwbGVtZW50PERPTVdp
bmRvdz46OmZyb20od2luZG93LCBuYW1lKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7CisgICAg
ICAgIHN1cHBsZW1lbnQgPSBuZXcgRE9NV2luZG93U3BlZWNoU3ludGhlc2lzKHdpbmRvdyk7Cisg
ICAgICAgIHByb3ZpZGVUbyh3aW5kb3csIG5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAg
ICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKKy8vIHN0YXRpYworU3BlZWNoU3ludGhl
c2lzKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6OnNwZWVjaFN5bnRoZXNpcyhET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpmcm9tKHdp
bmRvdyktPnNwZWVjaFN5bnRoZXNpcygpOworfQorCitTcGVlY2hTeW50aGVzaXMqIERPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpczo6c3BlZWNoU3ludGhlc2lzKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNo
U3ludGhlc2lzICYmIGZyYW1lKCkpCisgICAgICAgIG1fc3BlZWNoU3ludGhlc2lzID0gU3BlZWNo
U3ludGhlc2lzOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXMuZ2V0KCk7
Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X1NQRUVDSF9TWU5USEVTSVMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXNFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1X
RUJfU1BFRUNIX1NZTlRIRVNJUworXSBpbnRlcmZhY2UgU3BlZWNoU3ludGhlc2lzRXZlbnQgOiBF
dmVudCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgY2hhckluZGV4Owor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBlbGFwc2VkVGltZTsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvbWFjL1NwZWVjaFN5bnRoZXNpc01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9tYWMvU3BlZWNoU3ludGhlc2lzTWFjLm1tCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvbWFjL1NwZWVjaFN5bnRoZXNp
c01hYy5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFN5bnRoZXNpcy5oIgorCisjaWYgRU5BQkxFKFdF
Ql9TUEVFQ0hfU1lOVEhFU0lTKQorCisjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBTcGVlY2hTeW50aGVzaXM6OnBlbmRp
bmcoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBTcGVlY2hTeW50aGVz
aXM6OnNwZWFraW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgU3Bl
ZWNoU3ludGhlc2lzOjpwYXVzZWQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwor
dm9pZCBTcGVlY2hTeW50aGVzaXM6OnNwZWFrKFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSopCit7
Cit9CisKK3ZvaWQgU3BlZWNoU3ludGhlc2lzOjpjYW5jZWwoKQoreworfQorCit2b2lkIFNwZWVj
aFN5bnRoZXNpczo6cGF1c2UoKQoreworfQorCit2b2lkIFNwZWVjaFN5bnRoZXNpczo6cmVzdW1l
KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9TUEVFQ0hfU1lOVEhFU0lTKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVj
aFN5bnRoZXNpcy5oIgorCisjaWYgRU5BQkxFKFdFQl9TUEVFQ0hfU1lOVEhFU0lTKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgCitQYXNzUmVmUHRyPFNwZWVjaFN5bnRoZXNpcz4gU3BlZWNo
U3ludGhlc2lzOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoU3lu
dGhlc2lzKCkpOworfQorCitTcGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcygpCit7Cit9
CisKK1NwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdCogU3BlZWNoU3ludGhlc2lzOjpnZXRWb2ljZXMo
KQoreworICAgIHJldHVybiBtX3ZvaWNlTGlzdC5nZXQoKTsKK30KKyAgICAKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZS5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfU1BFRUNIX1NZTlRIRVNJ
UywKKyAgICBFdmVudFRhcmdldCwKKyAgICBDb25zdHJ1Y3RvcihpbiBbT3B0aW9uYWw9RGVmYXVs
dElzTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRleHQpCitdIGludGVyZmFjZSBTcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UgeworICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dDsKKyAgICBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGxhbmc7CisgICAgYXR0cmlidXRlIERPTVN0cmluZyB2b2ljZVVSSTsKKyAg
ICBhdHRyaWJ1dGUgZmxvYXQgdm9sdW1lOworICAgIGF0dHJpYnV0ZSBmbG9hdCByYXRlOworICAg
IGF0dHJpYnV0ZSBmbG9hdCBwaXRjaDsKKworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
c3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lbmQ7CisgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnBh
dXNlOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVzdW1lOworICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9ubWFyazsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJv
dW5kYXJ5OworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc0V2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTcGVlY2hTeW50aGVzaXNFdmVudC5oIgorCisjaWYgRU5BQkxFKFdFQl9TUEVFQ0hfU1lOVEhF
U0lTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitQYXNzUmVmUHRyPFNwZWVjaFN5bnRo
ZXNpc0V2ZW50PiBTcGVlY2hTeW50aGVzaXNFdmVudDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNwZWVjaFN5bnRoZXNpc0V2ZW50KCkpOworfQorCitTcGVlY2hTeW50aGVz
aXNFdmVudDo6U3BlZWNoU3ludGhlc2lzRXZlbnQoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1NQRUVDSF9TWU5USEVTSVMpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmgiCisKKyNpZiBFTkFCTEUoV0VCX1NQRUVDSF9TWU5USEVTSVMp
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1Bhc3NSZWZQdHI8U3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlPiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OmNyZWF0ZShTdHJpbmcgdGV4dCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSh0ZXh0
KSk7Cit9CisKK1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlKFN0cmluZyB0ZXh0KQorICAgIDogbV90ZXh0KHRleHQpCit7Cit9CisgICAgCitjb25zdCBB
dG9taWNTdHJpbmcmIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6aW50ZXJmYWNlTmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JTcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2U7Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCX1NQRUVDSF9TWU5USEVTSVMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
c1ZvaWNlTGlzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdF9oCisjZGVmaW5lIFNwZWVjaFN5bnRoZXNpc1Zv
aWNlTGlzdF9oCisKKyNpZiBFTkFCTEUoV0VCX1NQRUVDSF9TWU5USEVTSVMpCisKKyNpbmNsdWRl
ICJTcGVlY2hTeW50aGVzaXNWb2ljZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFz
cyBTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hTeW50
aGVzaXNWb2ljZUxpc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVlY2hT
eW50aGVzaXNWb2ljZUxpc3Q+IGNyZWF0ZSgpOworICAgIAorICAgIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gbV92b2ljZUxpc3Quc2l6ZSgpOyB9CisgICAgUGFzc1JlZlB0
cjxTcGVlY2hTeW50aGVzaXNWb2ljZT4gaXRlbSh1bnNpZ25lZCBsb25nKSBjb25zdDsKKyAgICAK
K3ByaXZhdGU6CisgICAgU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0KCk7CisgICAgCisgICAgVmVj
dG9yPFJlZlB0cjxTcGVlY2hTeW50aGVzaXNWb2ljZT4gPiBtX3ZvaWNlTGlzdDsKK307CisgICAg
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1NQRUVDSF9T
WU5USEVTSVMpCisKKyNlbmRpZiAvLyBTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3RfaApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNW
b2ljZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoU3ludGhlc2lzVm9pY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBTcGVlY2hTeW50aGVzaXNWb2ljZV9oCisjZGVmaW5lIFNwZWVjaFN5bnRoZXNp
c1ZvaWNlX2gKKworI2lmIEVOQUJMRShXRUJfU1BFRUNIX1NZTlRIRVNJUykKKworI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
cGVlY2hTeW50aGVzaXNWb2ljZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFN5bnRoZXNpc1Zv
aWNlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoU3ludGhlc2lzVm9p
Y2U+IGNyZWF0ZShTdHJpbmcgdm9pY2VVUkksIFN0cmluZyBuYW1lLCBTdHJpbmcgbGFuZywgYm9v
bCBsb2NhbFNlcnZpY2UsIGJvb2wgaXNEZWZhdWx0KTsKKyAgICAKKyAgICBTdHJpbmcgdm9pY2VV
UkkoKSBjb25zdCB7IHJldHVybiBtX3ZvaWNlVVJJOyB9CisgICAgU3RyaW5nIG5hbWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBTdHJpbmcgbGFuZygpIGNvbnN0IHsgcmV0dXJuIG1f
bGFuZzsgfQorICAgIGJvb2wgbG9jYWxTZXJ2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFNl
cnZpY2U7IH0KKyAgICBib29sIGlzRGVmYXVsdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdDsg
fQorICAgIAorcHJpdmF0ZToKKyAgICBTcGVlY2hTeW50aGVzaXNWb2ljZShTdHJpbmcgdm9pY2VV
UkksIFN0cmluZyBuYW1lLCBTdHJpbmcgbGFuZywgYm9vbCBsb2NhbFNlcnZpY2UsIGJvb2wgaXNE
ZWZhdWx0KTsKKyAgICAKKyAgICBTdHJpbmcgbV92b2ljZVVSSTsKKyAgICBTdHJpbmcgbV9uYW1l
OworICAgIFN0cmluZyBtX2xhbmc7CisgICAgYm9vbCBtX2xvY2FsU2VydmljZTsKKyAgICBib29s
IG1fZGVmYXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJfU1BFRUNIX1NZTlRIRVNJUykKKworI2VuZGlmIC8vIFNwZWVjaFN5bnRoZXNpc1Zv
aWNlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRE9NV2luZG93U3BlZWNoU3ludGhl
c2lzX2gKKyNkZWZpbmUgRE9NV2luZG93U3BlZWNoU3ludGhlc2lzX2gKKworI2lmIEVOQUJMRShX
RUJfU1BFRUNIX1NZTlRIRVNJUykKKworI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisj
aW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzLmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgRE9NV2luZG93OworCitjbGFzcyBE
T01XaW5kb3dTcGVlY2hTeW50aGVzaXMgOiBwdWJsaWMgU3VwcGxlbWVudDxET01XaW5kb3c+LCBw
dWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpcygpOworICAgIAorICAgIHN0YXRpYyBTcGVlY2hTeW50aGVzaXMqIHNw
ZWVjaFN5bnRoZXNpcyhET01XaW5kb3cqKTsKKyAgICBzdGF0aWMgRE9NV2luZG93U3BlZWNoU3lu
dGhlc2lzKiBmcm9tKERPTVdpbmRvdyopOworICAgIAorcHJpdmF0ZToKKyAgICBleHBsaWNpdCBE
T01XaW5kb3dTcGVlY2hTeW50aGVzaXMoRE9NV2luZG93Kik7CisgICAgCisgICAgU3BlZWNoU3lu
dGhlc2lzKiBzcGVlY2hTeW50aGVzaXMoKTsKKyAgICAKKyAgICBET01XaW5kb3cqIG1fd2luZG93
OworICAgIFJlZlB0cjxTcGVlY2hTeW50aGVzaXM+IG1fc3BlZWNoU3ludGhlc2lzOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9TUEVFQ0hfU1lO
VEhFU0lTKQorCisjZW5kaWYgLy8gRE9NV2luZG93U3BlZWNoU3ludGhlc2lzX2gKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3BlZWNo
U3ludGhlc2lzX2gKKyNkZWZpbmUgU3BlZWNoU3ludGhlc2lzX2gKKworI2lmIEVOQUJMRShXRUJf
U1BFRUNIX1NZTlRIRVNJUykKKworI2luY2x1ZGUgIlNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdC5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAK
K2NsYXNzIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTsKKyAgICAKK2NsYXNzIFNwZWVjaFN5bnRo
ZXNpcyA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFN5bnRoZXNpcz4geworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNwZWVjaFN5bnRoZXNpcz4gY3JlYXRlKCk7CisgICAgCisgICAg
Ym9vbCBwZW5kaW5nKCkgY29uc3Q7CisgICAgYm9vbCBzcGVha2luZygpIGNvbnN0OworICAgIGJv
b2wgcGF1c2VkKCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBzcGVhayhTcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UqKTsKKyAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2
b2lkIHJlc3VtZSgpOworICAgIAorICAgIFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdCogZ2V0Vm9p
Y2VzKCk7CisgICAgCitwcml2YXRlOgorICAgIFNwZWVjaFN5bnRoZXNpcygpOworICAgIFJlZlB0
cjxTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3Q+IG1fdm9pY2VMaXN0OworfTsKKyAgICAKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfU1BFRUNIX1NZTlRIRVNJ
UykKKworI2VuZGlmIC8vIFNwZWVjaFN5bnRoZXNpc0V2ZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
c0V2ZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
U3BlZWNoU3ludGhlc2lzRXZlbnRfaAorI2RlZmluZSBTcGVlY2hTeW50aGVzaXNFdmVudF9oCisK
KyNpZiBFTkFCTEUoV0VCX1NQRUVDSF9TWU5USEVTSVMpCisKKyNpbmNsdWRlICJFdmVudC5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAK
K2NsYXNzIFNwZWVjaFN5bnRoZXNpc0V2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVlY2hTeW50aGVzaXNFdmVudD4gY3JlYXRlKCk7CisgICAg
CisgICAgdW5zaWduZWQgbG9uZyBjaGFySW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2NoYXJJbmRl
eDsgfQorICAgIGZsb2F0IGVsYXBzZWRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9lbGFwc2VkVGlt
ZTsgfQorICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgCitw
cml2YXRlOgorICAgIFNwZWVjaFN5bnRoZXNpc0V2ZW50KCk7CisgICAgCisgICAgdW5zaWduZWQg
bG9uZyBtX2NoYXJJbmRleDsKKyAgICBmbG9hdCBtX2VsYXBzZWRUaW1lOworICAgIFN0cmluZyBt
X25hbWU7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQl9TUEVFQ0hfU1lOVEhFU0lTKQorCisjZW5kaWYgLy8gU3BlZWNoU3ludGhlc2lzRXZl
bnRfaApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
Vm9pY2VMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0LmlkbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisgCitbCisgICAgQ29uZGl0aW9uYWw9V0VC
X1NQRUVDSF9TWU5USEVTSVMKK10gaW50ZXJmYWNlIFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdCB7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIFNwZWVj
aFN5bnRoZXNpc1ZvaWNlIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7Cit9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
c1ZvaWNlLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisgCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX1NQRUVDSF9TWU5USEVTSVMKK10gaW50
ZXJmYWNlIFNwZWVjaFN5bnRoZXNpc1ZvaWNlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHZvaWNlVVJJOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmc7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gbG9jYWxTZXJ2aWNlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW1w
bGVtZW50ZWRBcz1pc0RlZmF1bHRdIGJvb2xlYW4gZGVmYXVsdDsKK307Cg==
</data>
<flag name="review"
          id="201110"
          type_id="1"
          status="-"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="201129"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183020</attachid>
            <date>2013-01-16 12:45:21 -0800</date>
            <delta_ts>2013-01-16 12:50:36 -0800</delta_ts>
            <desc>updates based on review</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>77824</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkocmV2aXNpb24gMTM5OTEyKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDYgKzIxMiw5
IEBACiAgICAgbWFjcm8obm9tYXRjaCkgXAogICAgIG1hY3JvKHN0YXJ0KSBcCiAgICAgbWFjcm8o
ZW5kKSBcCisgICAgbWFjcm8obWFyaykgXAorICAgIG1hY3JvKGJvdW5kYXJ5KSBcCisgICAgbWFj
cm8ocmVzdW1lKSBcCiAgICAgXAogICAgIG1hY3JvKHdlYmdsY29udGV4dGxvc3QpIFwKICAgICBt
YWNybyh3ZWJnbGNvbnRleHRyZXN0b3JlZCkgXApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4JKHJldmlzaW9uIDEzOTkxMikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiBTcGVlY2hJbnB1dEV2ZW50IGNvbmRp
dGlvbmFsPUlOUFVUX1NQRUVDSAogU3BlZWNoUmVjb2duaXRpb25FcnJvciBjb25kaXRpb25hbD1T
Q1JJUFRFRF9TUEVFQ0gKIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U0NSSVBU
RURfU1BFRUNICitTcGVlY2hTeW50aGVzaXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhF
U0lTCiBXZWJHTENvbnRleHRFdmVudCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CiBT
VkdFdmVudHMgaW50ZXJmYWNlTmFtZT1FdmVudCwgY29uZGl0aW9uYWw9U1ZHCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4JKHJldmlzaW9uIDEzOTkxMikKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDcgQEAKIFNoYXJlZFdvcmtlckNvbnRleHQgY29uZGl0aW9uYWw9U0hBUkVE
X1dPUktFUlMKIFNvdXJjZUJ1ZmZlckxpc3QgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTcGVl
Y2hSZWNvZ25pdGlvbiBjb25kaXRpb25hbD1TQ1JJUFRFRF9TUEVFQ0gKK1NwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZSBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBTVkdFbGVtZW50SW5zdGFu
Y2UgY29uZGl0aW9uYWw9U1ZHCiBUZXh0VHJhY2sgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFRl
eHRUcmFja0N1ZSBjb25kaXRpb25hbD1WSURFT19UUkFDSwpJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gMTM5OTEyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODcgQEAKKzIwMTMtMDEtMTYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBTdHViIG91dCBXZWJTcGVlY2ggc3ludGhlc2lzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY4NDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMgaW4gdGhl
IG5lY2Vzc2FyeSBJRExzIGFuZCBzdHVicyBvdXQgdGhlIGNvZGUgZm9yIHRoZSBXZWJTcGVlY2gK
KyAgICAgICAgc3ludGhlc2lzIHNwZWNpZmljYXRpb24uCisgICAgICAgIEl0IGRvZXMgbm90IHR1
cm4gb24gdGhlIGZlYXR1cmUgaW4gYW55IHBsYXRmb3JtLCBidXQgaXQgY2FuIGJlIGVuYWJsZWQK
KyAgICAgICAgYW5kIGJ1aWx0IGZvciBNYWMuCisKKyAgICAgICAgVGhlIGZlYXR1cmUgZmxhZyBp
cyBTUEVFQ0hfU1lOVEhFU0lTLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6RE9NV2luZG93U3BlZWNo
U3ludGhlc2lzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6
fkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dT
cGVlY2hTeW50aGVzaXM6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93U3BlZWNo
U3ludGhlc2lzOjpzcGVlY2hTeW50aGVzaXMpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFN5bnRoZXNpczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
czo6U3BlZWNoU3ludGhlc2lzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXMuaDogQWRkZWQuCisgICAgICAgIChTcGVlY2hTeW50aGVzaXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoU3ludGhlc2lzOjpnZXRWb2ljZXMpOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hTeW50aGVzaXNFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRo
ZXNpc0V2ZW50OjpTcGVlY2hTeW50aGVzaXNFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChTcGVlY2hTeW50aGVz
aXNFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNFdmVudDo6Y2hhcklu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc0V2ZW50OjplbGFwc2VkVGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNFdmVudDo6bmFtZSk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6U3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2U6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oOiBBZGRlZC4KKyAgICAgICAgKFNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2U6OnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpz
ZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6bGFu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnNldExhbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjp2b2ljZVVSSSk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnNldFZvaWNlVVJJ
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6dm9sdW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6c2V0Vm9sdW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6cmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnNldFJhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpwaXRjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnNldFBpdGNoKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVm9pY2U6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNWb2ljZTo6U3BlZWNoU3ludGhlc2lzVm9pY2UpOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmg6IEFkZGVkLgorICAg
ICAgICAoU3BlZWNoU3ludGhlc2lzVm9pY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3lu
dGhlc2lzVm9pY2U6OnZvaWNlVVJJKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
c1ZvaWNlOjpuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1ZvaWNlOjps
YW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpsb2NhbFNlcnZp
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVm9pY2U6OmlzRGVmYXVsdCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9tYWM6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL21hYy9TcGVlY2hTeW50aGVzaXNNYWMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoU3ludGhlc2lzOjpwZW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFN5bnRoZXNpczo6c3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lz
OjpwYXVzZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpzcGVhayk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OmNhbmNlbCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hTeW50aGVzaXM6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5
bnRoZXNpczo6cmVzdW1lKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnRO
YW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorCiAyMDEzLTAx
LTE2ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgaW5jb25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2
ZSBkaW1lbnNpb25zLgpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAxMzk5MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291
cmNlIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucyBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3F1b3RhIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJkYXRhYmFzZSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMgXApAQCAtMTE4
LDYgKzExOSwxMSBAQAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb0Vy
cm9yQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvU3RvcmFnZUlu
Zm9RdW90YUNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3F1b3RhL1N0b3Jh
Z2VJbmZvVXNhZ2VDYWxsYmFjay5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzk5MTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTEyODgsOCArMTI4OCw4IEBACiAJCTQ5NDg0RkMxMTAyQ0YyM0MwMDE4
N0REMyAvKiBDYW52YXNHcmFkaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCMzEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGll
bnQuY3BwICovOyB9OwogCQk0OTQ4NEZDMjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0
RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oICovOyB9OwogCQk0OTQ4NEZD
NDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCNjEwMkNGMjNDMDAxODdERDMgLyog
Q2FudmFzUGF0dGVybi5jcHAgKi87IH07CisJCTQ5NDg0RkM0MTAyQ0YyM0MwMDE4OEREMyAvKiBD
YW52YXNQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTQ4NEZCNjEwMkNGMjNDMDAxODhERDMgLyogQ2FudmFzUHJveHkuY3BwICovOyB9Owog
CQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjcxMDJDRjIzQzAwMTg3
REQzIC8qIENhbnZhc1BhdHRlcm4uaCAqLzsgfTsKLQkJNDk0ODRGQzQxMDJDRjIzQzAwMTg4REQz
IC8qIENhbnZhc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5NDg0RkI2MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94eS5jcHAgKi87
IH07CiAJCTQ5NDg0RkM1MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjcxMDJDRjIzQzAw
MTg4REQzIC8qIENhbnZhc1Byb3h5LmggKi87IH07CiAJCTQ5NDg0RkNBMTAyQ0YyM0MwMDE4N0RE
MyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQkMxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgKi87IH07CiAJCTQ5NDg0RkNCMTAyQ0YyM0MwMDE4N0RE
MyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkJEMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTE4NTksOCArMTg1OSw4IEBACiAJCTY1REYz
MjM5MDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc0dyYWRpZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REYzMjMzMDlEMURFNjUwMDBCRTMy
NSAvKiBKU0NhbnZhc0dyYWRpZW50LmNwcCAqLzsgfTsKIAkJNjVERjMyM0EwOUQxREU2NTAwMEJF
MzI1IC8qIEpTQ2FudmFzR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1REYzMjM0MDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc0dyYWRp
ZW50LmggKi87IH07CiAJCTY1REYzMjNCMDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc1BhdHRl
cm4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVE
RjMyMzUwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVybi5jcHAgKi87IH07CisJCTY1
REYzMjNCMDlEMURFNjUwMDFCRTMyNSAvKiBKU0NhbnZhc1Byb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REYzMjM1MDlEMURFNjUwMDFCRTMy
NSAvKiBKU0NhbnZhc1Byb3h5LmNwcCAqLzsgfTsKIAkJNjVERjMyM0MwOUQxREU2NTAwMEJFMzI1
IC8qIEpTQ2FudmFzUGF0dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVERjMyMzYwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVybi5o
ICovOyB9OwotCQk2NURGMzIzQjA5RDFERTY1MDAxQkUzMjUgLyogSlNDYW52YXNQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NURGMzIzNTA5
RDFERTY1MDAxQkUzMjUgLyogSlNDYW52YXNQcm94eS5jcHAgKi87IH07CiAJCTY1REYzMjNDMDlE
MURFNjUwMDFCRTMyNSAvKiBKU0NhbnZhc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NURGMzIzNjA5RDFERTY1MDAxQkUzMjUgLyogSlNDYW52
YXNQcm94eS5oICovOyB9OwogCQk2NURGMzI2MTA5RDFFMTk5MDAwQkUzMjUgLyogVXNlckFnZW50
U3R5bGVTaGVldHNEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1NjU4MUFGMDlEMTRFRTYwMDBFNjFENyAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0
c0RhdGEuY3BwICovOyB9OwogCQk2NUUwRTk0NDExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFw
cGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUUw
RTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ2MTMsMTAgKzQ2MTMsMjkgQEAKIAkJ
QTlEMjQ4MDkwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDUwRDc1N0U3RDAw
RkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovOyB9OwogCQlBQTIxRUNDQTBBQkYwRkJB
MDAyQjgzNEMgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTA5NzhFRDBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NT
Q3Vyc29ySW1hZ2VWYWx1ZS5jcHAgKi87IH07CiAJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAv
KiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQTA5NzhFRTBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUFBMkE1QUNEMTZBNDg1RkEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFDNjE2QTQ4
NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwICovOyB9OworCQlBQTJBNUFD
RTE2QTQ4NUZEMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMkE1QUM3MTZBNDg1RDUwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oICovOyB9OworCQlBQTJBNUFEMDE2QTQ4NjA0MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFDNTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggKi87IH07CisJCUFBMkE1QUQxMTZBNDg2MDcwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgKi87IH07CisJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzExNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpc0V2ZW50LmggKi87IH07CisJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NkEyNSAvKiBKU1NwZWVj
aFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQTJBNUFDMTE2QTQ4NUQ1MDA5NzZBMjUgLyogSlNTcGVlY2hTeW50aGVzaXNFdmVu
dC5oICovOyB9OworCQlBQTJBNUFEMzE2QTQ4NjBEMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QUEyQTVBQzAxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcCAqLzsg
fTsKKwkJQUEyQTVBRDMxNkE0ODYwRDAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVB
QzAxNkE0ODVENTAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwICovOyB9Owor
CQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFCRTE2QTQ4NUQ1MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi87IH07CisJCUFBMkE1QUQ1MTZBNDg2MTQwMDk3
NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5jcHAgKi87IH07CisJCUFBMkE1QUQ2MTZBNDg2MTYwMDk3NUEyNSAvKiBET01XaW5kb3dT
cGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuaCAqLzsgfTsKKwkJQUEyQTVBRDcxNkE0ODYxQTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lz
LmNwcCAqLzsgfTsKKwkJQUEyQTVBRDgxNkE0ODYxRDAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNp
c01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFB
MkE1QUJDMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNNYWMubW0gKi87IH07CiAJ
CUFBNEMzQTc2MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE0QzNBNzQwQjJCMTY3OTAwMjMz
NEEyIC8qIFN0eWxlRWxlbWVudC5jcHAgKi87IH07CiAJCUFBNEMzQTc3MEIyQjE2NzkwMDIzMzRB
MiAvKiBTdHlsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFBNEMzQTc1MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuaCAqLzsg
fTsKIAkJQUE3MzE4M0UxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFB
NzMxODNDMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAg
Ki87IH07CiAJCUFBNzMxODNGMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QUE3MzE4M0QxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmgg
Ki87IH07CisJCUFBN0ZFRUE0MTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTdGRUU5
QzE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuY3BwICovOyB9OworCQlBQTdG
RUVBNjE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFOUUxNkE0
RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcCAqLzsgfTsKKwkJ
QUE3RkVFQTcxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTdGRUU5RjE2
QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCAqLzsgfTsKKwkJ
QUE3RkVFQTgxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFQTAxNkE0
RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwICovOyB9OworCQlBQTdG
RUVBOTE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFQTExNkE0RTZGMzAw
NEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLzsgfTsKKwkJQUE3RkVFQUQxNkE0
RTc0QjAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTdGRUVBQzE2QTRFNzRCMDA0QzBDMzMgLyogSlNT
cGVlY2hTeW50aGVzaXMuaCAqLzsgfTsKIAkJQUFCNjA1NEUxNTg3NEM1ODAwN0I1MDMxIC8qIElu
amVjdGVkU2NyaXB0QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQUI2MDU0QTE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNl
LmNwcCAqLzsgfTsKIAkJQUFCNjA1NEYxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0
QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFC
NjA1NEIxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0QmFzZS5oICovOyB9OwogCQlB
QUI2MDU1MDE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFCNjA1NEMxNTg3NEM1
ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmNwcCAqLzsgfTsKQEAgLTg1ODQsMTAg
Kzg2MDMsMTAgQEAKIAkJNDk0ODRGQjQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENhbnZhc0dyYWRpZW50Lmg7IHBh
dGggPSBjYW52YXMvQ2FudmFzR3JhZGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDk0ODRGQjUxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBDYW52YXNHcmFkaWVudC5pZGw7IHBhdGggPSBjYW52YXMvQ2FudmFz
R3JhZGllbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ4NEZCNjEwMkNG
MjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBDYW52YXNQYXR0ZXJuLmNwcDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0
ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk0ODRGQjYxMDJDRjIzQzAw
MTg4REQzIC8qIENhbnZhc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IENhbnZhc1Byb3h5LmNwcDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkI3MTAyQ0YyM0MwMDE4N0REMyAvKiBD
YW52YXNQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENhbnZhc1Bh
dHRlcm4uaDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQ5NDg0RkI3MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNQcm94eS5oOyBwYXRoID0gY2Fu
dmFzL0NhbnZhc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkI4
MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBDYW52YXNQYXR0ZXJuLmlkbDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDk0ODRGQjYxMDJDRjIzQzAwMTg4REQzIC8q
IENhbnZhc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENh
bnZhc1Byb3h5LmNwcDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQ5NDg0RkI3MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNQcm94eS5oOyBwYXRo
ID0gY2FudmFzL0NhbnZhc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
NDg0RkI4MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94eS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gQ2FudmFzUHJveHkuaWRsOyBwYXRoID0gY2FudmFzL0NhbnZhc1Byb3h5LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQkMxMDJDRjIzQzAwMTg3REQzIC8q
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOyBwYXRoID0gY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ5NDg0RkJEMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Lmg7IHBhdGggPSBjYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC05MjAyLDggKzkyMjEsOCBAQAogCQk2NURGMzIzMzA5RDFERTY1
MDAwQkUzMjUgLyogSlNDYW52YXNHcmFkaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNDYW52YXNHcmFkaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1REYzMjM0MDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc0dyYWRpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NhbnZhc0dyYWRpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1REYzMjM1MDlEMURFNjUwMDBCRTMyNSAvKiBK
U0NhbnZhc1BhdHRlcm4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ2FudmFzUGF0dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTY1REYz
MjM1MDlEMURFNjUwMDFCRTMyNSAvKiBKU0NhbnZhc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NhbnZhc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjVERjMyMzYwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVy
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYW52YXNQYXR0ZXJuLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1REYzMjM1MDlEMURFNjUwMDFCRTMyNSAv
KiBKU0NhbnZhc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NhbnZhc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVERjMy
MzYwOUQxREU2NTAwMUJFMzI1IC8qIEpTQ2FudmFzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQ2FudmFzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNjVFMEU5NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjVGODA2OTcwNTREOUY4NjAwOEJGNzc2IC8qIEJsb2NrRXhjZXB0aW9u
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEJsb2NrRXhjZXB0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xMTg5OCwxMCArMTE5MTcsMzQgQEAKIAkJQTlE
MjQ4MDUwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01NaW1lVHlwZUFycmF5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFBMDk3OEVEMEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJ
bWFnZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUEwOTc4
RUUwQUJBQTZFMTAwODc0NDgwIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0N1cnNvckltYWdlVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1Nw
ZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMuY3BwOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQjkxNkE0ODVENTAwOTc1
QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01XaW5k
b3dTcGVlY2hTeW50aGVzaXMuaDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFCQTE2QTQ4
NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBET01XaW5k
b3dTcGVlY2hTeW50aGVzaXMuaWRsOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQkMx
NkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gU3BlZWNoU3ludGhlc2lzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNpcy5jcHA7IHBhdGggPSBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFC
RTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNw
ZWVjaFN5bnRoZXNpcy5oOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNpcy5pZGw7IHBhdGggPSBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBQTJBNUFDMDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwOyBwYXRoID0g
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBQTJBNUFDMDE2QTQ4NUQ1MDA5NzZBMjUgLyogSlNTcGVlY2hTeW50aGVz
aXNFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQzExNkE0ODVENTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNp
c0V2ZW50Lmg7IHBhdGggPSBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFDMTE2QTQ4NUQ1MDA5NzZBMjUgLyog
SlNTcGVlY2hTeW50aGVzaXNFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNp
c0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBMkE1QUMyMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU3BlZWNoU3ludGhlc2lz
RXZlbnQuaWRsOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFDMzE2QTQ4NUQ1MDA5NzVBMjUg
LyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2UuaWRsOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQzQxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEy
QTVBQzUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaDsgcGF0aCA9IE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBQTJBNUFDNjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwOyBwYXRoID0gTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBQTJBNUFDNzE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU3BlZWNoU3ludGhlc2lzVm9pY2UuaDsgcGF0aCA9IE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUFBMkE1QUM4MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
QTRDM0E3NDBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBQTRDM0E3NTBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZUVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUE3MzE4M0MxNTkyNTVCOTAwQTkzRTZFIC8qIElu
amVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQUE3MzE4M0QxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0
Q2FudmFzTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVk
U2NyaXB0Q2FudmFzTW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBN0ZF
RTlDMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNpcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBN0ZFRTlFMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUFBN0ZFRTlGMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTdGRUVBMDE2
QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUE3RkVFQTExNkE0RTZGMzAwNEMwQzMzIC8qIEpT
U3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTcGVlY2hTeW50aGVzaXNWb2ljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
QTdGRUVBQzE2QTRFNzRCMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUE5MDMwRkUxNTdFMTZBMDAwMjc2MjQ3IC8qIEluamVjdGVkU2Ny
aXB0Q2FudmFzTW9kdWxlU291cmNlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFBOTEyNzUwMTU3RTM1QTUwMDQ1NEU1NCAvKiBJbmplY3RlZFNj
cmlwdENhbnZhc01vZHVsZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBQUI2MDU0QTE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkU2NyaXB0
QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDY5NCw2ICsxNDczNyw3
IEBACiAJCQkJNDE3REE3MTIxMzczNUQ5MDAwN0M1N0ZCIC8qIFRlc3RpbmcgKi8sCiAJCQkJRTFD
OEJFNEIwRThCRDBEMTAwNjRDQjdEIC8qIFRocmVhZHMgKi8sCiAJCQkJQkM5ODU0NTMwQ0QzREE4
RjAwMDY5QkMxIC8qIFRyYXZlcnNhbCAqLywKKwkJCQlBQTdGRUU5QjE2QTQ5MUExMDA0QzBDMzMg
LyogU3BlZWNoICovLAogCQkJCUZEQTE1RTdCMTJCMDNFMDQwMDNBNTgzQSAvKiBXZWJBdWRpbyAq
LywKIAkJCQk1REE1RTBGOTEwMkI5NTA0MDAwODhDRjkgLyogV2ViU29ja2V0cyAqLywKIAkJCQlC
Qzk4NTQ0MzBDRDNEOUQwMDAwNjlCQzEgLyogV2luZG93ICovLApAQCAtMTgxMDksNiArMTgxNTMs
NyBAQAogCQkJCTMzM0Y3MDNEMEZCNDlDMTYwMDhFMTJBNiAvKiBub3RpZmljYXRpb25zICovLAog
CQkJCUY2MDk4Rjc4MTY2NkQ4NDEwMDMyNjlEMSAvKiBwcm94aW1pdHkgKi8sCiAJCQkJODlGNjBC
MDgxNTdGNjgzNTAwNzVFMTU3IC8qIHF1b3RhICovLAorCQkJCUFBMkE1QUI3MTZBNDg1QTQwMDk3
NUEyNSAvKiBzcGVlY2ggKi8sCiAJCQkJRkQzMTVGQTIxMkIwMjVCMTAwQzFBMzU5IC8qIHdlYmF1
ZGlvICovLAogCQkJCTk3QkM2OUQ1MTUwNUYwNTQwMDFCNzRBQyAvKiB3ZWJkYXRhYmFzZSAqLywK
IAkJCQk5N0FBQkNGNzE0RkEwOUI1MDA3NDU3QUUgLyogd2Vic29ja2V0cyAqLywKQEAgLTE5NTgz
LDYgKzE5NjI4LDUzIEBACiAJCQluYW1lID0gUGx1Z2luczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUFBMkE1QUJCMTZBNDg1
RDUwMDk3NUEyNSAvKiBtYWMgKi8sCisJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCisJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1
QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLAorCQkJCUFBMkE1QUJBMTZBNDg1
RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaWRsICovLAorCQkJCUFBMkE1
QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAorCQkJCUFBMkE1
QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKKwkJCQlBQTJBNUFC
RjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKKwkJCQlBQTJBNUFD
MDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwICovLAorCQkJCUFB
MkE1QUMxMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oICovLAorCQkJ
CUFBMkE1QUMyMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5pZGwgKi8s
CisJCQkJQUEyQTVBQzQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZS5jcHAgKi8sCisJCQkJQUEyQTVBQzUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZS5oICovLAorCQkJCUFBMkE1QUMzMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UuaWRsICovLAorCQkJCUFBMkE1QUM2MTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8sCisJCQkJQUEyQTVBQzcxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8sCisJCQkJQUEyQTVBQzgxNkE0ODVENTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCAqLywKKwkJCSk7CisJCQluYW1lID0g
c3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQUEyQTVBQkIxNkE0
ODVENTAwOTc1QTI1IC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJQUEyQTVBQkMxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc01h
Yy5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gbWFjOworCQkJcGF0aCA9IE1vZHVsZXMvc3BlZWNo
L21hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUFBN0ZFRTlCMTZBNDkx
QTEwMDRDMEMzMyAvKiBTcGVlY2ggKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUFBN0ZFRTlDMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNp
cy5jcHAgKi8sCisJCQkJQUE3RkVFQUMxNkE0RTc0QjAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhl
c2lzLmggKi8sCisJCQkJQUEyQTVBQzAxNkE0ODVENTAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhl
c2lzRXZlbnQuY3BwICovLAorCQkJCUFBMkE1QUMxMTZBNDg1RDUwMDk3NkEyNSAvKiBKU1NwZWVj
aFN5bnRoZXNpc0V2ZW50LmggKi8sCisJCQkJQUE3RkVFOUUxNkE0RTZGMzAwNEMwQzMzIC8qIEpT
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcCAqLywKKwkJCQlBQTdGRUU5RjE2QTRFNkYzMDA0
QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCAqLywKKwkJCQlBQTdGRUVBMDE2
QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8sCisJCQkJQUE3
RkVFQTExNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKKwkJ
CSk7CisJCQluYW1lID0gU3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJQjFBOTQyREQxNUI1Q0UyMjAwRDUyNUQxIC8qIG1lZGlhc291cmNlICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIzODE1LDYgKzIzOTA3LDcgQEAKIAkJ
CQk5NzEyQTVBRTE1MDA0RURBMDA0OEFGMTAgLyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0IzOEUyNzE1MUM0MjcxMDA0NjIyRTkgLyogRE9NV2luZG93
Tm90aWZpY2F0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdEMkFEMDQxNEI4MjNBNjAwOTNE
RjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBQTJBNUFENjE2
QTQ4NjE2MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4OUY2MEIxMTE1N0Y2ODZFMDA3NUUxNTcgLyogRE9NV2luZG93UXVvdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4Q0NCQjQ5MTUxRjgzMTYwMEFCN0NFOSAvKiBET01XaW5kb3dXZWJE
YXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0RBMkUxMTQzMTIxRTAwMEQ4MTdFIC8q
IERPTVdyYXBwZXJXb3JsZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDY0OCw2ICsyNDc0MSwxMCBA
QAogCQkJCTc1NDE1RDU2MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0RXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTc1NDE1RDU4MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElu
cHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxNUQ1QTEyOUFCMkQyMDAzQUQ2Njkg
LyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUFBN0ZFRUFE
MTZBNEU3NEIwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCUFBN0ZFRUE3MTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUE3RkVFQTkxNkE0RTZGMzAw
NEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
ODI0MzI5MEQwQ0U4QTIwMDQ2MEM4RiAvKiBKU1NRTEVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCNTI1QTk2NTExQ0EyMzQwMDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBRTgyRkVEMENBQjA3RUUwMDIyMzdBRSAvKiBKU1NRTFJlc3VsdFNldC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTUwNCw2ICsyNTYwMSwxMCBAQAogCQkJCTc1NDE1QUZEMTI5NThE
NUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4
RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzU0MTVCMDAxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlz
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBQTJBNUFEMDE2
QTQ4NjA0MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBQTJBNUFDRTE2QTQ4NUZEMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEZFMTNDMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENo
ZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUI4REJEQjRFMTMwQjBGOEEwMEY1Q0RCMSAvKiBT
cGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTEyNTAyMzE1
RENFMzdEMDAyRjg0RTIgLyogU3BpbkJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjcxMzAsNiArMjcyMzEsNyBAQAogCQkJCTk3QjM4RTI4MTUxQzQyNzMwMDQ2MjJFOSAvKiBET01X
aW5kb3dOb3RpZmljYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3RDJBRDAzMTRCODIz
QTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
OUY2MEIxMDE1N0Y2ODZFMDA3NUUxNTcgLyogRE9NV2luZG93UXVvdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQUEyQTVBRDcxNkE0ODYxQTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENDQkI0ODE1MUY4MzE2MDBBQjdDRTkgLyog
RE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1M0RBNDgxMTQz
MTM0RDAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3JsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTFEMTM4MTBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBhdGgubW0gaW4gU291cmNlcyAqLywKQEAg
LTI3OTg1LDYgKzI4MDg3LDEwIEBACiAJCQkJNzU0MTVENTUxMjlBQjJEMjAwM0FENjY5IC8qIEpT
U3BlZWNoSW5wdXRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTQxNUQ1NzEyOUFCMkQy
MDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
NTQxNUQ1OTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQUE3RkVFQTQxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3lu
dGhlc2lzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFBMkE1QUQzMTZBNDg2MEQwMDk3NkEyNSAv
KiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFBN0ZFRUE2
MTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBQTdGRUVBODE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVz
aXNWb2ljZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzYzNzBDRTkyMjVFMDA3RUYzQ0Qg
LyogSlNTUUxFcnJvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTI1QTk2NjExQ0EyMzQwMDAz
QTIzQTggLyogSlNTUUxFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFODJGRUMw
Q0FCMDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmNwcCBpbiBTb3VyY2VzICovLApAQCAt
Mjg3NjEsNiArMjg4NjcsMTEgQEAKIAkJCQk3NTQxNUMyODEyOUE5OTIwMDAzQUQ2NjkgLyogU3Bl
ZWNoSW5wdXRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTg5NzhFQzEyNzA5MEQ2MDA3
NkQ1QTkgLyogU3BlZWNoSW5wdXRSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTVD
MjkxMjlBOTkyMDAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBQTJBNUFENTE2QTQ4NjE0MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUFBMkE1QUQzMTZBNDg2MEQwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXNFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBQTJBNUFEODE2QTQ4NjFEMDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQUEyQTVB
RDExNkE0ODYwNzAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBQTJBNUFDRDE2QTQ4NUZBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
Vm9pY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc4RkUxM0IxMjM2NkIxMDAwQUNFOEQwIC8q
IFNwZWxsQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCOERCREI0RDEzMEIwRjhBMDBG
NUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0NTEyNTAyMjE1RENFMzdEMDAyRjg0RTIgLyogU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMTM5OTEyKQorKysgU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29w
eSkKQEAgLTE1NCwxMCArMTU0LDExIEBACiBFTkFCTEVfV0VCR0wgPSBFTkFCTEVfV0VCR0w7CiBF
TkFCTEVfV0VCX0FVRElPID0gRU5BQkxFX1dFQl9BVURJTzsKIEVOQUJMRV9XRUJfU09DS0VUUyA9
IEVOQUJMRV9XRUJfU09DS0VUUzsKK0VOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTID0gOwogRU5BQkxF
X1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxF
X1hIUl9USU1FT1VUID0gRU5BQkxFX1hIUl9USU1FT1VUOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVf
WFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENM
VVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMp
ICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxF
X0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNf
VFJBTlNJVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVf
Q1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DVVNU
T01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9E
QVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9E
RVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElB
TE9HX0VMRU1FTlQpICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RSQUdHQUJM
RV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRklMRV9TWVNURU0p
ICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1F
UEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVS
X1RIUk9UVExJTkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFC
QVNFKSAkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Up
ICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhF
UykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xJTktfUFJFRkVU
Q0gpICQoRU5BQkxFX0xJTktfUFJFUkVOREVSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
RElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxF
TUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERG
S0lUX1BMVUdJTikgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPWElNSVRZ
X0VWRU5UUykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
KSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVF
Q0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1VCUElYRUxf
TEFZT1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhU
X0FVVE9TSVpJTkcpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9U
T1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURF
TykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9X
T1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NT
U19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NT
U19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURF
UlMpICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElP
TikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJ
WEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JV
TEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikg
JChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESUFMT0dfRUxFTUVOVCkgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRFJBR0dBQkxFX1JFR0lPTikgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFC
TEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFN
RV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9U
SU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdH
RVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVf
TEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTElOS19Q
UkVSRU5ERVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRN
TCkgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5B
QkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJM
RV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJ
T05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9X
X0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChF
TkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFC
TEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykg
JChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQo
RU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhl
c2lzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01X
aW5kb3dTcGVlY2hTeW50aGVzaXMuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmlkbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9TWU5U
SEVTSVMsCisgICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdworXSBpbnRlcmZhY2UgRE9NV2luZG93
U3BlZWNoU3ludGhlc2lzIHsKKworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hTeW50aGVz
aXMgc3BlZWNoU3ludGhlc2lzOworICAgIGF0dHJpYnV0ZSBTcGVlY2hTeW50aGVzaXNFdmVudENv
bnN0cnVjdG9yIFNwZWVjaFN5bnRoZXNpc0V2ZW50OworICAgIGF0dHJpYnV0ZSBTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2VDb25zdHJ1Y3RvciBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U7Cit9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VfaAor
I2RlZmluZSBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VfaAorCisjaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpCisKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFz
cyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2U+LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1Ymxp
YyBFdmVudFRhcmdldCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoU3lu
dGhlc2lzVXR0ZXJhbmNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0
cmluZyYpOworICAgIAorICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
dGV4dDsgfQorICAgIHZvaWQgc2V0VGV4dChjb25zdCBTdHJpbmcmIHRleHQpIHsgbV90ZXh0ID0g
dGV4dDsgfQorCisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5n
OyB9CisgICAgdm9pZCBzZXRMYW5nKGNvbnN0IFN0cmluZyYgbGFuZykgeyBtX2xhbmcgPSBsYW5n
OyB9CisKKyAgICBjb25zdCBTdHJpbmcmIHZvaWNlVVJJKCkgY29uc3QgeyByZXR1cm4gbV92b2lj
ZVVSSTsgfQorICAgIHZvaWQgc2V0Vm9pY2VVUkkoY29uc3QgU3RyaW5nJiB2b2ljZVVSSSkgeyBt
X3ZvaWNlVVJJID0gdm9pY2VVUkk7IH0KKworICAgIGZsb2F0IHZvbHVtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdm9sdW1lOyB9CisgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKSB7IG1fdm9s
dW1lID0gdm9sdW1lOyB9CisKKyAgICBmbG9hdCByYXRlKCkgY29uc3QgeyByZXR1cm4gbV9yYXRl
OyB9CisgICAgdm9pZCBzZXRSYXRlKGZsb2F0IHJhdGUpIHsgbV9yYXRlID0gcmF0ZTsgfQorCisg
ICAgZmxvYXQgcGl0Y2goKSBjb25zdCB7IHJldHVybiBtX3BpdGNoOyB9CisgICAgdm9pZCBzZXRQ
aXRjaChmbG9hdCBwaXRjaCkgeyBtX3BpdGNoID0gcGl0Y2g7IH0KKworICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIoc3RhcnQpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoZW5kKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVycm9y
KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHBhdXNlKTsKKyAgICBERUZJ
TkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHJlc3VtZSk7CisgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihtYXJrKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RF
TkVSKGJvdW5kYXJ5KTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8U3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8U3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlPjo6ZGVyZWY7CisKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCitwcml2YXRlOgorICAgIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJik7CisKKyAgICBTdHJpbmcgbV90ZXh0OworICAg
IFN0cmluZyBtX2xhbmc7CisgICAgU3RyaW5nIG1fdm9pY2VVUkk7CisgICAgZmxvYXQgbV92b2x1
bWU7CisgICAgZmxvYXQgbV9yYXRlOworICAgIGZsb2F0IG1fcGl0Y2g7CisgICAgCisgICAgLy8g
RXZlbnRUYXJnZXQKKyAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CisKKyAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYo
KTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBPVkVS
UklERSB7IHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFy
Z2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREUgeyByZXR1cm4gJm1fZXZl
bnRUYXJnZXREYXRhOyB9Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKKyNlbmRpZiAvLyBTcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2VfaApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisgCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUworXSBp
bnRlcmZhY2UgU3BlZWNoU3ludGhlc2lzICB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gcGVuZGluZzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzcGVha2luZzsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwYXVzZWQ7CisKKyAgICB2b2lkIHNwZWFrKFNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSB1dHRlcmFuY2UpOworICAgIHZvaWQgY2FuY2VsKCk7Cisg
ICAgdm9pZCBwYXVzZSgpOworICAgIHZvaWQgcmVzdW1lKCk7CisgICAgc2VxdWVuY2U8U3BlZWNo
U3ludGhlc2lzVm9pY2U+IGdldFZvaWNlcygpOworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNW
b2ljZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hTeW50aGVzaXNWb2ljZS5oIgorCisjaWYgRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1Bhc3NS
ZWZQdHI8U3BlZWNoU3ludGhlc2lzVm9pY2U+IFNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiB2b2ljZVVSSSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGxhbmcsIGJvb2wgbG9jYWxTZXJ2aWNlLCBib29sIGlzRGVmYXVsdCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNwZWVjaFN5bnRoZXNpc1ZvaWNlKHZvaWNlVVJJLCBuYW1lLCBsYW5nLCBs
b2NhbFNlcnZpY2UsIGlzRGVmYXVsdCkpOworfQorCitTcGVlY2hTeW50aGVzaXNWb2ljZTo6U3Bl
ZWNoU3ludGhlc2lzVm9pY2UoY29uc3QgU3RyaW5nJiB2b2ljZVVSSSwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgbG9jYWxTZXJ2aWNlLCBib29sIGlzRGVmYXVs
dCkKKyAgICA6IG1fdm9pY2VVUkkodm9pY2VVUkkpCisgICAgLCBtX25hbWUobmFtZSkKKyAgICAs
IG1fbGFuZyhsYW5nKQorICAgICwgbV9sb2NhbFNlcnZpY2UobG9jYWxTZXJ2aWNlKQorICAgICwg
bV9kZWZhdWx0KGlzRGVmYXVsdCkKK3sKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9N
V2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCIK
KworI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCisjaW5jbHVkZSAiRE9NV2luZG93Lmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAg
IAorRE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpET01XaW5kb3dTcGVlY2hTeW50aGVzaXMoRE9N
V2luZG93KiB3aW5kb3cpCisgICAgOiBET01XaW5kb3dQcm9wZXJ0eSh3aW5kb3ctPmZyYW1lKCkp
Cit7Cit9CisKK0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6fkRPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpcygpCit7Cit9CisKKy8vIHN0YXRpYworRE9NV2luZG93U3BlZWNoU3ludGhlc2lzKiBET01X
aW5kb3dTcGVlY2hTeW50aGVzaXM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiRE9NV2luZG93U3BlZWNoU3lu
dGhlc2lzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpcyogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRvd1Nw
ZWVjaFN5bnRoZXNpcyo+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6ZnJvbSh3aW5kb3csIG5hbWUp
KTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBET01X
aW5kb3dTcGVlY2hTeW50aGVzaXMod2luZG93KTsKKyAgICAgICAgcHJvdmlkZVRvKHdpbmRvdywg
bmFtZSwgYWRvcHRQdHIoc3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVu
dDsKK30KKworLy8gc3RhdGljCitTcGVlY2hTeW50aGVzaXMqIERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpczo6c3BlZWNoU3ludGhlc2lzKERPTVdpbmRvdyogd2luZG93KQoreworICAgIHJldHVybiBE
T01XaW5kb3dTcGVlY2hTeW50aGVzaXM6OmZyb20od2luZG93KS0+c3BlZWNoU3ludGhlc2lzKCk7
Cit9CisKK1NwZWVjaFN5bnRoZXNpcyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpzcGVlY2hT
eW50aGVzaXMoKQoreworICAgIGlmICghbV9zcGVlY2hTeW50aGVzaXMgJiYgZnJhbWUoKSkKKyAg
ICAgICAgbV9zcGVlY2hTeW50aGVzaXMgPSBTcGVlY2hTeW50aGVzaXM6OmNyZWF0ZSgpOworICAg
IHJldHVybiBtX3NwZWVjaFN5bnRoZXNpcy5nZXQoKTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2
ZW50LmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpc0V2ZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisgCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUworXSBpbnRlcmZhY2Ug
U3BlZWNoU3ludGhlc2lzRXZlbnQgOiBFdmVudCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgY2hhckluZGV4OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBlbGFw
c2VkVGltZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7Cit9OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvbWFjL1NwZWVjaFN5bnRoZXNpc01hYy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9tYWMvU3BlZWNo
U3ludGhlc2lzTWFjLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvbWFjL1NwZWVjaFN5bnRoZXNpc01hYy5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFN5bnRo
ZXNpcy5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKKyNpbmNsdWRlICJTcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorYm9v
bCBTcGVlY2hTeW50aGVzaXM6OnBlbmRpbmcoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBTcGVlY2hTeW50aGVzaXM6OnNwZWFraW5nKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgU3BlZWNoU3ludGhlc2lzOjpwYXVzZWQoKSBjb25zdAorewor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBTcGVlY2hTeW50aGVzaXM6OnNwZWFrKFNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZSopCit7Cit9CisKK3ZvaWQgU3BlZWNoU3ludGhlc2lzOjpjYW5j
ZWwoKQoreworfQorCit2b2lkIFNwZWVjaFN5bnRoZXNpczo6cGF1c2UoKQoreworfQorCit2b2lk
IFNwZWVjaFN5bnRoZXNpczo6cmVzdW1lKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1NZ
TlRIRVNJUykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUGFzc1JlZlB0cjxTcGVlY2hT
eW50aGVzaXM+IFNwZWVjaFN5bnRoZXNpczo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNwZWVjaFN5bnRoZXNpcygpKTsKK30KKyAgICAKK1NwZWVjaFN5bnRoZXNpczo6U3Bl
ZWNoU3ludGhlc2lzKCkKK3sKK30KKyAgICAgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRs
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzVXR0ZXJhbmNlLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisgCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUywKKyAgICBFdmVudFRhcmdl
dCwKKyAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAorICAgIENvbnN0cnVjdG9y
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgdGV4dCkKK10gaW50
ZXJmYWNlIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSB7CisgICAgYXR0cmlidXRlIERPTVN0cmlu
ZyB0ZXh0OworICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFuZzsKKyAgICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHZvaWNlVVJJOworICAgIGF0dHJpYnV0ZSBmbG9hdCB2b2x1bWU7CisgICAgYXR0cmli
dXRlIGZsb2F0IHJhdGU7CisgICAgYXR0cmlidXRlIGZsb2F0IHBpdGNoOworCisgICAgYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVycm9yOworICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9ucGF1c2U7CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25y
ZXN1bWU7CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tYXJrOworICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uYm91bmRhcnk7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2
ZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFN5bnRoZXNpc0V2ZW50LmgiCisKKyNpZiBFTkFC
TEUoU1BFRUNIX1NZTlRIRVNJUykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUGFzc1Jl
ZlB0cjxTcGVlY2hTeW50aGVzaXNFdmVudD4gU3BlZWNoU3ludGhlc2lzRXZlbnQ6OmNyZWF0ZSgp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hTeW50aGVzaXNFdmVudCgpKTsKK30K
KworU3BlZWNoU3ludGhlc2lzRXZlbnQ6OlNwZWVjaFN5bnRoZXNpc0V2ZW50KCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVT
SVMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1NZ
TlRIRVNJUykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUGFzc1JlZlB0cjxTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2U+IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZShjb250ZXh0LCB0ZXh0
KSk7Cit9CisKK1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGV4dCkK
KyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCisgICAgLCBtX3RleHQo
dGV4dCkKK3sKK30KKyAgICAKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Cit9
ICAgIAorICAgIAorY29uc3QgQXRvbWljU3RyaW5nJiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6
OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJm
YWNlRm9yU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOworfQorICAgIAorfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNl
LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXNWb2ljZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFNwZWVjaFN5bnRoZXNpc1ZvaWNlX2gKKyNkZWZpbmUgU3BlZWNoU3ludGhlc2lzVm9p
Y2VfaAorCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoU3lu
dGhlc2lzVm9pY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hTeW50aGVzaXNWb2ljZT4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWVjaFN5bnRoZXNpc1ZvaWNlPiBjcmVh
dGUoY29uc3QgU3RyaW5nJiB2b2ljZVVSSSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIGxhbmcsIGJvb2wgbG9jYWxTZXJ2aWNlLCBib29sIGlzRGVmYXVsdCk7CisgICAgCisgICAg
Y29uc3QgU3RyaW5nJiB2b2ljZVVSSSgpIGNvbnN0IHsgcmV0dXJuIG1fdm9pY2VVUkk7IH0KKyAg
ICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KKyAgICBib29sIGxvY2Fs
U2VydmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTZXJ2aWNlOyB9CisgICAgYm9vbCBpc0Rl
ZmF1bHQoKSBjb25zdCB7IHJldHVybiBtX2RlZmF1bHQ7IH0KKyAgICAKK3ByaXZhdGU6CisgICAg
U3BlZWNoU3ludGhlc2lzVm9pY2UoY29uc3QgU3RyaW5nJiB2b2ljZVVSSSwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgbG9jYWxTZXJ2aWNlLCBib29sIGlzRGVm
YXVsdCk7CisgICAgCisgICAgU3RyaW5nIG1fdm9pY2VVUkk7CisgICAgU3RyaW5nIG1fbmFtZTsK
KyAgICBTdHJpbmcgbV9sYW5nOworICAgIGJvb2wgbV9sb2NhbFNlcnZpY2U7CisgICAgYm9vbCBt
X2RlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoU1BFRUNIX1NZTlRIRVNJUykKKworI2VuZGlmIC8vIFNwZWVjaFN5bnRoZXNpc1ZvaWNlX2gK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRE9NV2luZG93U3BlZWNoU3ludGhlc2lzX2gK
KyNkZWZpbmUgRE9NV2luZG93U3BlZWNoU3ludGhlc2lzX2gKKworI2lmIEVOQUJMRShTUEVFQ0hf
U1lOVEhFU0lTKQorCisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJT
cGVlY2hTeW50aGVzaXMuaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBET01XaW5kb3c7CisKK2NsYXNzIERPTVdpbmRvd1Nw
ZWVjaFN5bnRoZXNpcyA6IHB1YmxpYyBTdXBwbGVtZW50PERPTVdpbmRvdz4sIHB1YmxpYyBET01X
aW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RE9NV2luZG93U3BlZWNoU3lu
dGhlc2lzKCk7CisgICAgCisgICAgc3RhdGljIFNwZWVjaFN5bnRoZXNpcyogc3BlZWNoU3ludGhl
c2lzKERPTVdpbmRvdyopOworICAgIHN0YXRpYyBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqIGZy
b20oRE9NV2luZG93Kik7CisgICAgCitwcml2YXRlOgorICAgIGV4cGxpY2l0IERPTVdpbmRvd1Nw
ZWVjaFN5bnRoZXNpcyhET01XaW5kb3cqKTsKKyAgICAKKyAgICBTcGVlY2hTeW50aGVzaXMqIHNw
ZWVjaFN5bnRoZXNpcygpOworICAgIAorICAgIFJlZlB0cjxTcGVlY2hTeW50aGVzaXM+IG1fc3Bl
ZWNoU3ludGhlc2lzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKKyNlbmRpZiAvLyBET01XaW5kb3dTcGVlY2hTeW50
aGVzaXNfaApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBTcGVlY2hTeW50aGVzaXNfaAorI2RlZmluZSBTcGVlY2hTeW50aGVzaXNfaAor
CisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKKyNpbmNsdWRlICJTcGVlY2hTeW50aGVz
aXNWb2ljZS5oIgorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworICAgIAorY2xhc3MgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOworY2xhc3MgU3BlZWNo
U3ludGhlc2lzVm9pY2U7CisgICAgCitjbGFzcyBTcGVlY2hTeW50aGVzaXMgOiBwdWJsaWMgUmVm
Q291bnRlZDxTcGVlY2hTeW50aGVzaXM+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTcGVlY2hTeW50aGVzaXM+IGNyZWF0ZSgpOworICAgIAorICAgIGJvb2wgcGVuZGluZygpIGNv
bnN0OworICAgIGJvb2wgc3BlYWtpbmcoKSBjb25zdDsKKyAgICBib29sIHBhdXNlZCgpIGNvbnN0
OworICAgIAorICAgIHZvaWQgc3BlYWsoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKik7CisgICAg
dm9pZCBjYW5jZWwoKTsKKyAgICB2b2lkIHBhdXNlKCk7CisgICAgdm9pZCByZXN1bWUoKTsKKyAg
ICAKKyAgICBWZWN0b3I8UmVmUHRyPFNwZWVjaFN5bnRoZXNpc1ZvaWNlPiA+IGdldFZvaWNlcygp
IHsgcmV0dXJuIG1fdm9pY2VMaXN0OyB9OworICAgIAorcHJpdmF0ZToKKyAgICBTcGVlY2hTeW50
aGVzaXMoKTsKKyAgICAKKyAgICBWZWN0b3I8UmVmUHRyPFNwZWVjaFN5bnRoZXNpc1ZvaWNlPiA+
IG1fdm9pY2VMaXN0OworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCisjZW5kaWYgLy8gU3BlZWNoU3ludGhlc2lz
RXZlbnRfaApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXNFdmVudC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTcGVlY2hTeW50aGVzaXNFdmVudF9oCisjZGVmaW5l
IFNwZWVjaFN5bnRoZXNpc0V2ZW50X2gKKworI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQor
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBTcGVlY2hTeW50aGVzaXNFdmVudCA6IHB1Ymxp
YyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoU3ludGhlc2lz
RXZlbnQ+IGNyZWF0ZSgpOworICAgIAorICAgIHVuc2lnbmVkIGxvbmcgY2hhckluZGV4KCkgY29u
c3QgeyByZXR1cm4gbV9jaGFySW5kZXg7IH0KKyAgICBmbG9hdCBlbGFwc2VkVGltZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZWxhcHNlZFRpbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWU7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgU3BlZWNoU3ludGhlc2lz
RXZlbnQoKTsKKyAgICAKKyAgICB1bnNpZ25lZCBsb25nIG1fY2hhckluZGV4OworICAgIGZsb2F0
IG1fZWxhcHNlZFRpbWU7CisgICAgU3RyaW5nIG1fbmFtZTsKK307CisgICAgCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKworI2Vu
ZGlmIC8vIFNwZWVjaFN5bnRoZXNpc0V2ZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGwJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2lj
ZS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworIAorWworICAgIENv
bmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMKK10gaW50ZXJmYWNlIFNwZWVjaFN5bnRoZXNpc1Zv
aWNlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZvaWNlVVJJOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGxhbmc7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbG9jYWxTZXJ2
aWNlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW1wbGVtZW50ZWRBcz1pc0RlZmF1bHRdIGJv
b2xlYW4gZGVmYXVsdDsKK307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183022</attachid>
            <date>2013-01-16 12:50:36 -0800</date>
            <delta_ts>2013-01-22 13:25:42 -0800</delta_ts>
            <desc>patch fixing style warnings</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>77781</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkocmV2aXNpb24gMTM5OTEyKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDYgKzIxMiw5
IEBACiAgICAgbWFjcm8obm9tYXRjaCkgXAogICAgIG1hY3JvKHN0YXJ0KSBcCiAgICAgbWFjcm8o
ZW5kKSBcCisgICAgbWFjcm8obWFyaykgXAorICAgIG1hY3JvKGJvdW5kYXJ5KSBcCisgICAgbWFj
cm8ocmVzdW1lKSBcCiAgICAgXAogICAgIG1hY3JvKHdlYmdsY29udGV4dGxvc3QpIFwKICAgICBt
YWNybyh3ZWJnbGNvbnRleHRyZXN0b3JlZCkgXApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4JKHJldmlzaW9uIDEzOTkxMikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiBTcGVlY2hJbnB1dEV2ZW50IGNvbmRp
dGlvbmFsPUlOUFVUX1NQRUVDSAogU3BlZWNoUmVjb2duaXRpb25FcnJvciBjb25kaXRpb25hbD1T
Q1JJUFRFRF9TUEVFQ0gKIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U0NSSVBU
RURfU1BFRUNICitTcGVlY2hTeW50aGVzaXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhF
U0lTCiBXZWJHTENvbnRleHRFdmVudCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CiBT
VkdFdmVudHMgaW50ZXJmYWNlTmFtZT1FdmVudCwgY29uZGl0aW9uYWw9U1ZHCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4JKHJldmlzaW9uIDEzOTkxMikKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDcgQEAKIFNoYXJlZFdvcmtlckNvbnRleHQgY29uZGl0aW9uYWw9U0hBUkVE
X1dPUktFUlMKIFNvdXJjZUJ1ZmZlckxpc3QgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTcGVl
Y2hSZWNvZ25pdGlvbiBjb25kaXRpb25hbD1TQ1JJUFRFRF9TUEVFQ0gKK1NwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZSBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBTVkdFbGVtZW50SW5zdGFu
Y2UgY29uZGl0aW9uYWw9U1ZHCiBUZXh0VHJhY2sgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFRl
eHRUcmFja0N1ZSBjb25kaXRpb25hbD1WSURFT19UUkFDSwpJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gMTM5OTEyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODcgQEAKKzIwMTMtMDEtMTYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBTdHViIG91dCBXZWJTcGVlY2ggc3ludGhlc2lzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY4NDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMgaW4gdGhl
IG5lY2Vzc2FyeSBJRExzIGFuZCBzdHVicyBvdXQgdGhlIGNvZGUgZm9yIHRoZSBXZWJTcGVlY2gK
KyAgICAgICAgc3ludGhlc2lzIHNwZWNpZmljYXRpb24uCisgICAgICAgIEl0IGRvZXMgbm90IHR1
cm4gb24gdGhlIGZlYXR1cmUgaW4gYW55IHBsYXRmb3JtLCBidXQgaXQgY2FuIGJlIGVuYWJsZWQK
KyAgICAgICAgYW5kIGJ1aWx0IGZvciBNYWMuCisKKyAgICAgICAgVGhlIGZlYXR1cmUgZmxhZyBp
cyBTUEVFQ0hfU1lOVEhFU0lTLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6RE9NV2luZG93U3BlZWNo
U3ludGhlc2lzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6
fkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dT
cGVlY2hTeW50aGVzaXM6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93U3BlZWNo
U3ludGhlc2lzOjpzcGVlY2hTeW50aGVzaXMpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFN5bnRoZXNpczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
czo6U3BlZWNoU3ludGhlc2lzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXMuaDogQWRkZWQuCisgICAgICAgIChTcGVlY2hTeW50aGVzaXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoU3ludGhlc2lzOjpnZXRWb2ljZXMpOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hTeW50aGVzaXNFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRo
ZXNpc0V2ZW50OjpTcGVlY2hTeW50aGVzaXNFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChTcGVlY2hTeW50aGVz
aXNFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNFdmVudDo6Y2hhcklu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc0V2ZW50OjplbGFwc2VkVGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNFdmVudDo6bmFtZSk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6U3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2U6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oOiBBZGRlZC4KKyAgICAgICAgKFNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2U6OnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpz
ZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6bGFu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnNldExhbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjp2b2ljZVVSSSk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnNldFZvaWNlVVJJ
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6dm9sdW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6c2V0Vm9sdW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZTo6cmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnNldFJhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpwaXRjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6OnNldFBpdGNoKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVm9pY2U6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNWb2ljZTo6U3BlZWNoU3ludGhlc2lzVm9pY2UpOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmg6IEFkZGVkLgorICAg
ICAgICAoU3BlZWNoU3ludGhlc2lzVm9pY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3lu
dGhlc2lzVm9pY2U6OnZvaWNlVVJJKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
c1ZvaWNlOjpuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1ZvaWNlOjps
YW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpsb2NhbFNlcnZp
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzVm9pY2U6OmlzRGVmYXVsdCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9tYWM6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL21hYy9TcGVlY2hTeW50aGVzaXNNYWMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoU3ludGhlc2lzOjpwZW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFN5bnRoZXNpczo6c3BlYWtpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lz
OjpwYXVzZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpzcGVhayk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OmNhbmNlbCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hTeW50aGVzaXM6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5
bnRoZXNpczo6cmVzdW1lKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnRO
YW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorCiAyMDEzLTAx
LTE2ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgaW5jb25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2
ZSBkaW1lbnNpb25zLgpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAxMzk5MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291
cmNlIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucyBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3F1b3RhIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJkYXRhYmFzZSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMgXApAQCAtMTE4
LDYgKzExOSwxMSBAQAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb0Vy
cm9yQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvU3RvcmFnZUlu
Zm9RdW90YUNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3F1b3RhL1N0b3Jh
Z2VJbmZvVXNhZ2VDYWxsYmFjay5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzk5MTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTEyODgsOCArMTI4OCw4IEBACiAJCTQ5NDg0RkMxMTAyQ0YyM0MwMDE4
N0REMyAvKiBDYW52YXNHcmFkaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCMzEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGll
bnQuY3BwICovOyB9OwogCQk0OTQ4NEZDMjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0
RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oICovOyB9OwogCQk0OTQ4NEZD
NDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCNjEwMkNGMjNDMDAxODdERDMgLyog
Q2FudmFzUGF0dGVybi5jcHAgKi87IH07CisJCTQ5NDg0RkM0MTAyQ0YyM0MwMDE4OEREMyAvKiBD
YW52YXNQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTQ4NEZCNjEwMkNGMjNDMDAxODhERDMgLyogQ2FudmFzUHJveHkuY3BwICovOyB9Owog
CQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjcxMDJDRjIzQzAwMTg3
REQzIC8qIENhbnZhc1BhdHRlcm4uaCAqLzsgfTsKLQkJNDk0ODRGQzQxMDJDRjIzQzAwMTg4REQz
IC8qIENhbnZhc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5NDg0RkI2MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94eS5jcHAgKi87
IH07CiAJCTQ5NDg0RkM1MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjcxMDJDRjIzQzAw
MTg4REQzIC8qIENhbnZhc1Byb3h5LmggKi87IH07CiAJCTQ5NDg0RkNBMTAyQ0YyM0MwMDE4N0RE
MyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQkMxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgKi87IH07CiAJCTQ5NDg0RkNCMTAyQ0YyM0MwMDE4N0RE
MyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkJEMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTE4NTksOCArMTg1OSw4IEBACiAJCTY1REYz
MjM5MDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc0dyYWRpZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REYzMjMzMDlEMURFNjUwMDBCRTMy
NSAvKiBKU0NhbnZhc0dyYWRpZW50LmNwcCAqLzsgfTsKIAkJNjVERjMyM0EwOUQxREU2NTAwMEJF
MzI1IC8qIEpTQ2FudmFzR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1REYzMjM0MDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc0dyYWRp
ZW50LmggKi87IH07CiAJCTY1REYzMjNCMDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc1BhdHRl
cm4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVE
RjMyMzUwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVybi5jcHAgKi87IH07CisJCTY1
REYzMjNCMDlEMURFNjUwMDFCRTMyNSAvKiBKU0NhbnZhc1Byb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REYzMjM1MDlEMURFNjUwMDFCRTMy
NSAvKiBKU0NhbnZhc1Byb3h5LmNwcCAqLzsgfTsKIAkJNjVERjMyM0MwOUQxREU2NTAwMEJFMzI1
IC8qIEpTQ2FudmFzUGF0dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVERjMyMzYwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVybi5o
ICovOyB9OwotCQk2NURGMzIzQjA5RDFERTY1MDAxQkUzMjUgLyogSlNDYW52YXNQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NURGMzIzNTA5
RDFERTY1MDAxQkUzMjUgLyogSlNDYW52YXNQcm94eS5jcHAgKi87IH07CiAJCTY1REYzMjNDMDlE
MURFNjUwMDFCRTMyNSAvKiBKU0NhbnZhc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NURGMzIzNjA5RDFERTY1MDAxQkUzMjUgLyogSlNDYW52
YXNQcm94eS5oICovOyB9OwogCQk2NURGMzI2MTA5RDFFMTk5MDAwQkUzMjUgLyogVXNlckFnZW50
U3R5bGVTaGVldHNEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1NjU4MUFGMDlEMTRFRTYwMDBFNjFENyAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0
c0RhdGEuY3BwICovOyB9OwogCQk2NUUwRTk0NDExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFw
cGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUUw
RTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ2MTMsMTAgKzQ2MTMsMjkgQEAKIAkJ
QTlEMjQ4MDkwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDUwRDc1N0U3RDAw
RkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovOyB9OwogCQlBQTIxRUNDQTBBQkYwRkJB
MDAyQjgzNEMgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTA5NzhFRDBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NT
Q3Vyc29ySW1hZ2VWYWx1ZS5jcHAgKi87IH07CiAJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAv
KiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQTA5NzhFRTBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUFBMkE1QUNEMTZBNDg1RkEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFDNjE2QTQ4
NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwICovOyB9OworCQlBQTJBNUFD
RTE2QTQ4NUZEMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMkE1QUM3MTZBNDg1RDUwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oICovOyB9OworCQlBQTJBNUFEMDE2QTQ4NjA0MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFDNTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggKi87IH07CisJCUFBMkE1QUQxMTZBNDg2MDcwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgKi87IH07CisJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzExNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpc0V2ZW50LmggKi87IH07CisJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NkEyNSAvKiBKU1NwZWVj
aFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQTJBNUFDMTE2QTQ4NUQ1MDA5NzZBMjUgLyogSlNTcGVlY2hTeW50aGVzaXNFdmVu
dC5oICovOyB9OworCQlBQTJBNUFEMzE2QTQ4NjBEMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QUEyQTVBQzAxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcCAqLzsg
fTsKKwkJQUEyQTVBRDMxNkE0ODYwRDAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVB
QzAxNkE0ODVENTAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwICovOyB9Owor
CQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFCRTE2QTQ4NUQ1MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi87IH07CisJCUFBMkE1QUQ1MTZBNDg2MTQwMDk3
NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5jcHAgKi87IH07CisJCUFBMkE1QUQ2MTZBNDg2MTYwMDk3NUEyNSAvKiBET01XaW5kb3dT
cGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuaCAqLzsgfTsKKwkJQUEyQTVBRDcxNkE0ODYxQTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lz
LmNwcCAqLzsgfTsKKwkJQUEyQTVBRDgxNkE0ODYxRDAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNp
c01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFB
MkE1QUJDMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNNYWMubW0gKi87IH07CiAJ
CUFBNEMzQTc2MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE0QzNBNzQwQjJCMTY3OTAwMjMz
NEEyIC8qIFN0eWxlRWxlbWVudC5jcHAgKi87IH07CiAJCUFBNEMzQTc3MEIyQjE2NzkwMDIzMzRB
MiAvKiBTdHlsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFBNEMzQTc1MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuaCAqLzsg
fTsKIAkJQUE3MzE4M0UxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFB
NzMxODNDMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAg
Ki87IH07CiAJCUFBNzMxODNGMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QUE3MzE4M0QxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmgg
Ki87IH07CisJCUFBN0ZFRUE0MTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTdGRUU5
QzE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuY3BwICovOyB9OworCQlBQTdG
RUVBNjE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFOUUxNkE0
RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcCAqLzsgfTsKKwkJ
QUE3RkVFQTcxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTdGRUU5RjE2
QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCAqLzsgfTsKKwkJ
QUE3RkVFQTgxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFQTAxNkE0
RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwICovOyB9OworCQlBQTdG
RUVBOTE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFQTExNkE0RTZGMzAw
NEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLzsgfTsKKwkJQUE3RkVFQUQxNkE0
RTc0QjAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTdGRUVBQzE2QTRFNzRCMDA0QzBDMzMgLyogSlNT
cGVlY2hTeW50aGVzaXMuaCAqLzsgfTsKIAkJQUFCNjA1NEUxNTg3NEM1ODAwN0I1MDMxIC8qIElu
amVjdGVkU2NyaXB0QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQUI2MDU0QTE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNl
LmNwcCAqLzsgfTsKIAkJQUFCNjA1NEYxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0
QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFC
NjA1NEIxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0QmFzZS5oICovOyB9OwogCQlB
QUI2MDU1MDE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFCNjA1NEMxNTg3NEM1
ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmNwcCAqLzsgfTsKQEAgLTg1ODQsMTAg
Kzg2MDMsMTAgQEAKIAkJNDk0ODRGQjQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENhbnZhc0dyYWRpZW50Lmg7IHBh
dGggPSBjYW52YXMvQ2FudmFzR3JhZGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDk0ODRGQjUxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBDYW52YXNHcmFkaWVudC5pZGw7IHBhdGggPSBjYW52YXMvQ2FudmFz
R3JhZGllbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ4NEZCNjEwMkNG
MjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBDYW52YXNQYXR0ZXJuLmNwcDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0
ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDk0ODRGQjYxMDJDRjIzQzAw
MTg4REQzIC8qIENhbnZhc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IENhbnZhc1Byb3h5LmNwcDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkI3MTAyQ0YyM0MwMDE4N0REMyAvKiBD
YW52YXNQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENhbnZhc1Bh
dHRlcm4uaDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQ5NDg0RkI3MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNQcm94eS5oOyBwYXRoID0gY2Fu
dmFzL0NhbnZhc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkI4
MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBDYW52YXNQYXR0ZXJuLmlkbDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDk0ODRGQjYxMDJDRjIzQzAwMTg4REQzIC8q
IENhbnZhc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENh
bnZhc1Byb3h5LmNwcDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQ5NDg0RkI3MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNQcm94eS5oOyBwYXRo
ID0gY2FudmFzL0NhbnZhc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
NDg0RkI4MTAyQ0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94eS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gQ2FudmFzUHJveHkuaWRsOyBwYXRoID0gY2FudmFzL0NhbnZhc1Byb3h5LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQkMxMDJDRjIzQzAwMTg3REQzIC8q
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOyBwYXRoID0gY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ5NDg0RkJEMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Lmg7IHBhdGggPSBjYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC05MjAyLDggKzkyMjEsOCBAQAogCQk2NURGMzIzMzA5RDFERTY1
MDAwQkUzMjUgLyogSlNDYW52YXNHcmFkaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNDYW52YXNHcmFkaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1REYzMjM0MDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc0dyYWRpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NhbnZhc0dyYWRpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1REYzMjM1MDlEMURFNjUwMDBCRTMyNSAvKiBK
U0NhbnZhc1BhdHRlcm4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ2FudmFzUGF0dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTY1REYz
MjM1MDlEMURFNjUwMDFCRTMyNSAvKiBKU0NhbnZhc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NhbnZhc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjVERjMyMzYwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVy
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYW52YXNQYXR0ZXJuLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1REYzMjM1MDlEMURFNjUwMDFCRTMyNSAv
KiBKU0NhbnZhc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NhbnZhc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVERjMy
MzYwOUQxREU2NTAwMUJFMzI1IC8qIEpTQ2FudmFzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQ2FudmFzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNjVFMEU5NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjVGODA2OTcwNTREOUY4NjAwOEJGNzc2IC8qIEJsb2NrRXhjZXB0aW9u
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEJsb2NrRXhjZXB0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xMTg5OCwxMCArMTE5MTcsMzQgQEAKIAkJQTlE
MjQ4MDUwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01NaW1lVHlwZUFycmF5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFBMDk3OEVEMEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJ
bWFnZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUEwOTc4
RUUwQUJBQTZFMTAwODc0NDgwIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0N1cnNvckltYWdlVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1Nw
ZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMuY3BwOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQjkxNkE0ODVENTAwOTc1
QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01XaW5k
b3dTcGVlY2hTeW50aGVzaXMuaDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFCQTE2QTQ4
NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBET01XaW5k
b3dTcGVlY2hTeW50aGVzaXMuaWRsOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQkMx
NkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gU3BlZWNoU3ludGhlc2lzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNpcy5jcHA7IHBhdGggPSBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFC
RTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNw
ZWVjaFN5bnRoZXNpcy5oOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNpcy5pZGw7IHBhdGggPSBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBQTJBNUFDMDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwOyBwYXRoID0g
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBQTJBNUFDMDE2QTQ4NUQ1MDA5NzZBMjUgLyogSlNTcGVlY2hTeW50aGVz
aXNFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQzExNkE0ODVENTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNp
c0V2ZW50Lmg7IHBhdGggPSBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFDMTE2QTQ4NUQ1MDA5NzZBMjUgLyog
SlNTcGVlY2hTeW50aGVzaXNFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNp
c0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBMkE1QUMyMTZBNDg1RDUw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU3BlZWNoU3ludGhlc2lz
RXZlbnQuaWRsOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTJBNUFDMzE2QTQ4NUQ1MDA5NzVBMjUg
LyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2UuaWRsOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEyQTVBQzQxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUEy
QTVBQzUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaDsgcGF0aCA9IE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBQTJBNUFDNjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwOyBwYXRoID0gTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBQTJBNUFDNzE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU3BlZWNoU3ludGhlc2lzVm9pY2UuaDsgcGF0aCA9IE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUFBMkE1QUM4MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
QTRDM0E3NDBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBQTRDM0E3NTBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZUVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUE3MzE4M0MxNTkyNTVCOTAwQTkzRTZFIC8qIElu
amVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQUE3MzE4M0QxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0
Q2FudmFzTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVk
U2NyaXB0Q2FudmFzTW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBN0ZF
RTlDMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNpcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBN0ZFRTlFMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUFBN0ZFRTlGMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTdGRUVBMDE2
QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUE3RkVFQTExNkE0RTZGMzAwNEMwQzMzIC8qIEpT
U3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTcGVlY2hTeW50aGVzaXNWb2ljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
QTdGRUVBQzE2QTRFNzRCMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUE5MDMwRkUxNTdFMTZBMDAwMjc2MjQ3IC8qIEluamVjdGVkU2Ny
aXB0Q2FudmFzTW9kdWxlU291cmNlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFBOTEyNzUwMTU3RTM1QTUwMDQ1NEU1NCAvKiBJbmplY3RlZFNj
cmlwdENhbnZhc01vZHVsZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBQUI2MDU0QTE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkU2NyaXB0
QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDY5NCw2ICsxNDczNyw3
IEBACiAJCQkJNDE3REE3MTIxMzczNUQ5MDAwN0M1N0ZCIC8qIFRlc3RpbmcgKi8sCiAJCQkJRTFD
OEJFNEIwRThCRDBEMTAwNjRDQjdEIC8qIFRocmVhZHMgKi8sCiAJCQkJQkM5ODU0NTMwQ0QzREE4
RjAwMDY5QkMxIC8qIFRyYXZlcnNhbCAqLywKKwkJCQlBQTdGRUU5QjE2QTQ5MUExMDA0QzBDMzMg
LyogU3BlZWNoICovLAogCQkJCUZEQTE1RTdCMTJCMDNFMDQwMDNBNTgzQSAvKiBXZWJBdWRpbyAq
LywKIAkJCQk1REE1RTBGOTEwMkI5NTA0MDAwODhDRjkgLyogV2ViU29ja2V0cyAqLywKIAkJCQlC
Qzk4NTQ0MzBDRDNEOUQwMDAwNjlCQzEgLyogV2luZG93ICovLApAQCAtMTgxMDksNiArMTgxNTMs
NyBAQAogCQkJCTMzM0Y3MDNEMEZCNDlDMTYwMDhFMTJBNiAvKiBub3RpZmljYXRpb25zICovLAog
CQkJCUY2MDk4Rjc4MTY2NkQ4NDEwMDMyNjlEMSAvKiBwcm94aW1pdHkgKi8sCiAJCQkJODlGNjBC
MDgxNTdGNjgzNTAwNzVFMTU3IC8qIHF1b3RhICovLAorCQkJCUFBMkE1QUI3MTZBNDg1QTQwMDk3
NUEyNSAvKiBzcGVlY2ggKi8sCiAJCQkJRkQzMTVGQTIxMkIwMjVCMTAwQzFBMzU5IC8qIHdlYmF1
ZGlvICovLAogCQkJCTk3QkM2OUQ1MTUwNUYwNTQwMDFCNzRBQyAvKiB3ZWJkYXRhYmFzZSAqLywK
IAkJCQk5N0FBQkNGNzE0RkEwOUI1MDA3NDU3QUUgLyogd2Vic29ja2V0cyAqLywKQEAgLTE5NTgz
LDYgKzE5NjI4LDUzIEBACiAJCQluYW1lID0gUGx1Z2luczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUFBMkE1QUJCMTZBNDg1
RDUwMDk3NUEyNSAvKiBtYWMgKi8sCisJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCisJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1
QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLAorCQkJCUFBMkE1QUJBMTZBNDg1
RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaWRsICovLAorCQkJCUFBMkE1
QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAorCQkJCUFBMkE1
QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKKwkJCQlBQTJBNUFC
RjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKKwkJCQlBQTJBNUFD
MDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwICovLAorCQkJCUFB
MkE1QUMxMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oICovLAorCQkJ
CUFBMkE1QUMyMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5pZGwgKi8s
CisJCQkJQUEyQTVBQzQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZS5jcHAgKi8sCisJCQkJQUEyQTVBQzUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZS5oICovLAorCQkJCUFBMkE1QUMzMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UuaWRsICovLAorCQkJCUFBMkE1QUM2MTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8sCisJCQkJQUEyQTVBQzcxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8sCisJCQkJQUEyQTVBQzgxNkE0ODVENTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCAqLywKKwkJCSk7CisJCQluYW1lID0g
c3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQUEyQTVBQkIxNkE0
ODVENTAwOTc1QTI1IC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJQUEyQTVBQkMxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc01h
Yy5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gbWFjOworCQkJcGF0aCA9IE1vZHVsZXMvc3BlZWNo
L21hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUFBN0ZFRTlCMTZBNDkx
QTEwMDRDMEMzMyAvKiBTcGVlY2ggKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUFBN0ZFRTlDMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNp
cy5jcHAgKi8sCisJCQkJQUE3RkVFQUMxNkE0RTc0QjAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhl
c2lzLmggKi8sCisJCQkJQUEyQTVBQzAxNkE0ODVENTAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhl
c2lzRXZlbnQuY3BwICovLAorCQkJCUFBMkE1QUMxMTZBNDg1RDUwMDk3NkEyNSAvKiBKU1NwZWVj
aFN5bnRoZXNpc0V2ZW50LmggKi8sCisJCQkJQUE3RkVFOUUxNkE0RTZGMzAwNEMwQzMzIC8qIEpT
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcCAqLywKKwkJCQlBQTdGRUU5RjE2QTRFNkYzMDA0
QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCAqLywKKwkJCQlBQTdGRUVBMDE2
QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8sCisJCQkJQUE3
RkVFQTExNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKKwkJ
CSk7CisJCQluYW1lID0gU3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJQjFBOTQyREQxNUI1Q0UyMjAwRDUyNUQxIC8qIG1lZGlhc291cmNlICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIzODE1LDYgKzIzOTA3LDcgQEAKIAkJ
CQk5NzEyQTVBRTE1MDA0RURBMDA0OEFGMTAgLyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0IzOEUyNzE1MUM0MjcxMDA0NjIyRTkgLyogRE9NV2luZG93
Tm90aWZpY2F0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdEMkFEMDQxNEI4MjNBNjAwOTNE
RjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBQTJBNUFENjE2
QTQ4NjE2MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4OUY2MEIxMTE1N0Y2ODZFMDA3NUUxNTcgLyogRE9NV2luZG93UXVvdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4Q0NCQjQ5MTUxRjgzMTYwMEFCN0NFOSAvKiBET01XaW5kb3dXZWJE
YXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0RBMkUxMTQzMTIxRTAwMEQ4MTdFIC8q
IERPTVdyYXBwZXJXb3JsZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDY0OCw2ICsyNDc0MSwxMCBA
QAogCQkJCTc1NDE1RDU2MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0RXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTc1NDE1RDU4MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElu
cHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxNUQ1QTEyOUFCMkQyMDAzQUQ2Njkg
LyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUFBN0ZFRUFE
MTZBNEU3NEIwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc2QTI1IC8qIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCUFBN0ZFRUE3MTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUE3RkVFQTkxNkE0RTZGMzAw
NEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVm9pY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
ODI0MzI5MEQwQ0U4QTIwMDQ2MEM4RiAvKiBKU1NRTEVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCNTI1QTk2NTExQ0EyMzQwMDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBRTgyRkVEMENBQjA3RUUwMDIyMzdBRSAvKiBKU1NRTFJlc3VsdFNldC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTUwNCw2ICsyNTYwMSwxMCBAQAogCQkJCTc1NDE1QUZEMTI5NThE
NUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4
RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzU0MTVCMDAxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlz
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBQTJBNUFEMDE2
QTQ4NjA0MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBQTJBNUFDRTE2QTQ4NUZEMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEZFMTNDMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENo
ZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUI4REJEQjRFMTMwQjBGOEEwMEY1Q0RCMSAvKiBT
cGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTEyNTAyMzE1
RENFMzdEMDAyRjg0RTIgLyogU3BpbkJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjcxMzAsNiArMjcyMzEsNyBAQAogCQkJCTk3QjM4RTI4MTUxQzQyNzMwMDQ2MjJFOSAvKiBET01X
aW5kb3dOb3RpZmljYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3RDJBRDAzMTRCODIz
QTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
OUY2MEIxMDE1N0Y2ODZFMDA3NUUxNTcgLyogRE9NV2luZG93UXVvdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQUEyQTVBRDcxNkE0ODYxQTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENDQkI0ODE1MUY4MzE2MDBBQjdDRTkgLyog
RE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1M0RBNDgxMTQz
MTM0RDAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3JsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTFEMTM4MTBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBhdGgubW0gaW4gU291cmNlcyAqLywKQEAg
LTI3OTg1LDYgKzI4MDg3LDEwIEBACiAJCQkJNzU0MTVENTUxMjlBQjJEMjAwM0FENjY5IC8qIEpT
U3BlZWNoSW5wdXRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTQxNUQ1NzEyOUFCMkQy
MDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
NTQxNUQ1OTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQUE3RkVFQTQxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3lu
dGhlc2lzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFBMkE1QUQzMTZBNDg2MEQwMDk3NkEyNSAv
KiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFBN0ZFRUE2
MTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBQTdGRUVBODE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVz
aXNWb2ljZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzYzNzBDRTkyMjVFMDA3RUYzQ0Qg
LyogSlNTUUxFcnJvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTI1QTk2NjExQ0EyMzQwMDAz
QTIzQTggLyogSlNTUUxFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFODJGRUMw
Q0FCMDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmNwcCBpbiBTb3VyY2VzICovLApAQCAt
Mjg3NjEsNiArMjg4NjcsMTEgQEAKIAkJCQk3NTQxNUMyODEyOUE5OTIwMDAzQUQ2NjkgLyogU3Bl
ZWNoSW5wdXRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTg5NzhFQzEyNzA5MEQ2MDA3
NkQ1QTkgLyogU3BlZWNoSW5wdXRSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTVD
MjkxMjlBOTkyMDAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBQTJBNUFENTE2QTQ4NjE0MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUFBMkE1QUQzMTZBNDg2MEQwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXNFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBQTJBNUFEODE2QTQ4NjFEMDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQUEyQTVB
RDExNkE0ODYwNzAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBQTJBNUFDRDE2QTQ4NUZBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
Vm9pY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc4RkUxM0IxMjM2NkIxMDAwQUNFOEQwIC8q
IFNwZWxsQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCOERCREI0RDEzMEIwRjhBMDBG
NUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0NTEyNTAyMjE1RENFMzdEMDAyRjg0RTIgLyogU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMTM5OTEyKQorKysgU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29w
eSkKQEAgLTE1NCwxMCArMTU0LDExIEBACiBFTkFCTEVfV0VCR0wgPSBFTkFCTEVfV0VCR0w7CiBF
TkFCTEVfV0VCX0FVRElPID0gRU5BQkxFX1dFQl9BVURJTzsKIEVOQUJMRV9XRUJfU09DS0VUUyA9
IEVOQUJMRV9XRUJfU09DS0VUUzsKK0VOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTID0gOwogRU5BQkxF
X1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxF
X1hIUl9USU1FT1VUID0gRU5BQkxFX1hIUl9USU1FT1VUOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVf
WFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENM
VVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMp
ICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxF
X0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNf
VFJBTlNJVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVf
Q1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DVVNU
T01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9E
QVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9E
RVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElB
TE9HX0VMRU1FTlQpICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RSQUdHQUJM
RV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRklMRV9TWVNURU0p
ICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1F
UEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVS
X1RIUk9UVExJTkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFC
QVNFKSAkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Up
ICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhF
UykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xJTktfUFJFRkVU
Q0gpICQoRU5BQkxFX0xJTktfUFJFUkVOREVSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
RElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxF
TUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERG
S0lUX1BMVUdJTikgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPWElNSVRZ
X0VWRU5UUykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
KSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVF
Q0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1VCUElYRUxf
TEFZT1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhU
X0FVVE9TSVpJTkcpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9U
T1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURF
TykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9X
T1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NT
U19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NT
U19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURF
UlMpICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElP
TikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19UUkFOU0lUSU9OU19VTlBSRUZJ
WEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JV
TEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikg
JChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESUFMT0dfRUxFTUVOVCkgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRFJBR0dBQkxFX1JFR0lPTikgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFC
TEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFN
RV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9U
SU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdH
RVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVf
TEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTElOS19Q
UkVSRU5ERVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRN
TCkgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5B
QkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJM
RV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJ
T05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9X
X0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChF
TkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFC
TEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykg
JChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQo
RU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhl
c2lzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01X
aW5kb3dTcGVlY2hTeW50aGVzaXMuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmlkbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9TWU5U
SEVTSVMsCisgICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdworXSBpbnRlcmZhY2UgRE9NV2luZG93
U3BlZWNoU3ludGhlc2lzIHsKKworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hTeW50aGVz
aXMgc3BlZWNoU3ludGhlc2lzOworICAgIGF0dHJpYnV0ZSBTcGVlY2hTeW50aGVzaXNFdmVudENv
bnN0cnVjdG9yIFNwZWVjaFN5bnRoZXNpc0V2ZW50OworICAgIGF0dHJpYnV0ZSBTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2VDb25zdHJ1Y3RvciBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U7Cit9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VfaAor
I2RlZmluZSBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VfaAorCisjaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpCisKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFz
cyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2U+LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1Ymxp
YyBFdmVudFRhcmdldCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoU3lu
dGhlc2lzVXR0ZXJhbmNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0
cmluZyYpOworICAgIAorICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
dGV4dDsgfQorICAgIHZvaWQgc2V0VGV4dChjb25zdCBTdHJpbmcmIHRleHQpIHsgbV90ZXh0ID0g
dGV4dDsgfQorCisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5n
OyB9CisgICAgdm9pZCBzZXRMYW5nKGNvbnN0IFN0cmluZyYgbGFuZykgeyBtX2xhbmcgPSBsYW5n
OyB9CisKKyAgICBjb25zdCBTdHJpbmcmIHZvaWNlVVJJKCkgY29uc3QgeyByZXR1cm4gbV92b2lj
ZVVSSTsgfQorICAgIHZvaWQgc2V0Vm9pY2VVUkkoY29uc3QgU3RyaW5nJiB2b2ljZVVSSSkgeyBt
X3ZvaWNlVVJJID0gdm9pY2VVUkk7IH0KKworICAgIGZsb2F0IHZvbHVtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdm9sdW1lOyB9CisgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKSB7IG1fdm9s
dW1lID0gdm9sdW1lOyB9CisKKyAgICBmbG9hdCByYXRlKCkgY29uc3QgeyByZXR1cm4gbV9yYXRl
OyB9CisgICAgdm9pZCBzZXRSYXRlKGZsb2F0IHJhdGUpIHsgbV9yYXRlID0gcmF0ZTsgfQorCisg
ICAgZmxvYXQgcGl0Y2goKSBjb25zdCB7IHJldHVybiBtX3BpdGNoOyB9CisgICAgdm9pZCBzZXRQ
aXRjaChmbG9hdCBwaXRjaCkgeyBtX3BpdGNoID0gcGl0Y2g7IH0KKworICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIoc3RhcnQpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoZW5kKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVycm9y
KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHBhdXNlKTsKKyAgICBERUZJ
TkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHJlc3VtZSk7CisgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihtYXJrKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RF
TkVSKGJvdW5kYXJ5KTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8U3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8U3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlPjo6ZGVyZWY7CisKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYpOworCisg
ICAgU3RyaW5nIG1fdGV4dDsKKyAgICBTdHJpbmcgbV9sYW5nOworICAgIFN0cmluZyBtX3ZvaWNl
VVJJOworICAgIGZsb2F0IG1fdm9sdW1lOworICAgIGZsb2F0IG1fcmF0ZTsKKyAgICBmbG9hdCBt
X3BpdGNoOworICAgIAorICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgRXZlbnRUYXJnZXREYXRhIG1f
ZXZlbnRUYXJnZXREYXRhOworCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVy
ZmFjZU5hbWUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBPVkVSUklERSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJn
ZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSog
ZXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREUgeyByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOyB9
CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIE9W
RVJSSURFIHsgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsgfQorfTsKKyAgICAKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCisj
ZW5kaWYgLy8gU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmlkbAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworIAorWworICAgIENvbmRpdGlvbmFs
PVNQRUVDSF9TWU5USEVTSVMKK10gaW50ZXJmYWNlIFNwZWVjaFN5bnRoZXNpcyAgeworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBlbmRpbmc7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gc3BlYWtpbmc7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcGF1c2Vk
OworCisgICAgdm9pZCBzcGVhayhTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgdXR0ZXJhbmNlKTsK
KyAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2b2lkIHJlc3VtZSgp
OworICAgIHNlcXVlbmNlPFNwZWVjaFN5bnRoZXNpc1ZvaWNlPiBnZXRWb2ljZXMoKTsKK307Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzVm9pY2UuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoU3ludGhl
c2lzVm9pY2UuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitQYXNzUmVmUHRyPFNwZWVjaFN5bnRoZXNpc1ZvaWNlPiBTcGVlY2hT
eW50aGVzaXNWb2ljZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdm9pY2VVUkksIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGxvY2FsU2VydmljZSwgYm9vbCBpc0Rl
ZmF1bHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hTeW50aGVzaXNWb2ljZSh2
b2ljZVVSSSwgbmFtZSwgbGFuZywgbG9jYWxTZXJ2aWNlLCBpc0RlZmF1bHQpKTsKK30KKworU3Bl
ZWNoU3ludGhlc2lzVm9pY2U6OlNwZWVjaFN5bnRoZXNpc1ZvaWNlKGNvbnN0IFN0cmluZyYgdm9p
Y2VVUkksIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGxvY2Fs
U2VydmljZSwgYm9vbCBpc0RlZmF1bHQpCisgICAgOiBtX3ZvaWNlVVJJKHZvaWNlVVJJKQorICAg
ICwgbV9uYW1lKG5hbWUpCisgICAgLCBtX2xhbmcobGFuZykKKyAgICAsIG1fbG9jYWxTZXJ2aWNl
KGxvY2FsU2VydmljZSkKKyAgICAsIG1fZGVmYXVsdChpc0RlZmF1bHQpCit7Cit9CisgICAgCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJ
UykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKwor
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6RE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93UHJv
cGVydHkod2luZG93LT5mcmFtZSgpKQoreworfQorCitET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6
On5ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMoKQoreworfQorCisvLyBzdGF0aWMKK0RPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpcyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpmcm9tKERPTVdpbmRv
dyogd2luZG93KQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1l
LCAoIkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqIHN1cHBsZW1lbnQgPSBz
dGF0aWNfY2FzdDxET01XaW5kb3dTcGVlY2hTeW50aGVzaXMqPihTdXBwbGVtZW50PERPTVdpbmRv
dz46OmZyb20od2luZG93LCBuYW1lKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7CisgICAgICAg
IHN1cHBsZW1lbnQgPSBuZXcgRE9NV2luZG93U3BlZWNoU3ludGhlc2lzKHdpbmRvdyk7CisgICAg
ICAgIHByb3ZpZGVUbyh3aW5kb3csIG5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQpKTsKKyAgICB9
CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKKy8vIHN0YXRpYworU3BlZWNoU3ludGhlc2lz
KiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6OnNwZWVjaFN5bnRoZXNpcyhET01XaW5kb3cqIHdp
bmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpmcm9tKHdpbmRv
dyktPnNwZWVjaFN5bnRoZXNpcygpOworfQorCitTcGVlY2hTeW50aGVzaXMqIERPTVdpbmRvd1Nw
ZWVjaFN5bnRoZXNpczo6c3BlZWNoU3ludGhlc2lzKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoU3lu
dGhlc2lzICYmIGZyYW1lKCkpCisgICAgICAgIG1fc3BlZWNoU3ludGhlc2lzID0gU3BlZWNoU3lu
dGhlc2lzOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXMuZ2V0KCk7Cit9
CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1BFRUNI
X1NZTlRIRVNJUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc0V2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworIAorWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9T
WU5USEVTSVMKK10gaW50ZXJmYWNlIFNwZWVjaFN5bnRoZXNpc0V2ZW50IDogRXZlbnQgeworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNoYXJJbmRleDsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgZmxvYXQgZWxhcHNlZFRpbWU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBuYW1lOworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL21h
Yy9TcGVlY2hTeW50aGVzaXNNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvbWFjL1NwZWVjaFN5bnRoZXNpc01hYy5tbQkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL21hYy9TcGVlY2hTeW50aGVzaXNNYWMubW0JKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGVlY2hTeW50aGVzaXMuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKQorCisjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICAKK2Jvb2wgU3BlZWNoU3ludGhlc2lzOjpwZW5kaW5nKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgU3BlZWNoU3ludGhlc2lzOjpzcGVha2lu
ZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFNwZWVjaFN5bnRoZXNp
czo6cGF1c2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgU3BlZWNo
U3ludGhlc2lzOjpzcGVhayhTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqKQoreworfQorCit2b2lk
IFNwZWVjaFN5bnRoZXNpczo6Y2FuY2VsKCkKK3sKK30KKwordm9pZCBTcGVlY2hTeW50aGVzaXM6
OnBhdXNlKCkKK3sKK30KKwordm9pZCBTcGVlY2hTeW50aGVzaXM6OnJlc3VtZSgpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFN5bnRoZXNpcy5oIgor
CisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK1Bhc3NSZWZQdHI8U3BlZWNoU3ludGhlc2lzPiBTcGVlY2hTeW50aGVzaXM6OmNyZWF0ZSgp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hTeW50aGVzaXMoKSk7Cit9CisgICAg
CitTcGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcygpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZS5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTLAor
ICAgIEV2ZW50VGFyZ2V0LAorICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCisg
ICAgQ29uc3RydWN0b3IoaW4gW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmddIERPTVN0cmlu
ZyB0ZXh0KQorXSBpbnRlcmZhY2UgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIHsKKyAgICBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRleHQ7CisgICAgYXR0cmlidXRlIERPTVN0cmluZyBsYW5nOworICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgdm9pY2VVUkk7CisgICAgYXR0cmlidXRlIGZsb2F0IHZvbHVt
ZTsKKyAgICBhdHRyaWJ1dGUgZmxvYXQgcmF0ZTsKKyAgICBhdHRyaWJ1dGUgZmxvYXQgcGl0Y2g7
CisKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnN0YXJ0OworICAgIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7
CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25wYXVzZTsKKyAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbnJlc3VtZTsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1hcms7
CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25ib3VuZGFyeTsKK307CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZl
bnQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoU3ludGhlc2lzRXZlbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzRXZlbnQu
aCIKKworI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgCitQYXNzUmVmUHRyPFNwZWVjaFN5bnRoZXNpc0V2ZW50PiBTcGVlY2hTeW50aGVzaXNF
dmVudDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWVjaFN5bnRoZXNp
c0V2ZW50KCkpOworfQorCitTcGVlY2hTeW50aGVzaXNFdmVudDo6U3BlZWNoU3ludGhlc2lzRXZl
bnQoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
U1BFRUNIX1NZTlRIRVNJUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCIKKworI2lmIEVO
QUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitQYXNz
UmVmUHRyPFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiB0
ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
KGNvbnRleHQsIHRleHQpKTsKK30KKworU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoY29udGV4dCkK
KyAgICAsIG1fdGV4dCh0ZXh0KQoreworfQorICAgIAorU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKK30gICAgCisgICAgCitjb25zdCBBdG9taWNTdHJpbmcmIFNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZTo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2ZW50
TmFtZXMoKS5pbnRlcmZhY2VGb3JTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U7Cit9CisgICAgCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJ
UykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1Zv
aWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzVm9pY2UuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgU3BlZWNoU3ludGhlc2lzVm9pY2VfaAorI2RlZmluZSBTcGVl
Y2hTeW50aGVzaXNWb2ljZV9oCisKKyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKworI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTcGVlY2hTeW50aGVzaXNWb2ljZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFN5bnRo
ZXNpc1ZvaWNlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoU3ludGhl
c2lzVm9pY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHZvaWNlVVJJLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBsb2NhbFNlcnZpY2UsIGJvb2wgaXNEZWZhdWx0
KTsKKyAgICAKKyAgICBjb25zdCBTdHJpbmcmIHZvaWNlVVJJKCkgY29uc3QgeyByZXR1cm4gbV92
b2ljZVVSSTsgfQorICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZTsgfQorICAgIGNvbnN0IFN0cmluZyYgbGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQor
ICAgIGJvb2wgbG9jYWxTZXJ2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFNlcnZpY2U7IH0K
KyAgICBib29sIGlzRGVmYXVsdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdDsgfQorICAgIAor
cHJpdmF0ZToKKyAgICBTcGVlY2hTeW50aGVzaXNWb2ljZShjb25zdCBTdHJpbmcmIHZvaWNlVVJJ
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBsb2NhbFNlcnZp
Y2UsIGJvb2wgaXNEZWZhdWx0KTsKKyAgICAKKyAgICBTdHJpbmcgbV92b2ljZVVSSTsKKyAgICBT
dHJpbmcgbV9uYW1lOworICAgIFN0cmluZyBtX2xhbmc7CisgICAgYm9vbCBtX2xvY2FsU2Vydmlj
ZTsKKyAgICBib29sIG1fZGVmYXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCisjZW5kaWYgLy8gU3BlZWNoU3lu
dGhlc2lzVm9pY2VfaApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBET01XaW5kb3dTcGVl
Y2hTeW50aGVzaXNfaAorI2RlZmluZSBET01XaW5kb3dTcGVlY2hTeW50aGVzaXNfaAorCisjaWYg
RU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKKyNpbmNsdWRlICJET01XaW5kb3dQcm9wZXJ0eS5o
IgorI2luY2x1ZGUgIlNwZWVjaFN5bnRoZXNpcy5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIERPTVdpbmRvdzsKKworY2xh
c3MgRE9NV2luZG93U3BlZWNoU3ludGhlc2lzIDogcHVibGljIFN1cHBsZW1lbnQ8RE9NV2luZG93
PiwgcHVibGljIERPTVdpbmRvd1Byb3BlcnR5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5ET01X
aW5kb3dTcGVlY2hTeW50aGVzaXMoKTsKKyAgICAKKyAgICBzdGF0aWMgU3BlZWNoU3ludGhlc2lz
KiBzcGVlY2hTeW50aGVzaXMoRE9NV2luZG93Kik7CisgICAgc3RhdGljIERPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcyogZnJvbShET01XaW5kb3cqKTsKKyAgICAKK3ByaXZhdGU6CisgICAgZXhwbGlj
aXQgRE9NV2luZG93U3BlZWNoU3ludGhlc2lzKERPTVdpbmRvdyopOworICAgIAorICAgIFNwZWVj
aFN5bnRoZXNpcyogc3BlZWNoU3ludGhlc2lzKCk7CisgICAgCisgICAgUmVmUHRyPFNwZWVjaFN5
bnRoZXNpcz4gbV9zcGVlY2hTeW50aGVzaXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKworI2VuZGlmIC8vIERPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpc19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVjaFN5bnRoZXNpc19oCisjZGVmaW5lIFNwZWVj
aFN5bnRoZXNpc19oCisKKyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKworI2luY2x1ZGUg
IlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U7
CitjbGFzcyBTcGVlY2hTeW50aGVzaXNWb2ljZTsKKyAgICAKK2NsYXNzIFNwZWVjaFN5bnRoZXNp
cyA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFN5bnRoZXNpcz4geworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNwZWVjaFN5bnRoZXNpcz4gY3JlYXRlKCk7CisgICAgCisgICAgYm9v
bCBwZW5kaW5nKCkgY29uc3Q7CisgICAgYm9vbCBzcGVha2luZygpIGNvbnN0OworICAgIGJvb2wg
cGF1c2VkKCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBzcGVhayhTcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2UqKTsKKyAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2b2lk
IHJlc3VtZSgpOworICAgIAorICAgIFZlY3RvcjxSZWZQdHI8U3BlZWNoU3ludGhlc2lzVm9pY2U+
ID4gZ2V0Vm9pY2VzKCkgeyByZXR1cm4gbV92b2ljZUxpc3Q7IH07CisgICAgCitwcml2YXRlOgor
ICAgIFNwZWVjaFN5bnRoZXNpcygpOworICAgIAorICAgIFZlY3RvcjxSZWZQdHI8U3BlZWNoU3lu
dGhlc2lzVm9pY2U+ID4gbV92b2ljZUxpc3Q7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKKyNlbmRpZiAvLyBT
cGVlY2hTeW50aGVzaXNFdmVudF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXNFdmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVjaFN5bnRoZXNpc0V2
ZW50X2gKKyNkZWZpbmUgU3BlZWNoU3ludGhlc2lzRXZlbnRfaAorCisjaWYgRU5BQkxFKFNQRUVD
SF9TWU5USEVTSVMpCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIFNwZWVjaFN5bnRoZXNp
c0V2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
cGVlY2hTeW50aGVzaXNFdmVudD4gY3JlYXRlKCk7CisgICAgCisgICAgdW5zaWduZWQgbG9uZyBj
aGFySW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2NoYXJJbmRleDsgfQorICAgIGZsb2F0IGVsYXBz
ZWRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9lbGFwc2VkVGltZTsgfQorICAgIGNvbnN0IFN0cmlu
ZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBT
cGVlY2hTeW50aGVzaXNFdmVudCgpOworICAgIAorICAgIHVuc2lnbmVkIGxvbmcgbV9jaGFySW5k
ZXg7CisgICAgZmxvYXQgbV9lbGFwc2VkVGltZTsKKyAgICBTdHJpbmcgbV9uYW1lOworfTsKKyAg
ICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lO
VEhFU0lTKQorCisjZW5kaWYgLy8gU3BlZWNoU3ludGhlc2lzRXZlbnRfaApJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNl
LmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpc1ZvaWNlLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisgCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUworXSBpbnRlcmZhY2UgU3Bl
ZWNoU3ludGhlc2lzVm9pY2UgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdm9p
Y2VVUkk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFuZzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBsb2NhbFNlcnZpY2U7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbXBsZW1lbnRlZEFz
PWlzRGVmYXVsdF0gYm9vbGVhbiBkZWZhdWx0OworfTsK
</data>
<flag name="review"
          id="201248"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>