<?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>235691</bug_id>
          
          <creation_ts>2022-01-26 23:38:17 -0800</creation_ts>
          <short_desc>Introduce WebFoundTextRange and WebFoundTextRangeController to support restorable find results</short_desc>
          <delta_ts>2022-01-27 23:32:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Other</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>
          
          <blocked>235692</blocked>
    
    <blocked>235693</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1834425</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-26 23:38:17 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834426</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-26 23:38:36 -0800</bug_when>
    <thetext>rdar://88117167</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834628</commentid>
    <comment_count>2</comment_count>
      <attachid>450162</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-27 11:55:58 -0800</bug_when>
    <thetext>Created attachment 450162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834642</commentid>
    <comment_count>3</comment_count>
      <attachid>450162</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-01-27 12:15:16 -0800</bug_when>
    <thetext>Comment on attachment 450162
Patch

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

&gt; Source/WebKit/Shared/WebFindOptions.cpp:31
&gt; +WebCore::FindOptions core(OptionSet&lt;FindOptions&gt; options)

Nit - should probably either add a few more WebCore:: in this function, or add a `using namespace WebCore;` instead. I think right now it might be getting the missing WebCore:: from earlier unified sources.

&gt; Source/WebKit/Shared/WebFindOptions.h:53
&gt; +WebCore::FindOptions core(OptionSet&lt;FindOptions&gt;);

(Here too)

&gt; Source/WebKit/Shared/WebFoundTextRange.cpp:49
&gt; +bool WebFoundTextRange::decode(IPC::Decoder&amp; decoder, WebFoundTextRange&amp; result)

Nit - I think we generally prefer to use the Optional&lt;&gt;-type decode method in new code (this older style is considered &quot;legacy&quot;).

&gt; Source/WebKit/WebProcess/WebPage/WebFoundTextRangeController.h:51
&gt; +    explicit WebFoundTextRangeController(WebPage*);

Do we expect `WebFoundTextRangeController` to be initialized with a WebPage* that is `nullptr`? (If not, let&apos;s make this take a WebPage&amp; instead).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834696</commentid>
    <comment_count>4</comment_count>
      <attachid>450177</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-27 14:17:55 -0800</bug_when>
    <thetext>Created attachment 450177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834697</commentid>
    <comment_count>5</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-27 14:19:31 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #3)
&gt; Comment on attachment 450162 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=450162&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/WebFindOptions.cpp:31
&gt; &gt; +WebCore::FindOptions core(OptionSet&lt;FindOptions&gt; options)
&gt; 
&gt; Nit - should probably either add a few more WebCore:: in this function, or
&gt; add a `using namespace WebCore;` instead. I think right now it might be
&gt; getting the missing WebCore:: from earlier unified sources.

I see any missing WebCore:: here, the parameter is in the WebKit namespace.
 
&gt; &gt; Source/WebKit/Shared/WebFindOptions.h:53
&gt; &gt; +WebCore::FindOptions core(OptionSet&lt;FindOptions&gt;);
&gt; 
&gt; (Here too)

See above.
 
&gt; &gt; Source/WebKit/Shared/WebFoundTextRange.cpp:49
&gt; &gt; +bool WebFoundTextRange::decode(IPC::Decoder&amp; decoder, WebFoundTextRange&amp; result)
&gt; 
&gt; Nit - I think we generally prefer to use the Optional&lt;&gt;-type decode method
&gt; in new code (this older style is considered &quot;legacy&quot;).

Done.
 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebFoundTextRangeController.h:51
&gt; &gt; +    explicit WebFoundTextRangeController(WebPage*);
&gt; 
&gt; Do we expect `WebFoundTextRangeController` to be initialized with a WebPage*
&gt; that is `nullptr`? (If not, let&apos;s make this take a WebPage&amp; instead).

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834705</commentid>
    <comment_count>6</comment_count>
      <attachid>450177</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-01-27 14:25:49 -0800</bug_when>
    <thetext>Comment on attachment 450177
Patch

r=mews

(In reply to Aditya Keerthi from comment #5)
&gt; (In reply to Wenson Hsieh from comment #3)
&gt; &gt; Comment on attachment 450162 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=450162&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/Shared/WebFindOptions.cpp:31
&gt; &gt; &gt; +WebCore::FindOptions core(OptionSet&lt;FindOptions&gt; options)
&gt; &gt; 
&gt; &gt; Nit - should probably either add a few more WebCore:: in this function, or
&gt; &gt; add a `using namespace WebCore;` instead. I think right now it might be
&gt; &gt; getting the missing WebCore:: from earlier unified sources.
&gt; 
&gt; I see any missing WebCore:: here, the parameter is in the WebKit namespace.

LGTM — I missed that these were different types altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834708</commentid>
    <comment_count>7</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-27 14:29:22 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #6)
&gt; Comment on attachment 450177 [details]
&gt; Patch
&gt; 
&gt; r=mews
&gt; 
&gt; (In reply to Aditya Keerthi from comment #5)
&gt; &gt; (In reply to Wenson Hsieh from comment #3)
&gt; &gt; &gt; Comment on attachment 450162 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=450162&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/Shared/WebFindOptions.cpp:31
&gt; &gt; &gt; &gt; +WebCore::FindOptions core(OptionSet&lt;FindOptions&gt; options)
&gt; &gt; &gt; 
&gt; &gt; &gt; Nit - should probably either add a few more WebCore:: in this function, or
&gt; &gt; &gt; add a `using namespace WebCore;` instead. I think right now it might be
&gt; &gt; &gt; getting the missing WebCore:: from earlier unified sources.
&gt; &gt; 
&gt; &gt; I see any missing WebCore:: here, the parameter is in the WebKit namespace.
&gt; 
&gt; LGTM — I missed that these were different types altogether.

It&apos;s certainly confusing because the enum has the same name in both namespaces.

Filed https://bugs.webkit.org/show_bug.cgi?id=235735 to fix this in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834742</commentid>
    <comment_count>8</comment_count>
      <attachid>450191</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-27 15:37:03 -0800</bug_when>
    <thetext>Created attachment 450191
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834744</commentid>
    <comment_count>9</comment_count>
      <attachid>450191</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-27 15:38:25 -0800</bug_when>
    <thetext>Comment on attachment 450191
Patch for landing

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

&gt; Source/WebKit/Shared/WebPageCreationParameters.cpp:340
&gt; +    std::optional&lt;std::optional&lt;WebCore::DestinationColorSpace&gt;&gt; colorSpace;

Needed to fix unified-source builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834835</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-27 23:32:53 -0800</bug_when>
    <thetext>Committed r288732 (246525@main): &lt;https://commits.webkit.org/246525@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450191.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450162</attachid>
            <date>2022-01-27 11:55:58 -0800</date>
            <delta_ts>2022-01-27 14:17:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235691-20220127115551.patch</filename>
            <type>text/plain</type>
            <size>44790</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNkYzZhYjJhZDAyZjQ3
ZjE5MjhmMjhmMjY2NzVjYTM3YjJlZGU0Zi4uM2Y1YTVlYjViYjZhMWQ0NjgwZmYwNjI4YzVhOWVi
Njc2MGI0MWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTI3ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgV2Vi
Rm91bmRUZXh0UmFuZ2UgYW5kIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlciB0byBzdXBwb3J0
IHJlc3RvcmFibGUgZmluZCByZXN1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzU2OTEKKyAgICAgICAgcmRhcjovLzg4MTE3MTY3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJ
dGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5kSXRlcmF0b3JPcHRpb25zKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5oOgorICAgICAgICAoV2ViQ29y
ZTo6ZmluZEl0ZXJhdG9yT3B0aW9ucyk6CisKKyAgICAgICAgTW92ZWQgbWV0aG9kIGludG8gaGVh
ZGVyIHRvIHNoYXJlIGxvZ2ljLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OmZpbmRUZXh0TWF0Y2hlcyk6CisKKyAgICAgICAgQWRkZWQgYSB3YXkg
dG8gc3VwcHJlc3MgbWFya2luZyB0ZXh0IG1hdGNoZXMuCisKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKwogMjAyMi0wMS0yNSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRGlzYWJsZSBpbnB1dC1zZWN1cml0eSBDU1MgcHJvcGVydHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ODQyNmRiNzYzY2RmYTMzYmIwNWUzZjZkNGM0N2YwNzA0ZWRiZTg0Ny4uNzcyYjVlYjg0OTI5ZmM3
ZmVjMjhkYTcxZjllODU4OGMyMDI0NjkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NiBAQAorMjAy
Mi0wMS0yNyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW50cm9kdWNlIFdlYkZvdW5kVGV4dFJhbmdlIGFuZCBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xs
ZXIgdG8gc3VwcG9ydCByZXN0b3JhYmxlIGZpbmQgcmVzdWx0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NjkxCisgICAgICAgIHJkYXI6Ly84ODEx
NzE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRv
IGJldHRlciBzdXBwb3J0IHRoZSBfVUlUZXh0U2VhcmNoaW5nIHByb3RvY29sLCBXS1dlYlZpZXcg
bmVlZHMgdG8gYmUKKyAgICAgICAgYWJsZSB0byByZXN0b3JlIGZpbmQtaW4tcGFnZSByZXN1bHRz
IGZvdW5kIGluIG90aGVyIHZpZXdzIHdpdGggdGhlIHNhbWUKKyAgICAgICAgY29udGVudC4KKwor
ICAgICAgICBUaGUgZGVzaXJlZCBmdW5jdGlvbmFsaXR5IGlzIGFjaGlldmVkIHRocm91Z2ggdGhl
IHVzZSBvZiB0d28gbmV3IGludGVyZmFjZXM6CisgICAgICAgIFdlYkZvdW5kVGV4dFJhbmdlLCB3
aGljaCByZXByZXNlbnRzIGEgcmFuZ2Ugb2YgZm91bmQgdGV4dCwgYW5kCisgICAgICAgIFdlYkZv
dW5kVGV4dFJhbmdlQ29udHJvbGxlciwgd2hpY2ggd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgZmlu
ZGluZywKKyAgICAgICAgZGVjb3JhdGluZywgYW5kIHNjcm9sbGluZyB0byByYW5nZXMuCisKKyAg
ICAgICAgQSAiZm91bmQgdGV4dCByYW5nZSIgaXMgdW5pcXVlbHkgaWRlbnRpZmllZCBieSBhIGxv
Y2F0aW9uLCBsZW5ndGgsCisgICAgICAgIGZyYW1lIGlkZW50aWZpZXIsIGFuZCBvcmRlci4gVGhl
IGxvY2F0aW9uIGFuZCBsZW5ndGggcmVwcmVzZW50IGEKKyAgICAgICAgY2hhcmFjdGVyIHJhbmdl
IGluIGRvY3VtZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZyYW1lIGlkZW50aWZpZXIuCisgICAg
ICAgIFRoZSBvcmRlciByZXByZXNlbnRzIHRoZSByZWxhdGl2ZSBvcmRlcmluZyBiZXR3ZWVuIHJh
bmdlcyAtIGZvcgorICAgICAgICBleGFtcGxlLCByZXN1bHRzIGluIHRoZSBtYWluIGZyYW1lIGFy
ZSBvcmRlcmVkIGJlZm9yZSByZXN1bHRzIGluIGEKKyAgICAgICAgc3ViZnJhbWUuCisKKyAgICAg
ICAgVGhpcyBpcyB0aGUgZmlyc3QgaW4gYSBzZXJpZXMgb2YgcGF0Y2hlcyB0aGF0IGltcGxlbWVu
dHMgdGhlIGludGVyZmFjZS4KKyAgICAgICAgVGhlIGF2YWlsYWJsZSBtZXRob2RzIG9uIFdlYkZv
dW5kVGV4dFJhbmdlQ29udHJvbGxlciBtYXAgb25lLXRvLW9uZSB3aXRoCisgICAgICAgIHRoZSBf
VUlUZXh0U2VhcmNoaW5nIHByb3RvY29sLiBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGNyZWF0
aW9uIG9mCisgICAgICAgIHJlc3RvcmFibGUgZm91bmQgcmFuZ2VzLgorCisgICAgICAgICogU2Ny
aXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2g6CisKKyAgICAgICAgSW5jcmVhc2UgdW5p
ZmllZCBidWlsZCBmaWxlcyB0byAxMjAuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJGaW5kT3B0aW9ucy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZp
bmRPcHRpb25zLmguCisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJGaW5kT3B0aW9ucy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJGb3VuZFRleHRSYW5nZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlOjpvcGVyYXRvcj09IGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJGb3VuZFRleHRSYW5nZS5oOgorICAgICAgICAoV1RGOjpXZWJGb3VuZFRleHRSYW5nZUhh
c2g6Omhhc2gpOgorICAgICAgICAoV1RGOjpXZWJGb3VuZFRleHRSYW5nZUhhc2g6OmVxdWFsKToK
KyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlPjo6ZW1w
dHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpXZWJGb3VuZFRleHRS
YW5nZT46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
V2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZT46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBVbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojpj
b3JlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250
cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlQ29u
dHJvbGxlcjo6V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjpmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNo
ZXMpOgorCisgICAgICAgIFVzZSB0aGUgRnJhbWVUcmVlcydzIHVuaXF1ZU5hbWUgYXMgYSBmcmFt
ZSBpZGVudGlmaWVyIGZvciB0aGUgZm91bmQKKyAgICAgICAgdGV4dCByYW5nZS4gVGhlc2UgbmFt
ZXMgYXJlIGNvbnNpc3RlbnQgYWNyb3NzIHdlYiBjb250ZW50IHdpdGggdGhlCisgICAgICAgIHNh
bWUgbWFya3VwLgorCisgICAgICAgIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxl
cjo6ZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXI6OnNjcm9sbFRleHRSYW5nZVRvVmlzaWJsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjo6Y2xlYXJBbGxEZWNvcmF0ZWRG
b3VuZFRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6
OmRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZvdW5k
VGV4dFJhbmdlQ29udHJvbGxlcjo6ZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjo6d2lsbE1vdmVUb1BhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRpZE1vdmVUb1Bh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6Om1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRy
YXdSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VD
b250cm9sbGVyLmg6IEFkZGVkLgorCiAyMDIyLTAxLTI0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24gKHIyODY5MzYpOiBTZXNzaW9uU3RvcmFn
ZSBkYXRhIGlzIG5vdCBjbGVhcmVkIHdoZW4gZGVsZXRpbmcgd2Vic2l0ZSBkYXRhIGJ5IG1vZGlm
aWNhdGlvbiB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXgg
ZWE4YzNmMTAzNTcxNTQzZjRiZjc1OGIxYmIwNDk4ZjQxYjc0ZGU5Yy4uY2Y3MTQ5NWZmOWQyNDll
NWEzNWJhNWZhNGFlMjA4ZTliMGM1ZWFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmNwcApAQCAtMjQ3OCwxNCArMjQ3OCw2IEBAIFN0cmluZyBwbGFpblRleHRSZXBsYWNp
bmdOb0JyZWFrU3BhY2UoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlLCBUZXh0SXRlcmF0b3JCZWhh
CiAgICAgcmV0dXJuIHBsYWluVGV4dChyYW5nZSwgZGVmYXVsdEJlaGF2aW9ycywgaXNEaXNwbGF5
U3RyaW5nKS5yZXBsYWNlKG5vQnJlYWtTcGFjZSwgJyAnKTsKIH0KIAotc3RhdGljIGNvbnN0ZXhw
ciBUZXh0SXRlcmF0b3JCZWhhdmlvcnMgZmluZEl0ZXJhdG9yT3B0aW9ucyhGaW5kT3B0aW9ucyBv
cHRpb25zKQotewotICAgIFRleHRJdGVyYXRvckJlaGF2aW9ycyBpdGVyYXRvck9wdGlvbnMgeyBU
ZXh0SXRlcmF0b3JCZWhhdmlvcjo6RW50ZXJzVGV4dENvbnRyb2xzLCBUZXh0SXRlcmF0b3JCZWhh
dmlvcjo6Q2xpcHNUb0ZyYW1lQW5jZXN0b3JzLCBUZXh0SXRlcmF0b3JCZWhhdmlvcjo6RW50ZXJz
SW1hZ2VPdmVybGF5cyB9OwotICAgIGlmICghb3B0aW9ucy5jb250YWlucyhEb05vdFRyYXZlcnNl
RmxhdFRyZWUpKQotICAgICAgICBpdGVyYXRvck9wdGlvbnMuYWRkKFRleHRJdGVyYXRvckJlaGF2
aW9yOjpUcmF2ZXJzZXNGbGF0VHJlZSk7Ci0gICAgcmV0dXJuIGl0ZXJhdG9yT3B0aW9uczsKLX0K
LQogc3RhdGljIHZvaWQgZm9yRWFjaE1hdGNoKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSwgY29u
c3QgU3RyaW5nJiB0YXJnZXQsIEZpbmRPcHRpb25zIG9wdGlvbnMsIGNvbnN0IEZ1bmN0aW9uPGJv
b2woQ2hhcmFjdGVyUmFuZ2UpPiYgbWF0Y2gpCiB7CiAgICAgU2VhcmNoQnVmZmVyIGJ1ZmZlcih0
YXJnZXQsIG9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
SXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKaW5kZXgg
MTczYjA5ZDQ2YWQ5MzI5YzA0OGI3ZGU3MTU1ZjYzYTkwNGE3NWNlNi4uNWExMTViYmVhZmJjZDRl
ZTE3NGZiZTI1NDI0MjVmOTcwMjJmYzU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0SXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVy
YXRvci5oCkBAIC0yOTMsNiArMjkzLDE0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZExvb2tB
aGVhZCB7IHRydWUgfTsKIH07CiAKK2NvbnN0ZXhwciBUZXh0SXRlcmF0b3JCZWhhdmlvcnMgZmlu
ZEl0ZXJhdG9yT3B0aW9ucyhGaW5kT3B0aW9ucyBvcHRpb25zID0geyB9KQoreworICAgIFRleHRJ
dGVyYXRvckJlaGF2aW9ycyBpdGVyYXRvck9wdGlvbnMgeyBUZXh0SXRlcmF0b3JCZWhhdmlvcjo6
RW50ZXJzVGV4dENvbnRyb2xzLCBUZXh0SXRlcmF0b3JCZWhhdmlvcjo6Q2xpcHNUb0ZyYW1lQW5j
ZXN0b3JzLCBUZXh0SXRlcmF0b3JCZWhhdmlvcjo6RW50ZXJzSW1hZ2VPdmVybGF5cyB9OworICAg
IGlmICghb3B0aW9ucy5jb250YWlucyhEb05vdFRyYXZlcnNlRmxhdFRyZWUpKQorICAgICAgICBp
dGVyYXRvck9wdGlvbnMuYWRkKFRleHRJdGVyYXRvckJlaGF2aW9yOjpUcmF2ZXJzZXNGbGF0VHJl
ZSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yT3B0aW9uczsKK30KKwogaW5saW5lIENoYXJhY3RlclJh
bmdlIGNoYXJhY3RlclJhbmdlKGNvbnN0IEJvdW5kYXJ5UG9pbnQmIHN0YXJ0LCBjb25zdCBTaW1w
bGVSYW5nZSYgcmFuZ2UsIFRleHRJdGVyYXRvckJlaGF2aW9ycyBiZWhhdmlvcnMpCiB7CiAgICAg
cmV0dXJuIHsgY2hhcmFjdGVyQ291bnQoeyBzdGFydCwgcmFuZ2Uuc3RhcnQgfSwgYmVoYXZpb3Jz
KSwgY2hhcmFjdGVyQ291bnQocmFuZ2UsIGJlaGF2aW9ycykgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmlu
ZGV4IGM4ODFiMjZiYTI4ZGQ1ODdlMTdmOGViMzg5ZDQyNTBiNDA4OTFmZjcuLjQxNWVhNjEzNDVm
NzcwMTRlZDcxM2M2Y2Q5NzM2NjI4Y2U3MmU2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNzY1
LDE0ICs3NjUsMTQgQEAgYm9vbCBQYWdlOjpmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0
LCBGaW5kT3B0aW9ucyBvcHRpb25zLCBEaWRXcmFwKiBkaWRXcmEKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWF1dG8gUGFnZTo6ZmluZFRleHRNYXRjaGVzKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBG
aW5kT3B0aW9ucyBvcHRpb25zLCB1bnNpZ25lZCBsaW1pdCkgLT4gTWF0Y2hpbmdSYW5nZXMKK2F1
dG8gUGFnZTo6ZmluZFRleHRNYXRjaGVzKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBGaW5kT3B0aW9u
cyBvcHRpb25zLCB1bnNpZ25lZCBsaW1pdCwgYm9vbCBtYXJrTWF0Y2hlcykgLT4gTWF0Y2hpbmdS
YW5nZXMKIHsKICAgICBNYXRjaGluZ1JhbmdlcyByZXN1bHQ7CiAKICAgICBGcmFtZSogZnJhbWUg
PSAmbWFpbkZyYW1lKCk7CiAgICAgRnJhbWUqIGZyYW1lV2l0aFNlbGVjdGlvbiA9IG51bGxwdHI7
CiAgICAgZG8gewotICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY291bnRNYXRjaGVzRm9yVGV4dCh0
YXJnZXQsIHsgfSwgb3B0aW9ucywgbGltaXQgPyAobGltaXQgLSByZXN1bHQucmFuZ2VzLnNpemUo
KSkgOiAwLCB0cnVlLCAmcmVzdWx0LnJhbmdlcyk7CisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5j
b3VudE1hdGNoZXNGb3JUZXh0KHRhcmdldCwgeyB9LCBvcHRpb25zLCBsaW1pdCA/IChsaW1pdCAt
IHJlc3VsdC5yYW5nZXMuc2l6ZSgpKSA6IDAsIG1hcmtNYXRjaGVzLCAmcmVzdWx0LnJhbmdlcyk7
CiAgICAgICAgIGlmIChmcmFtZS0+c2VsZWN0aW9uKCkuaXNSYW5nZSgpKQogICAgICAgICAgICAg
ZnJhbWVXaXRoU2VsZWN0aW9uID0gZnJhbWU7CiAgICAgICAgIGZyYW1lID0gaW5jcmVtZW50RnJh
bWUoZnJhbWUsIHRydWUsIENhbldyYXA6Ok5vKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYmU3ZjgxMzkw
NDgyYWI5MTg1YjIwMTY4OWNkMjQ5MTY1ZTU1MWZkZi4uZTU0OTJlY2YyMjUzNDExNWFlNmU5NDlm
MTZmZGU2NTc0Yzk4MzEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTM5NCw3ICszOTQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGludCBpbmRleEZvclNlbGVjdGlvbiB7IDAgfTsgLy8gRklYTUU6IENvbnNp
ZGVyIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IG9yIHVuc2lnbmVkIGZvciB0aGlzIGluc3RlYWQu
CiAgICAgfTsKICAgICBzdGF0aWMgY29uc3RleHByIGludCBOb01hdGNoQWZ0ZXJVc2VyU2VsZWN0
aW9uID0gLTE7Ci0gICAgV0VCQ09SRV9FWFBPUlQgTWF0Y2hpbmdSYW5nZXMgZmluZFRleHRNYXRj
aGVzKGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhDb3VudCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgTWF0Y2hpbmdSYW5nZXMgZmluZFRleHRNYXRjaGVzKGNvbnN0IFN0cmlu
ZyYsIEZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhDb3VudCwgYm9vbCBtYXJrTWF0Y2hlcyA9IHRy
dWUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNv
dXJjZXMuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2Vz
LnNoCmluZGV4IDJhM2Q2YjVlZWIyNDE0MDFjODBlYTNiZWQ4MjM4MmQwMzU2NTIzNjQuLmRlZmQ5
NjkzMTU3NzBjZjU3YmNiNmFlZTQyN2FmNGNiNmNjYmJiZjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaApAQCAtMTQsNyArMTQsNyBA
QCBpZiBbIC16ICIke0JVSUxEX1NDUklQVFNfRElSfSIgXTsgdGhlbgogICAgIGZpCiBmaQogCi1V
bmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTExNQorVW5pZmllZFNvdXJjZUNwcEZpbGVDb3VudD0x
MjAKIFVuaWZpZWRTb3VyY2VNbUZpbGVDb3VudD04MAogCiBpZiBbICQjIC1lcSAwIF07IHRoZW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGNhMzdhY2JkNWM1
YWEyODAyM2E5M2Q4ZDQxOGNjMDJkOTI1Yjk5NDUuLjQwOTJlZDBlNTAwZjg1MGNlODMyM2Q3NzM5
NjJiYTlkZmE2NTlkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtODY1LDYgKzg2NSw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAg
ICAnV2ViS2l0OjpDYWxsRG93bmxvYWREaWRTdGFydCc6IFsnIkRvd25sb2FkTWFuYWdlci5oIidd
LAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJzogWyciQ29udGVudFdv
cmxkU2hhcmVkLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRS
ZXF1ZXN0JzogWyciRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oIiddLAorICAgICAgICAnV2ViS2l0
OjpGaW5kRGVjb3JhdGlvblN0eWxlJzogWyciV2ViRmluZE9wdGlvbnMuaCInXSwKICAgICAgICAg
J1dlYktpdDo6RmluZE9wdGlvbnMnOiBbJyJXZWJGaW5kT3B0aW9ucy5oIiddLAogICAgICAgICAn
V2ViS2l0OjpGb3JtU3VibWl0TGlzdGVuZXJJZGVudGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVz
LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyU3RhdGUnOiBbJyJHZXN0
dXJlVHlwZXMuaCInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZpbmRP
cHRpb25zLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZpbmRPcHRpb25zLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kOTU3MDAwZTc3NjI0MzA5MTc0YWNlMDg5M2NjMGZiZDVhYzQ1ZTAxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRmluZE9wdGlvbnMuY3BwCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViRmluZE9wdGlvbnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvcmU6OkZpbmRP
cHRpb25zIGNvcmUoT3B0aW9uU2V0PEZpbmRPcHRpb25zPiBvcHRpb25zKQoreworICAgIFdlYkNv
cmU6OkZpbmRPcHRpb25zIHJlc3VsdDsKKyAgICBpZiAob3B0aW9ucy5jb250YWlucyhGaW5kT3B0
aW9uczo6Q2FzZUluc2Vuc2l0aXZlKSkKKyAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpDYXNl
SW5zZW5zaXRpdmUpOworICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25zOjpBdFdv
cmRTdGFydHMpKQorICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkF0V29yZFN0YXJ0cyk7Cisg
ICAgaWYgKG9wdGlvbnMuY29udGFpbnMoRmluZE9wdGlvbnM6OlRyZWF0TWVkaWFsQ2FwaXRhbEFz
V29yZFN0YXJ0KSkKKyAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpUcmVhdE1lZGlhbENhcGl0
YWxBc1dvcmRTdGFydCk7CisgICAgaWYgKG9wdGlvbnMuY29udGFpbnMoRmluZE9wdGlvbnM6OkJh
Y2t3YXJkcykpCisgICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6QmFja3dhcmRzKTsKKyAgICBp
ZiAob3B0aW9ucy5jb250YWlucyhGaW5kT3B0aW9uczo6V3JhcEFyb3VuZCkpCisgICAgICAgIHJl
c3VsdC5hZGQoV2ViQ29yZTo6V3JhcEFyb3VuZCk7CisgICAgaWYgKG9wdGlvbnMuY29udGFpbnMo
RmluZE9wdGlvbnM6OkF0V29yZEVuZHMpKQorICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkF0
V29yZEVuZHMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRmluZE9wdGlvbnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZpbmRPcHRpb25zLmgKaW5kZXggYTc3YjY0N2M4M2Y4ODZj
YjgwM2MxNjlhZjZjZTIzOWM5MTc3NTc3Zi4uMmMyYjA2OGRlMWFiN2UyZWZiYTVjMWFiYjNjNDc3
ZTVlM2M5ZDE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRmluZE9wdGlv
bnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJGaW5kT3B0aW9ucy5oCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9GaW5kT3B0aW9u
cy5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNDMsNiArNDQsMTQgQEAgZW51bSBjbGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQxNl90IHsKICAg
ICBBdFdvcmRFbmRzID0gMSA8PCAxMCwKIH07CiAKK2VudW0gY2xhc3MgRmluZERlY29yYXRpb25T
dHlsZSA6IHVpbnQ4X3QgeworICAgIE5vcm1hbCwKKyAgICBGb3VuZCwKKyAgICBIaWdobGlnaHRl
ZCwKK307CisKK1dlYkNvcmU6OkZpbmRPcHRpb25zIGNvcmUoT3B0aW9uU2V0PEZpbmRPcHRpb25z
Pik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTY0LDQg
KzczLDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpGaW5kT3B0aW9u
cz4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6
RmluZERlY29yYXRpb25TdHlsZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgICAgIFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZSwKKyAgICAgICAgV2ViS2l0OjpGaW5k
RGVjb3JhdGlvblN0eWxlOjpOb3JtYWwsCisgICAgICAgIFdlYktpdDo6RmluZERlY29yYXRpb25T
dHlsZTo6Rm91bmQsCisgICAgICAgIFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZTo6SGlnaGxp
Z2h0ZWQKKyAgICA+OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJGb3VuZFRleHRSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJGb3VuZFRleHRSYW5nZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q1OWI4ODI5Y2E4ZDIxMzAz
MWE4ZTc3OGZmZGE0YTZiNDJiYWE5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkZvdW5kVGV4dFJhbmdlLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZvdW5kVGV4dFJhbmdlLmgiCisK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2Jvb2wgV2ViRm91bmRUZXh0UmFuZ2U6Om9wZXJhdG9yPT0oY29uc3QgV2ViRm91bmRUZXh0
UmFuZ2UmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiBsb2NhdGlvbiA9PSBvdGhlci5sb2Nh
dGlvbgorICAgICAgICAmJiBsZW5ndGggPT0gb3RoZXIubGVuZ3RoCisgICAgICAgICYmIGZyYW1l
SWRlbnRpZmllciA9PSBvdGhlci5mcmFtZUlkZW50aWZpZXIKKyAgICAgICAgJiYgb3JkZXIgPT0g
b3RoZXIub3JkZXI7Cit9CisKK3ZvaWQgV2ViRm91bmRUZXh0UmFuZ2U6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBsb2NhdGlvbjsKKyAgICBl
bmNvZGVyIDw8IGxlbmd0aDsKKyAgICBlbmNvZGVyIDw8IGZyYW1lSWRlbnRpZmllcjsKKyAgICBl
bmNvZGVyIDw8IG9yZGVyOworfQorCitib29sIFdlYkZvdW5kVGV4dFJhbmdlOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJGb3VuZFRleHRSYW5nZSYgcmVzdWx0KQoreworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmxvY2F0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubGVuZ3RoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZnJhbWVJZGVudGlm
aWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQub3JkZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJGb3VuZFRleHRSYW5nZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRm91bmRU
ZXh0UmFuZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzUxMzRiMTQ4YmM4ZjcwN2M4ZGM5NDUwODg2NWNkYzY5
YTlhNGE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRm91bmRU
ZXh0UmFuZ2UuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitzdHJ1Y3QgV2ViRm91bmRUZXh0UmFuZ2UgeworICAgIHVpbnQ2NF90IGxvY2F0aW9uIHsgMCB9
OworICAgIHVpbnQ2NF90IGxlbmd0aCB7IDAgfTsKKyAgICBTdHJpbmcgZnJhbWVJZGVudGlmaWVy
OworICAgIHVpbnQ2NF90IG9yZGVyIHsgMCB9OworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFdlYkZvdW5kVGV4dFJhbmdlJiBvdGhlcikgY29uc3Q7CisKKyAgICB2b2lkIGVuY29kZShJUEM6
OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKElQQzo6RGVjb2RlciYsIFdlYkZvdW5kVGV4dFJhbmdlJik7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworbmFtZXNwYWNlIFdURiB7CisKK3N0cnVjdCBXZWJGb3VuZFRleHRSYW5n
ZUhhc2ggeworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYktpdDo6V2ViRm91bmRU
ZXh0UmFuZ2UmIHJhbmdlKSB7IHJldHVybiBwYWlySW50SGFzaChyYW5nZS5sb2NhdGlvbiwgcmFu
Z2UubGVuZ3RoKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6V2ViRm91
bmRUZXh0UmFuZ2UmIGEsIGNvbnN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UmIGIpIHsgcmV0
dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gdHJ1ZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2Vi
S2l0OjpXZWJGb3VuZFRleHRSYW5nZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJLaXQ6OldlYkZv
dW5kVGV4dFJhbmdlPiB7CisgICAgc3RhdGljIFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UgZW1w
dHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVs
ZXRlZFZhbHVlKFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UmIHJhbmdlKSB7IHJhbmdlID0geyB9
OyB9CisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViS2l0OjpXZWJGb3Vu
ZFRleHRSYW5nZSYgcmFuZ2UpIHsgcmV0dXJuIHJhbmdlID09IFdlYktpdDo6V2ViRm91bmRUZXh0
UmFuZ2UgeyB9OyB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6
OldlYkZvdW5kVGV4dFJhbmdlPiA6IFdlYkZvdW5kVGV4dFJhbmdlSGFzaCB7IH07CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CmluZGV4IGM1Yzg1NmY5Y2Q2OTQxZWYyZDRmZGFjMmY1Y2QxMzg0YTFkZTljZTguLmRm
NDdjNzg2YzhkZWY2MjRmNDNmYzk0NmRkYzgyZDM0MzIyOTk5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAt
MjU1LDYgKzI1NSw4IEBAIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCiBTaGFyZWQv
V2ViRXJyb3JzLmNwcAogU2hhcmVkL1dlYkV2ZW50LmNwcAogU2hhcmVkL1dlYkV2ZW50Q29udmVy
c2lvbi5jcHAKK1NoYXJlZC9XZWJGaW5kT3B0aW9ucy5jcHAKK1NoYXJlZC9XZWJGb3VuZFRleHRS
YW5nZS5jcHAKIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAogU2hhcmVkL1dlYkhp
dFRlc3RSZXN1bHREYXRhLmNwcAogU2hhcmVkL1dlYkltYWdlLmNwcApAQCAtODI4LDYgKzgzMCw3
IEBAIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250ZXh0TWVudS5jcHAKIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJDb29raWVDYWNoZS5jcHAKIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
Y3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRG9jdW1lbnRMb2FkZXIuY3BwCitXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIEBuby11bmlmeQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMWI5
ZDk3YzM4YzQxMmE3Y2M4ZDNmZmM0YTUyY2E1Y2U2NTY3NTVmMi4uNjJjMjJlZTJiYzczNzgyYmQ0
NTFiNTA3ODU3MDc1ZTM2YTZkOGYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VbmlmaWVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yMSw4ICsyMSwxMyBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
MTEyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTQuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291
cmNlcy9VbmlmaWVkU291cmNlMTE1LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExNi5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1Vu
aWZpZWRTb3VyY2UxMTcuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE4LmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNv
dXJjZTExOS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQv
dW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMi1tbS5tbQogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEy
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTEyMC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMy1tbS5tbQog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJj
ZXMvVW5pZmllZFNvdXJjZTEzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTE0LW1tLm1tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTE1Yzg4
NGM4NmZlY2JjYTg1ZjQxZGI2YTFkZTYwOTIyMDc1NmEzLi41MjE5OTRhODM5ZDNlZmYyM2IzMmI3
YjYwZGU5NzY0MDA0MzBkYzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE5NzgsMTUgKzE5NzgsMjIgQEAKIAkJRTRENTREMDQyMUYx
RDcyRDAwN0UzQzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MEMxRjkz
MjFGMEI5NkUwMDUzMDcxOCAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
SU9TLmggKi87IH07CiAJCUU0RTU3RjZCMjFBODNCMTIwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRy
ZWVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NEU1N0Y2QTIxQTgzQjExMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovOyB9Owog
CQlFNTA2MjA5MjI1NDIxMDIwMDBDNDMwOTEgLyogQ29udGFjdHNVSVNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUwNjIwOTEyNTQyMTAyMDAwQzQz
MDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLzsgfTsKKwkJRTUyMjdEODQyN0ExMTI2MTAwOEVBQjU3
IC8qIFdlYkZvdW5kVGV4dFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNTIyN0Q4MjI3QTExMjMxMDA4RUFCNTcgLyogV2ViRm91bmRUZXh0UmFu
Z2UuaCAqLzsgfTsKIAkJRTUyQ0Y1NTIyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlci5oICovOyB9OwogCQlFNTVDRDFGNTI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVD
aG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NTVDRDFGMzI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVDaG9vc2VyLmggKi87IH07CiAJ
CUU1NUNEMjAwMjREMDhEOEYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0QxRkMyNEQwODgwQjAw
NDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmggKi87IH07CiAJCUU1NUNEMjAzMjREMDlGMUYw
MDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0QyMDEyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRh
dGVUaW1lUGlja2VyTWFjLmggKi87IH07CisJCUU1NUNGRDRFMjc5RDMxRTUwMDJGMTAyMCAvKiBX
ZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU1NUNGRDRDMjc5RDMxQzMwMDJGMTAyMCAvKiBXZWJGb3VuZFRl
eHRSYW5nZUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJRTU2OEI5MUYyMEEzQUIyRjAwRTNDODU2IC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oICovOyB9OwogCQlFNTY4QjkyMjIwQTNBQzZBMDBF
M0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTY4QjkyMDIwQTNBQzZBMDBFM0M4
NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggKi87IH07CiAJCUU1OTZE
RDZBMjUxRTcxRDQwMEMyNzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAv
KiBXS0NvbnRhY3RQaWNrZXIuaCAqLzsgfTsKIAkJRTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCRUY2ODAyMTMwQzQ3RjAwRjMxMTExIC8qIFdl
YkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oICovOyB9OwogCQlFNUNCMDdEQzIwRTE2
NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNCMDdEQTIwRTE2NzhGMDAyMkMxODMgLyogV0tG
b3JtQ29sb3JDb250cm9sLmggKi87IH07CisJCUU1Q0JBNzY0MjdBMzE4RTEwMERGNzg1OCAvKiBV
bmlmaWVkU291cmNlMTIwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU1Q0JBNzVGMjdBMzE4NzgwMERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTIwLmNw
cCAqLzsgfTsKKwkJRTVDQkE3NjUyN0EzMThFMTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTgu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVDQkE3
NjEyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTguY3BwICovOyB9OworCQlFNUNC
QTc2NjI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNCQTc2MzI3QTMxODdCMDBERjc4
NTggLyogVW5pZmllZFNvdXJjZTExNi5jcHAgKi87IH07CisJCUU1Q0JBNzY3MjdBMzE4RTEwMERG
Nzg1OCAvKiBVbmlmaWVkU291cmNlMTE5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0JBNzYwMjdBMzE4NzkwMERGNzg1OCAvKiBVbmlmaWVkU291
cmNlMTE5LmNwcCAqLzsgfTsKKwkJRTVDQkE3NjgyN0EzMThFMTAwREY3ODU4IC8qIFVuaWZpZWRT
b3VyY2UxMTcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTVDQkE3NjIyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTcuY3BwICovOyB9
OwogCQlFNURFRkE2ODI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1REVGQTY3MjZGOEY0MjYwMEFC
NjhEQiAvKiBQaG90b3NVSVNQSS5oICovOyB9OwogCQlFRDgyQTdGMjEyOEM2RkFGMDA0NDc3QjMg
LyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNEOTAwODVFNzRGIC8qIFdLQnVuZGxlUGFnZU92
ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGNDA5QkExODFFNkU2NEJDMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MDlCQTE3MUU2
RTY0QjMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02Mzk3LDggKzY0MDQsMTEgQEAK
IAkJRTRFNTdGNjgyMUE4M0IwMzAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXllclRyZWVOb2Rl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2QTIxQTgzQjExMDAzNDVG
M0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVMYXllclRyZWVOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU1MDYyMDkxMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbnRhY3RzVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUyMjdE
ODIyN0ExMTIzMTAwOEVBQjU3IC8qIFdlYkZvdW5kVGV4dFJhbmdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkZvdW5kVGV4dFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1MjI3
RDgzMjdBMTEyMzEwMDhFQUI1NyAvKiBXZWJGb3VuZFRleHRSYW5nZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJGb3VuZFRleHRSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MkNGNTUxMjBBMzVDM0EwMERBREEyNyAvKiBXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUz
MDlCN0QyN0EyODcyRjAwQjEwNjMxIC8qIFdlYkZpbmRPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkZpbmRPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTU0QTE0Q0UyMEZDRkI3QjAwN0UxM0Q4IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTVDRDFGMzI0Q0Y3NDdEMDA0MkRC
OUMgLyogV2ViRGF0ZVRpbWVDaG9vc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGVUaW1lQ2hv
b3Nlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTVDRDFGNDI0Q0Y3NDdEMDA0
MkRCOUMgLyogV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRh
dGVUaW1lQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDA2LDYg
KzY0MTYsOCBAQAogCQlFNTVDRDFGRDI0RDA4ODBCMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNr
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0ZVRpbWVQaWNrZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0
ZVRpbWVQaWNrZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU1Q0QyMDIyNEQwOUYxRjAwNDJEQjlDIC8q
IFdlYkRhdGVUaW1lUGlja2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRGF0ZVRp
bWVQaWNrZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1NUNGRDRDMjc5
RDMxQzMwMDJGMTAyMCAvKiBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUU1NUNGRDREMjc5RDMxQzMwMDJGMTAyMCAvKiBXZWJGb3VuZFRleHRSYW5nZUNv
bnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRm91bmRUZXh0UmFuZ2VDb250cm9s
bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU2OEI5MUUyMEEzQUIyRjAw
RTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTU2OEI5MjAyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bk1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJv
cGRvd25NYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU2OEI5MjEyMEEzQUM2
QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQxNSw2ICs2NDI3LDExIEBACiAJCUU1QkVGNjgx
MjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd25JT1MubW07IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUNCMDdEQTIwRTE2
NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRm9y
bUNvbG9yQ29udHJvbC5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUNCMDdEQjIwRTE2NzhGMDAyMkMxODMgLyog
V0tGb3JtQ29sb3JDb250cm9sLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGb3JtQ29sb3JD
b250cm9sLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVDQkE3NUYyN0EzMTg3ODAwREY3ODU4IC8qIFVuaWZp
ZWRTb3VyY2UxMjAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEyMC5jcHA7
IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291
cmNlMTIwLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUU1Q0JB
NzYwMjdBMzE4NzkwMERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTE5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFVuaWZpZWRTb3VyY2UxMTkuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktp
dC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExOS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQlFNUNCQTc2MTI3QTMxODc5MDBERjc4NTggLyogVW5pZmll
ZFNvdXJjZTExOC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTE4LmNwcDsg
cGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3Vy
Y2UxMTguY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTVDQkE3
NjIyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTcuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gVW5pZmllZFNvdXJjZTExNy5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE3LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCUU1Q0JBNzYzMjdBMzE4N0IwMERGNzg1OCAvKiBVbmlmaWVk
U291cmNlMTE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTYuY3BwOyBw
YXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJj
ZTExNi5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlFNURFRkE2
NzI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGhvdG9z
VUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwRDMxMkQyNzVBRTEzMzAw
ODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5wbGlzdC54bWw7IHBhdGggPSBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLm1hYy5wbGlz
dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwRDMxMkUyNzVBRTEzMzAwODYzRDhG
IC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5w
bGlzdC54bWw7IHBhdGggPSBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLmlvcy5wbGlzdDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNTcsNyArNzI3NCwxMCBAQAogCQkJCUJDMDMy
REFGMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudC5oICovLAogCQkJCUJDMDMyREIwMTBGNDM4
MEYwMDU4QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24uY3BwICovLAogCQkJCUJDMDMyREIxMTBG
NDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24uaCAqLywKKwkJCQlFNTMwOUI3RDI3
QTI4NzJGMDBCMTA2MzEgLyogV2ViRmluZE9wdGlvbnMuY3BwICovLAogCQkJCTFBOTBDMUVEMTI2
NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9ucy5oICovLAorCQkJCUU1MjI3RDgzMjdBMTEy
MzEwMDhFQUI1NyAvKiBXZWJGb3VuZFRleHRSYW5nZS5jcHAgKi8sCisJCQkJRTUyMjdEODIyN0Ex
MTIzMTAwOEVBQjU3IC8qIFdlYkZvdW5kVGV4dFJhbmdlLmggKi8sCiAJCQkJQkMwRTYwNzIxMkQ2
QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwICovLAogCQkJCUJDMEU2
MDcxMTJENkJDMjAwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8sCiAJCQkJ
OTNBODhCMzQxQkM2RUFCQTAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmNwcCAqLywK
QEAgLTgyNjYsNiArODI4NiwxMSBAQAogCQkJCTNDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBV
bmlmaWVkU291cmNlMTEzLmNwcCAqLywKIAkJCQk0Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExNC5jcHAgKi8sCiAJCQkJNUNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8q
IFVuaWZpZWRTb3VyY2UxMTUuY3BwICovLAorCQkJCUU1Q0JBNzYzMjdBMzE4N0IwMERGNzg1OCAv
KiBVbmlmaWVkU291cmNlMTE2LmNwcCAqLywKKwkJCQlFNUNCQTc2MjI3QTMxODc5MDBERjc4NTgg
LyogVW5pZmllZFNvdXJjZTExNy5jcHAgKi8sCisJCQkJRTVDQkE3NjEyN0EzMTg3OTAwREY3ODU4
IC8qIFVuaWZpZWRTb3VyY2UxMTguY3BwICovLAorCQkJCUU1Q0JBNzYwMjdBMzE4NzkwMERGNzg1
OCAvKiBVbmlmaWVkU291cmNlMTE5LmNwcCAqLywKKwkJCQlFNUNCQTc1RjI3QTMxODc4MDBERjc4
NTggLyogVW5pZmllZFNvdXJjZTEyMC5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJ1bmlmaWVk
LXNvdXJjZXMiOwogCQkJcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3Vy
Y2VzIjsKQEAgLTEwNzk4LDYgKzEwODIzLDggQEAKIAkJCQk1QzdGQjQ2RjIxRTk3QzBDMDA5RTMy
NDEgLyogV2ViQ29va2llSmFyLmggKi8sCiAJCQkJMUE1QjFDNTIxODk4N0VERjAwNEZDRjlCIC8q
IFdlYkRvY3VtZW50TG9hZGVyLmNwcCAqLywKIAkJCQkxQTVCMUM1MzE4OTg3RURGMDA0RkNGOUIg
LyogV2ViRG9jdW1lbnRMb2FkZXIuaCAqLywKKwkJCQlFNTVDRkQ0RDI3OUQzMUMzMDAyRjEwMjAg
LyogV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmNwcCAqLywKKwkJCQlFNTVDRkQ0QzI3OUQz
MUMzMDAyRjEwMjAgLyogV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmggKi8sCiAJCQkJQkMx
MTFBREMxMTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCAqLywKIAkJCQlCQzAzMkQ4OTEw
RjQzN0EwMDA1OEMxNUEgLyogV2ViRnJhbWUuaCAqLywKIAkJCQlCQzg1N0Y4NDEyQjgyRDBCMDBF
REVCMkUgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwICovLApAQCAtMTM0NDQsNiAr
MTM0NzEsOCBAQAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZv
cm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAv
KiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUU1
MjI3RDg0MjdBMTEyNjEwMDhFQUI1NyAvKiBXZWJGb3VuZFRleHRSYW5nZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTU1Q0ZENEUyNzlEMzFFNTAwMkYxMDIwIC8qIFdlYkZvdW5kVGV4dFJhbmdlQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEOEQxMEY0MzdBMDAwNThDMTVBIC8q
IFdlYkZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ3RjEwRjQzNzhEMDA1OEMxNUEg
LyogV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTFGMkNCMTIx
QjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAq
LywKQEAgLTE1NzM4LDYgKzE1NzY3LDExIEBACiAJCQkJM0NBRUNCNjYyNzQ2NUFFNDAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNENBRUNCNjYyNzQ2
NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNBRUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRTVDQkE3NjYyN0EzMThFMTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTYu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTVDQkE3NjgyN0EzMThFMTAwREY3ODU4IC8qIFVuaWZp
ZWRTb3VyY2UxMTcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTVDQkE3NjUyN0EzMThFMTAwREY3
ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTVDQkE3Njcy
N0EzMThFMTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRTVDQkE3NjQyN0EzMThFMTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMjAuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTM4QTFGQzAyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJ
ZGlvbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAppbmRleCBlMjk1Mjg4
MDNiM2M5MjNiMDA2ZTFjNDBiYWFmZjdmODk4YTA5YTJjLi5jNTNmM2ViZjU5ZDNlOWU3NTYyNGM1
MzkwMjJjMTUyYThlNDU5MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC01NywyNCArNTcsNiBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotV2ViQ29yZTo6RmluZE9wdGlv
bnMgY29yZShPcHRpb25TZXQ8RmluZE9wdGlvbnM+IG9wdGlvbnMpCi17Ci0gICAgV2ViQ29yZTo6
RmluZE9wdGlvbnMgcmVzdWx0OwotICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25z
OjpDYXNlSW5zZW5zaXRpdmUpKQotICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkNhc2VJbnNl
bnNpdGl2ZSk7Ci0gICAgaWYgKG9wdGlvbnMuY29udGFpbnMoRmluZE9wdGlvbnM6OkF0V29yZFN0
YXJ0cykpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6QXRXb3JkU3RhcnRzKTsKLSAgICBp
ZiAob3B0aW9ucy5jb250YWlucyhGaW5kT3B0aW9uczo6VHJlYXRNZWRpYWxDYXBpdGFsQXNXb3Jk
U3RhcnQpKQotICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OlRyZWF0TWVkaWFsQ2FwaXRhbEFz
V29yZFN0YXJ0KTsKLSAgICBpZiAob3B0aW9ucy5jb250YWlucyhGaW5kT3B0aW9uczo6QmFja3dh
cmRzKSkKLSAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpCYWNrd2FyZHMpOwotICAgIGlmIChv
cHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25zOjpXcmFwQXJvdW5kKSkKLSAgICAgICAgcmVzdWx0
LmFkZChXZWJDb3JlOjpXcmFwQXJvdW5kKTsKLSAgICBpZiAob3B0aW9ucy5jb250YWlucyhGaW5k
T3B0aW9uczo6QXRXb3JkRW5kcykpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6QXRXb3Jk
RW5kcyk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogRmluZENvbnRyb2xsZXI6OkZpbmRDb250
cm9sbGVyKFdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgOiBtX3dlYlBhZ2Uod2ViUGFnZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5oCmlu
ZGV4IGY3ODgwNGM0ODZiZmExNzc4MTI0ZDYwNDBlYWQ1MWQ5ZDRkMDVjMjYuLmVlYTU4NjhiZTM1
YTc5YWUzZTRmNWQyNDA5NWQ5NWFhYzBlNGNhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaApAQCAtMTE4LDYgKzExOCw0IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIH07CiAKLVdlYkNvcmU6OkZpbmRPcHRpb25zIGNvcmUoT3B0aW9uU2V0
PEZpbmRPcHRpb25zPik7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZvdW5kVGV4dFJhbmdl
Q29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U5M2FiZWM4ZTYwYmNjNWExODAxZTZkNDMyZTE2
MWM4ODdiM2U2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxMjUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRm91bmRUZXh0
UmFuZ2VDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9DaGFyYWN0ZXJSYW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0VkaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
T3ZlcmxheUNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2ltcGxlUmFuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1RleHRJdGVyYXRvci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRm91bmRUZXh0UmFu
Z2VDb250cm9sbGVyOjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIoV2ViUGFnZSogd2ViUGFn
ZSkKKyAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQoreworfQorCit2b2lkIFdlYkZvdW5kVGV4dFJh
bmdlQ29udHJvbGxlcjo6ZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+IG9wdGlvbnMsIHVpbnQzMl90IG1heE1h
dGNoQ291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkZvdW5kVGV4dFJhbmdl
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlc3VsdCA9IG1fd2ViUGFn
ZS0+Y29yZVBhZ2UoKS0+ZmluZFRleHRNYXRjaGVzKHN0cmluZywgY29yZShvcHRpb25zKSwgbWF4
TWF0Y2hDb3VudCwgZmFsc2UpOworICAgIFZlY3RvcjxXZWJDb3JlOjpTaW1wbGVSYW5nZT4gZmlu
ZE1hdGNoZXMgPSBXVEZNb3ZlKHJlc3VsdC5yYW5nZXMpOworCisgICAgU3RyaW5nIGZyYW1lTmFt
ZTsKKyAgICB1aW50NjRfdCBvcmRlciA9IDA7CisgICAgVmVjdG9yPFdlYkZvdW5kVGV4dFJhbmdl
PiBmb3VuZFRleHRSYW5nZXM7CisgICAgZm9yIChhdXRvJiBzaW1wbGVSYW5nZSA6IGZpbmRNYXRj
aGVzKSB7CisgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gc2ltcGxlUmFuZ2Uuc3RhcnRDb250YWlu
ZXIoKS5kb2N1bWVudCgpOworCisgICAgICAgIGF1dG8qIGVsZW1lbnQgPSBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQoKTsKKyAgICAgICAgaWYgKCFlbGVtZW50KQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIFN0cmluZyBjdXJyZW50RnJhbWVOYW1lID0gZG9jdW1lbnQuZnJhbWUoKS0+
dHJlZSgpLnVuaXF1ZU5hbWUoKTsKKyAgICAgICAgaWYgKGZyYW1lTmFtZSAhPSBjdXJyZW50RnJh
bWVOYW1lKSB7CisgICAgICAgICAgICBmcmFtZU5hbWUgPSBjdXJyZW50RnJhbWVOYW1lOworICAg
ICAgICAgICAgb3JkZXIrKzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgZ2V0IHRoZSBjaGFyYWN0ZXIgcmFuZ2VzIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIFNpbXBs
ZVJhbmdlcyB0byBhdm9pZCBhZGRpdGlvbmFsIHRyYXZlcnNhbHMuCisgICAgICAgIGF1dG8gcmFu
Z2UgPSBjaGFyYWN0ZXJSYW5nZShtYWtlQm91bmRhcnlQb2ludEJlZm9yZU5vZGVDb250ZW50cygq
ZWxlbWVudCksIHNpbXBsZVJhbmdlLCBXZWJDb3JlOjpmaW5kSXRlcmF0b3JPcHRpb25zKCkpOwor
ICAgICAgICBhdXRvIGZvdW5kVGV4dFJhbmdlID0gV2ViRm91bmRUZXh0UmFuZ2UgeyByYW5nZS5s
b2NhdGlvbiwgcmFuZ2UubGVuZ3RoLCBmcmFtZU5hbWUubGVuZ3RoKCkgPyBmcmFtZU5hbWUgOiBl
bXB0eVN0cmluZygpLCBvcmRlciB9OworCisgICAgICAgIGZvdW5kVGV4dFJhbmdlcy5hcHBlbmQo
Zm91bmRUZXh0UmFuZ2UpOworICAgIH0KKworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
Zm91bmRUZXh0UmFuZ2VzKSk7Cit9CisKK3ZvaWQgV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVy
OjpkZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShjb25zdCBXZWJGb3VuZFRleHRSYW5nZSYgcmFu
Z2UsIEZpbmREZWNvcmF0aW9uU3R5bGUgc3R5bGUpCit7CisgICAgVU5VU0VEX1BBUkFNKHJhbmdl
KTsKKyAgICBVTlVTRURfUEFSQU0oc3R5bGUpOworfQorCit2b2lkIFdlYkZvdW5kVGV4dFJhbmdl
Q29udHJvbGxlcjo6c2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxlKGNvbnN0IFdlYkZvdW5kVGV4dFJh
bmdlJiByYW5nZSkKK3sKKyAgICBVTlVTRURfUEFSQU0ocmFuZ2UpOworfQorCit2b2lkIFdlYkZv
dW5kVGV4dFJhbmdlQ29udHJvbGxlcjo6Y2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQoKQorewor
Cit9CisKK3ZvaWQgV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjpkaWRCZWdpblRleHRTZWFy
Y2hPcGVyYXRpb24oKQoreworCit9CisKK3ZvaWQgV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVy
OjpkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKCkKK3sKKworfQorCit2b2lkIFdlYkZvdW5kVGV4
dFJhbmdlQ29udHJvbGxlcjo6d2lsbE1vdmVUb1BhZ2UoV2ViQ29yZTo6UGFnZU92ZXJsYXkmLCBX
ZWJDb3JlOjpQYWdlKiBwYWdlKQoreworICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKK30KKwordm9p
ZCBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRpZE1vdmVUb1BhZ2UoV2ViQ29yZTo6UGFn
ZU92ZXJsYXkmLCBXZWJDb3JlOjpQYWdlKikKK3sKKworfQorCitib29sIFdlYkZvdW5kVGV4dFJh
bmdlQ29udHJvbGxlcjo6bW91c2VFdmVudChXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIGNvbnN0IFdl
YkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudCYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjo6ZHJhd1JlY3QoV2ViQ29yZTo6UGFnZU92
ZXJsYXkmLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgZGlydHlSZWN0KQoreworICAgIFVOVVNFRF9QQVJBTShncmFwaGlj
c0NvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShkaXJ0eVJlY3QpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY4MGI3
OTU3YWUxZGI0MTFhYjBkZWMyZGNiYjdmZjM1ZDJlNDhlYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIldlYkZpbmRPcHRpb25zLmgiCisjaW5jbHVkZSAiV2ViRm91bmRUZXh0UmFuZ2UuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZpbmRPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlT3ZlcmxheS5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIERvY3VtZW50OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsK
KworY2xhc3MgV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyIDogcHJpdmF0ZSBXZWJDb3JlOjpQ
YWdlT3ZlcmxheTo6Q2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIpOworCitwdWJs
aWM6CisgICAgZXhwbGljaXQgV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKFdlYlBhZ2UqKTsK
KworICAgIHZvaWQgZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYs
IE9wdGlvblNldDxGaW5kT3B0aW9ucz4sIHVpbnQzMl90IG1heE1hdGNoQ291bnQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U+JiYpPiYmKTsK
KworICAgIHZvaWQgZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUoY29uc3QgV2ViRm91bmRUZXh0
UmFuZ2UmLCBGaW5kRGVjb3JhdGlvblN0eWxlKTsKKyAgICB2b2lkIHNjcm9sbFRleHRSYW5nZVRv
VmlzaWJsZShjb25zdCBXZWJGb3VuZFRleHRSYW5nZSYpOworCisgICAgdm9pZCBjbGVhckFsbERl
Y29yYXRlZEZvdW5kVGV4dCgpOworCisgICAgdm9pZCBkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRp
b24oKTsKKyAgICB2b2lkIGRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKTsKKworcHJpdmF0ZToK
KyAgICAvLyBQYWdlT3ZlcmxheTo6Q2xpZW50LgorICAgIHZvaWQgd2lsbE1vdmVUb1BhZ2UoV2Vi
Q29yZTo6UGFnZU92ZXJsYXkmLCBXZWJDb3JlOjpQYWdlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRNb3ZlVG9QYWdlKFdlYkNvcmU6OlBhZ2VPdmVybGF5JiwgV2ViQ29yZTo6UGFnZSopIG92ZXJy
aWRlOworICAgIGJvb2wgbW91c2VFdmVudChXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIGNvbnN0IFdl
YkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd1JlY3Qo
V2ViQ29yZTo6UGFnZU92ZXJsYXkmLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBkaXJ0eVJlY3QpIG92ZXJyaWRlOworCisgICAgV2Vha1B0cjxXZWJQ
YWdlPiBtX3dlYlBhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450177</attachid>
            <date>2022-01-27 14:17:55 -0800</date>
            <delta_ts>2022-01-27 15:15:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235691-20220127141753.patch</filename>
            <type>text/plain</type>
            <size>44852</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNkYzZhYjJhZDAyZjQ3
ZjE5MjhmMjhmMjY2NzVjYTM3YjJlZGU0Zi4uM2Y1YTVlYjViYjZhMWQ0NjgwZmYwNjI4YzVhOWVi
Njc2MGI0MWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTI3ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgV2Vi
Rm91bmRUZXh0UmFuZ2UgYW5kIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlciB0byBzdXBwb3J0
IHJlc3RvcmFibGUgZmluZCByZXN1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzU2OTEKKyAgICAgICAgcmRhcjovLzg4MTE3MTY3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJ
dGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5kSXRlcmF0b3JPcHRpb25zKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5oOgorICAgICAgICAoV2ViQ29y
ZTo6ZmluZEl0ZXJhdG9yT3B0aW9ucyk6CisKKyAgICAgICAgTW92ZWQgbWV0aG9kIGludG8gaGVh
ZGVyIHRvIHNoYXJlIGxvZ2ljLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OmZpbmRUZXh0TWF0Y2hlcyk6CisKKyAgICAgICAgQWRkZWQgYSB3YXkg
dG8gc3VwcHJlc3MgbWFya2luZyB0ZXh0IG1hdGNoZXMuCisKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKwogMjAyMi0wMS0yNSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRGlzYWJsZSBpbnB1dC1zZWN1cml0eSBDU1MgcHJvcGVydHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ODQyNmRiNzYzY2RmYTMzYmIwNWUzZjZkNGM0N2YwNzA0ZWRiZTg0Ny4uNzcyYjVlYjg0OTI5ZmM3
ZmVjMjhkYTcxZjllODU4OGMyMDI0NjkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NiBAQAorMjAy
Mi0wMS0yNyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW50cm9kdWNlIFdlYkZvdW5kVGV4dFJhbmdlIGFuZCBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xs
ZXIgdG8gc3VwcG9ydCByZXN0b3JhYmxlIGZpbmQgcmVzdWx0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NjkxCisgICAgICAgIHJkYXI6Ly84ODEx
NzE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRv
IGJldHRlciBzdXBwb3J0IHRoZSBfVUlUZXh0U2VhcmNoaW5nIHByb3RvY29sLCBXS1dlYlZpZXcg
bmVlZHMgdG8gYmUKKyAgICAgICAgYWJsZSB0byByZXN0b3JlIGZpbmQtaW4tcGFnZSByZXN1bHRz
IGZvdW5kIGluIG90aGVyIHZpZXdzIHdpdGggdGhlIHNhbWUKKyAgICAgICAgY29udGVudC4KKwor
ICAgICAgICBUaGUgZGVzaXJlZCBmdW5jdGlvbmFsaXR5IGlzIGFjaGlldmVkIHRocm91Z2ggdGhl
IHVzZSBvZiB0d28gbmV3IGludGVyZmFjZXM6CisgICAgICAgIFdlYkZvdW5kVGV4dFJhbmdlLCB3
aGljaCByZXByZXNlbnRzIGEgcmFuZ2Ugb2YgZm91bmQgdGV4dCwgYW5kCisgICAgICAgIFdlYkZv
dW5kVGV4dFJhbmdlQ29udHJvbGxlciwgd2hpY2ggd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgZmlu
ZGluZywKKyAgICAgICAgZGVjb3JhdGluZywgYW5kIHNjcm9sbGluZyB0byByYW5nZXMuCisKKyAg
ICAgICAgQSAiZm91bmQgdGV4dCByYW5nZSIgaXMgdW5pcXVlbHkgaWRlbnRpZmllZCBieSBhIGxv
Y2F0aW9uLCBsZW5ndGgsCisgICAgICAgIGZyYW1lIGlkZW50aWZpZXIsIGFuZCBvcmRlci4gVGhl
IGxvY2F0aW9uIGFuZCBsZW5ndGggcmVwcmVzZW50IGEKKyAgICAgICAgY2hhcmFjdGVyIHJhbmdl
IGluIGRvY3VtZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZyYW1lIGlkZW50aWZpZXIuCisgICAg
ICAgIFRoZSBvcmRlciByZXByZXNlbnRzIHRoZSByZWxhdGl2ZSBvcmRlcmluZyBiZXR3ZWVuIHJh
bmdlcyAtIGZvcgorICAgICAgICBleGFtcGxlLCByZXN1bHRzIGluIHRoZSBtYWluIGZyYW1lIGFy
ZSBvcmRlcmVkIGJlZm9yZSByZXN1bHRzIGluIGEKKyAgICAgICAgc3ViZnJhbWUuCisKKyAgICAg
ICAgVGhpcyBpcyB0aGUgZmlyc3QgaW4gYSBzZXJpZXMgb2YgcGF0Y2hlcyB0aGF0IGltcGxlbWVu
dHMgdGhlIGludGVyZmFjZS4KKyAgICAgICAgVGhlIGF2YWlsYWJsZSBtZXRob2RzIG9uIFdlYkZv
dW5kVGV4dFJhbmdlQ29udHJvbGxlciBtYXAgb25lLXRvLW9uZSB3aXRoCisgICAgICAgIHRoZSBf
VUlUZXh0U2VhcmNoaW5nIHByb3RvY29sLiBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGNyZWF0
aW9uIG9mCisgICAgICAgIHJlc3RvcmFibGUgZm91bmQgcmFuZ2VzLgorCisgICAgICAgICogU2Ny
aXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2g6CisKKyAgICAgICAgSW5jcmVhc2UgdW5p
ZmllZCBidWlsZCBmaWxlcyB0byAxMjAuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJGaW5kT3B0aW9ucy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZp
bmRPcHRpb25zLmguCisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJGaW5kT3B0aW9ucy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJGb3VuZFRleHRSYW5nZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlOjpvcGVyYXRvcj09IGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U6OmVuY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJGb3VuZFRleHRSYW5nZS5oOgorICAgICAgICAoV1RGOjpXZWJGb3VuZFRleHRSYW5nZUhh
c2g6Omhhc2gpOgorICAgICAgICAoV1RGOjpXZWJGb3VuZFRleHRSYW5nZUhhc2g6OmVxdWFsKToK
KyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlPjo6ZW1w
dHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViS2l0OjpXZWJGb3VuZFRleHRS
YW5nZT46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
V2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZT46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBVbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojpj
b3JlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250
cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlQ29u
dHJvbGxlcjo6V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjpmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNo
ZXMpOgorCisgICAgICAgIFVzZSB0aGUgRnJhbWVUcmVlcydzIHVuaXF1ZU5hbWUgYXMgYSBmcmFt
ZSBpZGVudGlmaWVyIGZvciB0aGUgZm91bmQKKyAgICAgICAgdGV4dCByYW5nZS4gVGhlc2UgbmFt
ZXMgYXJlIGNvbnNpc3RlbnQgYWNyb3NzIHdlYiBjb250ZW50IHdpdGggdGhlCisgICAgICAgIHNh
bWUgbWFya3VwLgorCisgICAgICAgIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxl
cjo6ZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXI6OnNjcm9sbFRleHRSYW5nZVRvVmlzaWJsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjo6Y2xlYXJBbGxEZWNvcmF0ZWRG
b3VuZFRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6
OmRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZvdW5k
VGV4dFJhbmdlQ29udHJvbGxlcjo6ZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjo6d2lsbE1vdmVUb1BhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRpZE1vdmVUb1Bh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6Om1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRy
YXdSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VD
b250cm9sbGVyLmg6IEFkZGVkLgorCiAyMDIyLTAxLTI0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24gKHIyODY5MzYpOiBTZXNzaW9uU3RvcmFn
ZSBkYXRhIGlzIG5vdCBjbGVhcmVkIHdoZW4gZGVsZXRpbmcgd2Vic2l0ZSBkYXRhIGJ5IG1vZGlm
aWNhdGlvbiB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXgg
ZWE4YzNmMTAzNTcxNTQzZjRiZjc1OGIxYmIwNDk4ZjQxYjc0ZGU5Yy4uY2Y3MTQ5NWZmOWQyNDll
NWEzNWJhNWZhNGFlMjA4ZTliMGM1ZWFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmNwcApAQCAtMjQ3OCwxNCArMjQ3OCw2IEBAIFN0cmluZyBwbGFpblRleHRSZXBsYWNp
bmdOb0JyZWFrU3BhY2UoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlLCBUZXh0SXRlcmF0b3JCZWhh
CiAgICAgcmV0dXJuIHBsYWluVGV4dChyYW5nZSwgZGVmYXVsdEJlaGF2aW9ycywgaXNEaXNwbGF5
U3RyaW5nKS5yZXBsYWNlKG5vQnJlYWtTcGFjZSwgJyAnKTsKIH0KIAotc3RhdGljIGNvbnN0ZXhw
ciBUZXh0SXRlcmF0b3JCZWhhdmlvcnMgZmluZEl0ZXJhdG9yT3B0aW9ucyhGaW5kT3B0aW9ucyBv
cHRpb25zKQotewotICAgIFRleHRJdGVyYXRvckJlaGF2aW9ycyBpdGVyYXRvck9wdGlvbnMgeyBU
ZXh0SXRlcmF0b3JCZWhhdmlvcjo6RW50ZXJzVGV4dENvbnRyb2xzLCBUZXh0SXRlcmF0b3JCZWhh
dmlvcjo6Q2xpcHNUb0ZyYW1lQW5jZXN0b3JzLCBUZXh0SXRlcmF0b3JCZWhhdmlvcjo6RW50ZXJz
SW1hZ2VPdmVybGF5cyB9OwotICAgIGlmICghb3B0aW9ucy5jb250YWlucyhEb05vdFRyYXZlcnNl
RmxhdFRyZWUpKQotICAgICAgICBpdGVyYXRvck9wdGlvbnMuYWRkKFRleHRJdGVyYXRvckJlaGF2
aW9yOjpUcmF2ZXJzZXNGbGF0VHJlZSk7Ci0gICAgcmV0dXJuIGl0ZXJhdG9yT3B0aW9uczsKLX0K
LQogc3RhdGljIHZvaWQgZm9yRWFjaE1hdGNoKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSwgY29u
c3QgU3RyaW5nJiB0YXJnZXQsIEZpbmRPcHRpb25zIG9wdGlvbnMsIGNvbnN0IEZ1bmN0aW9uPGJv
b2woQ2hhcmFjdGVyUmFuZ2UpPiYgbWF0Y2gpCiB7CiAgICAgU2VhcmNoQnVmZmVyIGJ1ZmZlcih0
YXJnZXQsIG9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
SXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKaW5kZXgg
MTczYjA5ZDQ2YWQ5MzI5YzA0OGI3ZGU3MTU1ZjYzYTkwNGE3NWNlNi4uNWExMTViYmVhZmJjZDRl
ZTE3NGZiZTI1NDI0MjVmOTcwMjJmYzU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0SXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVy
YXRvci5oCkBAIC0yOTMsNiArMjkzLDE0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZExvb2tB
aGVhZCB7IHRydWUgfTsKIH07CiAKK2NvbnN0ZXhwciBUZXh0SXRlcmF0b3JCZWhhdmlvcnMgZmlu
ZEl0ZXJhdG9yT3B0aW9ucyhGaW5kT3B0aW9ucyBvcHRpb25zID0geyB9KQoreworICAgIFRleHRJ
dGVyYXRvckJlaGF2aW9ycyBpdGVyYXRvck9wdGlvbnMgeyBUZXh0SXRlcmF0b3JCZWhhdmlvcjo6
RW50ZXJzVGV4dENvbnRyb2xzLCBUZXh0SXRlcmF0b3JCZWhhdmlvcjo6Q2xpcHNUb0ZyYW1lQW5j
ZXN0b3JzLCBUZXh0SXRlcmF0b3JCZWhhdmlvcjo6RW50ZXJzSW1hZ2VPdmVybGF5cyB9OworICAg
IGlmICghb3B0aW9ucy5jb250YWlucyhEb05vdFRyYXZlcnNlRmxhdFRyZWUpKQorICAgICAgICBp
dGVyYXRvck9wdGlvbnMuYWRkKFRleHRJdGVyYXRvckJlaGF2aW9yOjpUcmF2ZXJzZXNGbGF0VHJl
ZSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yT3B0aW9uczsKK30KKwogaW5saW5lIENoYXJhY3RlclJh
bmdlIGNoYXJhY3RlclJhbmdlKGNvbnN0IEJvdW5kYXJ5UG9pbnQmIHN0YXJ0LCBjb25zdCBTaW1w
bGVSYW5nZSYgcmFuZ2UsIFRleHRJdGVyYXRvckJlaGF2aW9ycyBiZWhhdmlvcnMpCiB7CiAgICAg
cmV0dXJuIHsgY2hhcmFjdGVyQ291bnQoeyBzdGFydCwgcmFuZ2Uuc3RhcnQgfSwgYmVoYXZpb3Jz
KSwgY2hhcmFjdGVyQ291bnQocmFuZ2UsIGJlaGF2aW9ycykgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmlu
ZGV4IGM4ODFiMjZiYTI4ZGQ1ODdlMTdmOGViMzg5ZDQyNTBiNDA4OTFmZjcuLjQxNWVhNjEzNDVm
NzcwMTRlZDcxM2M2Y2Q5NzM2NjI4Y2U3MmU2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNzY1
LDE0ICs3NjUsMTQgQEAgYm9vbCBQYWdlOjpmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0
LCBGaW5kT3B0aW9ucyBvcHRpb25zLCBEaWRXcmFwKiBkaWRXcmEKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWF1dG8gUGFnZTo6ZmluZFRleHRNYXRjaGVzKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBG
aW5kT3B0aW9ucyBvcHRpb25zLCB1bnNpZ25lZCBsaW1pdCkgLT4gTWF0Y2hpbmdSYW5nZXMKK2F1
dG8gUGFnZTo6ZmluZFRleHRNYXRjaGVzKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBGaW5kT3B0aW9u
cyBvcHRpb25zLCB1bnNpZ25lZCBsaW1pdCwgYm9vbCBtYXJrTWF0Y2hlcykgLT4gTWF0Y2hpbmdS
YW5nZXMKIHsKICAgICBNYXRjaGluZ1JhbmdlcyByZXN1bHQ7CiAKICAgICBGcmFtZSogZnJhbWUg
PSAmbWFpbkZyYW1lKCk7CiAgICAgRnJhbWUqIGZyYW1lV2l0aFNlbGVjdGlvbiA9IG51bGxwdHI7
CiAgICAgZG8gewotICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY291bnRNYXRjaGVzRm9yVGV4dCh0
YXJnZXQsIHsgfSwgb3B0aW9ucywgbGltaXQgPyAobGltaXQgLSByZXN1bHQucmFuZ2VzLnNpemUo
KSkgOiAwLCB0cnVlLCAmcmVzdWx0LnJhbmdlcyk7CisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5j
b3VudE1hdGNoZXNGb3JUZXh0KHRhcmdldCwgeyB9LCBvcHRpb25zLCBsaW1pdCA/IChsaW1pdCAt
IHJlc3VsdC5yYW5nZXMuc2l6ZSgpKSA6IDAsIG1hcmtNYXRjaGVzLCAmcmVzdWx0LnJhbmdlcyk7
CiAgICAgICAgIGlmIChmcmFtZS0+c2VsZWN0aW9uKCkuaXNSYW5nZSgpKQogICAgICAgICAgICAg
ZnJhbWVXaXRoU2VsZWN0aW9uID0gZnJhbWU7CiAgICAgICAgIGZyYW1lID0gaW5jcmVtZW50RnJh
bWUoZnJhbWUsIHRydWUsIENhbldyYXA6Ok5vKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYmU3ZjgxMzkw
NDgyYWI5MTg1YjIwMTY4OWNkMjQ5MTY1ZTU1MWZkZi4uZTU0OTJlY2YyMjUzNDExNWFlNmU5NDlm
MTZmZGU2NTc0Yzk4MzEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTM5NCw3ICszOTQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGludCBpbmRleEZvclNlbGVjdGlvbiB7IDAgfTsgLy8gRklYTUU6IENvbnNp
ZGVyIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IG9yIHVuc2lnbmVkIGZvciB0aGlzIGluc3RlYWQu
CiAgICAgfTsKICAgICBzdGF0aWMgY29uc3RleHByIGludCBOb01hdGNoQWZ0ZXJVc2VyU2VsZWN0
aW9uID0gLTE7Ci0gICAgV0VCQ09SRV9FWFBPUlQgTWF0Y2hpbmdSYW5nZXMgZmluZFRleHRNYXRj
aGVzKGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhDb3VudCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgTWF0Y2hpbmdSYW5nZXMgZmluZFRleHRNYXRjaGVzKGNvbnN0IFN0cmlu
ZyYsIEZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhDb3VudCwgYm9vbCBtYXJrTWF0Y2hlcyA9IHRy
dWUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNv
dXJjZXMuc2ggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2Vz
LnNoCmluZGV4IDJhM2Q2YjVlZWIyNDE0MDFjODBlYTNiZWQ4MjM4MmQwMzU2NTIzNjQuLmRlZmQ5
NjkzMTU3NzBjZjU3YmNiNmFlZTQyN2FmNGNiNmNjYmJiZjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaApAQCAtMTQsNyArMTQsNyBA
QCBpZiBbIC16ICIke0JVSUxEX1NDUklQVFNfRElSfSIgXTsgdGhlbgogICAgIGZpCiBmaQogCi1V
bmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTExNQorVW5pZmllZFNvdXJjZUNwcEZpbGVDb3VudD0x
MjAKIFVuaWZpZWRTb3VyY2VNbUZpbGVDb3VudD04MAogCiBpZiBbICQjIC1lcSAwIF07IHRoZW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGNhMzdhY2JkNWM1
YWEyODAyM2E5M2Q4ZDQxOGNjMDJkOTI1Yjk5NDUuLjQwOTJlZDBlNTAwZjg1MGNlODMyM2Q3NzM5
NjJiYTlkZmE2NTlkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtODY1LDYgKzg2NSw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAg
ICAnV2ViS2l0OjpDYWxsRG93bmxvYWREaWRTdGFydCc6IFsnIkRvd25sb2FkTWFuYWdlci5oIidd
LAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJzogWyciQ29udGVudFdv
cmxkU2hhcmVkLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRS
ZXF1ZXN0JzogWyciRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oIiddLAorICAgICAgICAnV2ViS2l0
OjpGaW5kRGVjb3JhdGlvblN0eWxlJzogWyciV2ViRmluZE9wdGlvbnMuaCInXSwKICAgICAgICAg
J1dlYktpdDo6RmluZE9wdGlvbnMnOiBbJyJXZWJGaW5kT3B0aW9ucy5oIiddLAogICAgICAgICAn
V2ViS2l0OjpGb3JtU3VibWl0TGlzdGVuZXJJZGVudGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVz
LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyU3RhdGUnOiBbJyJHZXN0
dXJlVHlwZXMuaCInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZpbmRP
cHRpb25zLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZpbmRPcHRpb25zLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kOTU3MDAwZTc3NjI0MzA5MTc0YWNlMDg5M2NjMGZiZDVhYzQ1ZTAxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRmluZE9wdGlvbnMuY3BwCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViRmluZE9wdGlvbnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvcmU6OkZpbmRP
cHRpb25zIGNvcmUoT3B0aW9uU2V0PEZpbmRPcHRpb25zPiBvcHRpb25zKQoreworICAgIFdlYkNv
cmU6OkZpbmRPcHRpb25zIHJlc3VsdDsKKyAgICBpZiAob3B0aW9ucy5jb250YWlucyhGaW5kT3B0
aW9uczo6Q2FzZUluc2Vuc2l0aXZlKSkKKyAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpDYXNl
SW5zZW5zaXRpdmUpOworICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25zOjpBdFdv
cmRTdGFydHMpKQorICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkF0V29yZFN0YXJ0cyk7Cisg
ICAgaWYgKG9wdGlvbnMuY29udGFpbnMoRmluZE9wdGlvbnM6OlRyZWF0TWVkaWFsQ2FwaXRhbEFz
V29yZFN0YXJ0KSkKKyAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpUcmVhdE1lZGlhbENhcGl0
YWxBc1dvcmRTdGFydCk7CisgICAgaWYgKG9wdGlvbnMuY29udGFpbnMoRmluZE9wdGlvbnM6OkJh
Y2t3YXJkcykpCisgICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6QmFja3dhcmRzKTsKKyAgICBp
ZiAob3B0aW9ucy5jb250YWlucyhGaW5kT3B0aW9uczo6V3JhcEFyb3VuZCkpCisgICAgICAgIHJl
c3VsdC5hZGQoV2ViQ29yZTo6V3JhcEFyb3VuZCk7CisgICAgaWYgKG9wdGlvbnMuY29udGFpbnMo
RmluZE9wdGlvbnM6OkF0V29yZEVuZHMpKQorICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkF0
V29yZEVuZHMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRmluZE9wdGlvbnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZpbmRPcHRpb25zLmgKaW5kZXggYTc3YjY0N2M4M2Y4ODZj
YjgwM2MxNjlhZjZjZTIzOWM5MTc3NTc3Zi4uMmMyYjA2OGRlMWFiN2UyZWZiYTVjMWFiYjNjNDc3
ZTVlM2M5ZDE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRmluZE9wdGlv
bnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJGaW5kT3B0aW9ucy5oCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9GaW5kT3B0aW9u
cy5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNDMsNiArNDQsMTQgQEAgZW51bSBjbGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQxNl90IHsKICAg
ICBBdFdvcmRFbmRzID0gMSA8PCAxMCwKIH07CiAKK2VudW0gY2xhc3MgRmluZERlY29yYXRpb25T
dHlsZSA6IHVpbnQ4X3QgeworICAgIE5vcm1hbCwKKyAgICBGb3VuZCwKKyAgICBIaWdobGlnaHRl
ZCwKK307CisKK1dlYkNvcmU6OkZpbmRPcHRpb25zIGNvcmUoT3B0aW9uU2V0PEZpbmRPcHRpb25z
Pik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTY0LDQg
KzczLDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpGaW5kT3B0aW9u
cz4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6
RmluZERlY29yYXRpb25TdHlsZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgICAgIFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZSwKKyAgICAgICAgV2ViS2l0OjpGaW5k
RGVjb3JhdGlvblN0eWxlOjpOb3JtYWwsCisgICAgICAgIFdlYktpdDo6RmluZERlY29yYXRpb25T
dHlsZTo6Rm91bmQsCisgICAgICAgIFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZTo6SGlnaGxp
Z2h0ZWQKKyAgICA+OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJGb3VuZFRleHRSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJGb3VuZFRleHRSYW5nZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRkNjJhZGRhODlhYWFmMjc1
ZWNmZmZmNzdkMDQ2N2U5ZDUxZmY2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkZvdW5kVGV4dFJhbmdlLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZvdW5kVGV4dFJhbmdlLmgiCisK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2Jvb2wgV2ViRm91bmRUZXh0UmFuZ2U6Om9wZXJhdG9yPT0oY29uc3QgV2ViRm91bmRUZXh0
UmFuZ2UmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiBsb2NhdGlvbiA9PSBvdGhlci5sb2Nh
dGlvbgorICAgICAgICAmJiBsZW5ndGggPT0gb3RoZXIubGVuZ3RoCisgICAgICAgICYmIGZyYW1l
SWRlbnRpZmllciA9PSBvdGhlci5mcmFtZUlkZW50aWZpZXIKKyAgICAgICAgJiYgb3JkZXIgPT0g
b3RoZXIub3JkZXI7Cit9CisKK3ZvaWQgV2ViRm91bmRUZXh0UmFuZ2U6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBsb2NhdGlvbjsKKyAgICBl
bmNvZGVyIDw8IGxlbmd0aDsKKyAgICBlbmNvZGVyIDw8IGZyYW1lSWRlbnRpZmllcjsKKyAgICBl
bmNvZGVyIDw8IG9yZGVyOworfQorCitzdGQ6Om9wdGlvbmFsPFdlYkZvdW5kVGV4dFJhbmdlPiBX
ZWJGb3VuZFRleHRSYW5nZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBX
ZWJGb3VuZFRleHRSYW5nZSByZXN1bHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5sb2NhdGlvbikpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5sZW5ndGgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZnJhbWVJZGVudGlmaWVyKSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0Lm9yZGVyKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBX
VEZNb3ZlKHJlc3VsdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViRm91bmRUZXh0UmFuZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkZvdW5kVGV4dFJhbmdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU5YjE4ODUzNjdkODM5OWY2
OTM2MTJjMDkxYWY4YjBmZDAxNmUwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkZvdW5kVGV4dFJhbmdlLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDx3
dGYvSGFzaFRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFdlYkZvdW5kVGV4dFJhbmdlIHsKKyAgICB1aW50NjRf
dCBsb2NhdGlvbiB7IDAgfTsKKyAgICB1aW50NjRfdCBsZW5ndGggeyAwIH07CisgICAgU3RyaW5n
IGZyYW1lSWRlbnRpZmllcjsKKyAgICB1aW50NjRfdCBvcmRlciB7IDAgfTsKKworICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBXZWJGb3VuZFRleHRSYW5nZSYgb3RoZXIpIGNvbnN0OworCisgICAg
dm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8V2ViRm91bmRUZXh0UmFuZ2U+IGRlY29kZShJUEM6OkRlY29kZXImKTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsKKworc3RydWN0IFdlYkZvdW5kVGV4
dFJhbmdlSGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViS2l0OjpXZWJG
b3VuZFRleHRSYW5nZSYgcmFuZ2UpIHsgcmV0dXJuIHBhaXJJbnRIYXNoKHJhbmdlLmxvY2F0aW9u
LCByYW5nZS5sZW5ndGgpOyB9CisgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2ViS2l0OjpX
ZWJGb3VuZFRleHRSYW5nZSYgYSwgY29uc3QgV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZSYgYikg
eyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0
czxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYktpdDo6
V2ViRm91bmRUZXh0UmFuZ2U+IHsKKyAgICBzdGF0aWMgV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5n
ZSBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1
Y3REZWxldGVkVmFsdWUoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZSYgcmFuZ2UpIHsgcmFuZ2Ug
PSB7IH07IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6Oldl
YkZvdW5kVGV4dFJhbmdlJiByYW5nZSkgeyByZXR1cm4gcmFuZ2UgPT0gV2ViS2l0OjpXZWJGb3Vu
ZFRleHRSYW5nZSB7IH07IH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdl
YktpdDo6V2ViRm91bmRUZXh0UmFuZ2U+IDogV2ViRm91bmRUZXh0UmFuZ2VIYXNoIHsgfTsKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggYzVjODU2ZjljZDY5NDFlZjJkNGZkYWMyZjVjZDEzODRhMWRlOWNl
OC4uZGY0N2M3ODZjOGRlZjYyNGY0M2ZjOTQ2ZGRjODJkMzQzMjI5OTk0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC0yNTUsNiArMjU1LDggQEAgU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKIFNo
YXJlZC9XZWJFcnJvcnMuY3BwCiBTaGFyZWQvV2ViRXZlbnQuY3BwCiBTaGFyZWQvV2ViRXZlbnRD
b252ZXJzaW9uLmNwcAorU2hhcmVkL1dlYkZpbmRPcHRpb25zLmNwcAorU2hhcmVkL1dlYkZvdW5k
VGV4dFJhbmdlLmNwcAogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCiBTaGFyZWQv
V2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwCiBTaGFyZWQvV2ViSW1hZ2UuY3BwCkBAIC04MjgsNiAr
ODMwLDcgQEAgV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcAogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkNvb2tpZUNhY2hlLmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tp
ZUphci5jcHAKIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJEb2N1bWVudExvYWRlci5jcHAKK1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuY3BwCiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgQG5vLXVuaWZ5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCAxYjlkOTdjMzhjNDEyYTdjYzhkM2ZmYzRhNTJjYTVjZTY1Njc1NWYyLi42MmMyMmVlMmJjNzM3
ODJiZDQ1MWI1MDc4NTcwNzVlMzZhNmQ4ZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Vu
aWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvVW5pZmll
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTIxLDggKzIxLDEzIEBAICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRT
b3VyY2UxMTIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTEzLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEx
NC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE2LmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJj
ZXMvVW5pZmllZFNvdXJjZTExNy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTguY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9Vbmlm
aWVkU291cmNlMTE5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEyLW1tLm1tCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291
cmNlMTIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3Vu
aWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTIwLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEzLW1t
Lm1tCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQt
c291cmNlcy9VbmlmaWVkU291cmNlMTMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTQtbW0ubW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEx
MTVjODg0Yzg2ZmVjYmNhODVmNDFkYjZhMWRlNjA5MjIwNzU2YTMuLjUyMTk5NGE4MzlkM2VmZjIz
YjMyYjdiNjBkZTk3NjQwMDQzMGRjMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTk3OCwxNSArMTk3OCwyMiBAQAogCQlFNEQ1NEQw
NDIxRjFENzJEMDA3RTNDMzYgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZUlPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQw
QzFGOTMyMUYwQjk2RTAwNTMwNzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVJT1MuaCAqLzsgfTsKIAkJRTRFNTdGNkIyMUE4M0IxMjAwMzQ1RjNDIC8qIFJlbW90ZUxh
eWVyVHJlZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggKi87
IH07CiAJCUU1MDYyMDkyMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTA2MjA5MTI1NDIxMDIw
MDBDNDMwOTEgLyogQ29udGFjdHNVSVNQSS5oICovOyB9OworCQlFNTIyN0Q4NDI3QTExMjYxMDA4
RUFCNTcgLyogV2ViRm91bmRUZXh0UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU1MjI3RDgyMjdBMTEyMzEwMDhFQUI1NyAvKiBXZWJGb3VuZFRl
eHRSYW5nZS5oICovOyB9OwogCQlFNTJDRjU1MjIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0
aW9uUGlja2VyLmggKi87IH07CiAJCUU1NUNEMUY1MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRl
VGltZUNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU1NUNEMUYzMjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCAqLzsg
fTsKIAkJRTU1Q0QyMDAyNEQwOEQ4RjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTVDRDFGQzI0RDA4
ODBCMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXIuaCAqLzsgfTsKIAkJRTU1Q0QyMDMyNEQw
OUYxRjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyog
V2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCAqLzsgfTsKKwkJRTU1Q0ZENEUyNzlEMzFFNTAwMkYxMDIw
IC8qIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0ZENEMyNzlEMzFDMzAwMkYxMDIwIC8qIFdlYkZv
dW5kVGV4dFJhbmdlQ29udHJvbGxlci5oICovOyB9OwogCQlFNTY4QjkxRjIwQTNBQjJGMDBFM0M4
NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTY4QjkxRTIwQTNBQjJGMDBFM0M4NTYgLyog
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi87IH07CiAJCUU1NjhCOTIyMjBBM0FD
NkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NjhCOTIwMjBBM0FDNkEw
MEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCAqLzsgfTsKIAkJ
RTU5NkRENkEyNTFFNzFENDAwQzI3NUE3IC8qIFdLQ29udGFjdFBpY2tlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU5NkRENjgyNTFFNzFEMzAwQzI3
NUE3IC8qIFdLQ29udGFjdFBpY2tlci5oICovOyB9OwogCQlFNUJFRjY4MjIxMzBDNDgwMDBGMzEx
MTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUJFRjY4MDIxMzBDNDdGMDBGMzExMTEg
LyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmggKi87IH07CiAJCUU1Q0IwN0RD
MjBFMTY3OEYwMDIyQzE4MyAvKiBXS0Zvcm1Db2xvckNvbnRyb2wuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0IwN0RBMjBFMTY3OEYwMDIyQzE4MyAv
KiBXS0Zvcm1Db2xvckNvbnRyb2wuaCAqLzsgfTsKKwkJRTVDQkE3NjQyN0EzMThFMTAwREY3ODU4
IC8qIFVuaWZpZWRTb3VyY2UxMjAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTVDQkE3NUYyN0EzMTg3ODAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2Ux
MjAuY3BwICovOyB9OworCQlFNUNCQTc2NTI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJj
ZTExOC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NUNCQTc2MTI3QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOC5jcHAgKi87IH07CisJ
CUU1Q0JBNzY2MjdBMzE4RTEwMERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTE2LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0JBNzYzMjdBMzE4N0Iw
MERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTE2LmNwcCAqLzsgfTsKKwkJRTVDQkE3NjcyN0EzMThF
MTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVDQkE3NjAyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZp
ZWRTb3VyY2UxMTkuY3BwICovOyB9OworCQlFNUNCQTc2ODI3QTMxOEUxMDBERjc4NTggLyogVW5p
ZmllZFNvdXJjZTExNy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNUNCQTc2MjI3QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAg
Ki87IH07CiAJCUU1REVGQTY4MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVERUZBNjcyNkY4RjQy
NjAwQUI2OERCIC8qIFBob3Rvc1VJU1BJLmggKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0
NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQ
YWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUY0MDlCQTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOUJB
MTcxRTZFNjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTcsOCArNjQwNCwx
MSBAQAogCQlFNEU1N0Y2ODIxQTgzQjAzMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZUxheWVyVHJl
ZU5vZGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RTU3RjZBMjFBODNCMTEw
MDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTUwNjIwOTEyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ29udGFjdHNVSVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
NTIyN0Q4MjI3QTExMjMxMDA4RUFCNTcgLyogV2ViRm91bmRUZXh0UmFuZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRm91bmRUZXh0UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTUyMjdEODMyN0ExMTIzMTAwOEVBQjU3IC8qIFdlYkZvdW5kVGV4dFJhbmdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkZvdW5kVGV4dFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUyQ0Y1NTEyMEEzNUMzQTAwREFEQTI3IC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFNTMwOUI3RDI3QTI4NzJGMDBCMTA2MzEgLyogV2ViRmluZE9wdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViRmluZE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNTRBMTRDRTIwRkNGQjdCMDA3RTEzRDggLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NUNEMUYzMjRDRjc0N0Qw
MDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0ZVRp
bWVDaG9vc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NUNEMUY0MjRDRjc0
N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViRGF0ZVRpbWVDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0
MDYsNiArNjQxNiw4IEBACiAJCUU1NUNEMUZEMjREMDg4MEIwMDQyREI5QyAvKiBXZWJEYXRlVGlt
ZVBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEYXRlVGltZVBpY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NUNEMjAxMjREMDlGMUYwMDQyREI5QyAvKiBX
ZWJEYXRlVGltZVBpY2tlck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRlVGltZVBpY2tlck1h
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTVDRDIwMjI0RDA5RjFGMDA0MkRC
OUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJE
YXRlVGltZVBpY2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTU1Q0ZE
NEMyNzlEMzFDMzAwMkYxMDIwIC8qIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTU1Q0ZENEQyNzlEMzFDMzAwMkYxMDIwIC8qIFdlYkZvdW5kVGV4dFJh
bmdlQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGb3VuZFRleHRSYW5nZUNv
bnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkxRTIwQTNB
QjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bk1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkyMTIw
QTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDE1LDYgKzY0MjcsMTEgQEAKIAkJRTVC
RUY2ODEyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbTsgcGF0aCA9IGlvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25JT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1Q0IwN0RB
MjBFMTY3OEYwMDIyQzE4MyAvKiBXS0Zvcm1Db2xvckNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V0tGb3JtQ29sb3JDb250cm9sLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9s
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1Q0IwN0RCMjBFMTY3OEYwMDIyQzE4
MyAvKiBXS0Zvcm1Db2xvckNvbnRyb2wubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0Zvcm1D
b2xvckNvbnRyb2wubW07IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUNCQTc1RjI3QTMxODc4MDBERjc4NTggLyog
VW5pZmllZFNvdXJjZTEyMC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTIw
LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2UxMjAuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJ
RTVDQkE3NjAyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExOS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE5LmNwcCI7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUU1Q0JBNzYxMjdBMzE4NzkwMERGNzg1OCAvKiBV
bmlmaWVkU291cmNlMTE4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTgu
Y3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmll
ZFNvdXJjZTExOC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlF
NUNCQTc2MjI3QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTE3LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9X
ZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTcuY3BwIjsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTVDQkE3NjMyN0EzMTg3QjAwREY3ODU4IC8qIFVu
aWZpZWRTb3VyY2UxMTYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExNi5j
cHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVk
U291cmNlMTE2LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUU1
REVGQTY3MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
aG90b3NVSVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRDI3NUFF
MTMzMDA4NjNEOEYgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5tYWMucGxpc3QgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFj
LnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRTI3NUFFMTMzMDA4
NjNEOEYgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzI1Nyw3ICs3Mjc0LDEwIEBACiAJCQkJ
QkMwMzJEQUYxMEY0MzgwRjAwNThDMTVBIC8qIFdlYkV2ZW50LmggKi8sCiAJCQkJQkMwMzJEQjAx
MEY0MzgwRjAwNThDMTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5jcHAgKi8sCiAJCQkJQkMwMzJE
QjExMEY0MzgwRjAwNThDMTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5oICovLAorCQkJCUU1MzA5
QjdEMjdBMjg3MkYwMEIxMDYzMSAvKiBXZWJGaW5kT3B0aW9ucy5jcHAgKi8sCiAJCQkJMUE5MEMx
RUQxMjY0RkQ1MDAwM0U0NEQ0IC8qIFdlYkZpbmRPcHRpb25zLmggKi8sCisJCQkJRTUyMjdEODMy
N0ExMTIzMTAwOEVBQjU3IC8qIFdlYkZvdW5kVGV4dFJhbmdlLmNwcCAqLywKKwkJCQlFNTIyN0Q4
MjI3QTExMjMxMDA4RUFCNTcgLyogV2ViRm91bmRUZXh0UmFuZ2UuaCAqLywKIAkJCQlCQzBFNjA3
MjEyRDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgKi8sCiAJCQkJ
QkMwRTYwNzExMkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLywK
IAkJCQk5M0E4OEIzNDFCQzZFQUJBMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuY3Bw
ICovLApAQCAtODI2Niw2ICs4Mjg2LDExIEBACiAJCQkJM0NBRUNCNUUyNzQ2NUFFMzAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwICovLAogCQkJCTRDQUVDQjVFMjc0NjVBRTMwMEFCNzhE
MCAvKiBVbmlmaWVkU291cmNlMTE0LmNwcCAqLywKIAkJCQk1Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4
RDAgLyogVW5pZmllZFNvdXJjZTExNS5jcHAgKi8sCisJCQkJRTVDQkE3NjMyN0EzMTg3QjAwREY3
ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTYuY3BwICovLAorCQkJCUU1Q0JBNzYyMjdBMzE4NzkwMERG
Nzg1OCAvKiBVbmlmaWVkU291cmNlMTE3LmNwcCAqLywKKwkJCQlFNUNCQTc2MTI3QTMxODc5MDBE
Rjc4NTggLyogVW5pZmllZFNvdXJjZTExOC5jcHAgKi8sCisJCQkJRTVDQkE3NjAyN0EzMTg3OTAw
REY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwICovLAorCQkJCUU1Q0JBNzVGMjdBMzE4Nzgw
MERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTIwLmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gInVu
aWZpZWQtc291cmNlcyI7CiAJCQlwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVk
LXNvdXJjZXMiOwpAQCAtMTA3OTgsNiArMTA4MjMsOCBAQAogCQkJCTVDN0ZCNDZGMjFFOTdDMEMw
MDlFMzI0MSAvKiBXZWJDb29raWVKYXIuaCAqLywKIAkJCQkxQTVCMUM1MjE4OTg3RURGMDA0RkNG
OUIgLyogV2ViRG9jdW1lbnRMb2FkZXIuY3BwICovLAogCQkJCTFBNUIxQzUzMTg5ODdFREYwMDRG
Q0Y5QiAvKiBXZWJEb2N1bWVudExvYWRlci5oICovLAorCQkJCUU1NUNGRDREMjc5RDMxQzMwMDJG
MTAyMCAvKiBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuY3BwICovLAorCQkJCUU1NUNGRDRD
Mjc5RDMxQzMwMDJGMTAyMCAvKiBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaCAqLywKIAkJ
CQlCQzExMUFEQzExMkY1QjkzMDAzMzdCQUIgLyogV2ViRnJhbWUuY3BwICovLAogCQkJCUJDMDMy
RDg5MTBGNDM3QTAwMDU4QzE1QSAvKiBXZWJGcmFtZS5oICovLAogCQkJCUJDODU3Rjg0MTJCODJE
MEIwMEVERUIyRSAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgKi8sCkBAIC0xMzQ0
NCw2ICsxMzQ3MSw4IEBACiAJCQkJMUE5MEMxRUUxMjY0RkQ1MDAwM0U0NEQ0IC8qIFdlYkZpbmRP
cHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIgLyog
V2ViRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTYxMjE0RTZDQjAwMEI5
OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTUyMjdEODQyN0ExMTI2MTAwOEVBQjU3IC8qIFdlYkZvdW5kVGV4dFJhbmdlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNTVDRkQ0RTI3OUQzMUU1MDAyRjEwMjAgLyogV2ViRm91bmRUZXh0UmFu
Z2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4RDEwRjQzN0EwMDA1OEMx
NUEgLyogV2ViRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDdGMTBGNDM3OEQwMDU4
QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5MUYy
Q0IxMjFCNjdBRDAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTU3MzgsNiArMTU3NjcsMTEgQEAKIAkJCQkzQ0FFQ0I2NjI3NDY1QUU0MDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTExMy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0Q0FFQ0I2
NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFNUNCQTc2NjI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJj
ZTExNi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFNUNCQTc2ODI3QTMxOEUxMDBERjc4NTggLyog
VW5pZmllZFNvdXJjZTExNy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFNUNCQTc2NTI3QTMxOEUx
MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFNUNC
QTc2NzI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFNUNCQTc2NDI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTEyMC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYgLyogVXNlckludGVy
ZmFjZUlkaW9tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGUy
OTUyODgwM2IzYzkyM2IwMDZlMWM0MGJhYWZmN2Y4OThhMDlhMmMuLmM1M2YzZWJmNTlkM2U5ZTc1
NjI0YzUzOTAyMmMxNTJhOGU0NTkwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTU3LDI0ICs1Nyw2IEBACiBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJDb3JlOjpGaW5k
T3B0aW9ucyBjb3JlKE9wdGlvblNldDxGaW5kT3B0aW9ucz4gb3B0aW9ucykKLXsKLSAgICBXZWJD
b3JlOjpGaW5kT3B0aW9ucyByZXN1bHQ7Ci0gICAgaWYgKG9wdGlvbnMuY29udGFpbnMoRmluZE9w
dGlvbnM6OkNhc2VJbnNlbnNpdGl2ZSkpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6Q2Fz
ZUluc2Vuc2l0aXZlKTsKLSAgICBpZiAob3B0aW9ucy5jb250YWlucyhGaW5kT3B0aW9uczo6QXRX
b3JkU3RhcnRzKSkKLSAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpBdFdvcmRTdGFydHMpOwot
ICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25zOjpUcmVhdE1lZGlhbENhcGl0YWxB
c1dvcmRTdGFydCkpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6VHJlYXRNZWRpYWxDYXBp
dGFsQXNXb3JkU3RhcnQpOwotICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25zOjpC
YWNrd2FyZHMpKQotICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkJhY2t3YXJkcyk7Ci0gICAg
aWYgKG9wdGlvbnMuY29udGFpbnMoRmluZE9wdGlvbnM6OldyYXBBcm91bmQpKQotICAgICAgICBy
ZXN1bHQuYWRkKFdlYkNvcmU6OldyYXBBcm91bmQpOwotICAgIGlmIChvcHRpb25zLmNvbnRhaW5z
KEZpbmRPcHRpb25zOjpBdFdvcmRFbmRzKSkKLSAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpB
dFdvcmRFbmRzKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBGaW5kQ29udHJvbGxlcjo6Rmlu
ZENvbnRyb2xsZXIoV2ViUGFnZSogd2ViUGFnZSkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVy
LmgKaW5kZXggZjc4ODA0YzQ4NmJmYTE3NzgxMjRkNjA0MGVhZDUxZDlkNGQwNWMyNi4uZWVhNTg2
OGJlMzVhNzlhZTNlNGY1ZDI0MDk1ZDk1YWFjMGU0Y2E3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5oCkBAIC0xMTgsNiArMTE4LDQg
QEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotV2ViQ29yZTo6RmluZE9wdGlvbnMgY29yZShPcHRp
b25TZXQ8RmluZE9wdGlvbnM+KTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGb3VuZFRleHRSYW5nZUNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0
UmFuZ2VDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg3OGQ1NTZlMzg5M2E4ODczOWRhOTli
ODVlY2JkZTVlN2E2YTgzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEy
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJGb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NoYXJhY3RlclJhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VPdmVybGF5Q29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Nb3Vz
ZUV2ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaW1wbGVSYW5nZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVGV4dEl0ZXJhdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJGb3VuZFRl
eHRSYW5nZUNvbnRyb2xsZXI6OldlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcihXZWJQYWdlJiB3
ZWJQYWdlKQorICAgIDogbV93ZWJQYWdlKHdlYlBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViRm91bmRU
ZXh0UmFuZ2VDb250cm9sbGVyOjpmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIE9wdGlvblNldDxGaW5kT3B0aW9ucz4gb3B0aW9ucywgdWludDMyX3Qg
bWF4TWF0Y2hDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViRm91bmRUZXh0
UmFuZ2U+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcmVzdWx0ID0gbV93
ZWJQYWdlLT5jb3JlUGFnZSgpLT5maW5kVGV4dE1hdGNoZXMoc3RyaW5nLCBjb3JlKG9wdGlvbnMp
LCBtYXhNYXRjaENvdW50LCBmYWxzZSk7CisgICAgVmVjdG9yPFdlYkNvcmU6OlNpbXBsZVJhbmdl
PiBmaW5kTWF0Y2hlcyA9IFdURk1vdmUocmVzdWx0LnJhbmdlcyk7CisKKyAgICBTdHJpbmcgZnJh
bWVOYW1lOworICAgIHVpbnQ2NF90IG9yZGVyID0gMDsKKyAgICBWZWN0b3I8V2ViRm91bmRUZXh0
UmFuZ2U+IGZvdW5kVGV4dFJhbmdlczsKKyAgICBmb3IgKGF1dG8mIHNpbXBsZVJhbmdlIDogZmlu
ZE1hdGNoZXMpIHsKKyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBzaW1wbGVSYW5nZS5zdGFydENv
bnRhaW5lcigpLmRvY3VtZW50KCk7CisKKyAgICAgICAgYXV0byogZWxlbWVudCA9IGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudCgpOworICAgICAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgU3RyaW5nIGN1cnJlbnRGcmFtZU5hbWUgPSBkb2N1bWVudC5mcmFt
ZSgpLT50cmVlKCkudW5pcXVlTmFtZSgpOworICAgICAgICBpZiAoZnJhbWVOYW1lICE9IGN1cnJl
bnRGcmFtZU5hbWUpIHsKKyAgICAgICAgICAgIGZyYW1lTmFtZSA9IGN1cnJlbnRGcmFtZU5hbWU7
CisgICAgICAgICAgICBvcmRlcisrOworICAgICAgICB9CisKKyAgICAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBnZXQgdGhlIGNoYXJhY3RlciByYW5nZXMgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUg
U2ltcGxlUmFuZ2VzIHRvIGF2b2lkIGFkZGl0aW9uYWwgdHJhdmVyc2Fscy4KKyAgICAgICAgYXV0
byByYW5nZSA9IGNoYXJhY3RlclJhbmdlKG1ha2VCb3VuZGFyeVBvaW50QmVmb3JlTm9kZUNvbnRl
bnRzKCplbGVtZW50KSwgc2ltcGxlUmFuZ2UsIFdlYkNvcmU6OmZpbmRJdGVyYXRvck9wdGlvbnMo
KSk7CisgICAgICAgIGF1dG8gZm91bmRUZXh0UmFuZ2UgPSBXZWJGb3VuZFRleHRSYW5nZSB7IHJh
bmdlLmxvY2F0aW9uLCByYW5nZS5sZW5ndGgsIGZyYW1lTmFtZS5sZW5ndGgoKSA/IGZyYW1lTmFt
ZSA6IGVtcHR5U3RyaW5nKCksIG9yZGVyIH07CisKKyAgICAgICAgZm91bmRUZXh0UmFuZ2VzLmFw
cGVuZChmb3VuZFRleHRSYW5nZSk7CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShmb3VuZFRleHRSYW5nZXMpKTsKK30KKwordm9pZCBXZWJGb3VuZFRleHRSYW5nZUNvbnRy
b2xsZXI6OmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdl
JiByYW5nZSwgRmluZERlY29yYXRpb25TdHlsZSBzdHlsZSkKK3sKKyAgICBVTlVTRURfUEFSQU0o
cmFuZ2UpOworICAgIFVOVVNFRF9QQVJBTShzdHlsZSk7Cit9CisKK3ZvaWQgV2ViRm91bmRUZXh0
UmFuZ2VDb250cm9sbGVyOjpzY3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUoY29uc3QgV2ViRm91bmRU
ZXh0UmFuZ2UmIHJhbmdlKQoreworICAgIFVOVVNFRF9QQVJBTShyYW5nZSk7Cit9CisKK3ZvaWQg
V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjpjbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dCgp
Cit7CisKK30KKwordm9pZCBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRpZEJlZ2luVGV4
dFNlYXJjaE9wZXJhdGlvbigpCit7CisKK30KKwordm9pZCBXZWJGb3VuZFRleHRSYW5nZUNvbnRy
b2xsZXI6OmRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKQoreworCit9CisKK3ZvaWQgV2ViRm91
bmRUZXh0UmFuZ2VDb250cm9sbGVyOjp3aWxsTW92ZVRvUGFnZShXZWJDb3JlOjpQYWdlT3Zlcmxh
eSYsIFdlYkNvcmU6OlBhZ2UqIHBhZ2UpCit7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworfQor
Cit2b2lkIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjo6ZGlkTW92ZVRvUGFnZShXZWJDb3Jl
OjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OlBhZ2UqKQoreworCit9CisKK2Jvb2wgV2ViRm91bmRU
ZXh0UmFuZ2VDb250cm9sbGVyOjptb3VzZUV2ZW50KFdlYkNvcmU6OlBhZ2VPdmVybGF5JiwgY29u
c3QgV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50JikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjpkcmF3UmVjdChXZWJDb3JlOjpQ
YWdlT3ZlcmxheSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBkaXJ0eVJlY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKGdy
YXBoaWNzQ29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGRpcnR5UmVjdCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NzFkOWVjNGM2M2ZmYjZhNWRmYTBiZjI2MDViNGYxN2ZiMGZhOWE2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250
cm9sbGVyLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJXZWJGb3VuZFRleHRSYW5nZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRmluZE9wdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lu
dFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgRG9jdW1lbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQ
YWdlOworCitjbGFzcyBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIgOiBwcml2YXRlIFdlYkNv
cmU6OlBhZ2VPdmVybGF5OjpDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcik7CisK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIoV2ViUGFn
ZSYpOworCisgICAgdm9pZCBmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoY29uc3QgU3Ry
aW5nJiwgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiwgdWludDMyX3QgbWF4TWF0Y2hDb3VudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZT4mJik+
JiYpOworCisgICAgdm9pZCBkZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShjb25zdCBXZWJGb3Vu
ZFRleHRSYW5nZSYsIEZpbmREZWNvcmF0aW9uU3R5bGUpOworICAgIHZvaWQgc2Nyb2xsVGV4dFJh
bmdlVG9WaXNpYmxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJik7CisKKyAgICB2b2lkIGNsZWFy
QWxsRGVjb3JhdGVkRm91bmRUZXh0KCk7CisKKyAgICB2b2lkIGRpZEJlZ2luVGV4dFNlYXJjaE9w
ZXJhdGlvbigpOworICAgIHZvaWQgZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpOworCitwcml2
YXRlOgorICAgIC8vIFBhZ2VPdmVybGF5OjpDbGllbnQuCisgICAgdm9pZCB3aWxsTW92ZVRvUGFn
ZShXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OlBhZ2UqKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZE1vdmVUb1BhZ2UoV2ViQ29yZTo6UGFnZU92ZXJsYXkmLCBXZWJDb3JlOjpQYWdlKikg
b3ZlcnJpZGU7CisgICAgYm9vbCBtb3VzZUV2ZW50KFdlYkNvcmU6OlBhZ2VPdmVybGF5JiwgY29u
c3QgV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3
UmVjdChXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGRpcnR5UmVjdCkgb3ZlcnJpZGU7CisKKyAgICBXZWFrUHRy
PFdlYlBhZ2U+IG1fd2ViUGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="476498"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
    <flag name="commit-queue"
          id="476510"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450191</attachid>
            <date>2022-01-27 15:37:03 -0800</date>
            <delta_ts>2022-01-27 23:32:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-235691-20220127153701.patch</filename>
            <type>text/plain</type>
            <size>45755</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNkYzZhYjJhZDAyZjQ3
ZjE5MjhmMjhmMjY2NzVjYTM3YjJlZGU0Zi4uNjRiZDljOGU5OGJiNGNiZWUyZjA1YmMyYzgyOTQ2
NTRmYjQxZWQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTI3ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgV2Vi
Rm91bmRUZXh0UmFuZ2UgYW5kIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlciB0byBzdXBwb3J0
IHJlc3RvcmFibGUgZmluZCByZXN1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzU2OTEKKyAgICAgICAgcmRhcjovLzg4MTE3MTY3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICogZWRpdGluZy9UZXh0SXRl
cmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEl0ZXJhdG9yT3B0aW9ucyk6IERlbGV0
ZWQuCisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OmZpbmRJdGVyYXRvck9wdGlvbnMpOgorCisgICAgICAgIE1vdmVkIG1ldGhvZCBpbnRvIGhlYWRl
ciB0byBzaGFyZSBsb2dpYy4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjpmaW5kVGV4dE1hdGNoZXMpOgorCisgICAgICAgIEFkZGVkIGEgd2F5IHRv
IHN1cHByZXNzIG1hcmtpbmcgdGV4dCBtYXRjaGVzLgorCisgICAgICAgICogcGFnZS9QYWdlLmg6
CisKIDIwMjItMDEtMjUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIERpc2FibGUgaW5wdXQtc2VjdXJpdHkgQ1NTIHByb3BlcnR5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg0
MjZkYjc2M2NkZmEzM2JiMDVlM2Y2ZDRjNDdmMDcwNGVkYmU4NDcuLmI4OTNiMTQ1YmRiMDgwZGNi
MDZjOWU0NjI0NTdjNzM0ZDhmZTA3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjIt
MDEtMjcgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIElu
dHJvZHVjZSBXZWJGb3VuZFRleHRSYW5nZSBhbmQgV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVy
IHRvIHN1cHBvcnQgcmVzdG9yYWJsZSBmaW5kIHJlc3VsdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTY5MQorICAgICAgICByZGFyOi8vODgxMTcx
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVG8gYmV0
dGVyIHN1cHBvcnQgdGhlIF9VSVRleHRTZWFyY2hpbmcgcHJvdG9jb2wsIFdLV2ViVmlldyBuZWVk
cyB0byBiZQorICAgICAgICBhYmxlIHRvIHJlc3RvcmUgZmluZC1pbi1wYWdlIHJlc3VsdHMgZm91
bmQgaW4gb3RoZXIgdmlld3Mgd2l0aCB0aGUgc2FtZQorICAgICAgICBjb250ZW50LgorCisgICAg
ICAgIFRoZSBkZXNpcmVkIGZ1bmN0aW9uYWxpdHkgaXMgYWNoaWV2ZWQgdGhyb3VnaCB0aGUgdXNl
IG9mIHR3byBuZXcgaW50ZXJmYWNlczoKKyAgICAgICAgV2ViRm91bmRUZXh0UmFuZ2UsIHdoaWNo
IHJlcHJlc2VudHMgYSByYW5nZSBvZiBmb3VuZCB0ZXh0LCBhbmQKKyAgICAgICAgV2ViRm91bmRU
ZXh0UmFuZ2VDb250cm9sbGVyLCB3aGljaCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBmaW5kaW5n
LAorICAgICAgICBkZWNvcmF0aW5nLCBhbmQgc2Nyb2xsaW5nIHRvIHJhbmdlcy4KKworICAgICAg
ICBBICJmb3VuZCB0ZXh0IHJhbmdlIiBpcyB1bmlxdWVseSBpZGVudGlmaWVkIGJ5IGEgbG9jYXRp
b24sIGxlbmd0aCwKKyAgICAgICAgZnJhbWUgaWRlbnRpZmllciwgYW5kIG9yZGVyLiBUaGUgbG9j
YXRpb24gYW5kIGxlbmd0aCByZXByZXNlbnQgYQorICAgICAgICBjaGFyYWN0ZXIgcmFuZ2UgaW4g
ZG9jdW1lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgZnJhbWUgaWRlbnRpZmllci4KKyAgICAgICAg
VGhlIG9yZGVyIHJlcHJlc2VudHMgdGhlIHJlbGF0aXZlIG9yZGVyaW5nIGJldHdlZW4gcmFuZ2Vz
IC0gZm9yCisgICAgICAgIGV4YW1wbGUsIHJlc3VsdHMgaW4gdGhlIG1haW4gZnJhbWUgYXJlIG9y
ZGVyZWQgYmVmb3JlIHJlc3VsdHMgaW4gYQorICAgICAgICBzdWJmcmFtZS4KKworICAgICAgICBU
aGlzIGlzIHRoZSBmaXJzdCBpbiBhIHNlcmllcyBvZiBwYXRjaGVzIHRoYXQgaW1wbGVtZW50cyB0
aGUgaW50ZXJmYWNlLgorICAgICAgICBUaGUgYXZhaWxhYmxlIG1ldGhvZHMgb24gV2ViRm91bmRU
ZXh0UmFuZ2VDb250cm9sbGVyIG1hcCBvbmUtdG8tb25lIHdpdGgKKyAgICAgICAgdGhlIF9VSVRl
eHRTZWFyY2hpbmcgcHJvdG9jb2wuIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgY3JlYXRpb24g
b2YKKyAgICAgICAgcmVzdG9yYWJsZSBmb3VuZCByYW5nZXMuCisKKyAgICAgICAgKiBTY3JpcHRz
L2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaDoKKworICAgICAgICBJbmNyZWFzZSB1bmlmaWVk
IGJ1aWxkIGZpbGVzIHRvIDEyMC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkZp
bmRPcHRpb25zLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRmluZE9w
dGlvbnMuaC4KKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgICogU2hhcmVkL1dlYkZp
bmRPcHRpb25zLmg6CisgICAgICAgICogU2hhcmVkL1dlYkZvdW5kVGV4dFJhbmdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkZvdW5kVGV4dFJhbmdlLmg6CisgICAgICAgIChXVEY6OldlYkZvdW5kVGV4dFJhbmdlSGFzaDo6
aGFzaCk6CisgICAgICAgIChXVEY6OldlYkZvdW5kVGV4dFJhbmdlSGFzaDo6ZXF1YWwpOgorICAg
ICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U+OjplbXB0eVZh
bHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdl
Pjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJL
aXQ6OldlYkZvdW5kVGV4dFJhbmdlPjo6aXNEZWxldGVkVmFsdWUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKworICAgICAgICBGaXggdW5pZmllZCBzb3Vy
Y2UtcmVsYXRlZCBidWlsZCBmYWlsdXJlLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAg
ICAgICogVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L0ZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OldlYkZvdW5k
VGV4dFJhbmdlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdl
Q29udHJvbGxlcjo6ZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKToKKworICAgICAgICBV
c2UgdGhlIEZyYW1lVHJlZXMncyB1bmlxdWVOYW1lIGFzIGEgZnJhbWUgaWRlbnRpZmllciBmb3Ig
dGhlIGZvdW5kCisgICAgICAgIHRleHQgcmFuZ2UuIFRoZXNlIG5hbWVzIGFyZSBjb25zaXN0ZW50
IGFjcm9zcyB3ZWIgY29udGVudCB3aXRoIHRoZQorICAgICAgICBzYW1lIG1hcmt1cC4KKworICAg
ICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRlY29yYXRlVGV4dFJh
bmdlV2l0aFN0eWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2VDb250cm9s
bGVyOjpzY3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXI6OmNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjpkaWRCZWdpblRleHRTZWFy
Y2hPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xs
ZXI6OmRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXI6OndpbGxNb3ZlVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjpkaWRNb3ZlVG9QYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjptb3VzZUV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjpkcmF3UmVjdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlci5oOiBBZGRl
ZC4KKwogMjAyMi0wMS0yNCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWdyZXNzaW9uIChyMjg2OTM2KTogU2Vzc2lvblN0b3JhZ2UgZGF0YSBpcyBub3QgY2xl
YXJlZCB3aGVuIGRlbGV0aW5nIHdlYnNpdGUgZGF0YSBieSBtb2RpZmljYXRpb24gdGltZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IGVhOGMzZjEwMzU3MTU0M2Y0
YmY3NThiMWJiMDQ5OGY0MWI3NGRlOWMuLmNmNzE0OTVmZjlkMjQ5ZTVhMzViYTVmYTRhZTIwOGU5
YjBjNWVhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTI0
NzgsMTQgKzI0NzgsNiBAQCBTdHJpbmcgcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVha1NwYWNlKGNv
bnN0IFNpbXBsZVJhbmdlJiByYW5nZSwgVGV4dEl0ZXJhdG9yQmVoYQogICAgIHJldHVybiBwbGFp
blRleHQocmFuZ2UsIGRlZmF1bHRCZWhhdmlvcnMsIGlzRGlzcGxheVN0cmluZykucmVwbGFjZShu
b0JyZWFrU3BhY2UsICcgJyk7CiB9CiAKLXN0YXRpYyBjb25zdGV4cHIgVGV4dEl0ZXJhdG9yQmVo
YXZpb3JzIGZpbmRJdGVyYXRvck9wdGlvbnMoRmluZE9wdGlvbnMgb3B0aW9ucykKLXsKLSAgICBU
ZXh0SXRlcmF0b3JCZWhhdmlvcnMgaXRlcmF0b3JPcHRpb25zIHsgVGV4dEl0ZXJhdG9yQmVoYXZp
b3I6OkVudGVyc1RleHRDb250cm9scywgVGV4dEl0ZXJhdG9yQmVoYXZpb3I6OkNsaXBzVG9GcmFt
ZUFuY2VzdG9ycywgVGV4dEl0ZXJhdG9yQmVoYXZpb3I6OkVudGVyc0ltYWdlT3ZlcmxheXMgfTsK
LSAgICBpZiAoIW9wdGlvbnMuY29udGFpbnMoRG9Ob3RUcmF2ZXJzZUZsYXRUcmVlKSkKLSAgICAg
ICAgaXRlcmF0b3JPcHRpb25zLmFkZChUZXh0SXRlcmF0b3JCZWhhdmlvcjo6VHJhdmVyc2VzRmxh
dFRyZWUpOwotICAgIHJldHVybiBpdGVyYXRvck9wdGlvbnM7Ci19Ci0KIHN0YXRpYyB2b2lkIGZv
ckVhY2hNYXRjaChjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UsIGNvbnN0IFN0cmluZyYgdGFyZ2V0
LCBGaW5kT3B0aW9ucyBvcHRpb25zLCBjb25zdCBGdW5jdGlvbjxib29sKENoYXJhY3RlclJhbmdl
KT4mIG1hdGNoKQogewogICAgIFNlYXJjaEJ1ZmZlciBidWZmZXIodGFyZ2V0LCBvcHRpb25zKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5oCmluZGV4IDE3M2IwOWQ0NmFkOTMyOWMw
NDhiN2RlNzE1NWY2M2E5MDRhNzVjZTYuLjVhMTE1YmJlYWZiY2Q0ZWUxNzRmYmUyNTQyNDI1Zjk3
MDIyZmM1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaApAQCAtMjkzLDYg
KzI5MywxNCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaWRMb29rQWhlYWQgeyB0cnVlIH07CiB9
OwogCitjb25zdGV4cHIgVGV4dEl0ZXJhdG9yQmVoYXZpb3JzIGZpbmRJdGVyYXRvck9wdGlvbnMo
RmluZE9wdGlvbnMgb3B0aW9ucyA9IHsgfSkKK3sKKyAgICBUZXh0SXRlcmF0b3JCZWhhdmlvcnMg
aXRlcmF0b3JPcHRpb25zIHsgVGV4dEl0ZXJhdG9yQmVoYXZpb3I6OkVudGVyc1RleHRDb250cm9s
cywgVGV4dEl0ZXJhdG9yQmVoYXZpb3I6OkNsaXBzVG9GcmFtZUFuY2VzdG9ycywgVGV4dEl0ZXJh
dG9yQmVoYXZpb3I6OkVudGVyc0ltYWdlT3ZlcmxheXMgfTsKKyAgICBpZiAoIW9wdGlvbnMuY29u
dGFpbnMoRG9Ob3RUcmF2ZXJzZUZsYXRUcmVlKSkKKyAgICAgICAgaXRlcmF0b3JPcHRpb25zLmFk
ZChUZXh0SXRlcmF0b3JCZWhhdmlvcjo6VHJhdmVyc2VzRmxhdFRyZWUpOworICAgIHJldHVybiBp
dGVyYXRvck9wdGlvbnM7Cit9CisKIGlubGluZSBDaGFyYWN0ZXJSYW5nZSBjaGFyYWN0ZXJSYW5n
ZShjb25zdCBCb3VuZGFyeVBvaW50JiBzdGFydCwgY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlLCBU
ZXh0SXRlcmF0b3JCZWhhdmlvcnMgYmVoYXZpb3JzKQogewogICAgIHJldHVybiB7IGNoYXJhY3Rl
ckNvdW50KHsgc3RhcnQsIHJhbmdlLnN0YXJ0IH0sIGJlaGF2aW9ycyksIGNoYXJhY3RlckNvdW50
KHJhbmdlLCBiZWhhdmlvcnMpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjODgxYjI2YmEyOGRk
NTg3ZTE3ZjhlYjM4OWQ0MjUwYjQwODkxZmY3Li40MTVlYTYxMzQ1Zjc3MDE0ZWQ3MTNjNmNkOTcz
NjYyOGNlNzJlNjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTc2NSwxNCArNzY1LDE0IEBAIGJv
b2wgUGFnZTo6ZmluZFN0cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0
aW9ucywgRGlkV3JhcCogZGlkV3JhCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1hdXRvIFBhZ2U6
OmZpbmRUZXh0TWF0Y2hlcyhjb25zdCBTdHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0aW9u
cywgdW5zaWduZWQgbGltaXQpIC0+IE1hdGNoaW5nUmFuZ2VzCithdXRvIFBhZ2U6OmZpbmRUZXh0
TWF0Y2hlcyhjb25zdCBTdHJpbmcmIHRhcmdldCwgRmluZE9wdGlvbnMgb3B0aW9ucywgdW5zaWdu
ZWQgbGltaXQsIGJvb2wgbWFya01hdGNoZXMpIC0+IE1hdGNoaW5nUmFuZ2VzCiB7CiAgICAgTWF0
Y2hpbmdSYW5nZXMgcmVzdWx0OwogCiAgICAgRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOwog
ICAgIEZyYW1lKiBmcmFtZVdpdGhTZWxlY3Rpb24gPSBudWxscHRyOwogICAgIGRvIHsKLSAgICAg
ICAgZnJhbWUtPmVkaXRvcigpLmNvdW50TWF0Y2hlc0ZvclRleHQodGFyZ2V0LCB7IH0sIG9wdGlv
bnMsIGxpbWl0ID8gKGxpbWl0IC0gcmVzdWx0LnJhbmdlcy5zaXplKCkpIDogMCwgdHJ1ZSwgJnJl
c3VsdC5yYW5nZXMpOworICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY291bnRNYXRjaGVzRm9yVGV4
dCh0YXJnZXQsIHsgfSwgb3B0aW9ucywgbGltaXQgPyAobGltaXQgLSByZXN1bHQucmFuZ2VzLnNp
emUoKSkgOiAwLCBtYXJrTWF0Y2hlcywgJnJlc3VsdC5yYW5nZXMpOwogICAgICAgICBpZiAoZnJh
bWUtPnNlbGVjdGlvbigpLmlzUmFuZ2UoKSkKICAgICAgICAgICAgIGZyYW1lV2l0aFNlbGVjdGlv
biA9IGZyYW1lOwogICAgICAgICBmcmFtZSA9IGluY3JlbWVudEZyYW1lKGZyYW1lLCB0cnVlLCBD
YW5XcmFwOjpObyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGJlN2Y4MTM5MDQ4MmFiOTE4NWIyMDE2ODlj
ZDI0OTE2NWU1NTFmZGYuLmU1NDkyZWNmMjI1MzQxMTVhZTZlOTQ5ZjE2ZmRlNjU3NGM5ODMxMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0zOTQsNyArMzk0LDcgQEAgcHVibGljOgogICAgICAgICBpbnQg
aW5kZXhGb3JTZWxlY3Rpb24geyAwIH07IC8vIEZJWE1FOiBDb25zaWRlciBzdGQ6Om9wdGlvbmFs
PHVuc2lnbmVkPiBvciB1bnNpZ25lZCBmb3IgdGhpcyBpbnN0ZWFkLgogICAgIH07CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBpbnQgTm9NYXRjaEFmdGVyVXNlclNlbGVjdGlvbiA9IC0xOwotICAgIFdF
QkNPUkVfRVhQT1JUIE1hdGNoaW5nUmFuZ2VzIGZpbmRUZXh0TWF0Y2hlcyhjb25zdCBTdHJpbmcm
LCBGaW5kT3B0aW9ucywgdW5zaWduZWQgbWF4Q291bnQpOworICAgIFdFQkNPUkVfRVhQT1JUIE1h
dGNoaW5nUmFuZ2VzIGZpbmRUZXh0TWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucywg
dW5zaWduZWQgbWF4Q291bnQsIGJvb2wgbWFya01hdGNoZXMgPSB0cnVlKTsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaAppbmRleCAyYTNkNmI1
ZWViMjQxNDAxYzgwZWEzYmVkODIzODJkMDM1NjUyMzY0Li5kZWZkOTY5MzE1NzcwY2Y1N2JjYjZh
ZWU0MjdhZjRjYjZjY2JiYmYwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2Vu
ZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9nZW5l
cmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKQEAgLTE0LDcgKzE0LDcgQEAgaWYgWyAteiAiJHtCVUlM
RF9TQ1JJUFRTX0RJUn0iIF07IHRoZW4KICAgICBmaQogZmkKIAotVW5pZmllZFNvdXJjZUNwcEZp
bGVDb3VudD0xMTUKK1VuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTIwCiBVbmlmaWVkU291cmNl
TW1GaWxlQ291bnQ9ODAKIAogaWYgWyAkIyAtZXEgMCBdOyB0aGVuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBjYTM3YWNiZDVjNWFhMjgwMjNhOTNkOGQ0MThj
YzAyZDkyNWI5OTQ1Li40MDkyZWQwZTUwMGY4NTBjZTgzMjNkNzczOTYyYmE5ZGZhNjU5ZDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTg2NSw2ICs4NjUs
NyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYktpdDo6Q2FsbERv
d25sb2FkRGlkU3RhcnQnOiBbJyJEb3dubG9hZE1hbmFnZXIuaCInXSwKICAgICAgICAgJ1dlYktp
dDo6Q29udGVudFdvcmxkSWRlbnRpZmllcic6IFsnIkNvbnRlbnRXb3JsZFNoYXJlZC5oIiddLAog
ICAgICAgICAnV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCc6IFsnIkRvY3Vt
ZW50RWRpdGluZ0NvbnRleHQuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6RmluZERlY29yYXRpb25T
dHlsZSc6IFsnIldlYkZpbmRPcHRpb25zLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkZpbmRPcHRp
b25zJzogWyciV2ViRmluZE9wdGlvbnMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6Rm9ybVN1Ym1p
dExpc3RlbmVySWRlbnRpZmllcic6IFsnIklkZW50aWZpZXJUeXBlcy5oIiddLAogICAgICAgICAn
V2ViS2l0OjpHZXN0dXJlUmVjb2duaXplclN0YXRlJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJGaW5kT3B0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJGaW5kT3B0aW9ucy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk1NzAwMGU3
NzYyNDMwOTE3NGFjZTA4OTNjYzBmYmQ1YWM0NWUwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkZpbmRPcHRpb25zLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb3JlOjpGaW5kT3B0aW9ucyBjb3JlKE9wdGlv
blNldDxGaW5kT3B0aW9ucz4gb3B0aW9ucykKK3sKKyAgICBXZWJDb3JlOjpGaW5kT3B0aW9ucyBy
ZXN1bHQ7CisgICAgaWYgKG9wdGlvbnMuY29udGFpbnMoRmluZE9wdGlvbnM6OkNhc2VJbnNlbnNp
dGl2ZSkpCisgICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6Q2FzZUluc2Vuc2l0aXZlKTsKKyAg
ICBpZiAob3B0aW9ucy5jb250YWlucyhGaW5kT3B0aW9uczo6QXRXb3JkU3RhcnRzKSkKKyAgICAg
ICAgcmVzdWx0LmFkZChXZWJDb3JlOjpBdFdvcmRTdGFydHMpOworICAgIGlmIChvcHRpb25zLmNv
bnRhaW5zKEZpbmRPcHRpb25zOjpUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCkpCisgICAg
ICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6VHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQpOwor
ICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25zOjpCYWNrd2FyZHMpKQorICAgICAg
ICByZXN1bHQuYWRkKFdlYkNvcmU6OkJhY2t3YXJkcyk7CisgICAgaWYgKG9wdGlvbnMuY29udGFp
bnMoRmluZE9wdGlvbnM6OldyYXBBcm91bmQpKQorICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6
OldyYXBBcm91bmQpOworICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25zOjpBdFdv
cmRFbmRzKSkKKyAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpBdFdvcmRFbmRzKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZpbmRPcHRpb25zLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJGaW5kT3B0aW9ucy5oCmluZGV4IGE3N2I2NDdjODNmODg2Y2I4MDNjMTY5YWY2Y2UyMzlj
OTE3NzU3N2YuLjJjMmIwNjhkZTFhYjdlMmVmYmE1YzFhYmIzYzQ3N2U1ZTNjOWQxN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkZpbmRPcHRpb25zLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViRmluZE9wdGlvbnMuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPFdlYkNvcmUvRmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQzLDYgKzQ0LDE0IEBA
IGVudW0gY2xhc3MgRmluZE9wdGlvbnMgOiB1aW50MTZfdCB7CiAgICAgQXRXb3JkRW5kcyA9IDEg
PDwgMTAsCiB9OwogCitlbnVtIGNsYXNzIEZpbmREZWNvcmF0aW9uU3R5bGUgOiB1aW50OF90IHsK
KyAgICBOb3JtYWwsCisgICAgRm91bmQsCisgICAgSGlnaGxpZ2h0ZWQsCit9OworCitXZWJDb3Jl
OjpGaW5kT3B0aW9ucyBjb3JlKE9wdGlvblNldDxGaW5kT3B0aW9ucz4pOworCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogbmFtZXNwYWNlIFdURiB7CkBAIC02NCw0ICs3MywxMyBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6RmluZE9wdGlvbnM+IHsKICAgICA+OwogfTsK
IAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5
bGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJLaXQ6OkZp
bmREZWNvcmF0aW9uU3R5bGUsCisgICAgICAgIFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZTo6
Tm9ybWFsLAorICAgICAgICBXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGU6OkZvdW5kLAorICAg
ICAgICBXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGU6OkhpZ2hsaWdodGVkCisgICAgPjsKK307
CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViRm91bmRUZXh0UmFuZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRm91bmRUZXh0
UmFuZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZDYyYWRkYTg5YWFhZjI3NWVjZmZmZjc3ZDA0NjdlOWQ1
MWZmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJGb3VuZFRl
eHRSYW5nZS5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJGb3VuZFRleHRSYW5nZS5oIgorCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkZvdW5k
VGV4dFJhbmdlOjpvcGVyYXRvcj09KGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJiBvdGhlcikgY29u
c3QKK3sKKyAgICByZXR1cm4gbG9jYXRpb24gPT0gb3RoZXIubG9jYXRpb24KKyAgICAgICAgJiYg
bGVuZ3RoID09IG90aGVyLmxlbmd0aAorICAgICAgICAmJiBmcmFtZUlkZW50aWZpZXIgPT0gb3Ro
ZXIuZnJhbWVJZGVudGlmaWVyCisgICAgICAgICYmIG9yZGVyID09IG90aGVyLm9yZGVyOworfQor
Cit2b2lkIFdlYkZvdW5kVGV4dFJhbmdlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgbG9jYXRpb247CisgICAgZW5jb2RlciA8PCBsZW5ndGg7
CisgICAgZW5jb2RlciA8PCBmcmFtZUlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCBvcmRlcjsK
K30KKworc3RkOjpvcHRpb25hbDxXZWJGb3VuZFRleHRSYW5nZT4gV2ViRm91bmRUZXh0UmFuZ2U6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgV2ViRm91bmRUZXh0UmFuZ2Ug
cmVzdWx0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubG9jYXRpb24pKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQubGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmZyYW1lSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5vcmRlcikpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkZvdW5kVGV4dFJhbmdlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJGb3VuZFRl
eHRSYW5nZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1OWIxODg1MzY3ZDgzOTlmNjkzNjEyYzA5MWFmOGIwZmQw
MTZlMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJGb3VuZFRl
eHRSYW5nZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3N0cnVjdCBXZWJGb3VuZFRleHRSYW5nZSB7CisgICAgdWludDY0X3QgbG9jYXRpb24geyAwIH07
CisgICAgdWludDY0X3QgbGVuZ3RoIHsgMCB9OworICAgIFN0cmluZyBmcmFtZUlkZW50aWZpZXI7
CisgICAgdWludDY0X3Qgb3JkZXIgeyAwIH07CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
V2ViRm91bmRUZXh0UmFuZ2UmIG90aGVyKSBjb25zdDsKKworICAgIHZvaWQgZW5jb2RlKElQQzo6
RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkZvdW5kVGV4dFJh
bmdlPiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworbmFtZXNwYWNlIFdURiB7CisKK3N0cnVjdCBXZWJGb3VuZFRleHRSYW5nZUhhc2ggeworICAg
IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UmIHJh
bmdlKSB7IHJldHVybiBwYWlySW50SGFzaChyYW5nZS5sb2NhdGlvbiwgcmFuZ2UubGVuZ3RoKTsg
fQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2Um
IGEsIGNvbnN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UmIGIpIHsgcmV0dXJuIGEgPT0gYjsg
fQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0g
dHJ1ZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViS2l0OjpXZWJGb3Vu
ZFRleHRSYW5nZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdl
PiB7CisgICAgc3RhdGljIFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UgZW1wdHlWYWx1ZSgpIHsg
cmV0dXJuIHsgfTsgfQorCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdl
YktpdDo6V2ViRm91bmRUZXh0UmFuZ2UmIHJhbmdlKSB7IHJhbmdlID0geyB9OyB9CisgICAgc3Rh
dGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZSYg
cmFuZ2UpIHsgcmV0dXJuIHJhbmdlID09IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UgeyB9OyB9
Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYkZvdW5kVGV4
dFJhbmdlPiA6IFdlYkZvdW5kVGV4dFJhbmdlSGFzaCB7IH07CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNTgyYzVl
M2JlMzM1MTE2MjljY2M2NmY4MjFlY2YyZTAxYmM1MzZkOS4uMDVkNDM0NTZkNTg5MzE0OGI4NDEz
Yjk3MWQ2ZDRkODgxYjEwMzU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTMzNyw3ICszMzcsNyBAQCBzdGQ6Om9wdGlv
bmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OgogICAgIHBhcmFtZXRlcnMuaGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0gV1RG
TW92ZSgqaGFzUmVzb3VyY2VMb2FkQ2xpZW50KTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBz
dGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8RGVzdGluYXRpb25Db2xvclNwYWNlPj4gY29sb3JT
cGFjZTsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RGVzdGluYXRp
b25Db2xvclNwYWNlPj4gY29sb3JTcGFjZTsKICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2U7CiAg
ICAgaWYgKCFjb2xvclNwYWNlKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKaW5kZXggYzVjODU2ZjljZDY5NDFlZjJkNGZkYWMyZjVjZDEzODRhMWRlOWNlOC4uZGY0N2M3
ODZjOGRlZjYyNGY0M2ZjOTQ2ZGRjODJkMzQzMjI5OTk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNTUs
NiArMjU1LDggQEAgU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKIFNoYXJlZC9XZWJF
cnJvcnMuY3BwCiBTaGFyZWQvV2ViRXZlbnQuY3BwCiBTaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9u
LmNwcAorU2hhcmVkL1dlYkZpbmRPcHRpb25zLmNwcAorU2hhcmVkL1dlYkZvdW5kVGV4dFJhbmdl
LmNwcAogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCiBTaGFyZWQvV2ViSGl0VGVz
dFJlc3VsdERhdGEuY3BwCiBTaGFyZWQvV2ViSW1hZ2UuY3BwCkBAIC04MjgsNiArODMwLDcgQEAg
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkNvb2tpZUNhY2hlLmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAK
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJEb2N1bWVudExvYWRlci5jcHAKK1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAxYjlkOTdj
MzhjNDEyYTdjYzhkM2ZmYzRhNTJjYTVjZTY1Njc1NWYyLi42MmMyMmVlMmJjNzM3ODJiZDQ1MWI1
MDc4NTcwNzVlMzZhNmQ4ZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VuaWZpZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKQEAgLTIxLDggKzIxLDEzIEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQt
c291cmNlcy9VbmlmaWVkU291cmNlMTEzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExNC5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2Vz
L1VuaWZpZWRTb3VyY2UxMTUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE2LmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmll
ZFNvdXJjZTExNy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTguY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
MTE5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEyLW1tLm1tCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTIuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291
cmNlcy9VbmlmaWVkU291cmNlMTIwLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEzLW1tLm1tCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTQtbW0ubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGExMTVjODg0Yzg2
ZmVjYmNhODVmNDFkYjZhMWRlNjA5MjIwNzU2YTMuLjUyMTk5NGE4MzlkM2VmZjIzYjMyYjdiNjBk
ZTk3NjQwMDQzMGRjMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTk3OCwxNSArMTk3OCwyMiBAQAogCQlFNEQ1NEQwNDIxRjFENzJE
MDA3RTNDMzYgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwQzFGOTMyMUYw
Qjk2RTAwNTMwNzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Mu
aCAqLzsgfTsKIAkJRTRFNTdGNkIyMUE4M0IxMjAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTU3
RjZBMjFBODNCMTEwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggKi87IH07CiAJCUU1
MDYyMDkyMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTA2MjA5MTI1NDIxMDIwMDBDNDMwOTEg
LyogQ29udGFjdHNVSVNQSS5oICovOyB9OworCQlFNTIyN0Q4NDI3QTExMjYxMDA4RUFCNTcgLyog
V2ViRm91bmRUZXh0UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU1MjI3RDgyMjdBMTEyMzEwMDhFQUI1NyAvKiBXZWJGb3VuZFRleHRSYW5nZS5o
ICovOyB9OwogCQlFNTJDRjU1MjIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0
aW9uUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
LmggKi87IH07CiAJCUU1NUNEMUY1MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29z
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NUNE
MUYzMjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCAqLzsgfTsKIAkJRTU1
Q0QyMDAyNEQwOEQ4RjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTVDRDFGQzI0RDA4ODBCMDA0MkRC
OUMgLyogV2ViRGF0ZVRpbWVQaWNrZXIuaCAqLzsgfTsKIAkJRTU1Q0QyMDMyNEQwOUYxRjAwNDJE
QjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRp
bWVQaWNrZXJNYWMuaCAqLzsgfTsKKwkJRTU1Q0ZENEUyNzlEMzFFNTAwMkYxMDIwIC8qIFdlYkZv
dW5kVGV4dFJhbmdlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTU1Q0ZENEMyNzlEMzFDMzAwMkYxMDIwIC8qIFdlYkZvdW5kVGV4dFJh
bmdlQ29udHJvbGxlci5oICovOyB9OwogCQlFNTY4QjkxRjIwQTNBQjJGMDBFM0M4NTYgLyogV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTY4QjkxRTIwQTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi87IH07CiAJCUU1NjhCOTIyMjBBM0FDNkEwMEUzQzg1
NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NjhCOTIwMjBBM0FDNkEwMEUzQzg1NiAv
KiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCAqLzsgfTsKIAkJRTU5NkRENkEy
NTFFNzFENDAwQzI3NUE3IC8qIFdLQ29udGFjdFBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU5NkRENjgyNTFFNzFEMzAwQzI3NUE3IC8qIFdL
Q29udGFjdFBpY2tlci5oICovOyB9OwogCQlFNUJFRjY4MjIxMzBDNDgwMDBGMzExMTEgLyogV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUJFRjY4MDIxMzBDNDdGMDBGMzExMTEgLyogV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmggKi87IH07CiAJCUU1Q0IwN0RDMjBFMTY3OEYw
MDIyQzE4MyAvKiBXS0Zvcm1Db2xvckNvbnRyb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0IwN0RBMjBFMTY3OEYwMDIyQzE4MyAvKiBXS0Zvcm1D
b2xvckNvbnRyb2wuaCAqLzsgfTsKKwkJRTVDQkE3NjQyN0EzMThFMTAwREY3ODU4IC8qIFVuaWZp
ZWRTb3VyY2UxMjAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTVDQkE3NUYyN0EzMTg3ODAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMjAuY3BwICov
OyB9OworCQlFNUNCQTc2NTI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNCQTc2MTI3
QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOC5jcHAgKi87IH07CisJCUU1Q0JBNzY2
MjdBMzE4RTEwMERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTE2LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0JBNzYzMjdBMzE4N0IwMERGNzg1OCAv
KiBVbmlmaWVkU291cmNlMTE2LmNwcCAqLzsgfTsKKwkJRTVDQkE3NjcyN0EzMThFMTAwREY3ODU4
IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTVDQkE3NjAyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2Ux
MTkuY3BwICovOyB9OworCQlFNUNCQTc2ODI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJj
ZTExNy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NUNCQTc2MjI3QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAgKi87IH07CiAJ
CUU1REVGQTY4MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVERUZBNjcyNkY4RjQyNjAwQUI2OERC
IC8qIFBob3Rvc1VJU1BJLmggKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBX
S0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3Zlcmxh
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0
MDlCQTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOUJBMTcxRTZFNjRC
MzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTcsOCArNjQwNCwxMSBAQAogCQlF
NEU1N0Y2ODIxQTgzQjAzMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAv
KiBSZW1vdGVMYXllclRyZWVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUxheWVyVHJlZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUw
NjIwOTEyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29udGFjdHNVSVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTIyN0Q4MjI3
QTExMjMxMDA4RUFCNTcgLyogV2ViRm91bmRUZXh0UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Rm91bmRUZXh0UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUyMjdEODMy
N0ExMTIzMTAwOEVBQjU3IC8qIFdlYkZvdW5kVGV4dFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkZvdW5kVGV4dFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUyQ0Y1NTEyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEYXRhTGlzdFN1
Z2dlc3Rpb25QaWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTMwOUI3
RDI3QTI4NzJGMDBCMTA2MzEgLyogV2ViRmluZE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViRmluZE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTRB
MTRDRTIwRkNGQjdCMDA3RTEzRDggLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NUNEMUYzMjRDRjc0N0QwMDQyREI5QyAv
KiBXZWJEYXRlVGltZUNob29zZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0ZVRpbWVDaG9vc2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NUNEMUY0MjRDRjc0N0QwMDQyREI5
QyAvKiBXZWJEYXRlVGltZUNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0ZVRp
bWVDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0MDYsNiArNjQx
Niw4IEBACiAJCUU1NUNEMUZEMjREMDg4MEIwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEYXRlVGltZVBpY2tlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU1NUNEMjAxMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRlVGlt
ZVBpY2tlck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRlVGltZVBpY2tlck1hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTVDRDIwMjI0RDA5RjFGMDA0MkRCOUMgLyogV2Vi
RGF0ZVRpbWVQaWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJEYXRlVGltZVBp
Y2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTU1Q0ZENEMyNzlEMzFD
MzAwMkYxMDIwIC8qIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTU1Q0ZENEQyNzlEMzFDMzAwMkYxMDIwIC8qIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJv
bGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkxRTIwQTNBQjJGMDBFM0M4
NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bk1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkyMTIwQTNBQzZBMDBF
M0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDE1LDYgKzY0MjcsMTEgQEAKIAkJRTVCRUY2ODEyMTMw
QzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bklPUy5tbTsgcGF0aCA9IGlvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1Q0IwN0RBMjBFMTY3OEYw
MDIyQzE4MyAvKiBXS0Zvcm1Db2xvckNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tGb3JtQ29s
b3JDb250cm9sLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1Q0IwN0RCMjBFMTY3OEYwMDIyQzE4MyAvKiBXS0Zv
cm1Db2xvckNvbnRyb2wubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0Zvcm1Db2xvckNvbnRy
b2wubW07IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFNUNCQTc1RjI3QTMxODc4MDBERjc4NTggLyogVW5pZmllZFNv
dXJjZTEyMC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTIwLmNwcDsgcGF0
aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Ux
MjAuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTVDQkE3NjAy
N0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gVW5pZmllZFNvdXJjZTExOS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3Vu
aWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE5LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCUU1Q0JBNzYxMjdBMzE4NzkwMERGNzg1OCAvKiBVbmlmaWVkU291
cmNlMTE4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTguY3BwOyBwYXRo
ID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEx
OC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFNUNCQTc2MjI3
QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBVbmlmaWVkU291cmNlMTE3LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5p
ZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTcuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJRTVDQkE3NjMyN0EzMTg3QjAwREY3ODU4IC8qIFVuaWZpZWRTb3Vy
Y2UxMTYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExNi5jcHA7IHBhdGgg
PSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE2
LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUU1REVGQTY3MjZG
OEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaG90b3NVSVNQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRDI3NUFFMTMzMDA4NjNE
OEYgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5tYWMucGxpc3QgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnBsaXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRTI3NUFFMTMzMDA4NjNEOEYgLyog
Y29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0
LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzI1Nyw3ICs3Mjc0LDEwIEBACiAJCQkJQkMwMzJEQUYx
MEY0MzgwRjAwNThDMTVBIC8qIFdlYkV2ZW50LmggKi8sCiAJCQkJQkMwMzJEQjAxMEY0MzgwRjAw
NThDMTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5jcHAgKi8sCiAJCQkJQkMwMzJEQjExMEY0Mzgw
RjAwNThDMTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5oICovLAorCQkJCUU1MzA5QjdEMjdBMjg3
MkYwMEIxMDYzMSAvKiBXZWJGaW5kT3B0aW9ucy5jcHAgKi8sCiAJCQkJMUE5MEMxRUQxMjY0RkQ1
MDAwM0U0NEQ0IC8qIFdlYkZpbmRPcHRpb25zLmggKi8sCisJCQkJRTUyMjdEODMyN0ExMTIzMTAw
OEVBQjU3IC8qIFdlYkZvdW5kVGV4dFJhbmdlLmNwcCAqLywKKwkJCQlFNTIyN0Q4MjI3QTExMjMx
MDA4RUFCNTcgLyogV2ViRm91bmRUZXh0UmFuZ2UuaCAqLywKIAkJCQlCQzBFNjA3MjEyRDZCQzIw
MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgKi8sCiAJCQkJQkMwRTYwNzEx
MkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLywKIAkJCQk5M0E4
OEIzNDFCQzZFQUJBMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwICovLApAQCAt
ODI2Niw2ICs4Mjg2LDExIEBACiAJCQkJM0NBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZp
ZWRTb3VyY2UxMTMuY3BwICovLAogCQkJCTRDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlm
aWVkU291cmNlMTE0LmNwcCAqLywKIAkJCQk1Q0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5p
ZmllZFNvdXJjZTExNS5jcHAgKi8sCisJCQkJRTVDQkE3NjMyN0EzMTg3QjAwREY3ODU4IC8qIFVu
aWZpZWRTb3VyY2UxMTYuY3BwICovLAorCQkJCUU1Q0JBNzYyMjdBMzE4NzkwMERGNzg1OCAvKiBV
bmlmaWVkU291cmNlMTE3LmNwcCAqLywKKwkJCQlFNUNCQTc2MTI3QTMxODc5MDBERjc4NTggLyog
VW5pZmllZFNvdXJjZTExOC5jcHAgKi8sCisJCQkJRTVDQkE3NjAyN0EzMTg3OTAwREY3ODU4IC8q
IFVuaWZpZWRTb3VyY2UxMTkuY3BwICovLAorCQkJCUU1Q0JBNzVGMjdBMzE4NzgwMERGNzg1OCAv
KiBVbmlmaWVkU291cmNlMTIwLmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gInVuaWZpZWQtc291
cmNlcyI7CiAJCQlwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMi
OwpAQCAtMTA3OTgsNiArMTA4MjMsOCBAQAogCQkJCTVDN0ZCNDZGMjFFOTdDMEMwMDlFMzI0MSAv
KiBXZWJDb29raWVKYXIuaCAqLywKIAkJCQkxQTVCMUM1MjE4OTg3RURGMDA0RkNGOUIgLyogV2Vi
RG9jdW1lbnRMb2FkZXIuY3BwICovLAogCQkJCTFBNUIxQzUzMTg5ODdFREYwMDRGQ0Y5QiAvKiBX
ZWJEb2N1bWVudExvYWRlci5oICovLAorCQkJCUU1NUNGRDREMjc5RDMxQzMwMDJGMTAyMCAvKiBX
ZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuY3BwICovLAorCQkJCUU1NUNGRDRDMjc5RDMxQzMw
MDJGMTAyMCAvKiBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaCAqLywKIAkJCQlCQzExMUFE
QzExMkY1QjkzMDAzMzdCQUIgLyogV2ViRnJhbWUuY3BwICovLAogCQkJCUJDMDMyRDg5MTBGNDM3
QTAwMDU4QzE1QSAvKiBXZWJGcmFtZS5oICovLAogCQkJCUJDODU3Rjg0MTJCODJEMEIwMEVERUIy
RSAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgKi8sCkBAIC0xMzQ0NCw2ICsxMzQ3
MSw4IEBACiAJCQkJMUE5MEMxRUUxMjY0RkQ1MDAwM0U0NEQ0IC8qIFdlYkZpbmRPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTYxMjE0RTZDQjAwMEI5OEVCIC8qIFdl
YkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTUyMjdE
ODQyN0ExMTI2MTAwOEVBQjU3IC8qIFdlYkZvdW5kVGV4dFJhbmdlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFNTVDRkQ0RTI3OUQzMUU1MDAyRjEwMjAgLyogV2ViRm91bmRUZXh0UmFuZ2VDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4RDEwRjQzN0EwMDA1OEMxNUEgLyogV2Vi
RnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDdGMTBGNDM3OEQwMDU4QzE1QSAvKiBX
ZWJGcmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5MUYyQ0IxMjFCNjdB
RDAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApA
QCAtMTU3MzgsNiArMTU3NjcsMTEgQEAKIAkJCQkzQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExMy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0Q0FFQ0I2NjI3NDY1QUU0
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1Q0FF
Q0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFNUNCQTc2NjI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNi5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFNUNCQTc2ODI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNv
dXJjZTExNy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFNUNCQTc2NTI3QTMxOEUxMDBERjc4NTgg
LyogVW5pZmllZFNvdXJjZTExOC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFNUNCQTc2NzI3QTMx
OEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
NUNCQTc2NDI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTEyMC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYgLyogVXNlckludGVyZmFjZUlkaW9t
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGUyOTUyODgwM2Iz
YzkyM2IwMDZlMWM0MGJhYWZmN2Y4OThhMDlhMmMuLmM1M2YzZWJmNTlkM2U5ZTc1NjI0YzUzOTAy
MmMxNTJhOGU0NTkwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTU3LDI0ICs1Nyw2IEBACiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJDb3JlOjpGaW5kT3B0aW9ucyBj
b3JlKE9wdGlvblNldDxGaW5kT3B0aW9ucz4gb3B0aW9ucykKLXsKLSAgICBXZWJDb3JlOjpGaW5k
T3B0aW9ucyByZXN1bHQ7Ci0gICAgaWYgKG9wdGlvbnMuY29udGFpbnMoRmluZE9wdGlvbnM6OkNh
c2VJbnNlbnNpdGl2ZSkpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6Q2FzZUluc2Vuc2l0
aXZlKTsKLSAgICBpZiAob3B0aW9ucy5jb250YWlucyhGaW5kT3B0aW9uczo6QXRXb3JkU3RhcnRz
KSkKLSAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpBdFdvcmRTdGFydHMpOwotICAgIGlmIChv
cHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25zOjpUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFy
dCkpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6VHJlYXRNZWRpYWxDYXBpdGFsQXNXb3Jk
U3RhcnQpOwotICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKEZpbmRPcHRpb25zOjpCYWNrd2FyZHMp
KQotICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkJhY2t3YXJkcyk7Ci0gICAgaWYgKG9wdGlv
bnMuY29udGFpbnMoRmluZE9wdGlvbnM6OldyYXBBcm91bmQpKQotICAgICAgICByZXN1bHQuYWRk
KFdlYkNvcmU6OldyYXBBcm91bmQpOwotICAgIGlmIChvcHRpb25zLmNvbnRhaW5zKEZpbmRPcHRp
b25zOjpBdFdvcmRFbmRzKSkKLSAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpBdFdvcmRFbmRz
KTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBGaW5kQ29udHJvbGxlcjo6RmluZENvbnRyb2xs
ZXIoV2ViUGFnZSogd2ViUGFnZSkKICAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmgKaW5kZXgg
Zjc4ODA0YzQ4NmJmYTE3NzgxMjRkNjA0MGVhZDUxZDlkNGQwNWMyNi4uZWVhNTg2OGJlMzVhNzlh
ZTNlNGY1ZDI0MDk1ZDk1YWFjMGU0Y2E3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5oCkBAIC0xMTgsNiArMTE4LDQgQEAgcHJpdmF0
ZToKICNlbmRpZgogfTsKIAotV2ViQ29yZTo6RmluZE9wdGlvbnMgY29yZShPcHRpb25TZXQ8Rmlu
ZE9wdGlvbnM+KTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250
cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg3OGQ1NTZlMzg5M2E4ODczOWRhOTliODVlY2JkZTVl
N2E2YTgzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEyNSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJGb3VuZFRleHRSYW5n
ZUNvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0NoYXJhY3RlclJhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVy
bGF5Q29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TaW1wbGVSYW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4
dEl0ZXJhdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJGb3VuZFRleHRSYW5nZUNv
bnRyb2xsZXI6OldlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcihXZWJQYWdlJiB3ZWJQYWdlKQor
ICAgIDogbV93ZWJQYWdlKHdlYlBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViRm91bmRUZXh0UmFuZ2VD
b250cm9sbGVyOjpmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiBz
dHJpbmcsIE9wdGlvblNldDxGaW5kT3B0aW9ucz4gb3B0aW9ucywgdWludDMyX3QgbWF4TWF0Y2hD
b3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViRm91bmRUZXh0UmFuZ2U+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcmVzdWx0ID0gbV93ZWJQYWdlLT5j
b3JlUGFnZSgpLT5maW5kVGV4dE1hdGNoZXMoc3RyaW5nLCBjb3JlKG9wdGlvbnMpLCBtYXhNYXRj
aENvdW50LCBmYWxzZSk7CisgICAgVmVjdG9yPFdlYkNvcmU6OlNpbXBsZVJhbmdlPiBmaW5kTWF0
Y2hlcyA9IFdURk1vdmUocmVzdWx0LnJhbmdlcyk7CisKKyAgICBTdHJpbmcgZnJhbWVOYW1lOwor
ICAgIHVpbnQ2NF90IG9yZGVyID0gMDsKKyAgICBWZWN0b3I8V2ViRm91bmRUZXh0UmFuZ2U+IGZv
dW5kVGV4dFJhbmdlczsKKyAgICBmb3IgKGF1dG8mIHNpbXBsZVJhbmdlIDogZmluZE1hdGNoZXMp
IHsKKyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBzaW1wbGVSYW5nZS5zdGFydENvbnRhaW5lcigp
LmRvY3VtZW50KCk7CisKKyAgICAgICAgYXV0byogZWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudCgpOworICAgICAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgU3RyaW5nIGN1cnJlbnRGcmFtZU5hbWUgPSBkb2N1bWVudC5mcmFtZSgpLT50cmVl
KCkudW5pcXVlTmFtZSgpOworICAgICAgICBpZiAoZnJhbWVOYW1lICE9IGN1cnJlbnRGcmFtZU5h
bWUpIHsKKyAgICAgICAgICAgIGZyYW1lTmFtZSA9IGN1cnJlbnRGcmFtZU5hbWU7CisgICAgICAg
ICAgICBvcmRlcisrOworICAgICAgICB9CisKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBn
ZXQgdGhlIGNoYXJhY3RlciByYW5nZXMgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgU2ltcGxlUmFu
Z2VzIHRvIGF2b2lkIGFkZGl0aW9uYWwgdHJhdmVyc2Fscy4KKyAgICAgICAgYXV0byByYW5nZSA9
IGNoYXJhY3RlclJhbmdlKG1ha2VCb3VuZGFyeVBvaW50QmVmb3JlTm9kZUNvbnRlbnRzKCplbGVt
ZW50KSwgc2ltcGxlUmFuZ2UsIFdlYkNvcmU6OmZpbmRJdGVyYXRvck9wdGlvbnMoKSk7CisgICAg
ICAgIGF1dG8gZm91bmRUZXh0UmFuZ2UgPSBXZWJGb3VuZFRleHRSYW5nZSB7IHJhbmdlLmxvY2F0
aW9uLCByYW5nZS5sZW5ndGgsIGZyYW1lTmFtZS5sZW5ndGgoKSA/IGZyYW1lTmFtZSA6IGVtcHR5
U3RyaW5nKCksIG9yZGVyIH07CisKKyAgICAgICAgZm91bmRUZXh0UmFuZ2VzLmFwcGVuZChmb3Vu
ZFRleHRSYW5nZSk7CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShmb3Vu
ZFRleHRSYW5nZXMpKTsKK30KKwordm9pZCBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRl
Y29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJiByYW5nZSwg
RmluZERlY29yYXRpb25TdHlsZSBzdHlsZSkKK3sKKyAgICBVTlVTRURfUEFSQU0ocmFuZ2UpOwor
ICAgIFVOVVNFRF9QQVJBTShzdHlsZSk7Cit9CisKK3ZvaWQgV2ViRm91bmRUZXh0UmFuZ2VDb250
cm9sbGVyOjpzY3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUoY29uc3QgV2ViRm91bmRUZXh0UmFuZ2Um
IHJhbmdlKQoreworICAgIFVOVVNFRF9QQVJBTShyYW5nZSk7Cit9CisKK3ZvaWQgV2ViRm91bmRU
ZXh0UmFuZ2VDb250cm9sbGVyOjpjbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dCgpCit7CisKK30K
Kwordm9pZCBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRpZEJlZ2luVGV4dFNlYXJjaE9w
ZXJhdGlvbigpCit7CisKK30KKwordm9pZCBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI6OmRp
ZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKQoreworCit9CisKK3ZvaWQgV2ViRm91bmRUZXh0UmFu
Z2VDb250cm9sbGVyOjp3aWxsTW92ZVRvUGFnZShXZWJDb3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNv
cmU6OlBhZ2UqIHBhZ2UpCit7CisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworfQorCit2b2lkIFdl
YkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjo6ZGlkTW92ZVRvUGFnZShXZWJDb3JlOjpQYWdlT3Zl
cmxheSYsIFdlYkNvcmU6OlBhZ2UqKQoreworCit9CisKK2Jvb2wgV2ViRm91bmRUZXh0UmFuZ2VD
b250cm9sbGVyOjptb3VzZUV2ZW50KFdlYkNvcmU6OlBhZ2VPdmVybGF5JiwgY29uc3QgV2ViQ29y
ZTo6UGxhdGZvcm1Nb3VzZUV2ZW50JikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOjpkcmF3UmVjdChXZWJDb3JlOjpQYWdlT3Zlcmxh
eSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiBkaXJ0eVJlY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKGdyYXBoaWNzQ29u
dGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGRpcnR5UmVjdCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
Rm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzFkOWVjNGM2
M2ZmYjZhNWRmYTBiZjI2MDViNGYxN2ZiMGZhOWE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmgK
QEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
V2ViRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJXZWJGb3VuZFRleHRSYW5nZS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRmluZE9wdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
RG9jdW1lbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitj
bGFzcyBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIgOiBwcml2YXRlIFdlYkNvcmU6OlBhZ2VP
dmVybGF5OjpDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcik7CisKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIoV2ViUGFnZSYpOworCisg
ICAgdm9pZCBmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgT3B0
aW9uU2V0PEZpbmRPcHRpb25zPiwgdWludDMyX3QgbWF4TWF0Y2hDb3VudCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8V2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZT4mJik+JiYpOworCisg
ICAgdm9pZCBkZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShjb25zdCBXZWJGb3VuZFRleHRSYW5n
ZSYsIEZpbmREZWNvcmF0aW9uU3R5bGUpOworICAgIHZvaWQgc2Nyb2xsVGV4dFJhbmdlVG9WaXNp
YmxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJik7CisKKyAgICB2b2lkIGNsZWFyQWxsRGVjb3Jh
dGVkRm91bmRUZXh0KCk7CisKKyAgICB2b2lkIGRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbigp
OworICAgIHZvaWQgZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpOworCitwcml2YXRlOgorICAg
IC8vIFBhZ2VPdmVybGF5OjpDbGllbnQuCisgICAgdm9pZCB3aWxsTW92ZVRvUGFnZShXZWJDb3Jl
OjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OlBhZ2UqKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZE1v
dmVUb1BhZ2UoV2ViQ29yZTo6UGFnZU92ZXJsYXkmLCBXZWJDb3JlOjpQYWdlKikgb3ZlcnJpZGU7
CisgICAgYm9vbCBtb3VzZUV2ZW50KFdlYkNvcmU6OlBhZ2VPdmVybGF5JiwgY29uc3QgV2ViQ29y
ZTo6UGxhdGZvcm1Nb3VzZUV2ZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3UmVjdChXZWJD
b3JlOjpQYWdlT3ZlcmxheSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGRpcnR5UmVjdCkgb3ZlcnJpZGU7CisKKyAgICBXZWFrUHRyPFdlYlBhZ2U+
IG1fd2ViUGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>