<?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>150148</bug_id>
          
          <creation_ts>2015-10-14 16:14:34 -0700</creation_ts>
          <short_desc>Modern IDB: Add basic transaction aborting</short_desc>
          <delta_ts>2015-10-21 13:36:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>149117</blocked>
    
    <blocked>150149</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1133297</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-14 16:14:34 -0700</bug_when>
    <thetext>Modern IDB: Add basic transaction aborting

The only transaction that can be created right now is the version change transaction, and the only thing it can change right now is the version itself. So let&apos;s add aborting of the version change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135264</commentid>
    <comment_count>1</comment_count>
      <attachid>263696</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 10:18:30 -0700</bug_when>
    <thetext>Created attachment 263696
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135274</commentid>
    <comment_count>2</comment_count>
      <attachid>263699</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 10:46:25 -0700</bug_when>
    <thetext>Created attachment 263699
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135280</commentid>
    <comment_count>3</comment_count>
      <attachid>263696</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-10-21 10:52:02 -0700</bug_when>
    <thetext>Comment on attachment 263696
Patch v1

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

Looks mostly good.  A few comments.  Merge conflict is probably in project.pbxproj
Also, with this new MemoryIDBBackingStore stuff, where does it actually store the information?  I see calls to commit, but I&apos;m not sure where they go.

&gt; Source/WebCore/Modules/indexeddb/client/IDBDatabaseImpl.cpp:204
&gt; +    ASSERT(m_activeTransactions.contains(transaction.info().identifier())
&gt; +        || m_committingTransactions.contains(transaction.info().identifier())
&gt; +        || m_abortingTransactions.contains(transaction.info().identifier()));

It should be in only one of these sets, right?  Could you assert that the sum is one?

&gt; Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.cpp:55
&gt;      , m_operationTimer(*this, &amp;IDBTransaction::operationTimerFired)
&gt;  
&gt;  {
&gt; +    m_activationTimer = std::make_unique&lt;Timer&gt;(*this, &amp;IDBTransaction::activationTimerFired);

Could you initialize m_activationTimer like you do m_operationTimer?

&gt; Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.cpp:105
&gt; +    if (isFinishedOrFinishing()) {
&gt; +        ec = INVALID_STATE_ERR;

How would this be reached?  Can it be tested?

&gt; Source/WebCore/Modules/indexeddb/shared/IDBError.cpp:69
&gt; +        static NeverDestroyed&lt;String&gt; entry = ASCIILiteral(&quot;Operation was called on an object on which it is not allowed or at a time when it is not allowed.&quot;);

Should these errors be localized?  Where do we see these errors?  There aren&apos;t any tests that run into errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135281</commentid>
    <comment_count>4</comment_count>
      <attachid>263699</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-10-21 10:56:09 -0700</bug_when>
    <thetext>Comment on attachment 263699
Patch v1

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

&gt; Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.h:40
&gt; +class MemoryIDBBackingStore;
&gt; +
&gt; +class MemoryBackingStoreTransaction {
&gt; +    friend std::unique_ptr&lt;MemoryBackingStoreTransaction&gt; std::make_unique&lt;MemoryBackingStoreTransaction&gt;(MemoryIDBBackingStore&amp;, const IDBTransactionInfo&amp;);

It looks like the EFL EWS wants WebCore::IDBTransactionInfo.  I&apos;m not sure why it doesn&apos;t like MemoryIDBBackingStore.  It&apos;s declared right there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135290</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 11:13:56 -0700</bug_when>
    <thetext>The EFL build failure appears to be yet-another-disappointing compiler limitation that clang handles fine. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135295</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 11:27:17 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; The EFL build failure appears to be yet-another-disappointing compiler
&gt; limitation that clang handles fine. :(

(Which will likely be fixable by fully qualifying WebCore::IDBTransactionInfo)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135296</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 11:28:11 -0700</bug_when>
    <thetext>I didn&apos;t even see that Alex had taken a look, including noting the WebCore:: qualification.  *sigh*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135304</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 11:35:49 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 263696 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=263696&amp;action=review
&gt; 
&gt; Looks mostly good.  A few comments.  Merge conflict is probably in
&gt; project.pbxproj
&gt; Also, with this new MemoryIDBBackingStore stuff, where does it actually
&gt; store the information?  I see calls to commit, but I&apos;m not sure where they
&gt; go.

No information is stored yet.
Iterative process.

Important new addition here is the backing store transaction, which *does* do something interesting on abort.

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/client/IDBDatabaseImpl.cpp:204
&gt; &gt; +    ASSERT(m_activeTransactions.contains(transaction.info().identifier())
&gt; &gt; +        || m_committingTransactions.contains(transaction.info().identifier())
&gt; &gt; +        || m_abortingTransactions.contains(transaction.info().identifier()));
&gt; 
&gt; It should be in only one of these sets, right?  Could you assert that the
&gt; sum is one?

You just requested an #ifndef NDEBUG block of actual code for a very simple assertion.

Remember that you did this to yourself.

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.cpp:55
&gt; &gt;      , m_operationTimer(*this, &amp;IDBTransaction::operationTimerFired)
&gt; &gt;  
&gt; &gt;  {
&gt; &gt; +    m_activationTimer = std::make_unique&lt;Timer&gt;(*this, &amp;IDBTransaction::activationTimerFired);
&gt; 
&gt; Could you initialize m_activationTimer like you do m_operationTimer?

m_operationTimer exists for the lifetime of the object.
m_activationTimer is a one-off (note it deletes itself once it&apos;s fired)

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.cpp:105
&gt; &gt; +    if (isFinishedOrFinishing()) {
&gt; &gt; +        ec = INVALID_STATE_ERR;
&gt; 
&gt; How would this be reached?

A transaction that has already being aborted being asked to abort again.

&gt; Can it be tested?

Yes, by doing the above.

&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBError.cpp:69
&gt; &gt; +        static NeverDestroyed&lt;String&gt; entry = ASCIILiteral(&quot;Operation was called on an object on which it is not allowed or at a time when it is not allowed.&quot;);
&gt; 
&gt; Should these errors be localized?  

No, we don&apos;t localize error strings that are only meant for developers in the console that are explicitly called for in the spec.

&gt; Where do we see these errors?  There aren&apos;t any tests that run into errors.

Any time a test runs into errors they can get the description.
We do have tests that run into errors, though they&apos;re testing other things and not the contents of the errors.

Now&apos;s not quite the right time to try testing all the descriptions because not all of them can be hit yet.
Good idea to test them all - https://bugs.webkit.org/show_bug.cgi?id=150402</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135322</commentid>
    <comment_count>9</comment_count>
      <attachid>263710</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 12:14:27 -0700</bug_when>
    <thetext>Created attachment 263710
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135327</commentid>
    <comment_count>10</comment_count>
      <attachid>263710</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-21 12:22:42 -0700</bug_when>
    <thetext>Comment on attachment 263710
Patch v2

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

&gt; Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.h:40
&gt; +    friend std::unique_ptr&lt;MemoryBackingStoreTransaction&gt; std::make_unique&lt;MemoryBackingStoreTransaction&gt;(MemoryIDBBackingStore&amp;, const WebCore::IDBTransactionInfo&amp;);

EFL bot build failure:

../../Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.h:40:107: error: &apos;MemoryIDBBackingStore&apos; has not been declared
     friend std::unique_ptr&lt;MemoryBackingStoreTransaction&gt; std::make_unique&lt;MemoryBackingStoreTransaction&gt;(MemoryIDBBackingStore&amp;, const WebCore::IDBTransactionInfo&amp;);

Strange because I see a forward declaration of this class two lines above!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135328</commentid>
    <comment_count>11</comment_count>
      <attachid>263712</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 12:27:28 -0700</bug_when>
    <thetext>Created attachment 263712
Patch v3 - Try to fix EFL again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135329</commentid>
    <comment_count>12</comment_count>
      <attachid>263713</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 12:28:20 -0700</bug_when>
    <thetext>Created attachment 263713
Patch v4 - Try to fix EFL again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135339</commentid>
    <comment_count>13</comment_count>
      <attachid>263716</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 12:51:18 -0700</bug_when>
    <thetext>Created attachment 263716
Patch v5 - `git add` fail</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135362</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-21 13:36:42 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/191400</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263696</attachid>
            <date>2015-10-21 10:18:30 -0700</date>
            <delta_ts>2015-10-21 12:14:27 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>75580</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYmMzZDc0Li5iNTdiZTllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMTAt
MjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Zl
cnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJl
b3Blbi5odG1sOiBBZGRlZC4KKwogMjAxNS0xMC0yMCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIg
IDxjYWx2YXJpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtTdHJlYW1zIEFQSV0gVXBkYXRlIHJl
YWRhYmxlLXN0cmVhbS10ZW1wbGF0ZWQgdGVzdHMgdG8gbGF0ZXN0IHNwZWMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0
LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTY5NzgzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtYWJv
cnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0FMRVJUOiBJbml0
aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCitBTEVS
VDogSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gYWJvcnRlZAorQUxF
UlQ6IFNlY29uZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0g
MQorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gY29tcGxl
dGUKK0FMRVJUOiBUaGlyZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAxIE5ldyB2ZXJz
aW9uIC0gMgorQUxFUlQ6IFRoaXJkIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBh
Ym9ydGVkCitBTEVSVDogRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDEgTmV3
IHZlcnNpb24gLSAyCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IG9wZW5zIGEgbmV3IGRhdGFiYXNl
LCB0aGVuIGFib3J0cyB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24uCitJdCB0aGVuIHJl
b3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBpdCdzIGEgZGVmYXVsdCwgZW1wdHkgZGF0
YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1Y2Nlc3NmdWxseS4KK0l0IHRoZW4gcmVv
cGVucyB0aGUgZGF0YWJhc2UsIHVwZ3JhZGluZyBpdCdzIHZlcnNpb24uIEl0IGFib3J0cyB0aGlz
IHZlcnNpb25jaGFuZ2UsIGFzIHdlbGwuCitGaW5hbGx5IGl0IHJlb3BlbnMgdGhlIGRhdGFiYXNl
IGFnYWluLCB1cGdyYWRpbmcgaXRzIHZlcnNpb24sIG1ha2luZyBzdXJlIHRoaW5ncyBoYWQgcmV2
ZXJ0ZWQgYmFjayB0byBiZWZvcmUgdGhlIHNlY29uZCBhYm9ydGVkIHZlcnNpb25jaGFuZ2UuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9u
Y2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwN2Y3ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10
aGVuLXJlb3Blbi5odG1sCkBAIC0wLDAgKzEsMTE1IEBACitUaGlzIHRlc3Qgb3BlbnMgYSBuZXcg
ZGF0YWJhc2UsIHRoZW4gYWJvcnRzIHRoZSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbi48YnI+
CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBpdCdzIGEgZGVmYXVs
dCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1Y2Nlc3NmdWxseS48
YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCB1cGdyYWRpbmcgaXQncyB2ZXJzaW9u
LiBJdCBhYm9ydHMgdGhpcyB2ZXJzaW9uY2hhbmdlLCBhcyB3ZWxsLjxicj4KK0ZpbmFsbHkgaXQg
cmVvcGVucyB0aGUgZGF0YWJhc2UgYWdhaW4sIHVwZ3JhZGluZyBpdHMgdmVyc2lvbiwgbWFraW5n
IHN1cmUgdGhpbmdzIGhhZCByZXZlcnRlZCBiYWNrIHRvIGJlZm9yZSB0aGUgc2Vjb25kIGFib3J0
ZWQgdmVyc2lvbmNoYW5nZS48YnI+Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgYWxlcnQoIkRvbmUiKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorCit2YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiVmVyc2lv
bkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisKK2NyZWF0ZVJlcXVlc3Qub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBhbGVydCgiSW5pdGlhbCB1cGdyYWRlIG5l
ZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24g
LSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0g
Y3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJn
ZXQucmVzdWx0OworCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLmFib3J0KCk7CisKKyAgICB2ZXJz
aW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0
KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydGVkIik7Cisg
ICAgICAgIGNvbnRpbnVlVGVzdDEoKTsKKyAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICB9
CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
biB1bmV4cGVjdGVkIGNvbXBsZXRlIik7CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKyAgICB2
ZXJzaW9uVHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFs
ZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVk
IGVycm9yIiArIGV2ZW50KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30KKworZnVuY3Rpb24g
Y29udGludWVUZXN0MSgpCit7CisgICAgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisKKyAgICBjcmVhdGVS
ZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0
KCJTZWNvbmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNp
b24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgICAgIHZh
ciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAg
ICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZlcnNpb25U
cmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGFsZXJ0
KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgYWJv
cnQiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZlcnNpb25U
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGFs
ZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGNvbXBsZXRlIik7
CisgICAgICAgICAgICBjb250aW51ZVRlc3QyKCk7CisgICAgICAgICAgICBkYXRhYmFzZS5jbG9z
ZSgpOworICAgICAgICB9CisKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uZXJyb3IgPSBm
dW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgYWxlcnQoIlNlY29uZCB1cGdyYWRlIHZlcnNp
b25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAg
ICAgICBkb25lKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVz
dDIoKQoreworICAgIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlZlcnNp
b25DaGFuZ2VBYm9ydFRlc3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRlUmVxdWVzdC5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiVGhpcmQgdXBn
cmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2
ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgICAgIHZhciB2ZXJzaW9uVHJh
bnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgZGF0YWJh
c2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5h
Ym9ydCgpOworICAgIAorICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFkZSB2ZXJzaW9uY2hh
bmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICAgICAgICAgIGNvbnRpbnVlVGVzdDMoKTsK
KyAgICAgICAgICAgIGRhdGFiYXNlLmNsb3NlKCk7CisgICAgICAgIH0KKworICAgICAgICB2ZXJz
aW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAg
ICBhbGVydCgiVGhpcmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0
ZWQgY29tcGxldGUiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAg
IHZlcnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAg
ICAgIGFsZXJ0KCJUaGlyZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBl
Y3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdDMoKQoreworICAgIGNyZWF0ZVJlcXVlc3Qg
PSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRlc3REYXRhYmFzZSIs
IDIpOworCisgICAgY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVu
dCkgeworICAgICAgICBhbGVydCgiRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAt
ICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJz
aW9uKTsKKyAgICAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgZG9uZSgpOworICAgIH0KK30KKworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwN2VjM2M4Li43NjFjYjA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtOTA0LDYgKzkwNCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAogICAgIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlck9wZXJhdGlvbi5jcHAKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCiAgICAgTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKICAgICBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNmJm
OGI0Li5mNTdiNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTUtMTAtMjEgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREI6IEFk
ZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJz
aW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmg6CisgICAgICAgIAor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaDoKKyAg
ICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1w
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkRhdGFiYXNlOjphYm9ydFRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCRGF0YWJhc2U6OmRp
ZENvbW1pdE9yQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmFib3J0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmlzRmluaXNoZWRPckZpbmlzaGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9uOjphY3RpdmF0aW9uVGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9uOjpk
aWRBYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0
aW9uSW1wbC5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEFib3J0VHJhbnNhY3Rpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6
YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246Ok1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246On5NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRy
YW5zYWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpjb21taXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6aXNWZXJzaW9u
Q2hhbmdlKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1l
bW9yeUlEQkJhY2tpbmdTdG9yZTo6c2V0RGF0YWJhc2VJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmJlZ2lu
VHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVy
Zm9ybUNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUFi
b3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRBYm9ydFRyYW5zYWN0
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6VW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb246Om9yaWdpbmFsRGF0YWJhc2VJbmZvKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6YWJvcnQpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJF
cnJvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppZGJFcnJvck5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6aWRiRXJyb3JEZXNjcmlwdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQkVycm9yLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNl
cnZlcjo6ZGlkQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJblByb2Nlc3NJ
REJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaDoKKwogMjAxNS0xMC0xMyAgU2VyZ2lvIFZpbGxh
ciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVE
OiBjb21wdXRlTWFpbkF4aXNFeHRlbnRGb3JDaGlsZChjaGlsZCwgTWFpbk9yUHJlZmVycmVkU2l6
ZSwgbWFpblNpemUpIGluIFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjphZGp1c3RDaGlsZFNp
emVGb3JNaW5BbmRNYXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0luZGV4ZWREQi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhl
ZERCLmgKaW5kZXggN2ZjNTFkYS4uNTU4YmJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSW5kZXhlZERCLmgKQEAgLTQzLDYgKzQzLDcgQEAgZW51bSBjbGFzcyBUcmFu
c2FjdGlvblN0YXRlIHsKICAgICBVbnN0YXJ0ZWQsCiAgICAgUnVubmluZywKICAgICBDb21taXR0
aW5nLAorICAgIEFib3J0aW5nLAogICAgIEZpbmlzaGVkLAogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcAppbmRleCBhZTg3NDQyLi4xMzBkNTk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcApAQCAtMTEzLDYgKzExMywyNiBAQCB2b2lkIElEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cgogICAgIHRyYW5zYWN0aW9uLT5kaWRDb21taXQoZXJyb3IpOwogfQogCit2b2lkIElE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
YWJvcnRUcmFuc2FjdGlvbiIpOworICAgIEFTU0VSVCghbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5j
b250YWlucyh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKSk7CisgICAgbV9hYm9ydGlu
Z1RyYW5zYWN0aW9ucy5zZXQodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgJnRyYW5z
YWN0aW9uKTsKKworICAgIGF1dG8gaWRlbnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVu
dGlmaWVyKCk7CisgICAgbV9kZWxlZ2F0ZS0+YWJvcnRUcmFuc2FjdGlvbihpZGVudGlmaWVyKTsK
K30KKwordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
QkVycm9yJiBlcnJvcikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9h
Ym9ydGluZ1RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgQVNT
RVJUKHRyYW5zYWN0aW9uKTsKKworICAgIHRyYW5zYWN0aW9uLT5kaWRBYm9ydChlcnJvcik7Cit9
CisKIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZl
cnNpb24pCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Zmly
ZVZlcnNpb25DaGFuZ2VFdmVudCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4
IGNjNGUzOTIuLmJiZmQyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTYx
LDYgKzYxLDkgQEAgcHVibGljOgogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCVHJhbnNh
Y3Rpb24mKTsKICAgICB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCisg
ICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CisgICAgdm9pZCBkaWRB
Ym9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOworCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHJl
cXVlc3RlZFZlcnNpb24pOwogCiAgICAgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQoSURC
RGF0YWJhc2UmKTsKQEAgLTc1LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElEQlJl
c291cmNlSWRlbnRpZmllciwgUmVmUHRyPElEQkNsaWVudDo6SURCT3BlbkRCUmVxdWVzdD4+IG1f
b3BlbkRCUmVxdWVzdE1hcDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBJREJEYXRhYmFzZSo+IG1f
ZGF0YWJhc2VDb25uZWN0aW9uTWFwOwogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVy
LCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAg
SGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1f
YWJvcnRpbmdUcmFuc2FjdGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKaW5kZXggNTYwN2JiYi4u
MTZkYWRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgK
QEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmll
cigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVz
dERhdGEmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5EYXRhYmFzZShJREJSZXF1ZXN0RGF0
YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlk
ZW50aWZpZXImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJl
c291cmNlSWRlbnRpZmllciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0
aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0gMDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRh
dGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCRGF0YWJhc2VJbXBsLmNwcAppbmRleCBhYWI2MzdlLi5lNjFmOWRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJh
c2VJbXBsLmNwcApAQCAtMTc1LDYgKzE3NSwxNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaWRDb21t
aXRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiAgICAgZGlkQ29tbWl0
T3JBYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6
YWJvcnRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9H
KEluZGV4ZWREQiwgIklEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRv
IHJlZlRyYW5zYWN0aW9uID0gbV9hY3RpdmVUcmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5p
bmZvKCkuaWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlQocmVmVHJhbnNhY3Rpb24pOworICAgIG1f
YWJvcnRpbmdUcmFuc2FjdGlvbnMuc2V0KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCks
IFdURjo6bW92ZShyZWZUcmFuc2FjdGlvbikpOworCisgICAgbV9zZXJ2ZXJDb25uZWN0aW9uLT5h
Ym9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZTo6ZGlk
QWJvcnRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAgTE9H
KEluZGV4ZWREQiwgIklEQkRhdGFiYXNlOjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CkBAIC0xODgs
MTAgKzE5OSwxMyBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaWRDb21taXRPckFib3J0VHJhbnNhY3Rp
b24oSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VU
cmFuc2FjdGlvbiA9PSAmdHJhbnNhY3Rpb24pCiAgICAgICAgIG1fdmVyc2lvbkNoYW5nZVRyYW5z
YWN0aW9uID0gbnVsbHB0cjsKICAgICAKLSAgICBBU1NFUlQobV9hY3RpdmVUcmFuc2FjdGlvbnMu
Y29udGFpbnModHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkgfHwgbV9jb21taXR0aW5n
VHJhbnNhY3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKTsK
KyAgICBBU1NFUlQobV9hY3RpdmVUcmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5m
bygpLmlkZW50aWZpZXIoKSkKKyAgICAgICAgfHwgbV9jb21taXR0aW5nVHJhbnNhY3Rpb25zLmNv
bnRhaW5zKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpCisgICAgICAgIHx8IG1fYWJv
cnRpbmdUcmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIo
KSkpOwogCiAgICAgbV9hY3RpdmVUcmFuc2FjdGlvbnMucmVtb3ZlKHRyYW5zYWN0aW9uLmluZm8o
KS5pZGVudGlmaWVyKCkpOwogICAgIG1fY29tbWl0dGluZ1RyYW5zYWN0aW9ucy5yZW1vdmUodHJh
bnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSk7CisgICAgbV9hYm9ydGluZ1RyYW5zYWN0aW9u
cy5yZW1vdmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgSURC
RGF0YWJhc2U6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgcmVxdWVzdGVkVmVyc2lv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJEYXRhYmFzZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJEYXRhYmFzZUltcGwuaAppbmRleCBiZjYwNDgxLi4yYmZiMTFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNl
SW1wbC5oCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICBSZWY8SURCVHJhbnNhY3Rpb24+
IHN0YXJ0VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYp
OwogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKICAgICB2b2lk
IGRpZENvbW1pdFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CisgICAgdm9pZCBhYm9ydFRy
YW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9u
KElEQlRyYW5zYWN0aW9uJik7CiAKICAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CkBAIC05Niw2ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPElEQlRyYW5zYWN0aW9uPiBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbjsKICAgICBI
YXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPElEQlRyYW5zYWN0aW9uPj4gbV9h
Y3RpdmVUcmFuc2FjdGlvbnM7CiAgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFJl
ZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fY29tbWl0dGluZ1RyYW5zYWN0aW9uczsKKyAgICBIYXNo
TWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPElEQlRyYW5zYWN0aW9uPj4gbV9hYm9y
dGluZ1RyYW5zYWN0aW9uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0
aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
VHJhbnNhY3Rpb25JbXBsLmNwcAppbmRleCBkOTM3YWFhLi41NDFlNWQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJh
bnNhY3Rpb25JbXBsLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRPTUVycm9yLmgi
CiAjaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlSW1wbC5oIgor
I2luY2x1ZGUgIklEQkVycm9yLmgiCiAjaW5jbHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgiCiAj
aW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC01MSw4
ICs1MiwxMyBAQCBJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oSURCRGF0YWJhc2UmIGRh
dGFiYXNlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mCiAgICAgLCBtX29wZXJhdGlvblRpbWVy
KCp0aGlzLCAmSURCVHJhbnNhY3Rpb246Om9wZXJhdGlvblRpbWVyRmlyZWQpCiAKIHsKKyAgICBt
X2FjdGl2YXRpb25UaW1lciA9IHN0ZDo6bWFrZV91bmlxdWU8VGltZXI+KCp0aGlzLCAmSURCVHJh
bnNhY3Rpb246OmFjdGl2YXRpb25UaW1lckZpcmVkKTsKKyAgICBtX2FjdGl2YXRpb25UaW1lci0+
c3RhcnRPbmVTaG90KDApOworCisgICAgaWYgKG1faW5mby5tb2RlKCkgPT0gSW5kZXhlZERCOjpU
cmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpCisgICAgICAgIG1fb3JpZ2luYWxEYXRhYmFz
ZUluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4obV9kYXRhYmFzZS0+aW5m
bygpKTsKKwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwotICAgIHNjaGVkdWxlT3BlcmF0aW9uVGlt
ZXIoKTsKICAgICBtX3N0YXRlID0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpSdW5uaW5n
OwogfQogCkBAIC05MSw5ICs5NywxOCBAQCBSZWZQdHI8SURCT2JqZWN0U3RvcmU+IElEQlRyYW5z
YWN0aW9uOjpvYmplY3RTdG9yZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJgogICAgIHJl
dHVybiBudWxscHRyOwogfQogCi12b2lkIElEQlRyYW5zYWN0aW9uOjphYm9ydChFeGNlcHRpb25D
b2RlJikKK3ZvaWQgSURCVHJhbnNhY3Rpb246OmFib3J0KEV4Y2VwdGlvbkNvZGUmIGVjKQogewot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2Fj
dGlvbjo6YWJvcnQiKTsKKworICAgIGlmIChpc0ZpbmlzaGVkT3JGaW5pc2hpbmcoKSkgeworICAg
ICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9zdGF0ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6QWJvcnRpbmc7CisKKyAg
ICBtX2RhdGFiYXNlLT5hYm9ydFRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAogY29uc3QgY2hhciog
SURCVHJhbnNhY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAtMTE2LDYgKzEz
MSwxOSBAQCBib29sIElEQlRyYW5zYWN0aW9uOjppc0FjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fc3RhdGUgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpSdW5uaW5nOwogfQogCiti
b29sIElEQlRyYW5zYWN0aW9uOjppc0ZpbmlzaGVkT3JGaW5pc2hpbmcoKSBjb25zdAoreworICAg
IHJldHVybiBtX3N0YXRlID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6Q29tbWl0dGlu
ZworICAgICAgICB8fCBtX3N0YXRlID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6QWJv
cnRpbmcKKyAgICAgICAgfHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6
OkZpbmlzaGVkOworfQorCit2b2lkIElEQlRyYW5zYWN0aW9uOjphY3RpdmF0aW9uVGltZXJGaXJl
ZCgpCit7CisgICAgc2NoZWR1bGVPcGVyYXRpb25UaW1lcigpOworICAgIG1fYWN0aXZhdGlvblRp
bWVyID0gbnVsbHB0cjsKK30KKwogdm9pZCBJREJUcmFuc2FjdGlvbjo6c2NoZWR1bGVPcGVyYXRp
b25UaW1lcigpCiB7CiAgICAgaWYgKCFtX29wZXJhdGlvblRpbWVyLmlzQWN0aXZlKCkpCkBAIC0x
NTEsNiArMTc5LDIwIEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmNvbW1pdCgpCiAgICAgbV9kYXRh
YmFzZS0+Y29tbWl0VHJhbnNhY3Rpb24oKnRoaXMpOwogfQogCit2b2lkIElEQlRyYW5zYWN0aW9u
OjpkaWRBYm9ydChjb25zdCBJREJFcnJvciYgZXJyb3IpCit7CisgICAgTE9HKEluZGV4ZWREQiwg
IklEQlRyYW5zYWN0aW9uOjpkaWRBYm9ydCIpOworCisgICAgQVNTRVJUKG1fc3RhdGUgPT0gSW5k
ZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpBYm9ydGluZyB8fCBtX3N0YXRlID09IEluZGV4ZWRE
Qjo6VHJhbnNhY3Rpb25TdGF0ZTo6UnVubmluZyk7CisKKyAgICBtX2RhdGFiYXNlLT5kaWRBYm9y
dFRyYW5zYWN0aW9uKCp0aGlzKTsKKworICAgIG1faWRiRXJyb3IgPSBlcnJvcjsKKyAgICBmaXJl
T25BYm9ydCgpOworCisgICAgbV9zdGF0ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6
RmluaXNoZWQ7Cit9CisKIHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZENvbW1pdChjb25zdCBJREJF
cnJvciYgZXJyb3IpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpkaWRD
b21taXQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJUcmFuc2FjdGlvbkltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuaAppbmRleCAwZDM2MDZjLi4wNzJjMjhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJh
bnNhY3Rpb25JbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQkRhdGFiYXNlSW5mby5oIgogI2luY2x1
ZGUgIklEQkVycm9yLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJJ
REJUcmFuc2FjdGlvbkluZm8uaCIKQEAgLTY4LDE2ICs2OSwxOSBAQCBwdWJsaWM6CiAgICAgSURC
RGF0YWJhc2UmIGRhdGFiYXNlKCkgeyByZXR1cm4gbV9kYXRhYmFzZS5nZXQoKTsgfQogICAgIGNv
bnN0IElEQkRhdGFiYXNlJiBkYXRhYmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2UuZ2V0
KCk7IH0KIAorICAgIHZvaWQgZGlkQWJvcnQoY29uc3QgSURCRXJyb3ImKTsKICAgICB2b2lkIGRp
ZENvbW1pdChjb25zdCBJREJFcnJvciYpOwogCiBwcml2YXRlOgogICAgIElEQlRyYW5zYWN0aW9u
KElEQkRhdGFiYXNlJiwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJik7CiAKICAgICBib29sIGlz
QWN0aXZlKCkgY29uc3Q7CisgICAgYm9vbCBpc0ZpbmlzaGVkT3JGaW5pc2hpbmcoKSBjb25zdDsK
ICAgICB2b2lkIGNvbW1pdCgpOwogCiAgICAgdm9pZCBzY2hlZHVsZU9wZXJhdGlvblRpbWVyKCk7
CiAgICAgdm9pZCBvcGVyYXRpb25UaW1lckZpcmVkKCk7CisgICAgdm9pZCBhY3RpdmF0aW9uVGlt
ZXJGaXJlZCgpOwogCiAgICAgdm9pZCBmaXJlT25Db21wbGV0ZSgpOwogICAgIHZvaWQgZmlyZU9u
QWJvcnQoKTsKQEAgLTg1LDExICs4OSwxMyBAQCBwcml2YXRlOgogCiAgICAgUmVmPElEQkRhdGFi
YXNlPiBtX2RhdGFiYXNlOwogICAgIElEQlRyYW5zYWN0aW9uSW5mbyBtX2luZm87CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPElEQkRhdGFiYXNlSW5mbz4gbV9vcmlnaW5hbERhdGFiYXNlSW5mbzsKIAog
ICAgIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZSBtX3N0YXRlIHsgSW5kZXhlZERCOjpUcmFu
c2FjdGlvblN0YXRlOjpVbnN0YXJ0ZWQgfTsKICAgICBJREJFcnJvciBtX2lkYkVycm9yOwogCiAg
ICAgVGltZXIgbV9vcGVyYXRpb25UaW1lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IG1f
YWN0aXZhdGlvblRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0
b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2lu
Z1N0b3JlLmgKaW5kZXggYTVhNDhjMS4uNmZmMWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaApAQCAt
MjksOCArMjksMTMgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogI2luY2x1ZGUg
IklEQkRhdGFiYXNlSW5mby5oIgorI2luY2x1ZGUgIklEQkVycm9yLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgSURCUmVzb3VyY2VJZGVudGlmaWVyOworY2xhc3MgSURCVHJhbnNh
Y3Rpb25JbmZvOworCiBuYW1lc3BhY2UgSURCU2VydmVyIHsKIAogY2xhc3MgSURCQmFja2luZ1N0
b3JlIHsKQEAgLTM4LDYgKzQzLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJCYWNraW5n
U3RvcmUoKSB7IH0KIAogICAgIHZpcnR1YWwgY29uc3QgSURCRGF0YWJhc2VJbmZvJiBnZXRPckVz
dGFibGlzaERhdGFiYXNlSW5mbygpID0gMDsKKworICAgIHZpcnR1YWwgSURCRXJyb3IgYmVnaW5U
cmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKSA9IDA7CisgICAgdmlydHVhbCBJ
REJFcnJvciBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBjb21taXRUcmFu
c2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
cikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuY3BwCmluZGV4IDRjZjM2ZjcuLjM0YTAxZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25u
ZWN0aW9uVG9DbGllbnQuY3BwCkBAIC01OCw2ICs1OCwxMSBAQCB2b2lkIElEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGlkT3BlbkRhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkKICAg
ICBtX2RlbGVnYXRlLT5kaWRPcGVuRGF0YWJhc2UocmVzdWx0KTsKIH0KIAordm9pZCBJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sK
KyAgICBtX2RlbGVnYXRlLT5kaWRBYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgZXJyb3IpOworfQorCiB2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ29tbWl0VHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKIHsKICAgICBtX2RlbGVnYXRlLT5kaWRDb21taXRU
cmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuaAppbmRleCAxZjBlNTM0Li5lM2RmOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkRGVs
ZXRlRGF0YWJhc2UoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkT3BlbkRhdGFi
YXNlKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKKyAgICB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24o
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQkVycm9yJik7CiAgICAgdm9pZCBkaWRDb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsK
IAogICAgIHZvaWQgZmlyZVZlcnNpb25DaGFuZ2VFdmVudChVbmlxdWVJREJEYXRhYmFzZUNvbm5l
Y3Rpb24mLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxl
Z2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudERlbGVnYXRlLmgKaW5kZXggMjhlY2NiMi4uZWViOGUxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25U
b0NsaWVudERlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJl
c3VsdERhdGEmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBJ
REJSZXN1bHREYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9u
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBJREJFcnJvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24o
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQkVycm9yJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lv
bikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmNwcAppbmRleCA0NWUxNmZlLi4zMGRlYzQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAt
MTQyLDYgKzE0MiwyMCBAQCB2b2lkIElEQlNlcnZlcjo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQogICAgIGNvbm5lY3Rpb24tPmRpZERlbGV0ZURhdGFi
YXNlKHJlc3VsdCk7CiB9CiAKK3ZvaWQgSURCU2VydmVyOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQoreworICAgIExP
RyhJbmRleGVkREIsICJJREJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24iKTsKKworICAgIGF1dG8g
dHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
KyAgICBpZiAoIXRyYW5zYWN0aW9uKSB7CisgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIHRyYW5z
YWN0aW9uIHRoZXJlIGlzIG5vdGhpbmcgdG8gYWJvcnQuCisgICAgICAgIC8vIFdlIGFsc28gaGF2
ZSBubyBhY2Nlc3MgdG8gYSBjb25uZWN0aW9uIG92ZXIgd2hpY2ggdG8gbWVzc2FnZSBmYWlsdXJl
LXRvLWFib3J0LgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdHJhbnNhY3Rpb24tPmFi
b3J0KCk7Cit9CisKIHZvaWQgSURCU2VydmVyOjpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBMT0coSW5k
ZXhlZERCLCAiSURCU2VydmVyOjpjb21taXRUcmFuc2FjdGlvbiIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IGYwN2U4
N2QuLjA2MWE0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIC8vIE9w
ZXJhdGlvbnMgcmVxdWVzdGVkIGJ5IHRoZSBjbGllbnQuCiAgICAgdm9pZCBvcGVuRGF0YWJhc2Uo
Y29uc3QgSURCUmVxdWVzdERhdGEmKTsKICAgICB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IElE
QlJlcXVlc3REYXRhJik7CisgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYpOwogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJik7CiAgICAgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmVjMmEzZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCkBA
IC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb24uaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAi
SW5kZXhlZERCLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lbW9yeUlEQkJh
Y2tpbmdTdG9yZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgSURCU2VydmVy
IHsKKworc3RkOjp1bmlxdWVfcHRyPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPiBNZW1v
cnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6Y3JlYXRlKE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYg
YmFja2luZ1N0b3JlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCit7CisgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+KGJhY2tp
bmdTdG9yZSwgaW5mbyk7Cit9CisKK01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpNZW1v
cnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbihNZW1vcnlJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdT
dG9yZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQorICAgIDogbV9iYWNraW5nU3Rv
cmUoYmFja2luZ1N0b3JlKQorICAgICwgbV9pbmZvKGluZm8pCit7CisgICAgaWYgKG1faW5mby5t
b2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpCisgICAg
ICAgIG1fb3JpZ2luYWxEYXRhYmFzZUluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNl
SW5mbz4obV9iYWNraW5nU3RvcmUuZ2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oKSk7Cit9CisK
K01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjp+TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb24oKQoreworICAgIEFTU0VSVCghbV9pblByb2dyZXNzKTsKK30KKwordm9pZCBNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6YWJvcnQoKQoreworICAgIExPRyhJbmRleGVkREIsICJN
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6YWJvcnQoKSIpOworCisgICAgaWYgKG1fb3Jp
Z2luYWxEYXRhYmFzZUluZm8pIHsKKyAgICAgICAgQVNTRVJUKG1faW5mby5tb2RlKCkgPT0gSW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpOworICAgICAgICBtX2JhY2tp
bmdTdG9yZS5zZXREYXRhYmFzZUluZm8oKm1fb3JpZ2luYWxEYXRhYmFzZUluZm8pOworICAgIH0K
KworICAgIG1faW5Qcm9ncmVzcyA9IGZhbHNlOworfQorCit2b2lkIE1lbW9yeUJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uOjpjb21taXQoKQoreworICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbjo6Y29tbWl0KCkiKTsKKworICAgIG1faW5Qcm9ncmVzcyA9IGZh
bHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRy
YW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yYTE3NDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgKQEAgLTAs
MCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb25faAorI2RlZmluZSBNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbl9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KworI2luY2x1ZGUgIklEQkRhdGFiYXNlSW5mby5oIgorI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9u
SW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgSURCU2VydmVyIHsKKwor
Y2xhc3MgTWVtb3J5SURCQmFja2luZ1N0b3JlOworCitjbGFzcyBNZW1vcnlCYWNraW5nU3RvcmVU
cmFuc2FjdGlvbiB7CisgICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbj4gc3RkOjptYWtlX3VuaXF1ZTxNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbj4oTWVtb3J5SURCQmFja2luZ1N0b3JlJiwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJik7
CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3RvcmVU
cmFuc2FjdGlvbj4gY3JlYXRlKE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYsIGNvbnN0IElEQlRyYW5z
YWN0aW9uSW5mbyYpOworCisgICAgfk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCk7CisK
KyAgICBib29sIGlzVmVyc2lvbkNoYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5tb2RlKCkg
PT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2U7IH0KKworICAgIGNv
bnN0IElEQkRhdGFiYXNlSW5mbyYgb3JpZ2luYWxEYXRhYmFzZUluZm8oKSBjb25zdDsKKworICAg
IHZvaWQgYWJvcnQoKTsKKyAgICB2b2lkIGNvbW1pdCgpOworCitwcml2YXRlOgorICAgIE1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYsIGNvbnN0IElE
QlRyYW5zYWN0aW9uSW5mbyYpOworCisgICAgTWVtb3J5SURCQmFja2luZ1N0b3JlJiBtX2JhY2tp
bmdTdG9yZTsKKyAgICBJREJUcmFuc2FjdGlvbkluZm8gbV9pbmZvOworCisgICAgc3RkOjp1bmlx
dWVfcHRyPElEQkRhdGFiYXNlSW5mbz4gbV9vcmlnaW5hbERhdGFiYXNlSW5mbzsKKworICAgIGJv
b2wgbV9pblByb2dyZXNzIHsgdHJ1ZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgSURCU2VydmVy
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKyNlbmRpZiAvLyBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFj
a2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGIwNzQyMDcuLmFhZTA2N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNr
aW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKQEAgLTUzLDYgKzU1LDUzIEBAIGNv
bnN0IElEQkRhdGFiYXNlSW5mbyYgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRPckVzdGFibGlz
aERhdGFiYXNlSW5mbygpCiAgICAgcmV0dXJuICptX2RhdGFiYXNlSW5mbzsKIH0KIAordm9pZCBN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OnNldERhdGFiYXNlSW5mbyhjb25zdCBJREJEYXRhYmFzZUlu
Zm8mIGluZm8pCit7CisgICAgLy8gSXQgaXMgbm90IHZhbGlkIHRvIGRpcmVjdGx5IHNldCBkYXRh
YmFzZSBpbmZvIG9uIGEgYmFja2luZyBzdG9yZSB0aGF0IGhhc24ndCBhbHJlYWR5IHNldCBpdHMg
b3duIGRhdGFiYXNlIGluZm8uCisgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKKworICAgIG1f
ZGF0YWJhc2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KGluZm8pOwor
fQorCitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24oY29u
c3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQoreworICAgIExPRyhJbmRleGVkREIsICJNZW1v
cnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24iKTsKKworICAgIGlmIChtX3RyYW5z
YWN0aW9ucy5jb250YWlucyhpbmZvLmlkZW50aWZpZXIoKSkpCisgICAgICAgIHJldHVybiBJREJF
cnJvcihJREJFeGNlcHRpb25Db2RlOjpJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
YXNrZWQgdG8gY3JlYXRlIHRyYW5zYWN0aW9uIGl0IGFscmVhZHkgaGFzIGEgcmVjb3JkIG9mIik7
CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246
OmNyZWF0ZSgqdGhpcywgaW5mbyk7CisgICAgbV90cmFuc2FjdGlvbnMuc2V0KGluZm8uaWRlbnRp
ZmllcigpLCBXVEY6Om1vdmUodHJhbnNhY3Rpb24pKTsKKworICAgIHJldHVybiBJREJFcnJvcigp
OworfQorCitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24o
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCit7Cisg
ICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlv
biIpOworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNh
Y3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQorICAgICAgICByZXR1cm4g
SURCRXJyb3IoSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0
b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBvZiIp
OworCisgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CisKKyAgICByZXR1cm4gSURCRXJyb3IoKTsK
K30KKworSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAg
ICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlv
biIpOworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNh
Y3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQorICAgICAgICByZXR1cm4g
SURCRXJyb3IoSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0
b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2ZSByZWNvcmQgb2Yi
KTsKKworICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKworICAgIHJldHVybiBJREJFcnJvcigp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDg3NjJkZTQuLjI1NDk5ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJ
REJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKQEAgLTMwLDYgKzMwLDkgQEAKIAogI2luY2x1
ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lbW9yeUJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIElEQlNlcnZlciB7CkBAIC00MiwxMiArNDUsMjAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgfk1lbW9yeUlEQkJhY2tpbmdTdG9yZSgpIG92ZXJyaWRl
IGZpbmFsOwogCiAgICAgdmlydHVhbCBjb25zdCBJREJEYXRhYmFzZUluZm8mIGdldE9yRXN0YWJs
aXNoRGF0YWJhc2VJbmZvKCkgb3ZlcnJpZGUgZmluYWw7Ci0gICAgCisgICAgdm9pZCBzZXREYXRh
YmFzZUluZm8oY29uc3QgSURCRGF0YWJhc2VJbmZvJik7CisKKyAgICB2aXJ0dWFsIElEQkVycm9y
IGJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJikgb3ZlcnJpZGUgZmlu
YWw7CisgICAgdmlydHVhbCBJREJFcnJvciBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKKyAg
ICB2aXJ0dWFsIElEQkVycm9yIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKKwogcHJpdmF0
ZToKICAgICBNZW1vcnlJREJCYWNraW5nU3RvcmUoY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVy
Jik7CiAKICAgICBJREJEYXRhYmFzZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IG1fZGF0YWJhc2VJbmZvOworCisgICAgSGFzaE1h
cDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbj4+IG1fdHJhbnNhY3Rpb25zOworCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJ
REJTZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDg3N2Y0ZGQuLjkyNmRhYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVk
ZSAiSURCUmVzdWx0RGF0YS5oIgogI2luY2x1ZGUgIklEQlNlcnZlci5oIgorI2luY2x1ZGUgIklE
QlRyYW5zYWN0aW9uSW5mby5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpA
QCAtMTU2LDExICsxNTcsMTggQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6c3RhcnRWZXJzaW9u
Q2hhbmdlVHJhbnNhY3Rpb24oKQogICAgIGFkZE9wZW5EYXRhYmFzZUNvbm5lY3Rpb24oKm1fdmVy
c2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbik7CiAKICAgICBtX3ZlcnNpb25DaGFuZ2VUcmFu
c2FjdGlvbiA9ICZtX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24tPmNyZWF0ZVZlcnNp
b25DaGFuZ2VUcmFuc2FjdGlvbihyZXF1ZXN0ZWRWZXJzaW9uKTsKKyAgICBtX3NlcnZlci5wb3N0
RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFi
YXNlOjpiZWdpblRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUsIG1fdmVyc2lvbkNoYW5nZVRyYW5z
YWN0aW9uLT5pbmZvKCkpKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gSURCUmVzdWx0RGF0YTo6b3Bl
bkRhdGFiYXNlVXBncmFkZU5lZWRlZChvcGVyYXRpb24tPnJlcXVlc3REYXRhKCkucmVxdWVzdElk
ZW50aWZpZXIoKSwgKm1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKTsKICAgICBvcGVyYXRpb24t
PmNvbm5lY3Rpb24oKS5kaWRPcGVuRGF0YWJhc2UocmVzdWx0KTsKIH0KIAordm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlKGNvbnN0IElEQlRyYW5z
YWN0aW9uSW5mbyYgaW5mbykKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiKGRiKSBVbmlxdWVJREJE
YXRhYmFzZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlIik7CisgICAgbV9iYWNraW5n
U3RvcmUtPmJlZ2luVHJhbnNhY3Rpb24oaW5mbyk7Cit9CisKIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6Om5vdGlmeUNvbm5lY3Rpb25zT2ZWZXJzaW9uQ2hhbmdlKCkKIHsKICAgICBBU1NFUlQobV92
ZXJzaW9uQ2hhbmdlT3BlcmF0aW9uKTsKQEAgLTIxNCw2ICsyMjIsOCBAQCB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
JiB0cmFuc2FjdAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWRE
QiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24iKTsKIAorICAg
IEFTU0VSVCgmdHJhbnNhY3Rpb24uZGF0YWJhc2VDb25uZWN0aW9uKCkuZGF0YWJhc2UoKSA9PSB0
aGlzKTsKKwogICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9PSAmdHJhbnNhY3Rp
b24pIHsKICAgICAgICAgQVNTRVJUKCZtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi0+ZGF0YWJh
c2VDb25uZWN0aW9uKCkgPT0gbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uKTsKICAg
ICAgICAgbV9kYXRhYmFzZUluZm8tPnNldFZlcnNpb24odHJhbnNhY3Rpb24uaW5mbygpLm5ld1Zl
cnNpb24oKSk7CkBAIC0yMjUsMTYgKzIzNSwxMyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpj
b21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAog
ICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlz
LCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1Db21taXRUcmFuc2FjdGlvbiwgY2FsbGJhY2tJ
RCwgdHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOwogfQogCi12b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVu
dGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKQordm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6cGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmll
ciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7
CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihkYikg
VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1Db21taXRUcmFuc2FjdGlvbiIpOwogCi0gICAgLy8g
RklYTUU6IENvbW1pdCB0cmFuc2FjdGlvbiBpbiBiYWNraW5nIHN0b3JlLCBvbmNlIHRoYXQgZXhp
c3RzLgotCi0gICAgSURCRXJyb3IgZXJyb3I7CisgICAgSURCRXJyb3IgZXJyb3IgPSBtX2JhY2tp
bmdTdG9yZS0+Y29tbWl0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBt
X3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlz
LCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbiwgY2FsbGJh
Y2tJZGVudGlmaWVyLCBlcnJvcikpOwotCiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRp
ZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNv
bnN0IElEQkVycm9yJiBlcnJvcikKQEAgLTI0Miw2ICsyNDksNDggQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRl
bnRpZmllciwKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIs
ICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbiIp
OwogCisgICAgLy8gUHJldmlvdXNseSBibG9ja2VkIHRyYW5zYWN0aW9ucyBtaWdodCBub3cgYmUg
dW5ibG9ja2VkLgorICAgIGludm9rZVRyYW5zYWN0aW9uU2NoZWR1bGVyKCk7CisKKyAgICBwZXJm
b3JtRXJyb3JDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yKTsKK30KKwordm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgRXJyb3JDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURC
RGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24iKTsKKworICAgIEFTU0VSVCgmdHJhbnNhY3Rpb24u
ZGF0YWJhc2VDb25uZWN0aW9uKCkuZGF0YWJhc2UoKSA9PSB0aGlzKTsKKworICAgIGlmIChtX3Zl
cnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9PSAmdHJhbnNhY3Rpb24pIHsKKyAgICAgICAgQVNTRVJU
KCZtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25uZWN0aW9uKCkgPT0gbV92
ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uKTsKKyAgICAgICAgQVNTRVJUKHRyYW5zYWN0
aW9uLm9yaWdpbmFsRGF0YWJhc2VJbmZvKCkpOworICAgICAgICBtX2RhdGFiYXNlSW5mbyA9IHN0
ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPigqdHJhbnNhY3Rpb24ub3JpZ2luYWxEYXRh
YmFzZUluZm8oKSk7CisgICAgICAgIG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0
cjsKKyAgICAgICAgbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uID0gbnVsbHB0cjsK
KyAgICB9CisKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFjayhjYWxsYmFj
ayk7CisgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2so
KnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24sIGNhbGxi
YWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKTsKK30KKwordm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJ
ZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERC
LCAiKGRiKSBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24iKTsKKwor
ICAgIElEQkVycm9yIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFib3J0VHJhbnNhY3Rpb24odHJh
bnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrUmVwbHko
Y3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZv
cm1BYm9ydFRyYW5zYWN0aW9uLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yKSk7Cit9CisKK3Zv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90
IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNhY3Rpb24iKTsKKworICAgIC8vIFByZXZpb3Vz
bHkgYmxvY2tlZCB0cmFuc2FjdGlvbnMgbWlnaHQgbm93IGJlIHVuYmxvY2tlZC4KKyAgICBpbnZv
a2VUcmFuc2FjdGlvblNjaGVkdWxlcigpOworCiAgICAgcGVyZm9ybUVycm9yQ2FsbGJhY2soY2Fs
bGJhY2tJZGVudGlmaWVyLCBlcnJvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXgg
ZjYyNWMwOC4uZWZmYTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTQ0LDYgKzQ0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJFcnJvcjsKIGNsYXNzIElEQlJlcXVl
c3REYXRhOworY2xhc3MgSURCVHJhbnNhY3Rpb25JbmZvOwogCiBuYW1lc3BhY2UgSURCU2VydmVy
IHsKIApAQCAtNjUsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgSURCU2VydmVyJiBzZXJ2ZXIoKSB7
IHJldHVybiBtX3NlcnZlcjsgfQogCiAgICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJ
REJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxsYmFjayk7CisgICAgdm9pZCBhYm9ydFRy
YW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBFcnJvckNhbGxiYWNrKTsK
ICAgICB2b2lkIHRyYW5zYWN0aW9uRGVzdHJveWVkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24mKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KFVuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbiYpOwogCkBAIC04MywxMCArODUsMTMgQEAgcHJpdmF0ZToKICAgICAvLyBE
YXRhYmFzZSB0aHJlYWQgb3BlcmF0aW9ucwogICAgIHZvaWQgb3BlbkJhY2tpbmdTdG9yZShjb25z
dCBJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHBlcmZvcm1Db21taXRUcmFuc2Fj
dGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIHBlcmZvcm1BYm9ydFRyYW5z
YWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOworICAgIHZvaWQgYmVnaW5UcmFuc2FjdGlv
bkluQmFja2luZ1N0b3JlKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogCiAgICAgLy8gTWFp
biB0aHJlYWQgY2FsbGJhY2tzCiAgICAgdm9pZCBkaWRPcGVuQmFja2luZ1N0b3JlKGNvbnN0IElE
QkRhdGFiYXNlSW5mbyYpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVp
bnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKKyAgICB2b2lkIGRp
ZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29u
c3QgSURCRXJyb3ImKTsKIAogICAgIHZvaWQgcGVyZm9ybUVycm9yQ2FsbGJhY2sodWludDY0X3Qg
Y2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCmluZGV4IDJiMGJiYzYuLjQzMzUxYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCkBAIC05Myw2ICs5Mywx
OCBAQCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiBVbmlxdWVJREJEYXRhYmFzZUNvbm5l
Y3Rpb246OmNyZWF0ZVZlcnNpb25DaGFuZ2VUcgogICAgIHJldHVybiB0cmFuc2FjdGlvbi5nZXQo
KTsKIH0KIAordm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZEFib3J0VHJhbnNh
Y3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGNvbnN0IElE
QkVycm9yJiBlcnJvcikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VD
b25uZWN0aW9uOjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9u
SWRlbnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCk7CisKKyAgICBBU1NF
UlQobV90cmFuc2FjdGlvbk1hcC5jb250YWlucyh0cmFuc2FjdGlvbklkZW50aWZpZXIpKTsKKyAg
ICBtX3RyYW5zYWN0aW9uTWFwLnJlbW92ZSh0cmFuc2FjdGlvbklkZW50aWZpZXIpOworCisgICAg
bV9jb25uZWN0aW9uVG9DbGllbnQuZGlkQWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50
aWZpZXIsIGVycm9yKTsKK30KKwogdm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRp
ZENvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0
aW9uLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24iKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaAppbmRleCA2ZWU4ZTdmLi4xZjUwZTdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oCkBAIC02Miw2ICs2Miw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgcmVx
dWVzdGVkVmVyc2lvbik7CiAgICAgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgY3JlYXRl
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKHVpbnQ2NF90IG5ld1ZlcnNpb24pOwogCisgICAgdm9p
ZCBkaWRBYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25z
dCBJREJFcnJvciYpOwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbiYsIGNvbnN0IElEQkVycm9yJik7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAKaW5kZXggYzhiMmZkZS4uYjYz
YWVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcApA
QCAtNDQsNiArNDQsOSBAQCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubgogICAgIDogbV9kYXRhYmFz
ZUNvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1fdHJhbnNhY3Rpb25JbmZvKGluZm8pCiB7
CisgICAgaWYgKG1fdHJhbnNhY3Rpb25JbmZvLm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0
aW9uTW9kZTo6VmVyc2lvbkNoYW5nZSkKKyAgICAgICAgbV9vcmlnaW5hbERhdGFiYXNlSW5mbyA9
IHN0ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPihtX2RhdGFiYXNlQ29ubmVjdGlvbi0+
ZGF0YWJhc2UoKS5pbmZvKCkpOworCiAgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNl
KCkuc2VydmVyKCkucmVnaXN0ZXJUcmFuc2FjdGlvbigqdGhpcyk7CiB9CiAKQEAgLTUzLDYgKzU2
LDIzIEBAIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246On5VbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uKCkKICAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGF0YWJhc2UoKS5zZXJ2ZXIo
KS51bnJlZ2lzdGVyVHJhbnNhY3Rpb24oKnRoaXMpOwogfQogCitJREJEYXRhYmFzZUluZm8qIFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246Om9yaWdpbmFsRGF0YWJhc2VJbmZvKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQobV90cmFuc2FjdGlvbkluZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKTsKKyAgICByZXR1cm4gbV9vcmlnaW5hbERhdGFi
YXNlSW5mby5nZXQoKTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjph
Ym9ydCgpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b246OmFib3J0Iik7CisKKyAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbj4g
c2VsZih0aGlzKTsKKyAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGF0YWJhc2UoKS5hYm9ydFRy
YW5zYWN0aW9uKCp0aGlzLCBbdGhpcywgc2VsZl0oY29uc3QgSURCRXJyb3ImIGVycm9yKSB7Cisg
ICAgICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjphYm9y
dCAoY2FsbGJhY2spIik7CisgICAgICAgIG1fZGF0YWJhc2VDb25uZWN0aW9uLT5kaWRBYm9ydFRy
YW5zYWN0aW9uKCp0aGlzLCBlcnJvcik7CisgICAgfSk7Cit9CisKIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbjo6Y29tbWl0KCkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6Y29tbWl0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24uaAppbmRleCBiMmNhY2NhLi5iZTM5NTZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmgKQEAgLTM0LDYgKzM0LDkgQEAKICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElE
QkRhdGFiYXNlSW5mbzsKKwogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKIGNsYXNzIFVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbjsKQEAgLTQ3LDYgKzUwLDkgQEAgcHVibGljOgogICAgIFVuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYgZGF0YWJhc2VDb25uZWN0aW9uKCkgeyByZXR1cm4gbV9k
YXRhYmFzZUNvbm5lY3Rpb24uZ2V0KCk7IH0KICAgICBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8m
IGluZm8oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uSW5mbzsgfQogCisgICAgSURCRGF0
YWJhc2VJbmZvKiBvcmlnaW5hbERhdGFiYXNlSW5mbygpIGNvbnN0OworCisgICAgdm9pZCBhYm9y
dCgpOwogICAgIHZvaWQgY29tbWl0KCk7CiAKIHByaXZhdGU6CkBAIC01NCw2ICs2MCw4IEBAIHBy
aXZhdGU6CiAKICAgICBSZWY8VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uPiBtX2RhdGFiYXNl
Q29ubmVjdGlvbjsKICAgICBJREJUcmFuc2FjdGlvbkluZm8gbV90cmFuc2FjdGlvbkluZm87CisK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX29yaWdpbmFsRGF0YWJhc2VJ
bmZvOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmNwcAppbmRleCA5NzMzM2Y2
Li44YTg3NWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJFcnJvci5jcHAKQEAgLTQzLDYgKzQzLDEwIEBAIHN0YXRpYyBjb25zdCBTdHJp
bmcmIGlkYkVycm9yTmFtZShJREJFeGNlcHRpb25Db2RlIGNvZGUpCiAgICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJWZXJzaW9uRXJyb3Ii
KTsKICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAgIH0KKyAgICBjYXNlIElEQkV4Y2VwdGlvbkNv
ZGU6OkludmFsaWRTdGF0ZUVycm9yOiB7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJJbnZhbGlkU3RhdGVFcnJvciIpOworICAgICAg
ICByZXR1cm4gZW50cnk7CisgICAgfQogICAgIGNhc2UgSURCRXhjZXB0aW9uQ29kZTo6Tm9uZToK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC01NCwxMyAr
NTgsMTcgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYgaWRiRXJyb3JEZXNjcmlwdGlvbihJREJFeGNl
cHRpb25Db2RlIGNvZGUpCiB7CiAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgY2FzZSBJREJFeGNl
cHRpb25Db2RlOjpVbmtub3duOiB7Ci0gICAgICAgIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50
cnkgPSBBU0NJSUxpdGVyYWwoIk9wZXJhdGlvbiBmYWlsZWQgZm9yIHJlYXNvbnMgdW5yZWxhdGVk
IHRvIHRoZSBkYXRhYmFzZSBpdHNlbGYgYW5kIG5vdCBjb3ZlcmVkIGJ5IGFueSBvdGhlciBlcnJv
cnMuIik7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGVudHJ5ID0gQVND
SUlMaXRlcmFsKCJPcGVyYXRpb24gZmFpbGVkIGZvciByZWFzb25zIHVucmVsYXRlZCB0byB0aGUg
ZGF0YWJhc2UgaXRzZWxmIGFuZCBub3QgY292ZXJlZCBieSBhbnkgb3RoZXIgZXJyb3JzLiIpOwog
ICAgICAgICByZXR1cm4gZW50cnkuZ2V0KCk7CiAgICAgfQogICAgIGNhc2UgSURCRXhjZXB0aW9u
Q29kZTo6VmVyc2lvbkVycm9yOiB7Ci0gICAgICAgIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50
cnkgPSBBU0NJSUxpdGVyYWwoIkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNl
IHVzaW5nIGEgbG93ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIpOworICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJhbCgi
QW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBvcGVuIGEgZGF0YWJhc2UgdXNpbmcgYSBsb3dlciB2ZXJz
aW9uIHRoYW4gdGhlIGV4aXN0aW5nIHZlcnNpb24uIik7CiAgICAgICAgIHJldHVybiBlbnRyeS5n
ZXQoKTsKICAgICB9CisgICAgY2FzZSBJREJFeGNlcHRpb25Db2RlOjpJbnZhbGlkU3RhdGVFcnJv
cjogeworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJ
TGl0ZXJhbCgiT3BlcmF0aW9uIHdhcyBjYWxsZWQgb24gYW4gb2JqZWN0IG9uIHdoaWNoIGl0IGlz
IG5vdCBhbGxvd2VkIG9yIGF0IGEgdGltZSB3aGVuIGl0IGlzIG5vdCBhbGxvd2VkLiIpOworICAg
ICAgICByZXR1cm4gZW50cnk7CisgICAgfQogICAgIGNhc2UgSURCRXhjZXB0aW9uQ29kZTo6Tm9u
ZToKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5oCmluZGV4
IDQwNzAzNGMuLjZlNzc1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJFcnJvci5oCkBAIC0zNiw2ICszNiw5IEBAIGVudW0gY2xhc3MgSURC
RXhjZXB0aW9uQ29kZSB7CiAgICAgTm9uZSA9IDAsCiAgICAgVW5rbm93biwKICAgICBWZXJzaW9u
RXJyb3IsCisKKyAgICAvLyBJbmRleGVkIERCIGV4aXN0aW5nIGV4Y2VwdGlvbiBjb2RlcyB3aXRo
IElEQi1zcGVjaWZpYyBlcnJvciBtZXNzYWdlczoKKyAgICBJbnZhbGlkU3RhdGVFcnJvciwKIH07
CiAKIGNsYXNzIElEQkVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKaW5kZXggN2My
ZjliZi4uZDdmZGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTEwMiw2ICsx
MDIsMTQgQEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZE9wZW5EYXRhYmFzZShjb25zdCBJ
REJSZXN1bHREYXRhJiByZXN1bHREYXRhKQogICAgIH0pOwogfQogCit2b2lkIEluUHJvY2Vzc0lE
QlNlcnZlcjo6ZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIFJl
ZlB0cjxJblByb2Nlc3NJREJTZXJ2ZXI+IHNlbGYodGhpcyk7CisgICAgUnVuTG9vcDo6Y3VycmVu
dCgpLmRpc3BhdGNoKFt0aGlzLCBzZWxmLCB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yXSB7
CisgICAgICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRBYm9ydFRyYW5zYWN0aW9uKHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgZXJyb3IpOworICAgIH0pOworfQorCiB2b2lkIEluUHJvY2Vzc0lE
QlNlcnZlcjo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKIHsKICAgICBS
ZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOwpAQCAtMTEwLDYgKzExOCwxNCBA
QCB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFucwogICAgIH0pOwogfQogCit2b2lkIEluUHJvY2Vzc0lE
QlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlc291cmNl
SWRlbnRpZmllcikKK3sKKyAgICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMp
OworICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgc2VsZiwgcmVzb3VyY2VJ
ZGVudGlmaWVyXSB7CisgICAgICAgIG1fc2VydmVyLT5hYm9ydFRyYW5zYWN0aW9uKHJlc291cmNl
SWRlbnRpZmllcik7CisgICAgfSk7Cit9CisKIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpjb21t
aXRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlc291cmNlSWRlbnRpZmllcikK
IHsKICAgICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vz
c0lEQlNlcnZlci5oCmluZGV4IGRjMDk0NTEuLmJkM2NiNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2Vy
dmVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8vIElEQkNvbm5lY3Rpb25Ub1Nl
cnZlcgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpIG92
ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuRGF0YWJhc2UoSURCUmVxdWVzdERh
dGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJ
REJSZXNvdXJjZUlkZW50aWZpZXImKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQg
Y29tbWl0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKIApAQCAtNjMsNiArNjQs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlc3Vs
dERhdGEmKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkRhdGFiYXNl
KGNvbnN0IElEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJikgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoSURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKSBvdmVy
cmlkZSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGM3YWI1YzAuLjcwMDIwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MTYsMTEgKzE1MTYs
MTEgQEAKIAkJNDE2MkE0NTgxMDExNDY0NzAwREZGM0VEIC8qIEpTRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNjJBNDU2MTAxMTQ2NDcwMERGRjNFRCAvKiBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
LmggKi87IH07CiAJCTQxNkUyOUE2MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQ
cm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2
RTI5QTUxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5LmggKi87IH07CiAJ
CTQxNkU2RkU4MUJCRDEyREYwMDBBNjAzMyAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIz
MTEwRDAwQjc2NEM5IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDE2RTZGRUExQkJEMTY4NDAwMEE2
MDM0IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NENBIC8q
IFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjA0MyAvKiBS
ZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDkgLyogUmVhZGFi
bGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA0MyAvKiBSZWFkYWJs
ZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDggLyogUmVhZGFibGVTdHJlYW1CdWlsdGlu
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQx
NkU2RkVBMUJCRDE2ODQwMDBBNjA0NCAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5z
V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUIwM0Q4MDcxQkIzMTEwRDAwQjc2NERBIC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRp
bnNXcmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2
MUJCMzExMEQwMEI3NjRFOCAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE2RTZGRUExQkJEMTY4NDAw
MEE2MDM0IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NENB
IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjA0NCAv
KiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NERB
IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3MjUzQUExMzU0QkJCQzAw
MzYwRjJBIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzI1M0E4MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgKi87IH07CiAJCTQxNzI1M0FCMTM1NEJCQkMwMDM2MEYyQSAv
KiBNZWRpYUNvbnRyb2xFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbEVs
ZW1lbnRzLmggKi87IH07CiAJCTQxN0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE0
Q0YxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi87IH07CkBAIC0xOTMxLDYgKzE5
MzEsOCBAQAogCQk1MTAzMTA1RDFCQThEQjU2MDAzMzI5QzAgLyogSURCUmVxdWVzdEltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMxMDU5MUJB
OERCMzAwMDMzMjlDMCAvKiBJREJSZXF1ZXN0SW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMDNDMkIxMUJBMjJEMUEwMEUyNjMzNyAvKiBM
ZWdhY3lBbnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE2NDVCNkUxQkEwQTc2MTAwRjc4OUNFIC8qIExlZ2FjeUFueS5jcHAgKi87IH07CiAJCTUx
MDNDMkI5MUJBMjNBMjYwMEUyNjMzNyAvKiBMZWdhY3lBbnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjQ1QjZGMUJBMEE3NjEwMEY3ODlDRSAvKiBM
ZWdhY3lBbnkuaCAqLzsgfTsKKwkJNTEwNTRFMTgxQkQ2REVDOTAwRDg3QUY5IC8qIE1lbW9yeUJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMDU0RTE2MUJENkE2NTcwMEQ4N0FGOSAvKiBNZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbi5jcHAgKi87IH07CisJCTUxMDU0RTE5MUJENkRFQzkwMEQ4N0FGOSAv
KiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNTRFMTcxQkQ2QTY1NzAwRDg3QUY5IC8qIE1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggKi87IH07CiAJCTUxMDZEN0JEMThCREI3NkYwMDBB
QjE2NiAvKiBDb250ZXh0TWVudUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNkQ3QkIxOEJEQjc2RjAwMEFCMTY2IC8qIENvbnRleHRN
ZW51Q29udGV4dC5jcHAgKi87IH07CiAJCTUxMDZEN0JFMThCREI3NkYwMDBBQjE2NiAvKiBDb250
ZXh0TWVudUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMDZEN0JDMThCREI3NkYwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNvbnRleHQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBBNThF
NDFCQUE0MEIxMDBDMTkyODIgLyogSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE1OEUyMUJBQTQwQUUwMEMxOTI4
MiAvKiBJblByb2Nlc3NJREJTZXJ2ZXIuY3BwICovOyB9OwpAQCAtMjY1OSwxMSArMjY2MSwxMSBA
QAogCQk3QzQ4QTZEMTE5MUM5RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzQ4QTZDRjE5MUM5RDY1
MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmggKi87IH07CiAJCTdDNDkwMkEyMThCODI1Rjgw
MDdEOTI5OCAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTg5RENBMEFDQzhCQkQw
MEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJN0M0Qzk2REMxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
UmVhZGFibGVTdHJlYW0uY3BwICovOyB9OworCQk3QzRDOTZEQzFBRDQ0ODM1MDAzNjVBNjAgLyog
SlNXcml0YWJsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5j
cHAgKi87IH07CiAJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZE
OTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oICovOyB9OworCQk3QzRDOTZE
RDFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTYwIC8q
IEpTV3JpdGFibGVTdHJlYW0uaCAqLzsgfTsKIAkJN0M0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2REExQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVT
dHJlYW1SZWFkZXIuY3BwICovOyB9OwogCQk3QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNS
ZWFkYWJsZVN0cmVhbVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1S
ZWFkZXIuaCAqLzsgfTsKLQkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVT
dHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uY3BwICovOyB9Owot
CQk3QzRDOTZERDFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDkxQUQ0NDgzNTAw
MzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLzsgfTsKIAkJN0M0Qzk2RTMxQUQ0NEFCRjAw
MzY1QTUwIC8qIExhdW5jaFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZFMjFBRDQ0QUJGMDAzNjVBNTAgLyogTGF1bmNoU2Vy
dmljZXNTUEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3QzRFREQ3NDFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0RURENzMxQTdCNjA3ODAwMTk4
QzREIC8qIEZvbnRDb2NvYS5tbSAqLzsgfTsKIAkJN0M1MjJENEIxNUI0NzdFODAwOUI3Qzk1IC8q
IEluc3BlY3Rvck92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M1MjJENDkxNUI0NzdFODAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXku
Y3BwICovOyB9OwpAQCAtOTMwNSw2ICs5MzA3LDggQEAKIAkJNTEwMzEwNTkxQkE4REIzMDAwMzMy
OUMwIC8qIElEQlJlcXVlc3RJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IElEQlJlcXVlc3RJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDMxMDVF
MUJBOEUwOTAwMDMzMjlDMCAvKiBJREJEYXRhYmFzZUlkZW50aWZpZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMzEwNUYxQkE4RTA5MDAwMzMyOUMwIC8qIElE
QkRhdGFiYXNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
REJEYXRhYmFzZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEw
NTRFMTYxQkQ2QTY1NzAwRDg3QUY5IC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwNTRFMTcx
QkQ2QTY1NzAwRDg3QUY5IC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDZEN0JCMThCREI3NkYwMDBBQjE2
NiAvKiBDb250ZXh0TWVudUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ29udGV4dE1lbnVDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEwNkQ3QkMxOEJEQjc2RjAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZXh0TWVudUNvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQTMyNkUxODMxODQzMTAwM0M1MzI2IC8qIElE
QlNlcnZlckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURC
U2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAxMTgs
MTEgKzEwMTIyLDExIEBACiAJCTdDNDhBNkNGMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1l
c3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0TmFtZXNwYWNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNDhBNkQyMTkxQzlEOEUwMDAyNjY3
NCAvKiBXZWJLaXROYW1lc3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdE5hbWVzcGFjZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1Jl
YWRhYmxlU3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
UmVhZGFibGVTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzRDOTZE
ODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dyaXRhYmxlU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVT
dHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVh
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzRDOTZEOTFBRDQ0ODM1MDAzNjVB
NjAgLyogSlNXcml0YWJsZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dyaXRhYmxlU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5
NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV3JpdGFibGVTdHJlYW0uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QzRDOTZEOTFBRDQ0ODM1MDAzNjVBNjAgLyog
SlNXcml0YWJsZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dy
aXRhYmxlU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkUyMUFE
NDRBQkYwMDM2NUE1MCAvKiBMYXVuY2hTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMYXVuY2hTZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QzRFREQ3MzFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udENvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzUyMkQ0OTE1QjQ3N0U4MDA5QjdDOTUgLyogSW5zcGVjdG9y
T3ZlcmxheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0
b3JPdmVybGF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzYyLDEzICsx
MTM2NiwxMiBAQAogCQk5OTA4QjBFQzFCQ0FDRjFGMDBFRDBGNjUgLyogZ2VuZXJhdGUtanMtYnVp
bHRpbnMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtanMt
YnVpbHRpbnMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBFRDFCQ0FDRjkx
MDBFRDBGNjUgLyogQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneS5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEVFMUJDQUNGOTEwMEVEMEY2NSAvKiBD
b3VudFF1ZXVpbmdTdHJhdGVneS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsg
cGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzLmpzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNTUgLyog
U3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OTA4QjBFRjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW0uanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbS5q
czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQwRjc1
IC8qIFdyaXRhYmxlU3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBw
YXRoID0gV3JpdGFibGVTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
MDhCMEYwMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhCMEYxMUJDQUNGOTEw
MEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFs
cy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFJlYWRhYmxlU3Ry
ZWFtSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGMjFC
Q0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1SZWFkZXIuanMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVJlYWRlci5qczsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQwRjc1IC8qIFdyaXRh
YmxlU3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gV3Jp
dGFibGVTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEYzMUJD
QUNGRkUwMEVEMEY2NSAvKiBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJh
dGVneUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjQx
QkNBQ0ZGRTAwRUQwRjY1IC8qIEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGluc1dyYXBw
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdT
dHJhdGVneUJ1aWx0aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
OTA4QjBGNTFCQ0FEMDdEMDBFRDBGNjUgLyogQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0
aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVMZW5ndGhRdWV1aW5n
U3RyYXRlZ3lCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzNzYs
MTQgKzExMzc5LDE1IEBACiAJCTk5MDhCMEY3MUJDQUQwN0QwMEVEMEY2NSAvKiBDb3VudFF1ZXVp
bmdTdHJhdGVneUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
dW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTkwOEIwRjgxQkNBRDA3RDAwRUQwRjY1IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRp
bnNXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50UXVldWlu
Z1N0cmF0ZWd5QnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk5MDhCMEY5MUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQnVpbHRp
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTA4QjBGOTFCQ0FEMDdEMDBF
RDBGNzUgLyogV3JpdGFibGVTdHJlYW1CdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkExQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlckJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkIxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk5MDhCMEZDMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXJCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5h
bHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJl
YW1JbnRlcm5hbHNCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
MDhCMEZEMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFt
SW50ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4
QjBGRTFCQ0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVJlYWRl
ckJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkYxQkNB
RDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjEwMDFCQ0FEMDdEMDBFRDBGNjUgLyog
UmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGluc1dyYXBwZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRjkxQkNBRDA3RDAwRUQwRjc1IC8qIFdy
aXRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV3JpdGFibGVTdHJlYW1CdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5MjAzOTgwMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlcklucHV0QnJpZGdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyMDM5ODExOEI5NUJDNjAwQjM5QUY5IC8q
IFVzZXJJbnB1dEJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2Vy
SW5wdXRCcmlkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDN0NDQjIxOEM2
NjNFNDAwMzJFNDEzIC8qIE1lbW9pemVkRE9NUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lbW9pemVkRE9NUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMTQyMSwxMiArMTE0MjUsMTIgQEAKIAkJOUFCMUYzN0UxOEUyNDg5QTAwNTM0NzQz
IC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QUIxRjM3RjE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIw
M0Q4MDYxQkIzMTEwRDAwQjc2NEM5IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCMDNEODA3MUJCMzExMEQwMEI3NjRDQSAvKiBT
dHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVh
bUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3Ry
ZWFtQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4MDYxQkIz
MTEwRDAwQjc2NEQ5IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlu
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0
RTggLyogV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTlCMDNEODA3MUJCMzExMEQwMEI3NjRDQSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlu
c1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyZWFtSW50ZXJu
YWxzQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNE
ODA3MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3Jh
cHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNzFCQjMxMTBEMDBC
NzY0REEgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlu
c1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUIwM0Q4MDYxQkIzMTEw
RDAwQjc2NEU4IC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5QjAzRDgwNzFCQjMxMTBEMDBCNzY0RTggLyogV3JpdGFibGVTdHJlYW1C
dWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFi
bGVTdHJlYW1CdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8qIFNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIgLyogSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE2NDAxLDcgKzE2NDA1LDYgQEAKIAkJCQk5OTA4QjBGMTFCQ0FDRjkxMDBF
RDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzLmpzICovLAogCQkJCTQxQTAyM0VEMUEzOURCNzkwMEY3
MjJERiAvKiBXcml0YWJsZVN0cmVhbS5pZGwgKi8sCiAJCQkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQw
Rjc1IC8qIFdyaXRhYmxlU3RyZWFtLmpzICovLAotCiAJCQkpOwogCQkJcGF0aCA9IHN0cmVhbXM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTY4MjIsNiArMTY4MjUsOCBAQAogCQkJ
CTUxMEE1OEYwMUJBQjcyMEYwMEMxOTI4MiAvKiBJREJTZXJ2ZXIuaCAqLywKIAkJCQk1MTg4NjRF
NDFCQkI0QjdFMDBFNTQwQzkgLyogSURCU2VydmVyT3BlcmF0aW9uLmNwcCAqLywKIAkJCQk1MTg4
NjRFNTFCQkI0QjdFMDBFNTQwQzkgLyogSURCU2VydmVyT3BlcmF0aW9uLmggKi8sCisJCQkJNTEw
NTRFMTYxQkQ2QTY1NzAwRDg3QUY5IC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNw
cCAqLywKKwkJCQk1MTA1NEUxNzFCRDZBNjU3MDBEODdBRjkgLyogTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24uaCAqLywKIAkJCQk1MUJBNEFDODFCQkM1QjlFMDBERjNENkQgLyogTWVtb3J5
SURCQmFja2luZ1N0b3JlLmNwcCAqLywKIAkJCQk1MUJBNEFDOTFCQkM1QjlFMDBERjNENkQgLyog
TWVtb3J5SURCQmFja2luZ1N0b3JlLmggKi8sCiAJCQkJNTE4ODY0REUxQkJBRjMwRjAwRTU0MEM5
IC8qIFVuaXF1ZUlEQkRhdGFiYXNlLmNwcCAqLywKQEAgLTI2NTM2LDYgKzI2NTQxLDcgQEAKIAkJ
CQlFNDQ2MTNBRDBDRDYzMzEwMDBGQURBNzUgLyogTWVkaWFFcnJvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNEUxOTU5MjIwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwN0E2RDFFQzE0OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVu
dFVSSVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEwNTRFMTkxQkQ2REVDOTAwRDg3QUY5
IC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEVBODAwRTBBMTk1MTZFMDBBOEVGNUYgLyogTWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwN0UzREZEMTFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc5MjE2NTUxQUE1NjBBQTAwQTNDMDQ5IC8qIE1lZGlhUGxheWJhY2tU
YXJnZXRDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk5NjgsNiArMjk5NzQsNyBAQAogCQkJ
CUIyRkEzREJDMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdDbG9zZVBhdGguY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEQkUwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY0Ficy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RDMDBBQjc1QTZG
MDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTUxMDU0RTE4MUJENkRFQzkwMEQ4N0FGOSAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RDMjBBQjc1QTZGMDAwRTVBQzQg
LyogSlNTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUIyRkEzREM0MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGhSZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEQzYwQUI3NUE2RjAwMEU1QUM0
IC8qIEpTU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263699</attachid>
            <date>2015-10-21 10:46:25 -0700</date>
            <delta_ts>2015-10-21 12:14:27 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>77270</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTlkMGU3Li45ZGNjNjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMTAt
MjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Zl
cnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJl
b3Blbi5odG1sOiBBZGRlZC4KKwogMjAxNS0xMC0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEhUTUxJRnJhbWVFbGVtZW50LnNhbmRib3ggc2hvdWxkIGJlIGEg
RE9NU2V0dGFibGVUb2tlbkxpc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFi
b3J0LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mYTY5NzgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTMgQEAKK0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQg
dmVyc2lvbiAtIDAgTmV3IHZlcnNpb24gLSAxCitBTEVSVDogSW5pdGlhbCB1cGdyYWRlIHZlcnNp
b25jaGFuZ2UgdHJhbnNhY3Rpb24gYWJvcnRlZAorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIG5lZWRl
ZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQorQUxFUlQ6IFNlY29uZCB1cGdyYWRl
IHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gY29tcGxldGUKK0FMRVJUOiBUaGlyZCB1cGdyYWRl
IG5lZWRlZDogT2xkIHZlcnNpb24gLSAxIE5ldyB2ZXJzaW9uIC0gMgorQUxFUlQ6IFRoaXJkIHVw
Z3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydGVkCitBTEVSVDogRm91cnRoIHVw
Z3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDEgTmV3IHZlcnNpb24gLSAyCitBTEVSVDogRG9u
ZQorVGhpcyB0ZXN0IG9wZW5zIGEgbmV3IGRhdGFiYXNlLCB0aGVuIGFib3J0cyB0aGUgdmVyc2lv
biBjaGFuZ2UgdHJhbnNhY3Rpb24uCitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtp
bmcgc3VyZSBpdCdzIGEgZGVmYXVsdCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2
ZXJzaW9uIHN1Y2Nlc3NmdWxseS4KK0l0IHRoZW4gcmVvcGVucyB0aGUgZGF0YWJhc2UsIHVwZ3Jh
ZGluZyBpdCdzIHZlcnNpb24uIEl0IGFib3J0cyB0aGlzIHZlcnNpb25jaGFuZ2UsIGFzIHdlbGwu
CitGaW5hbGx5IGl0IHJlb3BlbnMgdGhlIGRhdGFiYXNlIGFnYWluLCB1cGdyYWRpbmcgaXRzIHZl
cnNpb24sIG1ha2luZyBzdXJlIHRoaW5ncyBoYWQgcmV2ZXJ0ZWQgYmFjayB0byBiZWZvcmUgdGhl
IHNlY29uZCBhYm9ydGVkIHZlcnNpb25jaGFuZ2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5n
ZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmIwN2Y3ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sCkBAIC0wLDAg
KzEsMTE1IEBACitUaGlzIHRlc3Qgb3BlbnMgYSBuZXcgZGF0YWJhc2UsIHRoZW4gYWJvcnRzIHRo
ZSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbi48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRh
dGFiYXNlLCBtYWtpbmcgc3VyZSBpdCdzIGEgZGVmYXVsdCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBj
aGFuZ2VzIHRoZSB2ZXJzaW9uIHN1Y2Nlc3NmdWxseS48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhl
IGRhdGFiYXNlLCB1cGdyYWRpbmcgaXQncyB2ZXJzaW9uLiBJdCBhYm9ydHMgdGhpcyB2ZXJzaW9u
Y2hhbmdlLCBhcyB3ZWxsLjxicj4KK0ZpbmFsbHkgaXQgcmVvcGVucyB0aGUgZGF0YWJhc2UgYWdh
aW4sIHVwZ3JhZGluZyBpdHMgdmVyc2lvbiwgbWFraW5nIHN1cmUgdGhpbmdzIGhhZCByZXZlcnRl
ZCBiYWNrIHRvIGJlZm9yZSB0aGUgc2Vjb25kIGFib3J0ZWQgdmVyc2lvbmNoYW5nZS48YnI+Cis8
c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24g
ZG9uZSgpCit7CisgICAgYWxlcnQoIkRvbmUiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgY3JlYXRlUmVxdWVz
dCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNl
IiwgMSk7CisKK2NyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICBhbGVydCgiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsg
ZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7
CisKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlv
bjsKKyAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgdmVyc2lv
blRyYW5zYWN0aW9uLmFib3J0KCk7CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lv
bmNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydGVkIik7CisgICAgICAgIGNvbnRpbnVlVGVzdDEoKTsK
KyAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rp
b24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJJbml0aWFs
IHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGNvbXBsZXRlIik7
CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVy
c2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGVycm9yIiArIGV2ZW50KTsKKyAgICAg
ICAgZG9uZSgpOworICAgIH0KK30KKworZnVuY3Rpb24gY29udGludWVUZXN0MSgpCit7CisgICAg
Y3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiVmVyc2lvbkNoYW5nZUFib3J0
VGVzdERhdGFiYXNlIiwgMSk7CisKKyAgICBjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSBuZWVkZWQ6
IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiAr
IGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBj
cmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50
YXJnZXQucmVzdWx0OworCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0ID0gZnVu
Y3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9u
Y2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgYWJvcnQiKTsKKyAgICAgICAgICAgIGRvbmUo
KTsKKyAgICAgICAgfQorCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJz
aW9uY2hhbmdlIHRyYW5zYWN0aW9uIGNvbXBsZXRlIik7CisgICAgICAgICAgICBjb250aW51ZVRl
c3QyKCk7CisgICAgICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAg
ICAgICAgYWxlcnQoIlNlY29uZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5l
eHBlY3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0K
KyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdDIoKQoreworICAgIGNyZWF0ZVJlcXVl
c3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRlc3REYXRhYmFz
ZSIsIDIpOworCisgICAgY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
dmVudCkgeworICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9u
IC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1Zl
cnNpb24pOworCisgICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0
LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0
OworCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5hYm9ydCgpOworICAgIAorICAgICAgICB2
ZXJzaW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAg
ICBhbGVydCgiVGhpcmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQi
KTsKKyAgICAgICAgICAgIGNvbnRpbnVlVGVzdDMoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLmNs
b3NlKCk7CisgICAgICAgIH0KKworICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFkZSB2
ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgY29tcGxldGUiKTsKKyAgICAgICAg
ICAgIGRvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmVy
cm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGFsZXJ0KCJUaGlyZCB1cGdyYWRl
IHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVudCk7Cisg
ICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRp
bnVlVGVzdDMoKQoreworICAgIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4o
IlZlcnNpb25DaGFuZ2VBYm9ydFRlc3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRlUmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiRm91
cnRoIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsg
IiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKKyAgICAgICAgdmFyIGRhdGFi
YXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30KKwor
PC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA5NzZkOTdiLi4xNTRiNzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTA0LDYgKzkw
NCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlck9wZXJh
dGlvbi5jcHAKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24uY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJh
Y2tpbmdTdG9yZS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
Q29ubmVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZGUyYjNmLi5lYzE4ZjYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsOTQgQEAKKzIwMTUtMTAtMjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9y
dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDE0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVv
cGVuLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSW5kZXhlZERCLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEFib3J0
VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDbGllbnQ6OklEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkNsaWVudDo6SURCRGF0YWJhc2U6OmRpZENvbW1pdE9yQWJvcnRUcmFuc2FjdGlv
bik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5o
OgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNh
Y3Rpb25JbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rp
b246OklEQlRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJh
bnNhY3Rpb246OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNh
Y3Rpb246OmlzRmluaXNoZWRPckZpbmlzaGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGll
bnQ6OklEQlRyYW5zYWN0aW9uOjphY3RpdmF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9uOjpkaWRBYm9ydCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oOgorICAgICAgICAKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAg
ICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZEFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaDoKKyAgICAgICAgCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVt
b3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb246On5NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpj
b21taXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6aXNWZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6c2V0
RGF0YWJhc2VJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFj
a2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlv
bik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJh
c2U6OnN0YXJ0VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjb21t
aXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNhY3Rpb24pOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAg
ICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VD
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2VDb25uZWN0aW9uOjpkaWRBYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmg6CisgICAgICAg
IAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246Om9yaWdp
bmFsRGF0YWJhc2VJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbjo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmg6CisgICAgICAgIAorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppZGJFcnJvck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6aWRiRXJyb3JEZXNjcmlwdGlv
bik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmg6CisKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQWJvcnRUcmFuc2FjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rp
b24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2
ZXIuaDoKKwogMjAxNS0xMC0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEhUTUxJRnJhbWVFbGVtZW50LnNhbmRib3ggc2hvdWxkIGJlIGEgRE9NU2V0dGFibGVU
b2tlbkxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lu
ZGV4ZWREQi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgK
aW5kZXggN2ZjNTFkYS4uNTU4YmJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSW5kZXhlZERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSW5kZXhlZERCLmgKQEAgLTQzLDYgKzQzLDcgQEAgZW51bSBjbGFzcyBUcmFuc2FjdGlv
blN0YXRlIHsKICAgICBVbnN0YXJ0ZWQsCiAgICAgUnVubmluZywKICAgICBDb21taXR0aW5nLAor
ICAgIEFib3J0aW5nLAogICAgIEZpbmlzaGVkLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRv
U2VydmVyLmNwcAppbmRleCBhZTg3NDQyLi4xMzBkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcApAQCAtMTEzLDYgKzExMywyNiBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cgogICAgIHRyYW5zYWN0aW9uLT5kaWRDb21taXQoZXJyb3IpOwogfQogCit2b2lkIElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rp
b24pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRU
cmFuc2FjdGlvbiIpOworICAgIEFTU0VSVCghbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5jb250YWlu
cyh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKSk7CisgICAgbV9hYm9ydGluZ1RyYW5z
YWN0aW9ucy5zZXQodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgJnRyYW5zYWN0aW9u
KTsKKworICAgIGF1dG8gaWRlbnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVy
KCk7CisgICAgbV9kZWxlZ2F0ZS0+YWJvcnRUcmFuc2FjdGlvbihpZGVudGlmaWVyKTsKK30KKwor
dm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9y
JiBlcnJvcikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
aWRBYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9hYm9ydGlu
Z1RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgQVNTRVJUKHRy
YW5zYWN0aW9uKTsKKworICAgIHRyYW5zYWN0aW9uLT5kaWRBYm9ydChlcnJvcik7Cit9CisKIHZv
aWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24p
CiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZmlyZVZlcnNp
b25DaGFuZ2VFdmVudCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGNjNGUz
OTIuLmJiZmQyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTYxLDYgKzYx
LDkgQEAgcHVibGljOgogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24m
KTsKICAgICB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCisgICAgdm9p
ZCBhYm9ydFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CisgICAgdm9pZCBkaWRBYm9ydFRy
YW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJFcnJvciYpOworCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3Rl
ZFZlcnNpb24pOwogCiAgICAgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQoSURCRGF0YWJh
c2UmKTsKQEAgLTc1LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElEQlJlc291cmNl
SWRlbnRpZmllciwgUmVmUHRyPElEQkNsaWVudDo6SURCT3BlbkRCUmVxdWVzdD4+IG1fb3BlbkRC
UmVxdWVzdE1hcDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBJREJEYXRhYmFzZSo+IG1fZGF0YWJh
c2VDb25uZWN0aW9uTWFwOwogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQ
dHI8SURCVHJhbnNhY3Rpb24+PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAgSGFzaE1h
cDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWJvcnRp
bmdUcmFuc2FjdGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
VG9TZXJ2ZXJEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKaW5kZXggNTYwN2JiYi4uMTZkYWRj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAgLTQy
LDYgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVzdERhdGEm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5EYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZp
ZXImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNl
SWRlbnRpZmllciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xv
c2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0gMDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNl
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0
YWJhc2VJbXBsLmNwcAppbmRleCBhYWI2MzdlLi5lNjFmOWRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBs
LmNwcApAQCAtMTc1LDYgKzE3NSwxNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaWRDb21taXRUcmFu
c2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiAgICAgZGlkQ29tbWl0T3JBYm9y
dFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6YWJvcnRU
cmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKEluZGV4
ZWREQiwgIklEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHJlZlRy
YW5zYWN0aW9uID0gbV9hY3RpdmVUcmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCku
aWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlQocmVmVHJhbnNhY3Rpb24pOworICAgIG1fYWJvcnRp
bmdUcmFuc2FjdGlvbnMuc2V0KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIFdURjo6
bW92ZShyZWZUcmFuc2FjdGlvbikpOworCisgICAgbV9zZXJ2ZXJDb25uZWN0aW9uLT5hYm9ydFRy
YW5zYWN0aW9uKHRyYW5zYWN0aW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZTo6ZGlkQWJvcnRU
cmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIklEQkRhdGFiYXNlOjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CkBAIC0xODgsMTAgKzE5
OSwxMyBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaWRDb21taXRPckFib3J0VHJhbnNhY3Rpb24oSURC
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VUcmFuc2Fj
dGlvbiA9PSAmdHJhbnNhY3Rpb24pCiAgICAgICAgIG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
ID0gbnVsbHB0cjsKICAgICAKLSAgICBBU1NFUlQobV9hY3RpdmVUcmFuc2FjdGlvbnMuY29udGFp
bnModHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkgfHwgbV9jb21taXR0aW5nVHJhbnNh
Y3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKTsKKyAgICBB
U1NFUlQobV9hY3RpdmVUcmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5mbygpLmlk
ZW50aWZpZXIoKSkKKyAgICAgICAgfHwgbV9jb21taXR0aW5nVHJhbnNhY3Rpb25zLmNvbnRhaW5z
KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpCisgICAgICAgIHx8IG1fYWJvcnRpbmdU
cmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOwog
CiAgICAgbV9hY3RpdmVUcmFuc2FjdGlvbnMucmVtb3ZlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVu
dGlmaWVyKCkpOwogICAgIG1fY29tbWl0dGluZ1RyYW5zYWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rp
b24uaW5mbygpLmlkZW50aWZpZXIoKSk7CisgICAgbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5yZW1v
dmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgSURCRGF0YWJh
c2U6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRh
YmFzZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJE
YXRhYmFzZUltcGwuaAppbmRleCBiZjYwNDgxLi4yYmZiMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5o
CkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAgICBSZWY8SURCVHJhbnNhY3Rpb24+IHN0YXJ0
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogICAg
IHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKICAgICB2b2lkIGRpZENv
bW1pdFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CisgICAgdm9pZCBhYm9ydFRyYW5zYWN0
aW9uKElEQlRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKElEQlRy
YW5zYWN0aW9uJik7CiAKICAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3Qg
cmVxdWVzdGVkVmVyc2lvbik7CkBAIC05Niw2ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PElEQlRyYW5zYWN0aW9uPiBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbjsKICAgICBIYXNoTWFw
PElEQlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPElEQlRyYW5zYWN0aW9uPj4gbV9hY3RpdmVU
cmFuc2FjdGlvbnM7CiAgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJ
REJUcmFuc2FjdGlvbj4+IG1fY29tbWl0dGluZ1RyYW5zYWN0aW9uczsKKyAgICBIYXNoTWFwPElE
QlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPElEQlRyYW5zYWN0aW9uPj4gbV9hYm9ydGluZ1Ry
YW5zYWN0aW9uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNh
Y3Rpb25JbXBsLmNwcAppbmRleCBkOTM3YWFhLi41NDFlNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rp
b25JbXBsLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRPTUVycm9yLmgiCiAjaW5j
bHVkZSAiRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlSW1wbC5oIgorI2luY2x1
ZGUgIklEQkVycm9yLmgiCiAjaW5jbHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgiCiAjaW5jbHVk
ZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC01MSw4ICs1Miwx
MyBAQCBJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNl
LCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mCiAgICAgLCBtX29wZXJhdGlvblRpbWVyKCp0aGlz
LCAmSURCVHJhbnNhY3Rpb246Om9wZXJhdGlvblRpbWVyRmlyZWQpCiAKIHsKKyAgICBtX2FjdGl2
YXRpb25UaW1lciA9IHN0ZDo6bWFrZV91bmlxdWU8VGltZXI+KCp0aGlzLCAmSURCVHJhbnNhY3Rp
b246OmFjdGl2YXRpb25UaW1lckZpcmVkKTsKKyAgICBtX2FjdGl2YXRpb25UaW1lci0+c3RhcnRP
bmVTaG90KDApOworCisgICAgaWYgKG1faW5mby5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2Fj
dGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpCisgICAgICAgIG1fb3JpZ2luYWxEYXRhYmFzZUluZm8g
PSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4obV9kYXRhYmFzZS0+aW5mbygpKTsK
KwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwotICAgIHNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKTsK
ICAgICBtX3N0YXRlID0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpSdW5uaW5nOwogfQog
CkBAIC05MSw5ICs5NywxOCBAQCBSZWZQdHI8SURCT2JqZWN0U3RvcmU+IElEQlRyYW5zYWN0aW9u
OjpvYmplY3RTdG9yZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJgogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi12b2lkIElEQlRyYW5zYWN0aW9uOjphYm9ydChFeGNlcHRpb25Db2RlJikK
K3ZvaWQgSURCVHJhbnNhY3Rpb246OmFib3J0KEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6
YWJvcnQiKTsKKworICAgIGlmIChpc0ZpbmlzaGVkT3JGaW5pc2hpbmcoKSkgeworICAgICAgICBl
YyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9z
dGF0ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6QWJvcnRpbmc7CisKKyAgICBtX2Rh
dGFiYXNlLT5hYm9ydFRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAogY29uc3QgY2hhciogSURCVHJh
bnNhY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAtMTE2LDYgKzEzMSwxOSBA
QCBib29sIElEQlRyYW5zYWN0aW9uOjppc0FjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3Rh
dGUgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpSdW5uaW5nOwogfQogCitib29sIElE
QlRyYW5zYWN0aW9uOjppc0ZpbmlzaGVkT3JGaW5pc2hpbmcoKSBjb25zdAoreworICAgIHJldHVy
biBtX3N0YXRlID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6Q29tbWl0dGluZworICAg
ICAgICB8fCBtX3N0YXRlID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6QWJvcnRpbmcK
KyAgICAgICAgfHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkZpbmlz
aGVkOworfQorCit2b2lkIElEQlRyYW5zYWN0aW9uOjphY3RpdmF0aW9uVGltZXJGaXJlZCgpCit7
CisgICAgc2NoZWR1bGVPcGVyYXRpb25UaW1lcigpOworICAgIG1fYWN0aXZhdGlvblRpbWVyID0g
bnVsbHB0cjsKK30KKwogdm9pZCBJREJUcmFuc2FjdGlvbjo6c2NoZWR1bGVPcGVyYXRpb25UaW1l
cigpCiB7CiAgICAgaWYgKCFtX29wZXJhdGlvblRpbWVyLmlzQWN0aXZlKCkpCkBAIC0xNTEsNiAr
MTc5LDIwIEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmNvbW1pdCgpCiAgICAgbV9kYXRhYmFzZS0+
Y29tbWl0VHJhbnNhY3Rpb24oKnRoaXMpOwogfQogCit2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRB
Ym9ydChjb25zdCBJREJFcnJvciYgZXJyb3IpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQlRy
YW5zYWN0aW9uOjpkaWRBYm9ydCIpOworCisgICAgQVNTRVJUKG1fc3RhdGUgPT0gSW5kZXhlZERC
OjpUcmFuc2FjdGlvblN0YXRlOjpBYm9ydGluZyB8fCBtX3N0YXRlID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25TdGF0ZTo6UnVubmluZyk7CisKKyAgICBtX2RhdGFiYXNlLT5kaWRBYm9ydFRyYW5z
YWN0aW9uKCp0aGlzKTsKKworICAgIG1faWRiRXJyb3IgPSBlcnJvcjsKKyAgICBmaXJlT25BYm9y
dCgpOworCisgICAgbV9zdGF0ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6RmluaXNo
ZWQ7Cit9CisKIHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZENvbW1pdChjb25zdCBJREJFcnJvciYg
ZXJyb3IpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpkaWRDb21taXQi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJUcmFuc2FjdGlvbkltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJUcmFuc2FjdGlvbkltcGwuaAppbmRleCAwZDM2MDZjLi4wNzJjMjhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rp
b25JbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QlRyYW5zYWN0aW9uSW1wbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQkRhdGFiYXNlSW5mby5oIgogI2luY2x1ZGUgIklE
QkVycm9yLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJJREJUcmFu
c2FjdGlvbkluZm8uaCIKQEAgLTY4LDE2ICs2OSwxOSBAQCBwdWJsaWM6CiAgICAgSURCRGF0YWJh
c2UmIGRhdGFiYXNlKCkgeyByZXR1cm4gbV9kYXRhYmFzZS5nZXQoKTsgfQogICAgIGNvbnN0IElE
QkRhdGFiYXNlJiBkYXRhYmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2UuZ2V0KCk7IH0K
IAorICAgIHZvaWQgZGlkQWJvcnQoY29uc3QgSURCRXJyb3ImKTsKICAgICB2b2lkIGRpZENvbW1p
dChjb25zdCBJREJFcnJvciYpOwogCiBwcml2YXRlOgogICAgIElEQlRyYW5zYWN0aW9uKElEQkRh
dGFiYXNlJiwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJik7CiAKICAgICBib29sIGlzQWN0aXZl
KCkgY29uc3Q7CisgICAgYm9vbCBpc0ZpbmlzaGVkT3JGaW5pc2hpbmcoKSBjb25zdDsKICAgICB2
b2lkIGNvbW1pdCgpOwogCiAgICAgdm9pZCBzY2hlZHVsZU9wZXJhdGlvblRpbWVyKCk7CiAgICAg
dm9pZCBvcGVyYXRpb25UaW1lckZpcmVkKCk7CisgICAgdm9pZCBhY3RpdmF0aW9uVGltZXJGaXJl
ZCgpOwogCiAgICAgdm9pZCBmaXJlT25Db21wbGV0ZSgpOwogICAgIHZvaWQgZmlyZU9uQWJvcnQo
KTsKQEAgLTg1LDExICs4OSwxMyBAQCBwcml2YXRlOgogCiAgICAgUmVmPElEQkRhdGFiYXNlPiBt
X2RhdGFiYXNlOwogICAgIElEQlRyYW5zYWN0aW9uSW5mbyBtX2luZm87CisgICAgc3RkOjp1bmlx
dWVfcHRyPElEQkRhdGFiYXNlSW5mbz4gbV9vcmlnaW5hbERhdGFiYXNlSW5mbzsKIAogICAgIElu
ZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZSBtX3N0YXRlIHsgSW5kZXhlZERCOjpUcmFuc2FjdGlv
blN0YXRlOjpVbnN0YXJ0ZWQgfTsKICAgICBJREJFcnJvciBtX2lkYkVycm9yOwogCiAgICAgVGlt
ZXIgbV9vcGVyYXRpb25UaW1lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IG1fYWN0aXZh
dGlvblRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3Jl
LmgKaW5kZXggYTVhNDhjMS4uNmZmMWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaApAQCAtMjksOCAr
MjksMTMgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogI2luY2x1ZGUgIklEQkRh
dGFiYXNlSW5mby5oIgorI2luY2x1ZGUgIklEQkVycm9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSURCUmVzb3VyY2VJZGVudGlmaWVyOworY2xhc3MgSURCVHJhbnNhY3Rpb25J
bmZvOworCiBuYW1lc3BhY2UgSURCU2VydmVyIHsKIAogY2xhc3MgSURCQmFja2luZ1N0b3JlIHsK
QEAgLTM4LDYgKzQzLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJCYWNraW5nU3RvcmUo
KSB7IH0KIAogICAgIHZpcnR1YWwgY29uc3QgSURCRGF0YWJhc2VJbmZvJiBnZXRPckVzdGFibGlz
aERhdGFiYXNlSW5mbygpID0gMDsKKworICAgIHZpcnR1YWwgSURCRXJyb3IgYmVnaW5UcmFuc2Fj
dGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJv
ciBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJvciBjb21taXRUcmFuc2FjdGlv
bihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgPSAw
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwCmluZGV4IDRjZjM2ZjcuLjM0YTAxZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9u
VG9DbGllbnQuY3BwCkBAIC01OCw2ICs1OCwxMSBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkT3BlbkRhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkKICAgICBtX2Rl
bGVnYXRlLT5kaWRPcGVuRGF0YWJhc2UocmVzdWx0KTsKIH0KIAordm9pZCBJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAgICBt
X2RlbGVnYXRlLT5kaWRBYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgZXJy
b3IpOworfQorCiB2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ29tbWl0VHJhbnNhY3Rp
b24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNv
bnN0IElEQkVycm9yJiBlcnJvcikKIHsKICAgICBtX2RlbGVnYXRlLT5kaWRDb21taXRUcmFuc2Fj
dGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9D
bGllbnQuaAppbmRleCAxZjBlNTM0Li5lM2RmOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkRGVsZXRlRGF0
YWJhc2UoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkT3BlbkRhdGFiYXNlKGNv
bnN0IElEQlJlc3VsdERhdGEmKTsKKyAgICB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVy
cm9yJik7CiAgICAgdm9pZCBkaWRDb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKIAogICAg
IHZvaWQgZmlyZVZlcnNpb25DaGFuZ2VFdmVudChVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24m
LCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25U
b0NsaWVudERlbGVnYXRlLmgKaW5kZXggMjhlY2NiMi4uZWViOGUxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVu
dERlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERh
dGEmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBJREJSZXN1
bHREYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJF
cnJvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVy
cm9yJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmNwcAppbmRleCA0NWUxNmZlLi4zMGRlYzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtMTQyLDYg
KzE0MiwyMCBAQCB2b2lkIElEQlNlcnZlcjo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgSURCUmVxdWVz
dERhdGEmIHJlcXVlc3REYXRhKQogICAgIGNvbm5lY3Rpb24tPmRpZERlbGV0ZURhdGFiYXNlKHJl
c3VsdCk7CiB9CiAKK3ZvaWQgSURCU2VydmVyOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQoreworICAgIExPRyhJbmRl
eGVkREIsICJJREJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24iKTsKKworICAgIGF1dG8gdHJhbnNh
Y3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBp
ZiAoIXRyYW5zYWN0aW9uKSB7CisgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIHRyYW5zYWN0aW9u
IHRoZXJlIGlzIG5vdGhpbmcgdG8gYWJvcnQuCisgICAgICAgIC8vIFdlIGFsc28gaGF2ZSBubyBh
Y2Nlc3MgdG8gYSBjb25uZWN0aW9uIG92ZXIgd2hpY2ggdG8gbWVzc2FnZSBmYWlsdXJlLXRvLWFi
b3J0LgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7
Cit9CisKIHZvaWQgSURCU2VydmVyOjpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBMT0coSW5kZXhlZERC
LCAiSURCU2VydmVyOjpjb21taXRUcmFuc2FjdGlvbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IGYwN2U4N2QuLjA2
MWE0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIC8vIE9wZXJhdGlv
bnMgcmVxdWVzdGVkIGJ5IHRoZSBjbGllbnQuCiAgICAgdm9pZCBvcGVuRGF0YWJhc2UoY29uc3Qg
SURCUmVxdWVzdERhdGEmKTsKICAgICB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVl
c3REYXRhJik7CisgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYpOwogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJik7CiAgICAgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmVjMmEzZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCkBAIC0wLDAg
KzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24uaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSW5kZXhl
ZERCLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lbW9yeUlEQkJhY2tpbmdT
dG9yZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgSURCU2VydmVyIHsKKwor
c3RkOjp1bmlxdWVfcHRyPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPiBNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbjo6Y3JlYXRlKE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYgYmFja2lu
Z1N0b3JlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCit7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+KGJhY2tpbmdTdG9y
ZSwgaW5mbyk7Cit9CisKK01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbihNZW1vcnlJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSwg
Y29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQorICAgIDogbV9iYWNraW5nU3RvcmUoYmFj
a2luZ1N0b3JlKQorICAgICwgbV9pbmZvKGluZm8pCit7CisgICAgaWYgKG1faW5mby5tb2RlKCkg
PT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpCisgICAgICAgIG1f
b3JpZ2luYWxEYXRhYmFzZUluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4o
bV9iYWNraW5nU3RvcmUuZ2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oKSk7Cit9CisKK01lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjp+TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24o
KQoreworICAgIEFTU0VSVCghbV9pblByb2dyZXNzKTsKK30KKwordm9pZCBNZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbjo6YWJvcnQoKQoreworICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6YWJvcnQoKSIpOworCisgICAgaWYgKG1fb3JpZ2luYWxE
YXRhYmFzZUluZm8pIHsKKyAgICAgICAgQVNTRVJUKG1faW5mby5tb2RlKCkgPT0gSW5kZXhlZERC
OjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpOworICAgICAgICBtX2JhY2tpbmdTdG9y
ZS5zZXREYXRhYmFzZUluZm8oKm1fb3JpZ2luYWxEYXRhYmFzZUluZm8pOworICAgIH0KKworICAg
IG1faW5Qcm9ncmVzcyA9IGZhbHNlOworfQorCit2b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uOjpjb21taXQoKQoreworICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbjo6Y29tbWl0KCkiKTsKKworICAgIG1faW5Qcm9ncmVzcyA9IGZhbHNlOwor
fQorCit9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yYTE3NDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgKQEAgLTAsMCArMSw2
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb25faAorI2RlZmluZSBNZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbl9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2lu
Y2x1ZGUgIklEQkRhdGFiYXNlSW5mby5oIgorI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uSW5mby5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgSURCU2VydmVyIHsKKworY2xhc3Mg
TWVtb3J5SURCQmFja2luZ1N0b3JlOworCitjbGFzcyBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbiB7CisgICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbj4gc3RkOjptYWtlX3VuaXF1ZTxNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbj4o
TWVtb3J5SURCQmFja2luZ1N0b3JlJiwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJik7CitwdWJs
aWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbj4gY3JlYXRlKE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9u
SW5mbyYpOworCisgICAgfk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCk7CisKKyAgICBi
b29sIGlzVmVyc2lvbkNoYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5tb2RlKCkgPT0gSW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2U7IH0KKworICAgIGNvbnN0IElE
QkRhdGFiYXNlSW5mbyYgb3JpZ2luYWxEYXRhYmFzZUluZm8oKSBjb25zdDsKKworICAgIHZvaWQg
YWJvcnQoKTsKKyAgICB2b2lkIGNvbW1pdCgpOworCitwcml2YXRlOgorICAgIE1lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uKE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYsIGNvbnN0IElEQlRyYW5z
YWN0aW9uSW5mbyYpOworCisgICAgTWVtb3J5SURCQmFja2luZ1N0b3JlJiBtX2JhY2tpbmdTdG9y
ZTsKKyAgICBJREJUcmFuc2FjdGlvbkluZm8gbV9pbmZvOworCisgICAgc3RkOjp1bmlxdWVfcHRy
PElEQkRhdGFiYXNlSW5mbz4gbV9vcmlnaW5hbERhdGFiYXNlSW5mbzsKKworICAgIGJvb2wgbV9p
blByb2dyZXNzIHsgdHJ1ZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KyNlbmRpZiAvLyBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJ
REJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGIwNzQyMDcuLmFhZTA2N2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKQEAgLTUzLDYgKzU1LDUzIEBAIGNvbnN0IElE
QkRhdGFiYXNlSW5mbyYgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRPckVzdGFibGlzaERhdGFi
YXNlSW5mbygpCiAgICAgcmV0dXJuICptX2RhdGFiYXNlSW5mbzsKIH0KIAordm9pZCBNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OnNldERhdGFiYXNlSW5mbyhjb25zdCBJREJEYXRhYmFzZUluZm8mIGlu
Zm8pCit7CisgICAgLy8gSXQgaXMgbm90IHZhbGlkIHRvIGRpcmVjdGx5IHNldCBkYXRhYmFzZSBp
bmZvIG9uIGEgYmFja2luZyBzdG9yZSB0aGF0IGhhc24ndCBhbHJlYWR5IHNldCBpdHMgb3duIGRh
dGFiYXNlIGluZm8uCisgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKKworICAgIG1fZGF0YWJh
c2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KGluZm8pOworfQorCitJ
REJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURC
VHJhbnNhY3Rpb25JbmZvJiBpbmZvKQoreworICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJC
YWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24iKTsKKworICAgIGlmIChtX3RyYW5zYWN0aW9u
cy5jb250YWlucyhpbmZvLmlkZW50aWZpZXIoKSkpCisgICAgICAgIHJldHVybiBJREJFcnJvcihJ
REJFeGNlcHRpb25Db2RlOjpJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQg
dG8gY3JlYXRlIHRyYW5zYWN0aW9uIGl0IGFscmVhZHkgaGFzIGEgcmVjb3JkIG9mIik7CisKKyAg
ICBhdXRvIHRyYW5zYWN0aW9uID0gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0
ZSgqdGhpcywgaW5mbyk7CisgICAgbV90cmFuc2FjdGlvbnMuc2V0KGluZm8uaWRlbnRpZmllcigp
LCBXVEY6Om1vdmUodHJhbnNhY3Rpb24pKTsKKworICAgIHJldHVybiBJREJFcnJvcigpOworfQor
CitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24oY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCit7CisgICAgTE9H
KEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlvbiIpOwor
CisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25J
ZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQorICAgICAgICByZXR1cm4gSURCRXJy
b3IoSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGFz
a2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBvZiIpOworCisg
ICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CisKKyAgICByZXR1cm4gSURCRXJyb3IoKTsKK30KKwor
SURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbihjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBMT0co
SW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbiIpOwor
CisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25J
ZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQorICAgICAgICByZXR1cm4gSURCRXJy
b3IoSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGFz
a2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2ZSByZWNvcmQgb2YiKTsKKwor
ICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKworICAgIHJldHVybiBJREJFcnJvcigpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlE
QkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDg3NjJkZTQuLjI1NDk5ZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNr
aW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SURCQmFja2luZ1N0b3JlLmgKQEAgLTMwLDYgKzMwLDkgQEAKIAogI2luY2x1ZGUgIklE
QkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIElEQlNlcnZlciB7CkBAIC00MiwxMiArNDUsMjAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfk1lbW9yeUlEQkJhY2tpbmdTdG9yZSgpIG92ZXJyaWRlIGZpbmFs
OwogCiAgICAgdmlydHVhbCBjb25zdCBJREJEYXRhYmFzZUluZm8mIGdldE9yRXN0YWJsaXNoRGF0
YWJhc2VJbmZvKCkgb3ZlcnJpZGUgZmluYWw7Ci0gICAgCisgICAgdm9pZCBzZXREYXRhYmFzZUlu
Zm8oY29uc3QgSURCRGF0YWJhc2VJbmZvJik7CisKKyAgICB2aXJ0dWFsIElEQkVycm9yIGJlZ2lu
VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJikgb3ZlcnJpZGUgZmluYWw7Cisg
ICAgdmlydHVhbCBJREJFcnJvciBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0
dWFsIElEQkVycm9yIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKKwogcHJpdmF0ZToKICAg
ICBNZW1vcnlJREJCYWNraW5nU3RvcmUoY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAK
ICAgICBJREJEYXRhYmFzZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxJREJEYXRhYmFzZUluZm8+IG1fZGF0YWJhc2VJbmZvOworCisgICAgSGFzaE1hcDxJREJS
ZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbj4+IG1fdHJhbnNhY3Rpb25zOworCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJTZXJ2
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDg3N2Y0ZGQuLjkyNmRhYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiSURC
UmVzdWx0RGF0YS5oIgogI2luY2x1ZGUgIklEQlNlcnZlci5oIgorI2luY2x1ZGUgIklEQlRyYW5z
YWN0aW9uSW5mby5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJVbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtMTU2
LDExICsxNTcsMTggQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6c3RhcnRWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24oKQogICAgIGFkZE9wZW5EYXRhYmFzZUNvbm5lY3Rpb24oKm1fdmVyc2lvbkNo
YW5nZURhdGFiYXNlQ29ubmVjdGlvbik7CiAKICAgICBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
biA9ICZtX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24tPmNyZWF0ZVZlcnNpb25DaGFu
Z2VUcmFuc2FjdGlvbihyZXF1ZXN0ZWRWZXJzaW9uKTsKKyAgICBtX3NlcnZlci5wb3N0RGF0YWJh
c2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpi
ZWdpblRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUsIG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
LT5pbmZvKCkpKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gSURCUmVzdWx0RGF0YTo6b3BlbkRhdGFi
YXNlVXBncmFkZU5lZWRlZChvcGVyYXRpb24tPnJlcXVlc3REYXRhKCkucmVxdWVzdElkZW50aWZp
ZXIoKSwgKm1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKTsKICAgICBvcGVyYXRpb24tPmNvbm5l
Y3Rpb24oKS5kaWRPcGVuRGF0YWJhc2UocmVzdWx0KTsKIH0KIAordm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlKGNvbnN0IElEQlRyYW5zYWN0aW9u
SW5mbyYgaW5mbykKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiKGRiKSBVbmlxdWVJREJEYXRhYmFz
ZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlIik7CisgICAgbV9iYWNraW5nU3RvcmUt
PmJlZ2luVHJhbnNhY3Rpb24oaW5mbyk7Cit9CisKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om5v
dGlmeUNvbm5lY3Rpb25zT2ZWZXJzaW9uQ2hhbmdlKCkKIHsKICAgICBBU1NFUlQobV92ZXJzaW9u
Q2hhbmdlT3BlcmF0aW9uKTsKQEAgLTIxNCw2ICsyMjIsOCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFu
c2FjdAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIiht
YWluKSBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24iKTsKIAorICAgIEFTU0VS
VCgmdHJhbnNhY3Rpb24uZGF0YWJhc2VDb25uZWN0aW9uKCkuZGF0YWJhc2UoKSA9PSB0aGlzKTsK
KwogICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9PSAmdHJhbnNhY3Rpb24pIHsK
ICAgICAgICAgQVNTRVJUKCZtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25u
ZWN0aW9uKCkgPT0gbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uKTsKICAgICAgICAg
bV9kYXRhYmFzZUluZm8tPnNldFZlcnNpb24odHJhbnNhY3Rpb24uaW5mbygpLm5ld1ZlcnNpb24o
KSk7CkBAIC0yMjUsMTYgKzIzNSwxMyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRU
cmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIG1f
c2VydmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5p
cXVlSURCRGF0YWJhc2U6OnBlcmZvcm1Db21taXRUcmFuc2FjdGlvbiwgY2FsbGJhY2tJRCwgdHJh
bnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVy
LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7CiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1Db21taXRUcmFuc2FjdGlvbiIpOwogCi0gICAgLy8gRklYTUU6
IENvbW1pdCB0cmFuc2FjdGlvbiBpbiBiYWNraW5nIHN0b3JlLCBvbmNlIHRoYXQgZXhpc3RzLgot
Ci0gICAgSURCRXJyb3IgZXJyb3I7CisgICAgSURCRXJyb3IgZXJyb3IgPSBtX2JhY2tpbmdTdG9y
ZS0+Y29tbWl0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBtX3NlcnZl
ci5wb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5p
cXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbiwgY2FsbGJhY2tJZGVu
dGlmaWVyLCBlcnJvcikpOwotCiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZv
cm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElE
QkVycm9yJiBlcnJvcikKQEAgLTI0Miw2ICsyNDksNDggQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmll
ciwKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIsICIobWFp
bikgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbiIpOwogCisg
ICAgLy8gUHJldmlvdXNseSBibG9ja2VkIHRyYW5zYWN0aW9ucyBtaWdodCBub3cgYmUgdW5ibG9j
a2VkLgorICAgIGludm9rZVRyYW5zYWN0aW9uU2NoZWR1bGVyKCk7CisKKyAgICBwZXJmb3JtRXJy
b3JDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yKTsKK30KKwordm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbiwgRXJyb3JDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJh
c2U6OmFib3J0VHJhbnNhY3Rpb24iKTsKKworICAgIEFTU0VSVCgmdHJhbnNhY3Rpb24uZGF0YWJh
c2VDb25uZWN0aW9uKCkuZGF0YWJhc2UoKSA9PSB0aGlzKTsKKworICAgIGlmIChtX3ZlcnNpb25D
aGFuZ2VUcmFuc2FjdGlvbiA9PSAmdHJhbnNhY3Rpb24pIHsKKyAgICAgICAgQVNTRVJUKCZtX3Zl
cnNpb25DaGFuZ2VUcmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25uZWN0aW9uKCkgPT0gbV92ZXJzaW9u
Q2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uKTsKKyAgICAgICAgQVNTRVJUKHRyYW5zYWN0aW9uLm9y
aWdpbmFsRGF0YWJhc2VJbmZvKCkpOworICAgICAgICBtX2RhdGFiYXNlSW5mbyA9IHN0ZDo6bWFr
ZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPigqdHJhbnNhY3Rpb24ub3JpZ2luYWxEYXRhYmFzZUlu
Zm8oKSk7CisgICAgICAgIG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICB9
CisKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFjayhjYWxsYmFjayk7Cisg
ICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMs
ICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24sIGNhbGxiYWNrSUQs
IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKTsKK30KKwordm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlm
aWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikK
K3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAiKGRi
KSBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24iKTsKKworICAgIElE
QkVycm9yIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rp
b25JZGVudGlmaWVyKTsKKyAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRl
Q3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1BYm9y
dFRyYW5zYWN0aW9uLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yKSk7Cit9CisKK3ZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxi
YWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNhY3Rpb24iKTsKKworICAgIC8vIFByZXZpb3VzbHkgYmxv
Y2tlZCB0cmFuc2FjdGlvbnMgbWlnaHQgbm93IGJlIHVuYmxvY2tlZC4KKyAgICBpbnZva2VUcmFu
c2FjdGlvblNjaGVkdWxlcigpOworCiAgICAgcGVyZm9ybUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJ
ZGVudGlmaWVyLCBlcnJvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggZjYyNWMw
OC4uZWZmYTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJFcnJvcjsKIGNsYXNzIElEQlJlcXVlc3REYXRh
OworY2xhc3MgSURCVHJhbnNhY3Rpb25JbmZvOwogCiBuYW1lc3BhY2UgSURCU2VydmVyIHsKIApA
QCAtNjUsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgSURCU2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVy
biBtX3NlcnZlcjsgfQogCiAgICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxsYmFjayk7CisgICAgdm9pZCBhYm9ydFRyYW5zYWN0
aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBFcnJvckNhbGxiYWNrKTsKICAgICB2
b2lkIHRyYW5zYWN0aW9uRGVzdHJveWVkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mKTsK
ICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KFVuaXF1ZUlEQkRhdGFiYXNlQ29u
bmVjdGlvbiYpOwogCkBAIC04MywxMCArODUsMTMgQEAgcHJpdmF0ZToKICAgICAvLyBEYXRhYmFz
ZSB0aHJlYWQgb3BlcmF0aW9ucwogICAgIHZvaWQgb3BlbkJhY2tpbmdTdG9yZShjb25zdCBJREJE
YXRhYmFzZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIHBlcmZvcm1BYm9ydFRyYW5zYWN0aW9u
KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOworICAgIHZvaWQgYmVnaW5UcmFuc2FjdGlvbkluQmFj
a2luZ1N0b3JlKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogCiAgICAgLy8gTWFpbiB0aHJl
YWQgY2FsbGJhY2tzCiAgICAgdm9pZCBkaWRPcGVuQmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFi
YXNlSW5mbyYpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90
IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKKyAgICB2b2lkIGRpZFBlcmZv
cm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURC
RXJyb3ImKTsKIAogICAgIHZvaWQgcGVyZm9ybUVycm9yQ2FsbGJhY2sodWludDY0X3QgY2FsbGJh
Y2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24uY3BwCmluZGV4IDJiMGJiYzYuLjQzMzUxYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCkBAIC05Myw2ICs5MywxOCBAQCBV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246
OmNyZWF0ZVZlcnNpb25DaGFuZ2VUcgogICAgIHJldHVybiB0cmFuc2FjdGlvbi5nZXQoKTsKIH0K
IAordm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZEFib3J0VHJhbnNhY3Rpb24o
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGNvbnN0IElEQkVycm9y
JiBlcnJvcikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uOjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCk7CisKKyAgICBBU1NFUlQobV90
cmFuc2FjdGlvbk1hcC5jb250YWlucyh0cmFuc2FjdGlvbklkZW50aWZpZXIpKTsKKyAgICBtX3Ry
YW5zYWN0aW9uTWFwLnJlbW92ZSh0cmFuc2FjdGlvbklkZW50aWZpZXIpOworCisgICAgbV9jb25u
ZWN0aW9uVG9DbGllbnQuZGlkQWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGVycm9yKTsKK30KKwogdm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZENvbW1p
dFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBj
b25zdCBJREJFcnJvciYgZXJyb3IpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbjo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaAppbmRleCA2ZWU4ZTdmLi4xZjUwZTdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oCkBAIC02Miw2ICs2Miw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgcmVxdWVzdGVk
VmVyc2lvbik7CiAgICAgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgY3JlYXRlVmVyc2lv
bkNoYW5nZVRyYW5zYWN0aW9uKHVpbnQ2NF90IG5ld1ZlcnNpb24pOwogCisgICAgdm9pZCBkaWRB
Ym9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBJREJF
cnJvciYpOwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbiYsIGNvbnN0IElEQkVycm9yJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAKaW5kZXggYzhiMmZkZS4uYjYzYWVjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcApAQCAtNDQs
NiArNDQsOSBAQCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpVbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubgogICAgIDogbV9kYXRhYmFzZUNvbm5l
Y3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1fdHJhbnNhY3Rpb25JbmZvKGluZm8pCiB7CisgICAg
aWYgKG1fdHJhbnNhY3Rpb25JbmZvLm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9k
ZTo6VmVyc2lvbkNoYW5nZSkKKyAgICAgICAgbV9vcmlnaW5hbERhdGFiYXNlSW5mbyA9IHN0ZDo6
bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPihtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGF0YWJh
c2UoKS5pbmZvKCkpOworCiAgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNlKCkuc2Vy
dmVyKCkucmVnaXN0ZXJUcmFuc2FjdGlvbigqdGhpcyk7CiB9CiAKQEAgLTUzLDYgKzU2LDIzIEBA
IFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246On5VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uKCkKICAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGF0YWJhc2UoKS5zZXJ2ZXIoKS51bnJl
Z2lzdGVyVHJhbnNhY3Rpb24oKnRoaXMpOwogfQogCitJREJEYXRhYmFzZUluZm8qIFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb246Om9yaWdpbmFsRGF0YWJhc2VJbmZvKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQobV90cmFuc2FjdGlvbkluZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rp
b25Nb2RlOjpWZXJzaW9uQ2hhbmdlKTsKKyAgICByZXR1cm4gbV9vcmlnaW5hbERhdGFiYXNlSW5m
by5nZXQoKTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjphYm9ydCgp
Cit7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmFi
b3J0Iik7CisKKyAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbj4gc2VsZih0
aGlzKTsKKyAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGF0YWJhc2UoKS5hYm9ydFRyYW5zYWN0
aW9uKCp0aGlzLCBbdGhpcywgc2VsZl0oY29uc3QgSURCRXJyb3ImIGVycm9yKSB7CisgICAgICAg
IExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjphYm9ydCAoY2Fs
bGJhY2spIik7CisgICAgICAgIG1fZGF0YWJhc2VDb25uZWN0aW9uLT5kaWRBYm9ydFRyYW5zYWN0
aW9uKCp0aGlzLCBlcnJvcik7CisgICAgfSk7Cit9CisKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbjo6Y29tbWl0KCkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbjo6Y29tbWl0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb24uaAppbmRleCBiMmNhY2NhLi5iZTM5NTZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmgKQEAgLTM0LDYgKzM0LDkgQEAKICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkRhdGFi
YXNlSW5mbzsKKwogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKIGNsYXNzIFVuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbjsKQEAgLTQ3LDYgKzUwLDkgQEAgcHVibGljOgogICAgIFVuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbiYgZGF0YWJhc2VDb25uZWN0aW9uKCkgeyByZXR1cm4gbV9kYXRhYmFz
ZUNvbm5lY3Rpb24uZ2V0KCk7IH0KICAgICBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8o
KSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uSW5mbzsgfQogCisgICAgSURCRGF0YWJhc2VJ
bmZvKiBvcmlnaW5hbERhdGFiYXNlSW5mbygpIGNvbnN0OworCisgICAgdm9pZCBhYm9ydCgpOwog
ICAgIHZvaWQgY29tbWl0KCk7CiAKIHByaXZhdGU6CkBAIC01NCw2ICs2MCw4IEBAIHByaXZhdGU6
CiAKICAgICBSZWY8VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uPiBtX2RhdGFiYXNlQ29ubmVj
dGlvbjsKICAgICBJREJUcmFuc2FjdGlvbkluZm8gbV90cmFuc2FjdGlvbkluZm87CisKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX29yaWdpbmFsRGF0YWJhc2VJbmZvOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmNwcAppbmRleCA5NzMzM2Y2Li44YTg3
NWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJFcnJvci5jcHAKQEAgLTQzLDYgKzQzLDEwIEBAIHN0YXRpYyBjb25zdCBTdHJpbmcmIGlk
YkVycm9yTmFtZShJREJFeGNlcHRpb25Db2RlIGNvZGUpCiAgICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJWZXJzaW9uRXJyb3IiKTsKICAg
ICAgICAgcmV0dXJuIGVudHJ5OwogICAgIH0KKyAgICBjYXNlIElEQkV4Y2VwdGlvbkNvZGU6Oklu
dmFsaWRTdGF0ZUVycm9yOiB7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJJbnZhbGlkU3RhdGVFcnJvciIpOworICAgICAgICByZXR1
cm4gZW50cnk7CisgICAgfQogICAgIGNhc2UgSURCRXhjZXB0aW9uQ29kZTo6Tm9uZToKICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC01NCwxMyArNTgsMTcg
QEAgc3RhdGljIGNvbnN0IFN0cmluZyYgaWRiRXJyb3JEZXNjcmlwdGlvbihJREJFeGNlcHRpb25D
b2RlIGNvZGUpCiB7CiAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgY2FzZSBJREJFeGNlcHRpb25D
b2RlOjpVbmtub3duOiB7Ci0gICAgICAgIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50cnkgPSBB
U0NJSUxpdGVyYWwoIk9wZXJhdGlvbiBmYWlsZWQgZm9yIHJlYXNvbnMgdW5yZWxhdGVkIHRvIHRo
ZSBkYXRhYmFzZSBpdHNlbGYgYW5kIG5vdCBjb3ZlcmVkIGJ5IGFueSBvdGhlciBlcnJvcnMuIik7
CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGVudHJ5ID0gQVNDSUlMaXRl
cmFsKCJPcGVyYXRpb24gZmFpbGVkIGZvciByZWFzb25zIHVucmVsYXRlZCB0byB0aGUgZGF0YWJh
c2UgaXRzZWxmIGFuZCBub3QgY292ZXJlZCBieSBhbnkgb3RoZXIgZXJyb3JzLiIpOwogICAgICAg
ICByZXR1cm4gZW50cnkuZ2V0KCk7CiAgICAgfQogICAgIGNhc2UgSURCRXhjZXB0aW9uQ29kZTo6
VmVyc2lvbkVycm9yOiB7Ci0gICAgICAgIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50cnkgPSBB
U0NJSUxpdGVyYWwoIkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5n
IGEgbG93ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIpOworICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJhbCgiQW4gYXR0
ZW1wdCB3YXMgbWFkZSB0byBvcGVuIGEgZGF0YWJhc2UgdXNpbmcgYSBsb3dlciB2ZXJzaW9uIHRo
YW4gdGhlIGV4aXN0aW5nIHZlcnNpb24uIik7CiAgICAgICAgIHJldHVybiBlbnRyeS5nZXQoKTsK
ICAgICB9CisgICAgY2FzZSBJREJFeGNlcHRpb25Db2RlOjpJbnZhbGlkU3RhdGVFcnJvcjogewor
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJh
bCgiT3BlcmF0aW9uIHdhcyBjYWxsZWQgb24gYW4gb2JqZWN0IG9uIHdoaWNoIGl0IGlzIG5vdCBh
bGxvd2VkIG9yIGF0IGEgdGltZSB3aGVuIGl0IGlzIG5vdCBhbGxvd2VkLiIpOworICAgICAgICBy
ZXR1cm4gZW50cnk7CisgICAgfQogICAgIGNhc2UgSURCRXhjZXB0aW9uQ29kZTo6Tm9uZToKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5oCmluZGV4IDQwNzAz
NGMuLjZlNzc1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJFcnJvci5oCkBAIC0zNiw2ICszNiw5IEBAIGVudW0gY2xhc3MgSURCRXhjZXB0
aW9uQ29kZSB7CiAgICAgTm9uZSA9IDAsCiAgICAgVW5rbm93biwKICAgICBWZXJzaW9uRXJyb3Is
CisKKyAgICAvLyBJbmRleGVkIERCIGV4aXN0aW5nIGV4Y2VwdGlvbiBjb2RlcyB3aXRoIElEQi1z
cGVjaWZpYyBlcnJvciBtZXNzYWdlczoKKyAgICBJbnZhbGlkU3RhdGVFcnJvciwKIH07CiAKIGNs
YXNzIElEQkVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKaW5kZXggN2MyZjliZi4u
ZDdmZGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTEwMiw2ICsxMDIsMTQg
QEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZE9wZW5EYXRhYmFzZShjb25zdCBJREJSZXN1
bHREYXRhJiByZXN1bHREYXRhKQogICAgIH0pOwogfQogCit2b2lkIEluUHJvY2Vzc0lEQlNlcnZl
cjo6ZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIFJlZlB0cjxJ
blByb2Nlc3NJREJTZXJ2ZXI+IHNlbGYodGhpcyk7CisgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRp
c3BhdGNoKFt0aGlzLCBzZWxmLCB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yXSB7CisgICAg
ICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRBYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgZXJyb3IpOworICAgIH0pOworfQorCiB2b2lkIEluUHJvY2Vzc0lEQlNlcnZl
cjo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKIHsKICAgICBSZWZQdHI8
SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOwpAQCAtMTEwLDYgKzExOCwxNCBAQCB2b2lk
IEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFucwogICAgIH0pOwogfQogCit2b2lkIEluUHJvY2Vzc0lEQlNlcnZl
cjo6YWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlc291cmNlSWRlbnRp
ZmllcikKK3sKKyAgICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOworICAg
IFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgc2VsZiwgcmVzb3VyY2VJZGVudGlm
aWVyXSB7CisgICAgICAgIG1fc2VydmVyLT5hYm9ydFRyYW5zYWN0aW9uKHJlc291cmNlSWRlbnRp
Zmllcik7CisgICAgfSk7Cit9CisKIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpjb21taXRUcmFu
c2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlc291cmNlSWRlbnRpZmllcikKIHsKICAg
ICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNl
cnZlci5oCmluZGV4IGRjMDk0NTEuLmJkM2NiNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgK
QEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8vIElEQkNvbm5lY3Rpb25Ub1NlcnZlcgog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpIG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuRGF0YWJhc2UoSURCUmVxdWVzdERhdGEmKSBv
dmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJREJSZXNv
dXJjZUlkZW50aWZpZXImKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0
VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKIApAQCAtNjMsNiArNjQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEm
KSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkRhdGFiYXNlKGNvbnN0
IElEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWJv
cnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgY29uc3QgSURCRXJyb3ImKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJikgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoSURCU2VydmVyOjpVbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24mLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKSBvdmVycmlkZSBm
aW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDU0YzQ4ZWQuLjQ5MjUzZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MTYsMTIgKzE1MTYsMTIgQEAK
IAkJNDE2MkE0NTgxMDExNDY0NzAwREZGM0VEIC8qIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNjJB
NDU2MTAxMTQ2NDcwMERGRjNFRCAvKiBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggKi87
IH07CiAJCTQxNkUyOUE2MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RTI5QTUx
MDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5LmggKi87IH07CiAJCTQxNkU2
RkU4MUJCRDEyREYwMDBBNjAzMyAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAw
Qjc2NEM5IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDE2RTZGRUExQkJEMTY4NDAwMEE2MDM0IC8q
IFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NENBIC8qIFN0cmVh
bUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjA0MyAvKiBSZWFkYWJs
ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDkgLyogUmVhZGFibGVTdHJl
YW1JbnRlcm5hbHNCdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA0MyAvKiBSZWFkYWJsZVN0cmVh
bUJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDggLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQxNkU2RkVB
MUJCRDE2ODQwMDBBNjA0NCAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4
MDcxQkIzMTEwRDAwQjc2NERBIC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFw
cGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NDE2RTZGRTgxQkJEMTJERjAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRp
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNE
ODA2MUJCMzExMEQwMEI3NjRFOSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE2RTZG
RTkxQkJEMTJFNTAwMEE2MDQzIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3
NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdy
aXRhYmxlU3RyZWFtQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3NjRFOCAvKiBXcml0YWJsZVN0cmVhbUJ1
aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNDE2RTZGRUExQkJEMTY4NDAwMEE2MDM0IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIw
M0Q4MDcxQkIzMTEwRDAwQjc2NENBIC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxNkU2
RkVBMUJCRDE2ODQwMDBBNjA0NCAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIw
M0Q4MDcxQkIzMTEwRDAwQjc2NERBIC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNX
cmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNDE2RTZGRUExQkJEMTY4NDAwMEE2MDU0IC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVp
bHRpbnNXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjAzRDgwNzFCQjMxMTBEMDBCNzY0RUEgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNC
dWlsdGluc1dyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MTcyNTNBQTEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sRWxlbWVu
dHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3
MjUzQTgxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLzsgfTsK
IAkJNDE3MjUzQUIxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTcyNTNBOTEzNTRC
QkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sRWxlbWVudHMuaCAqLzsgfTsKQEAgLTIxODUsNiAr
MjE4NSw4IEBACiAJCTUxRTBCQUVCMERBNTVENEEwMEE5RTQxNyAvKiBKU1N0b3JhZ2VFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMEJBRTkw
REE1NUQ0QTAwQTlFNDE3IC8qIEpTU3RvcmFnZUV2ZW50LmggKi87IH07CiAJCTUxRTBCQjM4MERB
NUFDQjYwMEE5RTQxNyAvKiBTdG9yYWdlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUwQkIzNjBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1h
cC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
RTBCQjM5MERBNUFDQjYwMEE5RTQxNyAvKiBTdG9yYWdlTWFwLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTBCQjM3MERBNUFDQjYwMEE5RTQxNyAv
KiBTdG9yYWdlTWFwLmNwcCAqLzsgfTsKKwkJNTFFMUJBQzIxQkQ4MDY0RTAwNTVEODFGIC8qIE1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFCQUMwMUJEODA2NDcwMDU1RDgxRiAvKiBNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgKi87IH07CisJCTUxRTFCQUMzMUJEODA2NEUwMDU1
RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMUJBQzExQkQ4MDY0NzAwNTVEODFGIC8q
IE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggKi87IH07CiAJCTUxRTFFQ0JFMEM5MUM5
MDQwMERDMjU1QiAvKiBJY29uRGF0YWJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFFQ0I4MEM5MUM5MDQwMERDMjU1QiAvKiBJY29u
RGF0YWJhc2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MUUxRUNDMDBDOTFDOTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUxRUNCQTBDOTFD
OTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5jcHAgKi87IH07CiAJCTUxRTFFQ0MxMEM5MUM5MDQw
MERDMjU1QiAvKiBJY29uUmVjb3JkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUUxRUNCQjBDOTFDOTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5oICov
OyB9OwpAQCAtMjY2MSwxMSArMjY2MywxMSBAQAogCQk3QzQ4QTZEMTE5MUM5RDY1MDAwMjY2NzQg
LyogV2ViS2l0TmFtZXNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QzQ4QTZDRjE5MUM5RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmgg
Ki87IH07CiAJCTdDNDkwMkEyMThCODI1RjgwMDdEOTI5OCAvKiBET01XaGVlbEV2ZW50SW50ZXJu
YWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1OTg5RENBMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJu
YWwuaCAqLzsgfTsKIAkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJl
YW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0
Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwICovOyB9OworCQk3
QzRDOTZEQzFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEODFBRDQ0ODM1MDAz
NjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5jcHAgKi87IH07CiAJCTdDNEM5NkREMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJs
ZVN0cmVhbS5oICovOyB9OworCQk3QzRDOTZERDFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJs
ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLzsgfTsKIAkJ
N0M0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2REExQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwICovOyB9OwogCQk3QzRD
OTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2REIxQUQ0NDgzNTAw
MzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuaCAqLzsgfTsKLQkJN0M0Qzk2REMxQUQ0
NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpT
V3JpdGFibGVTdHJlYW0uY3BwICovOyB9OwotCQk3QzRDOTZERDFBRDQ0ODM1MDAzNjVBNjAgLyog
SlNXcml0YWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAq
LzsgfTsKIAkJN0M0Qzk2RTMxQUQ0NEFCRjAwMzY1QTUwIC8qIExhdW5jaFNlcnZpY2VzU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZFMjFB
RDQ0QUJGMDAzNjVBNTAgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzRFREQ3NDFBN0I2MDc4MDAxOThDNEQg
LyogRm9udENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5tbSAqLzsgfTsKIAkJ
N0M1MjJENEIxNUI0NzdFODAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MjJENDkxNUI0NzdFODAw
OUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuY3BwICovOyB9OwpAQCAtOTU5MSw2ICs5NTkzLDgg
QEAKIAkJNTFFMEJBRTkwREE1NUQ0QTAwQTlFNDE3IC8qIEpTU3RvcmFnZUV2ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RvcmFnZUV2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxRTBCQjM2MERBNUFDQjYwMEE5RTQxNyAvKiBTdG9yYWdlTWFw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VNYXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMEJCMzcwREE1QUNCNjAwQTlFNDE3IC8qIFN0b3Jh
Z2VNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU1h
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTFCQUMwMUJEODA2NDcwMDU1
RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRTFCQUMxMUJEODA2NDcwMDU1RDgxRiAv
KiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MUUxRUNCODBDOTFDOTA0MDBEQzI1NUIgLyogSWNvbkRhdGFiYXNl
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEljb25EYXRhYmFzZUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUxRUNCQTBDOTFDOTA0MDBE
QzI1NUIgLyogSWNvblJlY29yZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJY29uUmVjb3JkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMUVD
QkIwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSWNvblJlY29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTAxMjAsMTEgKzEwMTI0LDExIEBACiAJCTdDNDhBNkNGMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJL
aXROYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0TmFt
ZXNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNDhBNkQyMTkxQzlEOEUw
MDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdE5hbWVzcGFjZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAv
KiBKU1JlYWRhYmxlU3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTUmVhZGFibGVTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dyaXRhYmxlU3RyZWFtLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJs
ZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzRDOTZEOTFBRDQ0ODM1
MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1dyaXRhYmxlU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1SZWFk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzRDOTZEQjFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV3JpdGFibGVTdHJlYW0u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QzRDOTZEOTFBRDQ0ODM1MDAzNjVB
NjAgLyogSlNXcml0YWJsZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dyaXRhYmxlU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5
NkUyMUFENDRBQkYwMDM2NUE1MCAvKiBMYXVuY2hTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXVuY2hTZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QzRFREQ3MzFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udENvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzUyMkQ0OTE1QjQ3N0U4MDA5QjdDOTUgLyogSW5z
cGVjdG9yT3ZlcmxheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JPdmVybGF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzY0
LDE0ICsxMTM2OCwxMyBAQAogCQk5OTA4QjBFQzFCQ0FDRjFGMDBFRDBGNjUgLyogZ2VuZXJhdGUt
anMtYnVpbHRpbnMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSAiZ2VuZXJh
dGUtanMtYnVpbHRpbnMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBFRDFC
Q0FDRjkxMDBFRDBGNjUgLyogQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneS5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3ku
anM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEVFMUJDQUNGOTEwMEVEMEY2
NSAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNj
cmlwdDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5LmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gU3RyZWFtSW50ZXJuYWxz
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDBG
NTUgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTA4QjBFRjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJl
YW0uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0
cmVhbS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTkwOEIwRUYxQkNBQ0Y5MTAw
RUQwRjc1IC8qIFdyaXRhYmxlU3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2Ny
aXB0OyBwYXRoID0gV3JpdGFibGVTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk5MDhCMEYwMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIu
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhCMEYxMUJD
QUNGOTEwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHMuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUlu
dGVybmFscy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFJlYWRh
YmxlU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4
QjBGMjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1SZWFkZXIuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVJlYWRlci5qczsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQwRjc1IC8q
IFdyaXRhYmxlU3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gV3JpdGFibGVTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhC
MEYxMUJDQUNGOTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFscy5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxz
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTA4QjBGMjFCQ0FDRjkxMDBFRDBG
NjUgLyogUmVhZGFibGVTdHJlYW1SZWFkZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVJlYWRlci5qczsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTkwOEIwRjMxQkNBQ0ZGRTAwRUQwRjY1IC8qIEJ5dGVMZW5ndGhRdWV1aW5n
U3RyYXRlZ3lCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5OTA4QjBGNDFCQ0FDRkZFMDBFRDBGNjUgLyogQnl0ZUxlbmd0aFF1ZXVp
bmdTdHJhdGVneUJ1aWx0aW5zV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEY1MUJDQUQwN0QwMEVEMEY2NSAvKiBCeXRlTGVu
Z3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMTM3OSwxNSArMTEzODIsMTYgQEAKIAkJOTkwOEIwRjcxQkNBRDA3
RDAwRUQwRjY1IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGODFCQ0FEMDdEMDBFRDBGNjUgLyogQ291
bnRRdWV1aW5nU3RyYXRlZ3lCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ291bnRRdWV1aW5nU3RyYXRlZ3lCdWlsdGluc1dyYXBwZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjkxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRh
YmxlU3RyZWFtQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk5MDhCMEY5MUJDQUQwN0QwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVp
bHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGQTFCQ0FEMDdE
MDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVp
bHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGQjFCQ0FEMDdE
MDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkMxQkNBRDA3RDAwRUQwRjY1
IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5zV3JhcHBlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJCdWlsdGluc1dy
YXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTkwOEIwRkQxQkNBRDA3RDAw
RUQwRjU1IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkQxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxl
U3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY3NSAvKiBXcml0YWJsZVN0
cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTA4QjBGRTFCQ0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJl
YW1SZWFkZXJCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZWFkYWJsZVN0cmVhbVJlYWRlckJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTkwOEIwRkYxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVy
QnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJl
YW1SZWFkZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjEw
MDFCQ0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGluc1dyYXBwZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXJC
dWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRjkx
QkNBRDA3RDAwRUQwRjc1IC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV3JpdGFibGVTdHJlYW1CdWlsdGlucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY3NSAvKiBX
cml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyogVXNl
cklucHV0QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVz
ZXJJbnB1dEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MjAzOTgx
MThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVXNlcklucHV0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5QzdDQ0IyMThDNjYzRTQwMDMyRTQxMyAvKiBNZW1vaXplZERPTVJlc3VsdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vaXplZERPTVJlc3VsdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE0MjUsMTMgKzExNDI5LDEzIEBACiAJCTlBQjFG
MzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUFCMUYzN0YxOEUyNDg5QTAwNTM0NzQzIC8q
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjRDOSAvKiBTdHJlYW1JbnRlcm5h
bHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1JbnRl
cm5hbHNCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QjAzRDgwNzFC
QjMxMTBEMDBCNzY0Q0EgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0
RDggLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjREOSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFs
c0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3Ry
ZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUIw
M0Q4MDcxQkIzMTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQnVpbHRpbnNX
cmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCMDNEODA3MUJCMzExMEQw
MEI3NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0
aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMx
MTBEMDBCNzY0RTggLyogV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjRFOSAvKiBXcml0YWJsZVN0cmVh
bUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdy
aXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NENBIC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5z
V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1JbnRlcm5h
bHNCdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIwM0Q4
MDcxQkIzMTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFw
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMDNEODA3MUJCMzExMEQwMEI3
NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5z
V3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNzFCQjMxMTBE
MDBCNzY0RTggLyogV3JpdGFibGVTdHJlYW1CdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFibGVTdHJlYW1CdWlsdGluc1dyYXBwZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NEVBIC8qIFdy
aXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMTlCNjdFMUI5NjRFNTIwMDM0ODc0NSAv
KiBTaGFkb3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTaGFkb3dSb290LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDA4LDcgKzE2NDEyLDYgQEAKIAkJCQk0
MUEwMjNFRDFBMzlEQjc5MDBGNzIyREYgLyogV3JpdGFibGVTdHJlYW0uaWRsICovLAogCQkJCTk5
MDhCMEVGMUJDQUNGOTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbS5qcyAqLywKIAkJCQk5OTA4
QjBGMTFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8sCi0K
IAkJCSk7CiAJCQlwYXRoID0gc3RyZWFtczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xNjgyOSw2ICsxNjgzMiw4IEBACiAJCQkJNTEwQTU4RjAxQkFCNzIwRjAwQzE5MjgyIC8qIElE
QlNlcnZlci5oICovLAogCQkJCTUxODg2NEU0MUJCQjRCN0UwMEU1NDBDOSAvKiBJREJTZXJ2ZXJP
cGVyYXRpb24uY3BwICovLAogCQkJCTUxODg2NEU1MUJCQjRCN0UwMEU1NDBDOSAvKiBJREJTZXJ2
ZXJPcGVyYXRpb24uaCAqLywKKwkJCQk1MUUxQkFDMDFCRDgwNjQ3MDA1NUQ4MUYgLyogTWVtb3J5
QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwICovLAorCQkJCTUxRTFCQUMxMUJEODA2NDcwMDU1
RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oICovLAogCQkJCTUxQkE0QUM4
MUJCQzVCOUUwMERGM0Q2RCAvKiBNZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwICovLAogCQkJCTUx
QkE0QUM5MUJCQzVCOUUwMERGM0Q2RCAvKiBNZW1vcnlJREJCYWNraW5nU3RvcmUuaCAqLywKIAkJ
CQk1MTg4NjRERTFCQkFGMzBGMDBFNTQwQzkgLyogVW5pcXVlSURCRGF0YWJhc2UuY3BwICovLApA
QCAtMjY5NjAsNiArMjY5NjUsNyBAQAogCQkJCTQzOTA0NkRFMTJEQTI1RTgwMEFGODBBMiAvKiBS
ZW5kZXJNYXRoTUxNYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzkwNDZFMDEyREEyNUU4MDBB
RjgwQTIgLyogUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0
NkUwMTJEQTI1RTgwMEJGODBBMyAvKiBSZW5kZXJNYXRoTUxSYWRpY2FsT3BlcmF0b3IuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTUxRTFCQUMzMUJEODA2NEUwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2RTIxMkRBMjVFODAw
QUY4MEEyIC8qIFJlbmRlck1hdGhNTFJvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkU0
MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb3cuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQzOTA0NkU4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxTY3JpcHRzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI5OTgwLDYgKzI5OTg2LDcgQEAKIAkJCQlCMkZBM0RCQzBBQjc1QTZGMDAw
RTVBQzQgLyogSlNTVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
RkEzREJFMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEQzAwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1JlbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUUxQkFDMjFCRDgw
NjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjJGQTNEQzIwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aEFicy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RDNDBBQjc1QTZG
MDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyRkEzREM2MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljQWJzLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263710</attachid>
            <date>2015-10-21 12:14:27 -0700</date>
            <delta_ts>2015-10-21 12:27:28 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>79725</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTlkMGU3Li4wYzQ1ZjE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMTAt
MjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Rv
dWJsZS1hYm9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9kb3VibGUtYWJvcnQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNo
YW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sOiBBZGRlZC4KKwogMjAxNS0xMC0yMSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxJRnJhbWVFbGVtZW50LnNh
bmRib3ggc2hvdWxkIGJlIGEgRE9NU2V0dGFibGVUb2tlbkxpc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtYWJvcnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTczNDk4ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3Vi
bGUtYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQUxFUlQ6IEluaXRpYWwgdXBn
cmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKK0FMRVJUOiBTZWNv
bmQgYWJvcnQgZmFpbGVkOiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24g
MTEKK0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBhYm9y
dGVkCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IGFib3J0cyB0aGUgc2FtZSB0cmFuc2FjdGlvbiB0
d2ljZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gaXMgdGhyb3duLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1Mzg4MzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLWFi
b3J0Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorVGhpcyB0ZXN0IGFib3J0cyB0aGUgc2FtZSB0cmFu
c2FjdGlvbiB0d2ljZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gaXMgdGhyb3du
LgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2Z1bmN0
aW9uIGRvbmUoKQoreworICAgIGFsZXJ0KCJEb25lIik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIGNyZWF0ZVJl
cXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRvdWJsZUFib3J0VGVzdERhdGFiYXNlIiwg
MSk7CisKK2NyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICBhbGVydCgiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZl
bnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisK
KyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsK
KyAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgdmVyc2lvblRy
YW5zYWN0aW9uLmFib3J0KCk7CisgICAgdHJ5IHsKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9u
LmFib3J0KCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBhbGVydCgiU2Vjb25kIGFib3J0
IGZhaWxlZDogIiArIGUpOworICAgIH0KKworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJz
aW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0K
KworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
IHVuZXhwZWN0ZWQgY29tcGxldGUiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKworICAgIHZl
cnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxl
cnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQg
ZXJyb3IiICsgZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAgfQorfQorCis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9u
Y2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTY5NzgzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3ZlcnNp
b25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
K0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNp
b24gLSAxCitBTEVSVDogSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24g
YWJvcnRlZAorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5l
dyB2ZXJzaW9uIC0gMQorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb24gY29tcGxldGUKK0FMRVJUOiBUaGlyZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24g
LSAxIE5ldyB2ZXJzaW9uIC0gMgorQUxFUlQ6IFRoaXJkIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0
cmFuc2FjdGlvbiBhYm9ydGVkCitBTEVSVDogRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVy
c2lvbiAtIDEgTmV3IHZlcnNpb24gLSAyCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IG9wZW5zIGEg
bmV3IGRhdGFiYXNlLCB0aGVuIGFib3J0cyB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24u
CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBpdCdzIGEgZGVmYXVs
dCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1Y2Nlc3NmdWxseS4K
K0l0IHRoZW4gcmVvcGVucyB0aGUgZGF0YWJhc2UsIHVwZ3JhZGluZyBpdCdzIHZlcnNpb24uIEl0
IGFib3J0cyB0aGlzIHZlcnNpb25jaGFuZ2UsIGFzIHdlbGwuCitGaW5hbGx5IGl0IHJlb3BlbnMg
dGhlIGRhdGFiYXNlIGFnYWluLCB1cGdyYWRpbmcgaXRzIHZlcnNpb24sIG1ha2luZyBzdXJlIHRo
aW5ncyBoYWQgcmV2ZXJ0ZWQgYmFjayB0byBiZWZvcmUgdGhlIHNlY29uZCBhYm9ydGVkIHZlcnNp
b25jaGFuZ2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwN2Y3ZTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNo
YW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sCkBAIC0wLDAgKzEsMTE1IEBACitUaGlzIHRlc3Qg
b3BlbnMgYSBuZXcgZGF0YWJhc2UsIHRoZW4gYWJvcnRzIHRoZSB2ZXJzaW9uIGNoYW5nZSB0cmFu
c2FjdGlvbi48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBp
dCdzIGEgZGVmYXVsdCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1
Y2Nlc3NmdWxseS48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCB1cGdyYWRpbmcg
aXQncyB2ZXJzaW9uLiBJdCBhYm9ydHMgdGhpcyB2ZXJzaW9uY2hhbmdlLCBhcyB3ZWxsLjxicj4K
K0ZpbmFsbHkgaXQgcmVvcGVucyB0aGUgZGF0YWJhc2UgYWdhaW4sIHVwZ3JhZGluZyBpdHMgdmVy
c2lvbiwgbWFraW5nIHN1cmUgdGhpbmdzIGhhZCByZXZlcnRlZCBiYWNrIHRvIGJlZm9yZSB0aGUg
c2Vjb25kIGFib3J0ZWQgdmVyc2lvbmNoYW5nZS48YnI+Cis8c2NyaXB0PgorCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgYWxlcnQo
IkRvbmUiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworfQorCit2YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisKK2NyZWF0ZVJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBhbGVydCgiSW5pdGlh
bCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIg
TmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisKKyAgICB2YXIgdmVyc2lvblRy
YW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgZGF0YWJhc2Ug
PSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLmFib3J0KCk7
CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBh
Ym9ydGVkIik7CisgICAgICAgIGNvbnRpbnVlVGVzdDEoKTsKKyAgICAgICAgZGF0YWJhc2UuY2xv
c2UoKTsKKyAgICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5n
ZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGNvbXBsZXRlIik7CisgICAgICAgIGRvbmUoKTsKKyAg
ICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
biB1bmV4cGVjdGVkIGVycm9yIiArIGV2ZW50KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30K
KworZnVuY3Rpb24gY29udGludWVUZXN0MSgpCit7CisgICAgY3JlYXRlUmVxdWVzdCA9IHdpbmRv
dy5pbmRleGVkREIub3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisK
KyAgICBjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2
ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwor
CisgICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0
aW9uOworICAgICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAg
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVu
ZXhwZWN0ZWQgYWJvcnQiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
IGNvbXBsZXRlIik7CisgICAgICAgICAgICBjb250aW51ZVRlc3QyKCk7CisgICAgICAgICAgICBk
YXRhYmFzZS5jbG9zZSgpOworICAgICAgICB9CisKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9u
Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgYWxlcnQoIlNlY29uZCB1
cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVu
dCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9u
IGNvbnRpbnVlVGVzdDIoKQoreworICAgIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERC
Lm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRlc3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRl
UmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVy
dCgiVGhpcmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNp
b24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgICAgIHZh
ciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAg
ICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZlcnNpb25U
cmFuc2FjdGlvbi5hYm9ydCgpOworICAgIAorICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25h
Ym9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFk
ZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICAgICAgICAgIGNvbnRp
bnVlVGVzdDMoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLmNsb3NlKCk7CisgICAgICAgIH0KKwor
ICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0
aW9uIHVuZXhwZWN0ZWQgY29tcGxldGUiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIGFsZXJ0KCJUaGlyZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAgICAgICBkb25lKCk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdDMoKQoreworICAgIGNy
ZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRl
c3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBP
bGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBl
dmVudC5uZXdWZXJzaW9uKTsKKyAgICAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30KKworPC9zY3JpcHQ+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NzZkOTdiLi4xNTRiNzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTA0LDYgKzkwNCw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCiAgICAgTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlck9wZXJhdGlvbi5jcHAKKyAgICBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAyZGUyYjNmLi5kNTQyNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTUgQEAKKzIw
MTUtMTAtMjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1v
ZGVybiBJREI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vZG91YmxlLWFib3J0Lmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwKKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERC
Lmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
Q2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkRh
dGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCRGF0YWJhc2U6OmRpZENvbW1pdE9yQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmFib3J0KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmlzRmluaXNoZWRP
ckZpbmlzaGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9u
OjphY3RpdmF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QlRyYW5zYWN0aW9uOjpkaWRBYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEFib3J0VHJh
bnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29u
bmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb246Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246On5NZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpjb21taXQpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbjo6aXNWZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6c2V0RGF0YWJhc2VJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2lu
Z1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
TWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oOgorCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURC
RGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29t
bWl0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpk
aWRBYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246Om9yaWdpbmFsRGF0YWJhc2VJbmZvKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bjo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJFcnJvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppZGJFcnJvck5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6aWRiRXJyb3JEZXNjcmlwdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaDoKKwogMjAxNS0xMC0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxJRnJhbWVF
bGVtZW50LnNhbmRib3ggc2hvdWxkIGJlIGEgRE9NU2V0dGFibGVUb2tlbkxpc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgKaW5kZXggN2ZjNTFkYS4uNTU4
YmJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhl
ZERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgK
QEAgLTQzLDYgKzQzLDcgQEAgZW51bSBjbGFzcyBUcmFuc2FjdGlvblN0YXRlIHsKICAgICBVbnN0
YXJ0ZWQsCiAgICAgUnVubmluZywKICAgICBDb21taXR0aW5nLAorICAgIEFib3J0aW5nLAogICAg
IEZpbmlzaGVkLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCBh
ZTg3NDQyLi4xMzBkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAt
MTEzLDYgKzExMywyNiBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkQ29tbWl0VHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cgogICAgIHRyYW5zYWN0aW9u
LT5kaWRDb21taXQoZXJyb3IpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJv
cnRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKElu
ZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbiIpOworICAg
IEFTU0VSVCghbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbi5pbmZv
KCkuaWRlbnRpZmllcigpKSk7CisgICAgbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5zZXQodHJhbnNh
Y3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgJnRyYW5zYWN0aW9uKTsKKworICAgIGF1dG8gaWRl
bnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCk7CisgICAgbV9kZWxlZ2F0
ZS0+YWJvcnRUcmFuc2FjdGlvbihpZGVudGlmaWVyKTsKK30KKwordm9pZCBJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAgICBM
T0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRBYm9ydFRyYW5zYWN0aW9u
Iik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy50YWtl
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgQVNTRVJUKHRyYW5zYWN0aW9uKTsKKworICAg
IHRyYW5zYWN0aW9uLT5kaWRBYm9ydChlcnJvcik7Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblRv
U2VydmVyOjpmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGNjNGUzOTIuLmJiZmQyMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAg
IHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKICAgICB2b2lkIGRpZENv
bW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCisgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9u
KElEQlRyYW5zYWN0aW9uJik7CisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJv
ciYpOworCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwogCiAgICAg
dm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQoSURCRGF0YWJhc2UmKTsKQEAgLTc1LDYgKzc4
LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRy
PElEQkNsaWVudDo6SURCT3BlbkRCUmVxdWVzdD4+IG1fb3BlbkRCUmVxdWVzdE1hcDsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBJREJEYXRhYmFzZSo+IG1fZGF0YWJhc2VDb25uZWN0aW9uTWFwOwog
ICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+
PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50
aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWJvcnRpbmdUcmFuc2FjdGlvbnM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlckRlbGVnYXRlLmgKaW5kZXggNTYwN2JiYi4uMTZkYWRjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVzdERhdGEmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9wZW5EYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgYWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcAppbmRl
eCBhYWI2MzdlLi40OWE0ZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtMTc1LDYgKzE3
NSwxNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaWRDb21taXRUcmFuc2FjdGlvbihJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24pCiAgICAgZGlkQ29tbWl0T3JBYm9ydFRyYW5zYWN0aW9uKHRyYW5z
YWN0aW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNl
OjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHJlZlRyYW5zYWN0aW9uID0gbV9hY3Rp
dmVUcmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKTsKKyAg
ICBBU1NFUlQocmVmVHJhbnNhY3Rpb24pOworICAgIG1fYWJvcnRpbmdUcmFuc2FjdGlvbnMuc2V0
KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIFdURjo6bW92ZShyZWZUcmFuc2FjdGlv
bikpOworCisgICAgbV9zZXJ2ZXJDb25uZWN0aW9uLT5hYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0
aW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZTo6ZGlkQWJvcnRUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNl
OjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CkBAIC0xODcsMTEgKzE5OCwyMiBAQCB2b2lkIElEQkRh
dGFiYXNlOjpkaWRDb21taXRPckFib3J0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uKQogCiAgICAgaWYgKG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID09ICZ0cmFuc2Fj
dGlvbikKICAgICAgICAgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwotICAg
IAotICAgIEFTU0VSVChtX2FjdGl2ZVRyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbi5p
bmZvKCkuaWRlbnRpZmllcigpKSB8fCBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMuY29udGFpbnMo
dHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOworCisjaWZuZGVmIE5EQkVCVUcKKyAg
ICB1bnNpZ25lZCBjb3VudCA9IDA7CisgICAgaWYgKG1fYWN0aXZlVHJhbnNhY3Rpb25zLmNvbnRh
aW5zKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKQorICAgICAgICArK2NvdW50Owor
ICAgIGlmIChtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5m
bygpLmlkZW50aWZpZXIoKSkpCisgICAgICAgICsrY291bnQ7CisgICAgaWYgKG1fYWJvcnRpbmdU
cmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpCisg
ICAgICAgICsrY291bnQ7CisKKyAgICBBU1NFUlQoY291bnQgPT0gMSk7CisjZW5kaWYKIAogICAg
IG1fYWN0aXZlVHJhbnNhY3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmll
cigpKTsKICAgICBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMucmVtb3ZlKHRyYW5zYWN0aW9uLmlu
Zm8oKS5pZGVudGlmaWVyKCkpOworICAgIG1fYWJvcnRpbmdUcmFuc2FjdGlvbnMucmVtb3ZlKHRy
YW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIElEQkRhdGFiYXNlOjpm
aXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJh
c2VJbXBsLmgKaW5kZXggYmY2MDQ4MS4uMmJmYjExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuaApAQCAt
NzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgUmVmPElEQlRyYW5zYWN0aW9uPiBzdGFydFZlcnNp
b25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lk
IGNvbW1pdFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBkaWRDb21taXRU
cmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYpOworICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJ
REJUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihJREJUcmFuc2Fj
dGlvbiYpOwogCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IHJlcXVl
c3RlZFZlcnNpb24pOwpAQCAtOTYsNiArOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJREJU
cmFuc2FjdGlvbj4gbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb247CiAgICAgSGFzaE1hcDxJREJS
ZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWN0aXZlVHJhbnNh
Y3Rpb25zOwogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURCVHJh
bnNhY3Rpb24+PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAgSGFzaE1hcDxJREJSZXNv
dXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWJvcnRpbmdUcmFuc2Fj
dGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9u
SW1wbC5jcHAKaW5kZXggZDkzN2FhYS4uNTQxZTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1w
bC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJET01FcnJvci5oIgogI2luY2x1ZGUg
IkV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUltcGwuaCIKKyNpbmNsdWRlICJJ
REJFcnJvci5oIgogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIklE
Qk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNTEsOCArNTIsMTMgQEAg
SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29u
c3QgSURCVHJhbnNhY3Rpb25JbmZvJgogICAgICwgbV9vcGVyYXRpb25UaW1lcigqdGhpcywgJklE
QlRyYW5zYWN0aW9uOjpvcGVyYXRpb25UaW1lckZpcmVkKQogCiB7CisgICAgbV9hY3RpdmF0aW9u
VGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjph
Y3RpdmF0aW9uVGltZXJGaXJlZCk7CisgICAgbV9hY3RpdmF0aW9uVGltZXItPnN0YXJ0T25lU2hv
dCgwKTsKKworICAgIGlmIChtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlOjpWZXJzaW9uQ2hhbmdlKQorICAgICAgICBtX29yaWdpbmFsRGF0YWJhc2VJbmZvID0gc3Rk
OjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KG1fZGF0YWJhc2UtPmluZm8oKSk7CisKICAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvblRpbWVyKCk7CiAgICAg
bV9zdGF0ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6UnVubmluZzsKIH0KIApAQCAt
OTEsOSArOTcsMTggQEAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJUcmFuc2FjdGlvbjo6b2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotdm9pZCBJREJUcmFuc2FjdGlvbjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYpCit2b2lk
IElEQlRyYW5zYWN0aW9uOjphYm9ydChFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OmFib3J0
Iik7CisKKyAgICBpZiAoaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc3RhdGUg
PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkFib3J0aW5nOworCisgICAgbV9kYXRhYmFz
ZS0+YWJvcnRUcmFuc2FjdGlvbigqdGhpcyk7CiB9CiAKIGNvbnN0IGNoYXIqIElEQlRyYW5zYWN0
aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTExNiw2ICsxMzEsMTkgQEAgYm9v
bCBJREJUcmFuc2FjdGlvbjo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiBtX3N0YXRlID09
IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6UnVubmluZzsKIH0KIAorYm9vbCBJREJUcmFu
c2FjdGlvbjo6aXNGaW5pc2hlZE9yRmluaXNoaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
dGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkNvbW1pdHRpbmcKKyAgICAgICAg
fHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkFib3J0aW5nCisgICAg
ICAgIHx8IG1fc3RhdGUgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpGaW5pc2hlZDsK
K30KKwordm9pZCBJREJUcmFuc2FjdGlvbjo6YWN0aXZhdGlvblRpbWVyRmlyZWQoKQoreworICAg
IHNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKTsKKyAgICBtX2FjdGl2YXRpb25UaW1lciA9IG51bGxw
dHI7Cit9CisKIHZvaWQgSURCVHJhbnNhY3Rpb246OnNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKQog
ewogICAgIGlmICghbV9vcGVyYXRpb25UaW1lci5pc0FjdGl2ZSgpKQpAQCAtMTUxLDYgKzE3OSwy
MCBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpjb21taXQoKQogICAgIG1fZGF0YWJhc2UtPmNvbW1p
dFRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAordm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkQWJvcnQo
Y29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2Fj
dGlvbjo6ZGlkQWJvcnQiKTsKKworICAgIEFTU0VSVChtX3N0YXRlID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25TdGF0ZTo6QWJvcnRpbmcgfHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0
aW9uU3RhdGU6OlJ1bm5pbmcpOworCisgICAgbV9kYXRhYmFzZS0+ZGlkQWJvcnRUcmFuc2FjdGlv
bigqdGhpcyk7CisKKyAgICBtX2lkYkVycm9yID0gZXJyb3I7CisgICAgZmlyZU9uQWJvcnQoKTsK
KworICAgIG1fc3RhdGUgPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkZpbmlzaGVkOwor
fQorCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRDb21taXQoY29uc3QgSURCRXJyb3ImIGVycm9y
KQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6ZGlkQ29tbWl0Iik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJh
bnNhY3Rpb25JbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCVHJhbnNhY3Rpb25JbXBsLmgKaW5kZXggMGQzNjA2Yy4uMDcyYzI4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFu
c2FjdGlvbkltcGwuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAKKyNpbmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIKICNpbmNsdWRlICJJREJFcnJv
ci5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rp
b25JbmZvLmgiCkBAIC02OCwxNiArNjksMTkgQEAgcHVibGljOgogICAgIElEQkRhdGFiYXNlJiBk
YXRhYmFzZSgpIHsgcmV0dXJuIG1fZGF0YWJhc2UuZ2V0KCk7IH0KICAgICBjb25zdCBJREJEYXRh
YmFzZSYgZGF0YWJhc2UoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9CiAKKyAg
ICB2b2lkIGRpZEFib3J0KGNvbnN0IElEQkVycm9yJik7CiAgICAgdm9pZCBkaWRDb21taXQoY29u
c3QgSURCRXJyb3ImKTsKIAogcHJpdmF0ZToKICAgICBJREJUcmFuc2FjdGlvbihJREJEYXRhYmFz
ZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0OworICAgIGJvb2wgaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBj
b21taXQoKTsKIAogICAgIHZvaWQgc2NoZWR1bGVPcGVyYXRpb25UaW1lcigpOwogICAgIHZvaWQg
b3BlcmF0aW9uVGltZXJGaXJlZCgpOworICAgIHZvaWQgYWN0aXZhdGlvblRpbWVyRmlyZWQoKTsK
IAogICAgIHZvaWQgZmlyZU9uQ29tcGxldGUoKTsKICAgICB2b2lkIGZpcmVPbkFib3J0KCk7CkBA
IC04NSwxMSArODksMTMgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJREJEYXRhYmFzZT4gbV9kYXRh
YmFzZTsKICAgICBJREJUcmFuc2FjdGlvbkluZm8gbV9pbmZvOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxJREJEYXRhYmFzZUluZm8+IG1fb3JpZ2luYWxEYXRhYmFzZUluZm87CiAKICAgICBJbmRleGVk
REI6OlRyYW5zYWN0aW9uU3RhdGUgbV9zdGF0ZSB7IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0
ZTo6VW5zdGFydGVkIH07CiAgICAgSURCRXJyb3IgbV9pZGJFcnJvcjsKIAogICAgIFRpbWVyIG1f
b3BlcmF0aW9uVGltZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBtX2FjdGl2YXRpb25U
aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGE1YTQ4YzEuLjZmZjFlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKQEAgLTI5LDggKzI5LDEz
IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJEYXRhYmFz
ZUluZm8uaCIKKyNpbmNsdWRlICJJREJFcnJvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElEQlJlc291cmNlSWRlbnRpZmllcjsKK2NsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsK
KwogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKIGNsYXNzIElEQkJhY2tpbmdTdG9yZSB7CkBAIC0z
OCw2ICs0MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCQmFja2luZ1N0b3JlKCkgeyB9
CiAKICAgICB2aXJ0dWFsIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYgZ2V0T3JFc3RhYmxpc2hEYXRh
YmFzZUluZm8oKSA9IDA7CisKKyAgICB2aXJ0dWFsIElEQkVycm9yIGJlZ2luVHJhbnNhY3Rpb24o
Y29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgYWJv
cnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgY29tbWl0VHJhbnNhY3Rpb24oY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpID0gMDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAppbmRleCA0Y2YzNmY3Li4zNGEwMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcApAQCAtNTgsNiArNTgsMTEgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZE9wZW5EYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCiAgICAgbV9kZWxlZ2F0
ZS0+ZGlkT3BlbkRhdGFiYXNlKHJlc3VsdCk7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCit7CisgICAgbV9kZWxl
Z2F0ZS0+ZGlkQWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKTsK
K30KKwogdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJFcnJvciYgZXJyb3IpCiB7CiAgICAgbV9kZWxlZ2F0ZS0+ZGlkQ29tbWl0VHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBlcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmgKaW5kZXggMWYwZTUzNC4uZTNkZjk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
aApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNl
KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBJ
REJSZXN1bHREYXRhJik7CisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYp
OwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKICAgICB2b2lk
IGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGll
bnREZWxlZ2F0ZS5oCmluZGV4IDI4ZWNjYjIuLmVlYjhlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJD
b25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRGF0YWJhc2UoY29uc3QgSURCUmVzdWx0RGF0
YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3Im
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHAKaW5kZXggNDVlMTZmZS4uMzBkZWM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTE0Miw2ICsxNDIs
MjAgQEAgdm9pZCBJREJTZXJ2ZXI6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSkKICAgICBjb25uZWN0aW9uLT5kaWREZWxldGVEYXRhYmFzZShyZXN1bHQp
OwogfQogCit2b2lkIElEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBMT0coSW5kZXhlZERC
LCAiSURCU2VydmVyOjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9u
ID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0
cmFuc2FjdGlvbikgeworICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyB0cmFuc2FjdGlvbiB0aGVy
ZSBpcyBub3RoaW5nIHRvIGFib3J0LgorICAgICAgICAvLyBXZSBhbHNvIGhhdmUgbm8gYWNjZXNz
IHRvIGEgY29ubmVjdGlvbiBvdmVyIHdoaWNoIHRvIG1lc3NhZ2UgZmFpbHVyZS10by1hYm9ydC4K
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOworfQor
CiB2b2lkIElEQlNlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QlNlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCBmMDdlODdkLi4wNjFhNDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBPcGVyYXRpb25zIHJl
cXVlc3RlZCBieSB0aGUgY2xpZW50LgogICAgIHZvaWQgb3BlbkRhdGFiYXNlKGNvbnN0IElEQlJl
cXVlc3REYXRhJik7CiAgICAgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXF1ZXN0RGF0
YSYpOworICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImKTsKICAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYpOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
YzJhM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcApAQCAtMCwwICsxLDc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgi
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkluZGV4ZWREQi5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZW1vcnlJREJCYWNraW5nU3RvcmUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQlNlcnZlciB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbj4gTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb246OmNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9y
ZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQoreworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPihiYWNraW5nU3RvcmUsIGlu
Zm8pOworfQorCitNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6TWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24oTWVtb3J5SURCQmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUsIGNvbnN0
IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKKyAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdT
dG9yZSkKKyAgICAsIG1faW5mbyhpbmZvKQoreworICAgIGlmIChtX2luZm8ubW9kZSgpID09IElu
ZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKQorICAgICAgICBtX29yaWdp
bmFsRGF0YWJhc2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KG1fYmFj
a2luZ1N0b3JlLmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKCkpOworfQorCitNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbjo6fk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCkKK3sK
KyAgICBBU1NFUlQoIW1faW5Qcm9ncmVzcyk7Cit9CisKK3ZvaWQgTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb246OmFib3J0KCkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb246OmFib3J0KCkiKTsKKworICAgIGlmIChtX29yaWdpbmFsRGF0YWJh
c2VJbmZvKSB7CisgICAgICAgIEFTU0VSVChtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmUuc2V0
RGF0YWJhc2VJbmZvKCptX29yaWdpbmFsRGF0YWJhc2VJbmZvKTsKKyAgICB9CisKKyAgICBtX2lu
UHJvZ3Jlc3MgPSBmYWxzZTsKK30KKwordm9pZCBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bjo6Y29tbWl0KCkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb246OmNvbW1pdCgpIik7CisKKyAgICBtX2luUHJvZ3Jlc3MgPSBmYWxzZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI1
YWVkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCkBAIC0wLDAgKzEsNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uX2gKKyNkZWZpbmUgTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb25faAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRl
ICJJREJEYXRhYmFzZUluZm8uaCIKKyNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkluZm8uaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQlNlcnZlciB7CisKK2NsYXNzIE1lbW9y
eUlEQkJhY2tpbmdTdG9yZTsKKworY2xhc3MgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24g
eworICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24+IHN0ZDo6bWFrZV91bmlxdWU8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+KE1lbW9y
eUlEQkJhY2tpbmdTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbyYpOwor
cHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb24+IGNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBjb25zdCBJREJUcmFuc2Fj
dGlvbkluZm8mKTsKKworICAgIH5NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpOworCisg
ICAgYm9vbCBpc1ZlcnNpb25DaGFuZ2UoKSBjb25zdCB7IHJldHVybiBtX2luZm8ubW9kZSgpID09
IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlOyB9CisKKyAgICBjb25z
dCBJREJEYXRhYmFzZUluZm8mIG9yaWdpbmFsRGF0YWJhc2VJbmZvKCkgY29uc3Q7CisKKyAgICB2
b2lkIGFib3J0KCk7CisgICAgdm9pZCBjb21taXQoKTsKKworcHJpdmF0ZToKKyAgICBNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbihNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBjb25zdCBJREJU
cmFuc2FjdGlvbkluZm8mKTsKKworICAgIE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYgbV9iYWNraW5n
U3RvcmU7CisgICAgSURCVHJhbnNhY3Rpb25JbmZvIG1faW5mbzsKKworICAgIHN0ZDo6dW5pcXVl
X3B0cjxJREJEYXRhYmFzZUluZm8+IG1fb3JpZ2luYWxEYXRhYmFzZUluZm87CisKKyAgICBib29s
IG1faW5Qcm9ncmVzcyB7IHRydWUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisjZW5kaWYgLy8gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb25faApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tp
bmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5SURCQmFja2luZ1N0b3JlLmNwcAppbmRleCBiMDc0MjA3Li5hYWUwNjdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2lu
Z1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCkBAIC01Myw2ICs1NSw1MyBAQCBjb25z
dCBJREJEYXRhYmFzZUluZm8mIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hE
YXRhYmFzZUluZm8oKQogICAgIHJldHVybiAqbV9kYXRhYmFzZUluZm87CiB9CiAKK3ZvaWQgTWVt
b3J5SURCQmFja2luZ1N0b3JlOjpzZXREYXRhYmFzZUluZm8oY29uc3QgSURCRGF0YWJhc2VJbmZv
JiBpbmZvKQoreworICAgIC8vIEl0IGlzIG5vdCB2YWxpZCB0byBkaXJlY3RseSBzZXQgZGF0YWJh
c2UgaW5mbyBvbiBhIGJhY2tpbmcgc3RvcmUgdGhhdCBoYXNuJ3QgYWxyZWFkeSBzZXQgaXRzIG93
biBkYXRhYmFzZSBpbmZvLgorICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CisKKyAgICBtX2Rh
dGFiYXNlSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPihpbmZvKTsKK30K
KworSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKGNvbnN0
IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5
SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uIik7CisKKyAgICBpZiAobV90cmFuc2Fj
dGlvbnMuY29udGFpbnMoaW5mby5pZGVudGlmaWVyKCkpKQorICAgICAgICByZXR1cm4gSURCRXJy
b3IoSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGFz
a2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJlY29yZCBvZiIpOwor
CisgICAgYXV0byB0cmFuc2FjdGlvbiA9IE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpj
cmVhdGUoKnRoaXMsIGluZm8pOworICAgIG1fdHJhbnNhY3Rpb25zLnNldChpbmZvLmlkZW50aWZp
ZXIoKSwgV1RGOjptb3ZlKHRyYW5zYWN0aW9uKSk7CisKKyAgICByZXR1cm4gSURCRXJyb3IoKTsK
K30KKworSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQoreworICAg
IExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFib3J0VHJhbnNhY3Rpb24i
KTsKKworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0
aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAgcmV0dXJuIElE
QkVycm9yKElEQkV4Y2VwdGlvbkNvZGU6OkludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9y
ZSBhc2tlZCB0byBhYm9ydCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2ZSByZWNvcmQgb2YiKTsK
KworICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOworCisgICAgcmV0dXJuIElEQkVycm9yKCk7Cit9
CisKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24oY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCit7CisgICAg
TE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24i
KTsKKworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0
aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAgcmV0dXJuIElE
QkVycm9yKElEQkV4Y2VwdGlvbkNvZGU6OkludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9y
ZSBhc2tlZCB0byBjb21taXQgdHJhbnNhY3Rpb24gaXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIik7
CisKKyAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CisKKyAgICByZXR1cm4gSURCRXJyb3IoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAppbmRleCA4NzYyZGU0Li4yNTQ5OWY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURC
QmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCkBAIC0zMCw2ICszMCw5IEBACiAKICNpbmNsdWRl
ICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewpAQCAtNDIsMTIgKzQ1LDIwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZW1vcnlJREJCYWNraW5nU3RvcmUoKSBvdmVycmlkZSBm
aW5hbDsKIAogICAgIHZpcnR1YWwgY29uc3QgSURCRGF0YWJhc2VJbmZvJiBnZXRPckVzdGFibGlz
aERhdGFiYXNlSW5mbygpIG92ZXJyaWRlIGZpbmFsOwotICAgIAorICAgIHZvaWQgc2V0RGF0YWJh
c2VJbmZvKGNvbnN0IElEQkRhdGFiYXNlSW5mbyYpOworCisgICAgdmlydHVhbCBJREJFcnJvciBi
ZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpIG92ZXJyaWRlIGZpbmFs
OworICAgIHZpcnR1YWwgSURCRXJyb3IgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CisgICAg
dmlydHVhbCBJREJFcnJvciBjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CisKIHByaXZhdGU6
CiAgICAgTWVtb3J5SURCQmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYp
OwogCiAgICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX2RhdGFiYXNlSW5mbzsKKworICAgIEhhc2hNYXA8
SURCUmVzb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24+PiBtX3RyYW5zYWN0aW9uczsKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURC
U2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA4NzdmNGRkLi45MjZkYWI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUg
IklEQlJlc3VsdERhdGEuaCIKICNpbmNsdWRlICJJREJTZXJ2ZXIuaCIKKyNpbmNsdWRlICJJREJU
cmFuc2FjdGlvbkluZm8uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAg
LTE1NiwxMSArMTU3LDE4IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKCkKICAgICBhZGRPcGVuRGF0YWJhc2VDb25uZWN0aW9uKCptX3ZlcnNp
b25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24pOwogCiAgICAgbV92ZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24gPSAmbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uLT5jcmVhdGVWZXJzaW9u
Q2hhbmdlVHJhbnNhY3Rpb24ocmVxdWVzdGVkVmVyc2lvbik7CisgICAgbV9zZXJ2ZXIucG9zdERh
dGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFz
ZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlLCBtX3ZlcnNpb25DaGFuZ2VUcmFuc2Fj
dGlvbi0+aW5mbygpKSk7CiAKICAgICBhdXRvIHJlc3VsdCA9IElEQlJlc3VsdERhdGE6Om9wZW5E
YXRhYmFzZVVwZ3JhZGVOZWVkZWQob3BlcmF0aW9uLT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3RJZGVu
dGlmaWVyKCksICptX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik7CiAgICAgb3BlcmF0aW9uLT5j
b25uZWN0aW9uKCkuZGlkT3BlbkRhdGFiYXNlKHJlc3VsdCk7CiB9CiAKK3ZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZShjb25zdCBJREJUcmFuc2Fj
dGlvbkluZm8mIGluZm8pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5pcXVlSURCRGF0
YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSIpOworICAgIG1fYmFja2luZ1N0
b3JlLT5iZWdpblRyYW5zYWN0aW9uKGluZm8pOworfQorCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
Ojpub3RpZnlDb25uZWN0aW9uc09mVmVyc2lvbkNoYW5nZSgpCiB7CiAgICAgQVNTRVJUKG1fdmVy
c2lvbkNoYW5nZU9wZXJhdGlvbik7CkBAIC0yMTQsNiArMjIyLDggQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYg
dHJhbnNhY3QKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIs
ICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uIik7CiAKKyAgICBB
U1NFUlQoJnRyYW5zYWN0aW9uLmRhdGFiYXNlQ29ubmVjdGlvbigpLmRhdGFiYXNlKCkgPT0gdGhp
cyk7CisKICAgICBpZiAobV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPT0gJnRyYW5zYWN0aW9u
KSB7CiAgICAgICAgIEFTU0VSVCgmbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPmRhdGFiYXNl
Q29ubmVjdGlvbigpID09IG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbik7CiAgICAg
ICAgIG1fZGF0YWJhc2VJbmZvLT5zZXRWZXJzaW9uKHRyYW5zYWN0aW9uLmluZm8oKS5uZXdWZXJz
aW9uKCkpOwpAQCAtMjI1LDE2ICsyMzUsMTMgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29t
bWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAg
ICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywg
JlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24sIGNhbGxiYWNrSUQs
IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKTsKIH0KIAotdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6cGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRp
ZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJikKK3ZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIs
IGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQogewog
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIsICIoZGIpIFVu
aXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24iKTsKIAotICAgIC8vIEZJ
WE1FOiBDb21taXQgdHJhbnNhY3Rpb24gaW4gYmFja2luZyBzdG9yZSwgb25jZSB0aGF0IGV4aXN0
cy4KLQotICAgIElEQkVycm9yIGVycm9yOworICAgIElEQkVycm9yIGVycm9yID0gbV9iYWNraW5n
U3RvcmUtPmNvbW1pdFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgbV9z
ZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywg
JlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24sIGNhbGxiYWNr
SWRlbnRpZmllciwgZXJyb3IpKTsKLQogfQogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQ
ZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25z
dCBJREJFcnJvciYgZXJyb3IpCkBAIC0yNDIsNiArMjQ5LDQ4IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OmRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50
aWZpZXIsCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAi
KG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24iKTsK
IAorICAgIC8vIFByZXZpb3VzbHkgYmxvY2tlZCB0cmFuc2FjdGlvbnMgbWlnaHQgbm93IGJlIHVu
YmxvY2tlZC4KKyAgICBpbnZva2VUcmFuc2FjdGlvblNjaGVkdWxlcigpOworCisgICAgcGVyZm9y
bUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcik7Cit9CisKK3ZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIEVycm9yQ2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRh
dGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBBU1NFUlQoJnRyYW5zYWN0aW9uLmRh
dGFiYXNlQ29ubmVjdGlvbigpLmRhdGFiYXNlKCkgPT0gdGhpcyk7CisKKyAgICBpZiAobV92ZXJz
aW9uQ2hhbmdlVHJhbnNhY3Rpb24gPT0gJnRyYW5zYWN0aW9uKSB7CisgICAgICAgIEFTU0VSVCgm
bV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigpID09IG1fdmVy
c2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbik7CisgICAgICAgIEFTU0VSVCh0cmFuc2FjdGlv
bi5vcmlnaW5hbERhdGFiYXNlSW5mbygpKTsKKyAgICAgICAgbV9kYXRhYmFzZUluZm8gPSBzdGQ6
Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4oKnRyYW5zYWN0aW9uLm9yaWdpbmFsRGF0YWJh
c2VJbmZvKCkpOworICAgICAgICBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9IG51bGxwdHI7
CisgICAgICAgIG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbiA9IG51bGxwdHI7Cisg
ICAgfQorCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2soY2FsbGJhY2sp
OworICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0
aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uLCBjYWxsYmFj
a0lELCB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKSk7Cit9CisKK3ZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRl
bnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgTE9HKEluZGV4ZWREQiwg
IihkYikgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uIik7CisKKyAg
ICBJREJFcnJvciBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5hYm9ydFRyYW5zYWN0aW9uKHRyYW5z
YWN0aW9uSWRlbnRpZmllcik7CisgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5KGNy
ZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3Jt
QWJvcnRUcmFuc2FjdGlvbiwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcikpOworfQorCit2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQWJvcnRUcmFuc2FjdGlvbih1aW50NjRfdCBj
YWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0
YWJhc2U6OmRpZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICAvLyBQcmV2aW91c2x5
IGJsb2NrZWQgdHJhbnNhY3Rpb25zIG1pZ2h0IG5vdyBiZSB1bmJsb2NrZWQuCisgICAgaW52b2tl
VHJhbnNhY3Rpb25TY2hlZHVsZXIoKTsKKwogICAgIHBlcmZvcm1FcnJvckNhbGxiYWNrKGNhbGxi
YWNrSWRlbnRpZmllciwgZXJyb3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IGY2
MjVjMDguLmVmZmE2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC00NCw2ICs0NCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCRXJyb3I7CiBjbGFzcyBJREJSZXF1ZXN0
RGF0YTsKK2NsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsKIAogbmFtZXNwYWNlIElEQlNlcnZlciB7
CiAKQEAgLTY1LDYgKzY2LDcgQEAgcHVibGljOgogICAgIElEQlNlcnZlciYgc2VydmVyKCkgeyBy
ZXR1cm4gbV9zZXJ2ZXI7IH0KIAogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbiYsIEVycm9yQ2FsbGJhY2spOworICAgIHZvaWQgYWJvcnRUcmFu
c2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxsYmFjayk7CiAg
ICAgdm9pZCB0cmFuc2FjdGlvbkRlc3Ryb3llZChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
Jik7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudChVbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb24mKTsKIApAQCAtODMsMTAgKzg1LDEzIEBAIHByaXZhdGU6CiAgICAgLy8gRGF0
YWJhc2UgdGhyZWFkIG9wZXJhdGlvbnMKICAgICB2b2lkIG9wZW5CYWNraW5nU3RvcmUoY29uc3Qg
SURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAgICAgdm9pZCBwZXJmb3JtQ29tbWl0VHJhbnNhY3Rp
b24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCBwZXJmb3JtQWJvcnRUcmFuc2Fj
dGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIGJlZ2luVHJhbnNhY3Rpb25J
bkJhY2tpbmdTdG9yZShjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKIAogICAgIC8vIE1haW4g
dGhyZWFkIGNhbGxiYWNrcwogICAgIHZvaWQgZGlkT3BlbkJhY2tpbmdTdG9yZShjb25zdCBJREJE
YXRhYmFzZUluZm8mKTsKICAgICB2b2lkIGRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50
NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CisgICAgdm9pZCBkaWRQ
ZXJmb3JtQWJvcnRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElEQkVycm9yJik7CiAKICAgICB2b2lkIHBlcmZvcm1FcnJvckNhbGxiYWNrKHVpbnQ2NF90IGNh
bGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcAppbmRleCAyYjBiYmM2Li40MzM1MWJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcApAQCAtOTMsNiArOTMsMTgg
QEAgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uOjpjcmVhdGVWZXJzaW9uQ2hhbmdlVHIKICAgICByZXR1cm4gdHJhbnNhY3Rpb24uZ2V0KCk7
CiB9CiAKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRBYm9ydFRyYW5zYWN0
aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjb25zdCBJREJF
cnJvciYgZXJyb3IpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlQ29u
bmVjdGlvbjo6ZGlkQWJvcnRUcmFuc2FjdGlvbiIpOworCisgICAgYXV0byB0cmFuc2FjdGlvbklk
ZW50aWZpZXIgPSB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpOworCisgICAgQVNTRVJU
KG1fdHJhbnNhY3Rpb25NYXAuY29udGFpbnModHJhbnNhY3Rpb25JZGVudGlmaWVyKSk7CisgICAg
bV90cmFuc2FjdGlvbk1hcC5yZW1vdmUodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKworICAgIG1f
Y29ubmVjdGlvblRvQ2xpZW50LmRpZEFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBlcnJvcik7Cit9CisKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRD
b21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlv
biwgY29uc3QgSURCRXJyb3ImIGVycm9yKQogewogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZENvbW1pdFRyYW5zYWN0aW9uIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgKaW5kZXggNmVlOGU3Zi4uMWY1MGU3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaApAQCAtNjIsNiArNjIsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IHJlcXVl
c3RlZFZlcnNpb24pOwogICAgIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIGNyZWF0ZVZl
cnNpb25DaGFuZ2VUcmFuc2FjdGlvbih1aW50NjRfdCBuZXdWZXJzaW9uKTsKIAorICAgIHZvaWQg
ZGlkQWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgY29uc3Qg
SURCRXJyb3ImKTsKICAgICB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24mLCBjb25zdCBJREJFcnJvciYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCmluZGV4IGM4YjJmZGUuLmI2M2Fl
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAKQEAg
LTQ0LDYgKzQ0LDkgQEAgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6VW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm4KICAgICA6IG1fZGF0YWJhc2VD
b25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX3RyYW5zYWN0aW9uSW5mbyhpbmZvKQogewor
ICAgIGlmIChtX3RyYW5zYWN0aW9uSW5mby5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlv
bk1vZGU6OlZlcnNpb25DaGFuZ2UpCisgICAgICAgIG1fb3JpZ2luYWxEYXRhYmFzZUluZm8gPSBz
dGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4obV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRh
dGFiYXNlKCkuaW5mbygpKTsKKwogICAgIG1fZGF0YWJhc2VDb25uZWN0aW9uLT5kYXRhYmFzZSgp
LnNlcnZlcigpLnJlZ2lzdGVyVHJhbnNhY3Rpb24oKnRoaXMpOwogfQogCkBAIC01Myw2ICs1Niwy
MyBAQCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjp+VW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbigpCiAgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNlKCkuc2VydmVyKCku
dW5yZWdpc3RlclRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAorSURCRGF0YWJhc2VJbmZvKiBVbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpvcmlnaW5hbERhdGFiYXNlSW5mbygpIGNvbnN0Cit7
CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25JbmZvLm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5z
YWN0aW9uTW9kZTo6VmVyc2lvbkNoYW5nZSk7CisgICAgcmV0dXJuIG1fb3JpZ2luYWxEYXRhYmFz
ZUluZm8uZ2V0KCk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6YWJv
cnQoKQoreworICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
OjphYm9ydCIpOworCisgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+IHNl
bGYodGhpcyk7CisgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNlKCkuYWJvcnRUcmFu
c2FjdGlvbigqdGhpcywgW3RoaXMsIHNlbGZdKGNvbnN0IElEQkVycm9yJiBlcnJvcikgeworICAg
ICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6YWJvcnQg
KGNhbGxiYWNrKSIpOworICAgICAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGlkQWJvcnRUcmFu
c2FjdGlvbigqdGhpcywgZXJyb3IpOworICAgIH0pOworfQorCiB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb246OmNvbW1pdCgpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb246OmNvbW1pdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uLmgKaW5kZXggYjJjYWNjYS4uYmUzOTU2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJh
bnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oCkBAIC0zNCw2ICszNCw5IEBACiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJE
YXRhYmFzZUluZm87CisKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCiBjbGFzcyBVbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb247CkBAIC00Nyw2ICs1MCw5IEBAIHB1YmxpYzoKICAgICBVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mIGRhdGFiYXNlQ29ubmVjdGlvbigpIHsgcmV0dXJuIG1fZGF0
YWJhc2VDb25uZWN0aW9uLmdldCgpOyB9CiAgICAgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBp
bmZvKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2FjdGlvbkluZm87IH0KIAorICAgIElEQkRhdGFi
YXNlSW5mbyogb3JpZ2luYWxEYXRhYmFzZUluZm8oKSBjb25zdDsKKworICAgIHZvaWQgYWJvcnQo
KTsKICAgICB2b2lkIGNvbW1pdCgpOwogCiBwcml2YXRlOgpAQCAtNTQsNiArNjAsOCBAQCBwcml2
YXRlOgogCiAgICAgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbj4gbV9kYXRhYmFzZUNv
bm5lY3Rpb247CiAgICAgSURCVHJhbnNhY3Rpb25JbmZvIG1fdHJhbnNhY3Rpb25JbmZvOworCisg
ICAgc3RkOjp1bmlxdWVfcHRyPElEQkRhdGFiYXNlSW5mbz4gbV9vcmlnaW5hbERhdGFiYXNlSW5m
bzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5jcHAKaW5kZXggOTczMzNmNi4u
OGE4NzVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCRXJyb3IuY3BwCkBAIC00Myw2ICs0MywxMCBAQCBzdGF0aWMgY29uc3QgU3RyaW5n
JiBpZGJFcnJvck5hbWUoSURCRXhjZXB0aW9uQ29kZSBjb2RlKQogICAgICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJhbCgiVmVyc2lvbkVycm9yIik7
CiAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICB9CisgICAgY2FzZSBJREJFeGNlcHRpb25Db2Rl
OjpJbnZhbGlkU3RhdGVFcnJvcjogeworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJhbCgiSW52YWxpZFN0YXRlRXJyb3IiKTsKKyAgICAgICAg
cmV0dXJuIGVudHJ5OworICAgIH0KICAgICBjYXNlIElEQkV4Y2VwdGlvbkNvZGU6Ok5vbmU6CiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtNTQsMTMgKzU4
LDE3IEBAIHN0YXRpYyBjb25zdCBTdHJpbmcmIGlkYkVycm9yRGVzY3JpcHRpb24oSURCRXhjZXB0
aW9uQ29kZSBjb2RlKQogewogICAgIHN3aXRjaCAoY29kZSkgewogICAgIGNhc2UgSURCRXhjZXB0
aW9uQ29kZTo6VW5rbm93bjogewotICAgICAgICBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGVudHJ5
ID0gQVNDSUlMaXRlcmFsKCJPcGVyYXRpb24gZmFpbGVkIGZvciByZWFzb25zIHVucmVsYXRlZCB0
byB0aGUgZGF0YWJhc2UgaXRzZWxmIGFuZCBub3QgY292ZXJlZCBieSBhbnkgb3RoZXIgZXJyb3Jz
LiIpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJ
TGl0ZXJhbCgiT3BlcmF0aW9uIGZhaWxlZCBmb3IgcmVhc29ucyB1bnJlbGF0ZWQgdG8gdGhlIGRh
dGFiYXNlIGl0c2VsZiBhbmQgbm90IGNvdmVyZWQgYnkgYW55IG90aGVyIGVycm9ycy4iKTsKICAg
ICAgICAgcmV0dXJuIGVudHJ5LmdldCgpOwogICAgIH0KICAgICBjYXNlIElEQkV4Y2VwdGlvbkNv
ZGU6OlZlcnNpb25FcnJvcjogewotICAgICAgICBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGVudHJ5
ID0gQVNDSUlMaXRlcmFsKCJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIG9wZW4gYSBkYXRhYmFzZSB1
c2luZyBhIGxvd2VyIHZlcnNpb24gdGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbi4iKTsKKyAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50cnkgPSBBU0NJSUxpdGVyYWwoIkFu
IGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93ZXIgdmVyc2lv
biB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIpOwogICAgICAgICByZXR1cm4gZW50cnkuZ2V0
KCk7CiAgICAgfQorICAgIGNhc2UgSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3I6
IHsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50cnkgPSBBU0NJSUxp
dGVyYWwoIk9wZXJhdGlvbiB3YXMgY2FsbGVkIG9uIGFuIG9iamVjdCBvbiB3aGljaCBpdCBpcyBu
b3QgYWxsb3dlZCBvciBhdCBhIHRpbWUgd2hlbiBpdCBpcyBub3QgYWxsb3dlZC4iKTsKKyAgICAg
ICAgcmV0dXJuIGVudHJ5OworICAgIH0KICAgICBjYXNlIElEQkV4Y2VwdGlvbkNvZGU6Ok5vbmU6
CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaAppbmRleCA0
MDcwMzRjLi42ZTc3NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCRXJyb3IuaApAQCAtMzYsNiArMzYsOSBAQCBlbnVtIGNsYXNzIElEQkV4
Y2VwdGlvbkNvZGUgewogICAgIE5vbmUgPSAwLAogICAgIFVua25vd24sCiAgICAgVmVyc2lvbkVy
cm9yLAorCisgICAgLy8gSW5kZXhlZCBEQiBleGlzdGluZyBleGNlcHRpb24gY29kZXMgd2l0aCBJ
REItc3BlY2lmaWMgZXJyb3IgbWVzc2FnZXM6CisgICAgSW52YWxpZFN0YXRlRXJyb3IsCiB9Owog
CiBjbGFzcyBJREJFcnJvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmluZGV4IDdjMmY5
YmYuLmQ3ZmRlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC0xMDIsNiArMTAy
LDE0IEBAIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRPcGVuRGF0YWJhc2UoY29uc3QgSURC
UmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKICAgICB9KTsKIH0KIAordm9pZCBJblByb2Nlc3NJREJT
ZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAgICBSZWZQ
dHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOworICAgIFJ1bkxvb3A6OmN1cnJlbnQo
KS5kaXNwYXRjaChbdGhpcywgc2VsZiwgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBlcnJvcl0gewor
ICAgICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkQWJvcnRUcmFuc2FjdGlvbih0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGVycm9yKTsKKyAgICB9KTsKK30KKwogdm9pZCBJblByb2Nlc3NJREJT
ZXJ2ZXI6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCiB7CiAgICAgUmVm
UHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2VsZih0aGlzKTsKQEAgLTExMCw2ICsxMTgsMTQgQEAg
dm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnMKICAgICB9KTsKIH0KIAordm9pZCBJblByb2Nlc3NJREJT
ZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXNvdXJjZUlk
ZW50aWZpZXIpCit7CisgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2VsZih0aGlzKTsK
KyAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHNlbGYsIHJlc291cmNlSWRl
bnRpZmllcl0geworICAgICAgICBtX3NlcnZlci0+YWJvcnRUcmFuc2FjdGlvbihyZXNvdXJjZUlk
ZW50aWZpZXIpOworICAgIH0pOworfQorCiB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6Y29tbWl0
VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXNvdXJjZUlkZW50aWZpZXIpCiB7
CiAgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2VsZih0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJ
REJTZXJ2ZXIuaAppbmRleCBkYzA5NDUxLi5iZDNjYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZl
ci5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAvLyBJREJDb25uZWN0aW9uVG9TZXJ2
ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVzdERhdGEmKSBvdmVy
cmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkRhdGFiYXNlKElEQlJlcXVlc3REYXRh
Jikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGFib3J0VHJhbnNhY3Rpb24oSURC
UmVzb3VyY2VJZGVudGlmaWVyJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGNv
bW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpIG92ZXJyaWRlIGZpbmFsOwog
ICAgIHZpcnR1YWwgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CiAKQEAgLTYzLDYgKzY0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXN1bHRE
YXRhJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5EYXRhYmFzZShj
b25zdCBJREJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGRp
ZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpIG92ZXJyaWRlIGZpbmFsOwog
ICAgIHZpcnR1YWwgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KElEQlNlcnZlcjo6VW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikgb3ZlcnJp
ZGUgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1NGM0OGVkLi40OTI1M2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTE2LDEyICsxNTE2LDEy
IEBACiAJCTQxNjJBNDU4MTAxMTQ2NDcwMERGRjNFRCAvKiBKU0RlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTYyQTQ1NjEwMTE0NjQ3MDBERkYzRUQgLyogSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5o
ICovOyB9OwogCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5nUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkUy
OUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oICovOyB9OwogCQk0
MTZFNkZFODFCQkQxMkRGMDAwQTYwMzMgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzEx
MEQwMEI3NjRDOSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjAz
NCAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA3MUJCMzExMEQwMEI3NjRDQSAvKiBT
dHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTZFNkZFODFCQkQxMkRGMDAwQTYwNDMgLyogUmVh
ZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ5IC8qIFJlYWRhYmxl
U3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk0MTZFNkZFOTFCQkQxMkU1MDAwQTYwNDMgLyogUmVhZGFibGVT
dHJlYW1CdWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0MTZF
NkZFQTFCQkQxNjg0MDAwQTYwNDQgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dy
YXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
MDNEODA3MUJCMzExMEQwMEI3NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5z
V3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1
aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTkgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlu
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQx
NkU2RkU5MUJCRDEyRTUwMDBBNjA0MyAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBE
MDBCNzY0RDggLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA1MyAv
KiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTggLyogV3JpdGFibGVTdHJl
YW1CdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjAzNCAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlu
c1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCMDNEODA3MUJCMzExMEQwMEI3NjRDQSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBw
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0
MTZFNkZFQTFCQkQxNjg0MDAwQTYwNDQgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlu
c1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCMDNEODA3MUJCMzExMEQwMEI3NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0
aW5zV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjA1NCAvKiBXcml0YWJsZVN0cmVhbUludGVybmFs
c0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NEVBIC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJu
YWxzQnVpbHRpbnNXcmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDE3MjUzQUExMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNzI1M0E4MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgKi87
IH07CiAJCTQxNzI1M0FCMTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3MjUzQTkx
MzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmggKi87IH07CkBAIC0yMTg1
LDYgKzIxODUsOCBAQAogCQk1MUUwQkFFQjBEQTU1RDRBMDBBOUU0MTcgLyogSlNTdG9yYWdlRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTBC
QUU5MERBNTVENEEwMEE5RTQxNyAvKiBKU1N0b3JhZ2VFdmVudC5oICovOyB9OwogCQk1MUUwQkIz
ODBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMEJCMzYwREE1QUNCNjAwQTlFNDE3IC8qIFN0b3Jh
Z2VNYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1MUUwQkIzOTBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUwQkIzNzBEQTVBQ0I2MDBBOUU0
MTcgLyogU3RvcmFnZU1hcC5jcHAgKi87IH07CisJCTUxRTFCQUMyMUJEODA2NEUwMDU1RDgxRiAv
KiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUxQkFDMDFCRDgwNjQ3MDA1NUQ4MUYgLyogTWVt
b3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwICovOyB9OworCQk1MUUxQkFDMzFCRDgwNjRF
MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFCQUMxMUJEODA2NDcwMDU1RDgx
RiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oICovOyB9OwogCQk1MUUxRUNCRTBD
OTFDOTA0MDBEQzI1NUIgLyogSWNvbkRhdGFiYXNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUxRUNCODBDOTFDOTA0MDBEQzI1NUIgLyog
SWNvbkRhdGFiYXNlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTFFMUVDQzAwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMUVDQkEw
QzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuY3BwICovOyB9OwogCQk1MUUxRUNDMTBDOTFD
OTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFFMUVDQkIwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQu
aCAqLzsgfTsKQEAgLTI2NjEsMTEgKzI2NjMsMTEgQEAKIAkJN0M0OEE2RDExOTFDOUQ2NTAwMDI2
Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0M0OEE2Q0YxOTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFj
ZS5oICovOyB9OwogCQk3QzQ5MDJBMjE4QjgyNUY4MDA3RDkyOTggLyogRE9NV2hlZWxFdmVudElu
dGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTk4OURDQTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NV2hlZWxFdmVudElu
dGVybmFsLmggKi87IH07CiAJCTdDNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxl
U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNwcCAqLzsgfTsK
KwkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDgxQUQ0NDgz
NTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uY3BwICovOyB9OwogCQk3QzRDOTZERDFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW0uaCAqLzsgfTsKKwkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3Jp
dGFibGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmggKi87IH07
CiAJCTdDNEM5NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkRB
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAqLzsgfTsKIAkJ
N0M0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkRCMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmggKi87IH07Ci0JCTdDNEM5NkRD
MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE2MCAv
KiBKU1dyaXRhYmxlU3RyZWFtLmNwcCAqLzsgfTsKLQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTYw
IC8qIEpTV3JpdGFibGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFt
LmggKi87IH07CiAJCTdDNEM5NkUzMUFENDRBQkYwMDM2NUE1MCAvKiBMYXVuY2hTZXJ2aWNlc1NQ
SS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2
RTIxQUQ0NEFCRjAwMzY1QTUwIC8qIExhdW5jaFNlcnZpY2VzU1BJLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0M0RURENzQxQTdCNjA3ODAwMTk4
QzREIC8qIEZvbnRDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNEVERDczMUE3QjYwNzgwMDE5OEM0RCAvKiBGb250Q29jb2EubW0gKi87IH07
CiAJCTdDNTIyRDRCMTVCNDc3RTgwMDlCN0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTIyRDQ5MTVCNDc3
RTgwMDlCN0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5LmNwcCAqLzsgfTsKQEAgLTk1OTEsNiArOTU5
Myw4IEBACiAJCTUxRTBCQUU5MERBNTVENEEwMEE5RTQxNyAvKiBKU1N0b3JhZ2VFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0b3JhZ2VFdmVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUwQkIzNjBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFn
ZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlTWFwLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTBCQjM3MERBNUFDQjYwMEE5RTQxNyAvKiBT
dG9yYWdlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3Jh
Z2VNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUxQkFDMDFCRDgwNjQ3
MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUxQkFDMTFCRDgwNjQ3MDA1NUQ4
MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMUVDQjgwQzkxQzkwNDAwREMyNTVCIC8qIEljb25EYXRh
YmFzZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJY29uRGF0YWJh
c2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMUVDQkEwQzkxQzkw
NDAwREMyNTVCIC8qIEljb25SZWNvcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSWNvblJlY29yZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RTFFQ0JCMEM5MUM5MDQwMERDMjU1QiAvKiBJY29uUmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEljb25SZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEwMTIwLDExICsxMDEyNCwxMSBAQAogCQk3QzQ4QTZDRjE5MUM5RDY1MDAwMjY2NzQgLyog
V2ViS2l0TmFtZXNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktp
dE5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzQ4QTZEMjE5MUM5
RDhFMDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXROYW1lc3BhY2Uu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNSZWFkYWJsZVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXcml0YWJsZVN0cmVhbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBK
U1JlYWRhYmxlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVh
ZGFibGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M0Qzk2RDkxQUQ0
NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNXcml0YWJsZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFt
UmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2REIxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVh
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dyaXRhYmxlU3Ry
ZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0M0Qzk2RDkxQUQ0NDgzNTAw
MzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNXcml0YWJsZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzRDOTZFMjFBRDQ0QUJGMDAzNjVBNTAgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF1bmNoU2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M1MjJENDkxNUI0NzdFODAwOUI3Qzk1IC8q
IEluc3BlY3Rvck92ZXJsYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5zcGVjdG9yT3ZlcmxheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MTM2NCwxNCArMTEzNjgsMTMgQEAKIAkJOTkwOEIwRUMxQkNBQ0YxRjAwRUQwRjY1IC8qIGdlbmVy
YXRlLWpzLWJ1aWx0aW5zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gImdl
bmVyYXRlLWpzLWJ1aWx0aW5zIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIw
RUQxQkNBQ0Y5MTAwRUQwRjY1IC8qIEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0
ZWd5LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBFRTFCQ0FDRjkxMDBF
RDBGNjUgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmph
dmFzY3JpcHQ7IHBhdGggPSBDb3VudFF1ZXVpbmdTdHJhdGVneS5qczsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjU1IC8qIFN0cmVhbUludGVybmFs
cy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFN0cmVhbUludGVy
bmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRkQxQkNBRDA3RDAw
RUQwRjU1IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxl
U3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFi
bGVTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhCMEVGMUJDQUNG
OTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTA4QjBGMDFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTA4QjBG
MTFCQ0FDRjkxMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJl
YW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBS
ZWFkYWJsZVN0cmVhbUludGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OTkwOEIwRjIxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXIu
anM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5MDhCMEVGMUJDQUNGOTEwMEVEMEY3
NSAvKiBXcml0YWJsZVN0cmVhbS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsg
cGF0aCA9IFdyaXRhYmxlU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVy
bmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTkwOEIwRjIxQkNBQ0Y5MTAw
RUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5q
YXZhc2NyaXB0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXIuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5MDhCMEYzMUJDQUNGRkUwMEVEMEY2NSAvKiBCeXRlTGVuZ3RoUXVl
dWluZ1N0cmF0ZWd5QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjQxQkNBQ0ZGRTAwRUQwRjY1IC8qIEJ5dGVMZW5ndGhR
dWV1aW5nU3RyYXRlZ3lCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zV3JhcHBlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGNTFCQ0FEMDdEMDBFRDBGNjUgLyogQnl0
ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTEzNzksMTUgKzExMzgyLDE2IEBACiAJCTk5MDhCMEY3MUJD
QUQwN0QwMEVEMEY2NSAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjgxQkNBRDA3RDAwRUQwRjY1IC8q
IENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnNXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnNXcmFwcGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEY5MUJDQUQwN0QwMEVEMEY2NSAvKiBS
ZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5OTA4QjBGOTFCQ0FEMDdEMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW1CdWlsdGlu
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXcml0YWJsZVN0cmVh
bUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkExQkNB
RDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ckJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkIxQkNB
RDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0
aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZDMUJDQUQwN0QwMEVE
MEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRp
bnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhCMEZEMUJDQUQw
N0QwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFk
YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNzUgLyogV3JpdGFi
bGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkUxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxl
U3RyZWFtUmVhZGVyQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5MDhCMEZGMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbVJl
YWRlckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxl
U3RyZWFtUmVhZGVyQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkw
OEIxMDAxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnNXcmFw
cGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtUmVh
ZGVyQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5MDhC
MEY5MUJDQUQwN0QwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNzUg
LyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyMDM5ODAxOEI5NUJDNjAwQjM5QUY5IC8q
IFVzZXJJbnB1dEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVc2VySW5wdXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTIw
Mzk4MTE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OUM3Q0NCMjE4QzY2M0U0MDAzMkU0MTMgLyogTWVtb2l6ZWRET01SZXN1bHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb2l6ZWRET01SZXN1bHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNDI1LDEzICsxMTQyOSwxMyBAQAogCQk5
QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQjFGMzdGMThFMjQ4OUEwMDUzNDc0
MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0QzkgLyogU3RyZWFtSW50
ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyZWFt
SW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUIwM0Q4
MDcxQkIzMTEwRDAwQjc2NENBIC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dy
YXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4MDYxQkIzMTEwRDAw
Qjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDkgLyogUmVhZGFibGVTdHJlYW1JbnRl
cm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJs
ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTlCMDNEODA3MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJ1aWx0
aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QjAzRDgwNzFCQjMx
MTBEMDBCNzY0REEgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNC
dWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4MDYx
QkIzMTEwRDAwQjc2NEU4IC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTkgLyogV3JpdGFibGVT
dHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTlCMDNEODA3MUJCMzExMEQwMEI3NjRDQSAvKiBTdHJlYW1JbnRlcm5hbHNCdWls
dGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyZWFtSW50
ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlC
MDNEODA3MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5z
V3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjAzRDgwNzFCQjMxMTBE
MDBCNzY0REEgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWls
dGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4MDcxQkIz
MTEwRDAwQjc2NEU4IC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA3MUJCMzExMEQwMEI3NjRFQSAv
KiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjE5QjY3RTFCOTY0RTUyMDAzNDg3
NDUgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2hhZG93Um9vdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQwOCw3ICsxNjQxMiw2IEBACiAJ
CQkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRGIC8qIFdyaXRhYmxlU3RyZWFtLmlkbCAqLywKIAkJ
CQk5OTA4QjBFRjFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW0uanMgKi8sCiAJCQkJ
OTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjc1IC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzICov
LAotCiAJCQkpOwogCQkJcGF0aCA9IHN0cmVhbXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMTY4MjksNiArMTY4MzIsOCBAQAogCQkJCTUxMEE1OEYwMUJBQjcyMEYwMEMxOTI4MiAv
KiBJREJTZXJ2ZXIuaCAqLywKIAkJCQk1MTg4NjRFNDFCQkI0QjdFMDBFNTQwQzkgLyogSURCU2Vy
dmVyT3BlcmF0aW9uLmNwcCAqLywKIAkJCQk1MTg4NjRFNTFCQkI0QjdFMDBFNTQwQzkgLyogSURC
U2VydmVyT3BlcmF0aW9uLmggKi8sCisJCQkJNTFFMUJBQzAxQkQ4MDY0NzAwNTVEODFGIC8qIE1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcCAqLywKKwkJCQk1MUUxQkFDMTFCRDgwNjQ3
MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCAqLywKIAkJCQk1MUJB
NEFDODFCQkM1QjlFMDBERjNENkQgLyogTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCAqLywKIAkJ
CQk1MUJBNEFDOTFCQkM1QjlFMDBERjNENkQgLyogTWVtb3J5SURCQmFja2luZ1N0b3JlLmggKi8s
CiAJCQkJNTE4ODY0REUxQkJBRjMwRjAwRTU0MEM5IC8qIFVuaXF1ZUlEQkRhdGFiYXNlLmNwcCAq
LywKQEAgLTI2OTYwLDYgKzI2OTY1LDcgQEAKIAkJCQk0MzkwNDZERTEyREEyNUU4MDBBRjgwQTIg
LyogUmVuZGVyTWF0aE1MTWF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2RTAxMkRBMjVF
ODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE9wZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MzkwNDZFMDEyREEyNUU4MDBCRjgwQTMgLyogUmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkUyMTJEQTI1
RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQk0Mzkw
NDZFNDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MUm93LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzkwNDZFODEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MU2NyaXB0cy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yOTk4MCw2ICsyOTk4Niw3IEBACiAJCQkJQjJGQTNEQkMwQUI3NUE2
RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCMkZBM0RCRTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREMwMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFFMUJBQzIx
QkQ4MDY0RTAwNTVEODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyRkEzREMyMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEQzQwQUI3
NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMkZBM0RDNjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263712</attachid>
            <date>2015-10-21 12:27:28 -0700</date>
            <delta_ts>2015-10-21 12:28:20 -0700</delta_ts>
            <desc>Patch v3 - Try to fix EFL again.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>79734</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTlkMGU3Li4wYzQ1ZjE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMTAt
MjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Rv
dWJsZS1hYm9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9kb3VibGUtYWJvcnQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNo
YW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sOiBBZGRlZC4KKwogMjAxNS0xMC0yMSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxJRnJhbWVFbGVtZW50LnNh
bmRib3ggc2hvdWxkIGJlIGEgRE9NU2V0dGFibGVUb2tlbkxpc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtYWJvcnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTczNDk4ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3Vi
bGUtYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQUxFUlQ6IEluaXRpYWwgdXBn
cmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKK0FMRVJUOiBTZWNv
bmQgYWJvcnQgZmFpbGVkOiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24g
MTEKK0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBhYm9y
dGVkCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IGFib3J0cyB0aGUgc2FtZSB0cmFuc2FjdGlvbiB0
d2ljZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gaXMgdGhyb3duLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1Mzg4MzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLWFi
b3J0Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorVGhpcyB0ZXN0IGFib3J0cyB0aGUgc2FtZSB0cmFu
c2FjdGlvbiB0d2ljZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gaXMgdGhyb3du
LgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2Z1bmN0
aW9uIGRvbmUoKQoreworICAgIGFsZXJ0KCJEb25lIik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIGNyZWF0ZVJl
cXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRvdWJsZUFib3J0VGVzdERhdGFiYXNlIiwg
MSk7CisKK2NyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICBhbGVydCgiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZl
bnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisK
KyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsK
KyAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgdmVyc2lvblRy
YW5zYWN0aW9uLmFib3J0KCk7CisgICAgdHJ5IHsKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9u
LmFib3J0KCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBhbGVydCgiU2Vjb25kIGFib3J0
IGZhaWxlZDogIiArIGUpOworICAgIH0KKworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJz
aW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0K
KworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
IHVuZXhwZWN0ZWQgY29tcGxldGUiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKworICAgIHZl
cnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxl
cnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQg
ZXJyb3IiICsgZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAgfQorfQorCis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9u
Y2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTY5NzgzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3ZlcnNp
b25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
K0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNp
b24gLSAxCitBTEVSVDogSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24g
YWJvcnRlZAorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5l
dyB2ZXJzaW9uIC0gMQorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb24gY29tcGxldGUKK0FMRVJUOiBUaGlyZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24g
LSAxIE5ldyB2ZXJzaW9uIC0gMgorQUxFUlQ6IFRoaXJkIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0
cmFuc2FjdGlvbiBhYm9ydGVkCitBTEVSVDogRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVy
c2lvbiAtIDEgTmV3IHZlcnNpb24gLSAyCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IG9wZW5zIGEg
bmV3IGRhdGFiYXNlLCB0aGVuIGFib3J0cyB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24u
CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBpdCdzIGEgZGVmYXVs
dCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1Y2Nlc3NmdWxseS4K
K0l0IHRoZW4gcmVvcGVucyB0aGUgZGF0YWJhc2UsIHVwZ3JhZGluZyBpdCdzIHZlcnNpb24uIEl0
IGFib3J0cyB0aGlzIHZlcnNpb25jaGFuZ2UsIGFzIHdlbGwuCitGaW5hbGx5IGl0IHJlb3BlbnMg
dGhlIGRhdGFiYXNlIGFnYWluLCB1cGdyYWRpbmcgaXRzIHZlcnNpb24sIG1ha2luZyBzdXJlIHRo
aW5ncyBoYWQgcmV2ZXJ0ZWQgYmFjayB0byBiZWZvcmUgdGhlIHNlY29uZCBhYm9ydGVkIHZlcnNp
b25jaGFuZ2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwN2Y3ZTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNo
YW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sCkBAIC0wLDAgKzEsMTE1IEBACitUaGlzIHRlc3Qg
b3BlbnMgYSBuZXcgZGF0YWJhc2UsIHRoZW4gYWJvcnRzIHRoZSB2ZXJzaW9uIGNoYW5nZSB0cmFu
c2FjdGlvbi48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBp
dCdzIGEgZGVmYXVsdCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1
Y2Nlc3NmdWxseS48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCB1cGdyYWRpbmcg
aXQncyB2ZXJzaW9uLiBJdCBhYm9ydHMgdGhpcyB2ZXJzaW9uY2hhbmdlLCBhcyB3ZWxsLjxicj4K
K0ZpbmFsbHkgaXQgcmVvcGVucyB0aGUgZGF0YWJhc2UgYWdhaW4sIHVwZ3JhZGluZyBpdHMgdmVy
c2lvbiwgbWFraW5nIHN1cmUgdGhpbmdzIGhhZCByZXZlcnRlZCBiYWNrIHRvIGJlZm9yZSB0aGUg
c2Vjb25kIGFib3J0ZWQgdmVyc2lvbmNoYW5nZS48YnI+Cis8c2NyaXB0PgorCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgYWxlcnQo
IkRvbmUiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworfQorCit2YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisKK2NyZWF0ZVJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBhbGVydCgiSW5pdGlh
bCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIg
TmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisKKyAgICB2YXIgdmVyc2lvblRy
YW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgZGF0YWJhc2Ug
PSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLmFib3J0KCk7
CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBh
Ym9ydGVkIik7CisgICAgICAgIGNvbnRpbnVlVGVzdDEoKTsKKyAgICAgICAgZGF0YWJhc2UuY2xv
c2UoKTsKKyAgICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5n
ZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGNvbXBsZXRlIik7CisgICAgICAgIGRvbmUoKTsKKyAg
ICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
biB1bmV4cGVjdGVkIGVycm9yIiArIGV2ZW50KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30K
KworZnVuY3Rpb24gY29udGludWVUZXN0MSgpCit7CisgICAgY3JlYXRlUmVxdWVzdCA9IHdpbmRv
dy5pbmRleGVkREIub3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisK
KyAgICBjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2
ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwor
CisgICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0
aW9uOworICAgICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAg
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVu
ZXhwZWN0ZWQgYWJvcnQiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
IGNvbXBsZXRlIik7CisgICAgICAgICAgICBjb250aW51ZVRlc3QyKCk7CisgICAgICAgICAgICBk
YXRhYmFzZS5jbG9zZSgpOworICAgICAgICB9CisKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9u
Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgYWxlcnQoIlNlY29uZCB1
cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVu
dCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9u
IGNvbnRpbnVlVGVzdDIoKQoreworICAgIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERC
Lm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRlc3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRl
UmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVy
dCgiVGhpcmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNp
b24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgICAgIHZh
ciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAg
ICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZlcnNpb25U
cmFuc2FjdGlvbi5hYm9ydCgpOworICAgIAorICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25h
Ym9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFk
ZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICAgICAgICAgIGNvbnRp
bnVlVGVzdDMoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLmNsb3NlKCk7CisgICAgICAgIH0KKwor
ICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0
aW9uIHVuZXhwZWN0ZWQgY29tcGxldGUiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIGFsZXJ0KCJUaGlyZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAgICAgICBkb25lKCk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdDMoKQoreworICAgIGNy
ZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRl
c3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBP
bGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBl
dmVudC5uZXdWZXJzaW9uKTsKKyAgICAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30KKworPC9zY3JpcHQ+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NzZkOTdiLi4xNTRiNzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTA0LDYgKzkwNCw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCiAgICAgTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlck9wZXJhdGlvbi5jcHAKKyAgICBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAyZGUyYjNmLi5kNTQyNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTUgQEAKKzIw
MTUtMTAtMjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1v
ZGVybiBJREI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vZG91YmxlLWFib3J0Lmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwKKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERC
Lmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
Q2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkRh
dGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCRGF0YWJhc2U6OmRpZENvbW1pdE9yQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmFib3J0KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmlzRmluaXNoZWRP
ckZpbmlzaGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9u
OjphY3RpdmF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QlRyYW5zYWN0aW9uOjpkaWRBYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEFib3J0VHJh
bnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29u
bmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb246Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246On5NZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpjb21taXQpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbjo6aXNWZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6c2V0RGF0YWJhc2VJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2lu
Z1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
TWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oOgorCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURC
RGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29t
bWl0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpk
aWRBYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246Om9yaWdpbmFsRGF0YWJhc2VJbmZvKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bjo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJFcnJvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppZGJFcnJvck5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6aWRiRXJyb3JEZXNjcmlwdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaDoKKwogMjAxNS0xMC0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxJRnJhbWVF
bGVtZW50LnNhbmRib3ggc2hvdWxkIGJlIGEgRE9NU2V0dGFibGVUb2tlbkxpc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgKaW5kZXggN2ZjNTFkYS4uNTU4
YmJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhl
ZERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgK
QEAgLTQzLDYgKzQzLDcgQEAgZW51bSBjbGFzcyBUcmFuc2FjdGlvblN0YXRlIHsKICAgICBVbnN0
YXJ0ZWQsCiAgICAgUnVubmluZywKICAgICBDb21taXR0aW5nLAorICAgIEFib3J0aW5nLAogICAg
IEZpbmlzaGVkLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCBh
ZTg3NDQyLi4xMzBkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAt
MTEzLDYgKzExMywyNiBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkQ29tbWl0VHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cgogICAgIHRyYW5zYWN0aW9u
LT5kaWRDb21taXQoZXJyb3IpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJv
cnRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKElu
ZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbiIpOworICAg
IEFTU0VSVCghbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbi5pbmZv
KCkuaWRlbnRpZmllcigpKSk7CisgICAgbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5zZXQodHJhbnNh
Y3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgJnRyYW5zYWN0aW9uKTsKKworICAgIGF1dG8gaWRl
bnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCk7CisgICAgbV9kZWxlZ2F0
ZS0+YWJvcnRUcmFuc2FjdGlvbihpZGVudGlmaWVyKTsKK30KKwordm9pZCBJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAgICBM
T0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRBYm9ydFRyYW5zYWN0aW9u
Iik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy50YWtl
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgQVNTRVJUKHRyYW5zYWN0aW9uKTsKKworICAg
IHRyYW5zYWN0aW9uLT5kaWRBYm9ydChlcnJvcik7Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblRv
U2VydmVyOjpmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGNjNGUzOTIuLmJiZmQyMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAg
IHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKICAgICB2b2lkIGRpZENv
bW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCisgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9u
KElEQlRyYW5zYWN0aW9uJik7CisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJv
ciYpOworCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwogCiAgICAg
dm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQoSURCRGF0YWJhc2UmKTsKQEAgLTc1LDYgKzc4
LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRy
PElEQkNsaWVudDo6SURCT3BlbkRCUmVxdWVzdD4+IG1fb3BlbkRCUmVxdWVzdE1hcDsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBJREJEYXRhYmFzZSo+IG1fZGF0YWJhc2VDb25uZWN0aW9uTWFwOwog
ICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+
PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50
aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWJvcnRpbmdUcmFuc2FjdGlvbnM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlckRlbGVnYXRlLmgKaW5kZXggNTYwN2JiYi4uMTZkYWRjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVzdERhdGEmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9wZW5EYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgYWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcAppbmRl
eCBhYWI2MzdlLi40OWE0ZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtMTc1LDYgKzE3
NSwxNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaWRDb21taXRUcmFuc2FjdGlvbihJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24pCiAgICAgZGlkQ29tbWl0T3JBYm9ydFRyYW5zYWN0aW9uKHRyYW5z
YWN0aW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNl
OjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHJlZlRyYW5zYWN0aW9uID0gbV9hY3Rp
dmVUcmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKTsKKyAg
ICBBU1NFUlQocmVmVHJhbnNhY3Rpb24pOworICAgIG1fYWJvcnRpbmdUcmFuc2FjdGlvbnMuc2V0
KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIFdURjo6bW92ZShyZWZUcmFuc2FjdGlv
bikpOworCisgICAgbV9zZXJ2ZXJDb25uZWN0aW9uLT5hYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0
aW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZTo6ZGlkQWJvcnRUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNl
OjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CkBAIC0xODcsMTEgKzE5OCwyMiBAQCB2b2lkIElEQkRh
dGFiYXNlOjpkaWRDb21taXRPckFib3J0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uKQogCiAgICAgaWYgKG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID09ICZ0cmFuc2Fj
dGlvbikKICAgICAgICAgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwotICAg
IAotICAgIEFTU0VSVChtX2FjdGl2ZVRyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbi5p
bmZvKCkuaWRlbnRpZmllcigpKSB8fCBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMuY29udGFpbnMo
dHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOworCisjaWZuZGVmIE5EQkVCVUcKKyAg
ICB1bnNpZ25lZCBjb3VudCA9IDA7CisgICAgaWYgKG1fYWN0aXZlVHJhbnNhY3Rpb25zLmNvbnRh
aW5zKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKQorICAgICAgICArK2NvdW50Owor
ICAgIGlmIChtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5m
bygpLmlkZW50aWZpZXIoKSkpCisgICAgICAgICsrY291bnQ7CisgICAgaWYgKG1fYWJvcnRpbmdU
cmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpCisg
ICAgICAgICsrY291bnQ7CisKKyAgICBBU1NFUlQoY291bnQgPT0gMSk7CisjZW5kaWYKIAogICAg
IG1fYWN0aXZlVHJhbnNhY3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmll
cigpKTsKICAgICBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMucmVtb3ZlKHRyYW5zYWN0aW9uLmlu
Zm8oKS5pZGVudGlmaWVyKCkpOworICAgIG1fYWJvcnRpbmdUcmFuc2FjdGlvbnMucmVtb3ZlKHRy
YW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIElEQkRhdGFiYXNlOjpm
aXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJh
c2VJbXBsLmgKaW5kZXggYmY2MDQ4MS4uMmJmYjExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuaApAQCAt
NzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgUmVmPElEQlRyYW5zYWN0aW9uPiBzdGFydFZlcnNp
b25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lk
IGNvbW1pdFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBkaWRDb21taXRU
cmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYpOworICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJ
REJUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihJREJUcmFuc2Fj
dGlvbiYpOwogCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IHJlcXVl
c3RlZFZlcnNpb24pOwpAQCAtOTYsNiArOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJREJU
cmFuc2FjdGlvbj4gbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb247CiAgICAgSGFzaE1hcDxJREJS
ZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWN0aXZlVHJhbnNh
Y3Rpb25zOwogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURCVHJh
bnNhY3Rpb24+PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAgSGFzaE1hcDxJREJSZXNv
dXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWJvcnRpbmdUcmFuc2Fj
dGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9u
SW1wbC5jcHAKaW5kZXggZDkzN2FhYS4uNTQxZTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1w
bC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJET01FcnJvci5oIgogI2luY2x1ZGUg
IkV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUltcGwuaCIKKyNpbmNsdWRlICJJ
REJFcnJvci5oIgogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIklE
Qk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNTEsOCArNTIsMTMgQEAg
SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29u
c3QgSURCVHJhbnNhY3Rpb25JbmZvJgogICAgICwgbV9vcGVyYXRpb25UaW1lcigqdGhpcywgJklE
QlRyYW5zYWN0aW9uOjpvcGVyYXRpb25UaW1lckZpcmVkKQogCiB7CisgICAgbV9hY3RpdmF0aW9u
VGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjph
Y3RpdmF0aW9uVGltZXJGaXJlZCk7CisgICAgbV9hY3RpdmF0aW9uVGltZXItPnN0YXJ0T25lU2hv
dCgwKTsKKworICAgIGlmIChtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlOjpWZXJzaW9uQ2hhbmdlKQorICAgICAgICBtX29yaWdpbmFsRGF0YWJhc2VJbmZvID0gc3Rk
OjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KG1fZGF0YWJhc2UtPmluZm8oKSk7CisKICAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvblRpbWVyKCk7CiAgICAg
bV9zdGF0ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6UnVubmluZzsKIH0KIApAQCAt
OTEsOSArOTcsMTggQEAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJUcmFuc2FjdGlvbjo6b2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotdm9pZCBJREJUcmFuc2FjdGlvbjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYpCit2b2lk
IElEQlRyYW5zYWN0aW9uOjphYm9ydChFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OmFib3J0
Iik7CisKKyAgICBpZiAoaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc3RhdGUg
PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkFib3J0aW5nOworCisgICAgbV9kYXRhYmFz
ZS0+YWJvcnRUcmFuc2FjdGlvbigqdGhpcyk7CiB9CiAKIGNvbnN0IGNoYXIqIElEQlRyYW5zYWN0
aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTExNiw2ICsxMzEsMTkgQEAgYm9v
bCBJREJUcmFuc2FjdGlvbjo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiBtX3N0YXRlID09
IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6UnVubmluZzsKIH0KIAorYm9vbCBJREJUcmFu
c2FjdGlvbjo6aXNGaW5pc2hlZE9yRmluaXNoaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
dGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkNvbW1pdHRpbmcKKyAgICAgICAg
fHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkFib3J0aW5nCisgICAg
ICAgIHx8IG1fc3RhdGUgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpGaW5pc2hlZDsK
K30KKwordm9pZCBJREJUcmFuc2FjdGlvbjo6YWN0aXZhdGlvblRpbWVyRmlyZWQoKQoreworICAg
IHNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKTsKKyAgICBtX2FjdGl2YXRpb25UaW1lciA9IG51bGxw
dHI7Cit9CisKIHZvaWQgSURCVHJhbnNhY3Rpb246OnNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKQog
ewogICAgIGlmICghbV9vcGVyYXRpb25UaW1lci5pc0FjdGl2ZSgpKQpAQCAtMTUxLDYgKzE3OSwy
MCBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpjb21taXQoKQogICAgIG1fZGF0YWJhc2UtPmNvbW1p
dFRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAordm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkQWJvcnQo
Y29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2Fj
dGlvbjo6ZGlkQWJvcnQiKTsKKworICAgIEFTU0VSVChtX3N0YXRlID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25TdGF0ZTo6QWJvcnRpbmcgfHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0
aW9uU3RhdGU6OlJ1bm5pbmcpOworCisgICAgbV9kYXRhYmFzZS0+ZGlkQWJvcnRUcmFuc2FjdGlv
bigqdGhpcyk7CisKKyAgICBtX2lkYkVycm9yID0gZXJyb3I7CisgICAgZmlyZU9uQWJvcnQoKTsK
KworICAgIG1fc3RhdGUgPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkZpbmlzaGVkOwor
fQorCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRDb21taXQoY29uc3QgSURCRXJyb3ImIGVycm9y
KQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6ZGlkQ29tbWl0Iik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJh
bnNhY3Rpb25JbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCVHJhbnNhY3Rpb25JbXBsLmgKaW5kZXggMGQzNjA2Yy4uMDcyYzI4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFu
c2FjdGlvbkltcGwuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAKKyNpbmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIKICNpbmNsdWRlICJJREJFcnJv
ci5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rp
b25JbmZvLmgiCkBAIC02OCwxNiArNjksMTkgQEAgcHVibGljOgogICAgIElEQkRhdGFiYXNlJiBk
YXRhYmFzZSgpIHsgcmV0dXJuIG1fZGF0YWJhc2UuZ2V0KCk7IH0KICAgICBjb25zdCBJREJEYXRh
YmFzZSYgZGF0YWJhc2UoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9CiAKKyAg
ICB2b2lkIGRpZEFib3J0KGNvbnN0IElEQkVycm9yJik7CiAgICAgdm9pZCBkaWRDb21taXQoY29u
c3QgSURCRXJyb3ImKTsKIAogcHJpdmF0ZToKICAgICBJREJUcmFuc2FjdGlvbihJREJEYXRhYmFz
ZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0OworICAgIGJvb2wgaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBj
b21taXQoKTsKIAogICAgIHZvaWQgc2NoZWR1bGVPcGVyYXRpb25UaW1lcigpOwogICAgIHZvaWQg
b3BlcmF0aW9uVGltZXJGaXJlZCgpOworICAgIHZvaWQgYWN0aXZhdGlvblRpbWVyRmlyZWQoKTsK
IAogICAgIHZvaWQgZmlyZU9uQ29tcGxldGUoKTsKICAgICB2b2lkIGZpcmVPbkFib3J0KCk7CkBA
IC04NSwxMSArODksMTMgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJREJEYXRhYmFzZT4gbV9kYXRh
YmFzZTsKICAgICBJREJUcmFuc2FjdGlvbkluZm8gbV9pbmZvOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxJREJEYXRhYmFzZUluZm8+IG1fb3JpZ2luYWxEYXRhYmFzZUluZm87CiAKICAgICBJbmRleGVk
REI6OlRyYW5zYWN0aW9uU3RhdGUgbV9zdGF0ZSB7IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0
ZTo6VW5zdGFydGVkIH07CiAgICAgSURCRXJyb3IgbV9pZGJFcnJvcjsKIAogICAgIFRpbWVyIG1f
b3BlcmF0aW9uVGltZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBtX2FjdGl2YXRpb25U
aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGE1YTQ4YzEuLjZmZjFlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKQEAgLTI5LDggKzI5LDEz
IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJEYXRhYmFz
ZUluZm8uaCIKKyNpbmNsdWRlICJJREJFcnJvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElEQlJlc291cmNlSWRlbnRpZmllcjsKK2NsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsK
KwogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKIGNsYXNzIElEQkJhY2tpbmdTdG9yZSB7CkBAIC0z
OCw2ICs0MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCQmFja2luZ1N0b3JlKCkgeyB9
CiAKICAgICB2aXJ0dWFsIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYgZ2V0T3JFc3RhYmxpc2hEYXRh
YmFzZUluZm8oKSA9IDA7CisKKyAgICB2aXJ0dWFsIElEQkVycm9yIGJlZ2luVHJhbnNhY3Rpb24o
Y29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgYWJv
cnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgY29tbWl0VHJhbnNhY3Rpb24oY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpID0gMDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAppbmRleCA0Y2YzNmY3Li4zNGEwMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcApAQCAtNTgsNiArNTgsMTEgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZE9wZW5EYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCiAgICAgbV9kZWxlZ2F0
ZS0+ZGlkT3BlbkRhdGFiYXNlKHJlc3VsdCk7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCit7CisgICAgbV9kZWxl
Z2F0ZS0+ZGlkQWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKTsK
K30KKwogdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJFcnJvciYgZXJyb3IpCiB7CiAgICAgbV9kZWxlZ2F0ZS0+ZGlkQ29tbWl0VHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBlcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmgKaW5kZXggMWYwZTUzNC4uZTNkZjk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
aApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNl
KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBJ
REJSZXN1bHREYXRhJik7CisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYp
OwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKICAgICB2b2lk
IGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGll
bnREZWxlZ2F0ZS5oCmluZGV4IDI4ZWNjYjIuLmVlYjhlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJD
b25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRGF0YWJhc2UoY29uc3QgSURCUmVzdWx0RGF0
YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3Im
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHAKaW5kZXggNDVlMTZmZS4uMzBkZWM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTE0Miw2ICsxNDIs
MjAgQEAgdm9pZCBJREJTZXJ2ZXI6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSkKICAgICBjb25uZWN0aW9uLT5kaWREZWxldGVEYXRhYmFzZShyZXN1bHQp
OwogfQogCit2b2lkIElEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBMT0coSW5kZXhlZERC
LCAiSURCU2VydmVyOjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9u
ID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0
cmFuc2FjdGlvbikgeworICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyB0cmFuc2FjdGlvbiB0aGVy
ZSBpcyBub3RoaW5nIHRvIGFib3J0LgorICAgICAgICAvLyBXZSBhbHNvIGhhdmUgbm8gYWNjZXNz
IHRvIGEgY29ubmVjdGlvbiBvdmVyIHdoaWNoIHRvIG1lc3NhZ2UgZmFpbHVyZS10by1hYm9ydC4K
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOworfQor
CiB2b2lkIElEQlNlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QlNlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCBmMDdlODdkLi4wNjFhNDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBPcGVyYXRpb25zIHJl
cXVlc3RlZCBieSB0aGUgY2xpZW50LgogICAgIHZvaWQgb3BlbkRhdGFiYXNlKGNvbnN0IElEQlJl
cXVlc3REYXRhJik7CiAgICAgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXF1ZXN0RGF0
YSYpOworICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImKTsKICAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYpOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
YzJhM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcApAQCAtMCwwICsxLDc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgi
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkluZGV4ZWREQi5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZW1vcnlJREJCYWNraW5nU3RvcmUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQlNlcnZlciB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbj4gTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb246OmNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9y
ZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQoreworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPihiYWNraW5nU3RvcmUsIGlu
Zm8pOworfQorCitNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6TWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24oTWVtb3J5SURCQmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUsIGNvbnN0
IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKKyAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdT
dG9yZSkKKyAgICAsIG1faW5mbyhpbmZvKQoreworICAgIGlmIChtX2luZm8ubW9kZSgpID09IElu
ZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKQorICAgICAgICBtX29yaWdp
bmFsRGF0YWJhc2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KG1fYmFj
a2luZ1N0b3JlLmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKCkpOworfQorCitNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbjo6fk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCkKK3sK
KyAgICBBU1NFUlQoIW1faW5Qcm9ncmVzcyk7Cit9CisKK3ZvaWQgTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb246OmFib3J0KCkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb246OmFib3J0KCkiKTsKKworICAgIGlmIChtX29yaWdpbmFsRGF0YWJh
c2VJbmZvKSB7CisgICAgICAgIEFTU0VSVChtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmUuc2V0
RGF0YWJhc2VJbmZvKCptX29yaWdpbmFsRGF0YWJhc2VJbmZvKTsKKyAgICB9CisKKyAgICBtX2lu
UHJvZ3Jlc3MgPSBmYWxzZTsKK30KKwordm9pZCBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bjo6Y29tbWl0KCkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb246OmNvbW1pdCgpIik7CisKKyAgICBtX2luUHJvZ3Jlc3MgPSBmYWxzZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUy
NzFhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCkBAIC0wLDAgKzEsNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uX2gKKyNkZWZpbmUgTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb25faAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRl
ICJJREJEYXRhYmFzZUluZm8uaCIKKyNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkluZm8uaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQlNlcnZlciB7CisKK2NsYXNzIE1lbW9y
eUlEQkJhY2tpbmdTdG9yZTsKKworY2xhc3MgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24g
eworICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24+IHN0ZDo6bWFrZV91bmlxdWU8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+KFdlYkNv
cmU6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
SW5mbyYpOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb24+IGNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mKTsKKworICAgIH5NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bigpOworCisgICAgYm9vbCBpc1ZlcnNpb25DaGFuZ2UoKSBjb25zdCB7IHJldHVybiBtX2luZm8u
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlOyB9CisK
KyAgICBjb25zdCBJREJEYXRhYmFzZUluZm8mIG9yaWdpbmFsRGF0YWJhc2VJbmZvKCkgY29uc3Q7
CisKKyAgICB2b2lkIGFib3J0KCk7CisgICAgdm9pZCBjb21taXQoKTsKKworcHJpdmF0ZToKKyAg
ICBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbihNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBj
b25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKKworICAgIE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYg
bV9iYWNraW5nU3RvcmU7CisgICAgSURCVHJhbnNhY3Rpb25JbmZvIG1faW5mbzsKKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IG1fb3JpZ2luYWxEYXRhYmFzZUluZm87CisK
KyAgICBib29sIG1faW5Qcm9ncmVzcyB7IHRydWUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIElE
QlNlcnZlcgorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCisjZW5kaWYgLy8gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb25faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAppbmRleCBiMDc0MjA3Li5hYWUwNjdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCkBAIC01Myw2ICs1NSw1
MyBAQCBjb25zdCBJREJEYXRhYmFzZUluZm8mIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JF
c3RhYmxpc2hEYXRhYmFzZUluZm8oKQogICAgIHJldHVybiAqbV9kYXRhYmFzZUluZm87CiB9CiAK
K3ZvaWQgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpzZXREYXRhYmFzZUluZm8oY29uc3QgSURCRGF0
YWJhc2VJbmZvJiBpbmZvKQoreworICAgIC8vIEl0IGlzIG5vdCB2YWxpZCB0byBkaXJlY3RseSBz
ZXQgZGF0YWJhc2UgaW5mbyBvbiBhIGJhY2tpbmcgc3RvcmUgdGhhdCBoYXNuJ3QgYWxyZWFkeSBz
ZXQgaXRzIG93biBkYXRhYmFzZSBpbmZvLgorICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CisK
KyAgICBtX2RhdGFiYXNlSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPihp
bmZvKTsKK30KKworSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0
aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKK3sKKyAgICBMT0coSW5kZXhlZERC
LCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uIik7CisKKyAgICBpZiAo
bV90cmFuc2FjdGlvbnMuY29udGFpbnMoaW5mby5pZGVudGlmaWVyKCkpKQorICAgICAgICByZXR1
cm4gSURCRXJyb3IoSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJlY29y
ZCBvZiIpOworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOworICAgIG1fdHJhbnNhY3Rpb25zLnNldChpbmZv
LmlkZW50aWZpZXIoKSwgV1RGOjptb3ZlKHRyYW5zYWN0aW9uKSk7CisKKyAgICByZXR1cm4gSURC
RXJyb3IoKTsKK30KKworSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5z
YWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
KQoreworICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFib3J0VHJh
bnNhY3Rpb24iKTsKKworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtl
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAg
cmV0dXJuIElEQkVycm9yKElEQkV4Y2VwdGlvbkNvZGU6OkludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBhc2tlZCB0byBhYm9ydCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2ZSByZWNv
cmQgb2YiKTsKKworICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOworCisgICAgcmV0dXJuIElEQkVy
cm9yKCk7Cit9CisKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNh
Y3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIp
Cit7CisgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJh
bnNhY3Rpb24iKTsKKworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtl
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAg
cmV0dXJuIElEQkVycm9yKElEQkV4Y2VwdGlvbkNvZGU6OkludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBhc2tlZCB0byBjb21taXQgdHJhbnNhY3Rpb24gaXQgZGlkbid0IGhhdmUgcmVj
b3JkIG9mIik7CisKKyAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CisKKyAgICByZXR1cm4gSURC
RXJyb3IoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAppbmRleCA4NzYyZGU0Li4yNTQ5
OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCkBAIC0zMCw2ICszMCw5IEBACiAK
ICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJN
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewpAQCAtNDIsMTIg
KzQ1LDIwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZW1vcnlJREJCYWNraW5nU3RvcmUoKSBv
dmVycmlkZSBmaW5hbDsKIAogICAgIHZpcnR1YWwgY29uc3QgSURCRGF0YWJhc2VJbmZvJiBnZXRP
ckVzdGFibGlzaERhdGFiYXNlSW5mbygpIG92ZXJyaWRlIGZpbmFsOwotICAgIAorICAgIHZvaWQg
c2V0RGF0YWJhc2VJbmZvKGNvbnN0IElEQkRhdGFiYXNlSW5mbyYpOworCisgICAgdmlydHVhbCBJ
REJFcnJvciBiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpIG92ZXJy
aWRlIGZpbmFsOworICAgIHZpcnR1YWwgSURCRXJyb3IgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmlu
YWw7CisgICAgdmlydHVhbCBJREJFcnJvciBjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CisK
IHByaXZhdGU6CiAgICAgTWVtb3J5SURCQmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSWRl
bnRpZmllciYpOwogCiAgICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX2RhdGFiYXNlSW5mbzsKKworICAg
IEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24+PiBtX3RyYW5zYWN0aW9uczsKKwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA4NzdmNGRkLi45
MjZkYWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAog
I2luY2x1ZGUgIklEQlJlc3VsdERhdGEuaCIKICNpbmNsdWRlICJJREJTZXJ2ZXIuaCIKKyNpbmNs
dWRlICJJREJUcmFuc2FjdGlvbkluZm8uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KQEAgLTE1NiwxMSArMTU3LDE4IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKCkKICAgICBhZGRPcGVuRGF0YWJhc2VDb25uZWN0aW9u
KCptX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24pOwogCiAgICAgbV92ZXJzaW9uQ2hh
bmdlVHJhbnNhY3Rpb24gPSAmbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uLT5jcmVh
dGVWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24ocmVxdWVzdGVkVmVyc2lvbik7CisgICAgbV9zZXJ2
ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJ
REJEYXRhYmFzZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlLCBtX3ZlcnNpb25DaGFu
Z2VUcmFuc2FjdGlvbi0+aW5mbygpKSk7CiAKICAgICBhdXRvIHJlc3VsdCA9IElEQlJlc3VsdERh
dGE6Om9wZW5EYXRhYmFzZVVwZ3JhZGVOZWVkZWQob3BlcmF0aW9uLT5yZXF1ZXN0RGF0YSgpLnJl
cXVlc3RJZGVudGlmaWVyKCksICptX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik7CiAgICAgb3Bl
cmF0aW9uLT5jb25uZWN0aW9uKCkuZGlkT3BlbkRhdGFiYXNlKHJlc3VsdCk7CiB9CiAKK3ZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZShjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mIGluZm8pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5p
cXVlSURCRGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSIpOworICAgIG1f
YmFja2luZ1N0b3JlLT5iZWdpblRyYW5zYWN0aW9uKGluZm8pOworfQorCiB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpub3RpZnlDb25uZWN0aW9uc09mVmVyc2lvbkNoYW5nZSgpCiB7CiAgICAgQVNT
RVJUKG1fdmVyc2lvbkNoYW5nZU9wZXJhdGlvbik7CkBAIC0yMTQsNiArMjIyLDggQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbiYgdHJhbnNhY3QKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJ
bmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uIik7
CiAKKyAgICBBU1NFUlQoJnRyYW5zYWN0aW9uLmRhdGFiYXNlQ29ubmVjdGlvbigpLmRhdGFiYXNl
KCkgPT0gdGhpcyk7CisKICAgICBpZiAobV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPT0gJnRy
YW5zYWN0aW9uKSB7CiAgICAgICAgIEFTU0VSVCgmbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24t
PmRhdGFiYXNlQ29ubmVjdGlvbigpID09IG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlv
bik7CiAgICAgICAgIG1fZGF0YWJhc2VJbmZvLT5zZXRWZXJzaW9uKHRyYW5zYWN0aW9uLmluZm8o
KS5uZXdWZXJzaW9uKCkpOwpAQCAtMjI1LDE2ICsyMzUsMTMgQEAgdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJh
bnNhY3QKICAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFz
aygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24sIGNh
bGxiYWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKTsKIH0KIAotdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxi
YWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJikKK3ZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIs
ICIoZGIpIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24iKTsKIAot
ICAgIC8vIEZJWE1FOiBDb21taXQgdHJhbnNhY3Rpb24gaW4gYmFja2luZyBzdG9yZSwgb25jZSB0
aGF0IGV4aXN0cy4KLQotICAgIElEQkVycm9yIGVycm9yOworICAgIElEQkVycm9yIGVycm9yID0g
bV9iYWNraW5nU3RvcmUtPmNvbW1pdFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7
CiAgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFz
aygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24s
IGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IpKTsKLQogfQogCiB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpkaWRQZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlm
aWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCkBAIC0yNDIsNiArMjQ5LDQ4IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxs
YmFja0lkZW50aWZpZXIsCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5k
ZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQ29tbWl0VHJhbnNh
Y3Rpb24iKTsKIAorICAgIC8vIFByZXZpb3VzbHkgYmxvY2tlZCB0cmFuc2FjdGlvbnMgbWlnaHQg
bm93IGJlIHVuYmxvY2tlZC4KKyAgICBpbnZva2VUcmFuc2FjdGlvblNjaGVkdWxlcigpOworCisg
ICAgcGVyZm9ybUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcik7Cit9CisK
K3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIEVycm9yQ2FsbGJhY2sgY2FsbGJhY2spCit7Cisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVu
aXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBBU1NFUlQoJnRyYW5z
YWN0aW9uLmRhdGFiYXNlQ29ubmVjdGlvbigpLmRhdGFiYXNlKCkgPT0gdGhpcyk7CisKKyAgICBp
ZiAobV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPT0gJnRyYW5zYWN0aW9uKSB7CisgICAgICAg
IEFTU0VSVCgmbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigp
ID09IG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbik7CisgICAgICAgIEFTU0VSVCh0
cmFuc2FjdGlvbi5vcmlnaW5hbERhdGFiYXNlSW5mbygpKTsKKyAgICAgICAgbV9kYXRhYmFzZUlu
Zm8gPSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4oKnRyYW5zYWN0aW9uLm9yaWdp
bmFsRGF0YWJhc2VJbmZvKCkpOworICAgICAgICBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9
IG51bGxwdHI7CisgICAgICAgIG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbiA9IG51
bGxwdHI7CisgICAgfQorCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2so
Y2FsbGJhY2spOworICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJl
YWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9u
LCBjYWxsYmFja0lELCB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKSk7Cit9CisKK3Zv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNh
bGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgTE9HKElu
ZGV4ZWREQiwgIihkYikgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9u
Iik7CisKKyAgICBJREJFcnJvciBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5hYm9ydFRyYW5zYWN0
aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFz
a1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpk
aWRQZXJmb3JtQWJvcnRUcmFuc2FjdGlvbiwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcikpOwor
fQorCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQWJvcnRUcmFuc2FjdGlvbih1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5p
cXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICAvLyBQ
cmV2aW91c2x5IGJsb2NrZWQgdHJhbnNhY3Rpb25zIG1pZ2h0IG5vdyBiZSB1bmJsb2NrZWQuCisg
ICAgaW52b2tlVHJhbnNhY3Rpb25TY2hlZHVsZXIoKTsKKwogICAgIHBlcmZvcm1FcnJvckNhbGxi
YWNrKGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5o
CmluZGV4IGY2MjVjMDguLmVmZmE2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC00NCw2
ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCRXJyb3I7CiBjbGFzcyBJ
REJSZXF1ZXN0RGF0YTsKK2NsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsKIAogbmFtZXNwYWNlIElE
QlNlcnZlciB7CiAKQEAgLTY1LDYgKzY2LDcgQEAgcHVibGljOgogICAgIElEQlNlcnZlciYgc2Vy
dmVyKCkgeyByZXR1cm4gbV9zZXJ2ZXI7IH0KIAogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24o
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIEVycm9yQ2FsbGJhY2spOworICAgIHZvaWQg
YWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxs
YmFjayk7CiAgICAgdm9pZCB0cmFuc2FjdGlvbkRlc3Ryb3llZChVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uJik7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudChVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKIApAQCAtODMsMTAgKzg1LDEzIEBAIHByaXZhdGU6CiAg
ICAgLy8gRGF0YWJhc2UgdGhyZWFkIG9wZXJhdGlvbnMKICAgICB2b2lkIG9wZW5CYWNraW5nU3Rv
cmUoY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAgICAgdm9pZCBwZXJmb3JtQ29tbWl0
VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCBwZXJmb3JtQWJv
cnRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIGJlZ2luVHJh
bnNhY3Rpb25JbkJhY2tpbmdTdG9yZShjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKIAogICAg
IC8vIE1haW4gdGhyZWFkIGNhbGxiYWNrcwogICAgIHZvaWQgZGlkT3BlbkJhY2tpbmdTdG9yZShj
b25zdCBJREJEYXRhYmFzZUluZm8mKTsKICAgICB2b2lkIGRpZFBlcmZvcm1Db21taXRUcmFuc2Fj
dGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CisgICAg
dm9pZCBkaWRQZXJmb3JtQWJvcnRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIsIGNvbnN0IElEQkVycm9yJik7CiAKICAgICB2b2lkIHBlcmZvcm1FcnJvckNhbGxiYWNrKHVp
bnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcAppbmRleCAyYjBiYmM2Li40MzM1MWJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcApAQCAtOTMs
NiArOTMsMTggQEAgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uOjpjcmVhdGVWZXJzaW9uQ2hhbmdlVHIKICAgICByZXR1cm4gdHJhbnNhY3Rp
b24uZ2V0KCk7CiB9CiAKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRBYm9y
dFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBj
b25zdCBJREJFcnJvciYgZXJyb3IpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbjo6ZGlkQWJvcnRUcmFuc2FjdGlvbiIpOworCisgICAgYXV0byB0cmFu
c2FjdGlvbklkZW50aWZpZXIgPSB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpOworCisg
ICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25NYXAuY29udGFpbnModHJhbnNhY3Rpb25JZGVudGlmaWVy
KSk7CisgICAgbV90cmFuc2FjdGlvbk1hcC5yZW1vdmUodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
KworICAgIG1fY29ubmVjdGlvblRvQ2xpZW50LmRpZEFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBlcnJvcik7Cit9CisKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uOjpkaWRDb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0
cmFuc2FjdGlvbiwgY29uc3QgSURCRXJyb3ImIGVycm9yKQogewogICAgIExPRyhJbmRleGVkREIs
ICJVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZENvbW1pdFRyYW5zYWN0aW9uIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgKaW5kZXggNmVlOGU3Zi4uMWY1
MGU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaApAQCAtNjIs
NiArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90IHJlcXVlc3RlZFZlcnNpb24pOwogICAgIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IGNyZWF0ZVZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbih1aW50NjRfdCBuZXdWZXJzaW9uKTsKIAor
ICAgIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
JiwgY29uc3QgSURCRXJyb3ImKTsKICAgICB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKFVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBJREJFcnJvciYpOwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCmluZGV4IGM4YjJm
ZGUuLmI2M2FlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bi5jcHAKQEAgLTQ0LDYgKzQ0LDkgQEAgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6VW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm4KICAgICA6IG1f
ZGF0YWJhc2VDb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX3RyYW5zYWN0aW9uSW5mbyhp
bmZvKQogeworICAgIGlmIChtX3RyYW5zYWN0aW9uSW5mby5tb2RlKCkgPT0gSW5kZXhlZERCOjpU
cmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpCisgICAgICAgIG1fb3JpZ2luYWxEYXRhYmFz
ZUluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4obV9kYXRhYmFzZUNvbm5l
Y3Rpb24tPmRhdGFiYXNlKCkuaW5mbygpKTsKKwogICAgIG1fZGF0YWJhc2VDb25uZWN0aW9uLT5k
YXRhYmFzZSgpLnNlcnZlcigpLnJlZ2lzdGVyVHJhbnNhY3Rpb24oKnRoaXMpOwogfQogCkBAIC01
Myw2ICs1NiwyMyBAQCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjp+VW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbigpCiAgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNlKCku
c2VydmVyKCkudW5yZWdpc3RlclRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAorSURCRGF0YWJhc2VJ
bmZvKiBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpvcmlnaW5hbERhdGFiYXNlSW5mbygp
IGNvbnN0Cit7CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25JbmZvLm1vZGUoKSA9PSBJbmRleGVk
REI6OlRyYW5zYWN0aW9uTW9kZTo6VmVyc2lvbkNoYW5nZSk7CisgICAgcmV0dXJuIG1fb3JpZ2lu
YWxEYXRhYmFzZUluZm8uZ2V0KCk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbjo6YWJvcnQoKQoreworICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uOjphYm9ydCIpOworCisgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24+IHNlbGYodGhpcyk7CisgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNlKCku
YWJvcnRUcmFuc2FjdGlvbigqdGhpcywgW3RoaXMsIHNlbGZdKGNvbnN0IElEQkVycm9yJiBlcnJv
cikgeworICAgICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bjo6YWJvcnQgKGNhbGxiYWNrKSIpOworICAgICAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGlk
QWJvcnRUcmFuc2FjdGlvbigqdGhpcywgZXJyb3IpOworICAgIH0pOworfQorCiB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmNvbW1pdCgpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwg
IlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmNvbW1pdCIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJh
bnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmgKaW5kZXggYjJjYWNjYS4uYmUzOTU2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oCkBAIC0zNCw2ICszNCw5IEBA
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBJREJEYXRhYmFzZUluZm87CisKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCiBjbGFzcyBV
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb247CkBAIC00Nyw2ICs1MCw5IEBAIHB1YmxpYzoKICAg
ICBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGRhdGFiYXNlQ29ubmVjdGlvbigpIHsgcmV0
dXJuIG1fZGF0YWJhc2VDb25uZWN0aW9uLmdldCgpOyB9CiAgICAgY29uc3QgSURCVHJhbnNhY3Rp
b25JbmZvJiBpbmZvKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2FjdGlvbkluZm87IH0KIAorICAg
IElEQkRhdGFiYXNlSW5mbyogb3JpZ2luYWxEYXRhYmFzZUluZm8oKSBjb25zdDsKKworICAgIHZv
aWQgYWJvcnQoKTsKICAgICB2b2lkIGNvbW1pdCgpOwogCiBwcml2YXRlOgpAQCAtNTQsNiArNjAs
OCBAQCBwcml2YXRlOgogCiAgICAgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbj4gbV9k
YXRhYmFzZUNvbm5lY3Rpb247CiAgICAgSURCVHJhbnNhY3Rpb25JbmZvIG1fdHJhbnNhY3Rpb25J
bmZvOworCisgICAgc3RkOjp1bmlxdWVfcHRyPElEQkRhdGFiYXNlSW5mbz4gbV9vcmlnaW5hbERh
dGFiYXNlSW5mbzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5jcHAKaW5kZXgg
OTczMzNmNi4uOGE4NzVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuY3BwCkBAIC00Myw2ICs0MywxMCBAQCBzdGF0aWMgY29u
c3QgU3RyaW5nJiBpZGJFcnJvck5hbWUoSURCRXhjZXB0aW9uQ29kZSBjb2RlKQogICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJhbCgiVmVyc2lv
bkVycm9yIik7CiAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICB9CisgICAgY2FzZSBJREJFeGNl
cHRpb25Db2RlOjpJbnZhbGlkU3RhdGVFcnJvcjogeworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJhbCgiSW52YWxpZFN0YXRlRXJyb3IiKTsK
KyAgICAgICAgcmV0dXJuIGVudHJ5OworICAgIH0KICAgICBjYXNlIElEQkV4Y2VwdGlvbkNvZGU6
Ok5vbmU6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAt
NTQsMTMgKzU4LDE3IEBAIHN0YXRpYyBjb25zdCBTdHJpbmcmIGlkYkVycm9yRGVzY3JpcHRpb24o
SURCRXhjZXB0aW9uQ29kZSBjb2RlKQogewogICAgIHN3aXRjaCAoY29kZSkgewogICAgIGNhc2Ug
SURCRXhjZXB0aW9uQ29kZTo6VW5rbm93bjogewotICAgICAgICBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJPcGVyYXRpb24gZmFpbGVkIGZvciByZWFzb25zIHVu
cmVsYXRlZCB0byB0aGUgZGF0YWJhc2UgaXRzZWxmIGFuZCBub3QgY292ZXJlZCBieSBhbnkgb3Ro
ZXIgZXJyb3JzLiIpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRy
eSA9IEFTQ0lJTGl0ZXJhbCgiT3BlcmF0aW9uIGZhaWxlZCBmb3IgcmVhc29ucyB1bnJlbGF0ZWQg
dG8gdGhlIGRhdGFiYXNlIGl0c2VsZiBhbmQgbm90IGNvdmVyZWQgYnkgYW55IG90aGVyIGVycm9y
cy4iKTsKICAgICAgICAgcmV0dXJuIGVudHJ5LmdldCgpOwogICAgIH0KICAgICBjYXNlIElEQkV4
Y2VwdGlvbkNvZGU6OlZlcnNpb25FcnJvcjogewotICAgICAgICBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIG9wZW4gYSBk
YXRhYmFzZSB1c2luZyBhIGxvd2VyIHZlcnNpb24gdGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbi4i
KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50cnkgPSBBU0NJSUxp
dGVyYWwoIkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93
ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIpOwogICAgICAgICByZXR1cm4g
ZW50cnkuZ2V0KCk7CiAgICAgfQorICAgIGNhc2UgSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0
YXRlRXJyb3I6IHsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50cnkg
PSBBU0NJSUxpdGVyYWwoIk9wZXJhdGlvbiB3YXMgY2FsbGVkIG9uIGFuIG9iamVjdCBvbiB3aGlj
aCBpdCBpcyBub3QgYWxsb3dlZCBvciBhdCBhIHRpbWUgd2hlbiBpdCBpcyBub3QgYWxsb3dlZC4i
KTsKKyAgICAgICAgcmV0dXJuIGVudHJ5OworICAgIH0KICAgICBjYXNlIElEQkV4Y2VwdGlvbkNv
ZGU6Ok5vbmU6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVy
cm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3Iu
aAppbmRleCA0MDcwMzRjLi42ZTc3NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaApAQCAtMzYsNiArMzYsOSBAQCBlbnVtIGNs
YXNzIElEQkV4Y2VwdGlvbkNvZGUgewogICAgIE5vbmUgPSAwLAogICAgIFVua25vd24sCiAgICAg
VmVyc2lvbkVycm9yLAorCisgICAgLy8gSW5kZXhlZCBEQiBleGlzdGluZyBleGNlcHRpb24gY29k
ZXMgd2l0aCBJREItc3BlY2lmaWMgZXJyb3IgbWVzc2FnZXM6CisgICAgSW52YWxpZFN0YXRlRXJy
b3IsCiB9OwogCiBjbGFzcyBJREJFcnJvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmlu
ZGV4IDdjMmY5YmYuLmQ3ZmRlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC0x
MDIsNiArMTAyLDE0IEBAIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRPcGVuRGF0YWJhc2Uo
Y29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKICAgICB9KTsKIH0KIAordm9pZCBJblBy
b2Nlc3NJREJTZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sK
KyAgICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOworICAgIFJ1bkxvb3A6
OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgc2VsZiwgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBl
cnJvcl0geworICAgICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkQWJvcnRUcmFuc2FjdGlv
bih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKTsKKyAgICB9KTsKK30KKwogdm9pZCBJblBy
b2Nlc3NJREJTZXJ2ZXI6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCiB7
CiAgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2VsZih0aGlzKTsKQEAgLTExMCw2ICsx
MTgsMTQgQEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnMKICAgICB9KTsKIH0KIAordm9pZCBJblBy
b2Nlc3NJREJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJiBy
ZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2Vs
Zih0aGlzKTsKKyAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHNlbGYsIHJl
c291cmNlSWRlbnRpZmllcl0geworICAgICAgICBtX3NlcnZlci0+YWJvcnRUcmFuc2FjdGlvbihy
ZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH0pOworfQorCiB2b2lkIEluUHJvY2Vzc0lEQlNlcnZl
cjo6Y29tbWl0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXNvdXJjZUlkZW50
aWZpZXIpCiB7CiAgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2VsZih0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nl
c3NJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9J
blByb2Nlc3NJREJTZXJ2ZXIuaAppbmRleCBkYzA5NDUxLi5iZDNjYjczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vz
c0lEQlNlcnZlci5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAvLyBJREJDb25uZWN0
aW9uVG9TZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVzdERh
dGEmKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkRhdGFiYXNlKElEQlJl
cXVlc3REYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGFib3J0VHJhbnNh
Y3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVh
bCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpIG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CiAKQEAgLTYz
LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBJ
REJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5E
YXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVh
bCB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJikgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpIG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KElEQlNlcnZl
cjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lv
bikgb3ZlcnJpZGUgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NGM0OGVkLi40OTI1M2Q0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTE2LDEy
ICsxNTE2LDEyIEBACiAJCTQxNjJBNDU4MTAxMTQ2NDcwMERGRjNFRCAvKiBKU0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTYyQTQ1NjEwMTE0NjQ3MDBERkYzRUQgLyogSlNEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZS5oICovOyB9OwogCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVw
b3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oICov
OyB9OwogCQk0MTZFNkZFODFCQkQxMkRGMDAwQTYwMzMgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRp
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNE
ODA2MUJCMzExMEQwMEI3NjRDOSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQxNkU2RkVBMUJCRDE2
ODQwMDBBNjAzNCAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA3MUJCMzExMEQwMEI3
NjRDQSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTZFNkZFODFCQkQxMkRGMDAwQTYw
NDMgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ5IC8q
IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0MTZFNkZFOTFCQkQxMkU1MDAwQTYwNDMgLyog
UmVhZGFibGVTdHJlYW1CdWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFt
QnVpbHRpbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQk0MTZFNkZFQTFCQkQxNjg0MDAwQTYwNDQgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNC
dWlsdGluc1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCMDNEODA3MUJCMzExMEQwMEI3NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFs
c0J1aWx0aW5zV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUlu
dGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTkgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5h
bHNCdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA0MyAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgw
NjFCQjMxMTBEMDBCNzY0RDggLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNkU2RkU5MUJCRDEyRTUw
MDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTggLyogV3Jp
dGFibGVTdHJlYW1CdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjAzNCAvKiBTdHJlYW1JbnRlcm5h
bHNCdWlsdGluc1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMDNEODA3MUJCMzExMEQwMEI3NjRDQSAvKiBTdHJlYW1JbnRlcm5hbHNCdWls
dGluc1dyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk0MTZFNkZFQTFCQkQxNjg0MDAwQTYwNDQgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5h
bHNCdWlsdGluc1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMDNEODA3MUJCMzExMEQwMEI3NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVy
bmFsc0J1aWx0aW5zV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjA1NCAvKiBXcml0YWJsZVN0cmVh
bUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NEVBIC8qIFdyaXRhYmxlU3Ry
ZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3MjUzQUExMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxNzI1M0E4MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAgKi87IH07CiAJCTQxNzI1M0FCMTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xF
bGVtZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmggKi87IH07
CkBAIC0yMTg1LDYgKzIxODUsOCBAQAogCQk1MUUwQkFFQjBEQTU1RDRBMDBBOUU0MTcgLyogSlNT
dG9yYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRTBCQUU5MERBNTVENEEwMEE5RTQxNyAvKiBKU1N0b3JhZ2VFdmVudC5oICovOyB9Owog
CQk1MUUwQkIzODBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMEJCMzYwREE1QUNCNjAwQTlFNDE3
IC8qIFN0b3JhZ2VNYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MUUwQkIzOTBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUwQkIzNzBEQTVB
Q0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5jcHAgKi87IH07CisJCTUxRTFCQUMyMUJEODA2NEUw
MDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUxQkFDMDFCRDgwNjQ3MDA1NUQ4
MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwICovOyB9OworCQk1MUUxQkFD
MzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFCQUMxMUJEODA2
NDcwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oICovOyB9OwogCQk1
MUUxRUNCRTBDOTFDOTA0MDBEQzI1NUIgLyogSWNvbkRhdGFiYXNlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUxRUNCODBDOTFDOTA0MDBE
QzI1NUIgLyogSWNvbkRhdGFiYXNlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFFMUVDQzAwQzkxQzkwNDAwREMyNTVCIC8qIEljb25S
ZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFFMUVDQkEwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuY3BwICovOyB9OwogCQk1MUUx
RUNDMTBDOTFDOTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMUVDQkIwQzkxQzkwNDAwREMyNTVCIC8qIElj
b25SZWNvcmQuaCAqLzsgfTsKQEAgLTI2NjEsMTEgKzI2NjMsMTEgQEAKIAkJN0M0OEE2RDExOTFD
OUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0OEE2Q0YxOTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktp
dE5hbWVzcGFjZS5oICovOyB9OwogCQk3QzQ5MDJBMjE4QjgyNUY4MDA3RDkyOTggLyogRE9NV2hl
ZWxFdmVudEludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk4OURDQTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NV2hl
ZWxFdmVudEludGVybmFsLmggKi87IH07CiAJCTdDNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBK
U1JlYWRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNw
cCAqLzsgfTsKKwkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2
RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uY3BwICovOyB9OwogCQk3QzRD
OTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTUmVhZGFibGVTdHJlYW0uaCAqLzsgfTsKKwkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTYw
IC8qIEpTV3JpdGFibGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFt
LmggKi87IH07CiAJCTdDNEM5NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFt
UmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAq
LzsgfTsKIAkJN0M0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5
NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmggKi87IH07Ci0J
CTdDNEM5NkRDMUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ4MUFENDQ4MzUw
MDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNwcCAqLzsgfTsKLQkJN0M0Qzk2REQxQUQ0NDgz
NTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRh
YmxlU3RyZWFtLmggKi87IH07CiAJCTdDNEM5NkUzMUFENDRBQkYwMDM2NUE1MCAvKiBMYXVuY2hT
ZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M0Qzk2RTIxQUQ0NEFCRjAwMzY1QTUwIC8qIExhdW5jaFNlcnZpY2VzU1BJLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0M0RURENzQxQTdC
NjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEVERDczMUE3QjYwNzgwMDE5OEM0RCAvKiBGb250Q29jb2Eu
bW0gKi87IH07CiAJCTdDNTIyRDRCMTVCNDc3RTgwMDlCN0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTIy
RDQ5MTVCNDc3RTgwMDlCN0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5LmNwcCAqLzsgfTsKQEAgLTk1
OTEsNiArOTU5Myw4IEBACiAJCTUxRTBCQUU5MERBNTVENEEwMEE5RTQxNyAvKiBKU1N0b3JhZ2VF
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0b3JhZ2VFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUwQkIzNjBEQTVBQ0I2MDBBOUU0MTcg
LyogU3RvcmFnZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdl
TWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTBCQjM3MERBNUFDQjYwMEE5
RTQxNyAvKiBTdG9yYWdlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFN0b3JhZ2VNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUxQkFD
MDFCRDgwNjQ3MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUxQkFDMTFCRDgw
NjQ3MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMUVDQjgwQzkxQzkwNDAwREMyNTVCIC8q
IEljb25EYXRhYmFzZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
Y29uRGF0YWJhc2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMUVD
QkEwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSWNvblJlY29yZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxRTFFQ0JCMEM5MUM5MDQwMERDMjU1QiAvKiBJY29uUmVjb3JkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEljb25SZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwMTIwLDExICsxMDEyNCwxMSBAQAogCQk3QzQ4QTZDRjE5MUM5RDY1MDAw
MjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdE5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzQ4
QTZEMjE5MUM5RDhFMDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRO
YW1lc3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzRDOTZEODFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXcml0YWJsZVN0cmVh
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkQ5MUFENDQ4MzUwMDM2
NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUmVhZGFibGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M0
Qzk2RDkxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXcml0YWJsZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVh
bVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRh
YmxlU3RyZWFtUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2
REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0
YWJsZVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dy
aXRhYmxlU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0M0Qzk2RDkx
QUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNXcml0YWJsZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QzRDOTZFMjFBRDQ0QUJGMDAzNjVBNTAgLyogTGF1bmNoU2VydmljZXNTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF1bmNoU2VydmljZXNTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZv
bnRDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M1MjJENDkxNUI0NzdFODAw
OUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5zcGVjdG9yT3ZlcmxheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMTM2NCwxNCArMTEzNjgsMTMgQEAKIAkJOTkwOEIwRUMxQkNBQ0YxRjAwRUQwRjY1
IC8qIGdlbmVyYXRlLWpzLWJ1aWx0aW5zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBw
YXRoID0gImdlbmVyYXRlLWpzLWJ1aWx0aW5zIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTkwOEIwRUQxQkNBQ0Y5MTAwRUQwRjY1IC8qIEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3ku
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBCeXRlTGVuZ3RoUXVl
dWluZ1N0cmF0ZWd5LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBFRTFC
Q0FDRjkxMDBFRDBGNjUgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuanMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBDb3VudFF1ZXVpbmdTdHJhdGVneS5qczsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjU1IC8qIFN0cmVh
bUludGVybmFscy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFN0
cmVhbUludGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRkQx
QkNBRDA3RDAwRUQwRjU1IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQwRjY1IC8q
IFJlYWRhYmxlU3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gUmVhZGFibGVTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhC
MEVGMUJDQUNGOTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbS5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTA4QjBGMDFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0g
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzLmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNjUgLyogUmVh
ZGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTkwOEIwRjIxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVy
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFibGVTdHJl
YW1SZWFkZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5MDhCMEVGMUJDQUNG
OTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5h
bHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBXcml0YWJsZVN0
cmVhbUludGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTkwOEIwRjIx
QkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXIuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEYzMUJDQUNGRkUwMEVEMEY2NSAvKiBCeXRl
TGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjQxQkNBQ0ZGRTAwRUQwRjY1IC8qIEJ5
dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zV3JhcHBl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGNTFCQ0FEMDdEMDBFRDBG
NjUgLyogQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzNzksMTUgKzExMzgyLDE2IEBACiAJCTk5
MDhCMEY3MUJDQUQwN0QwMEVEMEY2NSAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5QnVp
bHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjgxQkNBRDA3RDAw
RUQwRjY1IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnNXcmFwcGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnNXcmFw
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEY5MUJDQUQwN0QwMEVE
MEY2NSAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5OTA4QjBGOTFCQ0FEMDdEMDBFRDBGNzUgLyogV3JpdGFibGVTdHJl
YW1CdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXcml0
YWJsZVN0cmVhbUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkw
OEIwRkExQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlckJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkw
OEIwRkIxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQ29udHJv
bGxlckJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZDMUJD
QUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJCdWlsdGluc1dyYXBwZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhC
MEZEMUJDQUQwN0QwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY2
NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNzUg
LyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkUxQkNBRDA3RDAwRUQwRjY1IC8q
IFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZGMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJs
ZVN0cmVhbVJlYWRlckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTkwOEIxMDAxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVp
bHRpbnNXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxl
U3RyZWFtUmVhZGVyQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk5MDhCMEY5MUJDQUQwN0QwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVp
bHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGRDFCQ0FEMDdE
MDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0
aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyMDM5ODAxOEI5NUJDNjAw
QjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBVc2VySW5wdXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5OTIwMzk4MTE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5OUM3Q0NCMjE4QzY2M0U0MDAzMkU0MTMgLyogTWVtb2l6ZWRE
T01SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb2l6ZWRET01S
ZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNDI1LDEzICsxMTQyOSwx
MyBAQAogCQk5QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQjFGMzdGMThFMjQ4
OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0QzkgLyog
U3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NENBIC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3Jh
cHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHNC
dWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4MDYx
QkIzMTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDkgLyogUmVhZGFibGVT
dHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTlCMDNEODA3MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0
aW5zV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0
cmVhbUJ1aWx0aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QjAz
RDgwNzFCQjMxMTBEMDBCNzY0REEgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dy
YXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1J
bnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEU4IC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTkgLyog
V3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlCMDNEODA3MUJCMzExMEQwMEI3NjRDQSAvKiBTdHJlYW1JbnRl
cm5hbHNCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTlCMDNEODA3MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5z
V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVh
bUJ1aWx0aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjAzRDgw
NzFCQjMxMTBEMDBCNzY0REEgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBw
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRl
cm5hbHNCdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIw
M0Q4MDcxQkIzMTEwRDAwQjc2NEU4IC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVpbHRpbnNX
cmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA3MUJCMzExMEQw
MEI3NjRFQSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0
aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjE5QjY3RTFCOTY0
RTUyMDAzNDg3NDUgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2hh
ZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQwOCw3ICsxNjQx
Miw2IEBACiAJCQkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRGIC8qIFdyaXRhYmxlU3RyZWFtLmlk
bCAqLywKIAkJCQk5OTA4QjBFRjFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW0uanMg
Ki8sCiAJCQkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjc1IC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJu
YWxzLmpzICovLAotCiAJCQkpOwogCQkJcGF0aCA9IHN0cmVhbXM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMTY4MjksNiArMTY4MzIsOCBAQAogCQkJCTUxMEE1OEYwMUJBQjcyMEYw
MEMxOTI4MiAvKiBJREJTZXJ2ZXIuaCAqLywKIAkJCQk1MTg4NjRFNDFCQkI0QjdFMDBFNTQwQzkg
LyogSURCU2VydmVyT3BlcmF0aW9uLmNwcCAqLywKIAkJCQk1MTg4NjRFNTFCQkI0QjdFMDBFNTQw
QzkgLyogSURCU2VydmVyT3BlcmF0aW9uLmggKi8sCisJCQkJNTFFMUJBQzAxQkQ4MDY0NzAwNTVE
ODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcCAqLywKKwkJCQk1MUUxQkFD
MTFCRDgwNjQ3MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCAqLywK
IAkJCQk1MUJBNEFDODFCQkM1QjlFMDBERjNENkQgLyogTWVtb3J5SURCQmFja2luZ1N0b3JlLmNw
cCAqLywKIAkJCQk1MUJBNEFDOTFCQkM1QjlFMDBERjNENkQgLyogTWVtb3J5SURCQmFja2luZ1N0
b3JlLmggKi8sCiAJCQkJNTE4ODY0REUxQkJBRjMwRjAwRTU0MEM5IC8qIFVuaXF1ZUlEQkRhdGFi
YXNlLmNwcCAqLywKQEAgLTI2OTYwLDYgKzI2OTY1LDcgQEAKIAkJCQk0MzkwNDZERTEyREEyNUU4
MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2
RTAxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE9wZXJhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MzkwNDZFMDEyREEyNUU4MDBCRjgwQTMgLyogUmVuZGVyTWF0aE1MUmFkaWNhbE9w
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyog
TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0
NkUyMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb290LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzkwNDZFNDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MUm93LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MzkwNDZFODEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MU2Ny
aXB0cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTk4MCw2ICsyOTk4Niw3IEBACiAJCQkJQjJGQTNE
QkMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkZBM0RCRTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnQ3VydmV0
b0N1YmljQWJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREMwMEFCNzVBNkYwMDBFNUFD
NCAvKiBKU1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTFFMUJBQzIxQkQ4MDY0RTAwNTVEODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREMyMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJG
QTNEQzQwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJl
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RDNjBBQjc1QTZGMDAwRTVBQzQgLyogSlNT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263713</attachid>
            <date>2015-10-21 12:28:20 -0700</date>
            <delta_ts>2015-10-21 12:51:18 -0700</delta_ts>
            <desc>Patch v4 - Try to fix EFL again</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>79734</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTlkMGU3Li4wYzQ1ZjE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMTAt
MjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Rv
dWJsZS1hYm9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9kb3VibGUtYWJvcnQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNo
YW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sOiBBZGRlZC4KKwogMjAxNS0xMC0yMSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxJRnJhbWVFbGVtZW50LnNh
bmRib3ggc2hvdWxkIGJlIGEgRE9NU2V0dGFibGVUb2tlbkxpc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtYWJvcnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTczNDk4ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3Vi
bGUtYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQUxFUlQ6IEluaXRpYWwgdXBn
cmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKK0FMRVJUOiBTZWNv
bmQgYWJvcnQgZmFpbGVkOiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24g
MTEKK0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBhYm9y
dGVkCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IGFib3J0cyB0aGUgc2FtZSB0cmFuc2FjdGlvbiB0
d2ljZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gaXMgdGhyb3duLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1Mzg4MzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLWFi
b3J0Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorVGhpcyB0ZXN0IGFib3J0cyB0aGUgc2FtZSB0cmFu
c2FjdGlvbiB0d2ljZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gaXMgdGhyb3du
LgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2Z1bmN0
aW9uIGRvbmUoKQoreworICAgIGFsZXJ0KCJEb25lIik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIGNyZWF0ZVJl
cXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRvdWJsZUFib3J0VGVzdERhdGFiYXNlIiwg
MSk7CisKK2NyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICBhbGVydCgiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZl
bnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisK
KyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsK
KyAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgdmVyc2lvblRy
YW5zYWN0aW9uLmFib3J0KCk7CisgICAgdHJ5IHsKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9u
LmFib3J0KCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBhbGVydCgiU2Vjb25kIGFib3J0
IGZhaWxlZDogIiArIGUpOworICAgIH0KKworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJz
aW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0K
KworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
IHVuZXhwZWN0ZWQgY29tcGxldGUiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKworICAgIHZl
cnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxl
cnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQg
ZXJyb3IiICsgZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAgfQorfQorCis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9u
Y2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTY5NzgzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3ZlcnNp
b25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
K0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNp
b24gLSAxCitBTEVSVDogSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24g
YWJvcnRlZAorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5l
dyB2ZXJzaW9uIC0gMQorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb24gY29tcGxldGUKK0FMRVJUOiBUaGlyZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24g
LSAxIE5ldyB2ZXJzaW9uIC0gMgorQUxFUlQ6IFRoaXJkIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0
cmFuc2FjdGlvbiBhYm9ydGVkCitBTEVSVDogRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVy
c2lvbiAtIDEgTmV3IHZlcnNpb24gLSAyCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IG9wZW5zIGEg
bmV3IGRhdGFiYXNlLCB0aGVuIGFib3J0cyB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24u
CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBpdCdzIGEgZGVmYXVs
dCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1Y2Nlc3NmdWxseS4K
K0l0IHRoZW4gcmVvcGVucyB0aGUgZGF0YWJhc2UsIHVwZ3JhZGluZyBpdCdzIHZlcnNpb24uIEl0
IGFib3J0cyB0aGlzIHZlcnNpb25jaGFuZ2UsIGFzIHdlbGwuCitGaW5hbGx5IGl0IHJlb3BlbnMg
dGhlIGRhdGFiYXNlIGFnYWluLCB1cGdyYWRpbmcgaXRzIHZlcnNpb24sIG1ha2luZyBzdXJlIHRo
aW5ncyBoYWQgcmV2ZXJ0ZWQgYmFjayB0byBiZWZvcmUgdGhlIHNlY29uZCBhYm9ydGVkIHZlcnNp
b25jaGFuZ2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwN2Y3ZTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNo
YW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sCkBAIC0wLDAgKzEsMTE1IEBACitUaGlzIHRlc3Qg
b3BlbnMgYSBuZXcgZGF0YWJhc2UsIHRoZW4gYWJvcnRzIHRoZSB2ZXJzaW9uIGNoYW5nZSB0cmFu
c2FjdGlvbi48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBp
dCdzIGEgZGVmYXVsdCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1
Y2Nlc3NmdWxseS48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCB1cGdyYWRpbmcg
aXQncyB2ZXJzaW9uLiBJdCBhYm9ydHMgdGhpcyB2ZXJzaW9uY2hhbmdlLCBhcyB3ZWxsLjxicj4K
K0ZpbmFsbHkgaXQgcmVvcGVucyB0aGUgZGF0YWJhc2UgYWdhaW4sIHVwZ3JhZGluZyBpdHMgdmVy
c2lvbiwgbWFraW5nIHN1cmUgdGhpbmdzIGhhZCByZXZlcnRlZCBiYWNrIHRvIGJlZm9yZSB0aGUg
c2Vjb25kIGFib3J0ZWQgdmVyc2lvbmNoYW5nZS48YnI+Cis8c2NyaXB0PgorCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgYWxlcnQo
IkRvbmUiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworfQorCit2YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisKK2NyZWF0ZVJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBhbGVydCgiSW5pdGlh
bCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIg
TmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisKKyAgICB2YXIgdmVyc2lvblRy
YW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgZGF0YWJhc2Ug
PSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLmFib3J0KCk7
CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBh
Ym9ydGVkIik7CisgICAgICAgIGNvbnRpbnVlVGVzdDEoKTsKKyAgICAgICAgZGF0YWJhc2UuY2xv
c2UoKTsKKyAgICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5n
ZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGNvbXBsZXRlIik7CisgICAgICAgIGRvbmUoKTsKKyAg
ICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
biB1bmV4cGVjdGVkIGVycm9yIiArIGV2ZW50KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30K
KworZnVuY3Rpb24gY29udGludWVUZXN0MSgpCit7CisgICAgY3JlYXRlUmVxdWVzdCA9IHdpbmRv
dy5pbmRleGVkREIub3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisK
KyAgICBjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2
ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwor
CisgICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0
aW9uOworICAgICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAg
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVu
ZXhwZWN0ZWQgYWJvcnQiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
IGNvbXBsZXRlIik7CisgICAgICAgICAgICBjb250aW51ZVRlc3QyKCk7CisgICAgICAgICAgICBk
YXRhYmFzZS5jbG9zZSgpOworICAgICAgICB9CisKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9u
Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgYWxlcnQoIlNlY29uZCB1
cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVu
dCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9u
IGNvbnRpbnVlVGVzdDIoKQoreworICAgIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERC
Lm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRlc3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRl
UmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVy
dCgiVGhpcmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNp
b24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgICAgIHZh
ciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAg
ICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZlcnNpb25U
cmFuc2FjdGlvbi5hYm9ydCgpOworICAgIAorICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25h
Ym9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFk
ZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICAgICAgICAgIGNvbnRp
bnVlVGVzdDMoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLmNsb3NlKCk7CisgICAgICAgIH0KKwor
ICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0
aW9uIHVuZXhwZWN0ZWQgY29tcGxldGUiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIGFsZXJ0KCJUaGlyZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAgICAgICBkb25lKCk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdDMoKQoreworICAgIGNy
ZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRl
c3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBP
bGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBl
dmVudC5uZXdWZXJzaW9uKTsKKyAgICAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30KKworPC9zY3JpcHQ+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NzZkOTdiLi4xNTRiNzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTA0LDYgKzkwNCw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCiAgICAgTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlck9wZXJhdGlvbi5jcHAKKyAgICBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAyZGUyYjNmLi5kNTQyNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTUgQEAKKzIw
MTUtMTAtMjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1v
ZGVybiBJREI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vZG91YmxlLWFib3J0Lmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwKKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERC
Lmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
Q2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkRh
dGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCRGF0YWJhc2U6OmRpZENvbW1pdE9yQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmFib3J0KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmlzRmluaXNoZWRP
ckZpbmlzaGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9u
OjphY3RpdmF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QlRyYW5zYWN0aW9uOjpkaWRBYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEFib3J0VHJh
bnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29u
bmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb246Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246On5NZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpjb21taXQpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbjo6aXNWZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6c2V0RGF0YWJhc2VJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2lu
Z1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
TWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oOgorCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURC
RGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29t
bWl0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpk
aWRBYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246Om9yaWdpbmFsRGF0YWJhc2VJbmZvKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bjo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJFcnJvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppZGJFcnJvck5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6aWRiRXJyb3JEZXNjcmlwdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaDoKKwogMjAxNS0xMC0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxJRnJhbWVF
bGVtZW50LnNhbmRib3ggc2hvdWxkIGJlIGEgRE9NU2V0dGFibGVUb2tlbkxpc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgKaW5kZXggN2ZjNTFkYS4uNTU4
YmJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhl
ZERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgK
QEAgLTQzLDYgKzQzLDcgQEAgZW51bSBjbGFzcyBUcmFuc2FjdGlvblN0YXRlIHsKICAgICBVbnN0
YXJ0ZWQsCiAgICAgUnVubmluZywKICAgICBDb21taXR0aW5nLAorICAgIEFib3J0aW5nLAogICAg
IEZpbmlzaGVkLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCBh
ZTg3NDQyLi4xMzBkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAt
MTEzLDYgKzExMywyNiBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkQ29tbWl0VHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cgogICAgIHRyYW5zYWN0aW9u
LT5kaWRDb21taXQoZXJyb3IpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJv
cnRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKElu
ZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbiIpOworICAg
IEFTU0VSVCghbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbi5pbmZv
KCkuaWRlbnRpZmllcigpKSk7CisgICAgbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5zZXQodHJhbnNh
Y3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgJnRyYW5zYWN0aW9uKTsKKworICAgIGF1dG8gaWRl
bnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCk7CisgICAgbV9kZWxlZ2F0
ZS0+YWJvcnRUcmFuc2FjdGlvbihpZGVudGlmaWVyKTsKK30KKwordm9pZCBJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAgICBM
T0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRBYm9ydFRyYW5zYWN0aW9u
Iik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy50YWtl
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgQVNTRVJUKHRyYW5zYWN0aW9uKTsKKworICAg
IHRyYW5zYWN0aW9uLT5kaWRBYm9ydChlcnJvcik7Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblRv
U2VydmVyOjpmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGNjNGUzOTIuLmJiZmQyMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAg
IHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKICAgICB2b2lkIGRpZENv
bW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCisgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9u
KElEQlRyYW5zYWN0aW9uJik7CisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJv
ciYpOworCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwogCiAgICAg
dm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQoSURCRGF0YWJhc2UmKTsKQEAgLTc1LDYgKzc4
LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRy
PElEQkNsaWVudDo6SURCT3BlbkRCUmVxdWVzdD4+IG1fb3BlbkRCUmVxdWVzdE1hcDsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBJREJEYXRhYmFzZSo+IG1fZGF0YWJhc2VDb25uZWN0aW9uTWFwOwog
ICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+
PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50
aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWJvcnRpbmdUcmFuc2FjdGlvbnM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlckRlbGVnYXRlLmgKaW5kZXggNTYwN2JiYi4uMTZkYWRjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVzdERhdGEmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9wZW5EYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgYWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcAppbmRl
eCBhYWI2MzdlLi40OWE0ZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtMTc1LDYgKzE3
NSwxNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaWRDb21taXRUcmFuc2FjdGlvbihJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24pCiAgICAgZGlkQ29tbWl0T3JBYm9ydFRyYW5zYWN0aW9uKHRyYW5z
YWN0aW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNl
OjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHJlZlRyYW5zYWN0aW9uID0gbV9hY3Rp
dmVUcmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKTsKKyAg
ICBBU1NFUlQocmVmVHJhbnNhY3Rpb24pOworICAgIG1fYWJvcnRpbmdUcmFuc2FjdGlvbnMuc2V0
KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIFdURjo6bW92ZShyZWZUcmFuc2FjdGlv
bikpOworCisgICAgbV9zZXJ2ZXJDb25uZWN0aW9uLT5hYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0
aW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZTo6ZGlkQWJvcnRUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNl
OjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CkBAIC0xODcsMTEgKzE5OCwyMiBAQCB2b2lkIElEQkRh
dGFiYXNlOjpkaWRDb21taXRPckFib3J0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uKQogCiAgICAgaWYgKG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID09ICZ0cmFuc2Fj
dGlvbikKICAgICAgICAgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwotICAg
IAotICAgIEFTU0VSVChtX2FjdGl2ZVRyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbi5p
bmZvKCkuaWRlbnRpZmllcigpKSB8fCBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMuY29udGFpbnMo
dHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOworCisjaWZuZGVmIE5EQkVCVUcKKyAg
ICB1bnNpZ25lZCBjb3VudCA9IDA7CisgICAgaWYgKG1fYWN0aXZlVHJhbnNhY3Rpb25zLmNvbnRh
aW5zKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKQorICAgICAgICArK2NvdW50Owor
ICAgIGlmIChtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5m
bygpLmlkZW50aWZpZXIoKSkpCisgICAgICAgICsrY291bnQ7CisgICAgaWYgKG1fYWJvcnRpbmdU
cmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpCisg
ICAgICAgICsrY291bnQ7CisKKyAgICBBU1NFUlQoY291bnQgPT0gMSk7CisjZW5kaWYKIAogICAg
IG1fYWN0aXZlVHJhbnNhY3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmll
cigpKTsKICAgICBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMucmVtb3ZlKHRyYW5zYWN0aW9uLmlu
Zm8oKS5pZGVudGlmaWVyKCkpOworICAgIG1fYWJvcnRpbmdUcmFuc2FjdGlvbnMucmVtb3ZlKHRy
YW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIElEQkRhdGFiYXNlOjpm
aXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJh
c2VJbXBsLmgKaW5kZXggYmY2MDQ4MS4uMmJmYjExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuaApAQCAt
NzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgUmVmPElEQlRyYW5zYWN0aW9uPiBzdGFydFZlcnNp
b25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lk
IGNvbW1pdFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBkaWRDb21taXRU
cmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYpOworICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJ
REJUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihJREJUcmFuc2Fj
dGlvbiYpOwogCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IHJlcXVl
c3RlZFZlcnNpb24pOwpAQCAtOTYsNiArOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJREJU
cmFuc2FjdGlvbj4gbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb247CiAgICAgSGFzaE1hcDxJREJS
ZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWN0aXZlVHJhbnNh
Y3Rpb25zOwogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURCVHJh
bnNhY3Rpb24+PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAgSGFzaE1hcDxJREJSZXNv
dXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWJvcnRpbmdUcmFuc2Fj
dGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9u
SW1wbC5jcHAKaW5kZXggZDkzN2FhYS4uNTQxZTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1w
bC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJET01FcnJvci5oIgogI2luY2x1ZGUg
IkV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUltcGwuaCIKKyNpbmNsdWRlICJJ
REJFcnJvci5oIgogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIklE
Qk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNTEsOCArNTIsMTMgQEAg
SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29u
c3QgSURCVHJhbnNhY3Rpb25JbmZvJgogICAgICwgbV9vcGVyYXRpb25UaW1lcigqdGhpcywgJklE
QlRyYW5zYWN0aW9uOjpvcGVyYXRpb25UaW1lckZpcmVkKQogCiB7CisgICAgbV9hY3RpdmF0aW9u
VGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjph
Y3RpdmF0aW9uVGltZXJGaXJlZCk7CisgICAgbV9hY3RpdmF0aW9uVGltZXItPnN0YXJ0T25lU2hv
dCgwKTsKKworICAgIGlmIChtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlOjpWZXJzaW9uQ2hhbmdlKQorICAgICAgICBtX29yaWdpbmFsRGF0YWJhc2VJbmZvID0gc3Rk
OjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KG1fZGF0YWJhc2UtPmluZm8oKSk7CisKICAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvblRpbWVyKCk7CiAgICAg
bV9zdGF0ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6UnVubmluZzsKIH0KIApAQCAt
OTEsOSArOTcsMTggQEAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJUcmFuc2FjdGlvbjo6b2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotdm9pZCBJREJUcmFuc2FjdGlvbjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYpCit2b2lk
IElEQlRyYW5zYWN0aW9uOjphYm9ydChFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OmFib3J0
Iik7CisKKyAgICBpZiAoaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc3RhdGUg
PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkFib3J0aW5nOworCisgICAgbV9kYXRhYmFz
ZS0+YWJvcnRUcmFuc2FjdGlvbigqdGhpcyk7CiB9CiAKIGNvbnN0IGNoYXIqIElEQlRyYW5zYWN0
aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTExNiw2ICsxMzEsMTkgQEAgYm9v
bCBJREJUcmFuc2FjdGlvbjo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiBtX3N0YXRlID09
IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6UnVubmluZzsKIH0KIAorYm9vbCBJREJUcmFu
c2FjdGlvbjo6aXNGaW5pc2hlZE9yRmluaXNoaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
dGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkNvbW1pdHRpbmcKKyAgICAgICAg
fHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkFib3J0aW5nCisgICAg
ICAgIHx8IG1fc3RhdGUgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpGaW5pc2hlZDsK
K30KKwordm9pZCBJREJUcmFuc2FjdGlvbjo6YWN0aXZhdGlvblRpbWVyRmlyZWQoKQoreworICAg
IHNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKTsKKyAgICBtX2FjdGl2YXRpb25UaW1lciA9IG51bGxw
dHI7Cit9CisKIHZvaWQgSURCVHJhbnNhY3Rpb246OnNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKQog
ewogICAgIGlmICghbV9vcGVyYXRpb25UaW1lci5pc0FjdGl2ZSgpKQpAQCAtMTUxLDYgKzE3OSwy
MCBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpjb21taXQoKQogICAgIG1fZGF0YWJhc2UtPmNvbW1p
dFRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAordm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkQWJvcnQo
Y29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2Fj
dGlvbjo6ZGlkQWJvcnQiKTsKKworICAgIEFTU0VSVChtX3N0YXRlID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25TdGF0ZTo6QWJvcnRpbmcgfHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0
aW9uU3RhdGU6OlJ1bm5pbmcpOworCisgICAgbV9kYXRhYmFzZS0+ZGlkQWJvcnRUcmFuc2FjdGlv
bigqdGhpcyk7CisKKyAgICBtX2lkYkVycm9yID0gZXJyb3I7CisgICAgZmlyZU9uQWJvcnQoKTsK
KworICAgIG1fc3RhdGUgPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkZpbmlzaGVkOwor
fQorCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRDb21taXQoY29uc3QgSURCRXJyb3ImIGVycm9y
KQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6ZGlkQ29tbWl0Iik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJh
bnNhY3Rpb25JbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCVHJhbnNhY3Rpb25JbXBsLmgKaW5kZXggMGQzNjA2Yy4uMDcyYzI4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFu
c2FjdGlvbkltcGwuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAKKyNpbmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIKICNpbmNsdWRlICJJREJFcnJv
ci5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rp
b25JbmZvLmgiCkBAIC02OCwxNiArNjksMTkgQEAgcHVibGljOgogICAgIElEQkRhdGFiYXNlJiBk
YXRhYmFzZSgpIHsgcmV0dXJuIG1fZGF0YWJhc2UuZ2V0KCk7IH0KICAgICBjb25zdCBJREJEYXRh
YmFzZSYgZGF0YWJhc2UoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9CiAKKyAg
ICB2b2lkIGRpZEFib3J0KGNvbnN0IElEQkVycm9yJik7CiAgICAgdm9pZCBkaWRDb21taXQoY29u
c3QgSURCRXJyb3ImKTsKIAogcHJpdmF0ZToKICAgICBJREJUcmFuc2FjdGlvbihJREJEYXRhYmFz
ZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0OworICAgIGJvb2wgaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBj
b21taXQoKTsKIAogICAgIHZvaWQgc2NoZWR1bGVPcGVyYXRpb25UaW1lcigpOwogICAgIHZvaWQg
b3BlcmF0aW9uVGltZXJGaXJlZCgpOworICAgIHZvaWQgYWN0aXZhdGlvblRpbWVyRmlyZWQoKTsK
IAogICAgIHZvaWQgZmlyZU9uQ29tcGxldGUoKTsKICAgICB2b2lkIGZpcmVPbkFib3J0KCk7CkBA
IC04NSwxMSArODksMTMgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJREJEYXRhYmFzZT4gbV9kYXRh
YmFzZTsKICAgICBJREJUcmFuc2FjdGlvbkluZm8gbV9pbmZvOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxJREJEYXRhYmFzZUluZm8+IG1fb3JpZ2luYWxEYXRhYmFzZUluZm87CiAKICAgICBJbmRleGVk
REI6OlRyYW5zYWN0aW9uU3RhdGUgbV9zdGF0ZSB7IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0
ZTo6VW5zdGFydGVkIH07CiAgICAgSURCRXJyb3IgbV9pZGJFcnJvcjsKIAogICAgIFRpbWVyIG1f
b3BlcmF0aW9uVGltZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBtX2FjdGl2YXRpb25U
aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGE1YTQ4YzEuLjZmZjFlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKQEAgLTI5LDggKzI5LDEz
IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJEYXRhYmFz
ZUluZm8uaCIKKyNpbmNsdWRlICJJREJFcnJvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElEQlJlc291cmNlSWRlbnRpZmllcjsKK2NsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsK
KwogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKIGNsYXNzIElEQkJhY2tpbmdTdG9yZSB7CkBAIC0z
OCw2ICs0MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCQmFja2luZ1N0b3JlKCkgeyB9
CiAKICAgICB2aXJ0dWFsIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYgZ2V0T3JFc3RhYmxpc2hEYXRh
YmFzZUluZm8oKSA9IDA7CisKKyAgICB2aXJ0dWFsIElEQkVycm9yIGJlZ2luVHJhbnNhY3Rpb24o
Y29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgYWJv
cnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgY29tbWl0VHJhbnNhY3Rpb24oY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpID0gMDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAppbmRleCA0Y2YzNmY3Li4zNGEwMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcApAQCAtNTgsNiArNTgsMTEgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZE9wZW5EYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCiAgICAgbV9kZWxlZ2F0
ZS0+ZGlkT3BlbkRhdGFiYXNlKHJlc3VsdCk7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCit7CisgICAgbV9kZWxl
Z2F0ZS0+ZGlkQWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKTsK
K30KKwogdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJFcnJvciYgZXJyb3IpCiB7CiAgICAgbV9kZWxlZ2F0ZS0+ZGlkQ29tbWl0VHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBlcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmgKaW5kZXggMWYwZTUzNC4uZTNkZjk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
aApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNl
KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBJ
REJSZXN1bHREYXRhJik7CisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYp
OwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKICAgICB2b2lk
IGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGll
bnREZWxlZ2F0ZS5oCmluZGV4IDI4ZWNjYjIuLmVlYjhlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJD
b25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRGF0YWJhc2UoY29uc3QgSURCUmVzdWx0RGF0
YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3Im
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHAKaW5kZXggNDVlMTZmZS4uMzBkZWM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTE0Miw2ICsxNDIs
MjAgQEAgdm9pZCBJREJTZXJ2ZXI6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSkKICAgICBjb25uZWN0aW9uLT5kaWREZWxldGVEYXRhYmFzZShyZXN1bHQp
OwogfQogCit2b2lkIElEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBMT0coSW5kZXhlZERC
LCAiSURCU2VydmVyOjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9u
ID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0
cmFuc2FjdGlvbikgeworICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyB0cmFuc2FjdGlvbiB0aGVy
ZSBpcyBub3RoaW5nIHRvIGFib3J0LgorICAgICAgICAvLyBXZSBhbHNvIGhhdmUgbm8gYWNjZXNz
IHRvIGEgY29ubmVjdGlvbiBvdmVyIHdoaWNoIHRvIG1lc3NhZ2UgZmFpbHVyZS10by1hYm9ydC4K
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOworfQor
CiB2b2lkIElEQlNlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QlNlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCBmMDdlODdkLi4wNjFhNDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBPcGVyYXRpb25zIHJl
cXVlc3RlZCBieSB0aGUgY2xpZW50LgogICAgIHZvaWQgb3BlbkRhdGFiYXNlKGNvbnN0IElEQlJl
cXVlc3REYXRhJik7CiAgICAgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXF1ZXN0RGF0
YSYpOworICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImKTsKICAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYpOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
YzJhM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcApAQCAtMCwwICsxLDc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgi
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkluZGV4ZWREQi5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZW1vcnlJREJCYWNraW5nU3RvcmUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQlNlcnZlciB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbj4gTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb246OmNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9y
ZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQoreworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPihiYWNraW5nU3RvcmUsIGlu
Zm8pOworfQorCitNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6TWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24oTWVtb3J5SURCQmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUsIGNvbnN0
IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKKyAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdT
dG9yZSkKKyAgICAsIG1faW5mbyhpbmZvKQoreworICAgIGlmIChtX2luZm8ubW9kZSgpID09IElu
ZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKQorICAgICAgICBtX29yaWdp
bmFsRGF0YWJhc2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KG1fYmFj
a2luZ1N0b3JlLmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKCkpOworfQorCitNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbjo6fk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCkKK3sK
KyAgICBBU1NFUlQoIW1faW5Qcm9ncmVzcyk7Cit9CisKK3ZvaWQgTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb246OmFib3J0KCkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb246OmFib3J0KCkiKTsKKworICAgIGlmIChtX29yaWdpbmFsRGF0YWJh
c2VJbmZvKSB7CisgICAgICAgIEFTU0VSVChtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmUuc2V0
RGF0YWJhc2VJbmZvKCptX29yaWdpbmFsRGF0YWJhc2VJbmZvKTsKKyAgICB9CisKKyAgICBtX2lu
UHJvZ3Jlc3MgPSBmYWxzZTsKK30KKwordm9pZCBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bjo6Y29tbWl0KCkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb246OmNvbW1pdCgpIik7CisKKyAgICBtX2luUHJvZ3Jlc3MgPSBmYWxzZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUy
NzFhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCkBAIC0wLDAgKzEsNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uX2gKKyNkZWZpbmUgTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb25faAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRl
ICJJREJEYXRhYmFzZUluZm8uaCIKKyNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkluZm8uaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQlNlcnZlciB7CisKK2NsYXNzIE1lbW9y
eUlEQkJhY2tpbmdTdG9yZTsKKworY2xhc3MgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24g
eworICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24+IHN0ZDo6bWFrZV91bmlxdWU8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+KFdlYkNv
cmU6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
SW5mbyYpOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb24+IGNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mKTsKKworICAgIH5NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bigpOworCisgICAgYm9vbCBpc1ZlcnNpb25DaGFuZ2UoKSBjb25zdCB7IHJldHVybiBtX2luZm8u
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlOyB9CisK
KyAgICBjb25zdCBJREJEYXRhYmFzZUluZm8mIG9yaWdpbmFsRGF0YWJhc2VJbmZvKCkgY29uc3Q7
CisKKyAgICB2b2lkIGFib3J0KCk7CisgICAgdm9pZCBjb21taXQoKTsKKworcHJpdmF0ZToKKyAg
ICBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbihNZW1vcnlJREJCYWNraW5nU3RvcmUmLCBj
b25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKKworICAgIE1lbW9yeUlEQkJhY2tpbmdTdG9yZSYg
bV9iYWNraW5nU3RvcmU7CisgICAgSURCVHJhbnNhY3Rpb25JbmZvIG1faW5mbzsKKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IG1fb3JpZ2luYWxEYXRhYmFzZUluZm87CisK
KyAgICBib29sIG1faW5Qcm9ncmVzcyB7IHRydWUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIElE
QlNlcnZlcgorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCisjZW5kaWYgLy8gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb25faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAppbmRleCBiMDc0MjA3Li5hYWUwNjdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCkBAIC01Myw2ICs1NSw1
MyBAQCBjb25zdCBJREJEYXRhYmFzZUluZm8mIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JF
c3RhYmxpc2hEYXRhYmFzZUluZm8oKQogICAgIHJldHVybiAqbV9kYXRhYmFzZUluZm87CiB9CiAK
K3ZvaWQgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpzZXREYXRhYmFzZUluZm8oY29uc3QgSURCRGF0
YWJhc2VJbmZvJiBpbmZvKQoreworICAgIC8vIEl0IGlzIG5vdCB2YWxpZCB0byBkaXJlY3RseSBz
ZXQgZGF0YWJhc2UgaW5mbyBvbiBhIGJhY2tpbmcgc3RvcmUgdGhhdCBoYXNuJ3QgYWxyZWFkeSBz
ZXQgaXRzIG93biBkYXRhYmFzZSBpbmZvLgorICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CisK
KyAgICBtX2RhdGFiYXNlSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPihp
bmZvKTsKK30KKworSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0
aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKK3sKKyAgICBMT0coSW5kZXhlZERC
LCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uIik7CisKKyAgICBpZiAo
bV90cmFuc2FjdGlvbnMuY29udGFpbnMoaW5mby5pZGVudGlmaWVyKCkpKQorICAgICAgICByZXR1
cm4gSURCRXJyb3IoSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJlY29y
ZCBvZiIpOworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOworICAgIG1fdHJhbnNhY3Rpb25zLnNldChpbmZv
LmlkZW50aWZpZXIoKSwgV1RGOjptb3ZlKHRyYW5zYWN0aW9uKSk7CisKKyAgICByZXR1cm4gSURC
RXJyb3IoKTsKK30KKworSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5z
YWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
KQoreworICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFib3J0VHJh
bnNhY3Rpb24iKTsKKworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtl
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAg
cmV0dXJuIElEQkVycm9yKElEQkV4Y2VwdGlvbkNvZGU6OkludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBhc2tlZCB0byBhYm9ydCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2ZSByZWNv
cmQgb2YiKTsKKworICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOworCisgICAgcmV0dXJuIElEQkVy
cm9yKCk7Cit9CisKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNh
Y3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIp
Cit7CisgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJh
bnNhY3Rpb24iKTsKKworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtl
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAg
cmV0dXJuIElEQkVycm9yKElEQkV4Y2VwdGlvbkNvZGU6OkludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBhc2tlZCB0byBjb21taXQgdHJhbnNhY3Rpb24gaXQgZGlkbid0IGhhdmUgcmVj
b3JkIG9mIik7CisKKyAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CisKKyAgICByZXR1cm4gSURC
RXJyb3IoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAppbmRleCA4NzYyZGU0Li4yNTQ5
OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCkBAIC0zMCw2ICszMCw5IEBACiAK
ICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJN
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewpAQCAtNDIsMTIg
KzQ1LDIwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZW1vcnlJREJCYWNraW5nU3RvcmUoKSBv
dmVycmlkZSBmaW5hbDsKIAogICAgIHZpcnR1YWwgY29uc3QgSURCRGF0YWJhc2VJbmZvJiBnZXRP
ckVzdGFibGlzaERhdGFiYXNlSW5mbygpIG92ZXJyaWRlIGZpbmFsOwotICAgIAorICAgIHZvaWQg
c2V0RGF0YWJhc2VJbmZvKGNvbnN0IElEQkRhdGFiYXNlSW5mbyYpOworCisgICAgdmlydHVhbCBJ
REJFcnJvciBiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpIG92ZXJy
aWRlIGZpbmFsOworICAgIHZpcnR1YWwgSURCRXJyb3IgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmlu
YWw7CisgICAgdmlydHVhbCBJREJFcnJvciBjb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CisK
IHByaXZhdGU6CiAgICAgTWVtb3J5SURCQmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSWRl
bnRpZmllciYpOwogCiAgICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX2RhdGFiYXNlSW5mbzsKKworICAg
IEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24+PiBtX3RyYW5zYWN0aW9uczsKKwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA4NzdmNGRkLi45
MjZkYWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAog
I2luY2x1ZGUgIklEQlJlc3VsdERhdGEuaCIKICNpbmNsdWRlICJJREJTZXJ2ZXIuaCIKKyNpbmNs
dWRlICJJREJUcmFuc2FjdGlvbkluZm8uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KQEAgLTE1NiwxMSArMTU3LDE4IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKCkKICAgICBhZGRPcGVuRGF0YWJhc2VDb25uZWN0aW9u
KCptX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24pOwogCiAgICAgbV92ZXJzaW9uQ2hh
bmdlVHJhbnNhY3Rpb24gPSAmbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uLT5jcmVh
dGVWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24ocmVxdWVzdGVkVmVyc2lvbik7CisgICAgbV9zZXJ2
ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJ
REJEYXRhYmFzZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlLCBtX3ZlcnNpb25DaGFu
Z2VUcmFuc2FjdGlvbi0+aW5mbygpKSk7CiAKICAgICBhdXRvIHJlc3VsdCA9IElEQlJlc3VsdERh
dGE6Om9wZW5EYXRhYmFzZVVwZ3JhZGVOZWVkZWQob3BlcmF0aW9uLT5yZXF1ZXN0RGF0YSgpLnJl
cXVlc3RJZGVudGlmaWVyKCksICptX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik7CiAgICAgb3Bl
cmF0aW9uLT5jb25uZWN0aW9uKCkuZGlkT3BlbkRhdGFiYXNlKHJlc3VsdCk7CiB9CiAKK3ZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZShjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mIGluZm8pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5p
cXVlSURCRGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSIpOworICAgIG1f
YmFja2luZ1N0b3JlLT5iZWdpblRyYW5zYWN0aW9uKGluZm8pOworfQorCiB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpub3RpZnlDb25uZWN0aW9uc09mVmVyc2lvbkNoYW5nZSgpCiB7CiAgICAgQVNT
RVJUKG1fdmVyc2lvbkNoYW5nZU9wZXJhdGlvbik7CkBAIC0yMTQsNiArMjIyLDggQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbiYgdHJhbnNhY3QKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJ
bmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uIik7
CiAKKyAgICBBU1NFUlQoJnRyYW5zYWN0aW9uLmRhdGFiYXNlQ29ubmVjdGlvbigpLmRhdGFiYXNl
KCkgPT0gdGhpcyk7CisKICAgICBpZiAobV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPT0gJnRy
YW5zYWN0aW9uKSB7CiAgICAgICAgIEFTU0VSVCgmbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24t
PmRhdGFiYXNlQ29ubmVjdGlvbigpID09IG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlv
bik7CiAgICAgICAgIG1fZGF0YWJhc2VJbmZvLT5zZXRWZXJzaW9uKHRyYW5zYWN0aW9uLmluZm8o
KS5uZXdWZXJzaW9uKCkpOwpAQCAtMjI1LDE2ICsyMzUsMTMgQEAgdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJh
bnNhY3QKICAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFz
aygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24sIGNh
bGxiYWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKTsKIH0KIAotdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxi
YWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJikKK3ZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhJbmRleGVkREIs
ICIoZGIpIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24iKTsKIAot
ICAgIC8vIEZJWE1FOiBDb21taXQgdHJhbnNhY3Rpb24gaW4gYmFja2luZyBzdG9yZSwgb25jZSB0
aGF0IGV4aXN0cy4KLQotICAgIElEQkVycm9yIGVycm9yOworICAgIElEQkVycm9yIGVycm9yID0g
bV9iYWNraW5nU3RvcmUtPmNvbW1pdFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7
CiAgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFz
aygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24s
IGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IpKTsKLQogfQogCiB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpkaWRQZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlm
aWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCkBAIC0yNDIsNiArMjQ5LDQ4IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxs
YmFja0lkZW50aWZpZXIsCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5k
ZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQ29tbWl0VHJhbnNh
Y3Rpb24iKTsKIAorICAgIC8vIFByZXZpb3VzbHkgYmxvY2tlZCB0cmFuc2FjdGlvbnMgbWlnaHQg
bm93IGJlIHVuYmxvY2tlZC4KKyAgICBpbnZva2VUcmFuc2FjdGlvblNjaGVkdWxlcigpOworCisg
ICAgcGVyZm9ybUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcik7Cit9CisK
K3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIEVycm9yQ2FsbGJhY2sgY2FsbGJhY2spCit7Cisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVu
aXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBBU1NFUlQoJnRyYW5z
YWN0aW9uLmRhdGFiYXNlQ29ubmVjdGlvbigpLmRhdGFiYXNlKCkgPT0gdGhpcyk7CisKKyAgICBp
ZiAobV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPT0gJnRyYW5zYWN0aW9uKSB7CisgICAgICAg
IEFTU0VSVCgmbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigp
ID09IG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbik7CisgICAgICAgIEFTU0VSVCh0
cmFuc2FjdGlvbi5vcmlnaW5hbERhdGFiYXNlSW5mbygpKTsKKyAgICAgICAgbV9kYXRhYmFzZUlu
Zm8gPSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4oKnRyYW5zYWN0aW9uLm9yaWdp
bmFsRGF0YWJhc2VJbmZvKCkpOworICAgICAgICBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9
IG51bGxwdHI7CisgICAgICAgIG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbiA9IG51
bGxwdHI7CisgICAgfQorCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2so
Y2FsbGJhY2spOworICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJl
YWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9u
LCBjYWxsYmFja0lELCB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKSk7Cit9CisKK3Zv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNh
bGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgTE9HKElu
ZGV4ZWREQiwgIihkYikgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9u
Iik7CisKKyAgICBJREJFcnJvciBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5hYm9ydFRyYW5zYWN0
aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFz
a1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpk
aWRQZXJmb3JtQWJvcnRUcmFuc2FjdGlvbiwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcikpOwor
fQorCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQWJvcnRUcmFuc2FjdGlvbih1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5p
cXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICAvLyBQ
cmV2aW91c2x5IGJsb2NrZWQgdHJhbnNhY3Rpb25zIG1pZ2h0IG5vdyBiZSB1bmJsb2NrZWQuCisg
ICAgaW52b2tlVHJhbnNhY3Rpb25TY2hlZHVsZXIoKTsKKwogICAgIHBlcmZvcm1FcnJvckNhbGxi
YWNrKGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5o
CmluZGV4IGY2MjVjMDguLmVmZmE2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC00NCw2
ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCRXJyb3I7CiBjbGFzcyBJ
REJSZXF1ZXN0RGF0YTsKK2NsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsKIAogbmFtZXNwYWNlIElE
QlNlcnZlciB7CiAKQEAgLTY1LDYgKzY2LDcgQEAgcHVibGljOgogICAgIElEQlNlcnZlciYgc2Vy
dmVyKCkgeyByZXR1cm4gbV9zZXJ2ZXI7IH0KIAogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24o
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIEVycm9yQ2FsbGJhY2spOworICAgIHZvaWQg
YWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxs
YmFjayk7CiAgICAgdm9pZCB0cmFuc2FjdGlvbkRlc3Ryb3llZChVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uJik7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudChVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKIApAQCAtODMsMTAgKzg1LDEzIEBAIHByaXZhdGU6CiAg
ICAgLy8gRGF0YWJhc2UgdGhyZWFkIG9wZXJhdGlvbnMKICAgICB2b2lkIG9wZW5CYWNraW5nU3Rv
cmUoY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAgICAgdm9pZCBwZXJmb3JtQ29tbWl0
VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCBwZXJmb3JtQWJv
cnRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIGJlZ2luVHJh
bnNhY3Rpb25JbkJhY2tpbmdTdG9yZShjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKIAogICAg
IC8vIE1haW4gdGhyZWFkIGNhbGxiYWNrcwogICAgIHZvaWQgZGlkT3BlbkJhY2tpbmdTdG9yZShj
b25zdCBJREJEYXRhYmFzZUluZm8mKTsKICAgICB2b2lkIGRpZFBlcmZvcm1Db21taXRUcmFuc2Fj
dGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CisgICAg
dm9pZCBkaWRQZXJmb3JtQWJvcnRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIsIGNvbnN0IElEQkVycm9yJik7CiAKICAgICB2b2lkIHBlcmZvcm1FcnJvckNhbGxiYWNrKHVp
bnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcAppbmRleCAyYjBiYmM2Li40MzM1MWJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcApAQCAtOTMs
NiArOTMsMTggQEAgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uOjpjcmVhdGVWZXJzaW9uQ2hhbmdlVHIKICAgICByZXR1cm4gdHJhbnNhY3Rp
b24uZ2V0KCk7CiB9CiAKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRBYm9y
dFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBj
b25zdCBJREJFcnJvciYgZXJyb3IpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbjo6ZGlkQWJvcnRUcmFuc2FjdGlvbiIpOworCisgICAgYXV0byB0cmFu
c2FjdGlvbklkZW50aWZpZXIgPSB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpOworCisg
ICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25NYXAuY29udGFpbnModHJhbnNhY3Rpb25JZGVudGlmaWVy
KSk7CisgICAgbV90cmFuc2FjdGlvbk1hcC5yZW1vdmUodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
KworICAgIG1fY29ubmVjdGlvblRvQ2xpZW50LmRpZEFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBlcnJvcik7Cit9CisKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uOjpkaWRDb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0
cmFuc2FjdGlvbiwgY29uc3QgSURCRXJyb3ImIGVycm9yKQogewogICAgIExPRyhJbmRleGVkREIs
ICJVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZENvbW1pdFRyYW5zYWN0aW9uIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgKaW5kZXggNmVlOGU3Zi4uMWY1
MGU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaApAQCAtNjIs
NiArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90IHJlcXVlc3RlZFZlcnNpb24pOwogICAgIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IGNyZWF0ZVZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbih1aW50NjRfdCBuZXdWZXJzaW9uKTsKIAor
ICAgIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
JiwgY29uc3QgSURCRXJyb3ImKTsKICAgICB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKFVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBJREJFcnJvciYpOwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCmluZGV4IGM4YjJm
ZGUuLmI2M2FlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bi5jcHAKQEAgLTQ0LDYgKzQ0LDkgQEAgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6VW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm4KICAgICA6IG1f
ZGF0YWJhc2VDb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX3RyYW5zYWN0aW9uSW5mbyhp
bmZvKQogeworICAgIGlmIChtX3RyYW5zYWN0aW9uSW5mby5tb2RlKCkgPT0gSW5kZXhlZERCOjpU
cmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpCisgICAgICAgIG1fb3JpZ2luYWxEYXRhYmFz
ZUluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4obV9kYXRhYmFzZUNvbm5l
Y3Rpb24tPmRhdGFiYXNlKCkuaW5mbygpKTsKKwogICAgIG1fZGF0YWJhc2VDb25uZWN0aW9uLT5k
YXRhYmFzZSgpLnNlcnZlcigpLnJlZ2lzdGVyVHJhbnNhY3Rpb24oKnRoaXMpOwogfQogCkBAIC01
Myw2ICs1NiwyMyBAQCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjp+VW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbigpCiAgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNlKCku
c2VydmVyKCkudW5yZWdpc3RlclRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAorSURCRGF0YWJhc2VJ
bmZvKiBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpvcmlnaW5hbERhdGFiYXNlSW5mbygp
IGNvbnN0Cit7CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25JbmZvLm1vZGUoKSA9PSBJbmRleGVk
REI6OlRyYW5zYWN0aW9uTW9kZTo6VmVyc2lvbkNoYW5nZSk7CisgICAgcmV0dXJuIG1fb3JpZ2lu
YWxEYXRhYmFzZUluZm8uZ2V0KCk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbjo6YWJvcnQoKQoreworICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uOjphYm9ydCIpOworCisgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24+IHNlbGYodGhpcyk7CisgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNlKCku
YWJvcnRUcmFuc2FjdGlvbigqdGhpcywgW3RoaXMsIHNlbGZdKGNvbnN0IElEQkVycm9yJiBlcnJv
cikgeworICAgICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bjo6YWJvcnQgKGNhbGxiYWNrKSIpOworICAgICAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGlk
QWJvcnRUcmFuc2FjdGlvbigqdGhpcywgZXJyb3IpOworICAgIH0pOworfQorCiB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmNvbW1pdCgpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwg
IlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmNvbW1pdCIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJh
bnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmgKaW5kZXggYjJjYWNjYS4uYmUzOTU2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oCkBAIC0zNCw2ICszNCw5IEBA
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBJREJEYXRhYmFzZUluZm87CisKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCiBjbGFzcyBV
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb247CkBAIC00Nyw2ICs1MCw5IEBAIHB1YmxpYzoKICAg
ICBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGRhdGFiYXNlQ29ubmVjdGlvbigpIHsgcmV0
dXJuIG1fZGF0YWJhc2VDb25uZWN0aW9uLmdldCgpOyB9CiAgICAgY29uc3QgSURCVHJhbnNhY3Rp
b25JbmZvJiBpbmZvKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2FjdGlvbkluZm87IH0KIAorICAg
IElEQkRhdGFiYXNlSW5mbyogb3JpZ2luYWxEYXRhYmFzZUluZm8oKSBjb25zdDsKKworICAgIHZv
aWQgYWJvcnQoKTsKICAgICB2b2lkIGNvbW1pdCgpOwogCiBwcml2YXRlOgpAQCAtNTQsNiArNjAs
OCBAQCBwcml2YXRlOgogCiAgICAgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbj4gbV9k
YXRhYmFzZUNvbm5lY3Rpb247CiAgICAgSURCVHJhbnNhY3Rpb25JbmZvIG1fdHJhbnNhY3Rpb25J
bmZvOworCisgICAgc3RkOjp1bmlxdWVfcHRyPElEQkRhdGFiYXNlSW5mbz4gbV9vcmlnaW5hbERh
dGFiYXNlSW5mbzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5jcHAKaW5kZXgg
OTczMzNmNi4uOGE4NzVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkVycm9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuY3BwCkBAIC00Myw2ICs0MywxMCBAQCBzdGF0aWMgY29u
c3QgU3RyaW5nJiBpZGJFcnJvck5hbWUoSURCRXhjZXB0aW9uQ29kZSBjb2RlKQogICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJhbCgiVmVyc2lv
bkVycm9yIik7CiAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICB9CisgICAgY2FzZSBJREJFeGNl
cHRpb25Db2RlOjpJbnZhbGlkU3RhdGVFcnJvcjogeworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJhbCgiSW52YWxpZFN0YXRlRXJyb3IiKTsK
KyAgICAgICAgcmV0dXJuIGVudHJ5OworICAgIH0KICAgICBjYXNlIElEQkV4Y2VwdGlvbkNvZGU6
Ok5vbmU6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAt
NTQsMTMgKzU4LDE3IEBAIHN0YXRpYyBjb25zdCBTdHJpbmcmIGlkYkVycm9yRGVzY3JpcHRpb24o
SURCRXhjZXB0aW9uQ29kZSBjb2RlKQogewogICAgIHN3aXRjaCAoY29kZSkgewogICAgIGNhc2Ug
SURCRXhjZXB0aW9uQ29kZTo6VW5rbm93bjogewotICAgICAgICBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJPcGVyYXRpb24gZmFpbGVkIGZvciByZWFzb25zIHVu
cmVsYXRlZCB0byB0aGUgZGF0YWJhc2UgaXRzZWxmIGFuZCBub3QgY292ZXJlZCBieSBhbnkgb3Ro
ZXIgZXJyb3JzLiIpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRy
eSA9IEFTQ0lJTGl0ZXJhbCgiT3BlcmF0aW9uIGZhaWxlZCBmb3IgcmVhc29ucyB1bnJlbGF0ZWQg
dG8gdGhlIGRhdGFiYXNlIGl0c2VsZiBhbmQgbm90IGNvdmVyZWQgYnkgYW55IG90aGVyIGVycm9y
cy4iKTsKICAgICAgICAgcmV0dXJuIGVudHJ5LmdldCgpOwogICAgIH0KICAgICBjYXNlIElEQkV4
Y2VwdGlvbkNvZGU6OlZlcnNpb25FcnJvcjogewotICAgICAgICBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIG9wZW4gYSBk
YXRhYmFzZSB1c2luZyBhIGxvd2VyIHZlcnNpb24gdGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbi4i
KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50cnkgPSBBU0NJSUxp
dGVyYWwoIkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93
ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIpOwogICAgICAgICByZXR1cm4g
ZW50cnkuZ2V0KCk7CiAgICAgfQorICAgIGNhc2UgSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0
YXRlRXJyb3I6IHsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gZW50cnkg
PSBBU0NJSUxpdGVyYWwoIk9wZXJhdGlvbiB3YXMgY2FsbGVkIG9uIGFuIG9iamVjdCBvbiB3aGlj
aCBpdCBpcyBub3QgYWxsb3dlZCBvciBhdCBhIHRpbWUgd2hlbiBpdCBpcyBub3QgYWxsb3dlZC4i
KTsKKyAgICAgICAgcmV0dXJuIGVudHJ5OworICAgIH0KICAgICBjYXNlIElEQkV4Y2VwdGlvbkNv
ZGU6Ok5vbmU6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVy
cm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3Iu
aAppbmRleCA0MDcwMzRjLi42ZTc3NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaApAQCAtMzYsNiArMzYsOSBAQCBlbnVtIGNs
YXNzIElEQkV4Y2VwdGlvbkNvZGUgewogICAgIE5vbmUgPSAwLAogICAgIFVua25vd24sCiAgICAg
VmVyc2lvbkVycm9yLAorCisgICAgLy8gSW5kZXhlZCBEQiBleGlzdGluZyBleGNlcHRpb24gY29k
ZXMgd2l0aCBJREItc3BlY2lmaWMgZXJyb3IgbWVzc2FnZXM6CisgICAgSW52YWxpZFN0YXRlRXJy
b3IsCiB9OwogCiBjbGFzcyBJREJFcnJvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmlu
ZGV4IDdjMmY5YmYuLmQ3ZmRlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC0x
MDIsNiArMTAyLDE0IEBAIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRPcGVuRGF0YWJhc2Uo
Y29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKICAgICB9KTsKIH0KIAordm9pZCBJblBy
b2Nlc3NJREJTZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sK
KyAgICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOworICAgIFJ1bkxvb3A6
OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgc2VsZiwgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBl
cnJvcl0geworICAgICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkQWJvcnRUcmFuc2FjdGlv
bih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKTsKKyAgICB9KTsKK30KKwogdm9pZCBJblBy
b2Nlc3NJREJTZXJ2ZXI6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCiB7
CiAgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2VsZih0aGlzKTsKQEAgLTExMCw2ICsx
MTgsMTQgQEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnMKICAgICB9KTsKIH0KIAordm9pZCBJblBy
b2Nlc3NJREJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJiBy
ZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2Vs
Zih0aGlzKTsKKyAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHNlbGYsIHJl
c291cmNlSWRlbnRpZmllcl0geworICAgICAgICBtX3NlcnZlci0+YWJvcnRUcmFuc2FjdGlvbihy
ZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH0pOworfQorCiB2b2lkIEluUHJvY2Vzc0lEQlNlcnZl
cjo6Y29tbWl0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXNvdXJjZUlkZW50
aWZpZXIpCiB7CiAgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2VsZih0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nl
c3NJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9J
blByb2Nlc3NJREJTZXJ2ZXIuaAppbmRleCBkYzA5NDUxLi5iZDNjYjczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vz
c0lEQlNlcnZlci5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAvLyBJREJDb25uZWN0
aW9uVG9TZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVzdERh
dGEmKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkRhdGFiYXNlKElEQlJl
cXVlc3REYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGFib3J0VHJhbnNh
Y3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVh
bCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpIG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CiAKQEAgLTYz
LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBJ
REJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZE9wZW5E
YXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVh
bCB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJikgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpIG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KElEQlNlcnZl
cjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lv
bikgb3ZlcnJpZGUgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NGM0OGVkLi40OTI1M2Q0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTE2LDEy
ICsxNTE2LDEyIEBACiAJCTQxNjJBNDU4MTAxMTQ2NDcwMERGRjNFRCAvKiBKU0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTYyQTQ1NjEwMTE0NjQ3MDBERkYzRUQgLyogSlNEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZS5oICovOyB9OwogCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVw
b3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oICov
OyB9OwogCQk0MTZFNkZFODFCQkQxMkRGMDAwQTYwMzMgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRp
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNE
ODA2MUJCMzExMEQwMEI3NjRDOSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQxNkU2RkVBMUJCRDE2
ODQwMDBBNjAzNCAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA3MUJCMzExMEQwMEI3
NjRDQSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTZFNkZFODFCQkQxMkRGMDAwQTYw
NDMgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ5IC8q
IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0MTZFNkZFOTFCQkQxMkU1MDAwQTYwNDMgLyog
UmVhZGFibGVTdHJlYW1CdWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFt
QnVpbHRpbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQk0MTZFNkZFQTFCQkQxNjg0MDAwQTYwNDQgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNC
dWlsdGluc1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCMDNEODA3MUJCMzExMEQwMEI3NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFs
c0J1aWx0aW5zV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUlu
dGVybmFsc0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTkgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5h
bHNCdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTQxNkU2RkU5MUJCRDEyRTUwMDBBNjA0MyAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgw
NjFCQjMxMTBEMDBCNzY0RDggLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNkU2RkU5MUJCRDEyRTUw
MDBBNjA1MyAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTggLyogV3Jp
dGFibGVTdHJlYW1CdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjAzNCAvKiBTdHJlYW1JbnRlcm5h
bHNCdWlsdGluc1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMDNEODA3MUJCMzExMEQwMEI3NjRDQSAvKiBTdHJlYW1JbnRlcm5hbHNCdWls
dGluc1dyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk0MTZFNkZFQTFCQkQxNjg0MDAwQTYwNDQgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5h
bHNCdWlsdGluc1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMDNEODA3MUJCMzExMEQwMEI3NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVy
bmFsc0J1aWx0aW5zV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjA1NCAvKiBXcml0YWJsZVN0cmVh
bUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NEVBIC8qIFdyaXRhYmxlU3Ry
ZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE3MjUzQUExMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxNzI1M0E4MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAgKi87IH07CiAJCTQxNzI1M0FCMTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xF
bGVtZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmggKi87IH07
CkBAIC0yMTg1LDYgKzIxODUsOCBAQAogCQk1MUUwQkFFQjBEQTU1RDRBMDBBOUU0MTcgLyogSlNT
dG9yYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRTBCQUU5MERBNTVENEEwMEE5RTQxNyAvKiBKU1N0b3JhZ2VFdmVudC5oICovOyB9Owog
CQk1MUUwQkIzODBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMEJCMzYwREE1QUNCNjAwQTlFNDE3
IC8qIFN0b3JhZ2VNYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MUUwQkIzOTBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUwQkIzNzBEQTVB
Q0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5jcHAgKi87IH07CisJCTUxRTFCQUMyMUJEODA2NEUw
MDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUxQkFDMDFCRDgwNjQ3MDA1NUQ4
MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwICovOyB9OworCQk1MUUxQkFD
MzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFCQUMxMUJEODA2
NDcwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oICovOyB9OwogCQk1
MUUxRUNCRTBDOTFDOTA0MDBEQzI1NUIgLyogSWNvbkRhdGFiYXNlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUxRUNCODBDOTFDOTA0MDBE
QzI1NUIgLyogSWNvbkRhdGFiYXNlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFFMUVDQzAwQzkxQzkwNDAwREMyNTVCIC8qIEljb25S
ZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFFMUVDQkEwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuY3BwICovOyB9OwogCQk1MUUx
RUNDMTBDOTFDOTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMUVDQkIwQzkxQzkwNDAwREMyNTVCIC8qIElj
b25SZWNvcmQuaCAqLzsgfTsKQEAgLTI2NjEsMTEgKzI2NjMsMTEgQEAKIAkJN0M0OEE2RDExOTFD
OUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0OEE2Q0YxOTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktp
dE5hbWVzcGFjZS5oICovOyB9OwogCQk3QzQ5MDJBMjE4QjgyNUY4MDA3RDkyOTggLyogRE9NV2hl
ZWxFdmVudEludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk4OURDQTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NV2hl
ZWxFdmVudEludGVybmFsLmggKi87IH07CiAJCTdDNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBK
U1JlYWRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNw
cCAqLzsgfTsKKwkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2
RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uY3BwICovOyB9OwogCQk3QzRD
OTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTUmVhZGFibGVTdHJlYW0uaCAqLzsgfTsKKwkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTYw
IC8qIEpTV3JpdGFibGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFt
LmggKi87IH07CiAJCTdDNEM5NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFt
UmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAq
LzsgfTsKIAkJN0M0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5
NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmggKi87IH07Ci0J
CTdDNEM5NkRDMUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ4MUFENDQ4MzUw
MDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNwcCAqLzsgfTsKLQkJN0M0Qzk2REQxQUQ0NDgz
NTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRh
YmxlU3RyZWFtLmggKi87IH07CiAJCTdDNEM5NkUzMUFENDRBQkYwMDM2NUE1MCAvKiBMYXVuY2hT
ZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M0Qzk2RTIxQUQ0NEFCRjAwMzY1QTUwIC8qIExhdW5jaFNlcnZpY2VzU1BJLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0M0RURENzQxQTdC
NjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEVERDczMUE3QjYwNzgwMDE5OEM0RCAvKiBGb250Q29jb2Eu
bW0gKi87IH07CiAJCTdDNTIyRDRCMTVCNDc3RTgwMDlCN0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTIy
RDQ5MTVCNDc3RTgwMDlCN0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5LmNwcCAqLzsgfTsKQEAgLTk1
OTEsNiArOTU5Myw4IEBACiAJCTUxRTBCQUU5MERBNTVENEEwMEE5RTQxNyAvKiBKU1N0b3JhZ2VF
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0b3JhZ2VFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUwQkIzNjBEQTVBQ0I2MDBBOUU0MTcg
LyogU3RvcmFnZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdl
TWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTBCQjM3MERBNUFDQjYwMEE5
RTQxNyAvKiBTdG9yYWdlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFN0b3JhZ2VNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUxQkFD
MDFCRDgwNjQ3MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUUxQkFDMTFCRDgw
NjQ3MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMUVDQjgwQzkxQzkwNDAwREMyNTVCIC8q
IEljb25EYXRhYmFzZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
Y29uRGF0YWJhc2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMUVD
QkEwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSWNvblJlY29yZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxRTFFQ0JCMEM5MUM5MDQwMERDMjU1QiAvKiBJY29uUmVjb3JkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEljb25SZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwMTIwLDExICsxMDEyNCwxMSBAQAogCQk3QzQ4QTZDRjE5MUM5RDY1MDAw
MjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdE5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzQ4
QTZEMjE5MUM5RDhFMDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRO
YW1lc3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzRDOTZEODFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXcml0YWJsZVN0cmVh
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkQ5MUFENDQ4MzUwMDM2
NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUmVhZGFibGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M0
Qzk2RDkxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXcml0YWJsZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVh
bVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRh
YmxlU3RyZWFtUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2
REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0
YWJsZVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dy
aXRhYmxlU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0M0Qzk2RDkx
QUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNXcml0YWJsZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QzRDOTZFMjFBRDQ0QUJGMDAzNjVBNTAgLyogTGF1bmNoU2VydmljZXNTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF1bmNoU2VydmljZXNTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZv
bnRDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M1MjJENDkxNUI0NzdFODAw
OUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5zcGVjdG9yT3ZlcmxheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMTM2NCwxNCArMTEzNjgsMTMgQEAKIAkJOTkwOEIwRUMxQkNBQ0YxRjAwRUQwRjY1
IC8qIGdlbmVyYXRlLWpzLWJ1aWx0aW5zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBw
YXRoID0gImdlbmVyYXRlLWpzLWJ1aWx0aW5zIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTkwOEIwRUQxQkNBQ0Y5MTAwRUQwRjY1IC8qIEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3ku
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBCeXRlTGVuZ3RoUXVl
dWluZ1N0cmF0ZWd5LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBFRTFC
Q0FDRjkxMDBFRDBGNjUgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuanMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBDb3VudFF1ZXVpbmdTdHJhdGVneS5qczsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjU1IC8qIFN0cmVh
bUludGVybmFscy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFN0
cmVhbUludGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRkQx
QkNBRDA3RDAwRUQwRjU1IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQwRjY1IC8q
IFJlYWRhYmxlU3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gUmVhZGFibGVTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhC
MEVGMUJDQUNGOTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbS5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTA4QjBGMDFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0g
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzLmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNjUgLyogUmVh
ZGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTkwOEIwRjIxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVy
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFibGVTdHJl
YW1SZWFkZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5MDhCMEVGMUJDQUNG
OTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5h
bHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBXcml0YWJsZVN0
cmVhbUludGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTkwOEIwRjIx
QkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXIuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEYzMUJDQUNGRkUwMEVEMEY2NSAvKiBCeXRl
TGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjQxQkNBQ0ZGRTAwRUQwRjY1IC8qIEJ5
dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zV3JhcHBl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGNTFCQ0FEMDdEMDBFRDBG
NjUgLyogQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzNzksMTUgKzExMzgyLDE2IEBACiAJCTk5
MDhCMEY3MUJDQUQwN0QwMEVEMEY2NSAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5QnVp
bHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjgxQkNBRDA3RDAw
RUQwRjY1IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnNXcmFwcGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnNXcmFw
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEY5MUJDQUQwN0QwMEVE
MEY2NSAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5OTA4QjBGOTFCQ0FEMDdEMDBFRDBGNzUgLyogV3JpdGFibGVTdHJl
YW1CdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXcml0
YWJsZVN0cmVhbUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkw
OEIwRkExQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlckJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkw
OEIwRkIxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQ29udHJv
bGxlckJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZDMUJD
QUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJCdWlsdGluc1dyYXBwZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhC
MEZEMUJDQUQwN0QwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY2
NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNzUg
LyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkUxQkNBRDA3RDAwRUQwRjY1IC8q
IFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZGMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJs
ZVN0cmVhbVJlYWRlckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTkwOEIxMDAxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVp
bHRpbnNXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxl
U3RyZWFtUmVhZGVyQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk5MDhCMEY5MUJDQUQwN0QwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVp
bHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGRDFCQ0FEMDdE
MDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0
aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyMDM5ODAxOEI5NUJDNjAw
QjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBVc2VySW5wdXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5OTIwMzk4MTE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5OUM3Q0NCMjE4QzY2M0U0MDAzMkU0MTMgLyogTWVtb2l6ZWRE
T01SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb2l6ZWRET01S
ZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNDI1LDEzICsxMTQyOSwx
MyBAQAogCQk5QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQjFGMzdGMThFMjQ4
OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0QzkgLyog
U3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NENBIC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3Jh
cHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHNC
dWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4MDYx
QkIzMTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDkgLyogUmVhZGFibGVT
dHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTlCMDNEODA3MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0
aW5zV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0
cmVhbUJ1aWx0aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QjAz
RDgwNzFCQjMxMTBEMDBCNzY0REEgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dy
YXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1J
bnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEU4IC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTkgLyog
V3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlCMDNEODA3MUJCMzExMEQwMEI3NjRDQSAvKiBTdHJlYW1JbnRl
cm5hbHNCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTlCMDNEODA3MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5z
V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVh
bUJ1aWx0aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjAzRDgw
NzFCQjMxMTBEMDBCNzY0REEgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBw
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRl
cm5hbHNCdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIw
M0Q4MDcxQkIzMTEwRDAwQjc2NEU4IC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVpbHRpbnNX
cmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA3MUJCMzExMEQw
MEI3NjRFQSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0
aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjE5QjY3RTFCOTY0
RTUyMDAzNDg3NDUgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2hh
ZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQwOCw3ICsxNjQx
Miw2IEBACiAJCQkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRGIC8qIFdyaXRhYmxlU3RyZWFtLmlk
bCAqLywKIAkJCQk5OTA4QjBFRjFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW0uanMg
Ki8sCiAJCQkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjc1IC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJu
YWxzLmpzICovLAotCiAJCQkpOwogCQkJcGF0aCA9IHN0cmVhbXM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMTY4MjksNiArMTY4MzIsOCBAQAogCQkJCTUxMEE1OEYwMUJBQjcyMEYw
MEMxOTI4MiAvKiBJREJTZXJ2ZXIuaCAqLywKIAkJCQk1MTg4NjRFNDFCQkI0QjdFMDBFNTQwQzkg
LyogSURCU2VydmVyT3BlcmF0aW9uLmNwcCAqLywKIAkJCQk1MTg4NjRFNTFCQkI0QjdFMDBFNTQw
QzkgLyogSURCU2VydmVyT3BlcmF0aW9uLmggKi8sCisJCQkJNTFFMUJBQzAxQkQ4MDY0NzAwNTVE
ODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcCAqLywKKwkJCQk1MUUxQkFD
MTFCRDgwNjQ3MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCAqLywK
IAkJCQk1MUJBNEFDODFCQkM1QjlFMDBERjNENkQgLyogTWVtb3J5SURCQmFja2luZ1N0b3JlLmNw
cCAqLywKIAkJCQk1MUJBNEFDOTFCQkM1QjlFMDBERjNENkQgLyogTWVtb3J5SURCQmFja2luZ1N0
b3JlLmggKi8sCiAJCQkJNTE4ODY0REUxQkJBRjMwRjAwRTU0MEM5IC8qIFVuaXF1ZUlEQkRhdGFi
YXNlLmNwcCAqLywKQEAgLTI2OTYwLDYgKzI2OTY1LDcgQEAKIAkJCQk0MzkwNDZERTEyREEyNUU4
MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2
RTAxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE9wZXJhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MzkwNDZFMDEyREEyNUU4MDBCRjgwQTMgLyogUmVuZGVyTWF0aE1MUmFkaWNhbE9w
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyog
TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0
NkUyMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb290LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzkwNDZFNDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MUm93LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MzkwNDZFODEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MU2Ny
aXB0cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTk4MCw2ICsyOTk4Niw3IEBACiAJCQkJQjJGQTNE
QkMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkZBM0RCRTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnQ3VydmV0
b0N1YmljQWJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREMwMEFCNzVBNkYwMDBFNUFD
NCAvKiBKU1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTFFMUJBQzIxQkQ4MDY0RTAwNTVEODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREMyMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJG
QTNEQzQwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJl
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RDNjBBQjc1QTZGMDAwRTVBQzQgLyogSlNT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263716</attachid>
            <date>2015-10-21 12:51:18 -0700</date>
            <delta_ts>2015-10-21 13:19:48 -0700</delta_ts>
            <desc>Patch v5 - `git add` fail</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>79745</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTlkMGU3Li4wYzQ1ZjE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMTAt
MjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Rv
dWJsZS1hYm9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9kb3VibGUtYWJvcnQuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNo
YW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sOiBBZGRlZC4KKwogMjAxNS0xMC0yMSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxJRnJhbWVFbGVtZW50LnNh
bmRib3ggc2hvdWxkIGJlIGEgRE9NU2V0dGFibGVUb2tlbkxpc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtYWJvcnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTczNDk4ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3Vi
bGUtYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorQUxFUlQ6IEluaXRpYWwgdXBn
cmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKK0FMRVJUOiBTZWNv
bmQgYWJvcnQgZmFpbGVkOiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24g
MTEKK0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBhYm9y
dGVkCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IGFib3J0cyB0aGUgc2FtZSB0cmFuc2FjdGlvbiB0
d2ljZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gaXMgdGhyb3duLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1Mzg4MzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLWFi
b3J0Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorVGhpcyB0ZXN0IGFib3J0cyB0aGUgc2FtZSB0cmFu
c2FjdGlvbiB0d2ljZSwgbWFraW5nIHRoZSBhcHByb3ByaWF0ZSBleGNlcHRpb24gaXMgdGhyb3du
LgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2Z1bmN0
aW9uIGRvbmUoKQoreworICAgIGFsZXJ0KCJEb25lIik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIGNyZWF0ZVJl
cXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRvdWJsZUFib3J0VGVzdERhdGFiYXNlIiwg
MSk7CisKK2NyZWF0ZVJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICBhbGVydCgiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZl
bnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisK
KyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsK
KyAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgdmVyc2lvblRy
YW5zYWN0aW9uLmFib3J0KCk7CisgICAgdHJ5IHsKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9u
LmFib3J0KCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBhbGVydCgiU2Vjb25kIGFib3J0
IGZhaWxlZDogIiArIGUpOworICAgIH0KKworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJz
aW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0K
KworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
IHVuZXhwZWN0ZWQgY29tcGxldGUiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKworICAgIHZl
cnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxl
cnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQg
ZXJyb3IiICsgZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAgfQorfQorCis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9u
Y2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTY5NzgzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3ZlcnNp
b25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
K0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3IHZlcnNp
b24gLSAxCitBTEVSVDogSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24g
YWJvcnRlZAorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5l
dyB2ZXJzaW9uIC0gMQorQUxFUlQ6IFNlY29uZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb24gY29tcGxldGUKK0FMRVJUOiBUaGlyZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24g
LSAxIE5ldyB2ZXJzaW9uIC0gMgorQUxFUlQ6IFRoaXJkIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0
cmFuc2FjdGlvbiBhYm9ydGVkCitBTEVSVDogRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVy
c2lvbiAtIDEgTmV3IHZlcnNpb24gLSAyCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IG9wZW5zIGEg
bmV3IGRhdGFiYXNlLCB0aGVuIGFib3J0cyB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24u
CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBpdCdzIGEgZGVmYXVs
dCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1Y2Nlc3NmdWxseS4K
K0l0IHRoZW4gcmVvcGVucyB0aGUgZGF0YWJhc2UsIHVwZ3JhZGluZyBpdCdzIHZlcnNpb24uIEl0
IGFib3J0cyB0aGlzIHZlcnNpb25jaGFuZ2UsIGFzIHdlbGwuCitGaW5hbGx5IGl0IHJlb3BlbnMg
dGhlIGRhdGFiYXNlIGFnYWluLCB1cGdyYWRpbmcgaXRzIHZlcnNpb24sIG1ha2luZyBzdXJlIHRo
aW5ncyBoYWQgcmV2ZXJ0ZWQgYmFjayB0byBiZWZvcmUgdGhlIHNlY29uZCBhYm9ydGVkIHZlcnNp
b25jaGFuZ2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwN2Y3ZTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNo
YW5nZS1hYm9ydC10aGVuLXJlb3Blbi5odG1sCkBAIC0wLDAgKzEsMTE1IEBACitUaGlzIHRlc3Qg
b3BlbnMgYSBuZXcgZGF0YWJhc2UsIHRoZW4gYWJvcnRzIHRoZSB2ZXJzaW9uIGNoYW5nZSB0cmFu
c2FjdGlvbi48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCBtYWtpbmcgc3VyZSBp
dCdzIGEgZGVmYXVsdCwgZW1wdHkgZGF0YWJhc2UsIGFuZCBjaGFuZ2VzIHRoZSB2ZXJzaW9uIHN1
Y2Nlc3NmdWxseS48YnI+CitJdCB0aGVuIHJlb3BlbnMgdGhlIGRhdGFiYXNlLCB1cGdyYWRpbmcg
aXQncyB2ZXJzaW9uLiBJdCBhYm9ydHMgdGhpcyB2ZXJzaW9uY2hhbmdlLCBhcyB3ZWxsLjxicj4K
K0ZpbmFsbHkgaXQgcmVvcGVucyB0aGUgZGF0YWJhc2UgYWdhaW4sIHVwZ3JhZGluZyBpdHMgdmVy
c2lvbiwgbWFraW5nIHN1cmUgdGhpbmdzIGhhZCByZXZlcnRlZCBiYWNrIHRvIGJlZm9yZSB0aGUg
c2Vjb25kIGFib3J0ZWQgdmVyc2lvbmNoYW5nZS48YnI+Cis8c2NyaXB0PgorCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgYWxlcnQo
IkRvbmUiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworfQorCit2YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisKK2NyZWF0ZVJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBhbGVydCgiSW5pdGlh
bCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIg
TmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisKKyAgICB2YXIgdmVyc2lvblRy
YW5zYWN0aW9uID0gY3JlYXRlUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICB2YXIgZGF0YWJhc2Ug
PSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLmFib3J0KCk7
CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBh
Ym9ydGVkIik7CisgICAgICAgIGNvbnRpbnVlVGVzdDEoKTsKKyAgICAgICAgZGF0YWJhc2UuY2xv
c2UoKTsKKyAgICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5n
ZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGNvbXBsZXRlIik7CisgICAgICAgIGRvbmUoKTsKKyAg
ICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
biB1bmV4cGVjdGVkIGVycm9yIiArIGV2ZW50KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30K
KworZnVuY3Rpb24gY29udGludWVUZXN0MSgpCit7CisgICAgY3JlYXRlUmVxdWVzdCA9IHdpbmRv
dy5pbmRleGVkREIub3BlbigiVmVyc2lvbkNoYW5nZUFib3J0VGVzdERhdGFiYXNlIiwgMSk7CisK
KyAgICBjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2
ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOwor
CisgICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0
aW9uOworICAgICAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAg
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVu
ZXhwZWN0ZWQgYWJvcnQiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgICAgIGFsZXJ0KCJTZWNvbmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
IGNvbXBsZXRlIik7CisgICAgICAgICAgICBjb250aW51ZVRlc3QyKCk7CisgICAgICAgICAgICBk
YXRhYmFzZS5jbG9zZSgpOworICAgICAgICB9CisKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9u
Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgYWxlcnQoIlNlY29uZCB1
cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVu
dCk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9u
IGNvbnRpbnVlVGVzdDIoKQoreworICAgIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERC
Lm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRlc3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRl
UmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVy
dCgiVGhpcmQgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNp
b24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgICAgIHZh
ciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAg
ICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZlcnNpb25U
cmFuc2FjdGlvbi5hYm9ydCgpOworICAgIAorICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25h
Ym9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFk
ZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICAgICAgICAgIGNvbnRp
bnVlVGVzdDMoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLmNsb3NlKCk7CisgICAgICAgIH0KKwor
ICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgICAgICBhbGVydCgiVGhpcmQgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0
aW9uIHVuZXhwZWN0ZWQgY29tcGxldGUiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIGFsZXJ0KCJUaGlyZCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAgICAgICBkb25lKCk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdDMoKQoreworICAgIGNy
ZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlZlcnNpb25DaGFuZ2VBYm9ydFRl
c3REYXRhYmFzZSIsIDIpOworCisgICAgY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiRm91cnRoIHVwZ3JhZGUgbmVlZGVkOiBP
bGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBl
dmVudC5uZXdWZXJzaW9uKTsKKyAgICAgICAgdmFyIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30KKworPC9zY3JpcHQ+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NzZkOTdiLi4xNTRiNzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTA0LDYgKzkwNCw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCiAgICAgTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlck9wZXJhdGlvbi5jcHAKKyAgICBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAyZGUyYjNmLi5kNTQyNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTUgQEAKKzIw
MTUtMTAtMjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1v
ZGVybiBJREI6IEFkZCBiYXNpYyB0cmFuc2FjdGlvbiBhYm9ydGluZy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vZG91YmxlLWFib3J0Lmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLmh0bWwKKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERC
Lmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
Q2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24pOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkRh
dGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCRGF0YWJhc2U6OmRpZENvbW1pdE9yQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmFib3J0KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmlzRmluaXNoZWRP
ckZpbmlzaGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9u
OjphY3RpdmF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QlRyYW5zYWN0aW9uOjpkaWRBYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEFib3J0VHJh
bnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29u
bmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb246Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246On5NZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpjb21taXQpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbjo6aXNWZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6c2V0RGF0YWJhc2VJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2lu
Z1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
TWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oOgorCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURC
RGF0YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29t
bWl0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJE
YXRhYmFzZTo6ZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpk
aWRBYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246Om9yaWdpbmFsRGF0YWJhc2VJbmZvKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bjo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJFcnJvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppZGJFcnJvck5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6aWRiRXJyb3JEZXNjcmlwdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaDoKKwogMjAxNS0xMC0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxJRnJhbWVF
bGVtZW50LnNhbmRib3ggc2hvdWxkIGJlIGEgRE9NU2V0dGFibGVUb2tlbkxpc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgKaW5kZXggN2ZjNTFkYS4uNTU4
YmJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhl
ZERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgK
QEAgLTQzLDYgKzQzLDcgQEAgZW51bSBjbGFzcyBUcmFuc2FjdGlvblN0YXRlIHsKICAgICBVbnN0
YXJ0ZWQsCiAgICAgUnVubmluZywKICAgICBDb21taXR0aW5nLAorICAgIEFib3J0aW5nLAogICAg
IEZpbmlzaGVkLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCBh
ZTg3NDQyLi4xMzBkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAt
MTEzLDYgKzExMywyNiBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkQ29tbWl0VHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cgogICAgIHRyYW5zYWN0aW9u
LT5kaWRDb21taXQoZXJyb3IpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJv
cnRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKElu
ZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbiIpOworICAg
IEFTU0VSVCghbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbi5pbmZv
KCkuaWRlbnRpZmllcigpKSk7CisgICAgbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy5zZXQodHJhbnNh
Y3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgJnRyYW5zYWN0aW9uKTsKKworICAgIGF1dG8gaWRl
bnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCk7CisgICAgbV9kZWxlZ2F0
ZS0+YWJvcnRUcmFuc2FjdGlvbihpZGVudGlmaWVyKTsKK30KKwordm9pZCBJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAgICBM
T0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRBYm9ydFRyYW5zYWN0aW9u
Iik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9hYm9ydGluZ1RyYW5zYWN0aW9ucy50YWtl
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgQVNTRVJUKHRyYW5zYWN0aW9uKTsKKworICAg
IHRyYW5zYWN0aW9uLT5kaWRBYm9ydChlcnJvcik7Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblRv
U2VydmVyOjpmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGNjNGUzOTIuLmJiZmQyMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAg
IHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKICAgICB2b2lkIGRpZENv
bW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCisgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9u
KElEQlRyYW5zYWN0aW9uJik7CisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJv
ciYpOworCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwogCiAgICAg
dm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQoSURCRGF0YWJhc2UmKTsKQEAgLTc1LDYgKzc4
LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRy
PElEQkNsaWVudDo6SURCT3BlbkRCUmVxdWVzdD4+IG1fb3BlbkRCUmVxdWVzdE1hcDsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBJREJEYXRhYmFzZSo+IG1fZGF0YWJhc2VDb25uZWN0aW9uTWFwOwog
ICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+
PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50
aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWJvcnRpbmdUcmFuc2FjdGlvbnM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlckRlbGVnYXRlLmgKaW5kZXggNTYwN2JiYi4uMTZkYWRjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVzdERhdGEmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9wZW5EYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgYWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcAppbmRl
eCBhYWI2MzdlLi40OWE0ZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtMTc1LDYgKzE3
NSwxNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaWRDb21taXRUcmFuc2FjdGlvbihJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24pCiAgICAgZGlkQ29tbWl0T3JBYm9ydFRyYW5zYWN0aW9uKHRyYW5z
YWN0aW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNl
OjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHJlZlRyYW5zYWN0aW9uID0gbV9hY3Rp
dmVUcmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKTsKKyAg
ICBBU1NFUlQocmVmVHJhbnNhY3Rpb24pOworICAgIG1fYWJvcnRpbmdUcmFuc2FjdGlvbnMuc2V0
KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIFdURjo6bW92ZShyZWZUcmFuc2FjdGlv
bikpOworCisgICAgbV9zZXJ2ZXJDb25uZWN0aW9uLT5hYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0
aW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZTo6ZGlkQWJvcnRUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNl
OjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CkBAIC0xODcsMTEgKzE5OCwyMiBAQCB2b2lkIElEQkRh
dGFiYXNlOjpkaWRDb21taXRPckFib3J0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uKQogCiAgICAgaWYgKG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID09ICZ0cmFuc2Fj
dGlvbikKICAgICAgICAgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwotICAg
IAotICAgIEFTU0VSVChtX2FjdGl2ZVRyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbi5p
bmZvKCkuaWRlbnRpZmllcigpKSB8fCBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMuY29udGFpbnMo
dHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOworCisjaWZuZGVmIE5EQkVCVUcKKyAg
ICB1bnNpZ25lZCBjb3VudCA9IDA7CisgICAgaWYgKG1fYWN0aXZlVHJhbnNhY3Rpb25zLmNvbnRh
aW5zKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKQorICAgICAgICArK2NvdW50Owor
ICAgIGlmIChtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5m
bygpLmlkZW50aWZpZXIoKSkpCisgICAgICAgICsrY291bnQ7CisgICAgaWYgKG1fYWJvcnRpbmdU
cmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpCisg
ICAgICAgICsrY291bnQ7CisKKyAgICBBU1NFUlQoY291bnQgPT0gMSk7CisjZW5kaWYKIAogICAg
IG1fYWN0aXZlVHJhbnNhY3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmll
cigpKTsKICAgICBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMucmVtb3ZlKHRyYW5zYWN0aW9uLmlu
Zm8oKS5pZGVudGlmaWVyKCkpOworICAgIG1fYWJvcnRpbmdUcmFuc2FjdGlvbnMucmVtb3ZlKHRy
YW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIElEQkRhdGFiYXNlOjpm
aXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJh
c2VJbXBsLmgKaW5kZXggYmY2MDQ4MS4uMmJmYjExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuaApAQCAt
NzUsNiArNzUsNyBAQCBwdWJsaWM6CiAgICAgUmVmPElEQlRyYW5zYWN0aW9uPiBzdGFydFZlcnNp
b25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lk
IGNvbW1pdFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBkaWRDb21taXRU
cmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYpOworICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJ
REJUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihJREJUcmFuc2Fj
dGlvbiYpOwogCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IHJlcXVl
c3RlZFZlcnNpb24pOwpAQCAtOTYsNiArOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJREJU
cmFuc2FjdGlvbj4gbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb247CiAgICAgSGFzaE1hcDxJREJS
ZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWN0aXZlVHJhbnNh
Y3Rpb25zOwogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURCVHJh
bnNhY3Rpb24+PiBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnM7CisgICAgSGFzaE1hcDxJREJSZXNv
dXJjZUlkZW50aWZpZXIsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4+IG1fYWJvcnRpbmdUcmFuc2Fj
dGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9u
SW1wbC5jcHAKaW5kZXggZDkzN2FhYS4uNTQxZTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1w
bC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJET01FcnJvci5oIgogI2luY2x1ZGUg
IkV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUltcGwuaCIKKyNpbmNsdWRlICJJ
REJFcnJvci5oIgogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIklE
Qk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNTEsOCArNTIsMTMgQEAg
SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29u
c3QgSURCVHJhbnNhY3Rpb25JbmZvJgogICAgICwgbV9vcGVyYXRpb25UaW1lcigqdGhpcywgJklE
QlRyYW5zYWN0aW9uOjpvcGVyYXRpb25UaW1lckZpcmVkKQogCiB7CisgICAgbV9hY3RpdmF0aW9u
VGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjph
Y3RpdmF0aW9uVGltZXJGaXJlZCk7CisgICAgbV9hY3RpdmF0aW9uVGltZXItPnN0YXJ0T25lU2hv
dCgwKTsKKworICAgIGlmIChtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlOjpWZXJzaW9uQ2hhbmdlKQorICAgICAgICBtX29yaWdpbmFsRGF0YWJhc2VJbmZvID0gc3Rk
OjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KG1fZGF0YWJhc2UtPmluZm8oKSk7CisKICAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvblRpbWVyKCk7CiAgICAg
bV9zdGF0ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6UnVubmluZzsKIH0KIApAQCAt
OTEsOSArOTcsMTggQEAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJUcmFuc2FjdGlvbjo6b2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotdm9pZCBJREJUcmFuc2FjdGlvbjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYpCit2b2lk
IElEQlRyYW5zYWN0aW9uOjphYm9ydChFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OmFib3J0
Iik7CisKKyAgICBpZiAoaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc3RhdGUg
PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkFib3J0aW5nOworCisgICAgbV9kYXRhYmFz
ZS0+YWJvcnRUcmFuc2FjdGlvbigqdGhpcyk7CiB9CiAKIGNvbnN0IGNoYXIqIElEQlRyYW5zYWN0
aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKQEAgLTExNiw2ICsxMzEsMTkgQEAgYm9v
bCBJREJUcmFuc2FjdGlvbjo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiBtX3N0YXRlID09
IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6UnVubmluZzsKIH0KIAorYm9vbCBJREJUcmFu
c2FjdGlvbjo6aXNGaW5pc2hlZE9yRmluaXNoaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
dGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkNvbW1pdHRpbmcKKyAgICAgICAg
fHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkFib3J0aW5nCisgICAg
ICAgIHx8IG1fc3RhdGUgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpGaW5pc2hlZDsK
K30KKwordm9pZCBJREJUcmFuc2FjdGlvbjo6YWN0aXZhdGlvblRpbWVyRmlyZWQoKQoreworICAg
IHNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKTsKKyAgICBtX2FjdGl2YXRpb25UaW1lciA9IG51bGxw
dHI7Cit9CisKIHZvaWQgSURCVHJhbnNhY3Rpb246OnNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKQog
ewogICAgIGlmICghbV9vcGVyYXRpb25UaW1lci5pc0FjdGl2ZSgpKQpAQCAtMTUxLDYgKzE3OSwy
MCBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpjb21taXQoKQogICAgIG1fZGF0YWJhc2UtPmNvbW1p
dFRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAordm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkQWJvcnQo
Y29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2Fj
dGlvbjo6ZGlkQWJvcnQiKTsKKworICAgIEFTU0VSVChtX3N0YXRlID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25TdGF0ZTo6QWJvcnRpbmcgfHwgbV9zdGF0ZSA9PSBJbmRleGVkREI6OlRyYW5zYWN0
aW9uU3RhdGU6OlJ1bm5pbmcpOworCisgICAgbV9kYXRhYmFzZS0+ZGlkQWJvcnRUcmFuc2FjdGlv
bigqdGhpcyk7CisKKyAgICBtX2lkYkVycm9yID0gZXJyb3I7CisgICAgZmlyZU9uQWJvcnQoKTsK
KworICAgIG1fc3RhdGUgPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkZpbmlzaGVkOwor
fQorCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRDb21taXQoY29uc3QgSURCRXJyb3ImIGVycm9y
KQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6ZGlkQ29tbWl0Iik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJh
bnNhY3Rpb25JbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCVHJhbnNhY3Rpb25JbXBsLmgKaW5kZXggMGQzNjA2Yy4uMDcyYzI4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFu
c2FjdGlvbkltcGwuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAKKyNpbmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIKICNpbmNsdWRlICJJREJFcnJv
ci5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rp
b25JbmZvLmgiCkBAIC02OCwxNiArNjksMTkgQEAgcHVibGljOgogICAgIElEQkRhdGFiYXNlJiBk
YXRhYmFzZSgpIHsgcmV0dXJuIG1fZGF0YWJhc2UuZ2V0KCk7IH0KICAgICBjb25zdCBJREJEYXRh
YmFzZSYgZGF0YWJhc2UoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9CiAKKyAg
ICB2b2lkIGRpZEFib3J0KGNvbnN0IElEQkVycm9yJik7CiAgICAgdm9pZCBkaWRDb21taXQoY29u
c3QgSURCRXJyb3ImKTsKIAogcHJpdmF0ZToKICAgICBJREJUcmFuc2FjdGlvbihJREJEYXRhYmFz
ZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0OworICAgIGJvb2wgaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBj
b21taXQoKTsKIAogICAgIHZvaWQgc2NoZWR1bGVPcGVyYXRpb25UaW1lcigpOwogICAgIHZvaWQg
b3BlcmF0aW9uVGltZXJGaXJlZCgpOworICAgIHZvaWQgYWN0aXZhdGlvblRpbWVyRmlyZWQoKTsK
IAogICAgIHZvaWQgZmlyZU9uQ29tcGxldGUoKTsKICAgICB2b2lkIGZpcmVPbkFib3J0KCk7CkBA
IC04NSwxMSArODksMTMgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJREJEYXRhYmFzZT4gbV9kYXRh
YmFzZTsKICAgICBJREJUcmFuc2FjdGlvbkluZm8gbV9pbmZvOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxJREJEYXRhYmFzZUluZm8+IG1fb3JpZ2luYWxEYXRhYmFzZUluZm87CiAKICAgICBJbmRleGVk
REI6OlRyYW5zYWN0aW9uU3RhdGUgbV9zdGF0ZSB7IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0
ZTo6VW5zdGFydGVkIH07CiAgICAgSURCRXJyb3IgbV9pZGJFcnJvcjsKIAogICAgIFRpbWVyIG1f
b3BlcmF0aW9uVGltZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiBtX2FjdGl2YXRpb25U
aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGE1YTQ4YzEuLjZmZjFlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKQEAgLTI5LDggKzI5LDEz
IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJEYXRhYmFz
ZUluZm8uaCIKKyNpbmNsdWRlICJJREJFcnJvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElEQlJlc291cmNlSWRlbnRpZmllcjsKK2NsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsK
KwogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKIGNsYXNzIElEQkJhY2tpbmdTdG9yZSB7CkBAIC0z
OCw2ICs0MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCQmFja2luZ1N0b3JlKCkgeyB9
CiAKICAgICB2aXJ0dWFsIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYgZ2V0T3JFc3RhYmxpc2hEYXRh
YmFzZUluZm8oKSA9IDA7CisKKyAgICB2aXJ0dWFsIElEQkVycm9yIGJlZ2luVHJhbnNhY3Rpb24o
Y29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgYWJv
cnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgY29tbWl0VHJhbnNhY3Rpb24oY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpID0gMDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAppbmRleCA0Y2YzNmY3Li4zNGEwMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcApAQCAtNTgsNiArNTgsMTEgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZE9wZW5EYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCiAgICAgbV9kZWxlZ2F0
ZS0+ZGlkT3BlbkRhdGFiYXNlKHJlc3VsdCk7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCit7CisgICAgbV9kZWxl
Z2F0ZS0+ZGlkQWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKTsK
K30KKwogdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJFcnJvciYgZXJyb3IpCiB7CiAgICAgbV9kZWxlZ2F0ZS0+ZGlkQ29tbWl0VHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBlcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmgKaW5kZXggMWYwZTUzNC4uZTNkZjk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
aApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNl
KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBJ
REJSZXN1bHREYXRhJik7CisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYp
OwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKICAgICB2b2lk
IGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGll
bnREZWxlZ2F0ZS5oCmluZGV4IDI4ZWNjYjIuLmVlYjhlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJD
b25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuRGF0YWJhc2UoY29uc3QgSURCUmVzdWx0RGF0
YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3Im
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHAKaW5kZXggNDVlMTZmZS4uMzBkZWM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTE0Miw2ICsxNDIs
MjAgQEAgdm9pZCBJREJTZXJ2ZXI6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSkKICAgICBjb25uZWN0aW9uLT5kaWREZWxldGVEYXRhYmFzZShyZXN1bHQp
OwogfQogCit2b2lkIElEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBMT0coSW5kZXhlZERC
LCAiSURCU2VydmVyOjphYm9ydFRyYW5zYWN0aW9uIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9u
ID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0
cmFuc2FjdGlvbikgeworICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyB0cmFuc2FjdGlvbiB0aGVy
ZSBpcyBub3RoaW5nIHRvIGFib3J0LgorICAgICAgICAvLyBXZSBhbHNvIGhhdmUgbm8gYWNjZXNz
IHRvIGEgY29ubmVjdGlvbiBvdmVyIHdoaWNoIHRvIG1lc3NhZ2UgZmFpbHVyZS10by1hYm9ydC4K
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOworfQor
CiB2b2lkIElEQlNlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QlNlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCBmMDdlODdkLi4wNjFhNDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBPcGVyYXRpb25zIHJl
cXVlc3RlZCBieSB0aGUgY2xpZW50LgogICAgIHZvaWQgb3BlbkRhdGFiYXNlKGNvbnN0IElEQlJl
cXVlc3REYXRhJik7CiAgICAgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXF1ZXN0RGF0
YSYpOworICAgIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImKTsKICAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYpOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
YzJhM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcApAQCAtMCwwICsxLDc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgi
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkluZGV4ZWREQi5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZW1vcnlJREJCYWNraW5nU3RvcmUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQlNlcnZlciB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbj4gTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb246OmNyZWF0ZShNZW1vcnlJREJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9y
ZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQoreworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uPihiYWNraW5nU3RvcmUsIGlu
Zm8pOworfQorCitNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6TWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24oTWVtb3J5SURCQmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUsIGNvbnN0
IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKKyAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdT
dG9yZSkKKyAgICAsIG1faW5mbyhpbmZvKQoreworICAgIGlmIChtX2luZm8ubW9kZSgpID09IElu
ZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKQorICAgICAgICBtX29yaWdp
bmFsRGF0YWJhc2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KG1fYmFj
a2luZ1N0b3JlLmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKCkpOworfQorCitNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbjo6fk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCkKK3sK
KyAgICBBU1NFUlQoIW1faW5Qcm9ncmVzcyk7Cit9CisKK3ZvaWQgTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb246OmFib3J0KCkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb246OmFib3J0KCkiKTsKKworICAgIGlmIChtX29yaWdpbmFsRGF0YWJh
c2VJbmZvKSB7CisgICAgICAgIEFTU0VSVChtX2luZm8ubW9kZSgpID09IEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmUuc2V0
RGF0YWJhc2VJbmZvKCptX29yaWdpbmFsRGF0YWJhc2VJbmZvKTsKKyAgICB9CisKKyAgICBtX2lu
UHJvZ3Jlc3MgPSBmYWxzZTsKK30KKwordm9pZCBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bjo6Y29tbWl0KCkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb246OmNvbW1pdCgpIik7CisKKyAgICBtX2luUHJvZ3Jlc3MgPSBmYWxzZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjUz
OTE2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCkBAIC0wLDAgKzEsNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uX2gKKyNkZWZpbmUgTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb25faAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRl
ICJJREJEYXRhYmFzZUluZm8uaCIKKyNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkluZm8uaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQlNlcnZlciB7CisKK2NsYXNzIE1lbW9y
eUlEQkJhY2tpbmdTdG9yZTsKKworY2xhc3MgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24g
eworICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24+IHN0ZDo6bWFrZV91bmlxdWU8TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24+KFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlJiwgY29uc3QgV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb25JbmZvJik7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxN
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbj4gY3JlYXRlKE1lbW9yeUlEQkJhY2tpbmdTdG9y
ZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOworCisgICAgfk1lbW9yeUJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uKCk7CisKKyAgICBib29sIGlzVmVyc2lvbkNoYW5nZSgpIGNvbnN0IHsgcmV0
dXJuIG1faW5mby5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25D
aGFuZ2U7IH0KKworICAgIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYgb3JpZ2luYWxEYXRhYmFzZUlu
Zm8oKSBjb25zdDsKKworICAgIHZvaWQgYWJvcnQoKTsKKyAgICB2b2lkIGNvbW1pdCgpOworCitw
cml2YXRlOgorICAgIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKE1lbW9yeUlEQkJhY2tp
bmdTdG9yZSYsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpOworCisgICAgTWVtb3J5SURCQmFj
a2luZ1N0b3JlJiBtX2JhY2tpbmdTdG9yZTsKKyAgICBJREJUcmFuc2FjdGlvbkluZm8gbV9pbmZv
OworCisgICAgc3RkOjp1bmlxdWVfcHRyPElEQkRhdGFiYXNlSW5mbz4gbV9vcmlnaW5hbERhdGFi
YXNlSW5mbzsKKworICAgIGJvb2wgbV9pblByb2dyZXNzIHsgdHJ1ZSB9OworfTsKKworfSAvLyBu
YW1lc3BhY2UgSURCU2VydmVyCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNlbmRpZiAvLyBNZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGIwNzQyMDcu
LmFhZTA2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0yOCw2ICsy
OCw4IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKQEAg
LTUzLDYgKzU1LDUzIEBAIGNvbnN0IElEQkRhdGFiYXNlSW5mbyYgTWVtb3J5SURCQmFja2luZ1N0
b3JlOjpnZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbygpCiAgICAgcmV0dXJuICptX2RhdGFiYXNl
SW5mbzsKIH0KIAordm9pZCBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnNldERhdGFiYXNlSW5mbyhj
b25zdCBJREJEYXRhYmFzZUluZm8mIGluZm8pCit7CisgICAgLy8gSXQgaXMgbm90IHZhbGlkIHRv
IGRpcmVjdGx5IHNldCBkYXRhYmFzZSBpbmZvIG9uIGEgYmFja2luZyBzdG9yZSB0aGF0IGhhc24n
dCBhbHJlYWR5IHNldCBpdHMgb3duIGRhdGFiYXNlIGluZm8uCisgICAgQVNTRVJUKG1fZGF0YWJh
c2VJbmZvKTsKKworICAgIG1fZGF0YWJhc2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRh
YmFzZUluZm8+KGluZm8pOworfQorCitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJl
Z2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQoreworICAgIExP
RyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24iKTsK
KworICAgIGlmIChtX3RyYW5zYWN0aW9ucy5jb250YWlucyhpbmZvLmlkZW50aWZpZXIoKSkpCisg
ICAgICAgIHJldHVybiBJREJFcnJvcihJREJFeGNlcHRpb25Db2RlOjpJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY3JlYXRlIHRyYW5zYWN0aW9uIGl0IGFscmVhZHkg
aGFzIGEgcmVjb3JkIG9mIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gTWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0ZSgqdGhpcywgaW5mbyk7CisgICAgbV90cmFuc2FjdGlv
bnMuc2V0KGluZm8uaWRlbnRpZmllcigpLCBXVEY6Om1vdmUodHJhbnNhY3Rpb24pKTsKKworICAg
IHJldHVybiBJREJFcnJvcigpOworfQorCitJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6
OmFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6YWJvcnRUcmFuc2FjdGlvbiIpOworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNh
Y3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9u
KQorICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4n
dCBoYXZlIHJlY29yZCBvZiIpOworCisgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CisKKyAgICBy
ZXR1cm4gSURCRXJyb3IoKTsKK30KKworSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpj
b21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllcikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3Jl
Ojpjb21taXRUcmFuc2FjdGlvbiIpOworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNh
Y3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9u
KQorICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRXhjZXB0aW9uQ29kZTo6SW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRu
J3QgaGF2ZSByZWNvcmQgb2YiKTsKKworICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKKworICAg
IHJldHVybiBJREJFcnJvcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDg3
NjJkZTQuLjI1NDk5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKQEAgLTMwLDYg
KzMwLDkgQEAKIAogI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIklEQkRh
dGFiYXNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIElEQlNlcnZlciB7
CkBAIC00MiwxMiArNDUsMjAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfk1lbW9yeUlEQkJhY2tp
bmdTdG9yZSgpIG92ZXJyaWRlIGZpbmFsOwogCiAgICAgdmlydHVhbCBjb25zdCBJREJEYXRhYmFz
ZUluZm8mIGdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKCkgb3ZlcnJpZGUgZmluYWw7Ci0gICAg
CisgICAgdm9pZCBzZXREYXRhYmFzZUluZm8oY29uc3QgSURCRGF0YWJhc2VJbmZvJik7CisKKyAg
ICB2aXJ0dWFsIElEQkVycm9yIGJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25J
bmZvJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBJREJFcnJvciBhYm9ydFRyYW5zYWN0
aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBv
dmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGNvbW1pdFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBvdmVycmlk
ZSBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBNZW1vcnlJREJCYWNraW5nU3RvcmUoY29uc3QgSURC
RGF0YWJhc2VJZGVudGlmaWVyJik7CiAKICAgICBJREJEYXRhYmFzZUlkZW50aWZpZXIgbV9pZGVu
dGlmaWVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IG1fZGF0YWJhc2VJ
bmZvOworCisgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbj4+IG1fdHJhbnNhY3Rpb25zOworCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4
IDg3N2Y0ZGQuLjkyNmRhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogCiAjaW5jbHVkZSAiSURCUmVzdWx0RGF0YS5oIgogI2luY2x1ZGUgIklEQlNlcnZl
ci5oIgorI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uSW5mby5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgpAQCAtMTU2LDExICsxNTcsMTggQEAgdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6c3RhcnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oKQogICAgIGFkZE9wZW5EYXRhYmFz
ZUNvbm5lY3Rpb24oKm1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbik7CiAKICAgICBt
X3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9ICZtX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5l
Y3Rpb24tPmNyZWF0ZVZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihyZXF1ZXN0ZWRWZXJzaW9uKTsK
KyAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhp
cywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpiZWdpblRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUsIG1f
dmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5pbmZvKCkpKTsKIAogICAgIGF1dG8gcmVzdWx0ID0g
SURCUmVzdWx0RGF0YTo6b3BlbkRhdGFiYXNlVXBncmFkZU5lZWRlZChvcGVyYXRpb24tPnJlcXVl
c3REYXRhKCkucmVxdWVzdElkZW50aWZpZXIoKSwgKm1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KTsKICAgICBvcGVyYXRpb24tPmNvbm5lY3Rpb24oKS5kaWRPcGVuRGF0YWJhc2UocmVzdWx0KTsK
IH0KIAordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0
b3JlKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKK3sKKyAgICBMT0coSW5kZXhlZERC
LCAiKGRiKSBVbmlxdWVJREJEYXRhYmFzZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3Jl
Iik7CisgICAgbV9iYWNraW5nU3RvcmUtPmJlZ2luVHJhbnNhY3Rpb24oaW5mbyk7Cit9CisKIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6Om5vdGlmeUNvbm5lY3Rpb25zT2ZWZXJzaW9uQ2hhbmdlKCkK
IHsKICAgICBBU1NFUlQobV92ZXJzaW9uQ2hhbmdlT3BlcmF0aW9uKTsKQEAgLTIxNCw2ICsyMjIs
OCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJh
bnNhY3Rpb24iKTsKIAorICAgIEFTU0VSVCgmdHJhbnNhY3Rpb24uZGF0YWJhc2VDb25uZWN0aW9u
KCkuZGF0YWJhc2UoKSA9PSB0aGlzKTsKKwogICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VUcmFuc2Fj
dGlvbiA9PSAmdHJhbnNhY3Rpb24pIHsKICAgICAgICAgQVNTRVJUKCZtX3ZlcnNpb25DaGFuZ2VU
cmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25uZWN0aW9uKCkgPT0gbV92ZXJzaW9uQ2hhbmdlRGF0YWJh
c2VDb25uZWN0aW9uKTsKICAgICAgICAgbV9kYXRhYmFzZUluZm8tPnNldFZlcnNpb24odHJhbnNh
Y3Rpb24uaW5mbygpLm5ld1ZlcnNpb24oKSk7CkBAIC0yMjUsMTYgKzIzNSwxMyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdAogICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jv
c3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1Db21taXRUcmFu
c2FjdGlvbiwgY2FsbGJhY2tJRCwgdHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkpOwog
fQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24odWlu
dDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKQor
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90
IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgTE9H
KEluZGV4ZWREQiwgIihkYikgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1Db21taXRUcmFuc2Fj
dGlvbiIpOwogCi0gICAgLy8gRklYTUU6IENvbW1pdCB0cmFuc2FjdGlvbiBpbiBiYWNraW5nIHN0
b3JlLCBvbmNlIHRoYXQgZXhpc3RzLgotCi0gICAgSURCRXJyb3IgZXJyb3I7CisgICAgSURCRXJy
b3IgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y29tbWl0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25J
ZGVudGlmaWVyKTsKICAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jv
c3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1Db21taXRU
cmFuc2FjdGlvbiwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcikpOwotCiB9CiAKIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxs
YmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKQEAgLTI0Miw2ICsyNDksNDgg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVp
bnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
ICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1D
b21taXRUcmFuc2FjdGlvbiIpOwogCisgICAgLy8gUHJldmlvdXNseSBibG9ja2VkIHRyYW5zYWN0
aW9ucyBtaWdodCBub3cgYmUgdW5ibG9ja2VkLgorICAgIGludm9rZVRyYW5zYWN0aW9uU2NoZWR1
bGVyKCk7CisKKyAgICBwZXJmb3JtRXJyb3JDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIGVy
cm9yKTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihVbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgRXJyb3JDYWxsYmFjayBjYWxs
YmFjaykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIExPRyhJbmRleGVkREIs
ICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24iKTsKKworICAgIEFT
U0VSVCgmdHJhbnNhY3Rpb24uZGF0YWJhc2VDb25uZWN0aW9uKCkuZGF0YWJhc2UoKSA9PSB0aGlz
KTsKKworICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9PSAmdHJhbnNhY3Rpb24p
IHsKKyAgICAgICAgQVNTRVJUKCZtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi0+ZGF0YWJhc2VD
b25uZWN0aW9uKCkgPT0gbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uKTsKKyAgICAg
ICAgQVNTRVJUKHRyYW5zYWN0aW9uLm9yaWdpbmFsRGF0YWJhc2VJbmZvKCkpOworICAgICAgICBt
X2RhdGFiYXNlSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPigqdHJhbnNh
Y3Rpb24ub3JpZ2luYWxEYXRhYmFzZUluZm8oKSk7CisgICAgICAgIG1fdmVyc2lvbkNoYW5nZVRy
YW5zYWN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25u
ZWN0aW9uID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3Rv
cmVDYWxsYmFjayhjYWxsYmFjayk7CisgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFzayhjcmVh
dGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0
VHJhbnNhY3Rpb24sIGNhbGxiYWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkp
KTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24o
dWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
KyAgICBMT0coSW5kZXhlZERCLCAiKGRiKSBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0
VHJhbnNhY3Rpb24iKTsKKworICAgIElEQkVycm9yIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFi
b3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBtX3NlcnZlci5wb3N0
RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURC
RGF0YWJhc2U6OmRpZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uLCBjYWxsYmFja0lkZW50aWZpZXIs
IGVycm9yKSk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1BYm9ydFRy
YW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImIGVy
cm9yKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgTE9HKEluZGV4ZWREQiwg
IihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNhY3Rpb24iKTsK
KworICAgIC8vIFByZXZpb3VzbHkgYmxvY2tlZCB0cmFuc2FjdGlvbnMgbWlnaHQgbm93IGJlIHVu
YmxvY2tlZC4KKyAgICBpbnZva2VUcmFuc2FjdGlvblNjaGVkdWxlcigpOworCiAgICAgcGVyZm9y
bUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcik7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmgKaW5kZXggZjYyNWMwOC4uZWZmYTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJFcnJv
cjsKIGNsYXNzIElEQlJlcXVlc3REYXRhOworY2xhc3MgSURCVHJhbnNhY3Rpb25JbmZvOwogCiBu
YW1lc3BhY2UgSURCU2VydmVyIHsKIApAQCAtNjUsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgSURC
U2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsgfQogCiAgICAgdm9pZCBjb21taXRU
cmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxsYmFjayk7
CisgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
LCBFcnJvckNhbGxiYWNrKTsKICAgICB2b2lkIHRyYW5zYWN0aW9uRGVzdHJveWVkKFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24mKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xp
ZW50KFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogCkBAIC04MywxMCArODUsMTMgQEAg
cHJpdmF0ZToKICAgICAvLyBEYXRhYmFzZSB0aHJlYWQgb3BlcmF0aW9ucwogICAgIHZvaWQgb3Bl
bkJhY2tpbmdTdG9yZShjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHBl
cmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lk
IHBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOworICAgIHZv
aWQgYmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5m
byYpOwogCiAgICAgLy8gTWFpbiB0aHJlYWQgY2FsbGJhY2tzCiAgICAgdm9pZCBkaWRPcGVuQmFj
a2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSW5mbyYpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNv
bW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJy
b3ImKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxi
YWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKIAogICAgIHZvaWQgcGVyZm9ybUVycm9y
Q2FsbGJhY2sodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCmluZGV4IDJiMGJi
YzYuLjQzMzUxYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24u
Y3BwCkBAIC05Myw2ICs5MywxOCBAQCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiBVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmNyZWF0ZVZlcnNpb25DaGFuZ2VUcgogICAgIHJldHVy
biB0cmFuc2FjdGlvbi5nZXQoKTsKIH0KIAordm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rp
b246OmRpZEFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24sIGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAi
VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRBYm9ydFRyYW5zYWN0aW9uIik7CisKKyAg
ICBhdXRvIHRyYW5zYWN0aW9uSWRlbnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlm
aWVyKCk7CisKKyAgICBBU1NFUlQobV90cmFuc2FjdGlvbk1hcC5jb250YWlucyh0cmFuc2FjdGlv
bklkZW50aWZpZXIpKTsKKyAgICBtX3RyYW5zYWN0aW9uTWFwLnJlbW92ZSh0cmFuc2FjdGlvbklk
ZW50aWZpZXIpOworCisgICAgbV9jb25uZWN0aW9uVG9DbGllbnQuZGlkQWJvcnRUcmFuc2FjdGlv
bih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVycm9yKTsKK30KKwogdm9pZCBVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb246OmRpZENvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCiB7CiAgICAgTE9H
KEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkQ29tbWl0VHJhbnNh
Y3Rpb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaAppbmRleCA2
ZWU4ZTdmLi4xZjUwZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlv
bi5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdl
RXZlbnQodWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CiAgICAgVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbiYgY3JlYXRlVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKHVpbnQ2NF90IG5ld1Zl
cnNpb24pOwogCisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb24mLCBjb25zdCBJREJFcnJvciYpOwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNh
Y3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIGNvbnN0IElEQkVycm9yJik7CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAK
aW5kZXggYzhiMmZkZS4uYjYzYWVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uLmNwcApAQCAtNDQsNiArNDQsOSBAQCBVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uOjpVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29u
bgogICAgIDogbV9kYXRhYmFzZUNvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1fdHJhbnNh
Y3Rpb25JbmZvKGluZm8pCiB7CisgICAgaWYgKG1fdHJhbnNhY3Rpb25JbmZvLm1vZGUoKSA9PSBJ
bmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6VmVyc2lvbkNoYW5nZSkKKyAgICAgICAgbV9vcmln
aW5hbERhdGFiYXNlSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPihtX2Rh
dGFiYXNlQ29ubmVjdGlvbi0+ZGF0YWJhc2UoKS5pbmZvKCkpOworCiAgICAgbV9kYXRhYmFzZUNv
bm5lY3Rpb24tPmRhdGFiYXNlKCkuc2VydmVyKCkucmVnaXN0ZXJUcmFuc2FjdGlvbigqdGhpcyk7
CiB9CiAKQEAgLTUzLDYgKzU2LDIzIEBAIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246On5V
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uKCkKICAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+
ZGF0YWJhc2UoKS5zZXJ2ZXIoKS51bnJlZ2lzdGVyVHJhbnNhY3Rpb24oKnRoaXMpOwogfQogCitJ
REJEYXRhYmFzZUluZm8qIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246Om9yaWdpbmFsRGF0
YWJhc2VJbmZvKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV90cmFuc2FjdGlvbkluZm8ubW9kZSgp
ID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKTsKKyAgICByZXR1
cm4gbV9vcmlnaW5hbERhdGFiYXNlSW5mby5nZXQoKTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uOjphYm9ydCgpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb246OmFib3J0Iik7CisKKyAgICBSZWZQdHI8VW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbj4gc2VsZih0aGlzKTsKKyAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+
ZGF0YWJhc2UoKS5hYm9ydFRyYW5zYWN0aW9uKCp0aGlzLCBbdGhpcywgc2VsZl0oY29uc3QgSURC
RXJyb3ImIGVycm9yKSB7CisgICAgICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uOjphYm9ydCAoY2FsbGJhY2spIik7CisgICAgICAgIG1fZGF0YWJhc2VDb25u
ZWN0aW9uLT5kaWRBYm9ydFRyYW5zYWN0aW9uKCp0aGlzLCBlcnJvcik7CisgICAgfSk7Cit9CisK
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6Y29tbWl0KCkKIHsKICAgICBMT0co
SW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6Y29tbWl0Iik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaAppbmRleCBiMmNhY2NhLi5iZTM5
NTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmgKQEAgLTM0
LDYgKzM0LDkgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIElEQkRhdGFiYXNlSW5mbzsKKwogbmFtZXNwYWNlIElEQlNlcnZlciB7
CiAKIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjsKQEAgLTQ3LDYgKzUwLDkgQEAg
cHVibGljOgogICAgIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYgZGF0YWJhc2VDb25uZWN0
aW9uKCkgeyByZXR1cm4gbV9kYXRhYmFzZUNvbm5lY3Rpb24uZ2V0KCk7IH0KICAgICBjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mIGluZm8oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uSW5m
bzsgfQogCisgICAgSURCRGF0YWJhc2VJbmZvKiBvcmlnaW5hbERhdGFiYXNlSW5mbygpIGNvbnN0
OworCisgICAgdm9pZCBhYm9ydCgpOwogICAgIHZvaWQgY29tbWl0KCk7CiAKIHByaXZhdGU6CkBA
IC01NCw2ICs2MCw4IEBAIHByaXZhdGU6CiAKICAgICBSZWY8VW5pcXVlSURCRGF0YWJhc2VDb25u
ZWN0aW9uPiBtX2RhdGFiYXNlQ29ubmVjdGlvbjsKICAgICBJREJUcmFuc2FjdGlvbkluZm8gbV90
cmFuc2FjdGlvbkluZm87CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBt
X29yaWdpbmFsRGF0YWJhc2VJbmZvOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJy
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9y
LmNwcAppbmRleCA5NzMzM2Y2Li44YTg3NWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5jcHAKQEAgLTQzLDYgKzQzLDEwIEBA
IHN0YXRpYyBjb25zdCBTdHJpbmcmIGlkYkVycm9yTmFtZShJREJFeGNlcHRpb25Db2RlIGNvZGUp
CiAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGVudHJ5ID0gQVNDSUlMaXRl
cmFsKCJWZXJzaW9uRXJyb3IiKTsKICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAgIH0KKyAgICBj
YXNlIElEQkV4Y2VwdGlvbkNvZGU6OkludmFsaWRTdGF0ZUVycm9yOiB7CisgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJJbnZhbGlkU3Rh
dGVFcnJvciIpOworICAgICAgICByZXR1cm4gZW50cnk7CisgICAgfQogICAgIGNhc2UgSURCRXhj
ZXB0aW9uQ29kZTo6Tm9uZToKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICB9CkBAIC01NCwxMyArNTgsMTcgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYgaWRiRXJyb3JE
ZXNjcmlwdGlvbihJREJFeGNlcHRpb25Db2RlIGNvZGUpCiB7CiAgICAgc3dpdGNoIChjb2RlKSB7
CiAgICAgY2FzZSBJREJFeGNlcHRpb25Db2RlOjpVbmtub3duOiB7Ci0gICAgICAgIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gZW50cnkgPSBBU0NJSUxpdGVyYWwoIk9wZXJhdGlvbiBmYWlsZWQgZm9y
IHJlYXNvbnMgdW5yZWxhdGVkIHRvIHRoZSBkYXRhYmFzZSBpdHNlbGYgYW5kIG5vdCBjb3ZlcmVk
IGJ5IGFueSBvdGhlciBlcnJvcnMuIik7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IGVudHJ5ID0gQVNDSUlMaXRlcmFsKCJPcGVyYXRpb24gZmFpbGVkIGZvciByZWFzb25z
IHVucmVsYXRlZCB0byB0aGUgZGF0YWJhc2UgaXRzZWxmIGFuZCBub3QgY292ZXJlZCBieSBhbnkg
b3RoZXIgZXJyb3JzLiIpOwogICAgICAgICByZXR1cm4gZW50cnkuZ2V0KCk7CiAgICAgfQogICAg
IGNhc2UgSURCRXhjZXB0aW9uQ29kZTo6VmVyc2lvbkVycm9yOiB7Ci0gICAgICAgIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gZW50cnkgPSBBU0NJSUxpdGVyYWwoIkFuIGF0dGVtcHQgd2FzIG1hZGUg
dG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGlu
ZyB2ZXJzaW9uLiIpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBlbnRy
eSA9IEFTQ0lJTGl0ZXJhbCgiQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBvcGVuIGEgZGF0YWJhc2Ug
dXNpbmcgYSBsb3dlciB2ZXJzaW9uIHRoYW4gdGhlIGV4aXN0aW5nIHZlcnNpb24uIik7CiAgICAg
ICAgIHJldHVybiBlbnRyeS5nZXQoKTsKICAgICB9CisgICAgY2FzZSBJREJFeGNlcHRpb25Db2Rl
OjpJbnZhbGlkU3RhdGVFcnJvcjogeworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiBlbnRyeSA9IEFTQ0lJTGl0ZXJhbCgiT3BlcmF0aW9uIHdhcyBjYWxsZWQgb24gYW4gb2Jq
ZWN0IG9uIHdoaWNoIGl0IGlzIG5vdCBhbGxvd2VkIG9yIGF0IGEgdGltZSB3aGVuIGl0IGlzIG5v
dCBhbGxvd2VkLiIpOworICAgICAgICByZXR1cm4gZW50cnk7CisgICAgfQogICAgIGNhc2UgSURC
RXhjZXB0aW9uQ29kZTo6Tm9uZToKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJFcnJvci5oCmluZGV4IDQwNzAzNGMuLjZlNzc1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5oCkBAIC0zNiw2ICszNiw5
IEBAIGVudW0gY2xhc3MgSURCRXhjZXB0aW9uQ29kZSB7CiAgICAgTm9uZSA9IDAsCiAgICAgVW5r
bm93biwKICAgICBWZXJzaW9uRXJyb3IsCisKKyAgICAvLyBJbmRleGVkIERCIGV4aXN0aW5nIGV4
Y2VwdGlvbiBjb2RlcyB3aXRoIElEQi1zcGVjaWZpYyBlcnJvciBtZXNzYWdlczoKKyAgICBJbnZh
bGlkU3RhdGVFcnJvciwKIH07CiAKIGNsYXNzIElEQkVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNl
cnZlci5jcHAKaW5kZXggN2MyZjliZi4uZDdmZGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZl
ci5jcHAKQEAgLTEwMiw2ICsxMDIsMTQgQEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZE9w
ZW5EYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQogICAgIH0pOwogfQog
Cit2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3Im
IGVycm9yKQoreworICAgIFJlZlB0cjxJblByb2Nlc3NJREJTZXJ2ZXI+IHNlbGYodGhpcyk7Cisg
ICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBzZWxmLCB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGVycm9yXSB7CisgICAgICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRBYm9y
dFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgZXJyb3IpOworICAgIH0pOworfQor
CiB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9y
JiBlcnJvcikKIHsKICAgICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOwpA
QCAtMTEwLDYgKzExOCwxNCBAQCB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkQ29tbWl0VHJh
bnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFucwogICAgIH0pOwogfQog
Cit2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBSZWZQdHI8SW5Qcm9jZXNzSURC
U2VydmVyPiBzZWxmKHRoaXMpOworICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhp
cywgc2VsZiwgcmVzb3VyY2VJZGVudGlmaWVyXSB7CisgICAgICAgIG1fc2VydmVyLT5hYm9ydFRy
YW5zYWN0aW9uKHJlc291cmNlSWRlbnRpZmllcik7CisgICAgfSk7Cit9CisKIHZvaWQgSW5Qcm9j
ZXNzSURCU2VydmVyOjpjb21taXRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImIHJl
c291cmNlSWRlbnRpZmllcikKIHsKICAgICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxm
KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCmluZGV4IGRjMDk0NTEuLmJkM2NiNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nl
c3NJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8v
IElEQkNvbm5lY3Rpb25Ub1NlcnZlcgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShJ
REJSZXF1ZXN0RGF0YSYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuRGF0
YWJhc2UoSURCUmVxdWVzdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQg
YWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKSBvdmVycmlkZSBmaW5hbDsK
ICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVy
Jikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNs
b3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSBvdmVycmlkZSBmaW5h
bDsKIApAQCAtNjMsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1aW50NjRfdCBpZGVu
dGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlbGV0ZURhdGFi
YXNlKGNvbnN0IElEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkT3BlbkRhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKSBvdmVycmlk
ZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9y
Jikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQoSURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCB1aW50NjRfdCByZXF1
ZXN0ZWRWZXJzaW9uKSBvdmVycmlkZSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU0YzQ4ZWQuLjQ5MjUzZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE1MTYsMTIgKzE1MTYsMTIgQEAKIAkJNDE2MkE0NTgxMDExNDY0NzAwREZGM0VEIC8qIEpT
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxNjJBNDU2MTAxMTQ2NDcwMERGRjNFRCAvKiBKU0RlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlLmggKi87IH07CiAJCTQxNkUyOUE2MTAyRkE5NjIwMDdGQzE0RSAv
KiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE2RTI5QTUxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGlu
Z1Byb3h5LmggKi87IH07CiAJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjAzMyAvKiBTdHJlYW1JbnRl
cm5hbHNCdWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEM5IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNDE2
RTZGRUExQkJEMTY4NDAwMEE2MDM0IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcx
QkIzMTEwRDAwQjc2NENBIC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNkU2RkU4MUJC
RDEyREYwMDBBNjA0MyAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBE
MDBCNzY0RDkgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQxNkU2RkU5MUJCRDEyRTUw
MDBBNjA0MyAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDggLyogUmVh
ZGFibGVTdHJlYW1CdWlsdGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjA0NCAvKiBSZWFkYWJsZVN0cmVh
bUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NERBIC8qIFJlYWRhYmxlU3Ry
ZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RTZGRTgxQkJEMTJERjAwMEE2MDUzIC8qIFdyaXRh
YmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3NjRFOSAvKiBXcml0YWJsZVN0
cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNDE2RTZGRTkxQkJEMTJFNTAwMEE2MDQzIC8qIFJlYWRhYmxlU3Ry
ZWFtQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3NjREOCAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RTZG
RTkxQkJEMTJFNTAwMEE2MDUzIC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDNEODA2MUJCMzExMEQwMEI3
NjRFOCAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE2RTZGRUExQkJEMTY4NDAwMEE2MDM0IC8qIFN0
cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NENBIC8qIFN0cmVhbUlu
dGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTQxNkU2RkVBMUJCRDE2ODQwMDBBNjA0NCAvKiBSZWFkYWJsZVN0
cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NERBIC8qIFJlYWRhYmxl
U3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE2RTZGRUExQkJEMTY4NDAwMEE2MDU0IC8qIFdy
aXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAzRDgwNzFCQjMxMTBEMDBCNzY0RUEgLyog
V3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTcyNTNBQTEzNTRCQkJDMDAzNjBG
MkEgLyogTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3MjUzQTgxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29u
dHJvbEVsZW1lbnRzLmNwcCAqLzsgfTsKIAkJNDE3MjUzQUIxMzU0QkJCQzAwMzYwRjJBIC8qIE1l
ZGlhQ29udHJvbEVsZW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTcyNTNBOTEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sRWxlbWVu
dHMuaCAqLzsgfTsKQEAgLTIxODUsNiArMjE4NSw4IEBACiAJCTUxRTBCQUVCMERBNTVENEEwMEE5
RTQxNyAvKiBKU1N0b3JhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFFMEJBRTkwREE1NUQ0QTAwQTlFNDE3IC8qIEpTU3RvcmFnZUV2ZW50
LmggKi87IH07CiAJCTUxRTBCQjM4MERBNUFDQjYwMEE5RTQxNyAvKiBTdG9yYWdlTWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUwQkIzNjBEQTVB
Q0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxRTBCQjM5MERBNUFDQjYwMEE5RTQxNyAvKiBTdG9yYWdl
TWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
RTBCQjM3MERBNUFDQjYwMEE5RTQxNyAvKiBTdG9yYWdlTWFwLmNwcCAqLzsgfTsKKwkJNTFFMUJB
QzIxQkQ4MDY0RTAwNTVEODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFCQUMwMUJE
ODA2NDcwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgKi87IH07
CisJCTUxRTFCQUMzMUJEODA2NEUwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFF
MUJBQzExQkQ4MDY0NzAwNTVEODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgg
Ki87IH07CiAJCTUxRTFFQ0JFMEM5MUM5MDQwMERDMjU1QiAvKiBJY29uRGF0YWJhc2VDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTFFQ0I4
MEM5MUM5MDQwMERDMjU1QiAvKiBJY29uRGF0YWJhc2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUUxRUNDMDBDOTFDOTA0MDBEQzI1
NUIgLyogSWNvblJlY29yZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUUxRUNCQTBDOTFDOTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5jcHAgKi87
IH07CiAJCTUxRTFFQ0MxMEM5MUM5MDQwMERDMjU1QiAvKiBJY29uUmVjb3JkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUxRUNCQjBDOTFDOTA0MDBE
QzI1NUIgLyogSWNvblJlY29yZC5oICovOyB9OwpAQCAtMjY2MSwxMSArMjY2MywxMSBAQAogCQk3
QzQ4QTZEMTE5MUM5RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzQ4QTZDRjE5MUM5RDY1MDAwMjY2
NzQgLyogV2ViS2l0TmFtZXNwYWNlLmggKi87IH07CiAJCTdDNDkwMkEyMThCODI1RjgwMDdEOTI5
OCAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTg5RENBMEFDQzhCQkQwMEEwQkM1
MSAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJN0M0Qzk2REMxQUQ0NDgzNTAw
MzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFi
bGVTdHJlYW0uY3BwICovOyB9OworCQk3QzRDOTZEQzFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0
YWJsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5jcHAgKi87
IH07CiAJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEOTFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oICovOyB9OworCQk3QzRDOTZERDFBRDQ0
ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3Jp
dGFibGVTdHJlYW0uaCAqLzsgfTsKIAkJN0M0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW1SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M0Qzk2REExQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1S
ZWFkZXIuY3BwICovOyB9OwogCQk3QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJs
ZVN0cmVhbVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0M0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIu
aCAqLzsgfTsKLQkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2
RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uY3BwICovOyB9OwotCQk3QzRD
OTZERDFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTYw
IC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLzsgfTsKIAkJN0M0Qzk2RTMxQUQ0NEFCRjAwMzY1QTUw
IC8qIExhdW5jaFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QzRDOTZFMjFBRDQ0QUJGMDAzNjVBNTAgLyogTGF1bmNoU2VydmljZXNT
UEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
QzRFREQ3NDFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8q
IEZvbnRDb2NvYS5tbSAqLzsgfTsKIAkJN0M1MjJENEIxNUI0NzdFODAwOUI3Qzk1IC8qIEluc3Bl
Y3Rvck92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0M1MjJENDkxNUI0NzdFODAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuY3BwICov
OyB9OwpAQCAtOTU5MSw2ICs5NTkzLDggQEAKIAkJNTFFMEJBRTkwREE1NUQ0QTAwQTlFNDE3IC8q
IEpTU3RvcmFnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3Rv
cmFnZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTBCQjM2MERBNUFD
QjYwMEE5RTQxNyAvKiBTdG9yYWdlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0b3JhZ2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMEJCMzcw
REE1QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3RvcmFnZU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxRTFCQUMwMUJEODA2NDcwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
RTFCQUMxMUJEODA2NDcwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUxRUNCODBDOTFDOTA0
MDBEQzI1NUIgLyogSWNvbkRhdGFiYXNlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEljb25EYXRhYmFzZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUUxRUNCQTBDOTFDOTA0MDBEQzI1NUIgLyogSWNvblJlY29yZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJY29uUmVjb3JkLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMUVDQkIwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblJlY29yZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAxMjAsMTEgKzEwMTI0LDExIEBACiAJCTdDNDhBNkNG
MTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViS2l0TmFtZXNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDNDhBNkQyMTkxQzlEOEUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFdlYktpdE5hbWVzcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
NEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0
YWJsZVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dy
aXRhYmxlU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2RDkx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3QzRDOTZEOTFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dyaXRhYmxlU3RyZWFtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1Jl
YWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUmVhZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE2
MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTV3JpdGFibGVTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk3QzRDOTZEOTFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dyaXRhYmxlU3RyZWFtLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkUyMUFENDRBQkYwMDM2NUE1MCAvKiBMYXVuY2hTZXJ2
aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXVuY2hTZXJ2aWNl
c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzRFREQ3MzFBN0I2MDc4MDAx
OThDNEQgLyogRm9udENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRm9udENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzUyMkQ0
OTE1QjQ3N0U4MDA5QjdDOTUgLyogSW5zcGVjdG9yT3ZlcmxheS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JPdmVybGF5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzY0LDE0ICsxMTM2OCwxMyBAQAogCQk5OTA4QjBFQzFCQ0FD
RjFGMDBFRDBGNjUgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlw
dC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtanMtYnVpbHRpbnMiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5OTA4QjBFRDFCQ0FDRjkxMDBFRDBGNjUgLyogQnl0ZUxlbmd0aFF1ZXVp
bmdTdHJhdGVneS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEJ5
dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk5MDhCMEVFMUJDQUNGOTEwMEVEMEY2NSAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneS5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5
LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBG
NTUgLyogU3RyZWFtSW50ZXJuYWxzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzQnVp
bHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBFRjFCQ0FDRjkx
MDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW0uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQwRjc1IC8qIFdyaXRhYmxlU3RyZWFtLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gV3JpdGFibGVTdHJlYW0uanM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEYwMUJDQUNGOTEwMEVEMEY2NSAvKiBS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHMu
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBTdHJlYW1JbnRlcm5h
bHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEYxMUJDQUNGOTEwMEVE
MEY2NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFscy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGMjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVT
dHJlYW1SZWFkZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBS
ZWFkYWJsZVN0cmVhbVJlYWRlci5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkw
OEIwRUYxQkNBQ0Y5MTAwRUQwRjc1IC8qIFdyaXRhYmxlU3RyZWFtLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gV3JpdGFibGVTdHJlYW0uanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0
cmVhbUludGVybmFscy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9
IFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5OTA4QjBGMjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1SZWFkZXIuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVJlYWRl
ci5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjMxQkNBQ0ZGRTAwRUQw
RjY1IC8qIEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRp
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGNDFCQ0FDRkZFMDBF
RDBGNjUgLyogQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zV3JhcHBlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVp
bHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEY1MUJD
QUQwN0QwMEVEMEY2NSAvKiBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1
aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTM3OSwxNSArMTEzODIs
MTYgQEAKIAkJOTkwOEIwRjcxQkNBRDA3RDAwRUQwRjY1IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5
QnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRRdWV1aW5n
U3RyYXRlZ3lCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBG
ODFCQ0FEMDdEMDBFRDBGNjUgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3lCdWlsdGluc1dyYXBwZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRRdWV1aW5nU3RyYXRlZ3lC
dWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjkx
QkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhCMEY5MUJDQUQwN0QwMEVEMEY3NSAvKiBX
cml0YWJsZVN0cmVhbUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTA4QjBGQTFCQ0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTA4QjBGQjFCQ0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTkwOEIwRkMxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0
aW5zV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXJCdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTkwOEIwRkQxQkNBRDA3RDAwRUQwRjU1IC8qIFN0cmVhbUludGVybmFsc0J1aWx0aW5z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmVhbUludGVybmFs
c0J1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkQxQkNB
RDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNC
dWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5MDhCMEZEMUJDQUQw
N0QwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVp
bHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGRTFCQ0FEMDdE
MDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVJlYWRlckJ1aWx0aW5zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkYxQkNBRDA3RDAwRUQwRjY1
IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTA4QjEwMDFCQ0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJl
YW1SZWFkZXJCdWlsdGluc1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRjkxQkNBRDA3RDAwRUQwRjc1IC8qIFdyaXRhYmxlU3RyZWFt
QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV3JpdGFi
bGVTdHJlYW1CdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5MDhC
MEZEMUJDQUQwN0QwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtSW50
ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTIwMzk4
MDE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5MjAzOTgxMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlk
Z2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlcklucHV0QnJpZGdlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5QzdDQ0IyMThDNjYzRTQwMDMyRTQxMyAv
KiBNZW1vaXplZERPTVJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZW1vaXplZERPTVJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE0MjUs
MTMgKzExNDI5LDEzIEBACiAJCTlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUFC
MUYzN0YxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQw
MEI3NjRDOSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk5QjAzRDgwNzFCQjMxMTBEMDBCNzY0Q0EgLyogU3RyZWFtSW50ZXJuYWxz
QnVpbHRpbnNXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmVh
bUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDggLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjREOSAv
KiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxl
U3RyZWFtQnVpbHRpbnNXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlYWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTlCMDNEODA3MUJCMzExMEQwMEI3NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFs
c0J1aWx0aW5zV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFk
YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTggLyogV3JpdGFibGVTdHJlYW1CdWls
dGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUJ1
aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQw
MEI3NjRFOSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NENBIC8q
IFN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHNCdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOUIwM0Q4MDcxQkIzMTEwRDAwQjc2NEQ4IC8qIFJlYWRhYmxlU3Ry
ZWFtQnVpbHRpbnNXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
YWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTlCMDNEODA3MUJCMzExMEQwMEI3NjREQSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1
aWx0aW5zV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJs
ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5QjAzRDgwNzFCQjMxMTBEMDBCNzY0RTggLyogV3JpdGFibGVTdHJlYW1CdWlsdGlu
c1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFibGVTdHJl
YW1CdWlsdGluc1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwM0Q4
MDcxQkIzMTEwRDAwQjc2NEVBIC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnNXcmFw
cGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtSW50
ZXJuYWxzQnVpbHRpbnNXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
MTlCNjdFMUI5NjRFNTIwMDM0ODc0NSAvKiBTaGFkb3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTaGFkb3dSb290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2
NDA4LDcgKzE2NDEyLDYgQEAKIAkJCQk0MUEwMjNFRDFBMzlEQjc5MDBGNzIyREYgLyogV3JpdGFi
bGVTdHJlYW0uaWRsICovLAogCQkJCTk5MDhCMEVGMUJDQUNGOTEwMEVEMEY3NSAvKiBXcml0YWJs
ZVN0cmVhbS5qcyAqLywKIAkJCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVT
dHJlYW1JbnRlcm5hbHMuanMgKi8sCi0KIAkJCSk7CiAJCQlwYXRoID0gc3RyZWFtczsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjgyOSw2ICsxNjgzMiw4IEBACiAJCQkJNTEwQTU4
RjAxQkFCNzIwRjAwQzE5MjgyIC8qIElEQlNlcnZlci5oICovLAogCQkJCTUxODg2NEU0MUJCQjRC
N0UwMEU1NDBDOSAvKiBJREJTZXJ2ZXJPcGVyYXRpb24uY3BwICovLAogCQkJCTUxODg2NEU1MUJC
QjRCN0UwMEU1NDBDOSAvKiBJREJTZXJ2ZXJPcGVyYXRpb24uaCAqLywKKwkJCQk1MUUxQkFDMDFC
RDgwNjQ3MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwICovLAor
CQkJCTUxRTFCQUMxMUJEODA2NDcwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbi5oICovLAogCQkJCTUxQkE0QUM4MUJCQzVCOUUwMERGM0Q2RCAvKiBNZW1vcnlJREJCYWNr
aW5nU3RvcmUuY3BwICovLAogCQkJCTUxQkE0QUM5MUJCQzVCOUUwMERGM0Q2RCAvKiBNZW1vcnlJ
REJCYWNraW5nU3RvcmUuaCAqLywKIAkJCQk1MTg4NjRERTFCQkFGMzBGMDBFNTQwQzkgLyogVW5p
cXVlSURCRGF0YWJhc2UuY3BwICovLApAQCAtMjY5NjAsNiArMjY5NjUsNyBAQAogCQkJCTQzOTA0
NkRFMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRoLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzkwNDZFMDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTQzOTA0NkUwMTJEQTI1RTgwMEJGODBBMyAvKiBSZW5kZXJNYXRo
TUxSYWRpY2FsT3BlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxRTFCQUMzMUJEODA2NEUw
MDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDM5MDQ2RTIxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTFJvb3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQzOTA0NkU0MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxS
b3cuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkU4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5k
ZXJNYXRoTUxTY3JpcHRzLmggaW4gSGVhZGVycyAqLywKQEAgLTI5OTgwLDYgKzI5OTg2LDcgQEAK
IAkJCQlCMkZBM0RCQzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnQ2xvc2VQYXRoLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREJFMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEQzAwQUI3
NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1MUUxQkFDMjFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEQzIwQUI3NUE2RjAwMEU1
QUM0IC8qIEpTU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCMkZBM0RDNDBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoUmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREM2MEFCNzVBNkYwMDBF
NUFDNCAvKiBKU1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmNwcCBpbiBTb3VyY2VzICov
LAo=
</data>
<flag name="review"
          id="288836"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>