<?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>208783</bug_id>
          
          <creation_ts>2020-03-08 08:56:28 -0700</creation_ts>
          <short_desc>[iOS] Mapping to UTI from tag and tag class should be performed in the UI process</short_desc>
          <delta_ts>2020-03-09 09:16:43 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1627509</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 08:56:28 -0700</bug_when>
    <thetext>Calling UTTypeCreatePreferredIdentifierForTag to find UTI from tag and tag class should be done in the UI process and not in the WebContent process, since this is using a system service that will be closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627510</commentid>
    <comment_count>1</comment_count>
      <attachid>392954</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 09:06:35 -0700</bug_when>
    <thetext>Created attachment 392954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627511</commentid>
    <comment_count>2</comment_count>
      <attachid>392955</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 09:15:12 -0700</bug_when>
    <thetext>Created attachment 392955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627512</commentid>
    <comment_count>3</comment_count>
      <attachid>392956</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 09:25:39 -0700</bug_when>
    <thetext>Created attachment 392956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627528</commentid>
    <comment_count>4</comment_count>
      <attachid>392962</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 11:15:44 -0700</bug_when>
    <thetext>Created attachment 392962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627529</commentid>
    <comment_count>5</comment_count>
      <attachid>392963</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 11:22:16 -0700</bug_when>
    <thetext>Created attachment 392963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627531</commentid>
    <comment_count>6</comment_count>
      <attachid>392964</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 11:49:26 -0700</bug_when>
    <thetext>Created attachment 392964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627535</commentid>
    <comment_count>7</comment_count>
      <attachid>392966</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 12:00:07 -0700</bug_when>
    <thetext>Created attachment 392966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627538</commentid>
    <comment_count>8</comment_count>
      <attachid>392968</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 12:07:32 -0700</bug_when>
    <thetext>Created attachment 392968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627547</commentid>
    <comment_count>9</comment_count>
      <attachid>392972</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 12:29:30 -0700</bug_when>
    <thetext>Created attachment 392972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627562</commentid>
    <comment_count>10</comment_count>
      <attachid>392978</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 13:11:14 -0700</bug_when>
    <thetext>Created attachment 392978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627571</commentid>
    <comment_count>11</comment_count>
      <attachid>392981</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 13:45:12 -0700</bug_when>
    <thetext>Created attachment 392981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627578</commentid>
    <comment_count>12</comment_count>
      <attachid>392987</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 14:25:39 -0700</bug_when>
    <thetext>Created attachment 392987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627588</commentid>
    <comment_count>13</comment_count>
      <attachid>392989</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 15:00:49 -0700</bug_when>
    <thetext>Created attachment 392989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627589</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-08 15:01:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/60205026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627590</commentid>
    <comment_count>15</comment_count>
      <attachid>392990</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 15:04:01 -0700</bug_when>
    <thetext>Created attachment 392990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627593</commentid>
    <comment_count>16</comment_count>
      <attachid>392992</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 15:13:06 -0700</bug_when>
    <thetext>Created attachment 392992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627602</commentid>
    <comment_count>17</comment_count>
      <attachid>392992</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-03-08 15:54:58 -0700</bug_when>
    <thetext>Comment on attachment 392992
Patch

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

Please fix the memory leaks (or explain how I am mistaken!). But r=me with that change.

&gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:89
&gt; +            WebUTTypeRecord *record = [WebUTTypeRecord alloc];

Should we be using a smart pointer of some kind to avoid leaks/overreleases?

&gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:107
&gt; +            r.uti = UTTypeCreatePreferredIdentifierForTag(r.tagClass.createCFString().get(), r.tag.createCFString().get(), r.identifier.isNull() ? nullptr : r.identifier.createCFString().get());

I think UTTypeCreatePreferredIdentifierForTag returns a CFStringRef with a +1 count. I think you need something like:

r.uti = adoptCF(UTTypeCreatePreferredIdentifierForTag ....).get();

Or maybe use your new UTIFromTag helper?

&gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:110
&gt; +            i.uti = UTTypeCreatePreferredIdentifierForTag(i.tagClass.createCFString().get(), i.tag.createCFString().get(), i.identifier.isNull() ? nullptr : i.identifier.createCFString().get());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627603</commentid>
    <comment_count>18</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 16:03:01 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #17)
&gt; Comment on attachment 392992 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392992&amp;action=review
&gt; 
&gt; Please fix the memory leaks (or explain how I am mistaken!). But r=me with
&gt; that change.
&gt; 
&gt; &gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:89
&gt; &gt; +            WebUTTypeRecord *record = [WebUTTypeRecord alloc];
&gt; 
&gt; Should we be using a smart pointer of some kind to avoid leaks/overreleases?
&gt; 
&gt; &gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:107
&gt; &gt; +            r.uti = UTTypeCreatePreferredIdentifierForTag(r.tagClass.createCFString().get(), r.tag.createCFString().get(), r.identifier.isNull() ? nullptr : r.identifier.createCFString().get());
&gt; 
&gt; I think UTTypeCreatePreferredIdentifierForTag returns a CFStringRef with a
&gt; +1 count. I think you need something like:
&gt; 
&gt; r.uti = adoptCF(UTTypeCreatePreferredIdentifierForTag ....).get();
&gt; 
&gt; Or maybe use your new UTIFromTag helper?
&gt; 
&gt; &gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:110
&gt; &gt; +            i.uti = UTTypeCreatePreferredIdentifierForTag(i.tagClass.createCFString().get(), i.tag.createCFString().get(), i.identifier.isNull() ? nullptr : i.identifier.createCFString().get());
&gt; 
&gt; Ditto.

Nice catch! Will fix.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627609</commentid>
    <comment_count>19</comment_count>
      <attachid>392997</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 16:20:38 -0700</bug_when>
    <thetext>Created attachment 392997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627618</commentid>
    <comment_count>20</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 16:53:29 -0700</bug_when>
    <thetext>Committed r258120: &lt;https://trac.webkit.org/changeset/258120/webkit&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627656</commentid>
    <comment_count>21</comment_count>
      <attachid>392992</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-08 21:06:03 -0700</bug_when>
    <thetext>Comment on attachment 392992
Patch

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

r- because of leaks

&gt;&gt;&gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:89
&gt;&gt;&gt; +            WebUTTypeRecord *record = [WebUTTypeRecord alloc];
&gt;&gt; 
&gt;&gt; Should we be using a smart pointer of some kind to avoid leaks/overreleases?
&gt; 
&gt; Nice catch! Will fix.
&gt; 
&gt; Thanks for reviewing!

Why is this not [[WebUTTypeRecord alloc] init]?

&gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:94
&gt; +    WTFLogAlways(&quot;UTI not found for tag: %s %s %s\n&quot;, String(tag).utf8().data(), String(tagClass).utf8().data(), String(identifier).utf8().data());

Does this leak any privacy-sensitive information?

&gt; Source/WebCore/testing/Internals.idl:856
&gt;      DOMString getUTIFromMIMEType(DOMString mimeType);
&gt; +    DOMString getUTIFromTag(DOMString tagClass, DOMString tag, DOMString conformingToUTI);

These seem like a rather odd use of internals. Can these be API tests instead?

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:379
&gt; +    if (!WebCore::IOSApplication::isMobileSafari() || _AXSApplicationAccessibilityEnabled()) {

Should accessibility really enable all these services, or should it be more fine-grained?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627657</commentid>
    <comment_count>22</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-08 21:27:20 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #21)
&gt; Comment on attachment 392992 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392992&amp;action=review
&gt; 
&gt; r- because of leaks
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:89
&gt; &gt;&gt;&gt; +            WebUTTypeRecord *record = [WebUTTypeRecord alloc];
&gt; &gt;&gt; 
&gt; &gt;&gt; Should we be using a smart pointer of some kind to avoid leaks/overreleases?
&gt; &gt; 
&gt; &gt; Nice catch! Will fix.
&gt; &gt; 
&gt; &gt; Thanks for reviewing!
&gt; 
&gt; Why is this not [[WebUTTypeRecord alloc] init]?
&gt; 

Good point! I will fix this.

&gt; &gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:94
&gt; &gt; +    WTFLogAlways(&quot;UTI not found for tag: %s %s %s\n&quot;, String(tag).utf8().data(), String(tagClass).utf8().data(), String(identifier).utf8().data());
&gt; 
&gt; Does this leak any privacy-sensitive information?
&gt; 

I don&apos;t believe so, but we should remove the logging as soon as we have identified the UTI types not covered.

&gt; &gt; Source/WebCore/testing/Internals.idl:856
&gt; &gt;      DOMString getUTIFromMIMEType(DOMString mimeType);
&gt; &gt; +    DOMString getUTIFromTag(DOMString tagClass, DOMString tag, DOMString conformingToUTI);
&gt; 
&gt; These seem like a rather odd use of internals. Can these be API tests
&gt; instead?
&gt; 

They are actually used in API tests to compare the values in the UI process with the values in the WebContent process. But perhaps using internals in API tests is not optimal?

&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:379
&gt; &gt; +    if (!WebCore::IOSApplication::isMobileSafari() || _AXSApplicationAccessibilityEnabled()) {
&gt; 
&gt; Should accessibility really enable all these services, or should it be more
&gt; fine-grained?

You are right! This is a speculative fix, and the extensions will be more targeted when we learn who is actually using the services.

Thanks for reviewing, Simon!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627658</commentid>
    <comment_count>23</comment_count>
      <attachid>392997</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-08 21:51:04 -0700</bug_when>
    <thetext>Comment on attachment 392997
Patch

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

&gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:42
&gt; +@interface WebUTTypeRecord : UTTypeRecord

UTTypeRecord is a tagged pointer type. Override it like this may cause serious problems.

&gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:53
&gt; +    _identifier = i;

How do we know that &apos;I&apos; stays alive? This should probably own it and -copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627799</commentid>
    <comment_count>24</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-09 09:16:43 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #23)
&gt; Comment on attachment 392997 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392997&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:42
&gt; &gt; +@interface WebUTTypeRecord : UTTypeRecord
&gt; 
&gt; UTTypeRecord is a tagged pointer type. Override it like this may cause
&gt; serious problems.
&gt; 
&gt; &gt; Source/WebCore/platform/cocoa/UTTypeRecordSwizzler.mm:53
&gt; &gt; +    _identifier = i;
&gt; 
&gt; How do we know that &apos;I&apos; stays alive? This should probably own it and -copy.

I will work on coming up with a better approach for these issues now.

Thanks for catching this!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392954</attachid>
            <date>2020-03-08 09:06:35 -0700</date>
            <delta_ts>2020-03-08 09:15:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308090634.patch</filename>
            <type>text/plain</type>
            <size>18701</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgxMDQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVU
SSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
ODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LnNiOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6VVRUeXBlSXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VVRU
eXBlSXRlbTo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29y
ZFN3aXp6bGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tVVFR5cGVSZWNvcmQgc2V0SWRlbnRp
ZmllcjpdKToKKyAgICAgICAgKFdlYktpdDo6dmVjdG9yT2ZVVFR5cGVSZWNvcmRzKToKKyAgICAg
ICAgKFdlYktpdDo6dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk6CisgICAgICAgIChXZWJLaXQ6
OmNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OnNldFZlY3Rvck9m
VVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0w
My0wOCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIENhbnZhcyBkcmF3aW5nIGNvbW1hbmRzIGhhdmUgdG8gYmUgZmx1c2hlZCB0byB0aGUgR1BV
UHJvY2VzcyBpbiBiYXRjaGVzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQu
c2IJKHdvcmtpbmcgY29weSkKQEAgLTg0OCw3ICs4NDgsNyBAQAogKGFsbG93IG1hY2gtbG9va3Vw
CiAgICAgKHJlcXVpcmUtYWxsCiAgICAgICAgIChleHRlbnNpb24gImNvbS5hcHBsZS53ZWJraXQu
ZXh0ZW5zaW9uLm1hY2giKQotICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUu
YXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNvbS5hcHBsZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVy
IiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiICJjb20uYXBwbGUu
dWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJj
b20uYXBwbGUuZGlhZ25vc3RpY2QiICJjb20uYXBwbGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9i
aWxlYXNzZXRkIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJv
YXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBs
ZS53ZWJpbnNwZWN0b3IiICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20u
YXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgorICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5p
cGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNvbS5hcHBsZS50Y2NkIiAiY29tLmFwcGxlLm5l
aGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiICJjb20u
YXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3Rl
VUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiICJjb20uYXBwbGUubHNkLm9wZW4iICJjb20uYXBw
bGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5m
cm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIgImNv
bS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wi
ICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiAiY29tLmFwcGxlLmxzZC5tYXBkYiIKIAogICAg
ICAgICAgICAgOzs7IEZJWE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92
ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxldGUKICAgICAgICAgICAgICJjb20uYXBw
bGUuYWlycGxheS5hcHN5bmNjb250cm9sbGVyLnhwYyIgImNvbS5hcHBsZS5hdWRpby5BVVJlbW90
ZUlPU2VydmVyIiAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvQ29tcG9uZW50UmVnaXN0cmFyIgpJbmRl
eDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAJKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiAr
MTgwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZAogICAgIGVu
Y29kZXIgPDwgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogICAgIGVuY29kZXIgPDwgZm9jdXNS
aW5nQ29sb3I7CiAgICAgZW5jb2RlciA8PCBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKKyAgICBlbmNv
ZGVyIDw8IHZlY3Rvck9mVVRUeXBlSXRlbTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CkBAIC00OTMsNiArNDk0LDEyIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2QKICAgICAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubG9jYWxpemVk
RGV2aWNlTW9kZWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgT3B0aW9uYWw8
VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3JPZlVUVHlwZUl0ZW07CisgICAgZGVjb2RlciA+PiB2
ZWN0b3JPZlVUVHlwZUl0ZW07CisgICAgaWYgKCF2ZWN0b3JPZlVUVHlwZUl0ZW0pCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSA9IFdURk1v
dmUoKnZlY3Rvck9mVVRUeXBlSXRlbSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJ
bmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3
IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiVVRUeXBl
UmVjb3JkU3dpenpsZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lSU9TLmg+CiAj
ZW5kaWYKIApAQCAtMjIzLDYgKzIyNCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKICAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6Q1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwIGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICAgICBXZWJDb3JlOjpDb2xvciBmb2N1
c1JpbmdDb2xvcjsKICAgICBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTW9kZWw7CisgICAgVmVjdG9y
PFVUVHlwZUl0ZW0+IHZlY3Rvck9mVVRUeXBlSXRlbTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAg
LTM3Niw5ICszNzYsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
VwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmICghV2ViQ29yZTo6
SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkpIHsKKyAgICBpZiAoIVdlYkNvcmU6OklP
U0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpIHx8IF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VzW10g
PSB7CiAgICAgICAgICAgICAiY29tLmFwcGxlLmxzZC5vcGVuIiwKKyAgICAgICAgICAgICJjb20u
YXBwbGUubHNkLm1hcGRiIiwKICAgICAgICAgICAgICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiwK
ICAgICAgICAgICAgICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiwKICAgICAgICAgICAgICJjb20u
YXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiLApAQCAtNDI5LDggKzQzMCw4IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICBwYXJhbWV0ZXJzLmNzc1Zh
bHVlVG9TeXN0ZW1Db2xvck1hcCA9IFJlbmRlclRoZW1lSU9TOjpjc3NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXAoKTsKICAgICBwYXJhbWV0ZXJzLmZvY3VzUmluZ0NvbG9yID0gUmVuZGVyVGhlbWU6OnNp
bmdsZXRvbigpLmZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPigp
KTsKICAgICBwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsID0gbG9jYWxpemVkRGV2aWNl
TW9kZWwoKTsKKyAgICBwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSA9IGNyZWF0ZVZlY3Rv
ck9mVVRUeXBlSXRlbSgpOwogI2VuZGlmCi0KICAgICAKICAgICAvLyBBbGxvdyBtaWNyb3Bob25l
IGFjY2VzcyBpZiBlaXRoZXIgcHJlZmVyZW5jZSBpcyBzZXQgYmVjYXVzZSBXZWJSVEMgcmVxdWly
ZXMgbWljcm9waG9uZSBhY2Nlc3MuCiAgICAgYm9vbCBuZWVkV2ViUHJvY2Vzc0V4dGVuc2lvbnMg
PSAhbV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NGb3JNZWRp
YSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3OTgsNiArMTc5OCw3IEBACiAJ
CUUzOTYyOEREMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
Mzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlci5oICovOyB9OwogCQlFMzk2MjhERTIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgKi87IH07CiAJCUUzQ0FBQTQ0MjQxMzI3OTkwMENF
RDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDQUFBNDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vz
c2liaWxpdHlTdXBwb3J0U1BJLmggKi87IH07CisJCUUzQ0FBQTQ4MjQxNDRGMzIwMENFRDJFMiAv
KiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTQ3MjQxNDRGMzIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRT
d2l6emxlci5tbSAqLzsgfTsKIAkJRTQxM0Y1OUQxQUMxQURDNDAwMzQ1MzYwIC8qIE5ldHdvcmtD
YWNoZUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLzsgfTsK
IAkJRTQyRTA2MTAxQUE3NTIzQjAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MEIxQUE3
NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovOyB9OwogCQlFNDJFMDYx
MjFBQTc1QUJEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MTExQUE3NUFCRDAwQjExNjk5IC8q
IE5ldHdvcmtDYWNoZURhdGEuaCAqLzsgfTsKQEAgLTUyMjksNiArNTIzMCw4IEBACiAJCUUzOTYy
OERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
Mzk2MjhFNDIzOTcxRjM0MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFM0NBQUE0MzI0MTMyNzhBMDBDRUQyRTIgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVN1cHBvcnRT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFBNDcyNDE0NEYzMjAwQ0VE
MkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVVRU
eXBlUmVjb3JkU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQ0FB
QTQ5MjQxNDRGOEYwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVVFR5cGVSZWNvcmRTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDA0OTA3MDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFNDA0OTA3MTIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzIyMURFNjVGNzAwMzdGMERC
IC8qIFNjcm9sbGVyUGFpck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFNjcm9sbGVyUGFpck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTgyNjQsNiArODI2Nyw4IEBACiAJCQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLywKIAkJCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLywKIAkJCQlDRDQ5MUIwQTFFNzMyRDEyMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJRTND
QUFBNDkyNDE0NEY4RjAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLmggKi8sCisJCQkJ
RTNDQUFBNDcyNDE0NEYzMjAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tICovLAog
CQkJCTUyRDVBMUIyMUM1NzQ5RjIwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgg
Ki8sCiAJCQkJNTJENUExQjMxQzU3NDlGMjAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTJENUExQjQxQzU3NDlGMjAwREUzNEEzIC8qIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0gKi8sCkBAIC0xMjc2Niw2ICsxMjc3MSw3IEBACiAJCQkJRTM4
QTFGQzAyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIxNzFFNzM1
MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE0ODI0MTQ0RjMyMDBDRUQyRTIgLyogVVRU
eXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRjQxOEVGOTE4ODdCRDk3
MDAyNzk1RkQgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
MUI1RDVEMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgVVRUeXBlSXRlbSB7CisgICAg
U3RyaW5nIHRhZzsKKyAgICBTdHJpbmcgdGFnQ2xhc3M7CisgICAgU3RyaW5nIGlkZW50aWZpZXI7
CisgICAgU3RyaW5nIHV0aTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8VVRUeXBlSXRlbT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3ZvaWQgc3dpenps
ZVVUVHlwZVJlY29yZCgpOworCitjb25zdCBWZWN0b3I8VVRUeXBlSXRlbT4mIGNyZWF0ZVZlY3Rv
ck9mVVRUeXBlSXRlbSgpOwordm9pZCBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oVmVjdG9yPFVUVHlw
ZUl0ZW0+JiYpOworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBVVFR5cGVJdGVtOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRhZzsKKyAg
ICBlbmNvZGVyIDw8IHRhZ0NsYXNzOworICAgIGVuY29kZXIgPDwgaWRlbnRpZmllcjsKKyAgICBl
bmNvZGVyIDw8IHV0aTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFVU
VHlwZUl0ZW0+IFVUVHlwZUl0ZW06OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9w
dGlvbmFsPFN0cmluZz4gdGFnOworICAgIGRlY29kZXIgPj4gdGFnOworICAgIGlmICghdGFnKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiB0YWdD
bGFzczsKKyAgICBkZWNvZGVyID4+IHRhZ0NsYXNzOworICAgIGlmICghdGFnQ2xhc3MpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IGlkZW50aWZp
ZXI7CisgICAgZGVjb2RlciA+PiBpZGVudGlmaWVyOworICAgIGlmICghaWRlbnRpZmllcikKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdXRpOwor
ICAgIGRlY29kZXIgPj4gdXRpOworICAgIGlmICghdXRpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIFVUVHlwZUl0ZW0geyAqdGFnLCAqdGFnQ2xhc3MsICppZGVu
dGlmaWVyLCAqdXRpIH07Cit9Cit9OworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIubW0JKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3
aXp6bGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA5IEBACisvKgorKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiVVRUeXBlUmVjb3JkU3dpenpsZXIuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisKKyNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KKwor
I2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVF
eHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCitAaW50ZXJmYWNlIFVUVHlwZVJlY29yZAorKyAobnVsbGFibGUgaW5zdGFuY2V0
eXBlKXR5cGVSZWNvcmRXaXRoVGFnOihOU1N0cmluZyAqKXRhZyBvZkNsYXNzOihOU1N0cmluZyAq
KXRhZ0NsYXNzIGNvbmZvcm1pbmdUb0lkZW50aWZpZXI6KE5TU3RyaW5nICopY29uZm9ybXNUbzsK
KysgKGluc3RhbmNldHlwZSlhbGxvYzsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIE5TU3RyaW5nICpp
ZGVudGlmaWVyOworQGVuZAorCitAaW50ZXJmYWNlIFdLVVRUeXBlUmVjb3JkIDogVVRUeXBlUmVj
b3JkCistICh2b2lkKXNldElkZW50aWZpZXI6KE5TU3RyaW5nICopaTsKK0BlbmQKKworQGltcGxl
bWVudGF0aW9uIFdLVVRUeXBlUmVjb3JkIHsKK0BwYWNrYWdlCisgICAgTlNTdHJpbmcgKl9pZGVu
dGlmaWVyOworfQorQHN5bnRoZXNpemUgaWRlbnRpZmllcj1faWRlbnRpZmllcjsKKy0gKHZvaWQp
c2V0SWRlbnRpZmllcjooTlNTdHJpbmcgKilpCit7CisgICAgX2lkZW50aWZpZXIgPSBpOworfQor
QGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFZlY3RvcjxVVFR5cGVJdGVtPiYg
dmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVj
dG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3I7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKworc3RhdGlj
IElNUCB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsID0gbmlsOworCitzdGF0aWMgVVRUeXBlUmVj
b3JkICp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNT
dHJpbmcgKnRhZywgTlNTdHJpbmcgKnRhZ0NsYXNzLCBOU1N0cmluZyAqaWRlbnRpZmllcikKK3sK
KyAgICBmb3IgKGF1dG8mIHIgOiB2ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSkgeworICAgICAgICBp
ZiAoci50YWcgPT0gU3RyaW5nKHRhZykgJiYgci50YWdDbGFzcyA9PSBTdHJpbmcodGFnQ2xhc3Mp
ICYmIHIuaWRlbnRpZmllciA9PSBTdHJpbmcoaWRlbnRpZmllcikpIHsKKyAgICAgICAgICAgIFdL
VVRUeXBlUmVjb3JkICpyZWNvcmQgPSBbV0tVVFR5cGVSZWNvcmQgYWxsb2NdOworICAgICAgICAg
ICAgW3JlY29yZCBzZXRJZGVudGlmaWVyOnIudXRpXTsKKyAgICAgICAgICAgIHJldHVybiByZWNv
cmQ7CisgICAgICAgIH0KKyAgICB9CisgICAgV1RGTG9nQWx3YXlzKCJVbmtub3duIFVUSTogJXMg
JXMgJXNcbiIsIFN0cmluZyh0YWcpLnV0ZjgoKS5kYXRhKCksIFN0cmluZyh0YWdDbGFzcykudXRm
OCgpLmRhdGEoKSwgU3RyaW5nKGlkZW50aWZpZXIpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHd0ZkNhbGxJTVA8VVRUeXBlUmVj
b3JkICo+KHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwsIHNlbGYsIHNlbGVjdG9yLCB0YWcsIG9m
Q2xhc3MsIGlkZW50aWZpZXIpOworfQorCitjb25zdCBWZWN0b3I8VVRUeXBlSXRlbT4mIGNyZWF0
ZVZlY3Rvck9mVVRUeXBlSXRlbSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3Rv
cjxVVFR5cGVJdGVtPj4gdmVjdG9yID0gW10geworICAgICAgICBWZWN0b3I8VVRUeXBlSXRlbT4g
diA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxVVFR5cGVJdGVtPiB7CisgICAgICAgICAgICB7ICJ2
aWRlby9tcDQiX3MsICJwdWJsaWMubWltZS10eXBlIl9zLCBzdGF0aWNfY2FzdDxjaGFyKj4obnVs
bHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9LAorICAgICAgICB9OworICAgICAg
ICBmb3IgKGF1dG8mIHIgOiB2KQorICAgICAgICAgICAgci51dGkgPSBVVFR5cGVDcmVhdGVQcmVm
ZXJyZWRJZGVudGlmaWVyRm9yVGFnKHIudGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwg
ci50YWcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgci5pZGVudGlmaWVyLmlzTnVsbCgpID8gbnVs
bHB0ciA6IHIuaWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICAgICAgcmV0
dXJuIHY7CisgICAgfSgpOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK3ZvaWQgc2V0VmVjdG9y
T2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmIHZlY3RvcikKK3sKKyAgICB2ZWN0b3JP
ZlVUVHlwZVJlY29yZHMoKSA9IFdURk1vdmUodmVjdG9yKTsKK30KKwordm9pZCBzd2l6emxlVVRU
eXBlUmVjb3JkKCkKK3sKKyAgICBNZXRob2QgdHlwZVJlY29yZFdpdGhUYWdNZXRob2QgPSBjbGFz
c19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNzKCJVVFR5cGVSZWNvcmQiKSwgQHNlbGVjdG9y
KHR5cGVSZWNvcmRXaXRoVGFnOiBvZkNsYXNzOiBjb25mb3JtaW5nVG9JZGVudGlmaWVyOikpOwor
ICAgIHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwgPSBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24o
dHlwZVJlY29yZFdpdGhUYWdNZXRob2QsIChJTVApdHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk7
Cit9CisKK307CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTgwNzEpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDAsNiArMTAwLDcgQEAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCAi
QWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIkFzc2VydGlvblNlcnZpY2VzU1BJ
LmgiCisjaW1wb3J0ICJVVFR5cGVSZWNvcmRTd2l6emxlci5oIgogI2ltcG9ydCAiVXNlckludGVy
ZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0SU9TLmgi
CiAjaW1wb3J0IDxVSUtpdC9VSUFjY2Vzc2liaWxpdHkuaD4KQEAgLTI5Niw2ICsyOTcsMTEgQEAg
dm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAgICBfQ0ZQcmVm
c1NldERpcmVjdE1vZGVFbmFibGVkKGZhbHNlKTsKICAgICB9CiAjZW5kaWYKKyAgICAgICAgCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzd2l6emxlVVRUeXBlUmVjb3JkKCk7CisgICAg
c2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFdURk1vdmUocGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0
ZW0pKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0V2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392955</attachid>
            <date>2020-03-08 09:15:12 -0700</date>
            <delta_ts>2020-03-08 09:25:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308091511.patch</filename>
            <type>text/plain</type>
            <size>19456</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgxMDQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVU
SSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
ODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LnNiOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6VVRUeXBlSXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VVRU
eXBlSXRlbTo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29y
ZFN3aXp6bGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tVVFR5cGVSZWNvcmQgc2V0SWRlbnRp
ZmllcjpdKToKKyAgICAgICAgKFdlYktpdDo6dmVjdG9yT2ZVVFR5cGVSZWNvcmRzKToKKyAgICAg
ICAgKFdlYktpdDo6dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk6CisgICAgICAgIChXZWJLaXQ6
OmNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OnNldFZlY3Rvck9m
VVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0w
My0wOCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIENhbnZhcyBkcmF3aW5nIGNvbW1hbmRzIGhhdmUgdG8gYmUgZmx1c2hlZCB0byB0aGUgR1BV
UHJvY2VzcyBpbiBiYXRjaGVzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQu
c2IJKHdvcmtpbmcgY29weSkKQEAgLTg0OCw3ICs4NDgsNyBAQAogKGFsbG93IG1hY2gtbG9va3Vw
CiAgICAgKHJlcXVpcmUtYWxsCiAgICAgICAgIChleHRlbnNpb24gImNvbS5hcHBsZS53ZWJraXQu
ZXh0ZW5zaW9uLm1hY2giKQotICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUu
YXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNvbS5hcHBsZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVy
IiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiICJjb20uYXBwbGUu
dWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJj
b20uYXBwbGUuZGlhZ25vc3RpY2QiICJjb20uYXBwbGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9i
aWxlYXNzZXRkIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJv
YXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBs
ZS53ZWJpbnNwZWN0b3IiICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20u
YXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgorICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5p
cGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNvbS5hcHBsZS50Y2NkIiAiY29tLmFwcGxlLm5l
aGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiICJjb20u
YXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3Rl
VUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiICJjb20uYXBwbGUubHNkLm9wZW4iICJjb20uYXBw
bGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5m
cm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIgImNv
bS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wi
ICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiAiY29tLmFwcGxlLmxzZC5tYXBkYiIKIAogICAg
ICAgICAgICAgOzs7IEZJWE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92
ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxldGUKICAgICAgICAgICAgICJjb20uYXBw
bGUuYWlycGxheS5hcHN5bmNjb250cm9sbGVyLnhwYyIgImNvbS5hcHBsZS5hdWRpby5BVVJlbW90
ZUlPU2VydmVyIiAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvQ29tcG9uZW50UmVnaXN0cmFyIgpJbmRl
eDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAJKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiAr
MTgwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZAogICAgIGVu
Y29kZXIgPDwgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogICAgIGVuY29kZXIgPDwgZm9jdXNS
aW5nQ29sb3I7CiAgICAgZW5jb2RlciA8PCBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKKyAgICBlbmNv
ZGVyIDw8IHZlY3Rvck9mVVRUeXBlSXRlbTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CkBAIC00OTMsNiArNDk0LDEyIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2QKICAgICAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubG9jYWxpemVk
RGV2aWNlTW9kZWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgT3B0aW9uYWw8
VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3JPZlVUVHlwZUl0ZW07CisgICAgZGVjb2RlciA+PiB2
ZWN0b3JPZlVUVHlwZUl0ZW07CisgICAgaWYgKCF2ZWN0b3JPZlVUVHlwZUl0ZW0pCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSA9IFdURk1v
dmUoKnZlY3Rvck9mVVRUeXBlSXRlbSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJ
bmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3
IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiVVRUeXBl
UmVjb3JkU3dpenpsZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lSU9TLmg+CiAj
ZW5kaWYKIApAQCAtMjIzLDYgKzIyNCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKICAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6Q1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwIGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICAgICBXZWJDb3JlOjpDb2xvciBmb2N1
c1JpbmdDb2xvcjsKICAgICBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTW9kZWw7CisgICAgVmVjdG9y
PFVUVHlwZUl0ZW0+IHZlY3Rvck9mVVRUeXBlSXRlbTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAg
LTM3Niw5ICszNzYsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
VwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmICghV2ViQ29yZTo6
SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkpIHsKKyAgICBpZiAoIVdlYkNvcmU6OklP
U0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpIHx8IF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VzW10g
PSB7CiAgICAgICAgICAgICAiY29tLmFwcGxlLmxzZC5vcGVuIiwKKyAgICAgICAgICAgICJjb20u
YXBwbGUubHNkLm1hcGRiIiwKICAgICAgICAgICAgICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiwK
ICAgICAgICAgICAgICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiwKICAgICAgICAgICAgICJjb20u
YXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiLApAQCAtNDI5LDggKzQzMCw4IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICBwYXJhbWV0ZXJzLmNzc1Zh
bHVlVG9TeXN0ZW1Db2xvck1hcCA9IFJlbmRlclRoZW1lSU9TOjpjc3NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXAoKTsKICAgICBwYXJhbWV0ZXJzLmZvY3VzUmluZ0NvbG9yID0gUmVuZGVyVGhlbWU6OnNp
bmdsZXRvbigpLmZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPigp
KTsKICAgICBwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsID0gbG9jYWxpemVkRGV2aWNl
TW9kZWwoKTsKKyAgICBwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSA9IGNyZWF0ZVZlY3Rv
ck9mVVRUeXBlSXRlbSgpOwogI2VuZGlmCi0KICAgICAKICAgICAvLyBBbGxvdyBtaWNyb3Bob25l
IGFjY2VzcyBpZiBlaXRoZXIgcHJlZmVyZW5jZSBpcyBzZXQgYmVjYXVzZSBXZWJSVEMgcmVxdWly
ZXMgbWljcm9waG9uZSBhY2Nlc3MuCiAgICAgYm9vbCBuZWVkV2ViUHJvY2Vzc0V4dGVuc2lvbnMg
PSAhbV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NGb3JNZWRp
YSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE3OTgsNiArMTc5OCw4IEBACiAJ
CUUzOTYyOEREMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
Mzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlci5oICovOyB9OwogCQlFMzk2MjhERTIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgKi87IH07CiAJCUUzQ0FBQTQ0MjQxMzI3OTkwMENF
RDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDQUFBNDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vz
c2liaWxpdHlTdXBwb3J0U1BJLmggKi87IH07CisJCUUzQ0FBQTQ4MjQxNDRGMzIwMENFRDJFMiAv
KiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTQ3MjQxNDRGMzIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRT
d2l6emxlci5tbSAqLzsgfTsKKwkJRTNDQUFBNEQyNDE1NTBCODAwQ0VEMkUyIC8qIFVUVHlwZVJl
Y29yZFN3aXp6bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFM0NBQUE0OTI0MTQ0RjhGMDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDEzRjU5
RDFBQzFBREM0MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAv
KiBOZXR3b3JrQ2FjaGVFbnRyeS5oICovOyB9OwogCQlFNDJFMDYxMDFBQTc1MjNCMDBCMTE2OTkg
LyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hl
SU9DaGFubmVsLmggKi87IH07CiAJCUU0MkUwNjEyMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3Jr
Q2FjaGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDJFMDYxMTFBQTc1QUJEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oICovOyB9OwpA
QCAtNTIyOSw2ICs1MjMxLDggQEAKIAkJRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTYyOEU0MjM5NzFGMzQwMDY1OEVDRCAvKiBX
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQ0FBQTQzMjQxMzI3OEEwMENFRDJF
MiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFM0NBQUE0NzI0MTQ0RjMyMDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFBNDkyNDE0NEY4RjAwQ0VEMkUyIC8qIFVUVHlw
ZVJlY29yZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUVHlwZVJlY29yZFN3aXp6bGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcwMjFERTY1RjcwMDM3RjBEQiAv
KiBTY3JvbGxlclBhaXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
b2xsZXJQYWlyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcxMjFE
RTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNDA0OTA3MjIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODI2NCw2ICs4MjY4LDggQEAKIAkJCQlDRDQ5
MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovLAog
CQkJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
ICovLAogCQkJCUNENDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCQlFM0NBQUE0OTI0MTQ0RjhGMDBDRUQyRTIgLyogVVRU
eXBlUmVjb3JkU3dpenpsZXIuaCAqLywKKwkJCQlFM0NBQUE0NzI0MTQ0RjMyMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8sCiAJCQkJNTJENUExQjIxQzU3NDlGMjAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywKIAkJCQk1MkQ1QTFCMzFDNTc0OUYyMDBE
RTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk1MkQ1
QTFCNDFDNTc0OUYyMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSAqLywKQEAg
LTEwOTc1LDYgKzEwOTgxLDcgQEAKIAkJCQk0QTNDQzE4QjE5QjA2NDBGMDBEMTRBRUYgLyogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTRBM0NDMThEMTlCMDY0MTkwMEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzRFNzVGRTFERjIyMTE5MDBEMzE4RUMgLyogVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzQ0FBQTREMjQxNTUw
QjgwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNCQTNDQiAvKiBW
aWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTI3NjYsNiArMTI3NzMs
NyBAQAogCQkJCUUzOEExRkMwMjNBNTUxQkYwMEQyMzc0RiAvKiBVc2VySW50ZXJmYWNlSWRpb20u
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0Q0OTFCMTcxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTNDQUFBNDgyNDE0NEYzMjAw
Q0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y0
MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8q
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9s
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29y
ZFN3aXp6bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFVUVHlw
ZUl0ZW0geworICAgIFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmlu
ZyBpZGVudGlmaWVyOworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9Owor
Cit2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKworY29uc3QgVmVjdG9yPFVUVHlwZUl0ZW0+
JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK3ZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVt
KFZlY3RvcjxVVFR5cGVJdGVtPiYmKTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
VVRUeXBlSXRlbTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCB0YWc7CisgICAgZW5jb2RlciA8PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50
aWZpZXI7CisgICAgZW5jb2RlciA8PCB1dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitPcHRpb25hbDxVVFR5cGVJdGVtPiBVVFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBPcHRpb25hbDxTdHJpbmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAg
ICBpZiAoIXRhZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFs
PFN0cmluZz4gdGFnQ2xhc3M7CisgICAgZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRh
Z0NsYXNzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3Ry
aW5nPiBpZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlk
ZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxT
dHJpbmc+IHV0aTsKKyAgICBkZWNvZGVyID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRh
Z0NsYXNzLCAqaWRlbnRpZmllciwgKnV0aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6
bGVyLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
VFR5cGVSZWNvcmRTd2l6emxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwOSBAQAor
LyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIlVUVHlwZVJlY29yZFN3aXp6bGVyLmgiCisKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorCisjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNl
cnZpY2VzLmg+CisKKyNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3Rm
L09iakNSdW50aW1lRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworQGludGVyZmFjZSBVVFR5cGVSZWNvcmQKKysgKG51bGxh
YmxlIGluc3RhbmNldHlwZSl0eXBlUmVjb3JkV2l0aFRhZzooTlNTdHJpbmcgKil0YWcgb2ZDbGFz
czooTlNTdHJpbmcgKil0YWdDbGFzcyBjb25mb3JtaW5nVG9JZGVudGlmaWVyOihOU1N0cmluZyAq
KWNvbmZvcm1zVG87CisrIChpbnN0YW5jZXR5cGUpYWxsb2M7CitAcHJvcGVydHkgKHJlYWRvbmx5
KSBOU1N0cmluZyAqaWRlbnRpZmllcjsKK0BlbmQKKworQGludGVyZmFjZSBXS1VUVHlwZVJlY29y
ZCA6IFVUVHlwZVJlY29yZAorLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWk7CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1VUVHlwZVJlY29yZCB7CitAcGFja2FnZQorICAgIE5T
U3RyaW5nICpfaWRlbnRpZmllcjsKK30KK0BzeW50aGVzaXplIGlkZW50aWZpZXI9X2lkZW50aWZp
ZXI7CistICh2b2lkKXNldElkZW50aWZpZXI6KE5TU3RyaW5nICopaQoreworICAgIF9pZGVudGlm
aWVyID0gaTsKK30KK0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBWZWN0b3I8
VVRUeXBlSXRlbT4mIHZlY3Rvck9mVVRUeXBlUmVjb3JkcygpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yOworICAgIHJldHVybiB2ZWN0b3I7
Cit9CisKK3N0YXRpYyBJTVAgdHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCA9IG5pbDsKKworc3Rh
dGljIFVUVHlwZVJlY29yZCAqdHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZShpZCBzZWxmLCBTRUwg
c2VsZWN0b3IsIE5TU3RyaW5nICp0YWcsIE5TU3RyaW5nICp0YWdDbGFzcywgTlNTdHJpbmcgKmlk
ZW50aWZpZXIpCit7CisgICAgZm9yIChhdXRvJiByIDogdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkp
IHsKKyAgICAgICAgaWYgKHIudGFnID09IFN0cmluZyh0YWcpICYmIHIudGFnQ2xhc3MgPT0gU3Ry
aW5nKHRhZ0NsYXNzKSAmJiByLmlkZW50aWZpZXIgPT0gU3RyaW5nKGlkZW50aWZpZXIpKSB7Cisg
ICAgICAgICAgICBXS1VUVHlwZVJlY29yZCAqcmVjb3JkID0gW1dLVVRUeXBlUmVjb3JkIGFsbG9j
XTsKKyAgICAgICAgICAgIFtyZWNvcmQgc2V0SWRlbnRpZmllcjpyLnV0aV07CisgICAgICAgICAg
ICByZXR1cm4gcmVjb3JkOworICAgICAgICB9CisgICAgfQorICAgIFdURkxvZ0Fsd2F5cygiVW5r
bm93biBVVEk6ICVzICVzICVzXG4iLCBTdHJpbmcodGFnKS51dGY4KCkuZGF0YSgpLCBTdHJpbmco
dGFnQ2xhc3MpLnV0ZjgoKS5kYXRhKCksIFN0cmluZyhpZGVudGlmaWVyKS51dGY4KCkuZGF0YSgp
KTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB3dGZDYWxs
SU1QPFVUVHlwZVJlY29yZCAqPih0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsLCBzZWxmLCBzZWxl
Y3RvciwgdGFnLCB0YWdDbGFzcywgaWRlbnRpZmllcik7Cit9CisKK2NvbnN0IFZlY3RvcjxVVFR5
cGVJdGVtPiYgY3JlYXRlVmVjdG9yT2ZVVFR5cGVJdGVtKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3IgPSBbXSB7CisgICAgICAgIFZlY3Rv
cjxVVFR5cGVJdGVtPiB2ID0gc3RkOjppbml0aWFsaXplcl9saXN0PFVUVHlwZUl0ZW0+IHsKKyAg
ICAgICAgICAgIHsgInZpZGVvL21wNCJfcywgInB1YmxpYy5taW1lLXR5cGUiX3MsIHN0YXRpY19j
YXN0PGNoYXIqPihudWxscHRyKSwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpIH0sCisgICAg
ICAgIH07CisgICAgICAgIGZvciAoYXV0byYgciA6IHYpCisgICAgICAgICAgICByLnV0aSA9IFVU
VHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJGb3JUYWcoci50YWdDbGFzcy5jcmVhdGVDRlN0
cmluZygpLmdldCgpLCByLnRhZy5jcmVhdGVDRlN0cmluZygpLmdldCgpLCByLmlkZW50aWZpZXIu
aXNOdWxsKCkgPyBudWxscHRyIDogci5pZGVudGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkp
OworICAgICAgICByZXR1cm4gdjsKKyAgICB9KCk7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKwor
dm9pZCBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oVmVjdG9yPFVUVHlwZUl0ZW0+JiYgdmVjdG9yKQor
eworICAgIHZlY3Rvck9mVVRUeXBlUmVjb3JkcygpID0gV1RGTW92ZSh2ZWN0b3IpOworfQorCit2
b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKQoreworICAgIE1ldGhvZCB0eXBlUmVjb3JkV2l0aFRh
Z01ldGhvZCA9IGNsYXNzX2dldENsYXNzTWV0aG9kKG9iamNfZ2V0Q2xhc3MoIlVUVHlwZVJlY29y
ZCIpLCBAc2VsZWN0b3IodHlwZVJlY29yZFdpdGhUYWc6IG9mQ2xhc3M6IGNvbmZvcm1pbmdUb0lk
ZW50aWZpZXI6KSk7CisgICAgdHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCA9IG1ldGhvZF9zZXRJ
bXBsZW1lbnRhdGlvbih0eXBlUmVjb3JkV2l0aFRhZ01ldGhvZCwgKElNUCl0eXBlUmVjb3JkV2l0
aFRhZ092ZXJyaWRlKTsKK30KKworfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1ODA3
MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEwMCw2ICsxMDAsNyBAQAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIgogI2ltcG9ydCAiQXNzZXJ0
aW9uU2VydmljZXNTUEkuaCIKKyNpbXBvcnQgIlVUVHlwZVJlY29yZFN3aXp6bGVyLmgiCiAjaW1w
b3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdlYlBh
Z2VPYmplY3RJT1MuaCIKICNpbXBvcnQgPFVJS2l0L1VJQWNjZXNzaWJpbGl0eS5oPgpAQCAtMjk2
LDYgKzI5NywxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAg
ICAgICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQoZmFsc2UpOwogICAgIH0KICNlbmRp
ZgorICAgICAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHN3aXp6bGVVVFR5cGVS
ZWNvcmQoKTsKKyAgICBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oV1RGTW92ZShwYXJhbWV0ZXJzLnZl
Y3Rvck9mVVRUeXBlSXRlbSkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392956</attachid>
            <date>2020-03-08 09:25:39 -0700</date>
            <delta_ts>2020-03-08 11:15:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308092538.patch</filename>
            <type>text/plain</type>
            <size>19216</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMjU4MDcxKQorKysg
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtOTQz
LDYgKzk0Myw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lv
bihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CiAKICAgICBTdHJpbmcgZ2V0VVRJRnJvbU1JTUVU
eXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworICAgIFN0cmluZyBnZXRVVElGcm9tVGFnKGNv
bnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNv
bmZvcm1pbmdUb1VUSSk7CiAKICAgICBib29sIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU4MTA0KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wMy0wOCAgUGVyIEFybmUg
Vm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFwcGluZyB0byBV
VEkgZnJvbSB0YWcgYW5kIHRhZyBjbGFzcyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBw
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDg3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5zYjoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mp
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlVUVHlwZUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVU
VHlwZUl0ZW06OmRlY29kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9VVFR5cGVSZWNv
cmRTd2l6emxlci5tbTogQWRkZWQuCisgICAgICAgICgtW1dLVVRUeXBlUmVjb3JkIHNldElkZW50
aWZpZXI6XSk6CisgICAgICAgIChXZWJLaXQ6OnZlY3Rvck9mVVRUeXBlUmVjb3Jkcyk6CisgICAg
ICAgIChXZWJLaXQ6OnR5cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUpOgorICAgICAgICAoV2ViS2l0
OjpjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpzZXRWZWN0b3JP
ZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2ViS2l0Ojpzd2l6emxlVVRUeXBlUmVjb3JkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAt
MDMtMDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDYW52YXMgZHJhd2luZyBjb21tYW5kcyBoYXZlIHRvIGJlIGZsdXNoZWQgdG8gdGhlIEdQ
VVByb2Nlc3MgaW4gYmF0Y2hlcwpJbmRleDogU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUu
V2ViS2l0LldlYkNvbnRlbnQuc2IJKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJjZS9XZWJLaXQv
UmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LnNiCSh3b3JraW5nIGNvcHkpCkBAIC04NDgsNyArODQ4LDcgQEAKIChhbGxvdyBtYWNoLWxvb2t1
cAogICAgIChyZXF1aXJlLWFsbAogICAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUud2Via2l0
LmV4dGVuc2lvbi5tYWNoIikKLSAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuaXBob25l
LmF4c2VydmVyLXN5c3RlbXdpZGUiICJjb20uYXBwbGUudGNjZCIgImNvbS5hcHBsZS5uZWhlbHBl
ciIgImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIiAiY29tLmFwcGxl
LnVpa2l0LnZpZXdzZXJ2aWNlLmNvbS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90ZVVJIiAi
Y29tLmFwcGxlLmRpYWdub3N0aWNkIiAiY29tLmFwcGxlLmxzZC5vcGVuIiAiY29tLmFwcGxlLm1v
YmlsZWFzc2V0ZCIgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQudjIiICJjb20uYXBwbGUuZnJvbnRi
b2FyZC5zeXN0ZW1hcHBzZXJ2aWNlcyIgImNvbS5hcHBsZS5pY29uc2VydmljZXMiICJjb20uYXBw
bGUud2ViaW5zcGVjdG9yIiAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIiAiY29t
LmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIKKyAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
aXBob25lLmF4c2VydmVyLXN5c3RlbXdpZGUiICJjb20uYXBwbGUudGNjZCIgImNvbS5hcHBsZS5u
ZWhlbHBlciIgImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIiAiY29t
LmFwcGxlLnVpa2l0LnZpZXdzZXJ2aWNlLmNvbS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90
ZVVJIiAiY29tLmFwcGxlLmRpYWdub3N0aWNkIiAiY29tLmFwcGxlLmxzZC5vcGVuIiAiY29tLmFw
cGxlLm1vYmlsZWFzc2V0ZCIgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQudjIiICJjb20uYXBwbGUu
ZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2aWNlcyIgImNvbS5hcHBsZS5pY29uc2VydmljZXMiICJj
b20uYXBwbGUud2ViaW5zcGVjdG9yIiAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9s
IiAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIgImNvbS5hcHBsZS5sc2QubWFwZGIiCiAKICAg
ICAgICAgICAgIDs7OyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1v
dmVkIHdoZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlCiAgICAgICAgICAgICAiY29tLmFw
cGxlLmFpcnBsYXkuYXBzeW5jY29udHJvbGxlci54cGMiICJjb20uYXBwbGUuYXVkaW8uQVVSZW1v
dGVJT1NlcnZlciIgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciIKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTgwNzEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgwLDYg
KzE4MCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICAgICBl
bmNvZGVyIDw8IGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICAgICBlbmNvZGVyIDw8IGZvY3Vz
UmluZ0NvbG9yOwogICAgIGVuY29kZXIgPDwgbG9jYWxpemVkRGV2aWNlTW9kZWw7CisgICAgZW5j
b2RlciA8PCB2ZWN0b3JPZlVUVHlwZUl0ZW07CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQpAQCAtNDkzLDYgKzQ5NCwxMiBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kCiAgICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxvY2FsaXpl
ZERldmljZU1vZGVsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIE9wdGlvbmFs
PFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yT2ZVVFR5cGVJdGVtOworICAgIGRlY29kZXIgPj4g
dmVjdG9yT2ZVVFR5cGVJdGVtOworICAgIGlmICghdmVjdG9yT2ZVVFR5cGVJdGVtKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0gPSBXVEZN
b3ZlKCp2ZWN0b3JPZlVUVHlwZUl0ZW0pOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIs
NyBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlVUVHlw
ZVJlY29yZFN3aXp6bGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgog
I2VuZGlmCiAKQEAgLTIyMyw2ICsyMjQsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyB7CiAgICAgV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OkNTU1ZhbHVlVG9TeXN0ZW1D
b2xvck1hcCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgV2ViQ29yZTo6Q29sb3IgZm9j
dXNSaW5nQ29sb3I7CiAgICAgU3RyaW5nIGxvY2FsaXplZERldmljZU1vZGVsOworICAgIFZlY3Rv
cjxVVFR5cGVJdGVtPiB2ZWN0b3JPZlVUVHlwZUl0ZW07CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTgwNzEpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zNzYsOSArMzc2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVcKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoIVdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpKSB7CisgICAgaWYgKCFXZWJDb3JlOjpJ
T1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKSB8fCBfQVhTQXBwbGljYXRpb25BY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlc1td
ID0gewogICAgICAgICAgICAgImNvbS5hcHBsZS5sc2Qub3BlbiIsCisgICAgICAgICAgICAiY29t
LmFwcGxlLmxzZC5tYXBkYiIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCIs
CiAgICAgICAgICAgICAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIsCiAgICAgICAgICAgICAiY29t
LmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIiwKQEAgLTQyOSw4ICs0MzAsOCBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgcGFyYW1ldGVycy5jc3NW
YWx1ZVRvU3lzdGVtQ29sb3JNYXAgPSBSZW5kZXJUaGVtZUlPUzo6Y3NzVmFsdWVUb1N5c3RlbUNv
bG9yTWFwKCk7CiAgICAgcGFyYW1ldGVycy5mb2N1c1JpbmdDb2xvciA9IFJlbmRlclRoZW1lOjpz
aW5nbGV0b24oKS5mb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4o
KSk7CiAgICAgcGFyYW1ldGVycy5sb2NhbGl6ZWREZXZpY2VNb2RlbCA9IGxvY2FsaXplZERldmlj
ZU1vZGVsKCk7CisgICAgcGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0gPSBjcmVhdGVWZWN0
b3JPZlVUVHlwZUl0ZW0oKTsKICNlbmRpZgotCiAgICAgCiAgICAgLy8gQWxsb3cgbWljcm9waG9u
ZSBhY2Nlc3MgaWYgZWl0aGVyIHByZWZlcmVuY2UgaXMgc2V0IGJlY2F1c2UgV2ViUlRDIHJlcXVp
cmVzIG1pY3JvcGhvbmUgYWNjZXNzLgogICAgIGJvb2wgbmVlZFdlYlByb2Nlc3NFeHRlbnNpb25z
ID0gIW1fZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yTWVk
aWEoKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAyNTgwNzEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNzk4LDYgKzE3OTgsNyBAQAog
CQlFMzk2MjhERDIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM5NjI4REIyMzk2MENDNTAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXIuaCAqLzsgfTsKIAkJRTM5NjI4REUyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwICovOyB9OwogCQlFM0NBQUE0NDI0MTMyNzk5MDBD
RUQyRTIgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTQzMjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nl
c3NpYmlsaXR5U3VwcG9ydFNQSS5oICovOyB9OworCQlFM0NBQUE0ODI0MTQ0RjMyMDBDRUQyRTIg
LyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0NBQUE0NzI0MTQ0RjMyMDBDRUQyRTIgLyogVVRUeXBlUmVjb3Jk
U3dpenpsZXIubW0gKi87IH07CiAJCUU0MTNGNTlEMUFDMUFEQzQwMDM0NTM2MCAvKiBOZXR3b3Jr
Q2FjaGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi87IH07
CiAJCUU0MkUwNjEwMUFBNzUyM0IwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjBCMUFB
NzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLzsgfTsKIAkJRTQyRTA2
MTIxQUE3NUFCRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjExMUFBNzVBQkQwMEIxMTY5OSAv
KiBOZXR3b3JrQ2FjaGVEYXRhLmggKi87IH07CkBAIC01MjI5LDYgKzUyMzAsOCBAQAogCQlFMzk2
MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTM5NjI4RTQyMzk3MUYzNDAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNDQUFBNDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQ0FBQTQ3MjQxNDRGMzIwMENF
RDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVU
VHlwZVJlY29yZFN3aXp6bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NB
QUE0OTI0MTQ0RjhGMDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVVRUeXBlUmVjb3JkU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFERTY1RjcwMDM3RjBE
QiAvKiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04MjY0LDYgKzgyNjcsOCBAQAogCQkJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8sCiAJCQkJQ0Q0OTFCMEExRTczMkQxMjAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJCUUz
Q0FBQTQ5MjQxNDRGOEYwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICovLAorCQkJ
CUUzQ0FBQTQ3MjQxNDRGMzIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSAqLywK
IAkJCQk1MkQ1QTFCMjFDNTc0OUYyMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
ICovLAogCQkJCTUyRDVBMUIzMUM1NzQ5RjIwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTUyRDVBMUI0MUM1NzQ5RjIwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovLApAQCAtMTI3NjYsNiArMTI3NzEsNyBAQAogCQkJCUUz
OEExRkMwMjNBNTUxQkYwMEQyMzc0RiAvKiBVc2VySW50ZXJmYWNlSWRpb20ubW0gaW4gU291cmNl
cyAqLywKIAkJCQlDRDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMTcxRTcz
NTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTNDQUFBNDgyNDE0NEYzMjAwQ0VEMkUyIC8qIFVU
VHlwZVJlY29yZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThFRjkxODg3QkQ5
NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFVUVHlwZUl0ZW0geworICAg
IFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVudGlmaWVy
OworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit2b2lkIHN3aXp6
bGVVVFR5cGVSZWNvcmQoKTsKKworY29uc3QgVmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0
b3JPZlVUVHlwZUl0ZW0oKTsKK3ZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5
cGVJdGVtPiYmKTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7Cisg
ICAgZW5jb2RlciA8PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAg
ZW5jb2RlciA8PCB1dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxV
VFR5cGVJdGVtPiBVVFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBP
cHRpb25hbDxTdHJpbmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFn
Q2xhc3M7CisgICAgZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlm
aWVyOworICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsK
KyAgICBkZWNvZGVyID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRl
bnRpZmllciwgKnV0aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9VVFR5cGVSZWNvcmRT
d2l6emxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwOSBAQAorLyoKKyogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIlVUVHlwZVJlY29yZFN3aXp6bGVyLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorCisjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisK
KyNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL09iakNSdW50aW1l
RXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworQGludGVyZmFjZSBVVFR5cGVSZWNvcmQKKysgKG51bGxhYmxlIGluc3RhbmNl
dHlwZSl0eXBlUmVjb3JkV2l0aFRhZzooTlNTdHJpbmcgKil0YWcgb2ZDbGFzczooTlNTdHJpbmcg
Kil0YWdDbGFzcyBjb25mb3JtaW5nVG9JZGVudGlmaWVyOihOU1N0cmluZyAqKWNvbmZvcm1zVG87
CisrIChpbnN0YW5jZXR5cGUpYWxsb2M7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0cmluZyAq
aWRlbnRpZmllcjsKK0BlbmQKKworQGludGVyZmFjZSBXS1VUVHlwZVJlY29yZCA6IFVUVHlwZVJl
Y29yZAorLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWk7CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXS1VUVHlwZVJlY29yZCB7CitAcGFja2FnZQorICAgIE5TU3RyaW5nICpfaWRl
bnRpZmllcjsKK30KK0BzeW50aGVzaXplIGlkZW50aWZpZXI9X2lkZW50aWZpZXI7CistICh2b2lk
KXNldElkZW50aWZpZXI6KE5TU3RyaW5nICopaQoreworICAgIF9pZGVudGlmaWVyID0gaTsKK30K
K0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBWZWN0b3I8VVRUeXBlSXRlbT4m
IHZlY3Rvck9mVVRUeXBlUmVjb3JkcygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZl
Y3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK3N0YXRp
YyBJTVAgdHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCA9IG5pbDsKKworc3RhdGljIFVUVHlwZVJl
Y29yZCAqdHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZShpZCBzZWxmLCBTRUwgc2VsZWN0b3IsIE5T
U3RyaW5nICp0YWcsIE5TU3RyaW5nICp0YWdDbGFzcywgTlNTdHJpbmcgKmlkZW50aWZpZXIpCit7
CisgICAgZm9yIChhdXRvJiByIDogdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkpIHsKKyAgICAgICAg
aWYgKHIudGFnID09IFN0cmluZyh0YWcpICYmIHIudGFnQ2xhc3MgPT0gU3RyaW5nKHRhZ0NsYXNz
KSAmJiByLmlkZW50aWZpZXIgPT0gU3RyaW5nKGlkZW50aWZpZXIpKSB7CisgICAgICAgICAgICBX
S1VUVHlwZVJlY29yZCAqcmVjb3JkID0gW1dLVVRUeXBlUmVjb3JkIGFsbG9jXTsKKyAgICAgICAg
ICAgIFtyZWNvcmQgc2V0SWRlbnRpZmllcjpyLnV0aV07CisgICAgICAgICAgICByZXR1cm4gcmVj
b3JkOworICAgICAgICB9CisgICAgfQorICAgIFdURkxvZ0Fsd2F5cygiVW5rbm93biBVVEk6ICVz
ICVzICVzXG4iLCBTdHJpbmcodGFnKS51dGY4KCkuZGF0YSgpLCBTdHJpbmcodGFnQ2xhc3MpLnV0
ZjgoKS5kYXRhKCksIFN0cmluZyhpZGVudGlmaWVyKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB3dGZDYWxsSU1QPFVUVHlwZVJl
Y29yZCAqPih0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsLCBzZWxmLCBzZWxlY3RvciwgdGFnLCB0
YWdDbGFzcywgaWRlbnRpZmllcik7Cit9CisKK2NvbnN0IFZlY3RvcjxVVFR5cGVJdGVtPiYgY3Jl
YXRlVmVjdG9yT2ZVVFR5cGVJdGVtKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVj
dG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3IgPSBbXSB7CisgICAgICAgIFZlY3RvcjxVVFR5cGVJdGVt
PiB2ID0gc3RkOjppbml0aWFsaXplcl9saXN0PFVUVHlwZUl0ZW0+IHsKKyAgICAgICAgICAgIHsg
InZpZGVvL21wNCJfcywgInB1YmxpYy5taW1lLXR5cGUiX3MsIHN0YXRpY19jYXN0PGNoYXIqPihu
dWxscHRyKSwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpIH0sCisgICAgICAgIH07CisgICAg
ICAgIGZvciAoYXV0byYgciA6IHYpCisgICAgICAgICAgICByLnV0aSA9IFVUVHlwZUNyZWF0ZVBy
ZWZlcnJlZElkZW50aWZpZXJGb3JUYWcoci50YWdDbGFzcy5jcmVhdGVDRlN0cmluZygpLmdldCgp
LCByLnRhZy5jcmVhdGVDRlN0cmluZygpLmdldCgpLCByLmlkZW50aWZpZXIuaXNOdWxsKCkgPyBu
dWxscHRyIDogci5pZGVudGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICBy
ZXR1cm4gdjsKKyAgICB9KCk7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKwordm9pZCBzZXRWZWN0
b3JPZlVUVHlwZUl0ZW0oVmVjdG9yPFVUVHlwZUl0ZW0+JiYgdmVjdG9yKQoreworICAgIHZlY3Rv
ck9mVVRUeXBlUmVjb3JkcygpID0gV1RGTW92ZSh2ZWN0b3IpOworfQorCit2b2lkIHN3aXp6bGVV
VFR5cGVSZWNvcmQoKQoreworICAgIE1ldGhvZCB0eXBlUmVjb3JkV2l0aFRhZ01ldGhvZCA9IGNs
YXNzX2dldENsYXNzTWV0aG9kKG9iamNfZ2V0Q2xhc3MoIlVUVHlwZVJlY29yZCIpLCBAc2VsZWN0
b3IodHlwZVJlY29yZFdpdGhUYWc6IG9mQ2xhc3M6IGNvbmZvcm1pbmdUb0lkZW50aWZpZXI6KSk7
CisgICAgdHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlv
bih0eXBlUmVjb3JkV2l0aFRhZ01ldGhvZCwgKElNUCl0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRl
KTsKK30KKworfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEwMCw2ICsxMDAsNyBAQAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0
ICJBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIgogI2ltcG9ydCAiQXNzZXJ0aW9uU2VydmljZXNT
UEkuaCIKKyNpbXBvcnQgIlVUVHlwZVJlY29yZFN3aXp6bGVyLmgiCiAjaW1wb3J0ICJVc2VySW50
ZXJmYWNlSWRpb20uaCIKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RJT1Mu
aCIKICNpbXBvcnQgPFVJS2l0L1VJQWNjZXNzaWJpbGl0eS5oPgpAQCAtMjk2LDYgKzI5NywxMSBA
QCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgICAgIF9DRlBy
ZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQoZmFsc2UpOwogICAgIH0KICNlbmRpZgorICAgICAgICAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKyAg
ICBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oV1RGTW92ZShwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBl
SXRlbSkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392962</attachid>
            <date>2020-03-08 11:15:44 -0700</date>
            <delta_ts>2020-03-08 11:22:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308111543.patch</filename>
            <type>text/plain</type>
            <size>25454</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTA4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRv
IFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJ
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VVRUeXBlSXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVUVHlwZUl0ZW06
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIu
bW06IEFkZGVkLgorICAgICAgICAoLVtXZWJVVFR5cGVSZWNvcmQgc2V0SWRlbnRpZmllcjpdKToK
KyAgICAgICAgKFdlYkNvcmU6OnZlY3Rvck9mVVRUeXBlUmVjb3Jkcyk6CisgICAgICAgIChXZWJD
b3JlOjp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRWZWN0b3JPZlVUVHlw
ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c3dpenpsZVVUVHlwZVJlY29yZCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpn
ZXRVVElGcm9tVGFnKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMt
MDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYW52YXMgZHJhd2luZyBjb21tYW5kcyBoYXZlIHRvIGJlIGZsdXNoZWQgdG8gdGhlIEdQVVBy
b2Nlc3MgaW4gYmF0Y2hlcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00
ODM1LDYgKzQ4MzUsOCBAQAogCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVL
ZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJD
MjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87
IH07CiAJCUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIx
MTMxNDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovOyB9OworCQlFM0NBQUE2
MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTVFMjQxNTVFRjIwMENFRDJF
MiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUUzQ0FBQTYyMjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5cGVS
ZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQ0FBQTYwMjQxNTVFRjMwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5t
bSAqLzsgfTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNo
ZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNj
cmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFM0ZBMzg2NDFENzE4MTJEMDBBQTU5NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGQTM4NjEx
RDcxNkU3NjAwQUE1OTUwIC8qIFBlbmRpbmdTY3JpcHRDbGllbnQuaCAqLzsgfTsKIAkJRTQwMUMy
NzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMw
MEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MTk2LDYgKzE1MTk4LDggQEAKIAkJ
RTNCRjE5RTcyMkFGMzA5RjAwOUM5OTI2IC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01K
SVRDaGVja0RPTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5QUVDOTIxMTMx
NDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01pY3JvdGFza0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUNvbnN0YW50cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNTFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzMTEyLDYgKzIzMTE2LDggQEAKIAkJCQkzMTBENzE5NDFCMzM1QzlE
MDA5QzdCNzMgLyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQwMDlDN0I3
MyAvKiBUaGVtZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQwNiAvKiBV
c2VyQWdlbnRDb2NvYS5tbSAqLywKKwkJCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyogVVRU
eXBlUmVjb3JkU3dpenpsZXIuaCAqLywKKwkJCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8sCiAJCQkJNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUz
IC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJNTJENUExQTQxQzU3
NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8sCiAJCQkJNTJENUExQTUx
QzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8s
CkBAIC0zMTU0OSw2ICszMTU1NSw3IEBACiAJCQkJQTE3RDI3NUUxRUFDNTc5ODAwQkYwMUU3IC8q
IE1lZGlhU2VsZWN0aW9uT3B0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTAyN0Y0MjFCMUQw
QUQyMDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOUY4N0NG
RTFCMjhGNDBFMDA5NzlCODMgLyogTWVkaWFTZXNzaW9uRXZlbnRzLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTQ0NjBBMjI0MTI5OTQ1MDA4MTRCRTcgLyogTWVkaWFTZXNzaW9uSWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzk2RjVFQzgxQjU4NzIyNjAwOTFFQTlEIC8qIE1lZGlhU2Vz
c2lvbkludGVycnVwdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTZGNUVDNTFC
NTg3MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uUHJvdmlkZXJNYWMuaCBp
biBIZWFkZXJzICovLAogCQkJCUM5MEY2NTU2MUIyMjUzQkUwMDIxNjNBMSAvKiBNZWRpYVNlc3Np
b25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMyODAzLDcgKzMyODEwLDYgQEAKIAkJCQlD
RTIxMjE1ODI0MERCRUI5MDA2RUQ0NDMgLyogVGV4dFBsYWNlaG9sZGVyRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNGMTk4RjYwODI0NUU1OTAwMUU5QUJDIC8qIFRleHRSZXNvdXJjZURl
Y29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjRCNDY1MEUyRUYyRUEwMDgxQTdCNyAvKiBU
ZXh0UnVuLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTQ0NjBBMjI0MTI5OTQ1MDA4MTRCRTcgLyog
TWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQ4QjFCN0EwRjNB
MkY5QjAwNDdBOUUyIC8qIFRleHRTaXplQWRqdXN0bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTc1OUU5NDAxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTc1OUU5NDMxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFja0N1ZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zMjkyMyw2ICszMjkyOSw3IEBACiAJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNF
IC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVB
RjE0RTYxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxRkFGQkYxOTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0
aW9uQnViYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAg
LyogVmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTNBM0VBMTVGRjQ4
NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNDM2Miw2ICszNDM2OSw3IEBACiAJCQkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8qIFVz
ZXJNZXNzYWdlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0U2ODM0NDE5MjE0M0E4
MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05h
bWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQyRTIg
LyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4
OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFn
ZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4IC8q
IFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFVUVHlwZUl0ZW0gewor
ICAgIFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVudGlm
aWVyOworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitXRUJDT1JF
X0VYUE9SVCB2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKworV0VCQ09SRV9FWFBPUlQgY29u
c3QgVmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK1dFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYm
KTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7CisgICAgZW5jb2Rl
ciA8PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8
PCB1dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxVVFR5cGVJdGVt
PiBVVFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxT
dHJpbmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFnQ2xhc3M7Cisg
ICAgZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlmaWVyOworICAg
IGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsKKyAgICBkZWNv
ZGVyID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRlbnRpZmllciwg
KnV0aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExMSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlVUVHlw
ZVJlY29yZFN3aXp6bGVyLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0
IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisKKyNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+Cisj
aW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
X19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZhY2UgVVRUeXBl
UmVjb3JkCisrIChudWxsYWJsZSBpbnN0YW5jZXR5cGUpdHlwZVJlY29yZFdpdGhUYWc6KE5TU3Ry
aW5nICopdGFnIG9mQ2xhc3M6KE5TU3RyaW5nICopdGFnQ2xhc3MgY29uZm9ybWluZ1RvSWRlbnRp
ZmllcjooTlNTdHJpbmcgKiljb25mb3Jtc1RvOworKyAoaW5zdGFuY2V0eXBlKWFsbG9jOworQHBy
b3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAZW5kCisKK19fYXR0cmli
dXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitAaW50ZXJmYWNlIFdlYlVUVHlwZVJlY29y
ZCA6IFVUVHlwZVJlY29yZAorLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWk7CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJVVFR5cGVSZWNvcmQgeworQHBhY2thZ2UKKyAgICBO
U1N0cmluZyAqX2lkZW50aWZpZXI7Cit9CitAc3ludGhlc2l6ZSBpZGVudGlmaWVyPV9pZGVudGlm
aWVyOworLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWkKK3sKKyAgICBfaWRlbnRp
ZmllciA9IGk7Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFZlY3Rv
cjxVVFR5cGVJdGVtPiYgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3I7CisgICAgcmV0dXJuIHZlY3Rv
cjsKK30KKworc3RhdGljIElNUCB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsID0gbmlsOworCitz
dGF0aWMgVVRUeXBlUmVjb3JkICp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKGlkIHNlbGYsIFNF
TCBzZWxlY3RvciwgTlNTdHJpbmcgKnRhZywgTlNTdHJpbmcgKnRhZ0NsYXNzLCBOU1N0cmluZyAq
aWRlbnRpZmllcikKK3sKKyAgICBmb3IgKGF1dG8mIHIgOiB2ZWN0b3JPZlVUVHlwZVJlY29yZHMo
KSkgeworICAgICAgICBpZiAoci50YWcgPT0gU3RyaW5nKHRhZykgJiYgci50YWdDbGFzcyA9PSBT
dHJpbmcodGFnQ2xhc3MpICYmIHIuaWRlbnRpZmllciA9PSBTdHJpbmcoaWRlbnRpZmllcikpIHsK
KyAgICAgICAgICAgIFdlYlVUVHlwZVJlY29yZCAqcmVjb3JkID0gW1dlYlVUVHlwZVJlY29yZCBh
bGxvY107CisgICAgICAgICAgICBbcmVjb3JkIHNldElkZW50aWZpZXI6ci51dGldOworICAgICAg
ICAgICAgcmV0dXJuIHJlY29yZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBXVEZMb2dBbHdheXMo
IlVua25vd24gVVRJOiAlcyAlcyAlc1xuIiwgU3RyaW5nKHRhZykudXRmOCgpLmRhdGEoKSwgU3Ry
aW5nKHRhZ0NsYXNzKS51dGY4KCkuZGF0YSgpLCBTdHJpbmcoaWRlbnRpZmllcikudXRmOCgpLmRh
dGEoKSk7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gd3Rm
Q2FsbElNUDxVVFR5cGVSZWNvcmQgKj4odHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCwgc2VsZiwg
c2VsZWN0b3IsIHRhZywgdGFnQ2xhc3MsIGlkZW50aWZpZXIpOworfQorCitjb25zdCBWZWN0b3I8
VVRUeXBlSXRlbT4mIGNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yID0gW10geworICAgICAgICBW
ZWN0b3I8VVRUeXBlSXRlbT4gdiA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxVVFR5cGVJdGVtPiB7
CisgICAgICAgICAgICB7ICJ2aWRlby9tcDQiX3MsICJwdWJsaWMubWltZS10eXBlIl9zLCBzdGF0
aWNfY2FzdDxjaGFyKj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9LAor
ICAgICAgICB9OworICAgICAgICBmb3IgKGF1dG8mIHIgOiB2KQorICAgICAgICAgICAgci51dGkg
PSBVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKHIudGFnQ2xhc3MuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSwgci50YWcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgci5pZGVudGlm
aWVyLmlzTnVsbCgpID8gbnVsbHB0ciA6IHIuaWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdl
dCgpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfSgpOworICAgIHJldHVybiB2ZWN0b3I7Cit9
CisKK3ZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmIHZlY3Rv
cikKK3sKKyAgICB2ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSA9IFdURk1vdmUodmVjdG9yKTsKK30K
Kwordm9pZCBzd2l6emxlVVRUeXBlUmVjb3JkKCkKK3sKKyAgICBNZXRob2QgdHlwZVJlY29yZFdp
dGhUYWdNZXRob2QgPSBjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNzKCJVVFR5cGVS
ZWNvcmQiKSwgQHNlbGVjdG9yKHR5cGVSZWNvcmRXaXRoVGFnOiBvZkNsYXNzOiBjb25mb3JtaW5n
VG9JZGVudGlmaWVyOikpOworICAgIHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwgPSBtZXRob2Rf
c2V0SW1wbGVtZW50YXRpb24odHlwZVJlY29yZFdpdGhUYWdNZXRob2QsIChJTVApdHlwZVJlY29y
ZFdpdGhUYWdPdmVycmlkZSk7Cit9CisKK307CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgJKHJldmlzaW9u
IDI1ODA3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxp
dGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBNSU1FVHlwZUZyb21VVEkoY28KIFN0cmluZyBNSU1FVHlwZUZyb21VVElUcmVlKGNvbnN0
IFN0cmluZyYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIFVUSUZyb21NSU1FVHlwZShjb25zdCBT
dHJpbmcmKTsKIGJvb2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcmKTsKK1dFQkNPUkVfRVhQ
T1JUIFN0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmlu
ZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0VVRJRnJvbU1JTUVUeXBlTWFwKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYpOwog
V0VCQ09SRV9FWFBPUlQgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGNyZWF0ZVVUSUZy
b21NSU1FVHlwZU1hcCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvVVRJVXRpbGl0aWVzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjEsNiArMTYxLDEyIEBAIGJvb2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcm
IFVUSSkKICAgICByZXR1cm4gVVRUeXBlSXNEZWNsYXJlZChVVEkuY3JlYXRlQ0ZTdHJpbmcoKS5n
ZXQoKSk7CiB9CiAKK1N0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNv
bnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkKK3sKKyAgICBh
dXRvIHUgPSBhZG9wdENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJGb3JUYWcodGFn
Q2xhc3MuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgdGFnLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCks
IGNvbmZvcm1pbmdUb1VUSS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgcmV0dXJuIFN0
cmluZyh1LmdldCgpKTsKK30KKwogc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhZGRpdGlv
bmFsTUlNRVR5cGVzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmlu
Zz4+IG1pbWVUeXBlcyA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1ODA3MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUwMSw2
ICs1NTAxLDExIEBAIFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlwZShjb24KIHsK
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KKworU3RyaW5nIEludGVybmFsczo6Z2V0VVRJ
RnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3Qg
U3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpCit7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9
CiAjZW5kaWYKIAogU3RyaW5nIEludGVybmFsczo6bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihj
b25zdCBTdHJpbmcmIGV4dGVuc2lvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAkod29ya2luZyBjb3B5KQpAQCAtOTQzLDYgKzk0Myw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcg
bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CiAKICAg
ICBTdHJpbmcgZ2V0VVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworICAg
IFN0cmluZyBnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmlu
ZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKICAgICBib29sIHN1cHBv
cnRzUGljdHVyZUluUGljdHVyZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCShyZXZpc2lvbiAyNTgwNzEpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTg1Myw2ICs4NTMsNyBAQCBlbnVtIENvbXBvc2l0
aW5nUG9saWN5IHsKICAgICBET01TdHJpbmcgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihET01T
dHJpbmcgZXh0ZW5zaW9uKTsKIAogICAgIERPTVN0cmluZyBnZXRVVElGcm9tTUlNRVR5cGUoRE9N
U3RyaW5nIG1pbWVUeXBlKTsKKyAgICBET01TdHJpbmcgZ2V0VVRJRnJvbVRhZyhET01TdHJpbmcg
dGFnQ2xhc3MsIERPTVN0cmluZyB0YWcsIERPTVN0cmluZyBjb25mb3JtaW5nVG9VVEkpOwogCiAg
ICAgYm9vbGVhbiBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIH07CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5tbQkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNiw0ICsxMDYsOSBA
QCBTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5cGUoY29uCiAgICAgcmV0dXJuIFVU
SUZyb21NSU1FVHlwZShtaW1lVHlwZSk7CiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZy
b21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0
cmluZyYgY29uZm9ybWluZ1RvVVRJKQoreworICAgIHJldHVybiBVVElGcm9tVGFnKHRhZ0NsYXNz
LCB0YWcsIGNvbmZvcm1pbmdUb1VUSSk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NTgxMDQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNz
IHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxl
cy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9VVFR5cGVS
ZWNvcmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VVRUeXBlSXRlbTo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VVRUeXBlSXRlbTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tOiBBZGRlZC4KKyAg
ICAgICAgKC1bV0tVVFR5cGVSZWNvcmQgc2V0SWRlbnRpZmllcjpdKToKKyAgICAgICAgKFdlYktp
dDo6dmVjdG9yT2ZVVFR5cGVSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6dHlwZVJlY29yZFdp
dGhUYWdPdmVycmlkZSk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRl
bSk6CisgICAgICAgIChXZWJLaXQ6OnNldFZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChX
ZWJLaXQ6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0wMy0wOCAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIENhbnZhcyBkcmF3aW5nIGNvbW1h
bmRzIGhhdmUgdG8gYmUgZmx1c2hlZCB0byB0aGUgR1BVUHJvY2VzcyBpbiBiYXRjaGVzCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2
aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVz
L2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTg0
OCw3ICs4NDgsNyBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKHJlcXVpcmUtYWxsCiAgICAg
ICAgIChleHRlbnNpb24gImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLm1hY2giKQotICAgICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNv
bS5hcHBsZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1h
bmFnZXIuY29udGVudC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFw
cGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiICJj
b20uYXBwbGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxlLm1v
YmlsZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAi
Y29tLmFwcGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20uYXBw
bGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgor
ICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lk
ZSIgImNvbS5hcHBsZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5lc2Vz
c2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2Uu
Y29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25vc3Rp
Y2QiICJjb20uYXBwbGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29tLmFw
cGxlLm1vYmlsZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZp
Y2VzIiAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiICJj
b20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFl
bW9uIiAiY29tLmFwcGxlLmxzZC5tYXBkYiIKIAogICAgICAgICAgICAgOzs7IEZJWE1FKDIwNzcx
Nik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3Mg
aXMgY29tcGxldGUKICAgICAgICAgICAgICJjb20uYXBwbGUuYWlycGxheS5hcHN5bmNjb250cm9s
bGVyLnhwYyIgImNvbS5hcHBsZS5hdWRpby5BVVJlbW90ZUlPU2VydmVyIiAiY29tLmFwcGxlLmF1
ZGlvLkF1ZGlvQ29tcG9uZW50UmVnaXN0cmFyIgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1
ODA3MSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDcgQEAgdm9pZCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZAogICAgIGVuY29kZXIgPDwgY3NzVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwOwogICAgIGVuY29kZXIgPDwgZm9jdXNSaW5nQ29sb3I7CiAgICAgZW5jb2RlciA8
PCBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKKyAgICBlbmNvZGVyIDw8IHZlY3Rvck9mVVRUeXBlSXRl
bTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC00OTMsNiArNDk0LDEyIEBAIGJv
b2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisgICAgT3B0aW9uYWw8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0
b3JPZlVUVHlwZUl0ZW07CisgICAgZGVjb2RlciA+PiB2ZWN0b3JPZlVUVHlwZUl0ZW07CisgICAg
aWYgKCF2ZWN0b3JPZlVUVHlwZUl0ZW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJh
bWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSA9IFdURk1vdmUoKnZlY3Rvck9mVVRUeXBlSXRlbSk7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjU4
MDcxKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVGhlbWVJT1MuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7
CkBAIC0yMjMsNiArMjI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
ewogICAgIFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAg
Y3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogICAgIFdlYkNvcmU6OkNvbG9yIGZvY3VzUmluZ0Nv
bG9yOwogICAgIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKKyAgICBWZWN0b3I8V2ViQ29y
ZTo6VVRUeXBlSXRlbT4gdmVjdG9yT2ZVVFR5cGVJdGVtOwogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzc2LDkgKzM3NiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKCFXZWJDb3Jl
OjpJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKSkgeworICAgIGlmICghV2ViQ29yZTo6
SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkgfHwgX0FYU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBzdGF0aWMgY29uc3QgY2hhciogc2VydmljZXNb
XSA9IHsKICAgICAgICAgICAgICJjb20uYXBwbGUubHNkLm9wZW4iLAorICAgICAgICAgICAgImNv
bS5hcHBsZS5sc2QubWFwZGIiLAogICAgICAgICAgICAgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQi
LAogICAgICAgICAgICAgImNvbS5hcHBsZS5pY29uc2VydmljZXMiLAogICAgICAgICAgICAgImNv
bS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIsCkBAIC00MjksOCArNDMwLDggQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgIHBhcmFtZXRlcnMuY3Nz
VmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVuZGVyVGhlbWVJT1M6OmNzc1ZhbHVlVG9TeXN0ZW1D
b2xvck1hcCgpOwogICAgIHBhcmFtZXRlcnMuZm9jdXNSaW5nQ29sb3IgPSBSZW5kZXJUaGVtZTo6
c2luZ2xldG9uKCkuZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KCkpOwogICAgIHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwgPSBsb2NhbGl6ZWREZXZp
Y2VNb2RlbCgpOworICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtID0gY3JlYXRlVmVj
dG9yT2ZVVFR5cGVJdGVtKCk7CiAjZW5kaWYKLQogICAgIAogICAgIC8vIEFsbG93IG1pY3JvcGhv
bmUgYWNjZXNzIGlmIGVpdGhlciBwcmVmZXJlbmNlIGlzIHNldCBiZWNhdXNlIFdlYlJUQyByZXF1
aXJlcyBtaWNyb3Bob25lIGFjY2Vzcy4KICAgICBib29sIG5lZWRXZWJQcm9jZXNzRXh0ZW5zaW9u
cyA9ICFtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkudXNlR1BVUHJvY2Vzc0Zvck1l
ZGlhKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjU4MDcxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEw
Myw3IEBACiAjaW1wb3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKICNpbXBvcnQgIldLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3RJT1MuaCIKICNpbXBvcnQgPFVJS2l0L1VJQWNjZXNzaWJpbGl0
eS5oPgorI2ltcG9ydCA8V2ViQ29yZS9VVFR5cGVSZWNvcmRTd2l6emxlci5oPgogI2ltcG9ydCA8
cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKQEAgLTI5Niw2ICsy
OTcsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAg
ICBfQ0ZQcmVmc1NldERpcmVjdE1vZGVFbmFibGVkKGZhbHNlKTsKICAgICB9CiAjZW5kaWYKKyAg
ICAgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBXZWJDb3JlOjpzd2l6emxlVVRU
eXBlUmVjb3JkKCk7CisgICAgV2ViQ29yZTo6c2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFdURk1vdmUo
cGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0pKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0Rh
dGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392963</attachid>
            <date>2020-03-08 11:22:16 -0700</date>
            <delta_ts>2020-03-08 11:49:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308112215.patch</filename>
            <type>text/plain</type>
            <size>24419</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTA4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRv
IFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJ
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VVRUeXBlSXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVUVHlwZUl0ZW06
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIu
bW06IEFkZGVkLgorICAgICAgICAoLVtXZWJVVFR5cGVSZWNvcmQgc2V0SWRlbnRpZmllcjpdKToK
KyAgICAgICAgKFdlYkNvcmU6OnZlY3Rvck9mVVRUeXBlUmVjb3Jkcyk6CisgICAgICAgIChXZWJD
b3JlOjp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRWZWN0b3JPZlVUVHlw
ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c3dpenpsZVVUVHlwZVJlY29yZCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpn
ZXRVVElGcm9tVGFnKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMt
MDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYW52YXMgZHJhd2luZyBjb21tYW5kcyBoYXZlIHRvIGJlIGZsdXNoZWQgdG8gdGhlIEdQVVBy
b2Nlc3MgaW4gYmF0Y2hlcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00
ODM5LDYgKzQ4MzksOCBAQAogCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVL
ZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJD
MjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87
IH07CiAJCUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIx
MTMxNDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovOyB9OworCQlFM0NBQUE2
MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTVFMjQxNTVFRjIwMENFRDJF
MiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUUzQ0FBQTYyMjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5cGVS
ZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQ0FBQTYwMjQxNTVFRjMwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5t
bSAqLzsgfTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNo
ZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNj
cmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFM0ZBMzg2NDFENzE4MTJEMDBBQTU5NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGQTM4NjEx
RDcxNkU3NjAwQUE1OTUwIC8qIFBlbmRpbmdTY3JpcHRDbGllbnQuaCAqLzsgfTsKIAkJRTQwMUMy
NzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMw
MEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MjAyLDYgKzE1MjA0LDggQEAKIAkJ
RTNCRjE5RTcyMkFGMzA5RjAwOUM5OTI2IC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01K
SVRDaGVja0RPTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5QUVDOTIxMTMx
NDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01pY3JvdGFza0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUNvbnN0YW50cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNTFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzMTIyLDYgKzIzMTI2LDggQEAKIAkJCQkzMTBENzE5NDFCMzM1QzlE
MDA5QzdCNzMgLyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQwMDlDN0I3
MyAvKiBUaGVtZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQwNiAvKiBV
c2VyQWdlbnRDb2NvYS5tbSAqLywKKwkJCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyogVVRU
eXBlUmVjb3JkU3dpenpsZXIuaCAqLywKKwkJCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8sCiAJCQkJNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUz
IC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJNTJENUExQTQxQzU3
NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8sCiAJCQkJNTJENUExQTUx
QzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8s
CkBAIC0zMjkzNCw2ICszMjk0MCw3IEBACiAJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8q
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRjE0
RTYxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
RkFGQkYxOTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9u
QnViYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTNBM0VBMTVGRjQ4NDEw
MDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
NDM3NCw2ICszNDM4MSw3IEBACiAJCQkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJN
ZXNzYWdlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0U2ODM0NDE5MjE0M0E4MDBG
NEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVz
cGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4IC8qIFZp
ZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFVUVHlwZUl0ZW0geworICAg
IFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVudGlmaWVy
OworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitXRUJDT1JFX0VY
UE9SVCB2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKworV0VCQ09SRV9FWFBPUlQgY29uc3Qg
VmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK1dFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmKTsK
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7CisgICAgZW5jb2RlciA8
PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCB1
dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxVVFR5cGVJdGVtPiBV
VFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTdHJp
bmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFnQ2xhc3M7CisgICAg
ZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlmaWVyOworICAgIGRl
Y29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsKKyAgICBkZWNvZGVy
ID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRlbnRpZmllciwgKnV0
aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDExMSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlVUVHlwZVJl
Y29yZFN3aXp6bGVyLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0IDxN
b2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisKKyNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CisjaW1w
b3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworX19h
dHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZhY2UgVVRUeXBlUmVj
b3JkCisrIChudWxsYWJsZSBpbnN0YW5jZXR5cGUpdHlwZVJlY29yZFdpdGhUYWc6KE5TU3RyaW5n
ICopdGFnIG9mQ2xhc3M6KE5TU3RyaW5nICopdGFnQ2xhc3MgY29uZm9ybWluZ1RvSWRlbnRpZmll
cjooTlNTdHJpbmcgKiljb25mb3Jtc1RvOworKyAoaW5zdGFuY2V0eXBlKWFsbG9jOworQHByb3Bl
cnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAZW5kCisKK19fYXR0cmlidXRl
X18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitAaW50ZXJmYWNlIFdlYlVUVHlwZVJlY29yZCA6
IFVUVHlwZVJlY29yZAorLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWk7CitAZW5k
CisKK0BpbXBsZW1lbnRhdGlvbiBXZWJVVFR5cGVSZWNvcmQgeworQHBhY2thZ2UKKyAgICBOU1N0
cmluZyAqX2lkZW50aWZpZXI7Cit9CitAc3ludGhlc2l6ZSBpZGVudGlmaWVyPV9pZGVudGlmaWVy
OworLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWkKK3sKKyAgICBfaWRlbnRpZmll
ciA9IGk7Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFZlY3RvcjxV
VFR5cGVJdGVtPiYgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3I7CisgICAgcmV0dXJuIHZlY3RvcjsK
K30KKworc3RhdGljIElNUCB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsID0gbmlsOworCitzdGF0
aWMgVVRUeXBlUmVjb3JkICp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKGlkIHNlbGYsIFNFTCBz
ZWxlY3RvciwgTlNTdHJpbmcgKnRhZywgTlNTdHJpbmcgKnRhZ0NsYXNzLCBOU1N0cmluZyAqaWRl
bnRpZmllcikKK3sKKyAgICBmb3IgKGF1dG8mIHIgOiB2ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSkg
eworICAgICAgICBpZiAoci50YWcgPT0gU3RyaW5nKHRhZykgJiYgci50YWdDbGFzcyA9PSBTdHJp
bmcodGFnQ2xhc3MpICYmIHIuaWRlbnRpZmllciA9PSBTdHJpbmcoaWRlbnRpZmllcikpIHsKKyAg
ICAgICAgICAgIFdlYlVUVHlwZVJlY29yZCAqcmVjb3JkID0gW1dlYlVUVHlwZVJlY29yZCBhbGxv
Y107CisgICAgICAgICAgICBbcmVjb3JkIHNldElkZW50aWZpZXI6ci51dGldOworICAgICAgICAg
ICAgcmV0dXJuIHJlY29yZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBXVEZMb2dBbHdheXMoIlVu
a25vd24gVVRJOiAlcyAlcyAlc1xuIiwgU3RyaW5nKHRhZykudXRmOCgpLmRhdGEoKSwgU3RyaW5n
KHRhZ0NsYXNzKS51dGY4KCkuZGF0YSgpLCBTdHJpbmcoaWRlbnRpZmllcikudXRmOCgpLmRhdGEo
KSk7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gd3RmQ2Fs
bElNUDxVVFR5cGVSZWNvcmQgKj4odHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCwgc2VsZiwgc2Vs
ZWN0b3IsIHRhZywgdGFnQ2xhc3MsIGlkZW50aWZpZXIpOworfQorCitjb25zdCBWZWN0b3I8VVRU
eXBlSXRlbT4mIGNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yID0gW10geworICAgICAgICBWZWN0
b3I8VVRUeXBlSXRlbT4gdiA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxVVFR5cGVJdGVtPiB7Cisg
ICAgICAgICAgICB7ICJ2aWRlby9tcDQiX3MsICJwdWJsaWMubWltZS10eXBlIl9zLCBzdGF0aWNf
Y2FzdDxjaGFyKj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9LAorICAg
ICAgICB9OworICAgICAgICBmb3IgKGF1dG8mIHIgOiB2KQorICAgICAgICAgICAgci51dGkgPSBV
VFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKHIudGFnQ2xhc3MuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSwgci50YWcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgci5pZGVudGlmaWVy
LmlzTnVsbCgpID8gbnVsbHB0ciA6IHIuaWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgp
KTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfSgpOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisK
K3ZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmIHZlY3RvcikK
K3sKKyAgICB2ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSA9IFdURk1vdmUodmVjdG9yKTsKK30KKwor
dm9pZCBzd2l6emxlVVRUeXBlUmVjb3JkKCkKK3sKKyAgICBNZXRob2QgdHlwZVJlY29yZFdpdGhU
YWdNZXRob2QgPSBjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNzKCJVVFR5cGVSZWNv
cmQiKSwgQHNlbGVjdG9yKHR5cGVSZWNvcmRXaXRoVGFnOiBvZkNsYXNzOiBjb25mb3JtaW5nVG9J
ZGVudGlmaWVyOikpOworICAgIHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwgPSBtZXRob2Rfc2V0
SW1wbGVtZW50YXRpb24odHlwZVJlY29yZFdpdGhUYWdNZXRob2QsIChJTVApdHlwZVJlY29yZFdp
dGhUYWdPdmVycmlkZSk7Cit9CisKK307CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgJKHJldmlzaW9uIDI1
ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGll
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBNSU1FVHlwZUZyb21VVEkoY28KIFN0cmluZyBNSU1FVHlwZUZyb21VVElUcmVlKGNvbnN0IFN0
cmluZyYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIFVUSUZyb21NSU1FVHlwZShjb25zdCBTdHJp
bmcmKTsKIGJvb2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcmKTsKK1dFQkNPUkVfRVhQT1JU
IFN0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYg
dGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0VVRJRnJvbU1JTUVUeXBlTWFwKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYpOwogV0VC
Q09SRV9FWFBPUlQgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGNyZWF0ZVVUSUZyb21N
SU1FVHlwZU1hcCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
VVRJVXRpbGl0aWVzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjEsNiArMTYxLDEyIEBAIGJvb2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcmIFVU
SSkKICAgICByZXR1cm4gVVRUeXBlSXNEZWNsYXJlZChVVEkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQo
KSk7CiB9CiAKK1N0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0
IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkKK3sKKyAgICBhdXRv
IHUgPSBhZG9wdENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJGb3JUYWcodGFnQ2xh
c3MuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgdGFnLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGNv
bmZvcm1pbmdUb1VUSS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgcmV0dXJuIFN0cmlu
Zyh1LmdldCgpKTsKK30KKwogc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhZGRpdGlvbmFs
TUlNRVR5cGVzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+
IG1pbWVUeXBlcyA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUwMSw2ICs1
NTAxLDExIEBAIFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlwZShjb24KIHsKICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KKworU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJv
bVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3Ry
aW5nJiBjb25mb3JtaW5nVG9VVEkpCit7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CiAj
ZW5kaWYKIAogU3RyaW5nIEludGVybmFsczo6bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25z
dCBTdHJpbmcmIGV4dGVuc2lvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAko
cmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAko
d29ya2luZyBjb3B5KQpAQCAtOTQzLDYgKzk0Myw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbWVk
aWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CiAKICAgICBT
dHJpbmcgZ2V0VVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworICAgIFN0
cmluZyBnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYg
dGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKICAgICBib29sIHN1cHBvcnRz
UGljdHVyZUluUGljdHVyZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTg1Myw2ICs4NTMsNyBAQCBlbnVtIENvbXBvc2l0aW5n
UG9saWN5IHsKICAgICBET01TdHJpbmcgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihET01TdHJp
bmcgZXh0ZW5zaW9uKTsKIAogICAgIERPTVN0cmluZyBnZXRVVElGcm9tTUlNRVR5cGUoRE9NU3Ry
aW5nIG1pbWVUeXBlKTsKKyAgICBET01TdHJpbmcgZ2V0VVRJRnJvbVRhZyhET01TdHJpbmcgdGFn
Q2xhc3MsIERPTVN0cmluZyB0YWcsIERPTVN0cmluZyBjb25mb3JtaW5nVG9VVEkpOwogCiAgICAg
Ym9vbGVhbiBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNiw0ICsxMDYsOSBAQCBT
dHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5cGUoY29uCiAgICAgcmV0dXJuIFVUSUZy
b21NSU1FVHlwZShtaW1lVHlwZSk7CiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21U
YWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmlu
ZyYgY29uZm9ybWluZ1RvVVRJKQoreworICAgIHJldHVybiBVVElGcm9tVGFnKHRhZ0NsYXNzLCB0
YWcsIGNvbmZvcm1pbmdUb1VUSSk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgx
MDcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDMxIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4K
KworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNo
b3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9p
b3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9VVFR5cGVSZWNv
cmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VVRUeXBlSXRlbTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VVRUeXBlSXRlbTo6ZGVjb2RlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tOiBBZGRlZC4KKyAgICAg
ICAgKC1bV0tVVFR5cGVSZWNvcmQgc2V0SWRlbnRpZmllcjpdKToKKyAgICAgICAgKFdlYktpdDo6
dmVjdG9yT2ZVVFR5cGVSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6dHlwZVJlY29yZFdpdGhU
YWdPdmVycmlkZSk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSk6
CisgICAgICAgIChXZWJLaXQ6OnNldFZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0wMy0wOCAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gTnVsbC1kZXJlZmVyZW5jZSBjcmFzaCBpbiBH
UFVQcm9jZXNzUHJveHk6Om9wZW5HUFVQcm9jZXNzQ29ubmVjdGlvbigpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2Vi
Q29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU4
MTA3KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTg0OCw3ICs4NDgs
NyBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKHJlcXVpcmUtYWxsCiAgICAgICAgIChleHRl
bnNpb24gImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLm1hY2giKQotICAgICAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNvbS5hcHBsZS50
Y2NkIiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29u
dGVudC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNv
bnRlbnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiICJjb20uYXBwbGUu
bHNkLm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0
ZC52MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAiY29tLmFwcGxl
Lmljb25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20uYXBwbGUuUG93ZXJN
YW5hZ2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgorICAgICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNvbS5h
cHBsZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFn
ZXIuY29udGVudC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxl
LldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiICJjb20u
YXBwbGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxlLm1vYmls
ZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAiY29t
LmFwcGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20uYXBwbGUu
UG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiAiY29t
LmFwcGxlLmxzZC5tYXBkYiIKIAogICAgICAgICAgICAgOzs7IEZJWE1FKDIwNzcxNik6IFRoZSBm
b2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxl
dGUKICAgICAgICAgICAgICJjb20uYXBwbGUuYWlycGxheS5hcHN5bmNjb250cm9sbGVyLnhwYyIg
ImNvbS5hcHBsZS5hdWRpby5BVVJlbW90ZUlPU2VydmVyIiAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlv
Q29tcG9uZW50UmVnaXN0cmFyIgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1ODEwNykKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZAogICAgIGVuY29kZXIgPDwgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFw
OwogICAgIGVuY29kZXIgPDwgZm9jdXNSaW5nQ29sb3I7CiAgICAgZW5jb2RlciA8PCBsb2NhbGl6
ZWREZXZpY2VNb2RlbDsKKyAgICBlbmNvZGVyIDw8IHZlY3Rvck9mVVRUeXBlSXRlbTsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC00OTMsNiArNDk0LDEyIEBAIGJvb2wgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgT3B0aW9uYWw8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3JPZlVUVHlw
ZUl0ZW07CisgICAgZGVjb2RlciA+PiB2ZWN0b3JPZlVUVHlwZUl0ZW07CisgICAgaWYgKCF2ZWN0
b3JPZlVUVHlwZUl0ZW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLnZl
Y3Rvck9mVVRUeXBlSXRlbSA9IFdURk1vdmUoKnZlY3Rvck9mVVRUeXBlSXRlbSk7CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjU4MTA3KQorKysg
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
I2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVGhlbWVJT1MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VU
VHlwZVJlY29yZFN3aXp6bGVyLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0yMjMs
NiArMjI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFdl
YkNvcmU6OlJlbmRlclRoZW1lSU9TOjpDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAgY3NzVmFsdWVU
b1N5c3RlbUNvbG9yTWFwOwogICAgIFdlYkNvcmU6OkNvbG9yIGZvY3VzUmluZ0NvbG9yOwogICAg
IFN0cmluZyBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKKyAgICBWZWN0b3I8V2ViQ29yZTo6VVRUeXBl
SXRlbT4gdmVjdG9yT2ZVVFR5cGVJdGVtOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzc2LDkg
KzM3NiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBs
aWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKSkgeworICAgIGlmICghV2ViQ29yZTo6SU9TQXBwbGlj
YXRpb246OmlzTW9iaWxlU2FmYXJpKCkgfHwgX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkgewogICAgICAgICBzdGF0aWMgY29uc3QgY2hhciogc2VydmljZXNbXSA9IHsKICAg
ICAgICAgICAgICJjb20uYXBwbGUubHNkLm9wZW4iLAorICAgICAgICAgICAgImNvbS5hcHBsZS5s
c2QubWFwZGIiLAogICAgICAgICAgICAgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQiLAogICAgICAg
ICAgICAgImNvbS5hcHBsZS5pY29uc2VydmljZXMiLAogICAgICAgICAgICAgImNvbS5hcHBsZS5Q
b3dlck1hbmFnZW1lbnQuY29udHJvbCIsCkBAIC00MjksOCArNDMwLDggQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgIHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5
c3RlbUNvbG9yTWFwID0gUmVuZGVyVGhlbWVJT1M6OmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgp
OwogICAgIHBhcmFtZXRlcnMuZm9jdXNSaW5nQ29sb3IgPSBSZW5kZXJUaGVtZTo6c2luZ2xldG9u
KCkuZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KCkpOwogICAg
IHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwgPSBsb2NhbGl6ZWREZXZpY2VNb2RlbCgp
OworICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtID0gY3JlYXRlVmVjdG9yT2ZVVFR5
cGVJdGVtKCk7CiAjZW5kaWYKLQogICAgIAogICAgIC8vIEFsbG93IG1pY3JvcGhvbmUgYWNjZXNz
IGlmIGVpdGhlciBwcmVmZXJlbmNlIGlzIHNldCBiZWNhdXNlIFdlYlJUQyByZXF1aXJlcyBtaWNy
b3Bob25lIGFjY2Vzcy4KICAgICBib29sIG5lZWRXZWJQcm9jZXNzRXh0ZW5zaW9ucyA9ICFtX2Rl
ZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMyw3IEBACiAj
aW1wb3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3RJT1MuaCIKICNpbXBvcnQgPFVJS2l0L1VJQWNjZXNzaWJpbGl0eS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9VVFR5cGVSZWNvcmRTd2l6emxlci5oPgogI2ltcG9ydCA8cGFsL3NwaS9p
b3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKQEAgLTI5Niw2ICsyOTcsMTEgQEAg
dm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAgICBfQ0ZQcmVm
c1NldERpcmVjdE1vZGVFbmFibGVkKGZhbHNlKTsKICAgICB9CiAjZW5kaWYKKyAgICAgICAgCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBXZWJDb3JlOjpzd2l6emxlVVRUeXBlUmVjb3Jk
KCk7CisgICAgV2ViQ29yZTo6c2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFdURk1vdmUocGFyYW1ldGVy
cy52ZWN0b3JPZlVUVHlwZUl0ZW0pKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBs
YXRmb3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392964</attachid>
            <date>2020-03-08 11:49:26 -0700</date>
            <delta_ts>2020-03-08 12:00:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308114925.patch</filename>
            <type>text/plain</type>
            <size>24660</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTA4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRv
IFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJ
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VVRUeXBlSXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVUVHlwZUl0ZW06
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIu
bW06IEFkZGVkLgorICAgICAgICAoLVtXZWJVVFR5cGVSZWNvcmQgc2V0SWRlbnRpZmllcjpdKToK
KyAgICAgICAgKFdlYkNvcmU6OnZlY3Rvck9mVVRUeXBlUmVjb3Jkcyk6CisgICAgICAgIChXZWJD
b3JlOjp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRWZWN0b3JPZlVUVHlw
ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c3dpenpsZVVUVHlwZVJlY29yZCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpn
ZXRVVElGcm9tVGFnKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMt
MDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYW52YXMgZHJhd2luZyBjb21tYW5kcyBoYXZlIHRvIGJlIGZsdXNoZWQgdG8gdGhlIEdQVVBy
b2Nlc3MgaW4gYmF0Y2hlcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00
ODM5LDYgKzQ4MzksOCBAQAogCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVL
ZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJD
MjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87
IH07CiAJCUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIx
MTMxNDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovOyB9OworCQlFM0NBQUE2
MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTVFMjQxNTVFRjIwMENFRDJF
MiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUUzQ0FBQTYyMjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5cGVS
ZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQ0FBQTYwMjQxNTVFRjMwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5t
bSAqLzsgfTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNo
ZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNj
cmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFM0ZBMzg2NDFENzE4MTJEMDBBQTU5NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGQTM4NjEx
RDcxNkU3NjAwQUE1OTUwIC8qIFBlbmRpbmdTY3JpcHRDbGllbnQuaCAqLzsgfTsKIAkJRTQwMUMy
NzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMw
MEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MjAyLDYgKzE1MjA0LDggQEAKIAkJ
RTNCRjE5RTcyMkFGMzA5RjAwOUM5OTI2IC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01K
SVRDaGVja0RPTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5QUVDOTIxMTMx
NDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01pY3JvdGFza0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUNvbnN0YW50cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNTFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzMTIyLDYgKzIzMTI2LDggQEAKIAkJCQkzMTBENzE5NDFCMzM1QzlE
MDA5QzdCNzMgLyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQwMDlDN0I3
MyAvKiBUaGVtZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQwNiAvKiBV
c2VyQWdlbnRDb2NvYS5tbSAqLywKKwkJCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyogVVRU
eXBlUmVjb3JkU3dpenpsZXIuaCAqLywKKwkJCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8sCiAJCQkJNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUz
IC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJNTJENUExQTQxQzU3
NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8sCiAJCQkJNTJENUExQTUx
QzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8s
CkBAIC0zMjkzNCw2ICszMjk0MCw3IEBACiAJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8q
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRjE0
RTYxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
RkFGQkYxOTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9u
QnViYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTNBM0VBMTVGRjQ4NDEw
MDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
NDM3NCw2ICszNDM4MSw3IEBACiAJCQkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJN
ZXNzYWdlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0U2ODM0NDE5MjE0M0E4MDBG
NEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVz
cGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4IC8qIFZp
ZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFVUVHlwZUl0ZW0geworICAg
IFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVudGlmaWVy
OworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitXRUJDT1JFX0VY
UE9SVCB2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKworV0VCQ09SRV9FWFBPUlQgY29uc3Qg
VmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK1dFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmKTsK
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7CisgICAgZW5jb2RlciA8
PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCB1
dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxVVFR5cGVJdGVtPiBV
VFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTdHJp
bmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFnQ2xhc3M7CisgICAg
ZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlmaWVyOworICAgIGRl
Y29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsKKyAgICBkZWNvZGVy
ID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRlbnRpZmllciwgKnV0
aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEyMyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlVUVHlwZVJl
Y29yZFN3aXp6bGVyLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0IDxN
b2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisKKyNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CisjaW1w
b3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPENvcmVTZXJ2aWNlcy9MU1Byb3Bl
cnR5TGlzdFByaXYuaD4KKyNpbXBvcnQgPENvcmVTZXJ2aWNlcy9VVFR5cGVSZWNvcmRQcml2Lmg+
CisKKyNlbHNlCisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitAaW50
ZXJmYWNlIExTUmVjb3JkIDogTlNPYmplY3QgPE5TQ29weWluZywgTlNEaXNjYXJkYWJsZUNvbnRl
bnQ+CitAZW5kCisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitAaW50
ZXJmYWNlIFVUVHlwZVJlY29yZCA6IExTUmVjb3JkCisrIChudWxsYWJsZSBpbnN0YW5jZXR5cGUp
dHlwZVJlY29yZFdpdGhUYWc6KE5TU3RyaW5nICopdGFnIG9mQ2xhc3M6KE5TU3RyaW5nICopdGFn
Q2xhc3MgY29uZm9ybWluZ1RvSWRlbnRpZmllcjooTlNTdHJpbmcgKiljb25mb3Jtc1RvOworQHBy
b3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAZW5kCisKKyNlbmRpZgor
CitfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorQGludGVyZmFjZSBXZWJV
VFR5cGVSZWNvcmQgOiBVVFR5cGVSZWNvcmQKKy0gKHZvaWQpc2V0SWRlbnRpZmllcjooTlNTdHJp
bmcgKilpOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViVVRUeXBlUmVjb3JkIHsKK0BwYWNr
YWdlCisgICAgTlNTdHJpbmcgKl9pZGVudGlmaWVyOworfQorQHN5bnRoZXNpemUgaWRlbnRpZmll
cj1faWRlbnRpZmllcjsKKy0gKHZvaWQpc2V0SWRlbnRpZmllcjooTlNTdHJpbmcgKilpCit7Cisg
ICAgX2lkZW50aWZpZXIgPSBpOworfQorQGVuZAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
YXRpYyBWZWN0b3I8VVRUeXBlSXRlbT4mIHZlY3Rvck9mVVRUeXBlUmVjb3JkcygpCit7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yOworICAgIHJl
dHVybiB2ZWN0b3I7Cit9CisKK3N0YXRpYyBJTVAgdHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCA9
IG5pbDsKKworc3RhdGljIFVUVHlwZVJlY29yZCAqdHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZShp
ZCBzZWxmLCBTRUwgc2VsZWN0b3IsIE5TU3RyaW5nICp0YWcsIE5TU3RyaW5nICp0YWdDbGFzcywg
TlNTdHJpbmcgKmlkZW50aWZpZXIpCit7CisgICAgZm9yIChhdXRvJiByIDogdmVjdG9yT2ZVVFR5
cGVSZWNvcmRzKCkpIHsKKyAgICAgICAgaWYgKHIudGFnID09IFN0cmluZyh0YWcpICYmIHIudGFn
Q2xhc3MgPT0gU3RyaW5nKHRhZ0NsYXNzKSAmJiByLmlkZW50aWZpZXIgPT0gU3RyaW5nKGlkZW50
aWZpZXIpKSB7CisgICAgICAgICAgICBXZWJVVFR5cGVSZWNvcmQgKnJlY29yZCA9IFtXZWJVVFR5
cGVSZWNvcmQgYWxsb2NdOworICAgICAgICAgICAgW3JlY29yZCBzZXRJZGVudGlmaWVyOnIudXRp
XTsKKyAgICAgICAgICAgIHJldHVybiByZWNvcmQ7CisgICAgICAgIH0KKyAgICB9CisgICAgV1RG
TG9nQWx3YXlzKCJVbmtub3duIFVUSTogJXMgJXMgJXNcbiIsIFN0cmluZyh0YWcpLnV0ZjgoKS5k
YXRhKCksIFN0cmluZyh0YWdDbGFzcykudXRmOCgpLmRhdGEoKSwgU3RyaW5nKGlkZW50aWZpZXIp
LnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIHd0ZkNhbGxJTVA8VVRUeXBlUmVjb3JkICo+KHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2lu
YWwsIHNlbGYsIHNlbGVjdG9yLCB0YWcsIHRhZ0NsYXNzLCBpZGVudGlmaWVyKTsKK30KKworY29u
c3QgVmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8VVRUeXBlSXRlbT4+IHZlY3RvciA9IFtdIHsK
KyAgICAgICAgVmVjdG9yPFVUVHlwZUl0ZW0+IHYgPSBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VVRU
eXBlSXRlbT4geworICAgICAgICAgICAgeyAidmlkZW8vbXA0Il9zLCAicHVibGljLm1pbWUtdHlw
ZSJfcywgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpLCBzdGF0aWNfY2FzdDxjaGFyKj4obnVs
bHB0cikgfSwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChhdXRvJiByIDogdikKKyAgICAgICAg
ICAgIHIudXRpID0gVVRUeXBlQ3JlYXRlUHJlZmVycmVkSWRlbnRpZmllckZvclRhZyhyLnRhZ0Ns
YXNzLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIHIudGFnLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCks
IHIuaWRlbnRpZmllci5pc051bGwoKSA/IG51bGxwdHIgOiByLmlkZW50aWZpZXIuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSk7CisgICAgICAgIHJldHVybiB2OworICAgIH0oKTsKKyAgICByZXR1cm4g
dmVjdG9yOworfQorCit2b2lkIHNldFZlY3Rvck9mVVRUeXBlSXRlbShWZWN0b3I8VVRUeXBlSXRl
bT4mJiB2ZWN0b3IpCit7CisgICAgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkgPSBXVEZNb3ZlKHZl
Y3Rvcik7Cit9CisKK3ZvaWQgc3dpenpsZVVUVHlwZVJlY29yZCgpCit7CisgICAgTWV0aG9kIHR5
cGVSZWNvcmRXaXRoVGFnTWV0aG9kID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2Qob2JqY19nZXRDbGFz
cygiVVRUeXBlUmVjb3JkIiksIEBzZWxlY3Rvcih0eXBlUmVjb3JkV2l0aFRhZzogb2ZDbGFzczog
Y29uZm9ybWluZ1RvSWRlbnRpZmllcjopKTsKKyAgICB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFs
ID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHR5cGVSZWNvcmRXaXRoVGFnTWV0aG9kLCAoSU1Q
KXR5cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUpOworfQorCit9OworCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5o
CShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9VVElVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQCBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgTUlNRVR5cGVGcm9tVVRJKGNvCiBTdHJpbmcgTUlNRVR5cGVGcm9tVVRJ
VHJlZShjb25zdCBTdHJpbmcmKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBVVElGcm9tTUlNRVR5
cGUoY29uc3QgU3RyaW5nJik7CiBib29sIGlzRGVjbGFyZWRVVEkoY29uc3QgU3RyaW5nJik7CitX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgVVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBj
b25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpOwogCiBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFVUSUZyb21NSU1FVHlwZU1hcChIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiYmKTsKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBj
cmVhdGVVVElGcm9tTUlNRVR5cGVNYXAoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0JKHJldmlzaW9uIDI1ODEwNykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSwxMiBAQCBib29sIGlzRGVjbGFyZWRVVEkoY29u
c3QgU3RyaW5nJiBVVEkpCiAgICAgcmV0dXJuIFVUVHlwZUlzRGVjbGFyZWQoVVRJLmNyZWF0ZUNG
U3RyaW5nKCkuZ2V0KCkpOwogfQogCitTdHJpbmcgVVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRh
Z0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkp
Cit7CisgICAgYXV0byB1ID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVy
Rm9yVGFnKHRhZ0NsYXNzLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIHRhZy5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpLCBjb25mb3JtaW5nVG9VVEkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAg
IHJldHVybiBTdHJpbmcodS5nZXQoKSk7Cit9CisKIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYWRkaXRpb25hbE1JTUVUeXBlcygpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZl
Y3RvcjxTdHJpbmc+PiBtaW1lVHlwZXMgPSBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8U3RyaW5nPiB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyNTgxMDcp
CisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU1MDEsNiArNTUwMSwxMSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5
cGUoY29uCiB7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CisKK1N0cmluZyBJbnRlcm5h
bHM6OmdldFVUSUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0
YWcsIGNvbnN0IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKQoreworICAgIHJldHVybiBlbXB0eVN0
cmluZygpOworfQogI2VuZGlmCiAKIFN0cmluZyBJbnRlcm5hbHM6Om1lZGlhTUlNRVR5cGVGb3JF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0Myw2ICs5NDMsNyBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNp
b24pOwogCiAgICAgU3RyaW5nIGdldFVUSUZyb21NSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKTsKKyAgICBTdHJpbmcgZ2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBj
b25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpOwogCiAgICAg
Ym9vbCBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC04NTMsNiArODUzLDcgQEAgZW51
bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgRE9NU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRl
bnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiAKICAgICBET01TdHJpbmcgZ2V0VVRJRnJvbU1J
TUVUeXBlKERPTVN0cmluZyBtaW1lVHlwZSk7CisgICAgRE9NU3RyaW5nIGdldFVUSUZyb21UYWco
RE9NU3RyaW5nIHRhZ0NsYXNzLCBET01TdHJpbmcgdGFnLCBET01TdHJpbmcgY29uZm9ybWluZ1Rv
VVRJKTsKIAogICAgIGJvb2xlYW4gc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CiB9OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYs
NCArMTA2LDkgQEAgU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKGNvbgogICAg
IHJldHVybiBVVElGcm9tTUlNRVR5cGUobWltZVR5cGUpOwogfQogCitTdHJpbmcgSW50ZXJuYWxz
OjpnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFn
LCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkKK3sKKyAgICByZXR1cm4gVVRJRnJvbVRh
Zyh0YWdDbGFzcywgdGFnLCBjb25mb3JtaW5nVG9VVEkpOworfQorCiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wMy0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFwcGluZyB0byBVVEkgZnJvbSB0YWcgYW5k
IHRhZyBjbGFzcyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFJlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYjoKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVUVHlw
ZUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVUVHlwZUl0ZW06OmRlY29k
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbTog
QWRkZWQuCisgICAgICAgICgtW1dLVVRUeXBlUmVjb3JkIHNldElkZW50aWZpZXI6XSk6CisgICAg
ICAgIChXZWJLaXQ6OnZlY3Rvck9mVVRUeXBlUmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6OnR5
cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUpOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVWZWN0b3JP
ZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpzZXRWZWN0b3JPZlVUVHlwZUl0ZW0pOgor
ICAgICAgICAoV2ViS2l0Ojpzd2l6emxlVVRUeXBlUmVjb3JkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDMtMDggIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIE51bGwtZGVyZWZlcmVu
Y2UgY3Jhc2ggaW4gR1BVUHJvY2Vzc1Byb3h5OjpvcGVuR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKQpJ
bmRleDogU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBw
bGUuV2ViS2l0LldlYkNvbnRlbnQuc2IKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJ
KHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9m
aWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCSh3b3JraW5nIGNvcHkpCkBA
IC04NDgsNyArODQ4LDcgQEAKIChhbGxvdyBtYWNoLWxvb2t1cAogICAgIChyZXF1aXJlLWFsbAog
ICAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNoIikKLSAg
ICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuaXBob25lLmF4c2VydmVyLXN5c3RlbXdpZGUi
ICJjb20uYXBwbGUudGNjZCIgImNvbS5hcHBsZS5uZWhlbHBlciIgImNvbS5hcHBsZS5uZXNlc3Np
b25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIiAiY29tLmFwcGxlLnVpa2l0LnZpZXdzZXJ2aWNlLmNv
bS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90ZVVJIiAiY29tLmFwcGxlLmRpYWdub3N0aWNk
IiAiY29tLmFwcGxlLmxzZC5vcGVuIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCIgImNvbS5hcHBs
ZS5tb2JpbGVhc3NldGQudjIiICJjb20uYXBwbGUuZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2aWNl
cyIgImNvbS5hcHBsZS5pY29uc2VydmljZXMiICJjb20uYXBwbGUud2ViaW5zcGVjdG9yIiAiY29t
LmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIiAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1v
biIKKyAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuaXBob25lLmF4c2VydmVyLXN5c3Rl
bXdpZGUiICJjb20uYXBwbGUudGNjZCIgImNvbS5hcHBsZS5uZWhlbHBlciIgImNvbS5hcHBsZS5u
ZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIiAiY29tLmFwcGxlLnVpa2l0LnZpZXdzZXJ2
aWNlLmNvbS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90ZVVJIiAiY29tLmFwcGxlLmRpYWdu
b3N0aWNkIiAiY29tLmFwcGxlLmxzZC5vcGVuIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCIgImNv
bS5hcHBsZS5tb2JpbGVhc3NldGQudjIiICJjb20uYXBwbGUuZnJvbnRib2FyZC5zeXN0ZW1hcHBz
ZXJ2aWNlcyIgImNvbS5hcHBsZS5pY29uc2VydmljZXMiICJjb20uYXBwbGUud2ViaW5zcGVjdG9y
IiAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIiAiY29tLmFwcGxlLmNmcHJlZnNk
LmRhZW1vbiIgImNvbS5hcHBsZS5sc2QubWFwZGIiCiAKICAgICAgICAgICAgIDs7OyBGSVhNRSgy
MDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIEdQVSBwcm9j
ZXNzIGlzIGNvbXBsZXRlCiAgICAgICAgICAgICAiY29tLmFwcGxlLmFpcnBsYXkuYXBzeW5jY29u
dHJvbGxlci54cGMiICJjb20uYXBwbGUuYXVkaW8uQVVSZW1vdGVJT1NlcnZlciIgImNvbS5hcHBs
ZS5hdWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lv
biAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgwLDYgKzE4MCw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICAgICBlbmNvZGVyIDw8IGNzc1ZhbHVlVG9T
eXN0ZW1Db2xvck1hcDsKICAgICBlbmNvZGVyIDw8IGZvY3VzUmluZ0NvbG9yOwogICAgIGVuY29k
ZXIgPDwgbG9jYWxpemVkRGV2aWNlTW9kZWw7CisgICAgZW5jb2RlciA8PCB2ZWN0b3JPZlVUVHlw
ZUl0ZW07CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNDkzLDYgKzQ5NCwxMiBA
QCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgCiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIE9wdGlvbmFsPFZlY3RvcjxVVFR5cGVJdGVtPj4g
dmVjdG9yT2ZVVFR5cGVJdGVtOworICAgIGRlY29kZXIgPj4gdmVjdG9yT2ZVVFR5cGVJdGVtOwor
ICAgIGlmICghdmVjdG9yT2ZVVFR5cGVJdGVtKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0gPSBXVEZNb3ZlKCp2ZWN0b3JPZlVUVHlwZUl0
ZW0pOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9u
IDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lSU9TLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9VVFR5cGVSZWNvcmRTd2l6emxlci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBB
UEkgewpAQCAtMjIzLDYgKzIyNCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzIHsKICAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6Q1NTVmFsdWVUb1N5c3RlbUNvbG9y
TWFwIGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICAgICBXZWJDb3JlOjpDb2xvciBmb2N1c1Jp
bmdDb2xvcjsKICAgICBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTW9kZWw7CisgICAgVmVjdG9yPFdl
YkNvcmU6OlVUVHlwZUl0ZW0+IHZlY3Rvck9mVVRUeXBlSXRlbTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTM3Niw5ICszNzYsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplVwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmICghV2Vi
Q29yZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkpIHsKKyAgICBpZiAoIVdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpIHx8IF9BWFNBcHBsaWNhdGlvbkFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZp
Y2VzW10gPSB7CiAgICAgICAgICAgICAiY29tLmFwcGxlLmxzZC5vcGVuIiwKKyAgICAgICAgICAg
ICJjb20uYXBwbGUubHNkLm1hcGRiIiwKICAgICAgICAgICAgICJjb20uYXBwbGUubW9iaWxlYXNz
ZXRkIiwKICAgICAgICAgICAgICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiwKICAgICAgICAgICAg
ICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiLApAQCAtNDI5LDggKzQzMCw4IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICBwYXJhbWV0ZXJz
LmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IFJlbmRlclRoZW1lSU9TOjpjc3NWYWx1ZVRvU3lz
dGVtQ29sb3JNYXAoKTsKICAgICBwYXJhbWV0ZXJzLmZvY3VzUmluZ0NvbG9yID0gUmVuZGVyVGhl
bWU6OnNpbmdsZXRvbigpLmZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPigpKTsKICAgICBwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsID0gbG9jYWxpemVk
RGV2aWNlTW9kZWwoKTsKKyAgICBwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSA9IGNyZWF0
ZVZlY3Rvck9mVVRUeXBlSXRlbSgpOwogI2VuZGlmCi0KICAgICAKICAgICAvLyBBbGxvdyBtaWNy
b3Bob25lIGFjY2VzcyBpZiBlaXRoZXIgcHJlZmVyZW5jZSBpcyBzZXQgYmVjYXVzZSBXZWJSVEMg
cmVxdWlyZXMgbWljcm9waG9uZSBhY2Nlc3MuCiAgICAgYm9vbCBuZWVkV2ViUHJvY2Vzc0V4dGVu
c2lvbnMgPSAhbV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NG
b3JNZWRpYSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2
ICsxMDMsNyBAQAogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0SU9TLmgiCiAjaW1wb3J0IDxVSUtpdC9VSUFjY2Vzc2li
aWxpdHkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KICNpbXBv
cnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNlbmRpZgogCkBAIC0yOTYs
NiArMjk3LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAg
ICAgICAgX0NGUHJlZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7CiAgICAgfQogI2VuZGlm
CisgICAgICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV2ViQ29yZTo6c3dpenps
ZVVUVHlwZVJlY29yZCgpOworICAgIFdlYkNvcmU6OnNldFZlY3Rvck9mVVRUeXBlSXRlbShXVEZN
b3ZlKHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtKSk7CisjZW5kaWYKIH0KIAogdm9pZCBX
ZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nl
c3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392966</attachid>
            <date>2020-03-08 12:00:07 -0700</date>
            <delta_ts>2020-03-08 12:07:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308120007.patch</filename>
            <type>text/plain</type>
            <size>24773</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTA4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRv
IFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJ
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VVRUeXBlSXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVUVHlwZUl0ZW06
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIu
bW06IEFkZGVkLgorICAgICAgICAoLVtXZWJVVFR5cGVSZWNvcmQgc2V0SWRlbnRpZmllcjpdKToK
KyAgICAgICAgKFdlYkNvcmU6OnZlY3Rvck9mVVRUeXBlUmVjb3Jkcyk6CisgICAgICAgIChXZWJD
b3JlOjp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRWZWN0b3JPZlVUVHlw
ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c3dpenpsZVVUVHlwZVJlY29yZCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpn
ZXRVVElGcm9tVGFnKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMt
MDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYW52YXMgZHJhd2luZyBjb21tYW5kcyBoYXZlIHRvIGJlIGZsdXNoZWQgdG8gdGhlIEdQVVBy
b2Nlc3MgaW4gYmF0Y2hlcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00
ODM5LDYgKzQ4MzksOCBAQAogCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVL
ZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJD
MjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87
IH07CiAJCUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIx
MTMxNDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovOyB9OworCQlFM0NBQUE2
MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTVFMjQxNTVFRjIwMENFRDJF
MiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUUzQ0FBQTYyMjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5cGVS
ZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQ0FBQTYwMjQxNTVFRjMwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5t
bSAqLzsgfTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNo
ZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNj
cmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFM0ZBMzg2NDFENzE4MTJEMDBBQTU5NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGQTM4NjEx
RDcxNkU3NjAwQUE1OTUwIC8qIFBlbmRpbmdTY3JpcHRDbGllbnQuaCAqLzsgfTsKIAkJRTQwMUMy
NzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMw
MEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MjAyLDYgKzE1MjA0LDggQEAKIAkJ
RTNCRjE5RTcyMkFGMzA5RjAwOUM5OTI2IC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01K
SVRDaGVja0RPTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5QUVDOTIxMTMx
NDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01pY3JvdGFza0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUNvbnN0YW50cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNTFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzMTIyLDYgKzIzMTI2LDggQEAKIAkJCQkzMTBENzE5NDFCMzM1QzlE
MDA5QzdCNzMgLyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQwMDlDN0I3
MyAvKiBUaGVtZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQwNiAvKiBV
c2VyQWdlbnRDb2NvYS5tbSAqLywKKwkJCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyogVVRU
eXBlUmVjb3JkU3dpenpsZXIuaCAqLywKKwkJCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8sCiAJCQkJNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUz
IC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJNTJENUExQTQxQzU3
NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8sCiAJCQkJNTJENUExQTUx
QzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8s
CkBAIC0zMjkzNCw2ICszMjk0MCw3IEBACiAJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8q
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRjE0
RTYxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
RkFGQkYxOTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9u
QnViYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTNBM0VBMTVGRjQ4NDEw
MDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
NDM3NCw2ICszNDM4MSw3IEBACiAJCQkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJN
ZXNzYWdlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0U2ODM0NDE5MjE0M0E4MDBG
NEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVz
cGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4IC8qIFZp
ZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFVUVHlwZUl0ZW0geworICAg
IFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVudGlmaWVy
OworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitXRUJDT1JFX0VY
UE9SVCB2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKworV0VCQ09SRV9FWFBPUlQgY29uc3Qg
VmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK1dFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmKTsK
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7CisgICAgZW5jb2RlciA8
PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCB1
dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxVVFR5cGVJdGVtPiBV
VFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTdHJp
bmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFnQ2xhc3M7CisgICAg
ZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlmaWVyOworICAgIGRl
Y29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsKKyAgICBkZWNvZGVy
ID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRlbnRpZmllciwgKnV0
aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEyNyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlVUVHlwZVJl
Y29yZFN3aXp6bGVyLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0IDxN
b2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisKKyNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CisjaW1w
b3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KKyNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwor
I2ltcG9ydCA8Q29yZVNlcnZpY2VzL0xTUHJvcGVydHlMaXN0UHJpdi5oPgorI2ltcG9ydCA8Q29y
ZVNlcnZpY2VzL1VUVHlwZVJlY29yZFByaXYuaD4KKworI2Vsc2UKKworX19hdHRyaWJ1dGVfXygo
dmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZhY2UgTFNSZWNvcmQgOiBOU09iamVjdCA8
TlNDb3B5aW5nLCBOU0Rpc2NhcmRhYmxlQ29udGVudD4KK0BlbmQKKworX19hdHRyaWJ1dGVfXygo
dmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZhY2UgVVRUeXBlUmVjb3JkIDogTFNSZWNv
cmQKKysgKG51bGxhYmxlIGluc3RhbmNldHlwZSl0eXBlUmVjb3JkV2l0aFRhZzooTlNTdHJpbmcg
Kil0YWcgb2ZDbGFzczooTlNTdHJpbmcgKil0YWdDbGFzcyBjb25mb3JtaW5nVG9JZGVudGlmaWVy
OihOU1N0cmluZyAqKWNvbmZvcm1zVG87CitAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0cmluZyAq
aWRlbnRpZmllcjsKK0BlbmQKKworI2VuZGlmCisKK1NPRlRfTElOS19GUkFNRVdPUksoQ29yZVNl
cnZpY2VzKTsKK1NPRlRfTElOS19DTEFTUyhDb3JlU2VydmljZXMsIFVUVHlwZVJlY29yZCk7CisK
K19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitAaW50ZXJmYWNlIFdlYlVU
VHlwZVJlY29yZCA6IFVUVHlwZVJlY29yZAorLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmlu
ZyAqKWk7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJVVFR5cGVSZWNvcmQgeworQHBhY2th
Z2UKKyAgICBOU1N0cmluZyAqX2lkZW50aWZpZXI7Cit9CitAc3ludGhlc2l6ZSBpZGVudGlmaWVy
PV9pZGVudGlmaWVyOworLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWkKK3sKKyAg
ICBfaWRlbnRpZmllciA9IGk7Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3Rh
dGljIFZlY3RvcjxVVFR5cGVJdGVtPiYgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3I7CisgICAgcmV0
dXJuIHZlY3RvcjsKK30KKworc3RhdGljIElNUCB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsID0g
bmlsOworCitzdGF0aWMgVVRUeXBlUmVjb3JkICp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKGlk
IHNlbGYsIFNFTCBzZWxlY3RvciwgTlNTdHJpbmcgKnRhZywgTlNTdHJpbmcgKnRhZ0NsYXNzLCBO
U1N0cmluZyAqaWRlbnRpZmllcikKK3sKKyAgICBmb3IgKGF1dG8mIHIgOiB2ZWN0b3JPZlVUVHlw
ZVJlY29yZHMoKSkgeworICAgICAgICBpZiAoci50YWcgPT0gU3RyaW5nKHRhZykgJiYgci50YWdD
bGFzcyA9PSBTdHJpbmcodGFnQ2xhc3MpICYmIHIuaWRlbnRpZmllciA9PSBTdHJpbmcoaWRlbnRp
ZmllcikpIHsKKyAgICAgICAgICAgIFdlYlVUVHlwZVJlY29yZCAqcmVjb3JkID0gW1dlYlVUVHlw
ZVJlY29yZCBhbGxvY107CisgICAgICAgICAgICBbcmVjb3JkIHNldElkZW50aWZpZXI6ci51dGld
OworICAgICAgICAgICAgcmV0dXJuIHJlY29yZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBXVEZM
b2dBbHdheXMoIlVua25vd24gVVRJOiAlcyAlcyAlc1xuIiwgU3RyaW5nKHRhZykudXRmOCgpLmRh
dGEoKSwgU3RyaW5nKHRhZ0NsYXNzKS51dGY4KCkuZGF0YSgpLCBTdHJpbmcoaWRlbnRpZmllciku
dXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gd3RmQ2FsbElNUDxVVFR5cGVSZWNvcmQgKj4odHlwZVJlY29yZFdpdGhUYWdPcmlnaW5h
bCwgc2VsZiwgc2VsZWN0b3IsIHRhZywgdGFnQ2xhc3MsIGlkZW50aWZpZXIpOworfQorCitjb25z
dCBWZWN0b3I8VVRUeXBlSXRlbT4mIGNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpCit7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yID0gW10gewor
ICAgICAgICBWZWN0b3I8VVRUeXBlSXRlbT4gdiA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxVVFR5
cGVJdGVtPiB7CisgICAgICAgICAgICB7ICJ2aWRlby9tcDQiX3MsICJwdWJsaWMubWltZS10eXBl
Il9zLCBzdGF0aWNfY2FzdDxjaGFyKj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxs
cHRyKSB9LAorICAgICAgICB9OworICAgICAgICBmb3IgKGF1dG8mIHIgOiB2KQorICAgICAgICAg
ICAgci51dGkgPSBVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKHIudGFnQ2xh
c3MuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgci50YWcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwg
ci5pZGVudGlmaWVyLmlzTnVsbCgpID8gbnVsbHB0ciA6IHIuaWRlbnRpZmllci5jcmVhdGVDRlN0
cmluZygpLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfSgpOworICAgIHJldHVybiB2
ZWN0b3I7Cit9CisKK3ZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVt
PiYmIHZlY3RvcikKK3sKKyAgICB2ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSA9IFdURk1vdmUodmVj
dG9yKTsKK30KKwordm9pZCBzd2l6emxlVVRUeXBlUmVjb3JkKCkKK3sKKyAgICBNZXRob2QgdHlw
ZVJlY29yZFdpdGhUYWdNZXRob2QgPSBjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNz
KCJVVFR5cGVSZWNvcmQiKSwgQHNlbGVjdG9yKHR5cGVSZWNvcmRXaXRoVGFnOiBvZkNsYXNzOiBj
b25mb3JtaW5nVG9JZGVudGlmaWVyOikpOworICAgIHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwg
PSBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24odHlwZVJlY29yZFdpdGhUYWdNZXRob2QsIChJTVAp
dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk7Cit9CisKK307CisKKyNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgJ
KHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1VUSVV0aWxpdGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIFdFQkNPUkVf
RVhQT1JUIFN0cmluZyBNSU1FVHlwZUZyb21VVEkoY28KIFN0cmluZyBNSU1FVHlwZUZyb21VVElU
cmVlKGNvbnN0IFN0cmluZyYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIFVUSUZyb21NSU1FVHlw
ZShjb25zdCBTdHJpbmcmKTsKIGJvb2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcmKTsKK1dF
QkNPUkVfRVhQT1JUIFN0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNv
bnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0VVRJRnJvbU1JTUVUeXBlTWFwKEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+JiYpOwogV0VCQ09SRV9FWFBPUlQgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGNy
ZWF0ZVVUSUZyb21NSU1FVHlwZU1hcCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQkocmV2aXNpb24gMjU4MTA3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjEsNiArMTYxLDEyIEBAIGJvb2wgaXNEZWNsYXJlZFVUSShjb25z
dCBTdHJpbmcmIFVUSSkKICAgICByZXR1cm4gVVRUeXBlSXNEZWNsYXJlZChVVEkuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFn
Q2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkK
K3sKKyAgICBhdXRvIHUgPSBhZG9wdENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJG
b3JUYWcodGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgdGFnLmNyZWF0ZUNGU3RyaW5n
KCkuZ2V0KCksIGNvbmZvcm1pbmdUb1VUSS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAg
cmV0dXJuIFN0cmluZyh1LmdldCgpKTsKK30KKwogc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBhZGRpdGlvbmFsTUlNRVR5cGVzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVj
dG9yPFN0cmluZz4+IG1pbWVUeXBlcyA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1ODEwNykK
KysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTUwMSw2ICs1NTAxLDExIEBAIFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlw
ZShjb24KIHsKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KKworU3RyaW5nIEludGVybmFs
czo6Z2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRh
ZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpCit7CisgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Cit9CiAjZW5kaWYKIAogU3RyaW5nIEludGVybmFsczo6bWVkaWFNSU1FVHlwZUZvckV4
dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtOTQzLDYgKzk0Myw3IEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lv
bik7CiAKICAgICBTdHJpbmcgZ2V0VVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOworICAgIFN0cmluZyBnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNv
bnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKICAgICBi
b29sIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTg1Myw2ICs4NTMsNyBAQCBlbnVt
IENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBET01TdHJpbmcgbWVkaWFNSU1FVHlwZUZvckV4dGVu
c2lvbihET01TdHJpbmcgZXh0ZW5zaW9uKTsKIAogICAgIERPTVN0cmluZyBnZXRVVElGcm9tTUlN
RVR5cGUoRE9NU3RyaW5nIG1pbWVUeXBlKTsKKyAgICBET01TdHJpbmcgZ2V0VVRJRnJvbVRhZyhE
T01TdHJpbmcgdGFnQ2xhc3MsIERPTVN0cmluZyB0YWcsIERPTVN0cmluZyBjb25mb3JtaW5nVG9V
VEkpOwogCiAgICAgYm9vbGVhbiBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIH07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNiw0
ICsxMDYsOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5cGUoY29uCiAgICAg
cmV0dXJuIFVUSUZyb21NSU1FVHlwZShtaW1lVHlwZSk7CiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6
OmdldFVUSUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcs
IGNvbnN0IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKQoreworICAgIHJldHVybiBVVElGcm9tVGFn
KHRhZ0NsYXNzLCB0YWcsIGNvbmZvcm1pbmdUb1VUSSk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRhZyBhbmQg
dGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRi
b3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9VVFR5cGVSZWNvcmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VVRUeXBl
SXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VVRUeXBlSXRlbTo6ZGVjb2Rl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tOiBB
ZGRlZC4KKyAgICAgICAgKC1bV0tVVFR5cGVSZWNvcmQgc2V0SWRlbnRpZmllcjpdKToKKyAgICAg
ICAgKFdlYktpdDo6dmVjdG9yT2ZVVFR5cGVSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6dHlw
ZVJlY29yZFdpdGhUYWdPdmVycmlkZSk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVZlY3Rvck9m
VVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OnNldFZlY3Rvck9mVVRUeXBlSXRlbSk6Cisg
ICAgICAgIChXZWJLaXQ6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0wMy0wOCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gTnVsbC1kZXJlZmVyZW5j
ZSBjcmFzaCBpbiBHUFVQcm9jZXNzUHJveHk6Om9wZW5HUFVQcm9jZXNzQ29ubmVjdGlvbigpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291
cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgko
cmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2Zp
bGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAg
LTg0OCw3ICs4NDgsNyBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKHJlcXVpcmUtYWxsCiAg
ICAgICAgIChleHRlbnNpb24gImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLm1hY2giKQotICAg
ICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIg
ImNvbS5hcHBsZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lv
bm1hbmFnZXIuY29udGVudC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29t
LmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2Qi
ICJjb20uYXBwbGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxl
Lm1vYmlsZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2Vz
IiAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20u
YXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9u
IgorICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVt
d2lkZSIgImNvbS5hcHBsZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5l
c2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZp
Y2UuY29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25v
c3RpY2QiICJjb20uYXBwbGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29t
LmFwcGxlLm1vYmlsZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNl
cnZpY2VzIiAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3Ii
ICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2Qu
ZGFlbW9uIiAiY29tLmFwcGxlLmxzZC5tYXBkYiIKIAogICAgICAgICAgICAgOzs7IEZJWE1FKDIw
NzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgR1BVIHByb2Nl
c3MgaXMgY29tcGxldGUKICAgICAgICAgICAgICJjb20uYXBwbGUuYWlycGxheS5hcHN5bmNjb250
cm9sbGVyLnhwYyIgImNvbS5hcHBsZS5hdWRpby5BVVJlbW90ZUlPU2VydmVyIiAiY29tLmFwcGxl
LmF1ZGlvLkF1ZGlvQ29tcG9uZW50UmVnaXN0cmFyIgpJbmRleDogU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9u
IDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDcgQEAgdm9pZCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZAogICAgIGVuY29kZXIgPDwgY3NzVmFsdWVUb1N5
c3RlbUNvbG9yTWFwOwogICAgIGVuY29kZXIgPDwgZm9jdXNSaW5nQ29sb3I7CiAgICAgZW5jb2Rl
ciA8PCBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKKyAgICBlbmNvZGVyIDw8IHZlY3Rvck9mVVRUeXBl
SXRlbTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC00OTMsNiArNDk0LDEyIEBA
IGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgT3B0aW9uYWw8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2
ZWN0b3JPZlVUVHlwZUl0ZW07CisgICAgZGVjb2RlciA+PiB2ZWN0b3JPZlVUVHlwZUl0ZW07Cisg
ICAgaWYgKCF2ZWN0b3JPZlVUVHlwZUl0ZW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBw
YXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSA9IFdURk1vdmUoKnZlY3Rvck9mVVRUeXBlSXRl
bSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24g
MjU4MTA3KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVGhlbWVJT1MuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQ
SSB7CkBAIC0yMjMsNiArMjI0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpDU1NWYWx1ZVRvU3lzdGVtQ29sb3JN
YXAgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogICAgIFdlYkNvcmU6OkNvbG9yIGZvY3VzUmlu
Z0NvbG9yOwogICAgIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6VVRUeXBlSXRlbT4gdmVjdG9yT2ZVVFR5cGVJdGVtOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5
KQpAQCAtMzc2LDkgKzM3NiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRp
YWxpemVXCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKCFXZWJD
b3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKSkgeworICAgIGlmICghV2ViQ29y
ZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkgfHwgX0FYU0FwcGxpY2F0aW9uQWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBzdGF0aWMgY29uc3QgY2hhciogc2Vydmlj
ZXNbXSA9IHsKICAgICAgICAgICAgICJjb20uYXBwbGUubHNkLm9wZW4iLAorICAgICAgICAgICAg
ImNvbS5hcHBsZS5sc2QubWFwZGIiLAogICAgICAgICAgICAgImNvbS5hcHBsZS5tb2JpbGVhc3Nl
dGQiLAogICAgICAgICAgICAgImNvbS5hcHBsZS5pY29uc2VydmljZXMiLAogICAgICAgICAgICAg
ImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIsCkBAIC00MjksOCArNDMwLDggQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgIHBhcmFtZXRlcnMu
Y3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVuZGVyVGhlbWVJT1M6OmNzc1ZhbHVlVG9TeXN0
ZW1Db2xvck1hcCgpOwogICAgIHBhcmFtZXRlcnMuZm9jdXNSaW5nQ29sb3IgPSBSZW5kZXJUaGVt
ZTo6c2luZ2xldG9uKCkuZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+KCkpOwogICAgIHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwgPSBsb2NhbGl6ZWRE
ZXZpY2VNb2RlbCgpOworICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtID0gY3JlYXRl
VmVjdG9yT2ZVVFR5cGVJdGVtKCk7CiAjZW5kaWYKLQogICAgIAogICAgIC8vIEFsbG93IG1pY3Jv
cGhvbmUgYWNjZXNzIGlmIGVpdGhlciBwcmVmZXJlbmNlIGlzIHNldCBiZWNhdXNlIFdlYlJUQyBy
ZXF1aXJlcyBtaWNyb3Bob25lIGFjY2Vzcy4KICAgICBib29sIG5lZWRXZWJQcm9jZXNzRXh0ZW5z
aW9ucyA9ICFtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkudXNlR1BVUHJvY2Vzc0Zv
ck1lZGlhKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYg
KzEwMyw3IEBACiAjaW1wb3J0ICJVc2VySW50ZXJmYWNlSWRpb20uaCIKICNpbXBvcnQgIldLQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RJT1MuaCIKICNpbXBvcnQgPFVJS2l0L1VJQWNjZXNzaWJp
bGl0eS5oPgorI2ltcG9ydCA8V2ViQ29yZS9VVFR5cGVSZWNvcmRTd2l6emxlci5oPgogI2ltcG9y
dCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKQEAgLTI5Niw2
ICsyOTcsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAg
ICAgICBfQ0ZQcmVmc1NldERpcmVjdE1vZGVFbmFibGVkKGZhbHNlKTsKICAgICB9CiAjZW5kaWYK
KyAgICAgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBXZWJDb3JlOjpzd2l6emxl
VVRUeXBlUmVjb3JkKCk7CisgICAgV2ViQ29yZTo6c2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFdURk1v
dmUocGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0pKTsKKyNlbmRpZgogfQogCiB2b2lkIFdl
YlByb2Nlc3M6OnBsYXRmb3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vz
c0RhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392968</attachid>
            <date>2020-03-08 12:07:32 -0700</date>
            <delta_ts>2020-03-08 12:29:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308120731.patch</filename>
            <type>text/plain</type>
            <size>24777</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTA4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRv
IFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJ
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VVRUeXBlSXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVUVHlwZUl0ZW06
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIu
bW06IEFkZGVkLgorICAgICAgICAoLVtXZWJVVFR5cGVSZWNvcmQgc2V0SWRlbnRpZmllcjpdKToK
KyAgICAgICAgKFdlYkNvcmU6OnZlY3Rvck9mVVRUeXBlUmVjb3Jkcyk6CisgICAgICAgIChXZWJD
b3JlOjp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRWZWN0b3JPZlVUVHlw
ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c3dpenpsZVVUVHlwZVJlY29yZCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpn
ZXRVVElGcm9tVGFnKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMt
MDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYW52YXMgZHJhd2luZyBjb21tYW5kcyBoYXZlIHRvIGJlIGZsdXNoZWQgdG8gdGhlIEdQVVBy
b2Nlc3MgaW4gYmF0Y2hlcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00
ODM5LDYgKzQ4MzksOCBAQAogCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVL
ZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJD
MjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87
IH07CiAJCUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIx
MTMxNDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovOyB9OworCQlFM0NBQUE2
MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTVFMjQxNTVFRjIwMENFRDJF
MiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUUzQ0FBQTYyMjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5cGVS
ZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQ0FBQTYwMjQxNTVFRjMwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5t
bSAqLzsgfTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNo
ZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNj
cmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFM0ZBMzg2NDFENzE4MTJEMDBBQTU5NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGQTM4NjEx
RDcxNkU3NjAwQUE1OTUwIC8qIFBlbmRpbmdTY3JpcHRDbGllbnQuaCAqLzsgfTsKIAkJRTQwMUMy
NzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMw
MEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MjAyLDYgKzE1MjA0LDggQEAKIAkJ
RTNCRjE5RTcyMkFGMzA5RjAwOUM5OTI2IC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAv
KiBET01KSVRDaGVja0RPTS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01K
SVRDaGVja0RPTS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5QUVDOTIxMTMx
NDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01pY3JvdGFza0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUNvbnN0YW50cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNTFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzMTIyLDYgKzIzMTI2LDggQEAKIAkJCQkzMTBENzE5NDFCMzM1QzlE
MDA5QzdCNzMgLyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQwMDlDN0I3
MyAvKiBUaGVtZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQwNiAvKiBV
c2VyQWdlbnRDb2NvYS5tbSAqLywKKwkJCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyogVVRU
eXBlUmVjb3JkU3dpenpsZXIuaCAqLywKKwkJCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8sCiAJCQkJNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUz
IC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJNTJENUExQTQxQzU3
NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8sCiAJCQkJNTJENUExQTUx
QzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8s
CkBAIC0zMjkzNCw2ICszMjk0MCw3IEBACiAJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8q
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRjE0
RTYxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
RkFGQkYxOTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9u
QnViYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTNBM0VBMTVGRjQ4NDEw
MDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
NDM3NCw2ICszNDM4MSw3IEBACiAJCQkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJN
ZXNzYWdlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0U2ODM0NDE5MjE0M0E4MDBG
NEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVz
cGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4IC8qIFZp
ZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFVUVHlwZUl0ZW0geworICAg
IFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVudGlmaWVy
OworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitXRUJDT1JFX0VY
UE9SVCB2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKworV0VCQ09SRV9FWFBPUlQgY29uc3Qg
VmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK1dFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmKTsK
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7CisgICAgZW5jb2RlciA8
PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCB1
dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxVVFR5cGVJdGVtPiBV
VFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTdHJp
bmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFnQ2xhc3M7CisgICAg
ZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlmaWVyOworICAgIGRl
Y29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsKKyAgICBkZWNvZGVy
ID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRlbnRpZmllciwgKnV0
aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEyNyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlVUVHlwZVJl
Y29yZFN3aXp6bGVyLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0IDxN
b2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisKKyNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CisjaW1w
b3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KKyNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwor
I2ltcG9ydCA8Q29yZVNlcnZpY2VzL0xTUHJvcGVydHlMaXN0UHJpdi5oPgorI2ltcG9ydCA8Q29y
ZVNlcnZpY2VzL1VUVHlwZVJlY29yZFByaXYuaD4KKworI2Vsc2UKKworLy9fX2F0dHJpYnV0ZV9f
KCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorQGludGVyZmFjZSBMU1JlY29yZCA6IE5TT2JqZWN0
IDxOU0NvcHlpbmcsIE5TRGlzY2FyZGFibGVDb250ZW50PgorQGVuZAorCisvL19fYXR0cmlidXRl
X18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitAaW50ZXJmYWNlIFVUVHlwZVJlY29yZCA6IExT
UmVjb3JkCisrIChudWxsYWJsZSBpbnN0YW5jZXR5cGUpdHlwZVJlY29yZFdpdGhUYWc6KE5TU3Ry
aW5nICopdGFnIG9mQ2xhc3M6KE5TU3RyaW5nICopdGFnQ2xhc3MgY29uZm9ybWluZ1RvSWRlbnRp
ZmllcjooTlNTdHJpbmcgKiljb25mb3Jtc1RvOworQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJp
bmcgKmlkZW50aWZpZXI7CitAZW5kCisKKyNlbmRpZgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKENv
cmVTZXJ2aWNlcyk7CitTT0ZUX0xJTktfQ0xBU1MoQ29yZVNlcnZpY2VzLCBVVFR5cGVSZWNvcmQp
OworCitfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorQGludGVyZmFjZSBX
ZWJVVFR5cGVSZWNvcmQgOiBVVFR5cGVSZWNvcmQKKy0gKHZvaWQpc2V0SWRlbnRpZmllcjooTlNT
dHJpbmcgKilpOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViVVRUeXBlUmVjb3JkIHsKK0Bw
YWNrYWdlCisgICAgTlNTdHJpbmcgKl9pZGVudGlmaWVyOworfQorQHN5bnRoZXNpemUgaWRlbnRp
Zmllcj1faWRlbnRpZmllcjsKKy0gKHZvaWQpc2V0SWRlbnRpZmllcjooTlNTdHJpbmcgKilpCit7
CisgICAgX2lkZW50aWZpZXIgPSBpOworfQorQGVuZAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0YXRpYyBWZWN0b3I8VVRUeXBlSXRlbT4mIHZlY3Rvck9mVVRUeXBlUmVjb3JkcygpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yOworICAg
IHJldHVybiB2ZWN0b3I7Cit9CisKK3N0YXRpYyBJTVAgdHlwZVJlY29yZFdpdGhUYWdPcmlnaW5h
bCA9IG5pbDsKKworc3RhdGljIFVUVHlwZVJlY29yZCAqdHlwZVJlY29yZFdpdGhUYWdPdmVycmlk
ZShpZCBzZWxmLCBTRUwgc2VsZWN0b3IsIE5TU3RyaW5nICp0YWcsIE5TU3RyaW5nICp0YWdDbGFz
cywgTlNTdHJpbmcgKmlkZW50aWZpZXIpCit7CisgICAgZm9yIChhdXRvJiByIDogdmVjdG9yT2ZV
VFR5cGVSZWNvcmRzKCkpIHsKKyAgICAgICAgaWYgKHIudGFnID09IFN0cmluZyh0YWcpICYmIHIu
dGFnQ2xhc3MgPT0gU3RyaW5nKHRhZ0NsYXNzKSAmJiByLmlkZW50aWZpZXIgPT0gU3RyaW5nKGlk
ZW50aWZpZXIpKSB7CisgICAgICAgICAgICBXZWJVVFR5cGVSZWNvcmQgKnJlY29yZCA9IFtXZWJV
VFR5cGVSZWNvcmQgYWxsb2NdOworICAgICAgICAgICAgW3JlY29yZCBzZXRJZGVudGlmaWVyOnIu
dXRpXTsKKyAgICAgICAgICAgIHJldHVybiByZWNvcmQ7CisgICAgICAgIH0KKyAgICB9CisgICAg
V1RGTG9nQWx3YXlzKCJVbmtub3duIFVUSTogJXMgJXMgJXNcbiIsIFN0cmluZyh0YWcpLnV0Zjgo
KS5kYXRhKCksIFN0cmluZyh0YWdDbGFzcykudXRmOCgpLmRhdGEoKSwgU3RyaW5nKGlkZW50aWZp
ZXIpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIHd0ZkNhbGxJTVA8VVRUeXBlUmVjb3JkICo+KHR5cGVSZWNvcmRXaXRoVGFnT3Jp
Z2luYWwsIHNlbGYsIHNlbGVjdG9yLCB0YWcsIHRhZ0NsYXNzLCBpZGVudGlmaWVyKTsKK30KKwor
Y29uc3QgVmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8VVRUeXBlSXRlbT4+IHZlY3RvciA9IFtd
IHsKKyAgICAgICAgVmVjdG9yPFVUVHlwZUl0ZW0+IHYgPSBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8
VVRUeXBlSXRlbT4geworICAgICAgICAgICAgeyAidmlkZW8vbXA0Il9zLCAicHVibGljLm1pbWUt
dHlwZSJfcywgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpLCBzdGF0aWNfY2FzdDxjaGFyKj4o
bnVsbHB0cikgfSwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChhdXRvJiByIDogdikKKyAgICAg
ICAgICAgIHIudXRpID0gVVRUeXBlQ3JlYXRlUHJlZmVycmVkSWRlbnRpZmllckZvclRhZyhyLnRh
Z0NsYXNzLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIHIudGFnLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCksIHIuaWRlbnRpZmllci5pc051bGwoKSA/IG51bGxwdHIgOiByLmlkZW50aWZpZXIuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgICAgIHJldHVybiB2OworICAgIH0oKTsKKyAgICByZXR1
cm4gdmVjdG9yOworfQorCit2b2lkIHNldFZlY3Rvck9mVVRUeXBlSXRlbShWZWN0b3I8VVRUeXBl
SXRlbT4mJiB2ZWN0b3IpCit7CisgICAgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkgPSBXVEZNb3Zl
KHZlY3Rvcik7Cit9CisKK3ZvaWQgc3dpenpsZVVUVHlwZVJlY29yZCgpCit7CisgICAgTWV0aG9k
IHR5cGVSZWNvcmRXaXRoVGFnTWV0aG9kID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2Qob2JqY19nZXRD
bGFzcygiVVRUeXBlUmVjb3JkIiksIEBzZWxlY3Rvcih0eXBlUmVjb3JkV2l0aFRhZzogb2ZDbGFz
czogY29uZm9ybWluZ1RvSWRlbnRpZmllcjopKTsKKyAgICB0eXBlUmVjb3JkV2l0aFRhZ09yaWdp
bmFsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHR5cGVSZWNvcmRXaXRoVGFnTWV0aG9kLCAo
SU1QKXR5cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUpOworfQorCit9OworCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGll
cy5oCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9VVElVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQCBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgTUlNRVR5cGVGcm9tVVRJKGNvCiBTdHJpbmcgTUlNRVR5cGVGcm9t
VVRJVHJlZShjb25zdCBTdHJpbmcmKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBVVElGcm9tTUlN
RVR5cGUoY29uc3QgU3RyaW5nJik7CiBib29sIGlzRGVjbGFyZWRVVEkoY29uc3QgU3RyaW5nJik7
CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgVVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNz
LCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpOwogCiBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFVUSUZyb21NSU1FVHlwZU1hcChIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiYmKTsKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
JiBjcmVhdGVVVElGcm9tTUlNRVR5cGVNYXAoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0JKHJldmlzaW9uIDI1ODEw
NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSwxMiBAQCBib29sIGlzRGVjbGFyZWRVVEko
Y29uc3QgU3RyaW5nJiBVVEkpCiAgICAgcmV0dXJuIFVUVHlwZUlzRGVjbGFyZWQoVVRJLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCkpOwogfQogCitTdHJpbmcgVVRJRnJvbVRhZyhjb25zdCBTdHJpbmcm
IHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9V
VEkpCit7CisgICAgYXV0byB1ID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlm
aWVyRm9yVGFnKHRhZ0NsYXNzLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIHRhZy5jcmVhdGVDRlN0
cmluZygpLmdldCgpLCBjb25mb3JtaW5nVG9VVEkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwor
ICAgIHJldHVybiBTdHJpbmcodS5nZXQoKSk7Cit9CisKIHN0YXRpYyBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgYWRkaXRpb25hbE1JTUVUeXBlcygpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFZlY3RvcjxTdHJpbmc+PiBtaW1lVHlwZXMgPSBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8U3RyaW5n
PiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyNTgx
MDcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU1MDEsNiArNTUwMSwxMSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlN
RVR5cGUoY29uCiB7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CisKK1N0cmluZyBJbnRl
cm5hbHM6OmdldFVUSUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5n
JiB0YWcsIGNvbnN0IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKQoreworICAgIHJldHVybiBlbXB0
eVN0cmluZygpOworfQogI2VuZGlmCiAKIFN0cmluZyBJbnRlcm5hbHM6Om1lZGlhTUlNRVR5cGVG
b3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0Myw2ICs5NDMsNyBAQCBwdWJsaWM6
CiAgICAgU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRl
bnNpb24pOwogCiAgICAgU3RyaW5nIGdldFVUSUZyb21NSU1FVHlwZShjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKTsKKyAgICBTdHJpbmcgZ2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNz
LCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpOwogCiAg
ICAgYm9vbCBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC04NTMsNiArODUzLDcgQEAg
ZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgRE9NU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JF
eHRlbnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiAKICAgICBET01TdHJpbmcgZ2V0VVRJRnJv
bU1JTUVUeXBlKERPTVN0cmluZyBtaW1lVHlwZSk7CisgICAgRE9NU3RyaW5nIGdldFVUSUZyb21U
YWcoRE9NU3RyaW5nIHRhZ0NsYXNzLCBET01TdHJpbmcgdGFnLCBET01TdHJpbmcgY29uZm9ybWlu
Z1RvVVRJKTsKIAogICAgIGJvb2xlYW4gc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0JKHJldmlzaW9uIDI1ODEwNykKKysr
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDYsNCArMTA2LDkgQEAgU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKGNvbgog
ICAgIHJldHVybiBVVElGcm9tTUlNRVR5cGUobWltZVR5cGUpOwogfQogCitTdHJpbmcgSW50ZXJu
YWxzOjpnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYg
dGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkKK3sKKyAgICByZXR1cm4gVVRJRnJv
bVRhZyh0YWdDbGFzcywgdGFnLCBjb25mb3JtaW5nVG9VVEkpOworfQorCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wMy0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZv
bGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFwcGluZyB0byBVVEkgZnJvbSB0YWcg
YW5kIHRhZyBjbGFzcyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3ODMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFJlc291cmNlcy9T
YW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYjoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlVU
VHlwZUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVUVHlwZUl0ZW06OmRl
Y29kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5t
bTogQWRkZWQuCisgICAgICAgICgtW1dLVVRUeXBlUmVjb3JkIHNldElkZW50aWZpZXI6XSk6Cisg
ICAgICAgIChXZWJLaXQ6OnZlY3Rvck9mVVRUeXBlUmVjb3Jkcyk6CisgICAgICAgIChXZWJLaXQ6
OnR5cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUpOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVWZWN0
b3JPZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpzZXRWZWN0b3JPZlVUVHlwZUl0ZW0p
OgorICAgICAgICAoV2ViS2l0Ojpzd2l6emxlVVRUeXBlUmVjb3JkKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDMtMDggIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIE51bGwtZGVyZWZl
cmVuY2UgY3Jhc2ggaW4gR1BVUHJvY2Vzc1Byb3h5OjpvcGVuR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KQpJbmRleDogU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9S
ZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQu
c2IJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCSh3b3JraW5nIGNvcHkp
CkBAIC04NDgsNyArODQ4LDcgQEAKIChhbGxvdyBtYWNoLWxvb2t1cAogICAgIChyZXF1aXJlLWFs
bAogICAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUud2Via2l0LmV4dGVuc2lvbi5tYWNoIikK
LSAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuaXBob25lLmF4c2VydmVyLXN5c3RlbXdp
ZGUiICJjb20uYXBwbGUudGNjZCIgImNvbS5hcHBsZS5uZWhlbHBlciIgImNvbS5hcHBsZS5uZXNl
c3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIiAiY29tLmFwcGxlLnVpa2l0LnZpZXdzZXJ2aWNl
LmNvbS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90ZVVJIiAiY29tLmFwcGxlLmRpYWdub3N0
aWNkIiAiY29tLmFwcGxlLmxzZC5vcGVuIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCIgImNvbS5h
cHBsZS5tb2JpbGVhc3NldGQudjIiICJjb20uYXBwbGUuZnJvbnRib2FyZC5zeXN0ZW1hcHBzZXJ2
aWNlcyIgImNvbS5hcHBsZS5pY29uc2VydmljZXMiICJjb20uYXBwbGUud2ViaW5zcGVjdG9yIiAi
Y29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIiAiY29tLmFwcGxlLmNmcHJlZnNkLmRh
ZW1vbiIKKyAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuaXBob25lLmF4c2VydmVyLXN5
c3RlbXdpZGUiICJjb20uYXBwbGUudGNjZCIgImNvbS5hcHBsZS5uZWhlbHBlciIgImNvbS5hcHBs
ZS5uZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIiAiY29tLmFwcGxlLnVpa2l0LnZpZXdz
ZXJ2aWNlLmNvbS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90ZVVJIiAiY29tLmFwcGxlLmRp
YWdub3N0aWNkIiAiY29tLmFwcGxlLmxzZC5vcGVuIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCIg
ImNvbS5hcHBsZS5tb2JpbGVhc3NldGQudjIiICJjb20uYXBwbGUuZnJvbnRib2FyZC5zeXN0ZW1h
cHBzZXJ2aWNlcyIgImNvbS5hcHBsZS5pY29uc2VydmljZXMiICJjb20uYXBwbGUud2ViaW5zcGVj
dG9yIiAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIiAiY29tLmFwcGxlLmNmcHJl
ZnNkLmRhZW1vbiIgImNvbS5hcHBsZS5sc2QubWFwZGIiCiAKICAgICAgICAgICAgIDs7OyBGSVhN
RSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIEdQVSBw
cm9jZXNzIGlzIGNvbXBsZXRlCiAgICAgICAgICAgICAiY29tLmFwcGxlLmFpcnBsYXkuYXBzeW5j
Y29udHJvbGxlci54cGMiICJjb20uYXBwbGUuYXVkaW8uQVVSZW1vdGVJT1NlcnZlciIgImNvbS5h
cHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciIKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZp
c2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgwLDYgKzE4MCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICAgICBlbmNvZGVyIDw8IGNzc1ZhbHVl
VG9TeXN0ZW1Db2xvck1hcDsKICAgICBlbmNvZGVyIDw8IGZvY3VzUmluZ0NvbG9yOwogICAgIGVu
Y29kZXIgPDwgbG9jYWxpemVkRGV2aWNlTW9kZWw7CisgICAgZW5jb2RlciA8PCB2ZWN0b3JPZlVU
VHlwZUl0ZW07CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNDkzLDYgKzQ5NCwx
MiBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIE9wdGlvbmFsPFZlY3RvcjxVVFR5cGVJdGVt
Pj4gdmVjdG9yT2ZVVFR5cGVJdGVtOworICAgIGRlY29kZXIgPj4gdmVjdG9yT2ZVVFR5cGVJdGVt
OworICAgIGlmICghdmVjdG9yT2ZVVFR5cGVJdGVtKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0gPSBXVEZNb3ZlKCp2ZWN0b3JPZlVUVHlw
ZUl0ZW0pOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlz
aW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lSU9TLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9VVFR5cGVSZWNvcmRTd2l6emxlci5oPgogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBBUEkgewpAQCAtMjIzLDYgKzIyNCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKICAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6Q1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwIGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICAgICBXZWJDb3JlOjpDb2xvciBmb2N1
c1JpbmdDb2xvcjsKICAgICBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTW9kZWw7CisgICAgVmVjdG9y
PFdlYkNvcmU6OlVUVHlwZUl0ZW0+IHZlY3Rvck9mVVRUeXBlSXRlbTsKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTM3Niw5ICszNzYsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bml0aWFsaXplVwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmICgh
V2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkpIHsKKyAgICBpZiAoIVdl
YkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpIHx8IF9BWFNBcHBsaWNhdGlv
bkFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNl
cnZpY2VzW10gPSB7CiAgICAgICAgICAgICAiY29tLmFwcGxlLmxzZC5vcGVuIiwKKyAgICAgICAg
ICAgICJjb20uYXBwbGUubHNkLm1hcGRiIiwKICAgICAgICAgICAgICJjb20uYXBwbGUubW9iaWxl
YXNzZXRkIiwKICAgICAgICAgICAgICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiwKICAgICAgICAg
ICAgICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiLApAQCAtNDI5LDggKzQzMCw4
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICBwYXJhbWV0
ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IFJlbmRlclRoZW1lSU9TOjpjc3NWYWx1ZVRv
U3lzdGVtQ29sb3JNYXAoKTsKICAgICBwYXJhbWV0ZXJzLmZvY3VzUmluZ0NvbG9yID0gUmVuZGVy
VGhlbWU6OnNpbmdsZXRvbigpLmZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPigpKTsKICAgICBwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsID0gbG9jYWxp
emVkRGV2aWNlTW9kZWwoKTsKKyAgICBwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSA9IGNy
ZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpOwogI2VuZGlmCi0KICAgICAKICAgICAvLyBBbGxvdyBt
aWNyb3Bob25lIGFjY2VzcyBpZiBlaXRoZXIgcHJlZmVyZW5jZSBpcyBzZXQgYmVjYXVzZSBXZWJS
VEMgcmVxdWlyZXMgbWljcm9waG9uZSBhY2Nlc3MuCiAgICAgYm9vbCBuZWVkV2ViUHJvY2Vzc0V4
dGVuc2lvbnMgPSAhbV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nl
c3NGb3JNZWRpYSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTEw
Myw2ICsxMDMsNyBAQAogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJX
S0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0SU9TLmgiCiAjaW1wb3J0IDxVSUtpdC9VSUFjY2Vz
c2liaWxpdHkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KICNp
bXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNlbmRpZgogCkBAIC0y
OTYsNiArMjk3LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIK
ICAgICAgICAgX0NGUHJlZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7CiAgICAgfQogI2Vu
ZGlmCisgICAgICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV2ViQ29yZTo6c3dp
enpsZVVUVHlwZVJlY29yZCgpOworICAgIFdlYkNvcmU6OnNldFZlY3Rvck9mVVRUeXBlSXRlbShX
VEZNb3ZlKHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtKSk7CisjZW5kaWYKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392972</attachid>
            <date>2020-03-08 12:29:30 -0700</date>
            <delta_ts>2020-03-08 13:11:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308122929.patch</filename>
            <type>text/plain</type>
            <size>28372</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTA4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRv
IFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJ
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VVRUeXBlSXRlbTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVUVHlwZUl0ZW06
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIu
bW06IEFkZGVkLgorICAgICAgICAoLVtXZWJVVFR5cGVSZWNvcmQgc2V0SWRlbnRpZmllcjpdKToK
KyAgICAgICAgKFdlYkNvcmU6OnZlY3Rvck9mVVRUeXBlUmVjb3Jkcyk6CisgICAgICAgIChXZWJD
b3JlOjp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVZlY3Rvck9mVVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRWZWN0b3JPZlVUVHlw
ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c3dpenpsZVVUVHlwZVJlY29yZCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpn
ZXRVVElGcm9tVGFnKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisKIDIwMjAtMDMt
MDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYW52YXMgZHJhd2luZyBjb21tYW5kcyBoYXZlIHRvIGJlIGZsdXNoZWQgdG8gdGhlIEdQVVBy
b2Nlc3MgaW4gYmF0Y2hlcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00
ODE2LDYgKzQ4MTYsNyBAQAogCQlFMUZFMTM3QjE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxn
b3JpdGhtQUVTX0tXLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUZFMTM3OTE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgg
Ki87IH07CiAJCUUxRkY1N0EzMEYwMTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGNTdBMjBG
MDEyNTVCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxRkY4RjZEMTgwREI1QkUwMDEzMjY3NCAv
KiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29y
aXRobVJlZ2lzdHJ5LmggKi87IH07CisJCUUzMDM3RjQ0MjQxNTdFOUMwMDMxQ0EwRiAvKiBDb3Jl
U2VydmljZXMuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMwMzdGNDIyNDE1N0U5QjAwMzFDQTBGIC8qIENvcmVTZXJ2aWNlcy5mcmFt
ZXdvcmsgKi87IH07CiAJCUUzMDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2lj
U2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MzA1OTI2MjFFMjdBMzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDU5MjY4MUUyN0Ez
RDEwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2Fj
aGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDgzOSw2
ICs0ODQwLDggQEAKIAkJRTNCQkMyNDcyMzgzNTUyNjAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0JCQzI0NTIz
ODM1NTFBMDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMgLyogRE9N
SklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAvKiBET01KSVRDaGVja0RPTS5oICovOyB9Owog
CQlFM0M5QUVDQjIxMTMxNDk5MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDOUFFQzkyMTEzMTQ3
NDAwNDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCAqLzsgfTsKKwkJRTNDQUFBNjEyNDE1
NUY4NzAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyog
VVRUeXBlUmVjb3JkU3dpenpsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQyRTIgLyogVVRUeXBlUmVjb3Jk
U3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0NBQUE2MDI0MTU1RUYzMDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi87
IH07CiAJCUUzRTRFMkE4MUUzQjE3MTAwMDIzQkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2Ny
aXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNFNEUyQTYxRTNCMTZGQzAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRG
ZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRTNGQTM4NjQxRDcxODEyRDAwQUE1OTUwIC8qIFBlbmRpbmdTY3JpcHRDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRkEzODYxMUQ3MTZF
NzYwMEFBNTk1MCAvKiBQZW5kaW5nU2NyaXB0Q2xpZW50LmggKi87IH07CiAJCUU0MDFDMjc1MTdD
RTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDAxQzI3NDE3Q0U1M0VDMDBDNDFB
MzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTE0OSw2ICsxNTE1Miw3IEBACiAJCUUxRkY1
N0E1MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZEdsb2JhbERhdGEuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMwMzdGNDIyNDE1N0U5QjAwMzFDQTBG
IC8qIENvcmVTZXJ2aWNlcy5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENvcmVTZXJ2aWNl
cy5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNl
cy5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQlFMzA1OTI2MTFFMjdBMzhD
MDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbmxpbmVDbGFzc2ljU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTMwNTkyNjIxRTI3QTM4QzAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNT
Y3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQ2xhc3NpY1Nj
cmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA1OTI2NTFFMjdBM0M2MDBE
NTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE1MjAyLDYgKzE1MjA2LDggQEAKIAkJRTNCRjE5RTcyMkFGMzA5RjAwOUM5
OTI2IC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAvKiBET01KSVRDaGVja0RPTS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRDaGVja0RPTS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5QUVDOTIxMTMxNDc0MDA0MTlCOTIgLyogSlNNaWNy
b3Rhc2tDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01pY3Jv
dGFza0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQ0FBQTVFMjQx
NTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dp
enpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVVFR5cGVS
ZWNvcmRTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNEMDQ5OTMx
REFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTm9kZUNvbnN0YW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFM0U0RTJBNTFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZl
dGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0RWxl
bWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZl
dGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RWxlbWVudENh
Y2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1OTc3
LDYgKzE1OTgzLDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCUZEMkRCRjEyMTJCMDQ4QTMwMEVEOThD
NiAvKiBBY2NlbGVyYXRlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCUZEMkRCRjEz
MTJCMDQ4QTMwMEVEOThDNiAvKiBBdWRpb1Rvb2xib3guZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8sCisJCQkJRTMwMzdGNDQyNDE1N0U5QzAwMzFDQTBGIC8qIENvcmVTZXJ2aWNlcy5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkxQUIzM0RBNTEyNTUxRTMyMDAyNDQ1N0EgLyogSU9L
aXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJOTNGMTlCMTYwODI0NUU1OTAwMUU5
QUJDIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTFD
MDIyRjAwMjJDRkVENjgwMDZERjAxQiAvKiBsaWJjb21wcmVzc2lvbi50YmQgaW4gRnJhbWV3b3Jr
cyAqLywKQEAgLTE2NTc1LDYgKzE2NTgyLDcgQEAKIAkJCQlGRDJEQkYwRjEyQjA0OEEzMDBFRDk4
QzYgLyogQXVkaW9Ub29sYm94LmZyYW1ld29yayAqLywKIAkJCQlBMTc2M0Y0MDFFMjA1ODZFMDAx
RDU4REUgLyogQ0ZOZXR3b3JrLmZyYW1ld29yayAqLywKIAkJCQlBQTVGM0I5MDE2Q0M1QkVCMDA0
NTVFQjAgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovLAorCQkJCUUzMDM3RjQyMjQxNTdF
OUIwMDMxQ0EwRiAvKiBDb3JlU2VydmljZXMuZnJhbWV3b3JrICovLAogCQkJCUExNUU2QkYwMUUy
MTJBNkEwMDgwQUYzNCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkxQUIzM0RBNDEy
NTUxRTMyMDAyNDQ1N0EgLyogSU9LaXQuZnJhbWV3b3JrICovLAogCQkJCUY4MjE2Mjk5MDI5RjRG
QjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8sCkBAIC0yMzEyMiw2ICsy
MzEzMCw4IEBACiAJCQkJMzEwRDcxOTQxQjMzNUM5RDAwOUM3QjczIC8qIFRoZW1lQ29jb2EuaCAq
LywKIAkJCQkzMTBENzE5MzFCMzM1QzlEMDA5QzdCNzMgLyogVGhlbWVDb2NvYS5tbSAqLywKIAkJ
CQlBM0FGOUQ4MTIwMzI1MkVFMDA2Q0FEMDYgLyogVXNlckFnZW50Q29jb2EubW0gKi8sCisJCQkJ
RTNDQUFBNUUyNDE1NUVGMjAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLmggKi8sCisJ
CQkJRTNDQUFBNjAyNDE1NUVGMzAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tICov
LAogCQkJCTUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlci5oICovLAogCQkJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oICovLAogCQkJCTUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1
bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovLApAQCAtMzI5MzQsNiArMzI5NDQsNyBAQAog
CQkJCTU3MkI0MDM2MjE3NkE5MjIwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUYxNEU2MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElS
ZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUZBRkJGMTkxNUE1RkE3NDAwMDgzQTIwIC8q
IFVUSVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNDQUFBNjEyNDE1NUY4NzAwQ0VE
MkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0M0NUI4
RTFEQzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3Nh
Z2VDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzNzQsNiArMzQzODUsNyBAQAogCQkJCTdD
M0I3OTcxMTkwODc1N0IwMEI0N0EyRCAvKiBVc2VyTWVzc2FnZUhhbmRsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxl
ckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3M0ZCMDcxOTFFRjQxNzAwN0RF
MDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRTNDQUFBNjIyNDE1NjEzMjAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJENUExOEYxQzU0NTky
MzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUJFODhFMERFMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenps
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVS
ZWNvcmRTd2l6emxlci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBVVFR5cGVJdGVtIHsKKyAgICBTdHJpbmcgdGFnOworICAgIFN0cmluZyB0
YWdDbGFzczsKKyAgICBTdHJpbmcgaWRlbnRpZmllcjsKKyAgICBTdHJpbmcgdXRpOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxVVFR5cGVJdGVtPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKKworV0VCQ09SRV9FWFBPUlQgdm9pZCBzd2l6emxlVVRUeXBlUmVj
b3JkKCk7CisKK1dFQkNPUkVfRVhQT1JUIGNvbnN0IFZlY3RvcjxVVFR5cGVJdGVtPiYgY3JlYXRl
VmVjdG9yT2ZVVFR5cGVJdGVtKCk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZlY3Rvck9mVVRU
eXBlSXRlbShWZWN0b3I8VVRUeXBlSXRlbT4mJik7CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIFVUVHlwZUl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAg
IGVuY29kZXIgPDwgdGFnOworICAgIGVuY29kZXIgPDwgdGFnQ2xhc3M7CisgICAgZW5jb2RlciA8
PCBpZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgdXRpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorT3B0aW9uYWw8VVRUeXBlSXRlbT4gVVRUeXBlSXRlbTo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8U3RyaW5nPiB0YWc7CisgICAgZGVjb2RlciA+PiB0
YWc7CisgICAgaWYgKCF0YWcpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxTdHJpbmc+IHRhZ0NsYXNzOworICAgIGRlY29kZXIgPj4gdGFnQ2xhc3M7CisgICAg
aWYgKCF0YWdDbGFzcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPFN0cmluZz4gaWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7CisgICAg
aWYgKCFpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0
aW9uYWw8U3RyaW5nPiB1dGk7CisgICAgZGVjb2RlciA+PiB1dGk7CisgICAgaWYgKCF1dGkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gVVRUeXBlSXRlbSB7ICp0
YWcsICp0YWdDbGFzcywgKmlkZW50aWZpZXIsICp1dGkgfTsKK30KK307CisKKyNlbmRpZgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3Jk
U3dpenpsZXIubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVVRUeXBlUmVjb3JkU3dpenpsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjQg
QEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJVVFR5cGVSZWNvcmRTd2l6emxlci5oIgorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNv
cmVTZXJ2aWNlcy5oPgorCisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQg
PHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+Cisj
aW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPENvcmVTZXJ2aWNlcy9MU1By
b3BlcnR5TGlzdFByaXYuaD4KKyNpbXBvcnQgPENvcmVTZXJ2aWNlcy9VVFR5cGVSZWNvcmRQcml2
Lmg+CisKKyNlbHNlCisKKy8vX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkK
K0BpbnRlcmZhY2UgTFNSZWNvcmQgOiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU0Rpc2NhcmRhYmxl
Q29udGVudD4KK0BlbmQKKworLy9fX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0Iikp
KQorQGludGVyZmFjZSBVVFR5cGVSZWNvcmQgOiBMU1JlY29yZAorKyAobnVsbGFibGUgaW5zdGFu
Y2V0eXBlKXR5cGVSZWNvcmRXaXRoVGFnOihOU1N0cmluZyAqKXRhZyBvZkNsYXNzOihOU1N0cmlu
ZyAqKXRhZ0NsYXNzIGNvbmZvcm1pbmdUb0lkZW50aWZpZXI6KE5TU3RyaW5nICopY29uZm9ybXNU
bzsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOworQGVuZAorCisj
ZW5kaWYKKworX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZh
Y2UgV2ViVVRUeXBlUmVjb3JkIDogVVRUeXBlUmVjb3JkCistICh2b2lkKXNldElkZW50aWZpZXI6
KE5TU3RyaW5nICopaTsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYlVUVHlwZVJlY29yZCB7
CitAcGFja2FnZQorICAgIE5TU3RyaW5nICpfaWRlbnRpZmllcjsKK30KK0BzeW50aGVzaXplIGlk
ZW50aWZpZXI9X2lkZW50aWZpZXI7CistICh2b2lkKXNldElkZW50aWZpZXI6KE5TU3RyaW5nICop
aQoreworICAgIF9pZGVudGlmaWVyID0gaTsKK30KK0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdGF0aWMgVmVjdG9yPFVUVHlwZUl0ZW0+JiB2ZWN0b3JPZlVUVHlwZVJlY29yZHMoKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8VVRUeXBlSXRlbT4+IHZlY3RvcjsK
KyAgICByZXR1cm4gdmVjdG9yOworfQorCitzdGF0aWMgSU1QIHR5cGVSZWNvcmRXaXRoVGFnT3Jp
Z2luYWwgPSBuaWw7CisKK3N0YXRpYyBVVFR5cGVSZWNvcmQgKnR5cGVSZWNvcmRXaXRoVGFnT3Zl
cnJpZGUoaWQgc2VsZiwgU0VMIHNlbGVjdG9yLCBOU1N0cmluZyAqdGFnLCBOU1N0cmluZyAqdGFn
Q2xhc3MsIE5TU3RyaW5nICppZGVudGlmaWVyKQoreworICAgIGZvciAoYXV0byYgciA6IHZlY3Rv
ck9mVVRUeXBlUmVjb3JkcygpKSB7CisgICAgICAgIGlmIChyLnRhZyA9PSBTdHJpbmcodGFnKSAm
JiByLnRhZ0NsYXNzID09IFN0cmluZyh0YWdDbGFzcykgJiYgci5pZGVudGlmaWVyID09IFN0cmlu
ZyhpZGVudGlmaWVyKSkgeworICAgICAgICAgICAgV2ViVVRUeXBlUmVjb3JkICpyZWNvcmQgPSBb
V2ViVVRUeXBlUmVjb3JkIGFsbG9jXTsKKyAgICAgICAgICAgIFtyZWNvcmQgc2V0SWRlbnRpZmll
cjpyLnV0aV07CisgICAgICAgICAgICByZXR1cm4gcmVjb3JkOworICAgICAgICB9CisgICAgfQor
ICAgIFdURkxvZ0Fsd2F5cygiVW5rbm93biBVVEk6ICVzICVzICVzXG4iLCBTdHJpbmcodGFnKS51
dGY4KCkuZGF0YSgpLCBTdHJpbmcodGFnQ2xhc3MpLnV0ZjgoKS5kYXRhKCksIFN0cmluZyhpZGVu
dGlmaWVyKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiB3dGZDYWxsSU1QPFVUVHlwZVJlY29yZCAqPih0eXBlUmVjb3JkV2l0aFRh
Z09yaWdpbmFsLCBzZWxmLCBzZWxlY3RvciwgdGFnLCB0YWdDbGFzcywgaWRlbnRpZmllcik7Cit9
CisKK2NvbnN0IFZlY3RvcjxVVFR5cGVJdGVtPiYgY3JlYXRlVmVjdG9yT2ZVVFR5cGVJdGVtKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3Ig
PSBbXSB7CisgICAgICAgIFZlY3RvcjxVVFR5cGVJdGVtPiB2ID0gc3RkOjppbml0aWFsaXplcl9s
aXN0PFVUVHlwZUl0ZW0+IHsKKyAgICAgICAgICAgIHsgInZpZGVvL21wNCJfcywgInB1YmxpYy5t
aW1lLXR5cGUiX3MsIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSwgc3RhdGljX2Nhc3Q8Y2hh
cio+KG51bGxwdHIpIH0sCisgICAgICAgIH07CisgICAgICAgIGZvciAoYXV0byYgciA6IHYpCisg
ICAgICAgICAgICByLnV0aSA9IFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJGb3JUYWco
ci50YWdDbGFzcy5jcmVhdGVDRlN0cmluZygpLmdldCgpLCByLnRhZy5jcmVhdGVDRlN0cmluZygp
LmdldCgpLCByLmlkZW50aWZpZXIuaXNOdWxsKCkgPyBudWxscHRyIDogci5pZGVudGlmaWVyLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICByZXR1cm4gdjsKKyAgICB9KCk7CisgICAg
cmV0dXJuIHZlY3RvcjsKK30KKwordm9pZCBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oVmVjdG9yPFVU
VHlwZUl0ZW0+JiYgdmVjdG9yKQoreworICAgIHZlY3Rvck9mVVRUeXBlUmVjb3JkcygpID0gV1RG
TW92ZSh2ZWN0b3IpOworfQorCit2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKQoreworICAgIE1l
dGhvZCB0eXBlUmVjb3JkV2l0aFRhZ01ldGhvZCA9IGNsYXNzX2dldENsYXNzTWV0aG9kKG9iamNf
Z2V0Q2xhc3MoIlVUVHlwZVJlY29yZCIpLCBAc2VsZWN0b3IodHlwZVJlY29yZFdpdGhUYWc6IG9m
Q2xhc3M6IGNvbmZvcm1pbmdUb0lkZW50aWZpZXI6KSk7CisgICAgdHlwZVJlY29yZFdpdGhUYWdP
cmlnaW5hbCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbih0eXBlUmVjb3JkV2l0aFRhZ01ldGhv
ZCwgKElNUCl0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKTsKK30KKworfTsKKworI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGls
aXRpZXMuaAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvVVRJVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAg
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIE1JTUVUeXBlRnJvbVVUSShjbwogU3RyaW5nIE1JTUVUeXBl
RnJvbVVUSVRyZWUoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgVVRJRnJv
bU1JTUVUeXBlKGNvbnN0IFN0cmluZyYpOwogYm9vbCBpc0RlY2xhcmVkVVRJKGNvbnN0IFN0cmlu
ZyYpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIFVUSUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdD
bGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKTsK
IAogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRVVElGcm9tTUlNRVR5cGVNYXAoSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4mJik7CiBXRUJDT1JFX0VYUE9SVCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiYgY3JlYXRlVVRJRnJvbU1JTUVUeXBlTWFwKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCShyZXZpc2lvbiAy
NTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRp
ZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2MSw2ICsxNjEsMTIgQEAgYm9vbCBpc0RlY2xhcmVk
VVRJKGNvbnN0IFN0cmluZyYgVVRJKQogICAgIHJldHVybiBVVFR5cGVJc0RlY2xhcmVkKFVUSS5j
cmVhdGVDRlN0cmluZygpLmdldCgpKTsKIH0KIAorU3RyaW5nIFVUSUZyb21UYWcoY29uc3QgU3Ry
aW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgY29uZm9ybWlu
Z1RvVVRJKQoreworICAgIGF1dG8gdSA9IGFkb3B0Q0YoVVRUeXBlQ3JlYXRlUHJlZmVycmVkSWRl
bnRpZmllckZvclRhZyh0YWdDbGFzcy5jcmVhdGVDRlN0cmluZygpLmdldCgpLCB0YWcuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSwgY29uZm9ybWluZ1RvVVRJLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkp
KTsKKyAgICByZXR1cm4gU3RyaW5nKHUuZ2V0KCkpOworfQorCiBzdGF0aWMgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGFkZGl0aW9uYWxNSU1FVHlwZXMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxWZWN0b3I8U3RyaW5nPj4gbWltZVR5cGVzID0gc3RkOjppbml0aWFsaXplcl9saXN0PFN0
cmluZz4gewpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2aXNpb24g
MjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NTAxLDYgKzU1MDEsMTEgQEAgU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJv
bU1JTUVUeXBlKGNvbgogewogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQorCitTdHJpbmcg
SW50ZXJuYWxzOjpnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0
cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkKK3sKKyAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKK30KICNlbmRpZgogCiBTdHJpbmcgSW50ZXJuYWxzOjptZWRpYU1JTUVU
eXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQpJbmRleDogU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC05NDMsNiArOTQzLDcgQEAgcHVi
bGljOgogICAgIFN0cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYg
ZXh0ZW5zaW9uKTsKIAogICAgIFN0cmluZyBnZXRVVElGcm9tTUlNRVR5cGUoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSk7CisgICAgU3RyaW5nIGdldFVUSUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdD
bGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKTsK
IAogICAgIGJvb2wgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtODUzLDYgKzg1Myw3
IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIERPTVN0cmluZyBtZWRpYU1JTUVUeXBl
Rm9yRXh0ZW5zaW9uKERPTVN0cmluZyBleHRlbnNpb24pOwogCiAgICAgRE9NU3RyaW5nIGdldFVU
SUZyb21NSU1FVHlwZShET01TdHJpbmcgbWltZVR5cGUpOworICAgIERPTVN0cmluZyBnZXRVVElG
cm9tVGFnKERPTVN0cmluZyB0YWdDbGFzcywgRE9NU3RyaW5nIHRhZywgRE9NU3RyaW5nIGNvbmZv
cm1pbmdUb1VUSSk7CiAKICAgICBib29sZWFuIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1tCShyZXZpc2lvbiAyNTgxMDcp
CisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTA2LDQgKzEwNiw5IEBAIFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlwZShj
b24KICAgICByZXR1cm4gVVRJRnJvbU1JTUVUeXBlKG1pbWVUeXBlKTsKIH0KIAorU3RyaW5nIElu
dGVybmFsczo6Z2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJp
bmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpCit7CisgICAgcmV0dXJuIFVU
SUZyb21UYWcodGFnQ2xhc3MsIHRhZywgY29uZm9ybWluZ1RvVVRJKTsKK30KKwogfQpJbmRleDog
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDMtMDggIFBlciBBcm5lIFZvbGxhbiAg
PHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIE1hcHBpbmcgdG8gVVRJIGZyb20g
dGFnIGFuZCB0YWcgY2xhc3Mgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBSZXNvdXJj
ZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2I6Cisg
ICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpVVFR5cGVJdGVtOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVVFR5cGVJdGVt
OjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVVRUeXBlUmVjb3JkU3dpenps
ZXIubW06IEFkZGVkLgorICAgICAgICAoLVtXS1VUVHlwZVJlY29yZCBzZXRJZGVudGlmaWVyOl0p
OgorICAgICAgICAoV2ViS2l0Ojp2ZWN0b3JPZlVUVHlwZVJlY29yZHMpOgorICAgICAgICAoV2Vi
S2l0Ojp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRl
VmVjdG9yT2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6c2V0VmVjdG9yT2ZVVFR5cGVJ
dGVtKToKKyAgICAgICAgKFdlYktpdDo6c3dpenpsZVVUVHlwZVJlY29yZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAzLTA4ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBOdWxsLWRl
cmVmZXJlbmNlIGNyYXNoIGluIEdQVVByb2Nlc3NQcm94eTo6b3BlbkdQVVByb2Nlc3NDb25uZWN0
aW9uKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3Mv
Y29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50LnNiCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkod29ya2luZyBj
b3B5KQpAQCAtODQ4LDcgKzg0OCw3IEBACiAoYWxsb3cgbWFjaC1sb29rdXAKICAgICAocmVxdWly
ZS1hbGwKICAgICAgICAgKGV4dGVuc2lvbiAiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFj
aCIpCi0gICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0
ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBwbGUubmVoZWxwZXIiICJjb20uYXBwbGUu
bmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIgImNvbS5hcHBsZS51aWtpdC52aWV3c2Vy
dmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSIgImNvbS5hcHBsZS5kaWFn
bm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQiICJj
b20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVtYXBw
c2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiAiY29tLmFwcGxlLndlYmluc3BlY3Rv
ciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIgImNvbS5hcHBsZS5jZnByZWZz
ZC5kYWVtb24iCisgICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZl
ci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBwbGUubmVoZWxwZXIiICJjb20u
YXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIgImNvbS5hcHBsZS51aWtpdC52
aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSIgImNvbS5hcHBs
ZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNvbS5hcHBsZS5tb2JpbGVhc3Nl
dGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lz
dGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiAiY29tLmFwcGxlLndlYmlu
c3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIgImNvbS5hcHBsZS5j
ZnByZWZzZC5kYWVtb24iICJjb20uYXBwbGUubHNkLm1hcGRiIgogCiAgICAgICAgICAgICA7Ozsg
RklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBH
UFUgcHJvY2VzcyBpcyBjb21wbGV0ZQogICAgICAgICAgICAgImNvbS5hcHBsZS5haXJwbGF5LmFw
c3luY2NvbnRyb2xsZXIueHBjIiAiY29tLmFwcGxlLmF1ZGlvLkFVUmVtb3RlSU9TZXJ2ZXIiICJj
b20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRSZWdpc3RyYXIiCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAko
cmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw2ICsxODAsNyBAQCB2b2lk
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5jb2RlciA8PCBjc3NW
YWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgZW5jb2RlciA8PCBmb2N1c1JpbmdDb2xvcjsKICAg
ICBlbmNvZGVyIDw8IGxvY2FsaXplZERldmljZU1vZGVsOworICAgIGVuY29kZXIgPDwgdmVjdG9y
T2ZVVFR5cGVJdGVtOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTQ5Myw2ICs0
OTQsMTIgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgIAog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5sb2NhbGl6ZWREZXZpY2VNb2RlbCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBPcHRpb25hbDxWZWN0b3I8VVRUeXBl
SXRlbT4+IHZlY3Rvck9mVVRUeXBlSXRlbTsKKyAgICBkZWNvZGVyID4+IHZlY3Rvck9mVVRUeXBl
SXRlbTsKKyAgICBpZiAoIXZlY3Rvck9mVVRUeXBlSXRlbSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtID0gV1RGTW92ZSgqdmVjdG9yT2ZV
VFR5cGVJdGVtKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShy
ZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KICNlbmRpZgogCiBuYW1l
c3BhY2UgQVBJIHsKQEAgLTIyMyw2ICsyMjQsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OkNTU1ZhbHVlVG9TeXN0
ZW1Db2xvck1hcCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgV2ViQ29yZTo6Q29sb3Ig
Zm9jdXNSaW5nQ29sb3I7CiAgICAgU3RyaW5nIGxvY2FsaXplZERldmljZU1vZGVsOworICAgIFZl
Y3RvcjxXZWJDb3JlOjpVVFR5cGVJdGVtPiB2ZWN0b3JPZlVUVHlwZUl0ZW07CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTgxMDcpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNzYsOSArMzc2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVcKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBp
ZiAoIVdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpKSB7CisgICAgaWYg
KCFXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKSB8fCBfQVhTQXBwbGlj
YXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBzZXJ2aWNlc1tdID0gewogICAgICAgICAgICAgImNvbS5hcHBsZS5sc2Qub3BlbiIsCisgICAg
ICAgICAgICAiY29tLmFwcGxlLmxzZC5tYXBkYiIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLm1v
YmlsZWFzc2V0ZCIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIsCiAgICAg
ICAgICAgICAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIiwKQEAgLTQyOSw4ICs0
MzAsOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgcGFy
YW1ldGVycy5jc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAgPSBSZW5kZXJUaGVtZUlPUzo6Y3NzVmFs
dWVUb1N5c3RlbUNvbG9yTWFwKCk7CiAgICAgcGFyYW1ldGVycy5mb2N1c1JpbmdDb2xvciA9IFJl
bmRlclRoZW1lOjpzaW5nbGV0b24oKS5mb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4oKSk7CiAgICAgcGFyYW1ldGVycy5sb2NhbGl6ZWREZXZpY2VNb2RlbCA9IGxv
Y2FsaXplZERldmljZU1vZGVsKCk7CisgICAgcGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0g
PSBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKICNlbmRpZgotCiAgICAgCiAgICAgLy8gQWxs
b3cgbWljcm9waG9uZSBhY2Nlc3MgaWYgZWl0aGVyIHByZWZlcmVuY2UgaXMgc2V0IGJlY2F1c2Ug
V2ViUlRDIHJlcXVpcmVzIG1pY3JvcGhvbmUgYWNjZXNzLgogICAgIGJvb2wgbmVlZFdlYlByb2Nl
c3NFeHRlbnNpb25zID0gIW1fZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS51c2VHUFVQ
cm9jZXNzRm9yTWVkaWEoKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDMsNiArMTAzLDcgQEAKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgogI2ltcG9y
dCAiV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdElPUy5oIgogI2ltcG9ydCA8VUlLaXQvVUlB
Y2Nlc3NpYmlsaXR5Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjZW5kaWYKIApA
QCAtMjk2LDYgKzI5NywxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByCiAgICAgICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQoZmFsc2UpOwogICAgIH0K
ICNlbmRpZgorICAgICAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFdlYkNvcmU6
OnN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKyAgICBXZWJDb3JlOjpzZXRWZWN0b3JPZlVUVHlwZUl0
ZW0oV1RGTW92ZShwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSkpOworI2VuZGlmCiB9CiAK
IHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhX
ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392978</attachid>
            <date>2020-03-08 13:11:14 -0700</date>
            <delta_ts>2020-03-08 13:45:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308131113.patch</filename>
            <type>text/plain</type>
            <size>28863</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvUGxhdGZvcm1Vc2UuaAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dURi93
dGYvUGxhdGZvcm1Vc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzIwLDMgKzMyMCw3IEBACiAjaWYg
UExBVEZPUk0oQ09DT0EpICYmICEoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIDwgMTAxNjAwKQogI2RlZmluZSBVU0VfQ1RGT05UVFJBTlNGT1JNR0xZUEhT
V0lUSExBTkdVQUdFIDEKICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwCisjZGVmaW5lIFVTRV9VVFRZ
UEVfU1dJWlpMRVIgMQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgxMDcpCisr
KyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBA
QAorMjAyMC0wMy0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gTWFwcGluZyB0byBVVEkgZnJvbSB0YWcgYW5kIHRhZyBjbGFzcyBzaG91bGQg
YmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlVUVHlwZUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpVVFR5cGVJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29h
L1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViVVRUeXBlUmVj
b3JkIHNldElkZW50aWZpZXI6XSk6CisgICAgICAgIChXZWJDb3JlOjp2ZWN0b3JPZlVUVHlwZVJl
Y29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0VmVjdG9yT2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OnN3aXp6bGVV
VFR5cGVSZWNvcmQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMubW06CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVU
SUZyb21UYWcpOgorCiAyMDIwLTAzLTA4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FudmFzIGRyYXdpbmcgY29tbWFuZHMgaGF2ZSB0byBi
ZSBmbHVzaGVkIHRvIHRoZSBHUFVQcm9jZXNzIGluIGJhdGNoZXMKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1
ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtNDgxNiw2ICs0ODE2LDcgQEAKIAkJRTFGRTEzN0IxODREMjFC
QjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LVy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzNzkxODREMjFCQjAwODkyRjEzIC8qIENy
eXB0b0FsZ29yaXRobUFFU19LVy5oICovOyB9OwogCQlFMUZGNTdBMzBGMDEyNTVCMDA4OTFFQkIg
LyogVGhyZWFkR2xvYmFsRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFGRjU3QTIwRjAxMjU1QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUZG
OEY2RDE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgwREI1QkUw
MDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovOyB9OworCQlFMzAzN0Y0NDI0
MTU3RTlDMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDM3RjQyMjQxNTdFOUIwMDMxQ0Ew
RiAvKiBDb3JlU2VydmljZXMuZnJhbWV3b3JrICovOyB9OwogCQlFMzA1OTI2NDFFMjdBM0FEMDBE
NTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjIxRTI3QTM4QzAwRDU3Qzk4IC8qIElubGluZUNs
YXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMzA1OTI2ODFFMjdBM0QxMDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjYx
RTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA3REVEMDFEODFFNEM3MDAxNDFD
QUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTQ4MzksNiArNDg0MCw4IEBACiAJCUUzQkJDMjQ3MjM4MzU1MjYwMDZF
QzM5RiAvKiBDU1NWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTNCQkMyNDUyMzgzNTUxQTAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNDOTlBMDkx
REMzRDQxQzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5OUEwODFEQzNENDE3MDA3OTRBRDMgLyogRE9N
SklUQ2hlY2tET00uaCAqLzsgfTsKIAkJRTNDOUFFQ0IyMTEzMTQ5OTAwNDE5QjkyIC8qIEpTTWlj
cm90YXNrQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQzlBRUM5MjExMzE0NzQwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmgg
Ki87IH07CisJCUUzQ0FBQTYxMjQxNTVGODcwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDQUFB
NUUyNDE1NUVGMjAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTNDQUFBNjIyNDE1NjEzMjAw
Q0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDQUFBNjAyNDE1NUVGMzAwQ0VEMkUyIC8qIFVUVHlw
ZVJlY29yZFN3aXp6bGVyLm1tICovOyB9OwogCQlFM0U0RTJBODFFM0IxNzEwMDAyM0JCOEEgLyog
U2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRTRFMkE2MUUzQjE2RkMwMDIzQkI4QSAvKiBTY3Jp
cHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzRkEzODY0MUQ3MTgxMkQwMEFBNTk1MCAvKiBQZW5k
aW5nU2NyaXB0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0ZBMzg2MTFENzE2RTc2MDBBQTU5NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5o
ICovOyB9OwogCQlFNDAxQzI3NTE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNz
ZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUxNDks
NiArMTUxNTIsNyBAQAogCQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFs
RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRHbG9i
YWxEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkExODBEQjVC
RTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENy
eXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUz
MDM3RjQyMjQxNTdFOUIwMDMxQ0EwRiAvKiBDb3JlU2VydmljZXMuZnJhbWV3b3JrICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdv
cms7IG5hbWUgPSBDb3JlU2VydmljZXMuZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsg
fTsKIAkJRTMwNTkyNjExRTI3QTM4QzAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lQ2xhc3NpY1Njcmlw
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDU5MjYyMUUyN0EzOEMwMEQ1
N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElubGluZUNsYXNzaWNTY3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTMwNTkyNjUxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkU2NyaXB0RmV0Y2hlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTIwMiw2ICsxNTIwNiw4IEBACiAJ
CUUzQkYxOUU3MjJBRjMwOUYwMDlDOTkyNiAvKiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5OUEwODFEQzNENDE3MDA3OTRBRDMg
LyogRE9NSklUQ2hlY2tET00uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
SklUQ2hlY2tET00uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDOUFFQzkyMTEz
MTQ3NDAwNDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNNaWNyb3Rhc2tDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenps
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRUeXBlUmVjb3JkU3dpenps
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFBNjAyNDE1NUVGMzAwQ0VE
MkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVVRUeXBlUmVjb3JkU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzRDA0OTkzMURBREMwNDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVDb25zdGFudHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFNEUyQTUxRTNCMTZGQzAwMjNCQjhBIC8qIFNjcmlw
dEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFNEUyQTYxRTNCMTZGQzAwMjNCQjhBIC8qIFNjcmlw
dEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNTk3Nyw2ICsxNTk4Myw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQlG
RDJEQkYxMjEyQjA0OEEzMDBFRDk4QzYgLyogQWNjZWxlcmF0ZS5mcmFtZXdvcmsgaW4gRnJhbWV3
b3JrcyAqLywKIAkJCQlGRDJEQkYxMzEyQjA0OEEzMDBFRDk4QzYgLyogQXVkaW9Ub29sYm94LmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJCUUzMDM3RjQ0MjQxNTdFOUMwMDMxQ0EwRiAv
KiBDb3JlU2VydmljZXMuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMUFCMzNEQTUx
MjU1MUUzMjAwMjQ0NTdBIC8qIElPS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJ
CTkzRjE5QjE2MDgyNDVFNTkwMDFFOUFCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLywKIAkJCQkxQzAyMkYwMDIyQ0ZFRDY4MDA2REYwMUIgLyogbGliY29tcHJl
c3Npb24udGJkIGluIEZyYW1ld29ya3MgKi8sCkBAIC0xNjU3NSw2ICsxNjU4Miw3IEBACiAJCQkJ
RkQyREJGMEYxMkIwNDhBMzAwRUQ5OEM2IC8qIEF1ZGlvVG9vbGJveC5mcmFtZXdvcmsgKi8sCiAJ
CQkJQTE3NjNGNDAxRTIwNTg2RTAwMUQ1OERFIC8qIENGTmV0d29yay5mcmFtZXdvcmsgKi8sCiAJ
CQkJQUE1RjNCOTAxNkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAq
LywKKwkJCQlFMzAzN0Y0MjI0MTU3RTlCMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29y
ayAqLywKIAkJCQlBMTVFNkJGMDFFMjEyQTZBMDA4MEFGMzQgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgKi8sCiAJCQkJMUFCMzNEQTQxMjU1MUUzMjAwMjQ0NTdBIC8qIElPS2l0LmZyYW1ld29yayAq
LywKIAkJCQlGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3
b3JrICovLApAQCAtMjMxMjIsNiArMjMxMzAsOCBAQAogCQkJCTMxMEQ3MTk0MUIzMzVDOUQwMDlD
N0I3MyAvKiBUaGVtZUNvY29hLmggKi8sCiAJCQkJMzEwRDcxOTMxQjMzNUM5RDAwOUM3QjczIC8q
IFRoZW1lQ29jb2EubW0gKi8sCiAJCQkJQTNBRjlEODEyMDMyNTJFRTAwNkNBRDA2IC8qIFVzZXJB
Z2VudENvY29hLm1tICovLAorCQkJCUUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVS
ZWNvcmRTd2l6emxlci5oICovLAorCQkJCUUzQ0FBQTYwMjQxNTVFRjMwMENFRDJFMiAvKiBVVFR5
cGVSZWNvcmRTd2l6emxlci5tbSAqLywKIAkJCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyog
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLywKIAkJCQk1MkQ1QTFBNDFDNTc0ODg5
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLywKIAkJCQk1MkQ1QTFBNTFDNTc0
ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLywKQEAg
LTMyOTM0LDYgKzMyOTQ0LDcgQEAKIAkJCQk1NzJCNDAzNjIxNzZBOTIyMDAwQUQ0M0UgLyogVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFGMTRFNjFF
QUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGQUZC
RjE5MTVBNUZBNzQwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUzQ0FBQTYxMjQxNTVGODcwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODNDNDVCOEUxREMyQjY4QTAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJi
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxp
ZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxM0EzRUExNUZGNDg0MTAwMTUy
NkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0Mzc0
LDYgKzM0Mzg1LDcgQEAKIAkJCQk3QzNCNzk3MTE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3Nh
Z2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDky
OCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzQ0FBQTYyMjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5
cGVSZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0QUYzMTg5ODgxNTYw
MDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCRTg4RTBERTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9U
cmFjay5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVVRUeXBlSXRlbSB7CisgICAgU3Ry
aW5nIHRhZzsKKyAgICBTdHJpbmcgdGFnQ2xhc3M7CisgICAgU3RyaW5nIGlkZW50aWZpZXI7Cisg
ICAgU3RyaW5nIHV0aTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0
aW9uYWw8VVRUeXBlSXRlbT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK1dFQkNPUkVfRVhQT1JU
IHZvaWQgc3dpenpsZVVUVHlwZVJlY29yZCgpOworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBWZWN0
b3I8VVRUeXBlSXRlbT4mIGNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpOworV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oVmVjdG9yPFVUVHlwZUl0ZW0+JiYpOworCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBVVFR5cGVJdGVtOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRhZzsKKyAgICBlbmNvZGVyIDw8IHRh
Z0NsYXNzOworICAgIGVuY29kZXIgPDwgaWRlbnRpZmllcjsKKyAgICBlbmNvZGVyIDw8IHV0aTsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFVUVHlwZUl0ZW0+IFVUVHlw
ZUl0ZW06OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFN0cmluZz4g
dGFnOworICAgIGRlY29kZXIgPj4gdGFnOworICAgIGlmICghdGFnKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiB0YWdDbGFzczsKKyAgICBkZWNv
ZGVyID4+IHRhZ0NsYXNzOworICAgIGlmICghdGFnQ2xhc3MpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IGlkZW50aWZpZXI7CisgICAgZGVjb2Rl
ciA+PiBpZGVudGlmaWVyOworICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdXRpOworICAgIGRlY29kZXIgPj4g
dXRpOworICAgIGlmICghdXRpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
cmV0dXJuIFVUVHlwZUl0ZW0geyAqdGFnLCAqdGFnQ2xhc3MsICppZGVudGlmaWVyLCAqdXRpIH07
Cit9Cit9OworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VU
VHlwZVJlY29yZFN3aXp6bGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTI0IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisq
IGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVVRUeXBlUmVjb3Jk
U3dpenpsZXIuaCIKKworI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisKKyNpbXBvcnQgPE1vYmls
ZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KKworI2ltcG9ydCA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KKyNpbXBvcnQg
PHd0Zi9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgorI2ltcG9ydCA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1w
b3J0IDxDb3JlU2VydmljZXMvTFNQcm9wZXJ0eUxpc3RQcml2Lmg+CisjaW1wb3J0IDxDb3JlU2Vy
dmljZXMvVVRUeXBlUmVjb3JkUHJpdi5oPgorCisjZWxzZQorCitfX2F0dHJpYnV0ZV9fKCh2aXNp
YmlsaXR5KCJkZWZhdWx0IikpKQorQGludGVyZmFjZSBMU1JlY29yZCA6IE5TT2JqZWN0IDxOU0Nv
cHlpbmcsIE5TRGlzY2FyZGFibGVDb250ZW50PgorQGVuZAorCitfX2F0dHJpYnV0ZV9fKCh2aXNp
YmlsaXR5KCJkZWZhdWx0IikpKQorQGludGVyZmFjZSBVVFR5cGVSZWNvcmQgOiBMU1JlY29yZAor
KyAobnVsbGFibGUgaW5zdGFuY2V0eXBlKXR5cGVSZWNvcmRXaXRoVGFnOihOU1N0cmluZyAqKXRh
ZyBvZkNsYXNzOihOU1N0cmluZyAqKXRhZ0NsYXNzIGNvbmZvcm1pbmdUb0lkZW50aWZpZXI6KE5T
U3RyaW5nICopY29uZm9ybXNUbzsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIE5TU3RyaW5nICppZGVu
dGlmaWVyOworQGVuZAorCisjZW5kaWYKKworX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVm
YXVsdCIpKSkKK0BpbnRlcmZhY2UgV2ViVVRUeXBlUmVjb3JkIDogVVRUeXBlUmVjb3JkCistICh2
b2lkKXNldElkZW50aWZpZXI6KE5TU3RyaW5nICopaTsKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFdlYlVUVHlwZVJlY29yZCB7CitAcGFja2FnZQorICAgIE5TU3RyaW5nICpfaWRlbnRpZmllcjsK
K30KK0BzeW50aGVzaXplIGlkZW50aWZpZXI9X2lkZW50aWZpZXI7CistICh2b2lkKXNldElkZW50
aWZpZXI6KE5TU3RyaW5nICopaQoreworICAgIF9pZGVudGlmaWVyID0gaTsKK30KK0BlbmQKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgVmVjdG9yPFVUVHlwZUl0ZW0+JiB2ZWN0b3JP
ZlVUVHlwZVJlY29yZHMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8VVRU
eXBlSXRlbT4+IHZlY3RvcjsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCitzdGF0aWMgSU1QIHR5
cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwgPSBuaWw7CisKK3N0YXRpYyBVVFR5cGVSZWNvcmQgKnR5
cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUoaWQgc2VsZiwgU0VMIHNlbGVjdG9yLCBOU1N0cmluZyAq
dGFnLCBOU1N0cmluZyAqdGFnQ2xhc3MsIE5TU3RyaW5nICppZGVudGlmaWVyKQoreworICAgIGZv
ciAoYXV0byYgciA6IHZlY3Rvck9mVVRUeXBlUmVjb3JkcygpKSB7CisgICAgICAgIGlmIChyLnRh
ZyA9PSBTdHJpbmcodGFnKSAmJiByLnRhZ0NsYXNzID09IFN0cmluZyh0YWdDbGFzcykgJiYgci5p
ZGVudGlmaWVyID09IFN0cmluZyhpZGVudGlmaWVyKSkgeworICAgICAgICAgICAgV2ViVVRUeXBl
UmVjb3JkICpyZWNvcmQgPSBbV2ViVVRUeXBlUmVjb3JkIGFsbG9jXTsKKyAgICAgICAgICAgIFty
ZWNvcmQgc2V0SWRlbnRpZmllcjpyLnV0aV07CisgICAgICAgICAgICByZXR1cm4gcmVjb3JkOwor
ICAgICAgICB9CisgICAgfQorICAgIFdURkxvZ0Fsd2F5cygiVW5rbm93biBVVEk6ICVzICVzICVz
XG4iLCBTdHJpbmcodGFnKS51dGY4KCkuZGF0YSgpLCBTdHJpbmcodGFnQ2xhc3MpLnV0ZjgoKS5k
YXRhKCksIFN0cmluZyhpZGVudGlmaWVyKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB3dGZDYWxsSU1QPFVUVHlwZVJlY29yZCAq
Pih0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsLCBzZWxmLCBzZWxlY3RvciwgdGFnLCB0YWdDbGFz
cywgaWRlbnRpZmllcik7Cit9CisKK2NvbnN0IFZlY3RvcjxVVFR5cGVJdGVtPiYgY3JlYXRlVmVj
dG9yT2ZVVFR5cGVJdGVtKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFVU
VHlwZUl0ZW0+PiB2ZWN0b3IgPSBbXSB7CisgICAgICAgIFZlY3RvcjxVVFR5cGVJdGVtPiB2ID0g
c3RkOjppbml0aWFsaXplcl9saXN0PFVUVHlwZUl0ZW0+IHsKKyAgICAgICAgICAgIHsgInZpZGVv
L21wNCJfcywgInB1YmxpYy5taW1lLXR5cGUiX3MsIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRy
KSwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpIH0sCisgICAgICAgIH07CisgICAgICAgIGZv
ciAoYXV0byYgciA6IHYpCisgICAgICAgICAgICByLnV0aSA9IFVUVHlwZUNyZWF0ZVByZWZlcnJl
ZElkZW50aWZpZXJGb3JUYWcoci50YWdDbGFzcy5jcmVhdGVDRlN0cmluZygpLmdldCgpLCByLnRh
Zy5jcmVhdGVDRlN0cmluZygpLmdldCgpLCByLmlkZW50aWZpZXIuaXNOdWxsKCkgPyBudWxscHRy
IDogci5pZGVudGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICByZXR1cm4g
djsKKyAgICB9KCk7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKwordm9pZCBzZXRWZWN0b3JPZlVU
VHlwZUl0ZW0oVmVjdG9yPFVUVHlwZUl0ZW0+JiYgdmVjdG9yKQoreworICAgIHZlY3Rvck9mVVRU
eXBlUmVjb3JkcygpID0gV1RGTW92ZSh2ZWN0b3IpOworfQorCit2b2lkIHN3aXp6bGVVVFR5cGVS
ZWNvcmQoKQoreworICAgIE1ldGhvZCB0eXBlUmVjb3JkV2l0aFRhZ01ldGhvZCA9IGNsYXNzX2dl
dENsYXNzTWV0aG9kKG9iamNfZ2V0Q2xhc3MoIlVUVHlwZVJlY29yZCIpLCBAc2VsZWN0b3IodHlw
ZVJlY29yZFdpdGhUYWc6IG9mQ2xhc3M6IGNvbmZvcm1pbmdUb0lkZW50aWZpZXI6KSk7CisgICAg
dHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbih0eXBl
UmVjb3JkV2l0aFRhZ01ldGhvZCwgKElNUCl0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKTsKK30K
KworfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9VVElVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9VVElVdGlsaXRpZXMuaAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDcgQEAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIE1JTUVUeXBlRnJvbVVUSShj
bwogU3RyaW5nIE1JTUVUeXBlRnJvbVVUSVRyZWUoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgVVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYpOwogYm9vbCBpc0RlY2xh
cmVkVVRJKGNvbnN0IFN0cmluZyYpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIFVUSUZyb21UYWco
Y29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYg
Y29uZm9ybWluZ1RvVVRJKTsKIAogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRVVElGcm9tTUlNRVR5
cGVNYXAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mJik7CiBXRUJDT1JFX0VYUE9SVCBjb25zdCBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiYgY3JlYXRlVVRJRnJvbU1JTUVUeXBlTWFwKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0
aWVzLm1tCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9VVElVdGlsaXRpZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2MSw2ICsxNjEsMTIg
QEAgYm9vbCBpc0RlY2xhcmVkVVRJKGNvbnN0IFN0cmluZyYgVVRJKQogICAgIHJldHVybiBVVFR5
cGVJc0RlY2xhcmVkKFVUSS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKIH0KIAorU3RyaW5nIFVU
SUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0
IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKQoreworICAgIGF1dG8gdSA9IGFkb3B0Q0YoVVRUeXBl
Q3JlYXRlUHJlZmVycmVkSWRlbnRpZmllckZvclRhZyh0YWdDbGFzcy5jcmVhdGVDRlN0cmluZygp
LmdldCgpLCB0YWcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgY29uZm9ybWluZ1RvVVRJLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKKyAgICByZXR1cm4gU3RyaW5nKHUuZ2V0KCkpOworfQorCiBz
dGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFkZGl0aW9uYWxNSU1FVHlwZXMoKQogewogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbWltZVR5cGVzID0gc3RkOjpp
bml0aWFsaXplcl9saXN0PFN0cmluZz4gewpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTAxLDYgKzU1MDEsMTEgQEAgU3RyaW5nIElu
dGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKGNvbgogewogICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwogfQorCitTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYg
dGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VU
SSkKK3sKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30KICNlbmRpZgogCiBTdHJpbmcgSW50
ZXJuYWxzOjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9u
KQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAyNTgxMDcpCisr
KyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC05
NDMsNiArOTQzLDcgQEAgcHVibGljOgogICAgIFN0cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5z
aW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKTsKIAogICAgIFN0cmluZyBnZXRVVElGcm9tTUlN
RVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CisgICAgU3RyaW5nIGdldFVUSUZyb21UYWco
Y29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYg
Y29uZm9ybWluZ1RvVVRJKTsKIAogICAgIGJvb2wgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHJldmlzaW9uIDI1ODEw
NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtODUzLDYgKzg1Myw3IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIERPTVN0
cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKERPTVN0cmluZyBleHRlbnNpb24pOwogCiAg
ICAgRE9NU3RyaW5nIGdldFVUSUZyb21NSU1FVHlwZShET01TdHJpbmcgbWltZVR5cGUpOworICAg
IERPTVN0cmluZyBnZXRVVElGcm9tVGFnKERPTVN0cmluZyB0YWdDbGFzcywgRE9NU3RyaW5nIHRh
ZywgRE9NU3RyaW5nIGNvbmZvcm1pbmdUb1VUSSk7CiAKICAgICBib29sZWFuIHN1cHBvcnRzUGlj
dHVyZUluUGljdHVyZSgpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1t
CShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTA2LDQgKzEwNiw5IEBAIFN0cmluZyBJbnRlcm5hbHM6Omdl
dFVUSUZyb21NSU1FVHlwZShjb24KICAgICByZXR1cm4gVVRJRnJvbU1JTUVUeXBlKG1pbWVUeXBl
KTsKIH0KIAorU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRh
Z0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkp
Cit7CisgICAgcmV0dXJuIFVUSUZyb21UYWcodGFnQ2xhc3MsIHRhZywgY29uZm9ybWluZ1RvVVRJ
KTsKK30KKwogfQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDMtMDgg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIE1h
cHBpbmcgdG8gVVRJIGZyb20gdGFnIGFuZCB0YWcgY2xhc3Mgc2hvdWxkIGJlIHBlcmZvcm1lZCBp
biB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA4NzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0
LldlYkNvbnRlbnQuc2I6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpVVFR5cGVJdGVtOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpVVFR5cGVJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2Ev
VVRUeXBlUmVjb3JkU3dpenpsZXIubW06IEFkZGVkLgorICAgICAgICAoLVtXS1VUVHlwZVJlY29y
ZCBzZXRJZGVudGlmaWVyOl0pOgorICAgICAgICAoV2ViS2l0Ojp2ZWN0b3JPZlVUVHlwZVJlY29y
ZHMpOgorICAgICAgICAoV2ViS2l0Ojp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKToKKyAgICAg
ICAgKFdlYktpdDo6Y3JlYXRlVmVjdG9yT2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6
c2V0VmVjdG9yT2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6c3dpenpsZVVUVHlwZVJl
Y29yZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mp
OgorCiAyMDIwLTAzLTA4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtHUFVQXSBOdWxsLWRlcmVmZXJlbmNlIGNyYXNoIGluIEdQVVByb2Nlc3NQcm94eTo6b3Bl
bkdQVVByb2Nlc3NDb25uZWN0aW9uKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LnNiCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2Vi
S2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29u
dGVudC5zYgkod29ya2luZyBjb3B5KQpAQCAtODQ4LDcgKzg0OCw3IEBACiAoYWxsb3cgbWFjaC1s
b29rdXAKICAgICAocmVxdWlyZS1hbGwKICAgICAgICAgKGV4dGVuc2lvbiAiY29tLmFwcGxlLndl
YmtpdC5leHRlbnNpb24ubWFjaCIpCi0gICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmlw
aG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBwbGUubmVo
ZWxwZXIiICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIgImNvbS5h
cHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVV
SSIgImNvbS5hcHBsZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNvbS5hcHBs
ZS5tb2JpbGVhc3NldGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFwcGxlLmZy
b250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiAiY29t
LmFwcGxlLndlYmluc3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIg
ImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iCisgICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFw
cGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBw
bGUubmVoZWxwZXIiICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIg
ImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5y
ZW1vdGVVSSIgImNvbS5hcHBsZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNv
bS5hcHBsZS5tb2JpbGVhc3NldGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFw
cGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2Vz
IiAiY29tLmFwcGxlLndlYmluc3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29u
dHJvbCIgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iICJjb20uYXBwbGUubHNkLm1hcGRiIgog
CiAgICAgICAgICAgICA7OzsgRklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUg
cmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZQogICAgICAgICAgICAgImNv
bS5hcHBsZS5haXJwbGF5LmFwc3luY2NvbnRyb2xsZXIueHBjIiAiY29tLmFwcGxlLmF1ZGlvLkFV
UmVtb3RlSU9TZXJ2ZXIiICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRSZWdpc3RyYXIi
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4
MCw2ICsxODAsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAg
ICAgZW5jb2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgZW5jb2RlciA8PCBm
b2N1c1JpbmdDb2xvcjsKICAgICBlbmNvZGVyIDw8IGxvY2FsaXplZERldmljZU1vZGVsOworICAg
IGVuY29kZXIgPDwgdmVjdG9yT2ZVVFR5cGVJdGVtOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkKQEAgLTQ5Myw2ICs0OTQsMTIgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZAogICAgIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5sb2Nh
bGl6ZWREZXZpY2VNb2RlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBPcHRp
b25hbDxWZWN0b3I8VVRUeXBlSXRlbT4+IHZlY3Rvck9mVVRUeXBlSXRlbTsKKyAgICBkZWNvZGVy
ID4+IHZlY3Rvck9mVVRUeXBlSXRlbTsKKyAgICBpZiAoIXZlY3Rvck9mVVRUeXBlSXRlbSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtID0g
V1RGTW92ZSgqdmVjdG9yT2ZVVFR5cGVJdGVtKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYg
KzUzLDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZW5kZXJUaGVtZUlPUy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIu
aD4KICNlbmRpZgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTIyMyw2ICsyMjQsNyBAQCBzdHJ1Y3Qg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6UmVuZGVyVGhlbWVJ
T1M6OkNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAg
ICAgV2ViQ29yZTo6Q29sb3IgZm9jdXNSaW5nQ29sb3I7CiAgICAgU3RyaW5nIGxvY2FsaXplZERl
dmljZU1vZGVsOworICAgIFZlY3RvcjxXZWJDb3JlOjpVVFR5cGVJdGVtPiB2ZWN0b3JPZlVUVHlw
ZUl0ZW07CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZp
c2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNzYsOSArMzc2LDEwIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICBpZiAoIVdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc01vYmlsZVNh
ZmFyaSgpKSB7CisgICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZh
cmkoKSB8fCBfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CiAgICAgICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlc1tdID0gewogICAgICAgICAgICAgImNvbS5hcHBs
ZS5sc2Qub3BlbiIsCisgICAgICAgICAgICAiY29tLmFwcGxlLmxzZC5tYXBkYiIsCiAgICAgICAg
ICAgICAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLmlj
b25zZXJ2aWNlcyIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250
cm9sIiwKQEAgLTQyOSw4ICs0MzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bml0aWFsaXplVwogICAgIHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVu
ZGVyVGhlbWVJT1M6OmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOwogICAgIHBhcmFtZXRlcnMu
Zm9jdXNSaW5nQ29sb3IgPSBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuZm9jdXNSaW5nQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KCkpOwogICAgIHBhcmFtZXRlcnMubG9jYWxp
emVkRGV2aWNlTW9kZWwgPSBsb2NhbGl6ZWREZXZpY2VNb2RlbCgpOworI2lmIFVTRShVVFRZUEVf
U1dJWlpMRVIpCisgICAgcGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0gPSBjcmVhdGVWZWN0
b3JPZlVUVHlwZUl0ZW0oKTsKKyNlbmRpZgogI2VuZGlmCi0KICAgICAKICAgICAvLyBBbGxvdyBt
aWNyb3Bob25lIGFjY2VzcyBpZiBlaXRoZXIgcHJlZmVyZW5jZSBpcyBzZXQgYmVjYXVzZSBXZWJS
VEMgcmVxdWlyZXMgbWljcm9waG9uZSBhY2Nlc3MuCiAgICAgYm9vbCBuZWVkV2ViUHJvY2Vzc0V4
dGVuc2lvbnMgPSAhbV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nl
c3NGb3JNZWRpYSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTEw
Myw2ICsxMDMsNyBAQAogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJX
S0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0SU9TLmgiCiAjaW1wb3J0IDxVSUtpdC9VSUFjY2Vz
c2liaWxpdHkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KICNp
bXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNlbmRpZgogCkBAIC0y
OTYsNiArMjk3LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIK
ICAgICAgICAgX0NGUHJlZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7CiAgICAgfQogI2Vu
ZGlmCisgICAgICAgIAorI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisgICAgc3dpenpsZVVUVHlw
ZVJlY29yZCgpOworICAgIHNldFZlY3Rvck9mVVRUeXBlSXRlbShXVEZNb3ZlKHBhcmFtZXRlcnMu
dmVjdG9yT2ZVVFR5cGVJdGVtKSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0
Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392981</attachid>
            <date>2020-03-08 13:45:12 -0700</date>
            <delta_ts>2020-03-08 14:25:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308134512.patch</filename>
            <type>text/plain</type>
            <size>36501</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTgxMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRh
ZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtVXNlLmg6CisKIDIwMjAtMDMtMDcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBwb3J0IGZvciBkaWN0YXRpb24gYWx0ZXJu
YXRpdmVzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyMCwzICszMjAsNyBA
QAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTYwMCkKICNkZWZpbmUgVVNFX0NURk9OVFRSQU5TRk9S
TUdMWVBIU1dJVEhMQU5HVUFHRSAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMAorI2RlZmluZSBV
U0VfVVRUWVBFX1NXSVpaTEVSIDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjU4
MTEyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMjAtMDMtMDggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIE1hcHBpbmcgdG8gVVRJIGZyb20gdGFnIGFuZCB0YWcgY2xhc3Mg
c2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtYXBwaW5nIHNob3VsZCBiZSBkb25l
IGluIHRoZSBVSSBwcm9jZXNzLCBzaW5jZSBpdCBpcyB1c2luZyBhIHN5c3RlbSBzZXJ2aWNlIHRo
YXQgd2lsbCBubyBsb25nZXIgYmUgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBXZWJDb250ZW50
IHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgdGhlIG1ldGhvZCArW1VUVHlwZVJlY29yZCB0eXBl
UmVjb3JkV2l0aFRhZ092ZXJyaWRlXSBpcyBzd2l6emxlZCBpbgorICAgICAgICB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzLCBhbmQgaXMgdXNpbmcgdGhlIGNhY2hlZCBtYXBwaW5nIHNlbnQgZnJvbSB0
aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0LlVUSUZyb21UYWcKKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlVUVHlwZUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpVVFR5
cGVJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3
aXp6bGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViVVRUeXBlUmVjb3JkIHNldElkZW50aWZp
ZXI6XSk6CisgICAgICAgIChXZWJDb3JlOjp2ZWN0b3JPZlVUVHlwZVJlY29yZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c2V0VmVjdG9y
T2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlVUSUZyb21UYWcpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMubW06CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVU
SUZyb21UYWcpOgorCiAyMDIwLTAzLTA4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlp
QHNvbnkuY29tPgogCiAgICAgICAgIGdlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogIm15IiB2YXJp
YWJsZSAkZmggbWFza3MgZWFybGllciBkZWNsYXJhdGlvbiBpbiBzYW1lIHNjb3BlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ4MTYsNiArNDgxNiw3IEBACiAJCUUxRkUx
MzdCMTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzc5MTg0RDIxQkIwMDg5
MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCAqLzsgfTsKIAkJRTFGRjU3QTMwRjAxMjU1
QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY1N0EyMEYwMTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRH
bG9iYWxEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2
QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCAqLzsgfTsKKwkJ
RTMwMzdGNDQyNDE1N0U5QzAwMzFDQTBGIC8qIENvcmVTZXJ2aWNlcy5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzAzN0Y0MjI0MTU3
RTlCMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29yayAqLzsgfTsKIAkJRTMwNTkyNjQx
RTI3QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDU5MjYyMUUyN0EzOEMwMEQ1N0M5OCAv
KiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTMwNTkyNjgxRTI3QTNEMTAwRDU3Qzk4IC8qIENhY2hlZFNjcmlw
dEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDAxRDgx
RTRDNzAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FG
IC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00ODM5LDYgKzQ4NDAsOCBAQAogCQlFM0JCQzI0NzIz
ODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJDMjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1
ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAvKiBET01KSVRDaGVja0RPTS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0
QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87IH07CiAJCUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5
MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIxMTMxNDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tD
YWxsYmFjay5oICovOyB9OworCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVj
b3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzQ0FBQTYy
MjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTYwMjQxNTVFRjMwMENFRDJF
MiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSAqLzsgfTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAw
MjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JC
OEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0ZBMzg2NDFENzE4MTJEMDBBQTU5
NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNGQTM4NjExRDcxNkU3NjAwQUE1OTUwIC8qIFBlbmRpbmdTY3Jp
cHRDbGllbnQuaCAqLzsgfTsKIAkJRTQwMUMyNzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJ
dGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3Nl
cnRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTE1MTQ5LDYgKzE1MTUyLDcgQEAKIAkJRTFGRjU3QTUwRjAxMjU2QjAwODkxRUJCIC8qIFRo
cmVhZEdsb2JhbERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGhyZWFkR2xvYmFsRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4
RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4RjZCMTgwREI1QkUwMDEzMjY3
NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMzAzN0Y0MjI0MTU3RTlCMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29y
ayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZVNlcnZpY2VzLmZyYW1ld29yazsgcGF0aCA9IFN5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yazsgc291cmNlVHJlZSA9
IFNES1JPT1Q7IH07CiAJCUUzMDU5MjYxMUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2lj
U2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUNs
YXNzaWNTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA1OTI2MjFF
MjdBMzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmxpbmVDbGFzc2ljU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzMDU5MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRj
aGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFNjcmlw
dEZldGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUyMDIsNiArMTUy
MDYsOCBAQAogCQlFM0JGMTlFNzIyQUYzMDlGMDA5Qzk5MjYgLyogU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDOTlBMDgxREMzRDQx
NzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUpJVENoZWNrRE9NLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
QzlBRUM5MjExMzE0NzQwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWljcm90YXNrQ2FsbGJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFBNUUyNDE1NUVGMjAwQ0VEMkUyIC8qIFVUVHlwZVJl
Y29yZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUVHlwZVJl
Y29yZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQ0FBQTYwMjQx
NTVFRjMwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0QwNDk5MzFEQURDMDQ1MDA3MThGM0MgLyogTm9kZUNv
bnN0YW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb2RlQ29uc3RhbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRTRFMkE1MUUzQjE2RkMwMDIzQkI4
QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRTRFMkE2MUUzQjE2RkMwMDIzQkI4
QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU5NzcsNiArMTU5ODMsNyBAQAogCQkJZmlsZXMg
PSAoCiAJCQkJRkQyREJGMTIxMkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkJRkQyREJGMTMxMkIwNDhBMzAwRUQ5OEM2IC8qIEF1ZGlv
VG9vbGJveC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlFMzAzN0Y0NDI0MTU3RTlD
MDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJ
CTFBQjMzREE1MTI1NTFFMzIwMDI0NDU3QSAvKiBJT0tpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQk5M0YxOUIxNjA4MjQ1RTU5MDAxRTlBQkMgLyogSmF2YVNjcmlwdENvcmUuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMUMwMjJGMDAyMkNGRUQ2ODAwNkRGMDFCIC8q
IGxpYmNvbXByZXNzaW9uLnRiZCBpbiBGcmFtZXdvcmtzICovLApAQCAtMTY1NzUsNiArMTY1ODIs
NyBAQAogCQkJCUZEMkRCRjBGMTJCMDQ4QTMwMEVEOThDNiAvKiBBdWRpb1Rvb2xib3guZnJhbWV3
b3JrICovLAogCQkJCUExNzYzRjQwMUUyMDU4NkUwMDFENThERSAvKiBDRk5ldHdvcmsuZnJhbWV3
b3JrICovLAogCQkJCUFBNUYzQjkwMTZDQzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5m
cmFtZXdvcmsgKi8sCisJCQkJRTMwMzdGNDIyNDE1N0U5QjAwMzFDQTBGIC8qIENvcmVTZXJ2aWNl
cy5mcmFtZXdvcmsgKi8sCiAJCQkJQTE1RTZCRjAxRTIxMkE2QTAwODBBRjM0IC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrICovLAogCQkJCTFBQjMzREE0MTI1NTFFMzIwMDI0NDU3QSAvKiBJT0tpdC5m
cmFtZXdvcmsgKi8sCiAJCQkJRjgyMTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRD
b3JlLmZyYW1ld29yayAqLywKQEAgLTIzMTIyLDYgKzIzMTMwLDggQEAKIAkJCQkzMTBENzE5NDFC
MzM1QzlEMDA5QzdCNzMgLyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQw
MDlDN0I3MyAvKiBUaGVtZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQw
NiAvKiBVc2VyQWdlbnRDb2NvYS5tbSAqLywKKwkJCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIg
LyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCAqLywKKwkJCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8sCiAJCQkJNTJCMEQ0QkYxQzU3RkQ2NjAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJNTJENUEx
QTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8sCiAJCQkJNTJE
NUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmggKi8sCkBAIC0zMjkzNCw2ICszMjk0NCw3IEBACiAJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFE
NDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTVBRjE0RTYxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkxRkFGQkYxOTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenps
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxp
ZGF0aW9uQnViYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUExNTQyODEyNzk1MzREMDBEMEIw
QzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTNBM0VBMTVG
RjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDM3NCw2ICszNDM4NSw3IEBACiAJCQkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8q
IFVzZXJNZXNzYWdlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0U2ODM0NDE5MjE0
M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVy
c05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFG
MzE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4
IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenps
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorCisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFVUVHlwZUl0ZW0g
eworICAgIFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVu
dGlmaWVyOworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitXRUJD
T1JFX0VYUE9SVCB2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKworV0VCQ09SRV9FWFBPUlQg
Y29uc3QgVmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK1dF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVt
PiYmKTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7CisgICAgZW5j
b2RlciA8PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgZW5jb2Rl
ciA8PCB1dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxVVFR5cGVJ
dGVtPiBVVFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25h
bDxTdHJpbmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFnQ2xhc3M7
CisgICAgZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlmaWVyOwor
ICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsKKyAgICBk
ZWNvZGVyID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRlbnRpZmll
ciwgKnV0aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5t
bQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyNCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlVU
VHlwZVJlY29yZFN3aXp6bGVyLmgiCisKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorCisjaW1w
b3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisKKyNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+
CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KKyNp
bXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKworI2ltcG9ydCA8Q29yZVNlcnZpY2VzL0xTUHJvcGVydHlMaXN0UHJpdi5oPgorI2ltcG9y
dCA8Q29yZVNlcnZpY2VzL1VUVHlwZVJlY29yZFByaXYuaD4KKworI2Vsc2UKKworX19hdHRyaWJ1
dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZhY2UgTFNSZWNvcmQgOiBOU09i
amVjdCA8TlNDb3B5aW5nLCBOU0Rpc2NhcmRhYmxlQ29udGVudD4KK0BlbmQKKworX19hdHRyaWJ1
dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZhY2UgVVRUeXBlUmVjb3JkIDog
TFNSZWNvcmQKKysgKG51bGxhYmxlIGluc3RhbmNldHlwZSl0eXBlUmVjb3JkV2l0aFRhZzooTlNT
dHJpbmcgKil0YWcgb2ZDbGFzczooTlNTdHJpbmcgKil0YWdDbGFzcyBjb25mb3JtaW5nVG9JZGVu
dGlmaWVyOihOU1N0cmluZyAqKWNvbmZvcm1zVG87CitAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0
cmluZyAqaWRlbnRpZmllcjsKK0BlbmQKKworI2VuZGlmCisKK19fYXR0cmlidXRlX18oKHZpc2li
aWxpdHkoImRlZmF1bHQiKSkpCitAaW50ZXJmYWNlIFdlYlVUVHlwZVJlY29yZCA6IFVUVHlwZVJl
Y29yZAorLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWk7CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXZWJVVFR5cGVSZWNvcmQgeworQHBhY2thZ2UKKyAgICBOU1N0cmluZyAqX2lk
ZW50aWZpZXI7Cit9CitAc3ludGhlc2l6ZSBpZGVudGlmaWVyPV9pZGVudGlmaWVyOworLSAodm9p
ZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWkKK3sKKyAgICBfaWRlbnRpZmllciA9IGk7Cit9
CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFZlY3RvcjxVVFR5cGVJdGVt
PiYgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3I7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKworc3Rh
dGljIElNUCB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsID0gbmlsOworCitzdGF0aWMgVVRUeXBl
UmVjb3JkICp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3Rvciwg
TlNTdHJpbmcgKnRhZywgTlNTdHJpbmcgKnRhZ0NsYXNzLCBOU1N0cmluZyAqaWRlbnRpZmllcikK
K3sKKyAgICBmb3IgKGF1dG8mIHIgOiB2ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSkgeworICAgICAg
ICBpZiAoci50YWcgPT0gU3RyaW5nKHRhZykgJiYgci50YWdDbGFzcyA9PSBTdHJpbmcodGFnQ2xh
c3MpICYmIHIuaWRlbnRpZmllciA9PSBTdHJpbmcoaWRlbnRpZmllcikpIHsKKyAgICAgICAgICAg
IFdlYlVUVHlwZVJlY29yZCAqcmVjb3JkID0gW1dlYlVUVHlwZVJlY29yZCBhbGxvY107CisgICAg
ICAgICAgICBbcmVjb3JkIHNldElkZW50aWZpZXI6ci51dGldOworICAgICAgICAgICAgcmV0dXJu
IHJlY29yZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBXVEZMb2dBbHdheXMoIlVua25vd24gVVRJ
OiAlcyAlcyAlc1xuIiwgU3RyaW5nKHRhZykudXRmOCgpLmRhdGEoKSwgU3RyaW5nKHRhZ0NsYXNz
KS51dGY4KCkuZGF0YSgpLCBTdHJpbmcoaWRlbnRpZmllcikudXRmOCgpLmRhdGEoKSk7CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gd3RmQ2FsbElNUDxVVFR5
cGVSZWNvcmQgKj4odHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIHRh
ZywgdGFnQ2xhc3MsIGlkZW50aWZpZXIpOworfQorCitjb25zdCBWZWN0b3I8VVRUeXBlSXRlbT4m
IGNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yID0gW10geworICAgICAgICBWZWN0b3I8VVRUeXBl
SXRlbT4gdiA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxVVFR5cGVJdGVtPiB7CisgICAgICAgICAg
ICB7ICJ2aWRlby9tcDQiX3MsICJwdWJsaWMubWltZS10eXBlIl9zLCBzdGF0aWNfY2FzdDxjaGFy
Kj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9LAorICAgICAgICB9Owor
ICAgICAgICBmb3IgKGF1dG8mIHIgOiB2KQorICAgICAgICAgICAgci51dGkgPSBVVFR5cGVDcmVh
dGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKHIudGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmcoKS5n
ZXQoKSwgci50YWcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgci5pZGVudGlmaWVyLmlzTnVsbCgp
ID8gbnVsbHB0ciA6IHIuaWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICAg
ICAgcmV0dXJuIHY7CisgICAgfSgpOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK3ZvaWQgc2V0
VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmIHZlY3RvcikKK3sKKyAgICB2
ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSA9IFdURk1vdmUodmVjdG9yKTsKK30KKwordm9pZCBzd2l6
emxlVVRUeXBlUmVjb3JkKCkKK3sKKyAgICBNZXRob2QgdHlwZVJlY29yZFdpdGhUYWdNZXRob2Qg
PSBjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNzKCJVVFR5cGVSZWNvcmQiKSwgQHNl
bGVjdG9yKHR5cGVSZWNvcmRXaXRoVGFnOiBvZkNsYXNzOiBjb25mb3JtaW5nVG9JZGVudGlmaWVy
OikpOworICAgIHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwgPSBtZXRob2Rfc2V0SW1wbGVtZW50
YXRpb24odHlwZVJlY29yZFdpdGhUYWdNZXRob2QsIChJTVApdHlwZVJlY29yZFdpdGhUYWdPdmVy
cmlkZSk7Cit9CisKK307CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgJKHJldmlzaW9uIDI1ODEwNykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBNSU1FVHlw
ZUZyb21VVEkoY28KIFN0cmluZyBNSU1FVHlwZUZyb21VVElUcmVlKGNvbnN0IFN0cmluZyYpOwog
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIFVUSUZyb21NSU1FVHlwZShjb25zdCBTdHJpbmcmKTsKIGJv
b2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcmKTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBV
VElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25z
dCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VVRJ
RnJvbU1JTUVUeXBlTWFwKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYpOwogV0VCQ09SRV9FWFBP
UlQgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGNyZWF0ZVVUSUZyb21NSU1FVHlwZU1h
cCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0
aWVzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1VUSVV0aWxpdGllcy5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEs
NiArMTYxLDEyIEBAIGJvb2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcmIFVUSSkKICAgICBy
ZXR1cm4gVVRUeXBlSXNEZWNsYXJlZChVVEkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAK
K1N0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYg
dGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkKK3sKKyAgICBhdXRvIHUgPSBhZG9w
dENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJGb3JUYWcodGFnQ2xhc3MuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSwgdGFnLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGNvbmZvcm1pbmdU
b1VUSS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgcmV0dXJuIFN0cmluZyh1LmdldCgp
KTsKK30KKwogc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhZGRpdGlvbmFsTUlNRVR5cGVz
KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IG1pbWVUeXBl
cyA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUwMSw2ICs1NTAxLDExIEBA
IFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlwZShjb24KIHsKICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKIH0KKworU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbVRhZyhjb25z
dCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25m
b3JtaW5nVG9VVEkpCit7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CiAjZW5kaWYKIAog
U3RyaW5nIEludGVybmFsczo6bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IGV4dGVuc2lvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24g
MjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBj
b3B5KQpAQCAtOTQzLDYgKzk0Myw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbWVkaWFNSU1FVHlw
ZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CiAKICAgICBTdHJpbmcgZ2V0
VVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworICAgIFN0cmluZyBnZXRV
VElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25z
dCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKICAgICBib29sIHN1cHBvcnRzUGljdHVyZUlu
UGljdHVyZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZp
c2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTg1Myw2ICs4NTMsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsK
ICAgICBET01TdHJpbmcgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihET01TdHJpbmcgZXh0ZW5z
aW9uKTsKIAogICAgIERPTVN0cmluZyBnZXRVVElGcm9tTUlNRVR5cGUoRE9NU3RyaW5nIG1pbWVU
eXBlKTsKKyAgICBET01TdHJpbmcgZ2V0VVRJRnJvbVRhZyhET01TdHJpbmcgdGFnQ2xhc3MsIERP
TVN0cmluZyB0YWcsIERPTVN0cmluZyBjb25mb3JtaW5nVG9VVEkpOwogCiAgICAgYm9vbGVhbiBz
dXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNiw0ICsxMDYsOSBAQCBTdHJpbmcgSW50
ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5cGUoY29uCiAgICAgcmV0dXJuIFVUSUZyb21NSU1FVHlw
ZShtaW1lVHlwZSk7CiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcoY29uc3Qg
U3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgY29uZm9y
bWluZ1RvVVRJKQoreworICAgIHJldHVybiBVVElGcm9tVGFnKHRhZ0NsYXNzLCB0YWcsIGNvbmZv
cm1pbmdUb1VUSSk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgxMTEpCisrKyBT
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisy
MDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBw
ZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNlbmQgbWFwcGluZyBmcm9tIHRhZy90YWcgY2xhc3MgdG8gVVRJ
IGZyb20gdGhlIFVJIHByb2Nlc3MgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBhcyBwYXJ0IG9m
IHRoZSBXZWJQcm9jZXNzCisgICAgICAgIGNyZWF0aW9uIHBhcmFtZXRlcnMuIEFsc28sIGlzc3Vl
IHNvbWUgbWFjaC1sb29rdXAgZXh0ZW5zaW9ucyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlm
IEFjY2Vzc2liaWxpdHkgaXMKKyAgICAgICAgZW5hYmxlZC4KKworICAgICAgICAqIFJlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYjoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0wMy0w
OCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
dGhlIHdhdGNoT1MgYnVpbGQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1Jl
c291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5z
Ygkod29ya2luZyBjb3B5KQpAQCAtODQ4LDcgKzg0OCw3IEBACiAoYWxsb3cgbWFjaC1sb29rdXAK
ICAgICAocmVxdWlyZS1hbGwKICAgICAgICAgKGV4dGVuc2lvbiAiY29tLmFwcGxlLndlYmtpdC5l
eHRlbnNpb24ubWFjaCIpCi0gICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmlwaG9uZS5h
eHNlcnZlci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBwbGUubmVoZWxwZXIi
ICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIgImNvbS5hcHBsZS51
aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSIgImNv
bS5hcHBsZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNvbS5hcHBsZS5tb2Jp
bGVhc3NldGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFwcGxlLmZyb250Ym9h
cmQuc3lzdGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiAiY29tLmFwcGxl
LndlYmluc3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIgImNvbS5h
cHBsZS5jZnByZWZzZC5kYWVtb24iCisgICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmlw
aG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBwbGUubmVo
ZWxwZXIiICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIgImNvbS5h
cHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVV
SSIgImNvbS5hcHBsZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNvbS5hcHBs
ZS5tb2JpbGVhc3NldGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFwcGxlLmZy
b250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiAiY29t
LmFwcGxlLndlYmluc3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIg
ImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iICJjb20uYXBwbGUubHNkLm1hcGRiIgogCiAgICAg
ICAgICAgICA7OzsgRklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3Zl
ZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZQogICAgICAgICAgICAgImNvbS5hcHBs
ZS5haXJwbGF5LmFwc3luY2NvbnRyb2xsZXIueHBjIiAiY29tLmFwcGxlLmF1ZGlvLkFVUmVtb3Rl
SU9TZXJ2ZXIiICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRSZWdpc3RyYXIiCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw2ICsx
ODAsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5j
b2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgZW5jb2RlciA8PCBmb2N1c1Jp
bmdDb2xvcjsKICAgICBlbmNvZGVyIDw8IGxvY2FsaXplZERldmljZU1vZGVsOworICAgIGVuY29k
ZXIgPDwgdmVjdG9yT2ZVVFR5cGVJdGVtOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTQ5Myw2ICs0OTQsMTIgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZAogICAgIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5sb2NhbGl6ZWRE
ZXZpY2VNb2RlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBPcHRpb25hbDxW
ZWN0b3I8VVRUeXBlSXRlbT4+IHZlY3Rvck9mVVRUeXBlSXRlbTsKKyAgICBkZWNvZGVyID4+IHZl
Y3Rvck9mVVRUeXBlSXRlbTsKKyAgICBpZiAoIXZlY3Rvck9mVVRUeXBlSXRlbSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtID0gV1RGTW92
ZSgqdmVjdG9yT2ZVVFR5cGVJdGVtKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcg
QEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJU
aGVtZUlPUy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KICNl
bmRpZgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTIyMyw2ICsyMjQsOSBAQCBzdHJ1Y3QgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OkNT
U1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgV2Vi
Q29yZTo6Q29sb3IgZm9jdXNSaW5nQ29sb3I7CiAgICAgU3RyaW5nIGxvY2FsaXplZERldmljZU1v
ZGVsOworI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisgICAgVmVjdG9yPFdlYkNvcmU6OlVUVHlw
ZUl0ZW0+IHZlY3Rvck9mVVRUeXBlSXRlbTsKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzc2LDkgKzM3NiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKCFXZWJDb3Jl
OjpJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKSkgeworICAgIGlmICghV2ViQ29yZTo6
SU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkgfHwgX0FYU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBzdGF0aWMgY29uc3QgY2hhciogc2VydmljZXNb
XSA9IHsKICAgICAgICAgICAgICJjb20uYXBwbGUubHNkLm9wZW4iLAorICAgICAgICAgICAgImNv
bS5hcHBsZS5sc2QubWFwZGIiLAogICAgICAgICAgICAgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQi
LAogICAgICAgICAgICAgImNvbS5hcHBsZS5pY29uc2VydmljZXMiLAogICAgICAgICAgICAgImNv
bS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIsCkBAIC00MjksOCArNDMwLDEwIEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICBwYXJhbWV0ZXJzLmNz
c1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IFJlbmRlclRoZW1lSU9TOjpjc3NWYWx1ZVRvU3lzdGVt
Q29sb3JNYXAoKTsKICAgICBwYXJhbWV0ZXJzLmZvY3VzUmluZ0NvbG9yID0gUmVuZGVyVGhlbWU6
OnNpbmdsZXRvbigpLmZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PigpKTsKICAgICBwYXJhbWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsID0gbG9jYWxpemVkRGV2
aWNlTW9kZWwoKTsKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorICAgIHBhcmFtZXRlcnMudmVj
dG9yT2ZVVFR5cGVJdGVtID0gY3JlYXRlVmVjdG9yT2ZVVFR5cGVJdGVtKCk7CisjZW5kaWYKICNl
bmRpZgotCiAgICAgCiAgICAgLy8gQWxsb3cgbWljcm9waG9uZSBhY2Nlc3MgaWYgZWl0aGVyIHBy
ZWZlcmVuY2UgaXMgc2V0IGJlY2F1c2UgV2ViUlRDIHJlcXVpcmVzIG1pY3JvcGhvbmUgYWNjZXNz
LgogICAgIGJvb2wgbmVlZFdlYlByb2Nlc3NFeHRlbnNpb25zID0gIW1fZGVmYXVsdFBhZ2VHcm91
cC0+cHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKQpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lv
biAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNiArMTAzLDcgQEAKICNpbXBvcnQgIlVzZXJJ
bnRlcmZhY2VJZGlvbS5oIgogI2ltcG9ydCAiV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdElP
Uy5oIgogI2ltcG9ydCA8VUlLaXQvVUlBY2Nlc3NpYmlsaXR5Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1VUVHlwZVJlY29yZFN3aXp6bGVyLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1Nl
cnZpY2VzU1BJLmg+CiAjZW5kaWYKIApAQCAtMjk2LDYgKzI5NywxMSBAQCB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgICAgIF9DRlByZWZzU2V0RGlyZWN0TW9k
ZUVuYWJsZWQoZmFsc2UpOwogICAgIH0KICNlbmRpZgorICAgICAgICAKKyNpZiBVU0UoVVRUWVBF
X1NXSVpaTEVSKQorICAgIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKyAgICBzZXRWZWN0b3JPZlVU
VHlwZUl0ZW0oV1RGTW92ZShwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSkpOworI2VuZGlm
CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCkluZGV4OiBU
b29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NTgxMTApCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBA
QAorMjAyMC0wMy0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gTWFwcGluZyB0byBVVEkgZnJvbSB0YWcgYW5kIHRhZyBjbGFzcyBzaG91bGQg
YmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTAzLTA3ICBSb3NzIEtpcnNsaW5nICA8cm9z
cy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBSZXBsYWNlIHRoZSB1c2Ugb2YgdGVybSAi
cm9sbG91dCIgdG8gInJldmVydCIgaW4gdmFyaW91cyB0b29scwpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI1ODEwNykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDE2
LDYgKzEwMTYsNyBAQAogCQlFM0ExRTc4MjIxQjI1QjdBMDA4QzYwMDcgLyogVVJMLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTFFNzgwMjFCMjVC
NzkwMDhDNjAwNyAvKiBVUkwuY3BwICovOyB9OwogCQlFM0ExRTc4NTIxQjI1QjkxMDA4QzYwMDcg
LyogVVJMUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQTFFNzg0MjFCMjVCOTEwMDhDNjAwNyAvKiBVUkxQYXJzZXIuY3BwICovOyB9Owog
CQlFM0MyMUE3QzIxQjI1Q0EyMDAzQjMxQTMgLyogVVJMRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDMjFBN0IyMUIyNUNBMjAwM0IzMUEz
IC8qIFVSTEV4dHJhcy5tbSAqLzsgfTsKKwkJRTNDQUFBNEMyNDE1NTA1MTAwQ0VEMkUyIC8qIFVU
SUZyb21UYWcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0NBQUE0QjI0MTU1MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5tbSAqLzsgfTsKIAkJRTNE
RUE4MTExRjBBNTg5MDAwQ0JDMkU4IC8qIFRocmVhZEdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzREVBODEwMUYwQTU4ODAwMENCQzJFOCAv
KiBUaHJlYWRHcm91cC5jcHAgKi87IH07CiAJCUU1MDM2Rjc4MjExQkMyNTQwMEJGREJFMiAvKiBj
b2xvci1kcm9wLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTUwMzZGNzcyMTFCQzIyODAwQkZEQkUyIC8qIGNvbG9yLWRyb3AuaHRtbCAq
LzsgfTsKIAkJRUNBNjgwQ0UxRTY4Q0MwOTAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQTY4MENEMUU2
OENDMDkwMDczMUQyMCAvKiBTdHJpbmdVdGlsaXRpZXMubW0gKi87IH07CkBAIC0yNjE2LDYgKzI2
MTcsNyBAQAogCQlFM0ExRTc4MDIxQjI1Qjc5MDA4QzYwMDcgLyogVVJMLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzQTFFNzg0MjFCMjVCOTEwMDhDNjAwNyAvKiBVUkxQYXJzZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMUGFyc2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDMjFBN0IyMUIyNUNBMjAwM0IzMUEzIC8qIFVSTEV4dHJh
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVSTEV4dHJhcy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFBNEIyNDE1NTA1MTAwQ0VEMkUy
IC8qIFVUSUZyb21UYWcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVVElGcm9tVGFnLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0RFQTgxMDFGMEE1ODgwMDBDQkMyRTggLyog
VGhyZWFkR3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhy
ZWFkR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDAwMTkzMDFBQ0U5
QjVDMDAxQjBBMkEgLyogQmxvb21GaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQmxvb21GaWx0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDkwMjk2NzE0RTJFM0E0MDAyQkVERDEgLyogVHlwaW5nU3R5bGVDcmFzaC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFR5cGluZ1N0eWxlQ3Jhc2gubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTE2LDYgKzI5MTgsNyBAQAogCQkJCUUzMjVD
OTA2MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5tbSAqLywKIAkJ
CQlDMTVDQkIzRTIzRkIxNzdBMDAzMDBDQzcgLyogUHJlZmVyZW5jZUNoYW5nZXMubW0gKi8sCiAJ
CQkJQzE5NEUzMUMyNDA5REY0MzAwMjkzOUVEIC8qIFVUSUZyb21NSU1FVHlwZS5tbSAqLywKKwkJ
CQlFM0NBQUE0QjI0MTU1MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5tbSAqLywKIAkJCQkwRjEz
OUU3NTFBNDIzQTUzMDBGNTkwRjUgLyogV2Vha09iakNQdHIubW0gKi8sCiAJCQkpOwogCQkJbmFt
ZSA9IGNvY29hOwpAQCAtNTExOSw2ICs1MTIyLDcgQEAKIAkJCQk3Q0NFN0YxODFBNDExQUU2MDA0
NDdDNEMgLyogVXNlck1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVCMjQyQjgyMUQ0
MTQwQjAwNTVDMUMwIC8qIFVzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUMxOTRFMzFEMjQwOURGNDMwMDI5MzlFRCAvKiBVVElGcm9tTUlNRVR5cGUubW0gaW4g
U291cmNlcyAqLywKKwkJCQlFM0NBQUE0QzI0MTU1MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMDNBMUQwQTYwMjcwMEZFQkNGMyAvKiBVdGlsaXRp
ZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEM2MUQwQTY1NEUwMEZFQkNGMyAv
KiBWaWRlb0NvbnRyb2xzTWFuYWdlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMzA2NUUwMjE2
NTY4MkUwMEU4OTVERiAvKiBWaWRlb1F1YWxpdHlEaXNwbGF5Q29tcG9zaXRpbmcubW0gaW4gU291
cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VUSUZyb21U
YWcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVVRJ
RnJvbVRhZy5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9VVElGcm9tVGFnLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1w
b3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9VVFR5cGVSZWNv
cmRTd2l6emxlci5oPgorCitURVNUKFdlYktpdCwgVVRJRnJvbVRhZykKK3sKKyAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVz
dFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50
ZXJuYWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJv
Y2Vzc1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFk
ZFRvV2luZG93OllFU10pOworCisgICAgZm9yIChhdXRvJiBpdGVtIDogV2ViQ29yZTo6Y3JlYXRl
VmVjdG9yT2ZVVFR5cGVJdGVtKCkpIHsKKyAgICAgICAgYXV0byBqcyA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5nZXRVVElGcm9tVGFnKFwiJXNcIiwgXCIl
c1wiLCBcIiVzXCIpIiwgaXRlbS50YWdDbGFzcy51dGY4KCkuZGF0YSgpLCBpdGVtLnRhZy51dGY4
KCkuZGF0YSgpLCAsIGl0ZW0uaWRlbnRpZmllci51dGY4KCkuZGF0YSgpXTsKKworICAgICAgICBh
dXRvIHV0aSA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOworCisg
ICAgICAgIEFTU0VSVF9UUlVFKFdlYkNvcmU6OlVUSUZyb21UYWcoaXRlbS50YWdDbGFzcywgaXRl
bS50YWcsIGl0ZW0uaWRlbnRpZmllcikgPT0gU3RyaW5nKHV0aSkpOworICAgIH0KK30KKworI2Vu
ZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392987</attachid>
            <date>2020-03-08 14:25:39 -0700</date>
            <delta_ts>2020-03-08 15:00:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308142539.patch</filename>
            <type>text/plain</type>
            <size>36605</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTgxMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRh
ZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtVXNlLmg6CisKIDIwMjAtMDMtMDcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBwb3J0IGZvciBkaWN0YXRpb24gYWx0ZXJu
YXRpdmVzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyMCwzICszMjAsNyBA
QAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTYwMCkKICNkZWZpbmUgVVNFX0NURk9OVFRSQU5TRk9S
TUdMWVBIU1dJVEhMQU5HVUFHRSAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMAorI2RlZmluZSBV
U0VfVVRUWVBFX1NXSVpaTEVSIDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjU4
MTEyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMjAtMDMtMDggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIE1hcHBpbmcgdG8gVVRJIGZyb20gdGFnIGFuZCB0YWcgY2xhc3Mg
c2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtYXBwaW5nIHNob3VsZCBiZSBkb25l
IGluIHRoZSBVSSBwcm9jZXNzLCBzaW5jZSBpdCBpcyB1c2luZyBhIHN5c3RlbSBzZXJ2aWNlIHRo
YXQgd2lsbCBubyBsb25nZXIgYmUgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBXZWJDb250ZW50
IHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgdGhlIG1ldGhvZCArW1VUVHlwZVJlY29yZCB0eXBl
UmVjb3JkV2l0aFRhZ092ZXJyaWRlXSBpcyBzd2l6emxlZCBpbgorICAgICAgICB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzLCBhbmQgaXMgdXNpbmcgdGhlIGNhY2hlZCBtYXBwaW5nIHNlbnQgZnJvbSB0
aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0LlVUSUZyb21UYWcKKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlVUVHlwZUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpVVFR5
cGVJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3
aXp6bGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViVVRUeXBlUmVjb3JkIHNldElkZW50aWZp
ZXI6XSk6CisgICAgICAgIChXZWJDb3JlOjp2ZWN0b3JPZlVUVHlwZVJlY29yZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c2V0VmVjdG9y
T2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlVUSUZyb21UYWcpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMubW06CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVU
SUZyb21UYWcpOgorCiAyMDIwLTAzLTA4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlp
QHNvbnkuY29tPgogCiAgICAgICAgIGdlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogIm15IiB2YXJp
YWJsZSAkZmggbWFza3MgZWFybGllciBkZWNsYXJhdGlvbiBpbiBzYW1lIHNjb3BlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ4MTYsNiArNDgxNiw3IEBACiAJCUUxRkUx
MzdCMTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzc5MTg0RDIxQkIwMDg5
MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCAqLzsgfTsKIAkJRTFGRjU3QTMwRjAxMjU1
QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY1N0EyMEYwMTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRH
bG9iYWxEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2
QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCAqLzsgfTsKKwkJ
RTMwMzdGNDQyNDE1N0U5QzAwMzFDQTBGIC8qIENvcmVTZXJ2aWNlcy5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzAzN0Y0MjI0MTU3
RTlCMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29yayAqLzsgfTsKIAkJRTMwNTkyNjQx
RTI3QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDU5MjYyMUUyN0EzOEMwMEQ1N0M5OCAv
KiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTMwNTkyNjgxRTI3QTNEMTAwRDU3Qzk4IC8qIENhY2hlZFNjcmlw
dEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDAxRDgx
RTRDNzAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FG
IC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00ODM5LDYgKzQ4NDAsOCBAQAogCQlFM0JCQzI0NzIz
ODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJDMjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1
ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAvKiBET01KSVRDaGVja0RPTS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0
QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87IH07CiAJCUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5
MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIxMTMxNDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tD
YWxsYmFjay5oICovOyB9OworCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVj
b3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzQ0FBQTYy
MjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTYwMjQxNTVFRjMwMENFRDJF
MiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSAqLzsgfTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAw
MjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JC
OEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0ZBMzg2NDFENzE4MTJEMDBBQTU5
NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNGQTM4NjExRDcxNkU3NjAwQUE1OTUwIC8qIFBlbmRpbmdTY3Jp
cHRDbGllbnQuaCAqLzsgfTsKIAkJRTQwMUMyNzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJ
dGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3Nl
cnRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTE1MTQ5LDYgKzE1MTUyLDcgQEAKIAkJRTFGRjU3QTUwRjAxMjU2QjAwODkxRUJCIC8qIFRo
cmVhZEdsb2JhbERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGhyZWFkR2xvYmFsRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4
RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4RjZCMTgwREI1QkUwMDEzMjY3
NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMzAzN0Y0MjI0MTU3RTlCMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29y
ayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZVNlcnZpY2VzLmZyYW1ld29yazsgcGF0aCA9IFN5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yazsgc291cmNlVHJlZSA9
IFNES1JPT1Q7IH07CiAJCUUzMDU5MjYxMUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2lj
U2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUNs
YXNzaWNTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA1OTI2MjFF
MjdBMzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmxpbmVDbGFzc2ljU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzMDU5MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRj
aGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFNjcmlw
dEZldGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUyMDIsNiArMTUy
MDYsOCBAQAogCQlFM0JGMTlFNzIyQUYzMDlGMDA5Qzk5MjYgLyogU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDOTlBMDgxREMzRDQx
NzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUpJVENoZWNrRE9NLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
QzlBRUM5MjExMzE0NzQwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWljcm90YXNrQ2FsbGJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFBNUUyNDE1NUVGMjAwQ0VEMkUyIC8qIFVUVHlwZVJl
Y29yZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUVHlwZVJl
Y29yZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQ0FBQTYwMjQx
NTVFRjMwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0QwNDk5MzFEQURDMDQ1MDA3MThGM0MgLyogTm9kZUNv
bnN0YW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb2RlQ29uc3RhbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRTRFMkE1MUUzQjE2RkMwMDIzQkI4
QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRTRFMkE2MUUzQjE2RkMwMDIzQkI4
QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU5NzcsNiArMTU5ODMsNyBAQAogCQkJZmlsZXMg
PSAoCiAJCQkJRkQyREJGMTIxMkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkJRkQyREJGMTMxMkIwNDhBMzAwRUQ5OEM2IC8qIEF1ZGlv
VG9vbGJveC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlFMzAzN0Y0NDI0MTU3RTlD
MDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJ
CTFBQjMzREE1MTI1NTFFMzIwMDI0NDU3QSAvKiBJT0tpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQk5M0YxOUIxNjA4MjQ1RTU5MDAxRTlBQkMgLyogSmF2YVNjcmlwdENvcmUuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMUMwMjJGMDAyMkNGRUQ2ODAwNkRGMDFCIC8q
IGxpYmNvbXByZXNzaW9uLnRiZCBpbiBGcmFtZXdvcmtzICovLApAQCAtMTY1NzUsNiArMTY1ODIs
NyBAQAogCQkJCUZEMkRCRjBGMTJCMDQ4QTMwMEVEOThDNiAvKiBBdWRpb1Rvb2xib3guZnJhbWV3
b3JrICovLAogCQkJCUExNzYzRjQwMUUyMDU4NkUwMDFENThERSAvKiBDRk5ldHdvcmsuZnJhbWV3
b3JrICovLAogCQkJCUFBNUYzQjkwMTZDQzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5m
cmFtZXdvcmsgKi8sCisJCQkJRTMwMzdGNDIyNDE1N0U5QjAwMzFDQTBGIC8qIENvcmVTZXJ2aWNl
cy5mcmFtZXdvcmsgKi8sCiAJCQkJQTE1RTZCRjAxRTIxMkE2QTAwODBBRjM0IC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrICovLAogCQkJCTFBQjMzREE0MTI1NTFFMzIwMDI0NDU3QSAvKiBJT0tpdC5m
cmFtZXdvcmsgKi8sCiAJCQkJRjgyMTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRD
b3JlLmZyYW1ld29yayAqLywKQEAgLTIzMTIyLDYgKzIzMTMwLDggQEAKIAkJCQkzMTBENzE5NDFC
MzM1QzlEMDA5QzdCNzMgLyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQw
MDlDN0I3MyAvKiBUaGVtZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQw
NiAvKiBVc2VyQWdlbnRDb2NvYS5tbSAqLywKKwkJCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIg
LyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCAqLywKKwkJCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8sCiAJCQkJNTJCMEQ0QkYxQzU3RkQ2NjAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJNTJENUEx
QTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8sCiAJCQkJNTJE
NUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmggKi8sCkBAIC0zMjkzNCw2ICszMjk0NCw3IEBACiAJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFE
NDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTVBRjE0RTYxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkxRkFGQkYxOTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenps
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxp
ZGF0aW9uQnViYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUExNTQyODEyNzk1MzREMDBEMEIw
QzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTNBM0VBMTVG
RjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDM3NCw2ICszNDM4NSw3IEBACiAJCQkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8q
IFVzZXJNZXNzYWdlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0U2ODM0NDE5MjE0
M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVy
c05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFG
MzE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4
IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenps
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorCisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFVUVHlwZUl0ZW0g
eworICAgIFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVu
dGlmaWVyOworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitXRUJD
T1JFX0VYUE9SVCB2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKworV0VCQ09SRV9FWFBPUlQg
Y29uc3QgVmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK1dF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVt
PiYmKTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7CisgICAgZW5j
b2RlciA8PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgZW5jb2Rl
ciA8PCB1dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxVVFR5cGVJ
dGVtPiBVVFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25h
bDxTdHJpbmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFnQ2xhc3M7
CisgICAgZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlmaWVyOwor
ICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsKKyAgICBk
ZWNvZGVyID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRlbnRpZmll
ciwgKnV0aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5t
bQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyNCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlVU
VHlwZVJlY29yZFN3aXp6bGVyLmgiCisKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorCisjaW1w
b3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisKKyNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+
CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KKyNp
bXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKworI2ltcG9ydCA8Q29yZVNlcnZpY2VzL0xTUHJvcGVydHlMaXN0UHJpdi5oPgorI2ltcG9y
dCA8Q29yZVNlcnZpY2VzL1VUVHlwZVJlY29yZFByaXYuaD4KKworI2Vsc2UKKworX19hdHRyaWJ1
dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZhY2UgTFNSZWNvcmQgOiBOU09i
amVjdCA8TlNDb3B5aW5nLCBOU0Rpc2NhcmRhYmxlQ29udGVudD4KK0BlbmQKKworX19hdHRyaWJ1
dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZhY2UgVVRUeXBlUmVjb3JkIDog
TFNSZWNvcmQKKysgKG51bGxhYmxlIGluc3RhbmNldHlwZSl0eXBlUmVjb3JkV2l0aFRhZzooTlNT
dHJpbmcgKil0YWcgb2ZDbGFzczooTlNTdHJpbmcgKil0YWdDbGFzcyBjb25mb3JtaW5nVG9JZGVu
dGlmaWVyOihOU1N0cmluZyAqKWNvbmZvcm1zVG87CitAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0
cmluZyAqaWRlbnRpZmllcjsKK0BlbmQKKworI2VuZGlmCisKK19fYXR0cmlidXRlX18oKHZpc2li
aWxpdHkoImRlZmF1bHQiKSkpCitAaW50ZXJmYWNlIFdlYlVUVHlwZVJlY29yZCA6IFVUVHlwZVJl
Y29yZAorLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWk7CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXZWJVVFR5cGVSZWNvcmQgeworQHBhY2thZ2UKKyAgICBOU1N0cmluZyAqX2lk
ZW50aWZpZXI7Cit9CitAc3ludGhlc2l6ZSBpZGVudGlmaWVyPV9pZGVudGlmaWVyOworLSAodm9p
ZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWkKK3sKKyAgICBfaWRlbnRpZmllciA9IGk7Cit9
CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFZlY3RvcjxVVFR5cGVJdGVt
PiYgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3I7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKworc3Rh
dGljIElNUCB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsID0gbmlsOworCitzdGF0aWMgVVRUeXBl
UmVjb3JkICp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3Rvciwg
TlNTdHJpbmcgKnRhZywgTlNTdHJpbmcgKnRhZ0NsYXNzLCBOU1N0cmluZyAqaWRlbnRpZmllcikK
K3sKKyAgICBmb3IgKGF1dG8mIHIgOiB2ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSkgeworICAgICAg
ICBpZiAoci50YWcgPT0gU3RyaW5nKHRhZykgJiYgci50YWdDbGFzcyA9PSBTdHJpbmcodGFnQ2xh
c3MpICYmIHIuaWRlbnRpZmllciA9PSBTdHJpbmcoaWRlbnRpZmllcikpIHsKKyAgICAgICAgICAg
IFdlYlVUVHlwZVJlY29yZCAqcmVjb3JkID0gW1dlYlVUVHlwZVJlY29yZCBhbGxvY107CisgICAg
ICAgICAgICBbcmVjb3JkIHNldElkZW50aWZpZXI6ci51dGldOworICAgICAgICAgICAgcmV0dXJu
IHJlY29yZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBXVEZMb2dBbHdheXMoIlVua25vd24gVVRJ
OiAlcyAlcyAlc1xuIiwgU3RyaW5nKHRhZykudXRmOCgpLmRhdGEoKSwgU3RyaW5nKHRhZ0NsYXNz
KS51dGY4KCkuZGF0YSgpLCBTdHJpbmcoaWRlbnRpZmllcikudXRmOCgpLmRhdGEoKSk7CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gd3RmQ2FsbElNUDxVVFR5
cGVSZWNvcmQgKj4odHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIHRh
ZywgdGFnQ2xhc3MsIGlkZW50aWZpZXIpOworfQorCitjb25zdCBWZWN0b3I8VVRUeXBlSXRlbT4m
IGNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yID0gW10geworICAgICAgICBWZWN0b3I8VVRUeXBl
SXRlbT4gdiA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxVVFR5cGVJdGVtPiB7CisgICAgICAgICAg
ICB7ICJ2aWRlby9tcDQiX3MsICJwdWJsaWMubWltZS10eXBlIl9zLCBzdGF0aWNfY2FzdDxjaGFy
Kj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9LAorICAgICAgICB9Owor
ICAgICAgICBmb3IgKGF1dG8mIHIgOiB2KQorICAgICAgICAgICAgci51dGkgPSBVVFR5cGVDcmVh
dGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKHIudGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmcoKS5n
ZXQoKSwgci50YWcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgci5pZGVudGlmaWVyLmlzTnVsbCgp
ID8gbnVsbHB0ciA6IHIuaWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICAg
ICAgcmV0dXJuIHY7CisgICAgfSgpOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK3ZvaWQgc2V0
VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmIHZlY3RvcikKK3sKKyAgICB2
ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSA9IFdURk1vdmUodmVjdG9yKTsKK30KKwordm9pZCBzd2l6
emxlVVRUeXBlUmVjb3JkKCkKK3sKKyAgICBNZXRob2QgdHlwZVJlY29yZFdpdGhUYWdNZXRob2Qg
PSBjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNzKCJVVFR5cGVSZWNvcmQiKSwgQHNl
bGVjdG9yKHR5cGVSZWNvcmRXaXRoVGFnOiBvZkNsYXNzOiBjb25mb3JtaW5nVG9JZGVudGlmaWVy
OikpOworICAgIHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwgPSBtZXRob2Rfc2V0SW1wbGVtZW50
YXRpb24odHlwZVJlY29yZFdpdGhUYWdNZXRob2QsIChJTVApdHlwZVJlY29yZFdpdGhUYWdPdmVy
cmlkZSk7Cit9CisKK307CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgJKHJldmlzaW9uIDI1ODEwNykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBNSU1FVHlw
ZUZyb21VVEkoY28KIFN0cmluZyBNSU1FVHlwZUZyb21VVElUcmVlKGNvbnN0IFN0cmluZyYpOwog
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIFVUSUZyb21NSU1FVHlwZShjb25zdCBTdHJpbmcmKTsKIGJv
b2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcmKTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBV
VElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25z
dCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VVRJ
RnJvbU1JTUVUeXBlTWFwKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYpOwogV0VCQ09SRV9FWFBP
UlQgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGNyZWF0ZVVUSUZyb21NSU1FVHlwZU1h
cCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0
aWVzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1VUSVV0aWxpdGllcy5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEs
NiArMTYxLDEyIEBAIGJvb2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcmIFVUSSkKICAgICBy
ZXR1cm4gVVRUeXBlSXNEZWNsYXJlZChVVEkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAK
K1N0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYg
dGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkKK3sKKyAgICBhdXRvIHUgPSBhZG9w
dENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJGb3JUYWcodGFnQ2xhc3MuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSwgdGFnLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGNvbmZvcm1pbmdU
b1VUSS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgcmV0dXJuIFN0cmluZyh1LmdldCgp
KTsKK30KKwogc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhZGRpdGlvbmFsTUlNRVR5cGVz
KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IG1pbWVUeXBl
cyA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUwMSw2ICs1NTAxLDExIEBA
IFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlwZShjb24KIHsKICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKIH0KKworU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbVRhZyhjb25z
dCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25m
b3JtaW5nVG9VVEkpCit7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CiAjZW5kaWYKIAog
U3RyaW5nIEludGVybmFsczo6bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IGV4dGVuc2lvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24g
MjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBj
b3B5KQpAQCAtOTQzLDYgKzk0Myw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbWVkaWFNSU1FVHlw
ZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CiAKICAgICBTdHJpbmcgZ2V0
VVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworICAgIFN0cmluZyBnZXRV
VElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25z
dCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKICAgICBib29sIHN1cHBvcnRzUGljdHVyZUlu
UGljdHVyZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZp
c2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTg1Myw2ICs4NTMsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsK
ICAgICBET01TdHJpbmcgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihET01TdHJpbmcgZXh0ZW5z
aW9uKTsKIAogICAgIERPTVN0cmluZyBnZXRVVElGcm9tTUlNRVR5cGUoRE9NU3RyaW5nIG1pbWVU
eXBlKTsKKyAgICBET01TdHJpbmcgZ2V0VVRJRnJvbVRhZyhET01TdHJpbmcgdGFnQ2xhc3MsIERP
TVN0cmluZyB0YWcsIERPTVN0cmluZyBjb25mb3JtaW5nVG9VVEkpOwogCiAgICAgYm9vbGVhbiBz
dXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNiw0ICsxMDYsOSBAQCBTdHJpbmcgSW50
ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5cGUoY29uCiAgICAgcmV0dXJuIFVUSUZyb21NSU1FVHlw
ZShtaW1lVHlwZSk7CiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcoY29uc3Qg
U3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgY29uZm9y
bWluZ1RvVVRJKQoreworICAgIHJldHVybiBVVElGcm9tVGFnKHRhZ0NsYXNzLCB0YWcsIGNvbmZv
cm1pbmdUb1VUSSk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgxMTEpCisrKyBT
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisy
MDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBw
ZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNlbmQgbWFwcGluZyBmcm9tIHRhZy90YWcgY2xhc3MgdG8gVVRJ
IGZyb20gdGhlIFVJIHByb2Nlc3MgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBhcyBwYXJ0IG9m
IHRoZSBXZWJQcm9jZXNzCisgICAgICAgIGNyZWF0aW9uIHBhcmFtZXRlcnMuIEFsc28sIGlzc3Vl
IHNvbWUgbWFjaC1sb29rdXAgZXh0ZW5zaW9ucyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlm
IEFjY2Vzc2liaWxpdHkgaXMKKyAgICAgICAgZW5hYmxlZC4KKworICAgICAgICAqIFJlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYjoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0wMy0w
OCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
dGhlIHdhdGNoT1MgYnVpbGQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1Jl
c291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5z
Ygkod29ya2luZyBjb3B5KQpAQCAtODQ4LDcgKzg0OCw3IEBACiAoYWxsb3cgbWFjaC1sb29rdXAK
ICAgICAocmVxdWlyZS1hbGwKICAgICAgICAgKGV4dGVuc2lvbiAiY29tLmFwcGxlLndlYmtpdC5l
eHRlbnNpb24ubWFjaCIpCi0gICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmlwaG9uZS5h
eHNlcnZlci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBwbGUubmVoZWxwZXIi
ICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIgImNvbS5hcHBsZS51
aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSIgImNv
bS5hcHBsZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNvbS5hcHBsZS5tb2Jp
bGVhc3NldGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFwcGxlLmZyb250Ym9h
cmQuc3lzdGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiAiY29tLmFwcGxl
LndlYmluc3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIgImNvbS5h
cHBsZS5jZnByZWZzZC5kYWVtb24iCisgICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmlw
aG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBwbGUubmVo
ZWxwZXIiICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIgImNvbS5h
cHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVV
SSIgImNvbS5hcHBsZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNvbS5hcHBs
ZS5tb2JpbGVhc3NldGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFwcGxlLmZy
b250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiAiY29t
LmFwcGxlLndlYmluc3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIg
ImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iICJjb20uYXBwbGUubHNkLm1hcGRiIgogCiAgICAg
ICAgICAgICA7OzsgRklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3Zl
ZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZQogICAgICAgICAgICAgImNvbS5hcHBs
ZS5haXJwbGF5LmFwc3luY2NvbnRyb2xsZXIueHBjIiAiY29tLmFwcGxlLmF1ZGlvLkFVUmVtb3Rl
SU9TZXJ2ZXIiICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRSZWdpc3RyYXIiCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw2ICsx
ODAsOSBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5j
b2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgZW5jb2RlciA8PCBmb2N1c1Jp
bmdDb2xvcjsKICAgICBlbmNvZGVyIDw8IGxvY2FsaXplZERldmljZU1vZGVsOworI2lmIFVTRShV
VFRZUEVfU1dJWlpMRVIpCisgICAgZW5jb2RlciA8PCB2ZWN0b3JPZlVUVHlwZUl0ZW07CisjZW5k
aWYKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC00OTMsNiArNDk2LDE0IEBAIGJv
b2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisjaWYgVVNFKFVUVFlQRV9TV0laWkxFUikKKyAgICBPcHRpb25h
bDxWZWN0b3I8VVRUeXBlSXRlbT4+IHZlY3Rvck9mVVRUeXBlSXRlbTsKKyAgICBkZWNvZGVyID4+
IHZlY3Rvck9mVVRUeXBlSXRlbTsKKyAgICBpZiAoIXZlY3Rvck9mVVRUeXBlSXRlbSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtID0gV1RG
TW92ZSgqdmVjdG9yT2ZVVFR5cGVJdGVtKTsKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAt
NTMsNiArNTMsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlIDxXZWJD
b3JlL1JlbmRlclRoZW1lSU9TLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9VVFR5cGVSZWNvcmRTd2l6
emxlci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMjIzLDYgKzIyNCw5IEBAIHN0
cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBXZWJDb3JlOjpSZW5kZXJU
aGVtZUlPUzo6Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwIGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1h
cDsKICAgICBXZWJDb3JlOjpDb2xvciBmb2N1c1JpbmdDb2xvcjsKICAgICBTdHJpbmcgbG9jYWxp
emVkRGV2aWNlTW9kZWw7CisjaWYgVVNFKFVUVFlQRV9TV0laWkxFUikKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6VVRUeXBlSXRlbT4gdmVjdG9yT2ZVVFR5cGVJdGVtOworI2VuZGlmCiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTgxMDcpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNzYsOSArMzc2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVcKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBp
ZiAoIVdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpKSB7CisgICAgaWYg
KCFXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKSB8fCBfQVhTQXBwbGlj
YXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBzZXJ2aWNlc1tdID0gewogICAgICAgICAgICAgImNvbS5hcHBsZS5sc2Qub3BlbiIsCisgICAg
ICAgICAgICAiY29tLmFwcGxlLmxzZC5tYXBkYiIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLm1v
YmlsZWFzc2V0ZCIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIsCiAgICAg
ICAgICAgICAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIiwKQEAgLTQyOSw4ICs0
MzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgIHBh
cmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVuZGVyVGhlbWVJT1M6OmNzc1Zh
bHVlVG9TeXN0ZW1Db2xvck1hcCgpOwogICAgIHBhcmFtZXRlcnMuZm9jdXNSaW5nQ29sb3IgPSBS
ZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KCkpOwogICAgIHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwgPSBs
b2NhbGl6ZWREZXZpY2VNb2RlbCgpOworI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisgICAgcGFy
YW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0gPSBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsK
KyNlbmRpZgogI2VuZGlmCi0KICAgICAKICAgICAvLyBBbGxvdyBtaWNyb3Bob25lIGFjY2VzcyBp
ZiBlaXRoZXIgcHJlZmVyZW5jZSBpcyBzZXQgYmVjYXVzZSBXZWJSVEMgcmVxdWlyZXMgbWljcm9w
aG9uZSBhY2Nlc3MuCiAgICAgYm9vbCBuZWVkV2ViUHJvY2Vzc0V4dGVuc2lvbnMgPSAhbV9kZWZh
dWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsNyBAQAogI2lt
cG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0FjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0SU9TLmgiCiAjaW1wb3J0IDxVSUtpdC9VSUFjY2Vzc2liaWxpdHkuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9z
L0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNlbmRpZgogCkBAIC0yOTYsNiArMjk3LDExIEBAIHZv
aWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAgICAgX0NGUHJlZnNT
ZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7CiAgICAgfQogI2VuZGlmCisgICAgICAgIAorI2lm
IFVTRShVVFRZUEVfU1dJWlpMRVIpCisgICAgc3dpenpsZVVUVHlwZVJlY29yZCgpOworICAgIHNl
dFZlY3Rvck9mVVRUeXBlSXRlbShXVEZNb3ZlKHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVt
KSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVy
cykKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI1ODExMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEyIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNs
YXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMDMtMDcgIFJvc3MgS2ly
c2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFJlcGxhY2UgdGhlIHVz
ZSBvZiB0ZXJtICJyb2xsb3V0IiB0byAicmV2ZXJ0IiBpbiB2YXJpb3VzIHRvb2xzCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU4MTA3KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMTYsNiArMTAxNiw3IEBACiAJCUUzQTFFNzgyMjFCMjVCN0EwMDhDNjAwNyAvKiBV
UkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNB
MUU3ODAyMUIyNUI3OTAwOEM2MDA3IC8qIFVSTC5jcHAgKi87IH07CiAJCUUzQTFFNzg1MjFCMjVC
OTEwMDhDNjAwNyAvKiBVUkxQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNBMUU3ODQyMUIyNUI5MTAwOEM2MDA3IC8qIFVSTFBhcnNlci5j
cHAgKi87IH07CiAJCUUzQzIxQTdDMjFCMjVDQTIwMDNCMzFBMyAvKiBVUkxFeHRyYXMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0MyMUE3QjIxQjI1
Q0EyMDAzQjMxQTMgLyogVVJMRXh0cmFzLm1tICovOyB9OworCQlFM0NBQUE0QzI0MTU1MDUxMDBD
RUQyRTIgLyogVVRJRnJvbVRhZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzQ0FBQTRCMjQxNTUwNTEwMENFRDJFMiAvKiBVVElGcm9tVGFnLm1tICov
OyB9OwogCQlFM0RFQTgxMTFGMEE1ODkwMDBDQkMyRTggLyogVGhyZWFkR3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNERUE4MTAxRjBBNTg4
MDAwQ0JDMkU4IC8qIFRocmVhZEdyb3VwLmNwcCAqLzsgfTsKIAkJRTUwMzZGNzgyMTFCQzI1NDAw
QkZEQkUyIC8qIGNvbG9yLWRyb3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTAzNkY3NzIxMUJDMjI4MDBCRkRCRTIgLyogY29sb3It
ZHJvcC5odG1sICovOyB9OwogCQlFQ0E2ODBDRTFFNjhDQzA5MDA3MzFEMjAgLyogU3RyaW5nVXRp
bGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RUNBNjgwQ0QxRTY4Q0MwOTAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5tbSAqLzsgfTsKQEAg
LTI2MTYsNiArMjYxNyw3IEBACiAJCUUzQTFFNzgwMjFCMjVCNzkwMDhDNjAwNyAvKiBVUkwuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNBMUU3ODQyMUIyNUI5MTAwOEM2MDA3IC8qIFVSTFBhcnNl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkxQYXJzZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0MyMUE3QjIxQjI1Q0EyMDAzQjMxQTMg
LyogVVJMRXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
VVJMRXh0cmFzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE0QjI0MTU1
MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVUSUZy
b21UYWcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzREVBODEwMUYwQTU4ODAw
MENCQzJFOCAvKiBUaHJlYWRHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUaHJlYWRHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MDAxOTMwMUFDRTlCNUMwMDFCMEEyQSAvKiBCbG9vbUZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9vbUZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0OTAyOTY3MTRFMkUzQTQwMDJCRUREMSAvKiBUeXBpbmdTdHlsZUNyYXNo
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVHlwaW5nU3R5bGVD
cmFzaC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MTYsNiArMjkxOCw3IEBA
CiAJCQkJRTMyNUM5MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0
Lm1tICovLAogCQkJCUMxNUNCQjNFMjNGQjE3N0EwMDMwMENDNyAvKiBQcmVmZXJlbmNlQ2hhbmdl
cy5tbSAqLywKIAkJCQlDMTk0RTMxQzI0MDlERjQzMDAyOTM5RUQgLyogVVRJRnJvbU1JTUVUeXBl
Lm1tICovLAorCQkJCUUzQ0FBQTRCMjQxNTUwNTEwMENFRDJFMiAvKiBVVElGcm9tVGFnLm1tICov
LAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFrT2JqQ1B0ci5tbSAqLywKIAkJ
CSk7CiAJCQluYW1lID0gY29jb2E7CkBAIC01MTE5LDYgKzUxMjIsNyBAQAogCQkJCTdDQ0U3RjE4
MUE0MTFBRTYwMDQ0N0M0QyAvKiBVc2VyTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RUIyNDJCODIxRDQxNDBCMDA1NUMxQzAgLyogVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzE5NEUzMUQyNDA5REY0MzAwMjkzOUVEIC8qIFVUSUZyb21NSU1F
VHlwZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUzQ0FBQTRDMjQxNTUwNTEwMENFRDJFMiAvKiBV
VElGcm9tVGFnLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwM0ExRDBBNjAyNzAwRkVCQ0Yz
IC8qIFV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQzYxRDBBNjU0
RTAwRkVCQ0YzIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0QzMDY1RTAyMTY1NjgyRTAwRTg5NURGIC8qIFZpZGVvUXVhbGl0eURpc3BsYXlDb21wb3NpdGlu
Zy5tbSBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvVVRJRnJvbVRhZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9VVElGcm9tVGFnLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1VUSUZyb21UYWcubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19T
UEkKKworI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0
aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJDb3JlL1VUSVV0
aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9VVFR5cGVSZWNvcmRTd2l6emxlci5oPgorCitU
RVNUKFdlYktpdCwgVVRJRnJvbVRhZykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUmV0YWlu
UHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdlYktpdEFQSTo6VXRpbDo6
Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJuYWxzSW5qZWN0ZWRCdW5k
bGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgPSAoV0tQcm9j
ZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOwor
CisgICAgZm9yIChhdXRvJiBpdGVtIDogV2ViQ29yZTo6Y3JlYXRlVmVjdG9yT2ZVVFR5cGVJdGVt
KCkpIHsKKyAgICAgICAgYXV0byBqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2lu
ZG93LmludGVybmFscy5nZXRVVElGcm9tVGFnKFwiJXNcIiwgXCIlc1wiLCBcIiVzXCIpIiwgaXRl
bS50YWdDbGFzcy51dGY4KCkuZGF0YSgpLCBpdGVtLnRhZy51dGY4KCkuZGF0YSgpLCAsIGl0ZW0u
aWRlbnRpZmllci51dGY4KCkuZGF0YSgpXTsKKworICAgICAgICBhdXRvIHV0aSA9IFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6anNdOworCisgICAgICAgIEFTU0VSVF9UUlVF
KFdlYkNvcmU6OlVUSUZyb21UYWcoaXRlbS50YWdDbGFzcywgaXRlbS50YWcsIGl0ZW0uaWRlbnRp
ZmllcikgPT0gU3RyaW5nKHV0aSkpOworICAgIH0KK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tf
SEFWRV9DX1NQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392989</attachid>
            <date>2020-03-08 15:00:49 -0700</date>
            <delta_ts>2020-03-08 15:03:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308150049.patch</filename>
            <type>text/plain</type>
            <size>37149</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTgxMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRh
ZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtVXNlLmg6CisKIDIwMjAtMDMtMDcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBwb3J0IGZvciBkaWN0YXRpb24gYWx0ZXJu
YXRpdmVzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyMCwzICszMjAsNyBA
QAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTYwMCkKICNkZWZpbmUgVVNFX0NURk9OVFRSQU5TRk9S
TUdMWVBIU1dJVEhMQU5HVUFHRSAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMAorI2RlZmluZSBV
U0VfVVRUWVBFX1NXSVpaTEVSIDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjU4
MTEyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMjAtMDMtMDggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIE1hcHBpbmcgdG8gVVRJIGZyb20gdGFnIGFuZCB0YWcgY2xhc3Mg
c2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtYXBwaW5nIHNob3VsZCBiZSBkb25l
IGluIHRoZSBVSSBwcm9jZXNzLCBzaW5jZSBpdCBpcyB1c2luZyBhIHN5c3RlbSBzZXJ2aWNlIHRo
YXQgd2lsbCBubyBsb25nZXIgYmUgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBXZWJDb250ZW50
IHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgdGhlIG1ldGhvZCArW1VUVHlwZVJlY29yZCB0eXBl
UmVjb3JkV2l0aFRhZ092ZXJyaWRlXSBpcyBzd2l6emxlZCBpbgorICAgICAgICB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzLCBhbmQgaXMgdXNpbmcgdGhlIGNhY2hlZCBtYXBwaW5nIHNlbnQgZnJvbSB0
aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0LlVUSUZyb21UYWcKKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlVUVHlwZUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpVVFR5
cGVJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3
aXp6bGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViVVRUeXBlUmVjb3JkIHNldElkZW50aWZp
ZXI6XSk6CisgICAgICAgIChXZWJDb3JlOjp2ZWN0b3JPZlVUVHlwZVJlY29yZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c2V0VmVjdG9y
T2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlVUSUZyb21UYWcpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMubW06CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVU
SUZyb21UYWcpOgorCiAyMDIwLTAzLTA4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlp
QHNvbnkuY29tPgogCiAgICAgICAgIGdlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogIm15IiB2YXJp
YWJsZSAkZmggbWFza3MgZWFybGllciBkZWNsYXJhdGlvbiBpbiBzYW1lIHNjb3BlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ4MTYsNiArNDgxNiw3IEBACiAJCUUxRkUx
MzdCMTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzc5MTg0RDIxQkIwMDg5
MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCAqLzsgfTsKIAkJRTFGRjU3QTMwRjAxMjU1
QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY1N0EyMEYwMTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRH
bG9iYWxEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2
QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCAqLzsgfTsKKwkJ
RTMwMzdGNDQyNDE1N0U5QzAwMzFDQTBGIC8qIENvcmVTZXJ2aWNlcy5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzAzN0Y0MjI0MTU3
RTlCMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29yayAqLzsgfTsKIAkJRTMwNTkyNjQx
RTI3QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDU5MjYyMUUyN0EzOEMwMEQ1N0M5OCAv
KiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTMwNTkyNjgxRTI3QTNEMTAwRDU3Qzk4IC8qIENhY2hlZFNjcmlw
dEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDAxRDgx
RTRDNzAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FG
IC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00ODM5LDYgKzQ4NDAsOCBAQAogCQlFM0JCQzI0NzIz
ODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJDMjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1
ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAvKiBET01KSVRDaGVja0RPTS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0
QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87IH07CiAJCUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5
MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIxMTMxNDc0MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tD
YWxsYmFjay5oICovOyB9OworCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVj
b3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzQ0FBQTYy
MjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTYwMjQxNTVFRjMwMENFRDJF
MiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSAqLzsgfTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAw
MjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JC
OEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0ZBMzg2NDFENzE4MTJEMDBBQTU5
NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNGQTM4NjExRDcxNkU3NjAwQUE1OTUwIC8qIFBlbmRpbmdTY3Jp
cHRDbGllbnQuaCAqLzsgfTsKIAkJRTQwMUMyNzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJ
dGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3Nl
cnRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTE1MTQ5LDYgKzE1MTUyLDcgQEAKIAkJRTFGRjU3QTUwRjAxMjU2QjAwODkxRUJCIC8qIFRo
cmVhZEdsb2JhbERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGhyZWFkR2xvYmFsRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4
RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4RjZCMTgwREI1QkUwMDEzMjY3
NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMzAzN0Y0MjI0MTU3RTlCMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29y
ayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZVNlcnZpY2VzLmZyYW1ld29yazsgcGF0aCA9IFN5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yazsgc291cmNlVHJlZSA9
IFNES1JPT1Q7IH07CiAJCUUzMDU5MjYxMUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2lj
U2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUNs
YXNzaWNTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA1OTI2MjFF
MjdBMzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmxpbmVDbGFzc2ljU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzMDU5MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRj
aGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFNjcmlw
dEZldGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUyMDIsNiArMTUy
MDYsOCBAQAogCQlFM0JGMTlFNzIyQUYzMDlGMDA5Qzk5MjYgLyogU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDOTlBMDgxREMzRDQx
NzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUpJVENoZWNrRE9NLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
QzlBRUM5MjExMzE0NzQwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWljcm90YXNrQ2FsbGJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFBNUUyNDE1NUVGMjAwQ0VEMkUyIC8qIFVUVHlwZVJl
Y29yZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUVHlwZVJl
Y29yZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQ0FBQTYwMjQx
NTVFRjMwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0QwNDk5MzFEQURDMDQ1MDA3MThGM0MgLyogTm9kZUNv
bnN0YW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb2RlQ29uc3RhbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRTRFMkE1MUUzQjE2RkMwMDIzQkI4
QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRTRFMkE2MUUzQjE2RkMwMDIzQkI4
QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU5NzcsNiArMTU5ODMsNyBAQAogCQkJZmlsZXMg
PSAoCiAJCQkJRkQyREJGMTIxMkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkJRkQyREJGMTMxMkIwNDhBMzAwRUQ5OEM2IC8qIEF1ZGlv
VG9vbGJveC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlFMzAzN0Y0NDI0MTU3RTlD
MDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJ
CTFBQjMzREE1MTI1NTFFMzIwMDI0NDU3QSAvKiBJT0tpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQk5M0YxOUIxNjA4MjQ1RTU5MDAxRTlBQkMgLyogSmF2YVNjcmlwdENvcmUuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMUMwMjJGMDAyMkNGRUQ2ODAwNkRGMDFCIC8q
IGxpYmNvbXByZXNzaW9uLnRiZCBpbiBGcmFtZXdvcmtzICovLApAQCAtMTY1NzUsNiArMTY1ODIs
NyBAQAogCQkJCUZEMkRCRjBGMTJCMDQ4QTMwMEVEOThDNiAvKiBBdWRpb1Rvb2xib3guZnJhbWV3
b3JrICovLAogCQkJCUExNzYzRjQwMUUyMDU4NkUwMDFENThERSAvKiBDRk5ldHdvcmsuZnJhbWV3
b3JrICovLAogCQkJCUFBNUYzQjkwMTZDQzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5m
cmFtZXdvcmsgKi8sCisJCQkJRTMwMzdGNDIyNDE1N0U5QjAwMzFDQTBGIC8qIENvcmVTZXJ2aWNl
cy5mcmFtZXdvcmsgKi8sCiAJCQkJQTE1RTZCRjAxRTIxMkE2QTAwODBBRjM0IC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrICovLAogCQkJCTFBQjMzREE0MTI1NTFFMzIwMDI0NDU3QSAvKiBJT0tpdC5m
cmFtZXdvcmsgKi8sCiAJCQkJRjgyMTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRD
b3JlLmZyYW1ld29yayAqLywKQEAgLTIzMTIyLDYgKzIzMTMwLDggQEAKIAkJCQkzMTBENzE5NDFC
MzM1QzlEMDA5QzdCNzMgLyogVGhlbWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQw
MDlDN0I3MyAvKiBUaGVtZUNvY29hLm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQw
NiAvKiBVc2VyQWdlbnRDb2NvYS5tbSAqLywKKwkJCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIg
LyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCAqLywKKwkJCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gKi8sCiAJCQkJNTJCMEQ0QkYxQzU3RkQ2NjAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJNTJENUEx
QTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8sCiAJCQkJNTJE
NUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmggKi8sCkBAIC0zMjkzNCw2ICszMjk0NCw3IEBACiAJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFE
NDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTVBRjE0RTYxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkxRkFGQkYxOTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenps
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxp
ZGF0aW9uQnViYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUExNTQyODEyNzk1MzREMDBEMEIw
QzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTNBM0VBMTVG
RjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDM3NCw2ICszNDM4NSw3IEBACiAJCQkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8q
IFVzZXJNZXNzYWdlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0U2ODM0NDE5MjE0
M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVy
c05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFG
MzE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4
IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenps
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorCisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFVUVHlwZUl0ZW0g
eworICAgIFN0cmluZyB0YWc7CisgICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVu
dGlmaWVyOworICAgIFN0cmluZyB1dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPFVUVHlwZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitXRUJD
T1JFX0VYUE9SVCB2b2lkIHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKworV0VCQ09SRV9FWFBPUlQg
Y29uc3QgVmVjdG9yPFVUVHlwZUl0ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK1dF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVt
PiYmKTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7CisgICAgZW5j
b2RlciA8PCB0YWdDbGFzczsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgZW5jb2Rl
ciA8PCB1dGk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxVVFR5cGVJ
dGVtPiBVVFR5cGVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25h
bDxTdHJpbmc+IHRhZzsKKyAgICBkZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFnQ2xhc3M7
CisgICAgZGVjb2RlciA+PiB0YWdDbGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlmaWVyOwor
ICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsKKyAgICBk
ZWNvZGVyID4+IHV0aTsKKyAgICBpZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiBVVFR5cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRlbnRpZmll
ciwgKnV0aSB9OworfQorfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5t
bQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzMCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlVU
VHlwZVJlY29yZFN3aXp6bGVyLmgiCisKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorCisjaW1w
b3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisKKyNpbXBvcnQg
PFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
KyNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5r
aW5nLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPENvcmVTZXJ2
aWNlcy9MU1Byb3BlcnR5TGlzdFByaXYuaD4KKyNpbXBvcnQgPENvcmVTZXJ2aWNlcy9VVFR5cGVS
ZWNvcmRQcml2Lmg+CisKKyNlbHNlCisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1
bHQiKSkpCitAaW50ZXJmYWNlIExTUmVjb3JkIDogTlNPYmplY3QgPE5TQ29weWluZywgTlNEaXNj
YXJkYWJsZUNvbnRlbnQ+CitAZW5kCisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1
bHQiKSkpCitAaW50ZXJmYWNlIFVUVHlwZVJlY29yZCA6IExTUmVjb3JkCisrIChudWxsYWJsZSBp
bnN0YW5jZXR5cGUpdHlwZVJlY29yZFdpdGhUYWc6KE5TU3RyaW5nICopdGFnIG9mQ2xhc3M6KE5T
U3RyaW5nICopdGFnQ2xhc3MgY29uZm9ybWluZ1RvSWRlbnRpZmllcjooTlNTdHJpbmcgKiljb25m
b3Jtc1RvOworQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAZW5k
CisKKyNlbmRpZgorCitfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorQGlu
dGVyZmFjZSBXZWJVVFR5cGVSZWNvcmQgOiBVVFR5cGVSZWNvcmQKKy0gKHZvaWQpc2V0SWRlbnRp
ZmllcjooTlNTdHJpbmcgKilpOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViVVRUeXBlUmVj
b3JkIHsKK0BwYWNrYWdlCisgICAgTlNTdHJpbmcgKl9pZGVudGlmaWVyOworfQorQHN5bnRoZXNp
emUgaWRlbnRpZmllcj1faWRlbnRpZmllcjsKKy0gKHZvaWQpc2V0SWRlbnRpZmllcjooTlNTdHJp
bmcgKilpCit7CisgICAgX2lkZW50aWZpZXIgPSBpOworfQorQGVuZAorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0YXRpYyBWZWN0b3I8VVRUeXBlSXRlbT4mIHZlY3Rvck9mVVRUeXBlUmVjb3Jk
cygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVj
dG9yOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK3N0YXRpYyBJTVAgdHlwZVJlY29yZFdpdGhU
YWdPcmlnaW5hbCA9IG5pbDsKKworc3RhdGljIFVUVHlwZVJlY29yZCAqdHlwZVJlY29yZFdpdGhU
YWdPdmVycmlkZShpZCBzZWxmLCBTRUwgc2VsZWN0b3IsIE5TU3RyaW5nICp0YWcsIE5TU3RyaW5n
ICp0YWdDbGFzcywgTlNTdHJpbmcgKmlkZW50aWZpZXIpCit7CisgICAgZm9yIChhdXRvJiByIDog
dmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkpIHsKKyAgICAgICAgaWYgKHIudGFnID09IFN0cmluZyh0
YWcpICYmIHIudGFnQ2xhc3MgPT0gU3RyaW5nKHRhZ0NsYXNzKSAmJiByLmlkZW50aWZpZXIgPT0g
U3RyaW5nKGlkZW50aWZpZXIpKSB7CisgICAgICAgICAgICBXZWJVVFR5cGVSZWNvcmQgKnJlY29y
ZCA9IFtXZWJVVFR5cGVSZWNvcmQgYWxsb2NdOworICAgICAgICAgICAgW3JlY29yZCBzZXRJZGVu
dGlmaWVyOnIudXRpXTsKKyAgICAgICAgICAgIHJldHVybiByZWNvcmQ7CisgICAgICAgIH0KKyAg
ICB9CisgICAgV1RGTG9nQWx3YXlzKCJVVEkgbm90IGZvdW5kIGZvciB0YWc6ICVzICVzICVzXG4i
LCBTdHJpbmcodGFnKS51dGY4KCkuZGF0YSgpLCBTdHJpbmcodGFnQ2xhc3MpLnV0ZjgoKS5kYXRh
KCksIFN0cmluZyhpZGVudGlmaWVyKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gd3RmQ2Fs
bElNUDxVVFR5cGVSZWNvcmQgKj4odHlwZVJlY29yZFdpdGhUYWdPcmlnaW5hbCwgc2VsZiwgc2Vs
ZWN0b3IsIHRhZywgdGFnQ2xhc3MsIGlkZW50aWZpZXIpOworfQorCitjb25zdCBWZWN0b3I8VVRU
eXBlSXRlbT4mIGNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFZlY3RvcjxVVFR5cGVJdGVtPj4gdmVjdG9yID0gW10geworICAgICAgICBWZWN0
b3I8VVRUeXBlSXRlbT4gdiA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxVVFR5cGVJdGVtPiB7Cisg
ICAgICAgICAgICB7ICJkYXQiX3MsICJwdWJsaWMuZmlsZW5hbWUtZXh0ZW5zaW9uIl9zLCBzdGF0
aWNfY2FzdDxjaGFyKj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9LAor
ICAgICAgICAgICAgeyAibXA0Il9zLCAicHVibGljLmZpbGVuYW1lLWV4dGVuc2lvbiJfcywgc3Rh
dGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpLCBzdGF0aWNfY2FzdDxjaGFyKj4obnVsbHB0cikgfSwK
KyAgICAgICAgfTsKKyAgICAgICAgZm9yIChhdXRvJiByIDogdikKKyAgICAgICAgICAgIHIudXRp
ID0gVVRUeXBlQ3JlYXRlUHJlZmVycmVkSWRlbnRpZmllckZvclRhZyhyLnRhZ0NsYXNzLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCksIHIudGFnLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIHIuaWRlbnRp
Zmllci5pc051bGwoKSA/IG51bGxwdHIgOiByLmlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5n
ZXQoKSk7CisgICAgICAgIGZvciAoYXV0byYgaXQgOiBjcmVhdGVVVElGcm9tTUlNRVR5cGVNYXAo
KSkgeworICAgICAgICAgICAgVVRUeXBlSXRlbSBpID0geyBpdC5rZXksICJwdWJsaWMubWltZS10
eXBlIl9zLCBzdGF0aWNfY2FzdDxjaGFyKj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihu
dWxscHRyKSB9OworICAgICAgICAgICAgaS51dGkgPSBVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVu
dGlmaWVyRm9yVGFnKGkudGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgaS50YWcuY3Jl
YXRlQ0ZTdHJpbmcoKS5nZXQoKSwgaS5pZGVudGlmaWVyLmlzTnVsbCgpID8gbnVsbHB0ciA6IGku
aWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICAgICAgICAgIHYuYXBwZW5k
KFdURk1vdmUoaSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2OworICAgIH0oKTsKKyAg
ICByZXR1cm4gdmVjdG9yOworfQorCit2b2lkIHNldFZlY3Rvck9mVVRUeXBlSXRlbShWZWN0b3I8
VVRUeXBlSXRlbT4mJiB2ZWN0b3IpCit7CisgICAgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkgPSBX
VEZNb3ZlKHZlY3Rvcik7Cit9CisKK3ZvaWQgc3dpenpsZVVUVHlwZVJlY29yZCgpCit7CisgICAg
TWV0aG9kIHR5cGVSZWNvcmRXaXRoVGFnTWV0aG9kID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2Qob2Jq
Y19nZXRDbGFzcygiVVRUeXBlUmVjb3JkIiksIEBzZWxlY3Rvcih0eXBlUmVjb3JkV2l0aFRhZzog
b2ZDbGFzczogY29uZm9ybWluZ1RvSWRlbnRpZmllcjopKTsKKyAgICB0eXBlUmVjb3JkV2l0aFRh
Z09yaWdpbmFsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHR5cGVSZWNvcmRXaXRoVGFnTWV0
aG9kLCAoSU1QKXR5cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUpOworfQorCit9OworCisjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0
aWxpdGllcy5oCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9VVElVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBA
QCBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgTUlNRVR5cGVGcm9tVVRJKGNvCiBTdHJpbmcgTUlNRVR5
cGVGcm9tVVRJVHJlZShjb25zdCBTdHJpbmcmKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBVVElG
cm9tTUlNRVR5cGUoY29uc3QgU3RyaW5nJik7CiBib29sIGlzRGVjbGFyZWRVVEkoY29uc3QgU3Ry
aW5nJik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgVVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRh
Z0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkp
OwogCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVUSUZyb21NSU1FVHlwZU1hcChIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiYmKTsKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+JiBjcmVhdGVVVElGcm9tTUlNRVR5cGVNYXAoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0JKHJldmlzaW9u
IDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxp
dGllcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSwxMiBAQCBib29sIGlzRGVjbGFy
ZWRVVEkoY29uc3QgU3RyaW5nJiBVVEkpCiAgICAgcmV0dXJuIFVUVHlwZUlzRGVjbGFyZWQoVVRJ
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogfQogCitTdHJpbmcgVVRJRnJvbVRhZyhjb25zdCBT
dHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3Jt
aW5nVG9VVEkpCit7CisgICAgYXV0byB1ID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJ
ZGVudGlmaWVyRm9yVGFnKHRhZ0NsYXNzLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIHRhZy5jcmVh
dGVDRlN0cmluZygpLmdldCgpLCBjb25mb3JtaW5nVG9VVEkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQo
KSkpOworICAgIHJldHVybiBTdHJpbmcodS5nZXQoKSk7Cit9CisKIHN0YXRpYyBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgYWRkaXRpb25hbE1JTUVUeXBlcygpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFZlY3RvcjxTdHJpbmc+PiBtaW1lVHlwZXMgPSBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8
U3RyaW5nPiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZpc2lv
biAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU1MDEsNiArNTUwMSwxMSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElG
cm9tTUlNRVR5cGUoY29uCiB7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CisKK1N0cmlu
ZyBJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3Qg
U3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKQoreworICAgIHJldHVy
biBlbXB0eVN0cmluZygpOworfQogI2VuZGlmCiAKIFN0cmluZyBJbnRlcm5hbHM6Om1lZGlhTUlN
RVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0Myw2ICs5NDMsNyBAQCBw
dWJsaWM6CiAgICAgU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5n
JiBleHRlbnNpb24pOwogCiAgICAgU3RyaW5nIGdldFVUSUZyb21NSU1FVHlwZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKTsKKyAgICBTdHJpbmcgZ2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRh
Z0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkp
OwogCiAgICAgYm9vbCBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC04NTMsNiArODUz
LDcgQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgRE9NU3RyaW5nIG1lZGlhTUlNRVR5
cGVGb3JFeHRlbnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiAKICAgICBET01TdHJpbmcgZ2V0
VVRJRnJvbU1JTUVUeXBlKERPTVN0cmluZyBtaW1lVHlwZSk7CisgICAgRE9NU3RyaW5nIGdldFVU
SUZyb21UYWcoRE9NU3RyaW5nIHRhZ0NsYXNzLCBET01TdHJpbmcgdGFnLCBET01TdHJpbmcgY29u
Zm9ybWluZ1RvVVRJKTsKIAogICAgIGJvb2xlYW4gc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7
CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0JKHJldmlzaW9uIDI1ODEw
NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDYsNCArMTA2LDkgQEAgU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBl
KGNvbgogICAgIHJldHVybiBVVElGcm9tTUlNRVR5cGUobWltZVR5cGUpOwogfQogCitTdHJpbmcg
SW50ZXJuYWxzOjpnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0
cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkKK3sKKyAgICByZXR1cm4g
VVRJRnJvbVRhZyh0YWdDbGFzcywgdGFnLCBjb25mb3JtaW5nVG9VVEkpOworfQorCiB9CkluZGV4
OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkocmV2aXNpb24gMjU4MTExKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAyMC0wMy0wOCAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFwcGluZyB0byBVVEkgZnJv
bSB0YWcgYW5kIHRhZyBjbGFzcyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3ODMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZW5kIG1h
cHBpbmcgZnJvbSB0YWcvdGFnIGNsYXNzIHRvIFVUSSBmcm9tIHRoZSBVSSBwcm9jZXNzIHRvIHRo
ZSBXZWJDb250ZW50IHByb2Nlc3MgYXMgcGFydCBvZiB0aGUgV2ViUHJvY2VzcworICAgICAgICBj
cmVhdGlvbiBwYXJhbWV0ZXJzLiBBbHNvLCBpc3N1ZSBzb21lIG1hY2gtbG9va3VwIGV4dGVuc2lv
bnMgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpZiBBY2Nlc3NpYmlsaXR5IGlzCisgICAgICAg
IGVuYWJsZWQuCisKKyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2I6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDMtMDggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSB3YXRjaE9TIGJ1aWxkCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9T
YW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNp
b24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTg0OCw3
ICs4NDgsNyBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKHJlcXVpcmUtYWxsCiAgICAgICAg
IChleHRlbnNpb24gImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLm1hY2giKQotICAgICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNvbS5h
cHBsZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFn
ZXIuY29udGVudC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxl
LldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiICJjb20u
YXBwbGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxlLm1vYmls
ZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAiY29t
LmFwcGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20uYXBwbGUu
UG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgorICAg
ICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIg
ImNvbS5hcHBsZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lv
bm1hbmFnZXIuY29udGVudC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29t
LmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2Qi
ICJjb20uYXBwbGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxl
Lm1vYmlsZWFzc2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2Vz
IiAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20u
YXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9u
IiAiY29tLmFwcGxlLmxzZC5tYXBkYiIKIAogICAgICAgICAgICAgOzs7IEZJWE1FKDIwNzcxNik6
IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMg
Y29tcGxldGUKICAgICAgICAgICAgICJjb20uYXBwbGUuYWlycGxheS5hcHN5bmNjb250cm9sbGVy
LnhwYyIgImNvbS5hcHBsZS5hdWRpby5BVVJlbW90ZUlPU2VydmVyIiAiY29tLmFwcGxlLmF1ZGlv
LkF1ZGlvQ29tcG9uZW50UmVnaXN0cmFyIgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1ODEw
NykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDkgQEAgdm9pZCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZAogICAgIGVuY29kZXIgPDwgY3NzVmFsdWVUb1N5c3RlbUNv
bG9yTWFwOwogICAgIGVuY29kZXIgPDwgZm9jdXNSaW5nQ29sb3I7CiAgICAgZW5jb2RlciA8PCBs
b2NhbGl6ZWREZXZpY2VNb2RlbDsKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorICAgIGVuY29k
ZXIgPDwgdmVjdG9yT2ZVVFR5cGVJdGVtOworI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQpAQCAtNDkzLDYgKzQ5NiwxNCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kCiAgICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxv
Y2FsaXplZERldmljZU1vZGVsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorI2lmIFVT
RShVVFRZUEVfU1dJWlpMRVIpCisgICAgT3B0aW9uYWw8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0
b3JPZlVUVHlwZUl0ZW07CisgICAgZGVjb2RlciA+PiB2ZWN0b3JPZlVUVHlwZUl0ZW07CisgICAg
aWYgKCF2ZWN0b3JPZlVUVHlwZUl0ZW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJh
bWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSA9IFdURk1vdmUoKnZlY3Rvck9mVVRUeXBlSXRlbSk7
CisjZW5kaWYKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZp
c2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KICNlbmRpZgogCiBuYW1lc3Bh
Y2UgQVBJIHsKQEAgLTIyMyw2ICsyMjQsOSBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyB7CiAgICAgV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OkNTU1ZhbHVlVG9TeXN0ZW1D
b2xvck1hcCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgV2ViQ29yZTo6Q29sb3IgZm9j
dXNSaW5nQ29sb3I7CiAgICAgU3RyaW5nIGxvY2FsaXplZERldmljZU1vZGVsOworI2lmIFVTRShV
VFRZUEVfU1dJWlpMRVIpCisgICAgVmVjdG9yPFdlYkNvcmU6OlVUVHlwZUl0ZW0+IHZlY3Rvck9m
VVRUeXBlSXRlbTsKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzc2LDkgKzM3Niwx
MCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNhdGlv
bjo6aXNNb2JpbGVTYWZhcmkoKSkgeworICAgIGlmICghV2ViQ29yZTo6SU9TQXBwbGljYXRpb246
OmlzTW9iaWxlU2FmYXJpKCkgfHwgX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkgewogICAgICAgICBzdGF0aWMgY29uc3QgY2hhciogc2VydmljZXNbXSA9IHsKICAgICAgICAg
ICAgICJjb20uYXBwbGUubHNkLm9wZW4iLAorICAgICAgICAgICAgImNvbS5hcHBsZS5sc2QubWFw
ZGIiLAogICAgICAgICAgICAgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQiLAogICAgICAgICAgICAg
ImNvbS5hcHBsZS5pY29uc2VydmljZXMiLAogICAgICAgICAgICAgImNvbS5hcHBsZS5Qb3dlck1h
bmFnZW1lbnQuY29udHJvbCIsCkBAIC00MjksOCArNDMwLDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1D
b2xvck1hcCA9IFJlbmRlclRoZW1lSU9TOjpjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKTsKICAg
ICBwYXJhbWV0ZXJzLmZvY3VzUmluZ0NvbG9yID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmZv
Y3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPigpKTsKICAgICBwYXJh
bWV0ZXJzLmxvY2FsaXplZERldmljZU1vZGVsID0gbG9jYWxpemVkRGV2aWNlTW9kZWwoKTsKKyNp
ZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVt
ID0gY3JlYXRlVmVjdG9yT2ZVVFR5cGVJdGVtKCk7CisjZW5kaWYKICNlbmRpZgotCiAgICAgCiAg
ICAgLy8gQWxsb3cgbWljcm9waG9uZSBhY2Nlc3MgaWYgZWl0aGVyIHByZWZlcmVuY2UgaXMgc2V0
IGJlY2F1c2UgV2ViUlRDIHJlcXVpcmVzIG1pY3JvcGhvbmUgYWNjZXNzLgogICAgIGJvb2wgbmVl
ZFdlYlByb2Nlc3NFeHRlbnNpb25zID0gIW1fZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMo
KS51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTgxMDcpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDMsNiArMTAzLDcgQEAKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5o
IgogI2ltcG9ydCAiV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdElPUy5oIgogI2ltcG9ydCA8
VUlLaXQvVUlBY2Nlc3NpYmlsaXR5Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1VUVHlwZVJlY29yZFN3
aXp6bGVyLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAj
ZW5kaWYKIApAQCAtMjk2LDYgKzI5NywxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByCiAgICAgICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQoZmFsc2Up
OwogICAgIH0KICNlbmRpZgorICAgICAgICAKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorICAg
IHN3aXp6bGVVVFR5cGVSZWNvcmQoKTsKKyAgICBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oV1RGTW92
ZShwYXJhbWV0ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNz
RGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgxMTApCisrKyBUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0wOCAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFw
cGluZyB0byBVVEkgZnJvbSB0YWcgYW5kIHRhZyBjbGFzcyBzaG91bGQgYmUgcGVyZm9ybWVkIGlu
IHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDg3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDIwLTAzLTA3ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255
LmNvbT4KIAogICAgICAgICBSZXBsYWNlIHRoZSB1c2Ugb2YgdGVybSAicm9sbG91dCIgdG8gInJl
dmVydCIgaW4gdmFyaW91cyB0b29scwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDI1ODEwNykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDE2LDYgKzEwMTYsNyBAQAog
CQlFM0ExRTc4MjIxQjI1QjdBMDA4QzYwMDcgLyogVVJMLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTFFNzgwMjFCMjVCNzkwMDhDNjAwNyAvKiBV
UkwuY3BwICovOyB9OwogCQlFM0ExRTc4NTIxQjI1QjkxMDA4QzYwMDcgLyogVVJMUGFyc2VyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTFFNzg0
MjFCMjVCOTEwMDhDNjAwNyAvKiBVUkxQYXJzZXIuY3BwICovOyB9OwogCQlFM0MyMUE3QzIxQjI1
Q0EyMDAzQjMxQTMgLyogVVJMRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNDMjFBN0IyMUIyNUNBMjAwM0IzMUEzIC8qIFVSTEV4dHJhcy5t
bSAqLzsgfTsKKwkJRTNDQUFBNEMyNDE1NTA1MTAwQ0VEMkUyIC8qIFVUSUZyb21UYWcubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0NBQUE0QjI0MTU1
MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5tbSAqLzsgfTsKIAkJRTNERUE4MTExRjBBNTg5MDAw
Q0JDMkU4IC8qIFRocmVhZEdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzREVBODEwMUYwQTU4ODAwMENCQzJFOCAvKiBUaHJlYWRHcm91cC5j
cHAgKi87IH07CiAJCUU1MDM2Rjc4MjExQkMyNTQwMEJGREJFMiAvKiBjb2xvci1kcm9wLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUw
MzZGNzcyMTFCQzIyODAwQkZEQkUyIC8qIGNvbG9yLWRyb3AuaHRtbCAqLzsgfTsKIAkJRUNBNjgw
Q0UxRTY4Q0MwOTAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQTY4MENEMUU2OENDMDkwMDczMUQyMCAv
KiBTdHJpbmdVdGlsaXRpZXMubW0gKi87IH07CkBAIC0yNjE2LDYgKzI2MTcsNyBAQAogCQlFM0Ex
RTc4MDIxQjI1Qjc5MDA4QzYwMDcgLyogVVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVSTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQTFF
Nzg0MjFCMjVCOTEwMDhDNjAwNyAvKiBVUkxQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVVJMUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNDMjFBN0IyMUIyNUNBMjAwM0IzMUEzIC8qIFVSTEV4dHJhcy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVSTEV4dHJhcy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFBNEIyNDE1NTA1MTAwQ0VEMkUyIC8qIFVUSUZyb21UYWcu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVVElGcm9tVGFnLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFM0RFQTgxMDFGMEE1ODgwMDBDQkMyRTggLyogVGhyZWFkR3JvdXAuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkR3JvdXAuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDAwMTkzMDFBQ0U5QjVDMDAxQjBBMkEgLyog
Qmxvb21GaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxv
b21GaWx0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDkwMjk2NzE0RTJF
M0E0MDAyQkVERDEgLyogVHlwaW5nU3R5bGVDcmFzaC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFR5cGluZ1N0eWxlQ3Jhc2gubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yOTE2LDYgKzI5MTgsNyBAQAogCQkJCUUzMjVDOTA2MjNFMzg3MDIwMEJD
N0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5tbSAqLywKIAkJCQlDMTVDQkIzRTIzRkIx
NzdBMDAzMDBDQzcgLyogUHJlZmVyZW5jZUNoYW5nZXMubW0gKi8sCiAJCQkJQzE5NEUzMUMyNDA5
REY0MzAwMjkzOUVEIC8qIFVUSUZyb21NSU1FVHlwZS5tbSAqLywKKwkJCQlFM0NBQUE0QjI0MTU1
MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5tbSAqLywKIAkJCQkwRjEzOUU3NTFBNDIzQTUzMDBG
NTkwRjUgLyogV2Vha09iakNQdHIubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNvY29hOwpAQCAt
NTExOSw2ICs1MTIyLDcgQEAKIAkJCQk3Q0NFN0YxODFBNDExQUU2MDA0NDdDNEMgLyogVXNlck1l
c3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVCMjQyQjgyMUQ0MTQwQjAwNTVDMUMwIC8q
IFVzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMxOTRFMzFE
MjQwOURGNDMwMDI5MzlFRCAvKiBVVElGcm9tTUlNRVR5cGUubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlFM0NBQUE0QzI0MTU1MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDODNFMDNBMUQwQTYwMjcwMEZFQkNGMyAvKiBVdGlsaXRpZXNDb2NvYS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTdDODNFMEM2MUQwQTY1NEUwMEZFQkNGMyAvKiBWaWRlb0NvbnRyb2xz
TWFuYWdlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMzA2NUUwMjE2NTY4MkUwMEU4OTVERiAv
KiBWaWRlb1F1YWxpdHlEaXNwbGF5Q29tcG9zaXRpbmcubW0gaW4gU291cmNlcyAqLywKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VUSUZyb21UYWcubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVVRJRnJvbVRhZy5tbQkobm9u
ZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9VVElGcm9tVGFn
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpZiBVU0UoVVRUWVBFX1NXSVpa
TEVSKQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KKworVEVTVChXZWJLaXQsIFVUSUZyb21UYWcpCit7
CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQg
PSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1
bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0
aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIGZvciAoYXV0byYgaXRlbSA6IFdl
YkNvcmU6OmNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpKSB7CisgICAgICAgIGF1dG8ganMgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZ2V0VVRJRnJvbVRh
ZyhcIiVzXCIsIFwiJXNcIiwgXCIlc1wiKSIsIGl0ZW0udGFnQ2xhc3MudXRmOCgpLmRhdGEoKSwg
aXRlbS50YWcudXRmOCgpLmRhdGEoKSwgLCBpdGVtLmlkZW50aWZpZXIudXRmOCgpLmRhdGEoKV07
CisKKyAgICAgICAgYXV0byB1dGkgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OmpzXTsKKworICAgICAgICBBU1NFUlRfVFJVRShXZWJDb3JlOjpVVElGcm9tVGFnKGl0ZW0u
dGFnQ2xhc3MsIGl0ZW0udGFnLCBpdGVtLmlkZW50aWZpZXIpID09IFN0cmluZyh1dGkpKTsKKyAg
ICB9Cit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392990</attachid>
            <date>2020-03-08 15:04:01 -0700</date>
            <delta_ts>2020-03-08 15:13:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308150400.patch</filename>
            <type>text/plain</type>
            <size>28524</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTgxMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRh
ZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtVXNlLmg6CisKIDIwMjAtMDMtMDcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBwb3J0IGZvciBkaWN0YXRpb24gYWx0ZXJu
YXRpdmVzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyMCwzICszMjAsNyBA
QAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTYwMCkKICNkZWZpbmUgVVNFX0NURk9OVFRSQU5TRk9S
TUdMWVBIU1dJVEhMQU5HVUFHRSAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMAorI2RlZmluZSBV
U0VfVVRUWVBFX1NXSVpaTEVSIDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjU4
MTEyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMjAtMDMtMDggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIE1hcHBpbmcgdG8gVVRJIGZyb20gdGFnIGFuZCB0YWcgY2xhc3Mg
c2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtYXBwaW5nIHNob3VsZCBiZSBkb25l
IGluIHRoZSBVSSBwcm9jZXNzLCBzaW5jZSBpdCBpcyB1c2luZyBhIHN5c3RlbSBzZXJ2aWNlIHRo
YXQgd2lsbCBubyBsb25nZXIgYmUgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBXZWJDb250ZW50
IHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgdGhlIG1ldGhvZCArW1VUVHlwZVJlY29yZCB0eXBl
UmVjb3JkV2l0aFRhZ092ZXJyaWRlXSBpcyBzd2l6emxlZCBpbgorICAgICAgICB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzLCBhbmQgaXMgdXNpbmcgdGhlIGNhY2hlZCBtYXBwaW5nIHNlbnQgZnJvbSB0
aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0LlVUSUZyb21UYWcKKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlVUVHlwZUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpVVFR5
cGVJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3
aXp6bGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViVVRUeXBlUmVjb3JkIHNldElkZW50aWZp
ZXI6XSk6CisgICAgICAgIChXZWJDb3JlOjp2ZWN0b3JPZlVUVHlwZVJlY29yZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c2V0VmVjdG9y
T2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlVUSUZyb21UYWcpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMubW06CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVU
SUZyb21UYWcpOgorCiAyMDIwLTAzLTA4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlp
QHNvbnkuY29tPgogCiAgICAgICAgIGdlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogIm15IiB2YXJp
YWJsZSAkZmggbWFza3MgZWFybGllciBkZWNsYXJhdGlvbiBpbiBzYW1lIHNjb3BlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ4MzksNiArNDgzOSw4IEBACiAJCUUzQkJD
MjQ3MjM4MzU1MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCQkMyNDUyMzgzNTUxQTAwNkVDMzlGIC8qIENT
U1ZhbHVlS2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTNDOTlBMDkxREMzRDQxQzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5OUEwODFEQzNENDE3
MDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCAqLzsgfTsKIAkJRTNDOUFFQ0IyMTEzMTQ5OTAw
NDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzlBRUM5MjExMzE0NzQwMDQxOUI5MiAvKiBKU01pY3Jv
dGFza0NhbGxiYWNrLmggKi87IH07CisJCUUzQ0FBQTYxMjQxNTVGODcwMENFRDJFMiAvKiBVVFR5
cGVSZWNvcmRTd2l6emxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNDQUFBNUUyNDE1NUVGMjAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTND
QUFBNjIyNDE1NjEzMjAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDQUFBNjAyNDE1NUVGMzAw
Q0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tICovOyB9OwogCQlFM0U0RTJBODFFM0Ix
NzEwMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRTRFMkE2MUUzQjE2RkMw
MDIzQkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzRkEzODY0MUQ3MTgxMkQw
MEFBNTk1MCAvKiBQZW5kaW5nU2NyaXB0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZBMzg2MTFENzE2RTc2MDBBQTU5NTAgLyogUGVuZGlu
Z1NjcmlwdENsaWVudC5oICovOyB9OwogCQlFNDAxQzI3NTE3Q0U1M0VDMDBDNDFBMzUgLyogRWxl
bWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTUxNDksNiArMTUxNTEsNyBAQAogCQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIg
LyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBUaHJlYWRHbG9iYWxEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkIxODBEQjVCRTAw
MTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzMDM3RjQyMjQxNTdFOUIwMDMxQ0EwRiAvKiBDb3JlU2VydmljZXMuZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
d3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3JlU2VydmljZXMuZnJhbWV3b3JrOyBwYXRoID0g
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrOyBzb3VyY2VU
cmVlID0gU0RLUk9PVDsgfTsKIAkJRTMwNTkyNjExRTI3QTM4QzAwRDU3Qzk4IC8qIElubGluZUNs
YXNzaWNTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5s
aW5lQ2xhc3NpY1NjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDU5
MjYyMUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUNsYXNzaWNTY3JpcHQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTMwNTkyNjUxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlw
dEZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVk
U2NyaXB0RmV0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTIwMiw2
ICsxNTIwNSw4IEBACiAJCUUzQkYxOUU3MjJBRjMwOUYwMDlDOTkyNiAvKiBTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5OUEwODFE
QzNENDE3MDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NSklUQ2hlY2tET00uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNDOUFFQzkyMTEzMTQ3NDAwNDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNaWNyb3Rhc2tDYWxsYmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyogVVRU
eXBlUmVjb3JkU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRU
eXBlUmVjb3JkU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFB
NjAyNDE1NUVGMzAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVVRUeXBlUmVjb3JkU3dpenpsZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRDA0OTkzMURBREMwNDUwMDcxOEYzQyAvKiBO
b2RlQ29uc3RhbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVDb25z
dGFudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFNEUyQTUxRTNCMTZGQzAw
MjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRj
aGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFNEUyQTYxRTNCMTZGQzAw
MjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjU3NSw2ICsxNjU4MCw3IEBACiAJCQkJ
RkQyREJGMEYxMkIwNDhBMzAwRUQ5OEM2IC8qIEF1ZGlvVG9vbGJveC5mcmFtZXdvcmsgKi8sCiAJ
CQkJQTE3NjNGNDAxRTIwNTg2RTAwMUQ1OERFIC8qIENGTmV0d29yay5mcmFtZXdvcmsgKi8sCiAJ
CQkJQUE1RjNCOTAxNkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAq
LywKKwkJCQlFMzAzN0Y0MjI0MTU3RTlCMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29y
ayAqLywKIAkJCQlBMTVFNkJGMDFFMjEyQTZBMDA4MEFGMzQgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgKi8sCiAJCQkJMUFCMzNEQTQxMjU1MUUzMjAwMjQ0NTdBIC8qIElPS2l0LmZyYW1ld29yayAq
LywKIAkJCQlGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3
b3JrICovLApAQCAtMjMxMjIsNiArMjMxMjgsOCBAQAogCQkJCTMxMEQ3MTk0MUIzMzVDOUQwMDlD
N0I3MyAvKiBUaGVtZUNvY29hLmggKi8sCiAJCQkJMzEwRDcxOTMxQjMzNUM5RDAwOUM3QjczIC8q
IFRoZW1lQ29jb2EubW0gKi8sCiAJCQkJQTNBRjlEODEyMDMyNTJFRTAwNkNBRDA2IC8qIFVzZXJB
Z2VudENvY29hLm1tICovLAorCQkJCUUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVS
ZWNvcmRTd2l6emxlci5oICovLAorCQkJCUUzQ0FBQTYwMjQxNTVFRjMwMENFRDJFMiAvKiBVVFR5
cGVSZWNvcmRTd2l6emxlci5tbSAqLywKIAkJCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyog
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLywKIAkJCQk1MkQ1QTFBNDFDNTc0ODg5
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLywKIAkJCQk1MkQ1QTFBNTFDNTc0
ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLywKQEAg
LTMyOTM0LDYgKzMyOTQyLDcgQEAKIAkJCQk1NzJCNDAzNjIxNzZBOTIyMDAwQUQ0M0UgLyogVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFGMTRFNjFF
QUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGQUZC
RjE5MTVBNUZBNzQwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUzQ0FBQTYxMjQxNTVGODcwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODNDNDVCOEUxREMyQjY4QTAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJi
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxp
ZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxM0EzRUExNUZGNDg0MTAwMTUy
NkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0Mzc0
LDYgKzM0MzgzLDcgQEAKIAkJCQk3QzNCNzk3MTE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3Nh
Z2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDky
OCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzQ0FBQTYyMjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5
cGVSZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0QUYzMTg5ODgxNTYw
MDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCRTg4RTBERTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9U
cmFjay5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVVRUeXBlSXRlbSB7CisgICAgU3Ry
aW5nIHRhZzsKKyAgICBTdHJpbmcgdGFnQ2xhc3M7CisgICAgU3RyaW5nIGlkZW50aWZpZXI7Cisg
ICAgU3RyaW5nIHV0aTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0
aW9uYWw8VVRUeXBlSXRlbT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK1dFQkNPUkVfRVhQT1JU
IHZvaWQgc3dpenpsZVVUVHlwZVJlY29yZCgpOworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBWZWN0
b3I8VVRUeXBlSXRlbT4mIGNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpOworV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oVmVjdG9yPFVUVHlwZUl0ZW0+JiYpOworCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBVVFR5cGVJdGVtOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRhZzsKKyAgICBlbmNvZGVyIDw8IHRh
Z0NsYXNzOworICAgIGVuY29kZXIgPDwgaWRlbnRpZmllcjsKKyAgICBlbmNvZGVyIDw8IHV0aTsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFVUVHlwZUl0ZW0+IFVUVHlw
ZUl0ZW06OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFN0cmluZz4g
dGFnOworICAgIGRlY29kZXIgPj4gdGFnOworICAgIGlmICghdGFnKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiB0YWdDbGFzczsKKyAgICBkZWNv
ZGVyID4+IHRhZ0NsYXNzOworICAgIGlmICghdGFnQ2xhc3MpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IGlkZW50aWZpZXI7CisgICAgZGVjb2Rl
ciA+PiBpZGVudGlmaWVyOworICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdXRpOworICAgIGRlY29kZXIgPj4g
dXRpOworICAgIGlmICghdXRpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
cmV0dXJuIFVUVHlwZUl0ZW0geyAqdGFnLCAqdGFnQ2xhc3MsICppZGVudGlmaWVyLCAqdXRpIH07
Cit9Cit9OworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VU
VHlwZVJlY29yZFN3aXp6bGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTMwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisq
IGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVVRUeXBlUmVjb3Jk
U3dpenpsZXIuaCIKKworI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisKKyNpbXBvcnQgPE1vYmls
ZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KKworI2ltcG9ydCA8V2ViQ29yZS9V
VElVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8
d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNp
bXBvcnQgPHd0Zi9WZWN0b3IuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8Q29yZVNlcnZpY2VzL0xTUHJv
cGVydHlMaXN0UHJpdi5oPgorI2ltcG9ydCA8Q29yZVNlcnZpY2VzL1VUVHlwZVJlY29yZFByaXYu
aD4KKworI2Vsc2UKKworX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0Bp
bnRlcmZhY2UgTFNSZWNvcmQgOiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU0Rpc2NhcmRhYmxlQ29u
dGVudD4KK0BlbmQKKworX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0Bp
bnRlcmZhY2UgVVRUeXBlUmVjb3JkIDogTFNSZWNvcmQKKysgKG51bGxhYmxlIGluc3RhbmNldHlw
ZSl0eXBlUmVjb3JkV2l0aFRhZzooTlNTdHJpbmcgKil0YWcgb2ZDbGFzczooTlNTdHJpbmcgKil0
YWdDbGFzcyBjb25mb3JtaW5nVG9JZGVudGlmaWVyOihOU1N0cmluZyAqKWNvbmZvcm1zVG87CitA
cHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsKK0BlbmQKKworI2VuZGlm
CisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitAaW50ZXJmYWNlIFdl
YlVUVHlwZVJlY29yZCA6IFVUVHlwZVJlY29yZAorLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0
cmluZyAqKWk7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJVVFR5cGVSZWNvcmQgeworQHBh
Y2thZ2UKKyAgICBOU1N0cmluZyAqX2lkZW50aWZpZXI7Cit9CitAc3ludGhlc2l6ZSBpZGVudGlm
aWVyPV9pZGVudGlmaWVyOworLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWkKK3sK
KyAgICBfaWRlbnRpZmllciA9IGk7Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RhdGljIFZlY3RvcjxVVFR5cGVJdGVtPiYgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3I7CisgICAg
cmV0dXJuIHZlY3RvcjsKK30KKworc3RhdGljIElNUCB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFs
ID0gbmlsOworCitzdGF0aWMgVVRUeXBlUmVjb3JkICp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRl
KGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNTdHJpbmcgKnRhZywgTlNTdHJpbmcgKnRhZ0NsYXNz
LCBOU1N0cmluZyAqaWRlbnRpZmllcikKK3sKKyAgICBmb3IgKGF1dG8mIHIgOiB2ZWN0b3JPZlVU
VHlwZVJlY29yZHMoKSkgeworICAgICAgICBpZiAoci50YWcgPT0gU3RyaW5nKHRhZykgJiYgci50
YWdDbGFzcyA9PSBTdHJpbmcodGFnQ2xhc3MpICYmIHIuaWRlbnRpZmllciA9PSBTdHJpbmcoaWRl
bnRpZmllcikpIHsKKyAgICAgICAgICAgIFdlYlVUVHlwZVJlY29yZCAqcmVjb3JkID0gW1dlYlVU
VHlwZVJlY29yZCBhbGxvY107CisgICAgICAgICAgICBbcmVjb3JkIHNldElkZW50aWZpZXI6ci51
dGldOworICAgICAgICAgICAgcmV0dXJuIHJlY29yZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBX
VEZMb2dBbHdheXMoIlVUSSBub3QgZm91bmQgZm9yIHRhZzogJXMgJXMgJXNcbiIsIFN0cmluZyh0
YWcpLnV0ZjgoKS5kYXRhKCksIFN0cmluZyh0YWdDbGFzcykudXRmOCgpLmRhdGEoKSwgU3RyaW5n
KGlkZW50aWZpZXIpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiB3dGZDYWxsSU1QPFVUVHlw
ZVJlY29yZCAqPih0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsLCBzZWxmLCBzZWxlY3RvciwgdGFn
LCB0YWdDbGFzcywgaWRlbnRpZmllcik7Cit9CisKK2NvbnN0IFZlY3RvcjxVVFR5cGVJdGVtPiYg
Y3JlYXRlVmVjdG9yT2ZVVFR5cGVJdGVtKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3IgPSBbXSB7CisgICAgICAgIFZlY3RvcjxVVFR5cGVJ
dGVtPiB2ID0gc3RkOjppbml0aWFsaXplcl9saXN0PFVUVHlwZUl0ZW0+IHsKKyAgICAgICAgICAg
IHsgImRhdCJfcywgInB1YmxpYy5maWxlbmFtZS1leHRlbnNpb24iX3MsIHN0YXRpY19jYXN0PGNo
YXIqPihudWxscHRyKSwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpIH0sCisgICAgICAgICAg
ICB7ICJtcDQiX3MsICJwdWJsaWMuZmlsZW5hbWUtZXh0ZW5zaW9uIl9zLCBzdGF0aWNfY2FzdDxj
aGFyKj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9LAorICAgICAgICB9
OworICAgICAgICBmb3IgKGF1dG8mIHIgOiB2KQorICAgICAgICAgICAgci51dGkgPSBVVFR5cGVD
cmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKHIudGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSwgci50YWcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgci5pZGVudGlmaWVyLmlzTnVs
bCgpID8gbnVsbHB0ciA6IHIuaWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAg
ICAgICAgZm9yIChhdXRvJiBpdCA6IGNyZWF0ZVVUSUZyb21NSU1FVHlwZU1hcCgpKSB7CisgICAg
ICAgICAgICBVVFR5cGVJdGVtIGkgPSB7IGl0LmtleSwgInB1YmxpYy5taW1lLXR5cGUiX3MsIHN0
YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpIH07
CisgICAgICAgICAgICBpLnV0aSA9IFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJGb3JU
YWcoaS50YWdDbGFzcy5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBpLnRhZy5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpLCBpLmlkZW50aWZpZXIuaXNOdWxsKCkgPyBudWxscHRyIDogaS5pZGVudGlmaWVy
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICAgICAgdi5hcHBlbmQoV1RGTW92ZShp
KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHY7CisgICAgfSgpOworICAgIHJldHVybiB2
ZWN0b3I7Cit9CisKK3ZvaWQgc2V0VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVt
PiYmIHZlY3RvcikKK3sKKyAgICB2ZWN0b3JPZlVUVHlwZVJlY29yZHMoKSA9IFdURk1vdmUodmVj
dG9yKTsKK30KKwordm9pZCBzd2l6emxlVVRUeXBlUmVjb3JkKCkKK3sKKyAgICBNZXRob2QgdHlw
ZVJlY29yZFdpdGhUYWdNZXRob2QgPSBjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldENsYXNz
KCJVVFR5cGVSZWNvcmQiKSwgQHNlbGVjdG9yKHR5cGVSZWNvcmRXaXRoVGFnOiBvZkNsYXNzOiBj
b25mb3JtaW5nVG9JZGVudGlmaWVyOikpOworICAgIHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwg
PSBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24odHlwZVJlY29yZFdpdGhUYWdNZXRob2QsIChJTVAp
dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk7Cit9CisKK307CisKKyNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgJ
KHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1VUSVV0aWxpdGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIFdFQkNPUkVf
RVhQT1JUIFN0cmluZyBNSU1FVHlwZUZyb21VVEkoY28KIFN0cmluZyBNSU1FVHlwZUZyb21VVElU
cmVlKGNvbnN0IFN0cmluZyYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIFVUSUZyb21NSU1FVHlw
ZShjb25zdCBTdHJpbmcmKTsKIGJvb2wgaXNEZWNsYXJlZFVUSShjb25zdCBTdHJpbmcmKTsKK1dF
QkNPUkVfRVhQT1JUIFN0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNv
bnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0VVRJRnJvbU1JTUVUeXBlTWFwKEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+JiYpOwogV0VCQ09SRV9FWFBPUlQgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGNy
ZWF0ZVVUSUZyb21NSU1FVHlwZU1hcCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQkocmV2aXNpb24gMjU4MTA3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjEsNiArMTYxLDEyIEBAIGJvb2wgaXNEZWNsYXJlZFVUSShjb25z
dCBTdHJpbmcmIFVUSSkKICAgICByZXR1cm4gVVRUeXBlSXNEZWNsYXJlZChVVEkuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFn
Q2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkK
K3sKKyAgICBhdXRvIHUgPSBhZG9wdENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElkZW50aWZpZXJG
b3JUYWcodGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgdGFnLmNyZWF0ZUNGU3RyaW5n
KCkuZ2V0KCksIGNvbmZvcm1pbmdUb1VUSS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAg
cmV0dXJuIFN0cmluZyh1LmdldCgpKTsKK30KKwogc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBhZGRpdGlvbmFsTUlNRVR5cGVzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVj
dG9yPFN0cmluZz4+IG1pbWVUeXBlcyA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1ODEwNykK
KysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTUwMSw2ICs1NTAxLDExIEBAIFN0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21NSU1FVHlw
ZShjb24KIHsKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KKworU3RyaW5nIEludGVybmFs
czo6Z2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRh
ZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpCit7CisgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Cit9CiAjZW5kaWYKIAogU3RyaW5nIEludGVybmFsczo6bWVkaWFNSU1FVHlwZUZvckV4
dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtOTQzLDYgKzk0Myw3IEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lv
bik7CiAKICAgICBTdHJpbmcgZ2V0VVRJRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOworICAgIFN0cmluZyBnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNv
bnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSk7CiAKICAgICBi
b29sIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTg1Myw2ICs4NTMsNyBAQCBlbnVt
IENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBET01TdHJpbmcgbWVkaWFNSU1FVHlwZUZvckV4dGVu
c2lvbihET01TdHJpbmcgZXh0ZW5zaW9uKTsKIAogICAgIERPTVN0cmluZyBnZXRVVElGcm9tTUlN
RVR5cGUoRE9NU3RyaW5nIG1pbWVUeXBlKTsKKyAgICBET01TdHJpbmcgZ2V0VVRJRnJvbVRhZyhE
T01TdHJpbmcgdGFnQ2xhc3MsIERPTVN0cmluZyB0YWcsIERPTVN0cmluZyBjb25mb3JtaW5nVG9V
VEkpOwogCiAgICAgYm9vbGVhbiBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIH07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5tbQkocmV2aXNpb24gMjU4MTA3KQorKysgU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNiw0
ICsxMDYsOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5cGUoY29uCiAgICAg
cmV0dXJuIFVUSUZyb21NSU1FVHlwZShtaW1lVHlwZSk7CiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6
OmdldFVUSUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcs
IGNvbnN0IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKQoreworICAgIHJldHVybiBVVElGcm9tVGFn
KHRhZ0NsYXNzLCB0YWcsIGNvbmZvcm1pbmdUb1VUSSk7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNTgxMTEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI0IEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRhZyBhbmQg
dGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgbWFwcGluZyBmcm9t
IHRhZy90YWcgY2xhc3MgdG8gVVRJIGZyb20gdGhlIFVJIHByb2Nlc3MgdG8gdGhlIFdlYkNvbnRl
bnQgcHJvY2VzcyBhcyBwYXJ0IG9mIHRoZSBXZWJQcm9jZXNzCisgICAgICAgIGNyZWF0aW9uIHBh
cmFtZXRlcnMuIEFsc28sIGlzc3VlIHNvbWUgbWFjaC1sb29rdXAgZXh0ZW5zaW9ucyB0byB0aGUg
V2ViQ29udGVudCBwcm9jZXNzIGlmIEFjY2Vzc2liaWxpdHkgaXMKKyAgICAgICAgZW5hYmxlZC4K
KworICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudC5zYjoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKwogMjAyMC0wMy0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggdGhlIHdhdGNoT1MgYnVpbGQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50LnNiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9m
aWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCShyZXZpc2lvbiAyNTgxMDcp
CisrKyBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuV2ViQ29udGVudC5zYgkod29ya2luZyBjb3B5KQpAQCAtODQ4LDcgKzg0OCw3IEBA
CiAoYWxsb3cgbWFjaC1sb29rdXAKICAgICAocmVxdWlyZS1hbGwKICAgICAgICAgKGV4dGVuc2lv
biAiY29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFjaCIpCi0gICAgICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2Qi
ICJjb20uYXBwbGUubmVoZWxwZXIiICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50
LWZpbHRlciIgImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVu
dEZpbHRlci5yZW1vdGVVSSIgImNvbS5hcHBsZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qu
b3BlbiIgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYy
IiAiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNv
bnNlcnZpY2VzIiAiY29tLmFwcGxlLndlYmluc3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFn
ZW1lbnQuY29udHJvbCIgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iCisgICAgICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiAiY29tLmFwcGxl
LnRjY2QiICJjb20uYXBwbGUubmVoZWxwZXIiICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5j
b250ZW50LWZpbHRlciIgImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2Vi
Q29udGVudEZpbHRlci5yZW1vdGVVSSIgImNvbS5hcHBsZS5kaWFnbm9zdGljZCIgImNvbS5hcHBs
ZS5sc2Qub3BlbiIgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQiICJjb20uYXBwbGUubW9iaWxlYXNz
ZXRkLnYyIiAiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiICJjb20uYXBw
bGUuaWNvbnNlcnZpY2VzIiAiY29tLmFwcGxlLndlYmluc3BlY3RvciIgImNvbS5hcHBsZS5Qb3dl
ck1hbmFnZW1lbnQuY29udHJvbCIgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iICJjb20uYXBw
bGUubHNkLm1hcGRiIgogCiAgICAgICAgICAgICA7OzsgRklYTUUoMjA3NzE2KTogVGhlIGZvbGxv
d2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZQog
ICAgICAgICAgICAgImNvbS5hcHBsZS5haXJwbGF5LmFwc3luY2NvbnRyb2xsZXIueHBjIiAiY29t
LmFwcGxlLmF1ZGlvLkFVUmVtb3RlSU9TZXJ2ZXIiICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21w
b25lbnRSZWdpc3RyYXIiCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjU4MTA3KQorKysgU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE4MCw2ICsxODAsOSBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kCiAgICAgZW5jb2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAg
ICAgZW5jb2RlciA8PCBmb2N1c1JpbmdDb2xvcjsKICAgICBlbmNvZGVyIDw8IGxvY2FsaXplZERl
dmljZU1vZGVsOworI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisgICAgZW5jb2RlciA8PCB2ZWN0
b3JPZlVUVHlwZUl0ZW07CisjZW5kaWYKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBA
IC00OTMsNiArNDk2LDE0IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2QKICAgICAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubG9jYWxpemVkRGV2
aWNlTW9kZWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisjaWYgVVNFKFVUVFlQRV9T
V0laWkxFUikKKyAgICBPcHRpb25hbDxWZWN0b3I8VVRUeXBlSXRlbT4+IHZlY3Rvck9mVVRUeXBl
SXRlbTsKKyAgICBkZWNvZGVyID4+IHZlY3Rvck9mVVRUeXBlSXRlbTsKKyAgICBpZiAoIXZlY3Rv
ck9mVVRUeXBlSXRlbSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMudmVj
dG9yT2ZVVFR5cGVJdGVtID0gV1RGTW92ZSgqdmVjdG9yT2ZVVFR5cGVJdGVtKTsKKyNlbmRpZgog
I2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1ODEw
NykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lSU9TLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9VVFR5cGVSZWNvcmRTd2l6emxlci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBBUEkgewpA
QCAtMjIzLDYgKzIyNCw5IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwIGNz
c1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICAgICBXZWJDb3JlOjpDb2xvciBmb2N1c1JpbmdDb2xv
cjsKICAgICBTdHJpbmcgbG9jYWxpemVkRGV2aWNlTW9kZWw7CisjaWYgVVNFKFVUVFlQRV9TV0la
WkxFUikKKyAgICBWZWN0b3I8V2ViQ29yZTo6VVRUeXBlSXRlbT4gdmVjdG9yT2ZVVFR5cGVJdGVt
OworI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShy
ZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNzYsOSArMzc2LDEwIEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoIVdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc01vYmls
ZVNhZmFyaSgpKSB7CisgICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVT
YWZhcmkoKSB8fCBfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlc1tdID0gewogICAgICAgICAgICAgImNvbS5h
cHBsZS5sc2Qub3BlbiIsCisgICAgICAgICAgICAiY29tLmFwcGxlLmxzZC5tYXBkYiIsCiAgICAg
ICAgICAgICAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZCIsCiAgICAgICAgICAgICAiY29tLmFwcGxl
Lmljb25zZXJ2aWNlcyIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5j
b250cm9sIiwKQEAgLTQyOSw4ICs0MzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplVwogICAgIHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0g
UmVuZGVyVGhlbWVJT1M6OmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOwogICAgIHBhcmFtZXRl
cnMuZm9jdXNSaW5nQ29sb3IgPSBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuZm9jdXNSaW5nQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KCkpOwogICAgIHBhcmFtZXRlcnMubG9j
YWxpemVkRGV2aWNlTW9kZWwgPSBsb2NhbGl6ZWREZXZpY2VNb2RlbCgpOworI2lmIFVTRShVVFRZ
UEVfU1dJWlpMRVIpCisgICAgcGFyYW1ldGVycy52ZWN0b3JPZlVUVHlwZUl0ZW0gPSBjcmVhdGVW
ZWN0b3JPZlVUVHlwZUl0ZW0oKTsKKyNlbmRpZgogI2VuZGlmCi0KICAgICAKICAgICAvLyBBbGxv
dyBtaWNyb3Bob25lIGFjY2VzcyBpZiBlaXRoZXIgcHJlZmVyZW5jZSBpcyBzZXQgYmVjYXVzZSBX
ZWJSVEMgcmVxdWlyZXMgbWljcm9waG9uZSBhY2Nlc3MuCiAgICAgYm9vbCBuZWVkV2ViUHJvY2Vz
c0V4dGVuc2lvbnMgPSAhbV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnVzZUdQVVBy
b2Nlc3NGb3JNZWRpYSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEwMyw2ICsxMDMsNyBAQAogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0
ICJXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0SU9TLmgiCiAjaW1wb3J0IDxVSUtpdC9VSUFj
Y2Vzc2liaWxpdHkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNlbmRpZgogCkBA
IC0yOTYsNiArMjk3LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHIKICAgICAgICAgX0NGUHJlZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7CiAgICAgfQog
I2VuZGlmCisgICAgICAgIAorI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisgICAgc3dpenpsZVVU
VHlwZVJlY29yZCgpOworICAgIHNldFZlY3Rvck9mVVRUeXBlSXRlbShXVEZNb3ZlKHBhcmFtZXRl
cnMudmVjdG9yT2ZVVFR5cGVJdGVtKSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQ
YXJhbWV0ZXJzJiYgcGFyYW1ldGVycykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392992</attachid>
            <date>2020-03-08 15:13:06 -0700</date>
            <delta_ts>2020-03-08 15:54:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308151305.patch</filename>
            <type>text/plain</type>
            <size>35487</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTgxMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRh
ZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtVXNlLmg6CisKIDIwMjAtMDMtMDcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBwb3J0IGZvciBkaWN0YXRpb24gYWx0ZXJu
YXRpdmVzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyMCwzICszMjAsNyBA
QAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTYwMCkKICNkZWZpbmUgVVNFX0NURk9OVFRSQU5TRk9S
TUdMWVBIU1dJVEhMQU5HVUFHRSAxCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMAorI2RlZmluZSBV
U0VfVVRUWVBFX1NXSVpaTEVSIDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjU4
MTEyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMjAtMDMtMDggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIE1hcHBpbmcgdG8gVVRJIGZyb20gdGFnIGFuZCB0YWcgY2xhc3Mg
c2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NzgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtYXBwaW5nIHNob3VsZCBiZSBkb25l
IGluIHRoZSBVSSBwcm9jZXNzLCBzaW5jZSBpdCBpcyB1c2luZyBhIHN5c3RlbSBzZXJ2aWNlIHRo
YXQgd2lsbCBubyBsb25nZXIgYmUgYXZhaWxhYmxlCisgICAgICAgIGluIHRoZSBXZWJDb250ZW50
IHByb2Nlc3MuIFRvIGFjaGlldmUgdGhpcywgdGhlIG1ldGhvZCArW1VUVHlwZVJlY29yZCB0eXBl
UmVjb3JkV2l0aFRhZ092ZXJyaWRlXSBpcyBzd2l6emxlZCBpbgorICAgICAgICB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzLCBhbmQgaXMgdXNpbmcgdGhlIGNhY2hlZCBtYXBwaW5nIHNlbnQgZnJvbSB0
aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0LlVUSUZyb21UYWcKKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlVUVHlwZUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpVVFR5
cGVJdGVtOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3
aXp6bGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViVVRUeXBlUmVjb3JkIHNldElkZW50aWZp
ZXI6XSk6CisgICAgICAgIChXZWJDb3JlOjp2ZWN0b3JPZlVUVHlwZVJlY29yZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6dHlwZVJlY29yZFdpdGhUYWdPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6c2V0VmVjdG9y
T2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OnN3aXp6bGVVVFR5cGVSZWNvcmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlVUSUZyb21UYWcpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6Z2V0VVRJRnJvbVRhZyk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMubW06CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVU
SUZyb21UYWcpOgorCiAyMDIwLTAzLTA4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlp
QHNvbnkuY29tPgogCiAgICAgICAgIGdlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogIm15IiB2YXJp
YWJsZSAkZmggbWFza3MgZWFybGllciBkZWNsYXJhdGlvbiBpbiBzYW1lIHNjb3BlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ4MzksNiArNDgzOSw4IEBACiAJCUUzQkJD
MjQ3MjM4MzU1MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCQkMyNDUyMzgzNTUxQTAwNkVDMzlGIC8qIENT
U1ZhbHVlS2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTNDOTlBMDkxREMzRDQxQzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5OUEwODFEQzNENDE3
MDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCAqLzsgfTsKIAkJRTNDOUFFQ0IyMTEzMTQ5OTAw
NDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzlBRUM5MjExMzE0NzQwMDQxOUI5MiAvKiBKU01pY3Jv
dGFza0NhbGxiYWNrLmggKi87IH07CisJCUUzQ0FBQTYxMjQxNTVGODcwMENFRDJFMiAvKiBVVFR5
cGVSZWNvcmRTd2l6emxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNDQUFBNUUyNDE1NUVGMjAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTND
QUFBNjIyNDE1NjEzMjAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDQUFBNjAyNDE1NUVGMzAw
Q0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tICovOyB9OwogCQlFM0U0RTJBODFFM0Ix
NzEwMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRTRFMkE2MUUzQjE2RkMw
MDIzQkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzRkEzODY0MUQ3MTgxMkQw
MEFBNTk1MCAvKiBQZW5kaW5nU2NyaXB0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZBMzg2MTFENzE2RTc2MDBBQTU5NTAgLyogUGVuZGlu
Z1NjcmlwdENsaWVudC5oICovOyB9OwogCQlFNDAxQzI3NTE3Q0U1M0VDMDBDNDFBMzUgLyogRWxl
bWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTUxNDksNiArMTUxNTEsNyBAQAogCQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIg
LyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBUaHJlYWRHbG9iYWxEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkIxODBEQjVCRTAw
MTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzMDM3RjQyMjQxNTdFOUIwMDMxQ0EwRiAvKiBDb3JlU2VydmljZXMuZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
d3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3JlU2VydmljZXMuZnJhbWV3b3JrOyBwYXRoID0g
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrOyBzb3VyY2VU
cmVlID0gU0RLUk9PVDsgfTsKIAkJRTMwNTkyNjExRTI3QTM4QzAwRDU3Qzk4IC8qIElubGluZUNs
YXNzaWNTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5s
aW5lQ2xhc3NpY1NjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDU5
MjYyMUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUNsYXNzaWNTY3JpcHQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTMwNTkyNjUxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlw
dEZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVk
U2NyaXB0RmV0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTIwMiw2
ICsxNTIwNSw4IEBACiAJCUUzQkYxOUU3MjJBRjMwOUYwMDlDOTkyNiAvKiBTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5OUEwODFE
QzNENDE3MDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NSklUQ2hlY2tET00uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNDOUFFQzkyMTEzMTQ3NDAwNDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNaWNyb3Rhc2tDYWxsYmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyogVVRU
eXBlUmVjb3JkU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRU
eXBlUmVjb3JkU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNDQUFB
NjAyNDE1NUVGMzAwQ0VEMkUyIC8qIFVUVHlwZVJlY29yZFN3aXp6bGVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVVRUeXBlUmVjb3JkU3dpenpsZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRDA0OTkzMURBREMwNDUwMDcxOEYzQyAvKiBO
b2RlQ29uc3RhbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVDb25z
dGFudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFNEUyQTUxRTNCMTZGQzAw
MjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRj
aGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFNEUyQTYxRTNCMTZGQzAw
MjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjU3NSw2ICsxNjU4MCw3IEBACiAJCQkJ
RkQyREJGMEYxMkIwNDhBMzAwRUQ5OEM2IC8qIEF1ZGlvVG9vbGJveC5mcmFtZXdvcmsgKi8sCiAJ
CQkJQTE3NjNGNDAxRTIwNTg2RTAwMUQ1OERFIC8qIENGTmV0d29yay5mcmFtZXdvcmsgKi8sCiAJ
CQkJQUE1RjNCOTAxNkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAq
LywKKwkJCQlFMzAzN0Y0MjI0MTU3RTlCMDAzMUNBMEYgLyogQ29yZVNlcnZpY2VzLmZyYW1ld29y
ayAqLywKIAkJCQlBMTVFNkJGMDFFMjEyQTZBMDA4MEFGMzQgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgKi8sCiAJCQkJMUFCMzNEQTQxMjU1MUUzMjAwMjQ0NTdBIC8qIElPS2l0LmZyYW1ld29yayAq
LywKIAkJCQlGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3
b3JrICovLApAQCAtMjMxMjIsNiArMjMxMjgsOCBAQAogCQkJCTMxMEQ3MTk0MUIzMzVDOUQwMDlD
N0I3MyAvKiBUaGVtZUNvY29hLmggKi8sCiAJCQkJMzEwRDcxOTMxQjMzNUM5RDAwOUM3QjczIC8q
IFRoZW1lQ29jb2EubW0gKi8sCiAJCQkJQTNBRjlEODEyMDMyNTJFRTAwNkNBRDA2IC8qIFVzZXJB
Z2VudENvY29hLm1tICovLAorCQkJCUUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVS
ZWNvcmRTd2l6emxlci5oICovLAorCQkJCUUzQ0FBQTYwMjQxNTVFRjMwMENFRDJFMiAvKiBVVFR5
cGVSZWNvcmRTd2l6emxlci5tbSAqLywKIAkJCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyog
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLywKIAkJCQk1MkQ1QTFBNDFDNTc0ODg5
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLywKIAkJCQk1MkQ1QTFBNTFDNTc0
ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLywKQEAg
LTMyOTM0LDYgKzMyOTQyLDcgQEAKIAkJCQk1NzJCNDAzNjIxNzZBOTIyMDAwQUQ0M0UgLyogVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFGMTRFNjFF
QUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGQUZC
RjE5MTVBNUZBNzQwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUzQ0FBQTYxMjQxNTVGODcwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODNDNDVCOEUxREMyQjY4QTAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJi
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxp
ZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxM0EzRUExNUZGNDg0MTAwMTUy
NkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0Mzc0
LDYgKzM0MzgzLDcgQEAKIAkJCQk3QzNCNzk3MTE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3Nh
Z2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDky
OCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzQ0FBQTYyMjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5
cGVSZWNvcmRTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0QUYzMTg5ODgxNTYw
MDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCRTg4RTBERTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9U
cmFjay5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVVRUeXBlSXRlbSB7CisgICAgU3Ry
aW5nIHRhZzsKKyAgICBTdHJpbmcgdGFnQ2xhc3M7CisgICAgU3RyaW5nIGlkZW50aWZpZXI7Cisg
ICAgU3RyaW5nIHV0aTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0
aW9uYWw8VVRUeXBlSXRlbT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK1dFQkNPUkVfRVhQT1JU
IHZvaWQgc3dpenpsZVVUVHlwZVJlY29yZCgpOworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBWZWN0
b3I8VVRUeXBlSXRlbT4mIGNyZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpOworV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oVmVjdG9yPFVUVHlwZUl0ZW0+JiYpOworCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBVVFR5cGVJdGVtOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRhZzsKKyAgICBlbmNvZGVyIDw8IHRh
Z0NsYXNzOworICAgIGVuY29kZXIgPDwgaWRlbnRpZmllcjsKKyAgICBlbmNvZGVyIDw8IHV0aTsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFVUVHlwZUl0ZW0+IFVUVHlw
ZUl0ZW06OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFN0cmluZz4g
dGFnOworICAgIGRlY29kZXIgPj4gdGFnOworICAgIGlmICghdGFnKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiB0YWdDbGFzczsKKyAgICBkZWNv
ZGVyID4+IHRhZ0NsYXNzOworICAgIGlmICghdGFnQ2xhc3MpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IGlkZW50aWZpZXI7CisgICAgZGVjb2Rl
ciA+PiBpZGVudGlmaWVyOworICAgIGlmICghaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdXRpOworICAgIGRlY29kZXIgPj4g
dXRpOworICAgIGlmICghdXRpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
cmV0dXJuIFVUVHlwZUl0ZW0geyAqdGFnLCAqdGFnQ2xhc3MsICppZGVudGlmaWVyLCAqdXRpIH07
Cit9Cit9OworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VU
VHlwZVJlY29yZFN3aXp6bGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTMxIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisq
IGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVVRUeXBlUmVjb3Jk
U3dpenpsZXIuaCIKKworI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisKKyNpbXBvcnQgPE1vYmls
ZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KKworI2ltcG9ydCA8V2ViQ29yZS9V
VElVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8
d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNp
bXBvcnQgPHd0Zi9WZWN0b3IuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8Q29yZVNlcnZpY2VzL0xTUHJv
cGVydHlMaXN0UHJpdi5oPgorI2ltcG9ydCA8Q29yZVNlcnZpY2VzL1VUVHlwZVJlY29yZFByaXYu
aD4KKworI2Vsc2UKKworX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0Bp
bnRlcmZhY2UgTFNSZWNvcmQgOiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU0Rpc2NhcmRhYmxlQ29u
dGVudD4KK0BlbmQKKworX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK0Bp
bnRlcmZhY2UgVVRUeXBlUmVjb3JkIDogTFNSZWNvcmQKKysgKG51bGxhYmxlIGluc3RhbmNldHlw
ZSl0eXBlUmVjb3JkV2l0aFRhZzooTlNTdHJpbmcgKil0YWcgb2ZDbGFzczooTlNTdHJpbmcgKil0
YWdDbGFzcyBjb25mb3JtaW5nVG9JZGVudGlmaWVyOihOU1N0cmluZyAqKWNvbmZvcm1zVG87CitA
cHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsKK0BlbmQKKworI2VuZGlm
CisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitAaW50ZXJmYWNlIFdl
YlVUVHlwZVJlY29yZCA6IFVUVHlwZVJlY29yZAorLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0
cmluZyAqKWk7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJVVFR5cGVSZWNvcmQgeworQHBh
Y2thZ2UKKyAgICBOU1N0cmluZyAqX2lkZW50aWZpZXI7Cit9CitAc3ludGhlc2l6ZSBpZGVudGlm
aWVyPV9pZGVudGlmaWVyOworLSAodm9pZClzZXRJZGVudGlmaWVyOihOU1N0cmluZyAqKWkKK3sK
KyAgICBfaWRlbnRpZmllciA9IGk7Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RhdGljIFZlY3RvcjxVVFR5cGVJdGVtPiYgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3I7CisgICAg
cmV0dXJuIHZlY3RvcjsKK30KKworc3RhdGljIElNUCB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFs
ID0gbmlsOworCitzdGF0aWMgVVRUeXBlUmVjb3JkICp0eXBlUmVjb3JkV2l0aFRhZ092ZXJyaWRl
KGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNTdHJpbmcgKnRhZywgTlNTdHJpbmcgKnRhZ0NsYXNz
LCBOU1N0cmluZyAqaWRlbnRpZmllcikKK3sKKyAgICBmb3IgKGF1dG8mIHIgOiB2ZWN0b3JPZlVU
VHlwZVJlY29yZHMoKSkgeworICAgICAgICBpZiAoci50YWcgPT0gU3RyaW5nKHRhZykgJiYgci50
YWdDbGFzcyA9PSBTdHJpbmcodGFnQ2xhc3MpICYmIHIuaWRlbnRpZmllciA9PSBTdHJpbmcoaWRl
bnRpZmllcikpIHsKKyAgICAgICAgICAgIFdlYlVUVHlwZVJlY29yZCAqcmVjb3JkID0gW1dlYlVU
VHlwZVJlY29yZCBhbGxvY107CisgICAgICAgICAgICBbcmVjb3JkIHNldElkZW50aWZpZXI6ci51
dGldOworICAgICAgICAgICAgcmV0dXJuIHJlY29yZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBX
VEZMb2dBbHdheXMoIlVUSSBub3QgZm91bmQgZm9yIHRhZzogJXMgJXMgJXNcbiIsIFN0cmluZyh0
YWcpLnV0ZjgoKS5kYXRhKCksIFN0cmluZyh0YWdDbGFzcykudXRmOCgpLmRhdGEoKSwgU3RyaW5n
KGlkZW50aWZpZXIpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiB3dGZDYWxsSU1QPFVUVHlw
ZVJlY29yZCAqPih0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsLCBzZWxmLCBzZWxlY3RvciwgdGFn
LCB0YWdDbGFzcywgaWRlbnRpZmllcik7Cit9CisKK2NvbnN0IFZlY3RvcjxVVFR5cGVJdGVtPiYg
Y3JlYXRlVmVjdG9yT2ZVVFR5cGVJdGVtKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3IgPSBbXSB7CisgICAgICAgIFZlY3RvcjxVVFR5cGVJ
dGVtPiB2ID0gc3RkOjppbml0aWFsaXplcl9saXN0PFVUVHlwZUl0ZW0+IHsKKyAgICAgICAgICAg
IHsgImRhdCJfcywgInB1YmxpYy5maWxlbmFtZS1leHRlbnNpb24iX3MsIHN0YXRpY19jYXN0PGNo
YXIqPihudWxscHRyKSwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpIH0sCisgICAgICAgICAg
ICB7ICJtcDQiX3MsICJwdWJsaWMuZmlsZW5hbWUtZXh0ZW5zaW9uIl9zLCBzdGF0aWNfY2FzdDxj
aGFyKj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9LAorICAgICAgICAg
ICAgeyAib3RmIl9zLCAicHVibGljLmZpbGVuYW1lLWV4dGVuc2lvbiJfcywgc3RhdGljX2Nhc3Q8
Y2hhcio+KG51bGxwdHIpLCBzdGF0aWNfY2FzdDxjaGFyKj4obnVsbHB0cikgfSwKKyAgICAgICAg
fTsKKyAgICAgICAgZm9yIChhdXRvJiByIDogdikKKyAgICAgICAgICAgIHIudXRpID0gVVRUeXBl
Q3JlYXRlUHJlZmVycmVkSWRlbnRpZmllckZvclRhZyhyLnRhZ0NsYXNzLmNyZWF0ZUNGU3RyaW5n
KCkuZ2V0KCksIHIudGFnLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIHIuaWRlbnRpZmllci5pc051
bGwoKSA/IG51bGxwdHIgOiByLmlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Cisg
ICAgICAgIGZvciAoYXV0byYgaXQgOiBjcmVhdGVVVElGcm9tTUlNRVR5cGVNYXAoKSkgeworICAg
ICAgICAgICAgVVRUeXBlSXRlbSBpID0geyBpdC5rZXksICJwdWJsaWMubWltZS10eXBlIl9zLCBz
dGF0aWNfY2FzdDxjaGFyKj4obnVsbHB0ciksIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9
OworICAgICAgICAgICAgaS51dGkgPSBVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9y
VGFnKGkudGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgaS50YWcuY3JlYXRlQ0ZTdHJp
bmcoKS5nZXQoKSwgaS5pZGVudGlmaWVyLmlzTnVsbCgpID8gbnVsbHB0ciA6IGkuaWRlbnRpZmll
ci5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICAgICAgICAgIHYuYXBwZW5kKFdURk1vdmUo
aSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2OworICAgIH0oKTsKKyAgICByZXR1cm4g
dmVjdG9yOworfQorCit2b2lkIHNldFZlY3Rvck9mVVRUeXBlSXRlbShWZWN0b3I8VVRUeXBlSXRl
bT4mJiB2ZWN0b3IpCit7CisgICAgdmVjdG9yT2ZVVFR5cGVSZWNvcmRzKCkgPSBXVEZNb3ZlKHZl
Y3Rvcik7Cit9CisKK3ZvaWQgc3dpenpsZVVUVHlwZVJlY29yZCgpCit7CisgICAgTWV0aG9kIHR5
cGVSZWNvcmRXaXRoVGFnTWV0aG9kID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2Qob2JqY19nZXRDbGFz
cygiVVRUeXBlUmVjb3JkIiksIEBzZWxlY3Rvcih0eXBlUmVjb3JkV2l0aFRhZzogb2ZDbGFzczog
Y29uZm9ybWluZ1RvSWRlbnRpZmllcjopKTsKKyAgICB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFs
ID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHR5cGVSZWNvcmRXaXRoVGFnTWV0aG9kLCAoSU1Q
KXR5cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUpOworfQorCit9OworCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5o
CShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9VVElVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQCBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgTUlNRVR5cGVGcm9tVVRJKGNvCiBTdHJpbmcgTUlNRVR5cGVGcm9tVVRJ
VHJlZShjb25zdCBTdHJpbmcmKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBVVElGcm9tTUlNRVR5
cGUoY29uc3QgU3RyaW5nJik7CiBib29sIGlzRGVjbGFyZWRVVEkoY29uc3QgU3RyaW5nJik7CitX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgVVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBj
b25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpOwogCiBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFVUSUZyb21NSU1FVHlwZU1hcChIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiYmKTsKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBj
cmVhdGVVVElGcm9tTUlNRVR5cGVNYXAoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0JKHJldmlzaW9uIDI1ODEwNykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSwxMiBAQCBib29sIGlzRGVjbGFyZWRVVEkoY29u
c3QgU3RyaW5nJiBVVEkpCiAgICAgcmV0dXJuIFVUVHlwZUlzRGVjbGFyZWQoVVRJLmNyZWF0ZUNG
U3RyaW5nKCkuZ2V0KCkpOwogfQogCitTdHJpbmcgVVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRh
Z0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkp
Cit7CisgICAgYXV0byB1ID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVy
Rm9yVGFnKHRhZ0NsYXNzLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIHRhZy5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpLCBjb25mb3JtaW5nVG9VVEkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAg
IHJldHVybiBTdHJpbmcodS5nZXQoKSk7Cit9CisKIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYWRkaXRpb25hbE1JTUVUeXBlcygpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZl
Y3RvcjxTdHJpbmc+PiBtaW1lVHlwZXMgPSBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8U3RyaW5nPiB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyNTgxMDcp
CisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU1MDEsNiArNTUwMSwxMSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5
cGUoY29uCiB7CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CisKK1N0cmluZyBJbnRlcm5h
bHM6OmdldFVUSUZyb21UYWcoY29uc3QgU3RyaW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0
YWcsIGNvbnN0IFN0cmluZyYgY29uZm9ybWluZ1RvVVRJKQoreworICAgIHJldHVybiBlbXB0eVN0
cmluZygpOworfQogI2VuZGlmCiAKIFN0cmluZyBJbnRlcm5hbHM6Om1lZGlhTUlNRVR5cGVGb3JF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0Myw2ICs5NDMsNyBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNp
b24pOwogCiAgICAgU3RyaW5nIGdldFVUSUZyb21NSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKTsKKyAgICBTdHJpbmcgZ2V0VVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBj
b25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpOwogCiAgICAg
Ym9vbCBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC04NTMsNiArODUzLDcgQEAgZW51
bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgRE9NU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRl
bnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiAKICAgICBET01TdHJpbmcgZ2V0VVRJRnJvbU1J
TUVUeXBlKERPTVN0cmluZyBtaW1lVHlwZSk7CisgICAgRE9NU3RyaW5nIGdldFVUSUZyb21UYWco
RE9NU3RyaW5nIHRhZ0NsYXNzLCBET01TdHJpbmcgdGFnLCBET01TdHJpbmcgY29uZm9ybWluZ1Rv
VVRJKTsKIAogICAgIGJvb2xlYW4gc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCk7CiB9OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYs
NCArMTA2LDkgQEAgU3RyaW5nIEludGVybmFsczo6Z2V0VVRJRnJvbU1JTUVUeXBlKGNvbgogICAg
IHJldHVybiBVVElGcm9tTUlNRVR5cGUobWltZVR5cGUpOwogfQogCitTdHJpbmcgSW50ZXJuYWxz
OjpnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmluZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFn
LCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdUb1VUSSkKK3sKKyAgICByZXR1cm4gVVRJRnJvbVRh
Zyh0YWdDbGFzcywgdGFnLCBjb25mb3JtaW5nVG9VVEkpOworfQorCiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMjU4MTExKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyNCBAQAorMjAyMC0wMy0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFwcGluZyB0byBVVEkgZnJvbSB0YWcgYW5k
IHRhZyBjbGFzcyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZW5kIG1hcHBpbmcgZnJv
bSB0YWcvdGFnIGNsYXNzIHRvIFVUSSBmcm9tIHRoZSBVSSBwcm9jZXNzIHRvIHRoZSBXZWJDb250
ZW50IHByb2Nlc3MgYXMgcGFydCBvZiB0aGUgV2ViUHJvY2VzcworICAgICAgICBjcmVhdGlvbiBw
YXJhbWV0ZXJzLiBBbHNvLCBpc3N1ZSBzb21lIG1hY2gtbG9va3VwIGV4dGVuc2lvbnMgdG8gdGhl
IFdlYkNvbnRlbnQgcHJvY2VzcyBpZiBBY2Nlc3NpYmlsaXR5IGlzCisgICAgICAgIGVuYWJsZWQu
CisKKyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQuc2I6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6CisKIDIwMjAtMDMtMDggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IHRoZSB3YXRjaE9TIGJ1aWxkCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29u
dGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJv
ZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU4MTA3
KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBw
bGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTg0OCw3ICs4NDgsNyBA
QAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKHJlcXVpcmUtYWxsCiAgICAgICAgIChleHRlbnNp
b24gImNvbS5hcHBsZS53ZWJraXQuZXh0ZW5zaW9uLm1hY2giKQotICAgICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNvbS5hcHBsZS50Y2Nk
IiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29udGVu
dC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRl
bnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiICJjb20uYXBwbGUubHNk
Lm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxlLm1vYmlsZWFzc2V0ZC52
MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAiY29tLmFwcGxlLmlj
b25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20uYXBwbGUuUG93ZXJNYW5h
Z2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgorICAgICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIgImNvbS5hcHBs
ZS50Y2NkIiAiY29tLmFwcGxlLm5laGVscGVyIiAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIu
Y29udGVudC1maWx0ZXIiICJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldl
YkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiICJjb20uYXBw
bGUubHNkLm9wZW4iICJjb20uYXBwbGUubW9iaWxlYXNzZXRkIiAiY29tLmFwcGxlLm1vYmlsZWFz
c2V0ZC52MiIgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIiAiY29tLmFw
cGxlLmljb25zZXJ2aWNlcyIgImNvbS5hcHBsZS53ZWJpbnNwZWN0b3IiICJjb20uYXBwbGUuUG93
ZXJNYW5hZ2VtZW50LmNvbnRyb2wiICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiAiY29tLmFw
cGxlLmxzZC5tYXBkYiIKIAogICAgICAgICAgICAgOzs7IEZJWE1FKDIwNzcxNik6IFRoZSBmb2xs
b3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxldGUK
ICAgICAgICAgICAgICJjb20uYXBwbGUuYWlycGxheS5hcHN5bmNjb250cm9sbGVyLnhwYyIgImNv
bS5hcHBsZS5hdWRpby5BVVJlbW90ZUlPU2VydmVyIiAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvQ29t
cG9uZW50UmVnaXN0cmFyIgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1ODEwNykKKysrIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDkgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZAogICAgIGVuY29kZXIgPDwgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwog
ICAgIGVuY29kZXIgPDwgZm9jdXNSaW5nQ29sb3I7CiAgICAgZW5jb2RlciA8PCBsb2NhbGl6ZWRE
ZXZpY2VNb2RlbDsKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorICAgIGVuY29kZXIgPDwgdmVj
dG9yT2ZVVFR5cGVJdGVtOworI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpA
QCAtNDkzLDYgKzQ5NiwxNCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kCiAgICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxvY2FsaXplZERl
dmljZU1vZGVsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorI2lmIFVTRShVVFRZUEVf
U1dJWlpMRVIpCisgICAgT3B0aW9uYWw8VmVjdG9yPFVUVHlwZUl0ZW0+PiB2ZWN0b3JPZlVUVHlw
ZUl0ZW07CisgICAgZGVjb2RlciA+PiB2ZWN0b3JPZlVUVHlwZUl0ZW07CisgICAgaWYgKCF2ZWN0
b3JPZlVUVHlwZUl0ZW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLnZl
Y3Rvck9mVVRUeXBlSXRlbSA9IFdURk1vdmUoKnZlY3Rvck9mVVRUeXBlSXRlbSk7CisjZW5kaWYK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTgx
MDcpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgQVBJIHsK
QEAgLTIyMyw2ICsyMjQsOSBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAgICAgV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OkNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCBj
c3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgV2ViQ29yZTo6Q29sb3IgZm9jdXNSaW5nQ29s
b3I7CiAgICAgU3RyaW5nIGxvY2FsaXplZERldmljZU1vZGVsOworI2lmIFVTRShVVFRZUEVfU1dJ
WlpMRVIpCisgICAgVmVjdG9yPFdlYkNvcmU6OlVUVHlwZUl0ZW0+IHZlY3Rvck9mVVRUeXBlSXRl
bTsKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQko
cmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzc2LDkgKzM3NiwxMCBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgaWYgKCFXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNNb2Jp
bGVTYWZhcmkoKSkgeworICAgIGlmICghV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTW9iaWxl
U2FmYXJpKCkgfHwgX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAg
ICAgICBzdGF0aWMgY29uc3QgY2hhciogc2VydmljZXNbXSA9IHsKICAgICAgICAgICAgICJjb20u
YXBwbGUubHNkLm9wZW4iLAorICAgICAgICAgICAgImNvbS5hcHBsZS5sc2QubWFwZGIiLAogICAg
ICAgICAgICAgImNvbS5hcHBsZS5tb2JpbGVhc3NldGQiLAogICAgICAgICAgICAgImNvbS5hcHBs
ZS5pY29uc2VydmljZXMiLAogICAgICAgICAgICAgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQu
Y29udHJvbCIsCkBAIC00MjksOCArNDMwLDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVcKICAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9
IFJlbmRlclRoZW1lSU9TOjpjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKTsKICAgICBwYXJhbWV0
ZXJzLmZvY3VzUmluZ0NvbG9yID0gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmZvY3VzUmluZ0Nv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPigpKTsKICAgICBwYXJhbWV0ZXJzLmxv
Y2FsaXplZERldmljZU1vZGVsID0gbG9jYWxpemVkRGV2aWNlTW9kZWwoKTsKKyNpZiBVU0UoVVRU
WVBFX1NXSVpaTEVSKQorICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtID0gY3JlYXRl
VmVjdG9yT2ZVVFR5cGVJdGVtKCk7CisjZW5kaWYKICNlbmRpZgotCiAgICAgCiAgICAgLy8gQWxs
b3cgbWljcm9waG9uZSBhY2Nlc3MgaWYgZWl0aGVyIHByZWZlcmVuY2UgaXMgc2V0IGJlY2F1c2Ug
V2ViUlRDIHJlcXVpcmVzIG1pY3JvcGhvbmUgYWNjZXNzLgogICAgIGJvb2wgbmVlZFdlYlByb2Nl
c3NFeHRlbnNpb25zID0gIW1fZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS51c2VHUFVQ
cm9jZXNzRm9yTWVkaWEoKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDMsNiArMTAzLDcgQEAKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VJZGlvbS5oIgogI2ltcG9y
dCAiV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdElPUy5oIgogI2ltcG9ydCA8VUlLaXQvVUlB
Y2Nlc3NpYmlsaXR5Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjZW5kaWYKIApA
QCAtMjk2LDYgKzI5NywxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByCiAgICAgICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQoZmFsc2UpOwogICAgIH0K
ICNlbmRpZgorICAgICAgICAKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorICAgIHN3aXp6bGVV
VFR5cGVSZWNvcmQoKTsKKyAgICBzZXRWZWN0b3JPZlVUVHlwZUl0ZW0oV1RGTW92ZShwYXJhbWV0
ZXJzLnZlY3Rvck9mVVRUeXBlSXRlbSkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6
cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3Jl
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgxMTApCisrKyBUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0wOCAgUGVyIEFybmUg
Vm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTWFwcGluZyB0byBV
VEkgZnJvbSB0YWcgYW5kIHRhZyBjbGFzcyBzaG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBw
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDg3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDIwLTAzLTA3ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAog
ICAgICAgICBSZXBsYWNlIHRoZSB1c2Ugb2YgdGVybSAicm9sbG91dCIgdG8gInJldmVydCIgaW4g
dmFyaW91cyB0b29scwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1ODEw
NykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDE2LDYgKzEwMTYsNyBAQAogCQlFM0ExRTc4
MjIxQjI1QjdBMDA4QzYwMDcgLyogVVJMLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTFFNzgwMjFCMjVCNzkwMDhDNjAwNyAvKiBVUkwuY3BwICov
OyB9OwogCQlFM0ExRTc4NTIxQjI1QjkxMDA4QzYwMDcgLyogVVJMUGFyc2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTFFNzg0MjFCMjVCOTEw
MDhDNjAwNyAvKiBVUkxQYXJzZXIuY3BwICovOyB9OwogCQlFM0MyMUE3QzIxQjI1Q0EyMDAzQjMx
QTMgLyogVVJMRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNDMjFBN0IyMUIyNUNBMjAwM0IzMUEzIC8qIFVSTEV4dHJhcy5tbSAqLzsgfTsK
KwkJRTNDQUFBNEMyNDE1NTA1MTAwQ0VEMkUyIC8qIFVUSUZyb21UYWcubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0NBQUE0QjI0MTU1MDUxMDBDRUQy
RTIgLyogVVRJRnJvbVRhZy5tbSAqLzsgfTsKIAkJRTNERUE4MTExRjBBNTg5MDAwQ0JDMkU4IC8q
IFRocmVhZEdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzREVBODEwMUYwQTU4ODAwMENCQzJFOCAvKiBUaHJlYWRHcm91cC5jcHAgKi87IH07
CiAJCUU1MDM2Rjc4MjExQkMyNTQwMEJGREJFMiAvKiBjb2xvci1kcm9wLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUwMzZGNzcyMTFC
QzIyODAwQkZEQkUyIC8qIGNvbG9yLWRyb3AuaHRtbCAqLzsgfTsKIAkJRUNBNjgwQ0UxRTY4Q0Mw
OTAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQTY4MENEMUU2OENDMDkwMDczMUQyMCAvKiBTdHJpbmdV
dGlsaXRpZXMubW0gKi87IH07CkBAIC0yNjE2LDYgKzI2MTcsNyBAQAogCQlFM0ExRTc4MDIxQjI1
Qjc5MDA4QzYwMDcgLyogVVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFVSTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQTFFNzg0MjFCMjVC
OTEwMDhDNjAwNyAvKiBVUkxQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVVJMUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTND
MjFBN0IyMUIyNUNBMjAwM0IzMUEzIC8qIFVSTEV4dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVSTEV4dHJhcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTNDQUFBNEIyNDE1NTA1MTAwQ0VEMkUyIC8qIFVUSUZyb21UYWcubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBVVElGcm9tVGFnLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFM0RFQTgxMDFGMEE1ODgwMDBDQkMyRTggLyogVGhyZWFkR3JvdXAuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkR3JvdXAuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDAwMTkzMDFBQ0U5QjVDMDAxQjBBMkEgLyogQmxvb21GaWx0
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvb21GaWx0ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDkwMjk2NzE0RTJFM0E0MDAyQkVE
RDEgLyogVHlwaW5nU3R5bGVDcmFzaC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFR5cGluZ1N0eWxlQ3Jhc2gubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yOTE2LDYgKzI5MTgsNyBAQAogCQkJCUUzMjVDOTA2MjNFMzg3MDIwMEJDN0QzQiAvKiBQ
aWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5tbSAqLywKIAkJCQlDMTVDQkIzRTIzRkIxNzdBMDAzMDBD
QzcgLyogUHJlZmVyZW5jZUNoYW5nZXMubW0gKi8sCiAJCQkJQzE5NEUzMUMyNDA5REY0MzAwMjkz
OUVEIC8qIFVUSUZyb21NSU1FVHlwZS5tbSAqLywKKwkJCQlFM0NBQUE0QjI0MTU1MDUxMDBDRUQy
RTIgLyogVVRJRnJvbVRhZy5tbSAqLywKIAkJCQkwRjEzOUU3NTFBNDIzQTUzMDBGNTkwRjUgLyog
V2Vha09iakNQdHIubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNvY29hOwpAQCAtNTExOSw2ICs1
MTIyLDcgQEAKIAkJCQk3Q0NFN0YxODFBNDExQUU2MDA0NDdDNEMgLyogVXNlck1lc3NhZ2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkVCMjQyQjgyMUQ0MTQwQjAwNTVDMUMwIC8qIFVzZVNlbGVj
dGlvbkFzRmluZFN0cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMxOTRFMzFEMjQwOURGNDMw
MDI5MzlFRCAvKiBVVElGcm9tTUlNRVR5cGUubW0gaW4gU291cmNlcyAqLywKKwkJCQlFM0NBQUE0
QzI0MTU1MDUxMDBDRUQyRTIgLyogVVRJRnJvbVRhZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdD
ODNFMDNBMUQwQTYwMjcwMEZFQkNGMyAvKiBVdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDODNFMEM2MUQwQTY1NEUwMEZFQkNGMyAvKiBWaWRlb0NvbnRyb2xzTWFuYWdlci5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNEMzA2NUUwMjE2NTY4MkUwMEU4OTVERiAvKiBWaWRlb1F1
YWxpdHlEaXNwbGF5Q29tcG9zaXRpbmcubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VUSUZyb21UYWcubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVVRJRnJvbVRhZy5tbQkobm9uZXhpc3RlbnQp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9VVElGcm9tVGFnLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorCisj
aW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgor
I2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVVRUeXBl
UmVjb3JkU3dpenpsZXIuaD4KKworVEVTVChXZWJLaXQsIFVUSUZyb21UYWcpCit7CisgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdL
KFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3Qo
IkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgp
LnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIGZvciAoYXV0byYgaXRlbSA6IFdlYkNvcmU6OmNy
ZWF0ZVZlY3Rvck9mVVRUeXBlSXRlbSgpKSB7CisgICAgICAgIGF1dG8ganMgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMuZ2V0VVRJRnJvbVRhZyhcIiVzXCIs
IFwiJXNcIiwgXCIlc1wiKSIsIGl0ZW0udGFnQ2xhc3MudXRmOCgpLmRhdGEoKSwgaXRlbS50YWcu
dXRmOCgpLmRhdGEoKSwgLCBpdGVtLmlkZW50aWZpZXIudXRmOCgpLmRhdGEoKV07CisKKyAgICAg
ICAgYXV0byB1dGkgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OmpzXTsK
KworICAgICAgICBBU1NFUlRfVFJVRShXZWJDb3JlOjpVVElGcm9tVGFnKGl0ZW0udGFnQ2xhc3Ms
IGl0ZW0udGFnLCBpdGVtLmlkZW50aWZpZXIpID09IFN0cmluZyh1dGkpKTsKKyAgICB9Cit9Cisj
ZW5kaWYKKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>
<flag name="review"
          id="408373"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392997</attachid>
            <date>2020-03-08 16:20:38 -0700</date>
            <delta_ts>2020-03-08 16:20:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208783-20200308162037.patch</filename>
            <type>text/plain</type>
            <size>38023</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTgxMTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRh
ZyBhbmQgdGFnIGNsYXNzIHNob3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiB3dGYvUGxhdGZv
cm1Vc2UuaDoKKwogMjAyMC0wMy0wNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gSW1wbGVtZW50IHN1cHBvcnQgZm9yIGRpY3RhdGlvbiBhbHRlcm5h
dGl2ZXMKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2UuaAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNl
L1dURi93dGYvUGxhdGZvcm1Vc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzIwLDMgKzMyMCw3IEBA
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmICEoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNjAwKQogI2RlZmluZSBVU0VfQ1RGT05UVFJBTlNGT1JN
R0xZUEhTV0lUSExBTkdVQUdFIDEKICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwCisjZGVmaW5lIFVT
RV9VVFRZUEVfU1dJWlpMRVIgMQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgx
MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwzNyBAQAorMjAyMC0wMy0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPU10gTWFwcGluZyB0byBVVEkgZnJvbSB0YWcgYW5kIHRhZyBjbGFzcyBz
aG91bGQgYmUgcGVyZm9ybWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIFRoaXMgbWFwcGluZyBzaG91bGQgYmUgZG9uZSBp
biB0aGUgVUkgcHJvY2Vzcywgc2luY2UgaXQgaXMgdXNpbmcgYSBzeXN0ZW0gc2VydmljZSB0aGF0
IHdpbGwgbm8gbG9uZ2VyIGJlIGF2YWlsYWJsZQorICAgICAgICBpbiB0aGUgV2ViQ29udGVudCBw
cm9jZXNzLiBUbyBhY2hpZXZlIHRoaXMsIHRoZSBtZXRob2QgK1tVVFR5cGVSZWNvcmQgdHlwZVJl
Y29yZFdpdGhUYWdPdmVycmlkZV0gaXMgc3dpenpsZWQgaW4KKyAgICAgICAgdGhlIFdlYkNvbnRl
bnQgcHJvY2VzcywgYW5kIGlzIHVzaW5nIHRoZSBjYWNoZWQgbWFwcGluZyBzZW50IGZyb20gdGhl
IFVJIHByb2Nlc3MuCisKKyAgICAgICAgQVBJIHRlc3Q6IFdlYktpdC5VVElGcm9tVGFnCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpVVFR5cGVJdGVtOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VVRUeXBl
SXRlbTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6
emxlci5tbTogQWRkZWQuCisgICAgICAgICgtW1dlYlVUVHlwZVJlY29yZCBzZXRJZGVudGlmaWVy
Ol0pOgorICAgICAgICAoV2ViQ29yZTo6dmVjdG9yT2ZVVFR5cGVSZWNvcmRzKToKKyAgICAgICAg
KFdlYkNvcmU6OnR5cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlVmVjdG9yT2ZVVFR5cGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFZlY3Rvck9m
VVRUeXBlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpzd2l6emxlVVRUeXBlUmVjb3JkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW06CisgICAgICAgIChXZWJDb3JlOjpV
VElGcm9tVGFnKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLm1tOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpnZXRVVElG
cm9tVGFnKToKKwogMjAyMC0wMy0wOCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KIAogICAgICAgICBnZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGw6ICJteSIgdmFyaWFi
bGUgJGZoIG1hc2tzIGVhcmxpZXIgZGVjbGFyYXRpb24gaW4gc2FtZSBzY29wZQpJbmRleDogU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgxMTcpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDMtMDggIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIE1hcHBpbmcg
dG8gVVRJIGZyb20gdGFnIGFuZCB0YWcgY2xhc3Mgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiB0aGUg
VUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA4NzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAg
ICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhbC9zcGkvY29j
b2EvTlNVVFR5cGVSZWNvcmRTUEkuaDogQWRkZWQuCisKIDIwMjAtMDMtMDggIEtvbnN0YW50aW4g
VG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFtDTWFrZV0gU29tZSBmaXhl
cyBmb3IgYnVpbGRpbmcgTWFjIHBvcnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwv
UEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJj
ZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMzQ2LDYgKzM0Niw3IEBACiAJCUNEQUNCMzVGMjM4NzNFNDgwMDE4RDdDRSAvKiBNZWRp
YVRvb2xib3hTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRvb2xib3hTb2Z0TGluay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY5MTExMjIyMEU0RUVDMDAxRUEzOUUg
LyogQ2VsZXN0aWFsU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENlbGVz
dGlhbFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTU2NzM4NjIxNTFBN0I5
MDAyRjkyRDcgLyogSU9LaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SU9LaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMwMzdGNEYyNDE1QURG
NDAwMzFDQTBGIC8qIE5TVVRUeXBlUmVjb3JkU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TVVRUeXBl
UmVjb3JkU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1RDQ1RDExMjEwNkEw
NzQwMEQyQjczOCAvKiBOU0NvbG9yV2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOU0NvbG9yV2VsbFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NUQ0NUQxMzIxMDZBMTg3MDBEMkI3MzggLyogTlNQb3BvdmVyQ29sb3JXZWxsU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TUG9wb3ZlckNvbG9yV2VsbFNQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyOTE1RDFGQTUyNDczMDAyQ0M5M0UgLyogTlNG
aWxlU2l6ZUZvcm1hdHRlclNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0ZpbGVTaXplRm9ybWF0dGVy
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDUsNiArNDQ2LDcgQEAKIAkJ
CQkwQzJEQTEzNzFGM0JFQjQ5MDBEQkMzMTcgLyogTlNVUkxEb3dubG9hZFNQSS5oICovLAogCQkJ
CTBDMkRBMTM4MUYzQkVCNDkwMERCQzMxNyAvKiBOU1VSTEZpbGVUeXBlTWFwcGluZ3NTUEkuaCAq
LywKIAkJCQlDMTVDQkIzMjIzRjM0QTEyMDAzMDBDQzcgLyogTlNVc2VyRGVmYXVsdHNTUEkuaCAq
LywKKwkJCQlFMzAzN0Y0RjI0MTVBREY0MDAzMUNBMEYgLyogTlNVVFR5cGVSZWNvcmRTUEkuaCAq
LywKIAkJCQk1NzBBQjhGODIwQUY2RTNEMDBCOEJFODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmgg
Ki8sCiAJCQkJMEMyREExMzkxRjNCRUI0OTAwREJDMzE3IC8qIFBhc3NLaXRTUEkuaCAqLywKIAkJ
CQkwQzJEQTEzQTFGM0JFQjQ5MDBEQkMzMTcgLyogcHRocmVhZFNQSS5oICovLApJbmRleDogU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNVVFR5cGVSZWNvcmRTUEkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU1VUVHlwZVJlY29yZFNQ
SS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05T
VVRUeXBlUmVjb3JkU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPENvcmVTZXJ2aWNlcy9MU1By
b3BlcnR5TGlzdFByaXYuaD4KKyNpbXBvcnQgPENvcmVTZXJ2aWNlcy9VVFR5cGVSZWNvcmRQcml2
Lmg+CisKKyNlbHNlCisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitA
aW50ZXJmYWNlIExTUmVjb3JkIDogTlNPYmplY3QgPE5TQ29weWluZywgTlNEaXNjYXJkYWJsZUNv
bnRlbnQ+CitAZW5kCisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCitA
aW50ZXJmYWNlIFVUVHlwZVJlY29yZCA6IExTUmVjb3JkCisrIChudWxsYWJsZSBpbnN0YW5jZXR5
cGUpdHlwZVJlY29yZFdpdGhUYWc6KE5TU3RyaW5nICopdGFnIG9mQ2xhc3M6KE5TU3RyaW5nICop
dGFnQ2xhc3MgY29uZm9ybWluZ1RvSWRlbnRpZmllcjooTlNTdHJpbmcgKiljb25mb3Jtc1RvOwor
QHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAZW5kCisKKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00ODM5LDYgKzQ4MzksOCBA
QAogCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJDMjQ1MjM4MzU1MUEwMDZF
QzM5RiAvKiBDU1NWYWx1ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAvKiBET01KSVRDaGVja0RP
TS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDOTlB
MDgxREMzRDQxNzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87IH07CiAJCUUzQzlBRUNC
MjExMzE0OTkwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIxMTMxNDc0MDA0MTlCOTIg
LyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovOyB9OworCQlFM0NBQUE2MTI0MTU1Rjg3MDBDRUQy
RTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNv
cmRTd2l6emxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUUzQ0FBQTYyMjQxNTYxMzIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTYw
MjQxNTVFRjMwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5tbSAqLzsgfTsKIAkJRTNF
NEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0U0RTJB
NjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0ZBMzg2
NDFENzE4MTJEMDBBQTU5NTAgLyogUGVuZGluZ1NjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGQTM4NjExRDcxNkU3NjAwQUE1OTUw
IC8qIFBlbmRpbmdTY3JpcHRDbGllbnQuaCAqLzsgfTsKIAkJRTQwMUMyNzUxN0NFNTNFQzAwQzQx
QTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVt
ZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE1MjAyLDYgKzE1MjA0LDggQEAKIAkJRTNCRjE5RTcyMkFGMzA5
RjAwOUM5OTI2IC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAvKiBET01KSVRDaGVja0RP
TS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRDaGVja0RPTS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0M5QUVDOTIxMTMxNDc0MDA0MTlCOTIgLyog
SlNNaWNyb3Rhc2tDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U01pY3JvdGFza0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQ0FB
QTVFMjQxNTVFRjIwMENFRDJFMiAvKiBVVFR5cGVSZWNvcmRTd2l6emxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBVVFR5cGVSZWNvcmRTd2l6emxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQyRTIgLyogVVRUeXBlUmVj
b3JkU3dpenpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBV
VFR5cGVSZWNvcmRTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNE
MDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTm9kZUNvbnN0YW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFM0U0RTJBNTFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNj
cmlwdEZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Ny
aXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNj
cmlwdEZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RWxl
bWVudENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIzMTIyLDYgKzIzMTI2LDggQEAKIAkJCQkzMTBENzE5NDFCMzM1QzlEMDA5QzdCNzMgLyogVGhl
bWVDb2NvYS5oICovLAogCQkJCTMxMEQ3MTkzMUIzMzVDOUQwMDlDN0I3MyAvKiBUaGVtZUNvY29h
Lm1tICovLAogCQkJCUEzQUY5RDgxMjAzMjUyRUUwMDZDQUQwNiAvKiBVc2VyQWdlbnRDb2NvYS5t
bSAqLywKKwkJCQlFM0NBQUE1RTI0MTU1RUYyMDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenps
ZXIuaCAqLywKKwkJCQlFM0NBQUE2MDI0MTU1RUYzMDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dp
enpsZXIubW0gKi8sCiAJCQkJNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyLmggKi8sCiAJCQkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8q
IFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8sCiAJCQkJNTJENUExQTUxQzU3NDg4OTAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8sCkBAIC0zMjkzNCw2ICsz
Mjk0MCw3IEBACiAJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRjE0RTYxRUFBQzU5QjAwMjZF
RUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRkFGQkYxOTE1QTVGQTc0
MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0NBQUE2MTI0
MTU1Rjg3MDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dpenpsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3Nh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxp
ZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM3NCw2ICszNDM4MSw3
IEBACiAJCQkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzczRkIwNzE5
MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlFM0NBQUE2MjI0MTU2MTMyMDBDRUQyRTIgLyogVVRUeXBlUmVjb3JkU3dp
enpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4MTU2MDA0NkVFMzggLyog
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MkQ1
QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVS
ZWNvcmRTd2l6emxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1VUVHlwZVJlY29yZFN3aXp6bGVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvVVRUeXBlUmVjb3JkU3dpenpsZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoVVRU
WVBFX1NXSVpaTEVSKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFVUVHlwZUl0ZW0geworICAgIFN0cmluZyB0YWc7Cisg
ICAgU3RyaW5nIHRhZ0NsYXNzOworICAgIFN0cmluZyBpZGVudGlmaWVyOworICAgIFN0cmluZyB1
dGk7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFVUVHlw
ZUl0ZW0+IGRlY29kZShEZWNvZGVyJik7Cit9OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIHN3aXp6
bGVVVFR5cGVSZWNvcmQoKTsKKworV0VCQ09SRV9FWFBPUlQgY29uc3QgVmVjdG9yPFVUVHlwZUl0
ZW0+JiBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
VmVjdG9yT2ZVVFR5cGVJdGVtKFZlY3RvcjxVVFR5cGVJdGVtPiYmKTsKKwordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgVVRUeXBlSXRlbTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCB0YWc7CisgICAgZW5jb2RlciA8PCB0YWdDbGFzczsKKyAg
ICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCB1dGk7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxVVFR5cGVJdGVtPiBVVFR5cGVJdGVtOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTdHJpbmc+IHRhZzsKKyAgICBk
ZWNvZGVyID4+IHRhZzsKKyAgICBpZiAoIXRhZykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdGFnQ2xhc3M7CisgICAgZGVjb2RlciA+PiB0YWdD
bGFzczsKKyAgICBpZiAoIXRhZ0NsYXNzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8U3RyaW5nPiBpZGVudGlmaWVyOworICAgIGRlY29kZXIgPj4gaWRlbnRp
ZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICBPcHRpb25hbDxTdHJpbmc+IHV0aTsKKyAgICBkZWNvZGVyID4+IHV0aTsKKyAgICBp
ZiAoIXV0aSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBVVFR5
cGVJdGVtIHsgKnRhZywgKnRhZ0NsYXNzLCAqaWRlbnRpZmllciwgKnV0aSB9OworfQorfTsKKwor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRT
d2l6emxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9V
VFR5cGVSZWNvcmRTd2l6emxlci5tbQkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9VVFR5cGVSZWNvcmRTd2l6emxlci5tbQkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDExNiBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0Ogor
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlVUVHlwZVJlY29yZFN3aXp6bGVyLmgi
CisKKyNpZiBVU0UoVVRUWVBFX1NXSVpaTEVSKQorCisjaW1wb3J0IDxNb2JpbGVDb3JlU2Vydmlj
ZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisKKyNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVz
Lmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVRUeXBlUmVjb3JkU1BJLmg+CisjaW1wb3J0
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5o
PgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9yLmg+Cisj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0
eSgiZGVmYXVsdCIpKSkKK0BpbnRlcmZhY2UgV2ViVVRUeXBlUmVjb3JkIDogVVRUeXBlUmVjb3Jk
CistICh2b2lkKXNldElkZW50aWZpZXI6KE5TU3RyaW5nICopaTsKK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIFdlYlVUVHlwZVJlY29yZCB7CitAcGFja2FnZQorICAgIE5TU3RyaW5nICpfaWRlbnRp
ZmllcjsKK30KK0BzeW50aGVzaXplIGlkZW50aWZpZXI9X2lkZW50aWZpZXI7CistICh2b2lkKXNl
dElkZW50aWZpZXI6KE5TU3RyaW5nICopaQoreworICAgIF9pZGVudGlmaWVyID0gaTsKK30KK0Bl
bmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgVmVjdG9yPFVUVHlwZUl0ZW0+JiB2
ZWN0b3JPZlVUVHlwZVJlY29yZHMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0
b3I8VVRUeXBlSXRlbT4+IHZlY3RvcjsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCitzdGF0aWMg
SU1QIHR5cGVSZWNvcmRXaXRoVGFnT3JpZ2luYWwgPSBuaWw7CisKK3N0YXRpYyBVVFR5cGVSZWNv
cmQgKnR5cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUoaWQgc2VsZiwgU0VMIHNlbGVjdG9yLCBOU1N0
cmluZyAqdGFnLCBOU1N0cmluZyAqdGFnQ2xhc3MsIE5TU3RyaW5nICppZGVudGlmaWVyKQorewor
ICAgIGZvciAoYXV0byYgciA6IHZlY3Rvck9mVVRUeXBlUmVjb3JkcygpKSB7CisgICAgICAgIGlm
IChyLnRhZyA9PSBTdHJpbmcodGFnKSAmJiByLnRhZ0NsYXNzID09IFN0cmluZyh0YWdDbGFzcykg
JiYgci5pZGVudGlmaWVyID09IFN0cmluZyhpZGVudGlmaWVyKSkgeworICAgICAgICAgICAgV2Vi
VVRUeXBlUmVjb3JkICpyZWNvcmQgPSBbV2ViVVRUeXBlUmVjb3JkIGFsbG9jXTsKKyAgICAgICAg
ICAgIFtyZWNvcmQgc2V0SWRlbnRpZmllcjpyLnV0aV07CisgICAgICAgICAgICByZXR1cm4gW3Jl
Y29yZCBhdXRvcmVsZWFzZV07CisgICAgICAgIH0KKyAgICB9CisgICAgV1RGTG9nQWx3YXlzKCJV
VEkgbm90IGZvdW5kIGZvciB0YWc6ICVzICVzICVzXG4iLCBTdHJpbmcodGFnKS51dGY4KCkuZGF0
YSgpLCBTdHJpbmcodGFnQ2xhc3MpLnV0ZjgoKS5kYXRhKCksIFN0cmluZyhpZGVudGlmaWVyKS51
dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gd3RmQ2FsbElNUDxVVFR5cGVSZWNvcmQgKj4odHlw
ZVJlY29yZFdpdGhUYWdPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIHRhZywgdGFnQ2xhc3MsIGlk
ZW50aWZpZXIpOworfQorCitjb25zdCBWZWN0b3I8VVRUeXBlSXRlbT4mIGNyZWF0ZVZlY3Rvck9m
VVRUeXBlSXRlbSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxVVFR5cGVJ
dGVtPj4gdmVjdG9yID0gW10geworICAgICAgICBWZWN0b3I8VVRUeXBlSXRlbT4gdiA9IHN0ZDo6
aW5pdGlhbGl6ZXJfbGlzdDxVVFR5cGVJdGVtPiB7CisgICAgICAgICAgICB7ICJkYXQiX3MsICJw
dWJsaWMuZmlsZW5hbWUtZXh0ZW5zaW9uIl9zLCBzdGF0aWNfY2FzdDxjaGFyKj4obnVsbHB0ciks
IHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRyKSB9LAorICAgICAgICAgICAgeyAibXA0Il9zLCAi
cHVibGljLmZpbGVuYW1lLWV4dGVuc2lvbiJfcywgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIp
LCBzdGF0aWNfY2FzdDxjaGFyKj4obnVsbHB0cikgfSwKKyAgICAgICAgICAgIHsgIm90ZiJfcywg
InB1YmxpYy5maWxlbmFtZS1leHRlbnNpb24iX3MsIHN0YXRpY19jYXN0PGNoYXIqPihudWxscHRy
KSwgc3RhdGljX2Nhc3Q8Y2hhcio+KG51bGxwdHIpIH0sCisgICAgICAgIH07CisgICAgICAgIGZv
ciAoYXV0byYgciA6IHYpIHsKKyAgICAgICAgICAgIGF1dG8gdXRpID0gYWRvcHRDRihVVFR5cGVD
cmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKHIudGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSwgci50YWcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgci5pZGVudGlmaWVyLmlzTnVs
bCgpID8gbnVsbHB0ciA6IHIuaWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7Cisg
ICAgICAgICAgICByLnV0aSA9IHV0aS5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGF1
dG8mIGl0IDogY3JlYXRlVVRJRnJvbU1JTUVUeXBlTWFwKCkpIHsKKyAgICAgICAgICAgIFVUVHlw
ZUl0ZW0gaSA9IHsgaXQua2V5LCAicHVibGljLm1pbWUtdHlwZSJfcywgc3RhdGljX2Nhc3Q8Y2hh
cio+KG51bGxwdHIpLCBzdGF0aWNfY2FzdDxjaGFyKj4obnVsbHB0cikgfTsKKyAgICAgICAgICAg
IGF1dG8gdXRpID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFn
KGkudGFnQ2xhc3MuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgaS50YWcuY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSwgaS5pZGVudGlmaWVyLmlzTnVsbCgpID8gbnVsbHB0ciA6IGkuaWRlbnRpZmllci5j
cmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgICAgICAgICBpLnV0aSA9IHV0aS5nZXQoKTsK
KyAgICAgICAgICAgIHYuYXBwZW5kKFdURk1vdmUoaSkpOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiB2OworICAgIH0oKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCit2b2lkIHNldFZlY3Rv
ck9mVVRUeXBlSXRlbShWZWN0b3I8VVRUeXBlSXRlbT4mJiB2ZWN0b3IpCit7CisgICAgdmVjdG9y
T2ZVVFR5cGVSZWNvcmRzKCkgPSBXVEZNb3ZlKHZlY3Rvcik7Cit9CisKK3ZvaWQgc3dpenpsZVVU
VHlwZVJlY29yZCgpCit7CisgICAgTWV0aG9kIHR5cGVSZWNvcmRXaXRoVGFnTWV0aG9kID0gY2xh
c3NfZ2V0Q2xhc3NNZXRob2Qob2JqY19nZXRDbGFzcygiVVRUeXBlUmVjb3JkIiksIEBzZWxlY3Rv
cih0eXBlUmVjb3JkV2l0aFRhZzogb2ZDbGFzczogY29uZm9ybWluZ1RvSWRlbnRpZmllcjopKTsK
KyAgICB0eXBlUmVjb3JkV2l0aFRhZ09yaWdpbmFsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9u
KHR5cGVSZWNvcmRXaXRoVGFnTWV0aG9kLCAoSU1QKXR5cGVSZWNvcmRXaXRoVGFnT3ZlcnJpZGUp
OworfQorCit9OworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1VUSVV0aWxpdGllcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5oCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNiArMzMsNyBAQCBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgTUlNRVR5cGVGcm9t
VVRJKGNvCiBTdHJpbmcgTUlNRVR5cGVGcm9tVVRJVHJlZShjb25zdCBTdHJpbmcmKTsKIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBVVElGcm9tTUlNRVR5cGUoY29uc3QgU3RyaW5nJik7CiBib29sIGlz
RGVjbGFyZWRVVEkoY29uc3QgU3RyaW5nJik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgVVRJRnJv
bVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3Ry
aW5nJiBjb25mb3JtaW5nVG9VVEkpOwogCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVUSUZyb21N
SU1FVHlwZU1hcChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYmKTsKIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjcmVhdGVVVElGcm9tTUlNRVR5cGVNYXAoKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElV
dGlsaXRpZXMubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTYxLDYgKzE2
MSwxMiBAQCBib29sIGlzRGVjbGFyZWRVVEkoY29uc3QgU3RyaW5nJiBVVEkpCiAgICAgcmV0dXJu
IFVUVHlwZUlzRGVjbGFyZWQoVVRJLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogfQogCitTdHJp
bmcgVVRJRnJvbVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywg
Y29uc3QgU3RyaW5nJiBjb25mb3JtaW5nVG9VVEkpCit7CisgICAgYXV0byB1ID0gYWRvcHRDRihV
VFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKHRhZ0NsYXNzLmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCksIHRhZy5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBjb25mb3JtaW5nVG9VVEku
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIHJldHVybiBTdHJpbmcodS5nZXQoKSk7Cit9
CisKIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWRkaXRpb25hbE1JTUVUeXBlcygpCiB7
CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBtaW1lVHlwZXMgPSBz
dGQ6OmluaXRpYWxpemVyX2xpc3Q8U3RyaW5nPiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1MDEsNiArNTUwMSwxMSBAQCBTdHJp
bmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tTUlNRVR5cGUoY29uCiB7CiAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7CiB9CisKK1N0cmluZyBJbnRlcm5hbHM6OmdldFVUSUZyb21UYWcoY29uc3QgU3Ry
aW5nJiB0YWdDbGFzcywgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgY29uZm9ybWlu
Z1RvVVRJKQoreworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQogI2VuZGlmCiAKIFN0cmlu
ZyBJbnRlcm5hbHM6Om1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRl
bnNpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1ODEw
NykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTk0Myw2ICs5NDMsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pOwogCiAgICAgU3RyaW5nIGdldFVUSUZy
b21NSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyAgICBTdHJpbmcgZ2V0VVRJRnJv
bVRhZyhjb25zdCBTdHJpbmcmIHRhZ0NsYXNzLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3Ry
aW5nJiBjb25mb3JtaW5nVG9VVEkpOwogCiAgICAgYm9vbCBzdXBwb3J0c1BpY3R1cmVJblBpY3R1
cmUoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24g
MjU4MTA3KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC04NTMsNiArODUzLDcgQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAg
RE9NU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7
CiAKICAgICBET01TdHJpbmcgZ2V0VVRJRnJvbU1JTUVUeXBlKERPTVN0cmluZyBtaW1lVHlwZSk7
CisgICAgRE9NU3RyaW5nIGdldFVUSUZyb21UYWcoRE9NU3RyaW5nIHRhZ0NsYXNzLCBET01TdHJp
bmcgdGFnLCBET01TdHJpbmcgY29uZm9ybWluZ1RvVVRJKTsKIAogICAgIGJvb2xlYW4gc3VwcG9y
dHNQaWN0dXJlSW5QaWN0dXJlKCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMubW0JKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNCArMTA2LDkgQEAgU3RyaW5nIEludGVybmFs
czo6Z2V0VVRJRnJvbU1JTUVUeXBlKGNvbgogICAgIHJldHVybiBVVElGcm9tTUlNRVR5cGUobWlt
ZVR5cGUpOwogfQogCitTdHJpbmcgSW50ZXJuYWxzOjpnZXRVVElGcm9tVGFnKGNvbnN0IFN0cmlu
ZyYgdGFnQ2xhc3MsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGNvbmZvcm1pbmdU
b1VUSSkKK3sKKyAgICByZXR1cm4gVVRJRnJvbVRhZyh0YWdDbGFzcywgdGFnLCBjb25mb3JtaW5n
VG9VVEkpOworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU4MTExKQorKysgU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAyMC0w
My0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gTWFwcGluZyB0byBVVEkgZnJvbSB0YWcgYW5kIHRhZyBjbGFzcyBzaG91bGQgYmUgcGVyZm9y
bWVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFt
LgorCisgICAgICAgIFNlbmQgbWFwcGluZyBmcm9tIHRhZy90YWcgY2xhc3MgdG8gVVRJIGZyb20g
dGhlIFVJIHByb2Nlc3MgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBhcyBwYXJ0IG9mIHRoZSBX
ZWJQcm9jZXNzCisgICAgICAgIGNyZWF0aW9uIHBhcmFtZXRlcnMuIEFsc28sIGlzc3VlIHNvbWUg
bWFjaC1sb29rdXAgZXh0ZW5zaW9ucyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlmIEFjY2Vz
c2liaWxpdHkgaXMKKyAgICAgICAgZW5hYmxlZC4KKworICAgICAgICAqIFJlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYjoKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMC0wMy0wOCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIHdh
dGNoT1MgYnVpbGQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxl
cy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50LnNiCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkod29y
a2luZyBjb3B5KQpAQCAtODQ4LDcgKzg0OCw3IEBACiAoYWxsb3cgbWFjaC1sb29rdXAKICAgICAo
cmVxdWlyZS1hbGwKICAgICAgICAgKGV4dGVuc2lvbiAiY29tLmFwcGxlLndlYmtpdC5leHRlbnNp
b24ubWFjaCIpCi0gICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZl
ci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBwbGUubmVoZWxwZXIiICJjb20u
YXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIgImNvbS5hcHBsZS51aWtpdC52
aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSIgImNvbS5hcHBs
ZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNvbS5hcHBsZS5tb2JpbGVhc3Nl
dGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lz
dGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiAiY29tLmFwcGxlLndlYmlu
c3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIgImNvbS5hcHBsZS5j
ZnByZWZzZC5kYWVtb24iCisgICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmlwaG9uZS5h
eHNlcnZlci1zeXN0ZW13aWRlIiAiY29tLmFwcGxlLnRjY2QiICJjb20uYXBwbGUubmVoZWxwZXIi
ICJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlci5jb250ZW50LWZpbHRlciIgImNvbS5hcHBsZS51
aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSIgImNv
bS5hcHBsZS5kaWFnbm9zdGljZCIgImNvbS5hcHBsZS5sc2Qub3BlbiIgImNvbS5hcHBsZS5tb2Jp
bGVhc3NldGQiICJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIiAiY29tLmFwcGxlLmZyb250Ym9h
cmQuc3lzdGVtYXBwc2VydmljZXMiICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIiAiY29tLmFwcGxl
LndlYmluc3BlY3RvciIgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIgImNvbS5h
cHBsZS5jZnByZWZzZC5kYWVtb24iICJjb20uYXBwbGUubHNkLm1hcGRiIgogCiAgICAgICAgICAg
ICA7OzsgRklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVu
IHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZQogICAgICAgICAgICAgImNvbS5hcHBsZS5haXJw
bGF5LmFwc3luY2NvbnRyb2xsZXIueHBjIiAiY29tLmFwcGxlLmF1ZGlvLkFVUmVtb3RlSU9TZXJ2
ZXIiICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRSZWdpc3RyYXIiCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAkocmV2aXNpb24gMjU4MTA3KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw2ICsxODAsOSBA
QCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5jb2RlciA8
PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgZW5jb2RlciA8PCBmb2N1c1JpbmdDb2xv
cjsKICAgICBlbmNvZGVyIDw8IGxvY2FsaXplZERldmljZU1vZGVsOworI2lmIFVTRShVVFRZUEVf
U1dJWlpMRVIpCisgICAgZW5jb2RlciA8PCB2ZWN0b3JPZlVUVHlwZUl0ZW07CisjZW5kaWYKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC00OTMsNiArNDk2LDE0IEBAIGJvb2wgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgCisjaWYgVVNFKFVUVFlQRV9TV0laWkxFUikKKyAgICBPcHRpb25hbDxWZWN0
b3I8VVRUeXBlSXRlbT4+IHZlY3Rvck9mVVRUeXBlSXRlbTsKKyAgICBkZWNvZGVyID4+IHZlY3Rv
ck9mVVRUeXBlSXRlbTsKKyAgICBpZiAoIXZlY3Rvck9mVVRUeXBlSXRlbSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtID0gV1RGTW92ZSgq
dmVjdG9yT2ZVVFR5cGVJdGVtKTsKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NP
QSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiAr
NTMsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlIDxXZWJDb3JlL1Jl
bmRlclRoZW1lSU9TLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9VVFR5cGVSZWNvcmRTd2l6emxlci5o
PgogI2VuZGlmCiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMjIzLDYgKzIyNCw5IEBAIHN0cnVjdCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwIGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICAg
ICBXZWJDb3JlOjpDb2xvciBmb2N1c1JpbmdDb2xvcjsKICAgICBTdHJpbmcgbG9jYWxpemVkRGV2
aWNlTW9kZWw7CisjaWYgVVNFKFVUVFlQRV9TV0laWkxFUikKKyAgICBWZWN0b3I8V2ViQ29yZTo6
VVRUeXBlSXRlbT4gdmVjdG9yT2ZVVFR5cGVJdGVtOworI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTgxMDcpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zNzYsOSArMzc2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5p
dGlhbGl6ZVcKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoIVdl
YkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc01vYmlsZVNhZmFyaSgpKSB7CisgICAgaWYgKCFXZWJD
b3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKSB8fCBfQVhTQXBwbGljYXRpb25B
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2
aWNlc1tdID0gewogICAgICAgICAgICAgImNvbS5hcHBsZS5sc2Qub3BlbiIsCisgICAgICAgICAg
ICAiY29tLmFwcGxlLmxzZC5tYXBkYiIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLm1vYmlsZWFz
c2V0ZCIsCiAgICAgICAgICAgICAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIsCiAgICAgICAgICAg
ICAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIiwKQEAgLTQyOSw4ICs0MzAsMTAg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgIHBhcmFtZXRl
cnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVuZGVyVGhlbWVJT1M6OmNzc1ZhbHVlVG9T
eXN0ZW1Db2xvck1hcCgpOwogICAgIHBhcmFtZXRlcnMuZm9jdXNSaW5nQ29sb3IgPSBSZW5kZXJU
aGVtZTo6c2luZ2xldG9uKCkuZm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KCkpOwogICAgIHBhcmFtZXRlcnMubG9jYWxpemVkRGV2aWNlTW9kZWwgPSBsb2NhbGl6
ZWREZXZpY2VNb2RlbCgpOworI2lmIFVTRShVVFRZUEVfU1dJWlpMRVIpCisgICAgcGFyYW1ldGVy
cy52ZWN0b3JPZlVUVHlwZUl0ZW0gPSBjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKTsKKyNlbmRp
ZgogI2VuZGlmCi0KICAgICAKICAgICAvLyBBbGxvdyBtaWNyb3Bob25lIGFjY2VzcyBpZiBlaXRo
ZXIgcHJlZmVyZW5jZSBpcyBzZXQgYmVjYXVzZSBXZWJSVEMgcmVxdWlyZXMgbWljcm9waG9uZSBh
Y2Nlc3MuCiAgICAgYm9vbCBuZWVkV2ViUHJvY2Vzc0V4dGVuc2lvbnMgPSAhbV9kZWZhdWx0UGFn
ZUdyb3VwLT5wcmVmZXJlbmNlcygpLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJl
dmlzaW9uIDI1ODEwNykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsNyBAQAogI2ltcG9ydCAi
VXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0SU9TLmgiCiAjaW1wb3J0IDxVSUtpdC9VSUFjY2Vzc2liaWxpdHkuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvVVRUeXBlUmVjb3JkU3dpenpsZXIuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBo
aWNzU2VydmljZXNTUEkuaD4KICNlbmRpZgogCkBAIC0yOTYsNiArMjk3LDExIEBAIHZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAgICAgX0NGUHJlZnNTZXREaXJl
Y3RNb2RlRW5hYmxlZChmYWxzZSk7CiAgICAgfQogI2VuZGlmCisgICAgICAgIAorI2lmIFVTRShV
VFRZUEVfU1dJWlpMRVIpCisgICAgc3dpenpsZVVUVHlwZVJlY29yZCgpOworICAgIHNldFZlY3Rv
ck9mVVRUeXBlSXRlbShXVEZNb3ZlKHBhcmFtZXRlcnMudmVjdG9yT2ZVVFR5cGVJdGVtKSk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKSW5k
ZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI1ODExMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEyIEBACisyMDIwLTAzLTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4K
KworICAgICAgICBbaU9TXSBNYXBwaW5nIHRvIFVUSSBmcm9tIHRhZyBhbmQgdGFnIGNsYXNzIHNo
b3VsZCBiZSBwZXJmb3JtZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc4MworCisgICAgICAgIFJldmlld2VkIGJ5
IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0wMy0wNyAgUm9zcyBLaXJzbGluZyAg
PHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgUmVwbGFjZSB0aGUgdXNlIG9mIHRl
cm0gInJvbGxvdXQiIHRvICJyZXZlcnQiIGluIHZhcmlvdXMgdG9vbHMKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTgxMDcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTAxNiw2ICsxMDE2LDcgQEAKIAkJRTNBMUU3ODIyMUIyNUI3QTAwOEM2MDA3IC8qIFVSTC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ExRTc4MDIx
QjI1Qjc5MDA4QzYwMDcgLyogVVJMLmNwcCAqLzsgfTsKIAkJRTNBMUU3ODUyMUIyNUI5MTAwOEM2
MDA3IC8qIFVSTFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFM0ExRTc4NDIxQjI1QjkxMDA4QzYwMDcgLyogVVJMUGFyc2VyLmNwcCAqLzsg
fTsKIAkJRTNDMjFBN0MyMUIyNUNBMjAwM0IzMUEzIC8qIFVSTEV4dHJhcy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzIxQTdCMjFCMjVDQTIwMDNC
MzFBMyAvKiBVUkxFeHRyYXMubW0gKi87IH07CisJCUUzQ0FBQTRDMjQxNTUwNTEwMENFRDJFMiAv
KiBVVElGcm9tVGFnLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNDQUFBNEIyNDE1NTA1MTAwQ0VEMkUyIC8qIFVUSUZyb21UYWcubW0gKi87IH07CiAJ
CUUzREVBODExMUYwQTU4OTAwMENCQzJFOCAvKiBUaHJlYWRHcm91cC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0RFQTgxMDFGMEE1ODgwMDBDQkMy
RTggLyogVGhyZWFkR3JvdXAuY3BwICovOyB9OwogCQlFNTAzNkY3ODIxMUJDMjU0MDBCRkRCRTIg
LyogY29sb3ItZHJvcC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1MDM2Rjc3MjExQkMyMjgwMEJGREJFMiAvKiBjb2xvci1kcm9wLmh0
bWwgKi87IH07CiAJCUVDQTY4MENFMUU2OENDMDkwMDczMUQyMCAvKiBTdHJpbmdVdGlsaXRpZXMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBD
RDFFNjhDQzA5MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLm1tICovOyB9OwpAQCAtMjYxNiw2
ICsyNjE3LDcgQEAKIAkJRTNBMUU3ODAyMUIyNUI3OTAwOEM2MDA3IC8qIFVSTC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFM0ExRTc4NDIxQjI1QjkxMDA4QzYwMDcgLyogVVJMUGFyc2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTFBhcnNlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQzIxQTdCMjFCMjVDQTIwMDNCMzFBMyAvKiBVUkxF
eHRyYXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVUkxFeHRy
YXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQ0FBQTRCMjQxNTUwNTEwMENF
RDJFMiAvKiBVVElGcm9tVGFnLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVVRJRnJvbVRhZy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNERUE4MTAxRjBBNTg4MDAwQ0JDMkU4
IC8qIFRocmVhZEdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRocmVhZEdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwMDE5MzAx
QUNFOUI1QzAwMUIwQTJBIC8qIEJsb29tRmlsdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEJsb29tRmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQ5MDI5NjcxNEUyRTNBNDAwMkJFREQxIC8qIFR5cGluZ1N0eWxlQ3Jhc2gubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUeXBpbmdTdHlsZUNyYXNoLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjkxNiw2ICsyOTE4LDcgQEAKIAkJCQlF
MzI1QzkwNjIzRTM4NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQubW0gKi8s
CiAJCQkJQzE1Q0JCM0UyM0ZCMTc3QTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VDaGFuZ2VzLm1tICov
LAogCQkJCUMxOTRFMzFDMjQwOURGNDMwMDI5MzlFRCAvKiBVVElGcm9tTUlNRVR5cGUubW0gKi8s
CisJCQkJRTNDQUFBNEIyNDE1NTA1MTAwQ0VEMkUyIC8qIFVUSUZyb21UYWcubW0gKi8sCiAJCQkJ
MEYxMzlFNzUxQTQyM0E1MzAwRjU5MEY1IC8qIFdlYWtPYmpDUHRyLm1tICovLAogCQkJKTsKIAkJ
CW5hbWUgPSBjb2NvYTsKQEAgLTUxMTksNiArNTEyMiw3IEBACiAJCQkJN0NDRTdGMTgxQTQxMUFF
NjAwNDQ3QzRDIC8qIFVzZXJNZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFQjI0MkI4
MjFENDE0MEIwMDU1QzFDMCAvKiBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0gaW4gU291cmNl
cyAqLywKIAkJCQlDMTk0RTMxRDI0MDlERjQzMDAyOTM5RUQgLyogVVRJRnJvbU1JTUVUeXBlLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJRTNDQUFBNEMyNDE1NTA1MTAwQ0VEMkUyIC8qIFVUSUZyb21U
YWcubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTAzQTFEMEE2MDI3MDBGRUJDRjMgLyogVXRp
bGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDNjFEMEE2NTRFMDBGRUJD
RjMgLyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDMwNjVF
MDIxNjU2ODJFMDBFODk1REYgLyogVmlkZW9RdWFsaXR5RGlzcGxheUNvbXBvc2l0aW5nLm1tIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9VVElG
cm9tVGFnLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1VUSUZyb21UYWcubW0JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvVVRJRnJvbVRhZy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisj
aWYgVVNFKFVUVFlQRV9TV0laWkxFUikKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIK
KyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVz
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1VUVHlwZVJlY29yZFN3aXp6bGVyLmg+CisKK1RFU1QoV2Vi
S2l0LCBVVElGcm9tVGFnKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tSZXRhaW5QdHI8V0tD
b250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVD
b250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3Qi
KSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29s
ICopY29udGV4dC5nZXQoKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBm
b3IgKGF1dG8mIGl0ZW0gOiBXZWJDb3JlOjpjcmVhdGVWZWN0b3JPZlVUVHlwZUl0ZW0oKSkgewor
ICAgICAgICBhdXRvIGpzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cuaW50
ZXJuYWxzLmdldFVUSUZyb21UYWcoXCIlc1wiLCBcIiVzXCIsIFwiJXNcIikiLCBpdGVtLnRhZy51
dGY4KCkuZGF0YSgpLCBpdGVtLnRhZ0NsYXNzLnV0ZjgoKS5kYXRhKCksICwgaXRlbS5pZGVudGlm
aWVyLnV0ZjgoKS5kYXRhKCldOworCisgICAgICAgIGF1dG8gdXRpID0gW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CisKKyAgICAgICAgQVNTRVJUX1RSVUUoV2ViQ29y
ZTo6VVRJRnJvbVRhZyhpdGVtLnRhZ0NsYXNzLCBpdGVtLnRhZywgaXRlbS5pZGVudGlmaWVyKSA9
PSBTdHJpbmcodXRpKSk7CisgICAgfQorfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS19IQVZFX0Nf
U1BJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>