<?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>223236</bug_id>
          
          <creation_ts>2021-03-15 21:01:46 -0700</creation_ts>
          <short_desc>[SOUP] SOUP3 crashes inside soup_message_set_request_body</short_desc>
          <delta_ts>2021-03-18 04:13:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>220508</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Lauro Moura">lmoura</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>nina</cc>
    
    <cc>pgriffis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1739825</commentid>
    <comment_count>0</comment_count>
      <attachid>423293</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-03-15 21:01:46 -0700</bug_when>
    <thetext>Created attachment 423293
http/tests/xmlhttprequest/upload-onloadstart-event.html crash log

http/tests/xmlhttprequest/loadstart-event-init.html
http/tests/xmlhttprequest/redirect-cross-origin-post-sync.html
http/tests/xmlhttprequest/redirect-cross-origin-post.html
http/tests/xmlhttprequest/response-access-on-error.html
http/tests/xmlhttprequest/upload-onabort-progressevent-attributes.html
http/tests/xmlhttprequest/upload-onload-event.html
http/tests/xmlhttprequest/upload-onload-progressevent-attributes.html
http/tests/xmlhttprequest/upload-onloadend-event-after-abort.html
http/tests/xmlhttprequest/upload-onloadend-event-after-load.html
http/tests/xmlhttprequest/upload-onloadstart-event.html
http/tests/xmlhttprequest/upload-onprogress-event.html
http/tests/xmlhttprequest/upload-progress-events.html
http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events.html

These happen to crash locally and in the bots (althought not all might be run, due to early exits).

This is only a partial list. Other tests might be affected.

STDERR:
STDERR: (process:2504): libsoup-CRITICAL **: 20:42:47.243: soup_message_set_request_body: assertion &apos;stream == NULL || G_IS_POLLABLE_INPUT_STREAM (stream)&apos; failed
STDERR: LEAK: 1 WebPageProxy

Tip of trace for http/tests/xmlhttprequest/upload-onloadstart-event.html (full attached)

Thread 1 (Thread 0x7efdae91e9c0 (LWP 2504)):
#0  g_logv (log_domain=0x7efdafbb7943 &quot;libsoup&quot;, log_level=G_LOG_LEVEL_CRITICAL, format=&lt;optimized out&gt;, args=&lt;optimized out&gt;) at ../glib/gmessages.c:1413
#1  0x00007efdb0eb4973 in g_log (log_domain=&lt;optimized out&gt;, log_level=&lt;optimized out&gt;, format=&lt;optimized out&gt;) at ../glib/gmessages.c:1451
#2  0x00007efdbc2257f6 in WebCore::ResourceRequest::updateSoupMessageBody(_SoupMessage*, WebCore::BlobRegistryImpl&amp;) const (this=0x7efd6c2f3788, soupMessage=0x7efd4c0083b0 [SoupMessage], blobRegistry=...
) at ../../Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:138
#3  0x00007efdbc22556c in WebCore::ResourceRequest::createSoupMessage(WebCore::BlobRegistryImpl&amp;) const (this=0x7efd6c2f3788, blobRegistry=...) at ../../Source/WebCore/platform/network/soup/ResourceReque
stSoup.cpp:90
#4  0x00007efdb8c06b17 in WebKit::NetworkDataTaskSoup::createRequest(WebCore::ResourceRequest&amp;&amp;, WebKit::NetworkDataTaskSoup::WasBlockingCookies) (this=0x7efd6c2f3580, request=..., wasBlockingCookies=Web
Kit::NetworkDataTaskSoup::WasBlockingCookies::No) at ../../Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:127
#5  0x00007efdb8c065f1 in WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup(WebKit::NetworkSession&amp;, WebKit::NetworkDataTaskClient&amp;, WebCore::ResourceRequest const&amp;, WTF::ObjectIdentifier&lt;WebCore::FrameId
entifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::StoredCredentialsPolicy, WebCore::ContentSniffingPolicy, WebCore::ContentEncodingSniffingPolicy, bool, bool) (this=0x7efd6c2f35
80, session=..., client=..., requestWithCredentials=..., frameID=..., pageID=..., storedCredentialsPolicy=WebCore::StoredCredentialsPolicy::Use, shouldContentSniff=WebCore::ContentSniffingPolicy::DoNotSniffContent, shouldClearReferrerOnHTTPSToHTTPRedirect=true, dataTaskIsForMainFrameNavigation=false) at ../../Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp:81
#6  0x00007efdb88c1b57 in WebKit::NetworkDataTaskSoup::create(WebKit::NetworkSession&amp;, WebKit::NetworkDataTaskClient&amp;, WebCore::ResourceRequest const&amp;, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::StoredCredentialsPolicy, WebCore::ContentSniffingPolicy, WebCore::ContentEncodingSniffingPolicy, bool, bool) (session=..., client=..., request=..., frameID=..., pageID=..., storedCredentialsPolicy=WebCore::StoredCredentialsPolicy::Use, shouldContentSniff=WebCore::ContentSniffingPolicy::DoNotSniffContent, shouldContentEncodingSniff=WebCore::ContentEncodingSniffingPolicy::DoNotSniff, shouldClearReferrerOnHTTPSToHTTPRedirect=true, dataTaskIsForMainFrameNavigation=false) at ../../Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.h:45
#7  0x00007efdb88acb5d in WebKit::NetworkDataTask::create(WebKit::NetworkSession&amp;, WebKit::NetworkDataTaskClient&amp;, WebKit::NetworkLoadParameters const&amp;) (session=..., client=..., parameters=...) at ../../Source/WebKit/NetworkProcess/NetworkDataTask.cpp:60
#8  0x00007efdb88b015b in WebKit::NetworkLoad::NetworkLoad(WebKit::NetworkLoadClient&amp;, WebCore::BlobRegistryImpl*, WebKit::NetworkLoadParameters&amp;&amp;, WebKit::NetworkSession&amp;) (this=0x7efdae0e1000, client=..., blobRegistry=0x7efdae0d6138, parameters=..., networkSession=...) at ../../Source/WebKit/NetworkProcess/NetworkLoad.cpp:57</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739896</commentid>
    <comment_count>1</comment_count>
    <who name="Nina Kolesová">nina</who>
    <bug_when>2021-03-16 04:26:39 -0700</bug_when>
    <thetext>caused by: https://gitlab.gnome.org/GNOME/libsoup/-/commit/0a34d642a401c5880ec4f533250fdddc6dbb12b0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739897</commentid>
    <comment_count>2</comment_count>
    <who name="Nina Kolesová">nina</who>
    <bug_when>2021-03-16 04:29:13 -0700</bug_when>
    <thetext>the current soup code doesn&apos;t really have any requirement for the request body to be pollable, so the soup3 webkit code assumes that it&apos;s not necessary, but the upcoming http2 code will require it to be pollable - so the restriction was put in place - so i guess the webkit code will need to be updated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739898</commentid>
    <comment_count>3</comment_count>
    <who name="Nina Kolesová">nina</who>
    <bug_when>2021-03-16 04:32:51 -0700</bug_when>
    <thetext>i guess the thing to do here would be to just do the same as the soup2 code - i.e. read all into bytes, then set the request body from bytes rather than from the input stream...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739909</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-03-16 05:54:40 -0700</bug_when>
    <thetext>(In reply to Daniel Kolesa from comment #3)
&gt; i guess the thing to do here would be to just do the same as the soup2 code
&gt; - i.e. read all into bytes, then set the request body from bytes rather than
&gt; from the input stream...

That&apos;s problematic for long file uploads, for example. The WebKit stream can&apos;t be pollable because it used GFileInputStream internally that is not pollable. I can make it pollable and only return TRUE from can_poll when not having file streams. But the solution would be to make libsoup work without pollable streams, at least having fallback code that reads using the async apis into an intermediate buffer that is later used to write in the output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740648</commentid>
    <comment_count>5</comment_count>
      <attachid>423468</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-03-17 03:36:24 -0700</bug_when>
    <thetext>Created attachment 423468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740681</commentid>
    <comment_count>6</comment_count>
    <who name="Nina Kolesová">nina</who>
    <bug_when>2021-03-17 06:19:51 -0700</bug_when>
    <thetext>patch looks good to me, the rest of the fix needs to be in soup (remove the pollable stream requirement and implement a fallback path for when it&apos;s not in the http2 backend)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741139</commentid>
    <comment_count>7</comment_count>
      <attachid>423468</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-03-18 03:40:52 -0700</bug_when>
    <thetext>Comment on attachment 423468
Patch

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

&gt; Source/WebCore/platform/network/soup/WebKitFormDataInputStream.cpp:137
&gt; +    // GFileInputStream is not pollable, so the stream is only pollable if FormData doesn&apos;t contain EncodedFileData elements.

I wonder if it could be an options to check whether a GInputStream is a GUnixInputStream
(which does implement GPollableInputStream) which would make the file elements pollable,
or whether the GInputStream implements the GFileDescriptorBased interface, in which case
we could use the _get_fd() method and use GPollFD or similar 🤔️

(No need to change anything in this patch, by the way, this is just me mulling ideas
over. If you think any of this makes sense for a follow-up patch it would be nice
to write it down as a TODO and/or make a new Bugzilla issue to track it.)

&gt; Source/WebCore/platform/network/soup/WebKitFormDataInputStream.cpp:177
&gt; +    return g_pollable_source_new_full(stream, base.get(), cancellable);

Aren&apos;t these two lines equivalent to a plain g_pollable_input_stream_create_source() call?
As in:

   return g_pollable_input_stream_create_source(stream, cancellable);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741142</commentid>
    <comment_count>8</comment_count>
      <attachid>423468</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-03-18 03:49:17 -0700</bug_when>
    <thetext>Comment on attachment 423468
Patch

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

&gt;&gt; Source/WebCore/platform/network/soup/WebKitFormDataInputStream.cpp:137
&gt;&gt; +    // GFileInputStream is not pollable, so the stream is only pollable if FormData doesn&apos;t contain EncodedFileData elements.
&gt; 
&gt; I wonder if it could be an options to check whether a GInputStream is a GUnixInputStream
&gt; (which does implement GPollableInputStream) which would make the file elements pollable,
&gt; or whether the GInputStream implements the GFileDescriptorBased interface, in which case
&gt; we could use the _get_fd() method and use GPollFD or similar 🤔️
&gt; 
&gt; (No need to change anything in this patch, by the way, this is just me mulling ideas
&gt; over. If you think any of this makes sense for a follow-up patch it would be nice
&gt; to write it down as a TODO and/or make a new Bugzilla issue to track it.)

We are always reading local files, so it&apos;s always GFileInputStream and not pollable.

&gt;&gt; Source/WebCore/platform/network/soup/WebKitFormDataInputStream.cpp:177
&gt;&gt; +    return g_pollable_source_new_full(stream, base.get(), cancellable);
&gt; 
&gt; Aren&apos;t these two lines equivalent to a plain g_pollable_input_stream_create_source() call?
&gt; As in:
&gt; 
&gt;    return g_pollable_input_stream_create_source(stream, cancellable);

This is the implementation of g_pollable_input_stream_create_source().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741150</commentid>
    <comment_count>9</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-03-18 04:11:01 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #8)
&gt; Comment on attachment 423468 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423468&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/network/soup/WebKitFormDataInputStream.cpp:137
&gt; &gt;&gt; +    // GFileInputStream is not pollable, so the stream is only pollable if FormData doesn&apos;t contain EncodedFileData elements.
&gt; &gt; 
&gt; &gt; I wonder if it could be an options to check whether a GInputStream is a GUnixInputStream
&gt; &gt; (which does implement GPollableInputStream) which would make the file elements pollable,
&gt; &gt; or whether the GInputStream implements the GFileDescriptorBased interface, in which case
&gt; &gt; we could use the _get_fd() method and use GPollFD or similar 🤔️
&gt; &gt; 
&gt; &gt; (No need to change anything in this patch, by the way, this is just me mulling ideas
&gt; &gt; over. If you think any of this makes sense for a follow-up patch it would be nice
&gt; &gt; to write it down as a TODO and/or make a new Bugzilla issue to track it.)
&gt; 
&gt; We are always reading local files, so it&apos;s always GFileInputStream and not
&gt; pollable.

👌️

&gt; &gt;&gt; Source/WebCore/platform/network/soup/WebKitFormDataInputStream.cpp:177
&gt; &gt;&gt; +    return g_pollable_source_new_full(stream, base.get(), cancellable);
&gt; &gt; 
&gt; &gt; Aren&apos;t these two lines equivalent to a plain g_pollable_input_stream_create_source() call?
&gt; &gt; As in:
&gt; &gt; 
&gt; &gt;    return g_pollable_input_stream_create_source(stream, cancellable);
&gt; 
&gt; This is the implementation of g_pollable_input_stream_create_source().

Right, I did not notice at first, my brain is a bit foggy this morning 😇️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741151</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-03-18 04:12:53 -0700</bug_when>
    <thetext>Committed r274640 (235467@main): &lt;https://commits.webkit.org/235467@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741152</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-18 04:13:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/75567967&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>423293</attachid>
            <date>2021-03-15 21:01:46 -0700</date>
            <delta_ts>2021-03-15 21:01:46 -0700</delta_ts>
            <desc>http/tests/xmlhttprequest/upload-onloadstart-event.html crash log</desc>
            <filename>upload-onprogress-event-crash-log.txt</filename>
            <type>text/plain</type>
            <size>54590</size>
            <attacher name="Lauro Moura">lmoura</attacher>
            
              <data encoding="base64">Y3Jhc2ggbG9nIGZvciBXZWJLaXROZXR3b3JrUHJvY2VzcyAocGlkIDM0NzgpOgoKRVJST1I6IFRo
ZSBnZGIgcHJvY2VzcyBleGl0ZWQgd2l0aCBub24temVybyByZXR1cm4gY29kZSBOb25lCgpbTmV3
IExXUCAzNDc4XQpbTmV3IExXUCAzNDg1XQpbTmV3IExXUCAzNDgzXQpbTmV3IExXUCAzNDgyXQpb
TmV3IExXUCAzNDgxXQpbTmV3IExXUCAzNDg0XQpbTmV3IExXUCAzNDg5XQpbTmV3IExXUCAzNDkz
XQpbTmV3IExXUCAzNDkyXQpbTmV3IExXUCAzNDkwXQpbTmV3IExXUCAzNDkxXQpbTmV3IExXUCAz
NDg2XQpbTmV3IExXUCAzNTAzXQpbTmV3IExXUCAzNDg4XQpbTmV3IExXUCAzNDg3XQpbVGhyZWFk
IGRlYnVnZ2luZyB1c2luZyBsaWJ0aHJlYWRfZGIgZW5hYmxlZF0KVXNpbmcgaG9zdCBsaWJ0aHJl
YWRfZGIgbGlicmFyeSAiL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ0aHJlYWRfZGIuc28u
MSIuCkNvcmUgd2FzIGdlbmVyYXRlZCBieSBgL2FwcC93ZWJraXQvV2ViS2l0QnVpbGQvRGVidWcv
YmluL1dlYktpdE5ldHdvcmtQcm9jZXNzIDUgMTMnLgpQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBz
aWduYWwgU0lHVFJBUCwgVHJhY2UvYnJlYWtwb2ludCB0cmFwLgojMCAgZ19sb2d2IChsb2dfZG9t
YWluPTB4N2YxNDk5YjQxOTQzICJsaWJzb3VwIiwgbG9nX2xldmVsPUdfTE9HX0xFVkVMX0NSSVRJ
Q0FMLCBmb3JtYXQ9PG9wdGltaXplZCBvdXQ+LCBhcmdzPTxvcHRpbWl6ZWQgb3V0PikgYXQgLi4v
Z2xpYi9nbWVzc2FnZXMuYzoxNDEzCjE0MTMJCSAgZ19wcml2YXRlX3NldCAoJmdfbG9nX2RlcHRo
LCBHVUlOVF9UT19QT0lOVEVSIChkZXB0aCkpOwpbQ3VycmVudCB0aHJlYWQgaXMgMSAoVGhyZWFk
IDB4N2YxNDk4OGE4OWMwIChMV1AgMzQ3OCkpXQoKVGhyZWFkIDE1IChUaHJlYWQgMHg3ZjE0NTU0
ZmE3MDAgKExXUCAzNDg3KSk6CiMwICAweDAwMDA3ZjE0OWE4YTg1M2YgaW4gX19HSV9fX3BvbGwg
KGZkcz0weDdmMTQzODAwNTAwMCwgbmZkcz0xLCB0aW1lb3V0PS0xKSBhdCAuLi9zeXNkZXBzL3Vu
aXgvc3lzdi9saW51eC9wb2xsLmM6MjkKIzEgIDB4MDAwMDdmMTQ5YWUzNzBmZSBpbiBnX21haW5f
Y29udGV4dF9wb2xsIChwcmlvcml0eT08b3B0aW1pemVkIG91dD4sIG5fZmRzPTEsIGZkcz0weDdm
MTQzODAwNTAwMCwgdGltZW91dD08b3B0aW1pemVkIG91dD4sIGNvbnRleHQ9MHg3ZjE0MzgwMDBi
NjApIGF0IC4uL2dsaWIvZ21haW4uYzo0NDM0CiMyICBnX21haW5fY29udGV4dF9pdGVyYXRlIChj
b250ZXh0PTB4N2YxNDM4MDAwYjYwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNw
YXRjaEBlbnRyeT0xLCBzZWxmPTxvcHRpbWl6ZWQgb3V0PikgYXQgLi4vZ2xpYi9nbWFpbi5jOjQx
MjYKIzMgIDB4MDAwMDdmMTQ5YWUzNzQ4MyBpbiBnX21haW5fbG9vcF9ydW4gKGxvb3A9MHg3ZjE0
MzgwMDNlNjApIGF0IC4uL2dsaWIvZ21haW4uYzo0MzI5CiM0ICAweDAwMDA3ZjE0OWVmMDdmOTIg
aW4gV1RGOjpSdW5Mb29wOjpydW4oKSAoKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1
bkxvb3BHTGliLmNwcDoxMDgKIzUgIDB4MDAwMDdmMTQ5ZWVmZmVlYyBpbiBvcGVyYXRvcigpKCkg
Y29uc3QgKF9fY2xvc3VyZT0weDdmMTQ5N2ZmNjI5MCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYv
Z2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcDo1MQojNiAgMHgwMDAwN2YxNDllZjAxZmE0IGlu
IFdURjo6RGV0YWlsOjpDYWxsYWJsZVdyYXBwZXI8V1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5p
dGlhbGl6ZShjaGFyIGNvbnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVl
OjpRT1MpOjo8bGFtYmRhKCk+LCB2b2lkPjo6Y2FsbCh2b2lkKSAodGhpcz0weDdmMTQ5N2ZmNjI4
OCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYvRnVuY3Rpb24uaDo1MgojNyAgMHgwMDAwN2YxNDlk
ZWU0MDU1IGluIFdURjo6RnVuY3Rpb248dm9pZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAodGhp
cz0weDdmMTQ1NTRmOWMzMCkgYXQgRGVyaXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3Rm
L0Z1bmN0aW9uLmg6ODMKIzggIDB4MDAwMDdmMTQ5ZWU2YzdmYiBpbiBXVEY6OlRocmVhZDo6ZW50
cnlQb2ludChXVEY6OlRocmVhZDo6TmV3VGhyZWFkQ29udGV4dCopIChuZXdUaHJlYWRDb250ZXh0
PTB4N2YxNDk3ZmY0NGIwKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjE4
MQojOSAgMHgwMDAwN2YxNDllZjEyZjc1IGluIFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCh2b2lk
KikgKGNvbnRleHQ9MHg3ZjE0OTdmZjQ0YjApIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL3Bvc2l4
L1RocmVhZGluZ1BPU0lYLmNwcDoyNDEKIzEwIDB4MDAwMDdmMTQ5YWRjMzRkMiBpbiBzdGFydF90
aHJlYWQgKGFyZz08b3B0aW1pemVkIG91dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiMxMSAw
eDAwMDA3ZjE0OWE4YjMzMjMgaW4gY2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGlu
dXgveDg2XzY0L2Nsb25lLlM6OTUKClRocmVhZCAxNCAoVGhyZWFkIDB4N2YxNDU0Y2Y5NzAwIChM
V1AgMzQ4OCkpOgojMCAgMHgwMDAwN2YxNDlhOGE4NTNmIGluIF9fR0lfX19wb2xsIChmZHM9MHg3
ZjE0M2MwMDUwMDAsIG5mZHM9MSwgdGltZW91dD0tMSkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3Yv
bGludXgvcG9sbC5jOjI5CiMxICAweDAwMDA3ZjE0OWFlMzcwZmUgaW4gZ19tYWluX2NvbnRleHRf
cG9sbCAocHJpb3JpdHk9PG9wdGltaXplZCBvdXQ+LCBuX2Zkcz0xLCBmZHM9MHg3ZjE0M2MwMDUw
MDAsIHRpbWVvdXQ9PG9wdGltaXplZCBvdXQ+LCBjb250ZXh0PTB4N2YxNDNjMDAwYjYwKSBhdCAu
Li9nbGliL2dtYWluLmM6NDQzNAojMiAgZ19tYWluX2NvbnRleHRfaXRlcmF0ZSAoY29udGV4dD0w
eDdmMTQzYzAwMGI2MCwgYmxvY2s9YmxvY2tAZW50cnk9MSwgZGlzcGF0Y2g9ZGlzcGF0Y2hAZW50
cnk9MSwgc2VsZj08b3B0aW1pemVkIG91dD4pIGF0IC4uL2dsaWIvZ21haW4uYzo0MTI2CiMzICAw
eDAwMDA3ZjE0OWFlMzc0ODMgaW4gZ19tYWluX2xvb3BfcnVuIChsb29wPTB4N2YxNDNjMDAzZTYw
KSBhdCAuLi9nbGliL2dtYWluLmM6NDMyOQojNCAgMHgwMDAwN2YxNDllZjA3ZjkyIGluIFdURjo6
UnVuTG9vcDo6cnVuKCkgKCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xp
Yi5jcHA6MTA4CiM1ICAweDAwMDA3ZjE0OWVlZmZlZWMgaW4gb3BlcmF0b3IoKSgpIGNvbnN0IChf
X2Nsb3N1cmU9MHg3ZjE0OTdmZjYyYzApIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMv
V29ya1F1ZXVlR2VuZXJpYy5jcHA6NTEKIzYgIDB4MDAwMDdmMTQ5ZWYwMWZhNCBpbiBXVEY6OkRl
dGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUo
Y2hhciBjb25zdCosIFdURjo6V29ya1F1ZXVlOjpUeXBlLCBXVEY6OldvcmtRdWV1ZTo6UU9TKTo6
PGxhbWJkYSgpPiwgdm9pZD46OmNhbGwodm9pZCkgKHRoaXM9MHg3ZjE0OTdmZjYyYjgpIGF0IC4u
Ly4uL1NvdXJjZS9XVEYvd3RmL0Z1bmN0aW9uLmg6NTIKIzcgIDB4MDAwMDdmMTQ5ZGVlNDA1NSBp
biBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3QgKHRoaXM9MHg3ZjE0
NTRjZjhjMzApIGF0IERlcml2ZWRTb3VyY2VzL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9GdW5jdGlv
bi5oOjgzCiM4ICAweDAwMDA3ZjE0OWVlNmM3ZmIgaW4gV1RGOjpUaHJlYWQ6OmVudHJ5UG9pbnQo
V1RGOjpUaHJlYWQ6Ok5ld1RocmVhZENvbnRleHQqKSAobmV3VGhyZWFkQ29udGV4dD0weDdmMTQ5
N2ZmNDUwMCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcDoxODEKIzkgIDB4
MDAwMDdmMTQ5ZWYxMmY3NSBpbiBXVEY6Ond0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCopIChjb250
ZXh0PTB4N2YxNDk3ZmY0NTAwKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9UaHJlYWRp
bmdQT1NJWC5jcHA6MjQxCiMxMCAweDAwMDA3ZjE0OWFkYzM0ZDIgaW4gc3RhcnRfdGhyZWFkIChh
cmc9PG9wdGltaXplZCBvdXQ+KSBhdCBwdGhyZWFkX2NyZWF0ZS5jOjQ3NwojMTEgMHgwMDAwN2Yx
NDlhOGIzMzIzIGluIGNsb25lICgpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82
NC9jbG9uZS5TOjk1CgpUaHJlYWQgMTMgKFRocmVhZCAweDdmMTQzNTVmYjcwMCAoTFdQIDM1MDMp
KToKIzAgIDB4MDAwMDdmMTQ5YThhODUzZiBpbiBfX0dJX19fcG9sbCAoZmRzPTB4N2YxNDE4MDAz
NzEwLCBuZmRzPTIsIHRpbWVvdXQ9LTEpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bv
bGwuYzoyOQojMSAgMHgwMDAwN2YxNDlhZTM3MGZlIGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHBy
aW9yaXR5PTxvcHRpbWl6ZWQgb3V0Piwgbl9mZHM9MiwgZmRzPTB4N2YxNDE4MDAzNzEwLCB0aW1l
b3V0PTxvcHRpbWl6ZWQgb3V0PiwgY29udGV4dD0weDdmMTQxODAwMGI2MCkgYXQgLi4vZ2xpYi9n
bWFpbi5jOjQ0MzQKIzIgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNvbnRleHQ9MHg3ZjE0MTgw
MDBiNjAsIGJsb2NrPWJsb2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRpc3BhdGNoQGVudHJ5PTEsIHNl
bGY9PG9wdGltaXplZCBvdXQ+KSBhdCAuLi9nbGliL2dtYWluLmM6NDEyNgojMyAgMHgwMDAwN2Yx
NDlhZTM3NDgzIGluIGdfbWFpbl9sb29wX3J1biAobG9vcD0weDdmMTQxODAwMzYzMCkgYXQgLi4v
Z2xpYi9nbWFpbi5jOjQzMjkKIzQgIDB4MDAwMDdmMTQ5ZWYwN2Y5MiBpbiBXVEY6OlJ1bkxvb3A6
OnJ1bigpICgpIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOjEw
OAojNSAgMHgwMDAwN2YxNDllZWZmZWVjIGluIG9wZXJhdG9yKCkoKSBjb25zdCAoX19jbG9zdXJl
PTB4N2YxNDk3ZmI2N2QwKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwOjUxCiM2ICAweDAwMDA3ZjE0OWVmMDFmYTQgaW4gV1RGOjpEZXRhaWw6OkNh
bGxhYmxlV3JhcHBlcjxXVEY6OldvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNoYXIgY29u
c3QqLCBXVEY6OldvcmtRdWV1ZTo6VHlwZSwgV1RGOjpXb3JrUXVldWU6OlFPUyk6OjxsYW1iZGEo
KT4sIHZvaWQ+OjpjYWxsKHZvaWQpICh0aGlzPTB4N2YxNDk3ZmI2N2M4KSBhdCAuLi8uLi9Tb3Vy
Y2UvV1RGL3d0Zi9GdW5jdGlvbi5oOjUyCiM3ICAweDAwMDA3ZjE0OWRlZTQwNTUgaW4gV1RGOjpG
dW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICh0aGlzPTB4N2YxNDM1NWZhYzMw
KSBhdCBEZXJpdmVkU291cmNlcy9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRnVuY3Rpb24uaDo4Mwoj
OCAgMHgwMDAwN2YxNDllZTZjN2ZiIGluIFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhy
ZWFkOjpOZXdUaHJlYWRDb250ZXh0KikgKG5ld1RocmVhZENvbnRleHQ9MHg3ZjE0OTdmZjQ4YzAp
IGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHA6MTgxCiM5ICAweDAwMDA3ZjE0
OWVmMTJmNzUgaW4gV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqKSAoY29udGV4dD0weDdm
MTQ5N2ZmNDhjMCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVgu
Y3BwOjI0MQojMTAgMHgwMDAwN2YxNDlhZGMzNGQyIGluIHN0YXJ0X3RocmVhZCAoYXJnPTxvcHRp
bWl6ZWQgb3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0NzcKIzExIDB4MDAwMDdmMTQ5YThiMzMy
MyBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUu
Uzo5NQoKVGhyZWFkIDEyIChUaHJlYWQgMHg3ZjE0NTVjZmI3MDAgKExXUCAzNDg2KSk6CiMwICAw
eDAwMDA3ZjE0OWE4YTg1M2YgaW4gX19HSV9fX3BvbGwgKGZkcz0weDdmMTQ0NDAwMzJlMCwgbmZk
cz0xLCB0aW1lb3V0PS0xKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb2xsLmM6MjkK
IzEgIDB4MDAwMDdmMTQ5YWUzNzBmZSBpbiBnX21haW5fY29udGV4dF9wb2xsIChwcmlvcml0eT08
b3B0aW1pemVkIG91dD4sIG5fZmRzPTEsIGZkcz0weDdmMTQ0NDAwMzJlMCwgdGltZW91dD08b3B0
aW1pemVkIG91dD4sIGNvbnRleHQ9MHg3ZjE0NDQwMDBiNjApIGF0IC4uL2dsaWIvZ21haW4uYzo0
NDM0CiMyICBnX21haW5fY29udGV4dF9pdGVyYXRlIChjb250ZXh0PTB4N2YxNDQ0MDAwYjYwLCBi
bG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNwYXRjaEBlbnRyeT0xLCBzZWxmPTxvcHRp
bWl6ZWQgb3V0PikgYXQgLi4vZ2xpYi9nbWFpbi5jOjQxMjYKIzMgIDB4MDAwMDdmMTQ5YWUzNzQ4
MyBpbiBnX21haW5fbG9vcF9ydW4gKGxvb3A9MHg3ZjE0NDQwMDMyMDApIGF0IC4uL2dsaWIvZ21h
aW4uYzo0MzI5CiM0ICAweDAwMDA3ZjE0OWVmMDdmOTIgaW4gV1RGOjpSdW5Mb29wOjpydW4oKSAo
KSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcDoxMDgKIzUgIDB4
MDAwMDdmMTQ5ZWVmZmVlYyBpbiBvcGVyYXRvcigpKCkgY29uc3QgKF9fY2xvc3VyZT0weDdmMTQ5
N2ZmNjI2MCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmlj
LmNwcDo1MQojNiAgMHgwMDAwN2YxNDllZjAxZmE0IGluIFdURjo6RGV0YWlsOjpDYWxsYWJsZVdy
YXBwZXI8V1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjaGFyIGNvbnN0KiwgV1RG
OjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpRT1MpOjo8bGFtYmRhKCk+LCB2b2lk
Pjo6Y2FsbCh2b2lkKSAodGhpcz0weDdmMTQ5N2ZmNjI1OCkgYXQgLi4vLi4vU291cmNlL1dURi93
dGYvRnVuY3Rpb24uaDo1MgojNyAgMHgwMDAwN2YxNDlkZWU0MDU1IGluIFdURjo6RnVuY3Rpb248
dm9pZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAodGhpcz0weDdmMTQ1NWNmYWMzMCkgYXQgRGVy
aXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uLmg6ODMKIzggIDB4MDAw
MDdmMTQ5ZWU2YzdmYiBpbiBXVEY6OlRocmVhZDo6ZW50cnlQb2ludChXVEY6OlRocmVhZDo6TmV3
VGhyZWFkQ29udGV4dCopIChuZXdUaHJlYWRDb250ZXh0PTB4N2YxNDk3ZmY0NDYwKSBhdCAuLi8u
Li9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjE4MQojOSAgMHgwMDAwN2YxNDllZjEyZjc1
IGluIFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKikgKGNvbnRleHQ9MHg3ZjE0OTdmZjQ0
NjApIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNwcDoyNDEK
IzEwIDB4MDAwMDdmMTQ5YWRjMzRkMiBpbiBzdGFydF90aHJlYWQgKGFyZz08b3B0aW1pemVkIG91
dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiMxMSAweDAwMDA3ZjE0OWE4YjMzMjMgaW4gY2xv
bmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUKClRo
cmVhZCAxMSAoVGhyZWFkIDB4N2YxNDM2ZGZlNzAwIChMV1AgMzQ5MSkpOgojMCAgZnV0ZXhfd2Fp
dF9jYW5jZWxhYmxlIChwcml2YXRlPTAsIGV4cGVjdGVkPTAsIGZ1dGV4X3dvcmQ9MHg3ZjE0OTdm
YTcwNjQpIGF0IC4uL3N5c2RlcHMvbnB0bC9mdXRleC1pbnRlcm5hbC5oOjE4Mwp3YXJuaW5nOiAo
SW50ZXJuYWwgZXJyb3I6IHBjIDB4N2YxNDllZTI3OGY2IGluIHJlYWQgaW4gQ1UsIGJ1dCBub3Qg
aW4gc3ltdGFiLikKd2FybmluZzogKEludGVybmFsIGVycm9yOiBwYyAweDdmMTQ5ZWUyNzhmNiBp
biByZWFkIGluIENVLCBidXQgbm90IGluIHN5bXRhYi4pCndhcm5pbmc6IChJbnRlcm5hbCBlcnJv
cjogcGMgMHg3ZjE0OWVlMjc4ZGMgaW4gcmVhZCBpbiBDVSwgYnV0IG5vdCBpbiBzeW10YWIuKQp3
YXJuaW5nOiAoSW50ZXJuYWwgZXJyb3I6IHBjIDB4N2YxNDllZTI3OGY2IGluIHJlYWQgaW4gQ1Us
IGJ1dCBub3QgaW4gc3ltdGFiLikKIzEgIF9fcHRocmVhZF9jb25kX3dhaXRfY29tbW9uIChhYnN0
aW1lPTB4MCwgY2xvY2tpZD0wLCBtdXRleD0weDdmMTQ5N2ZhNzAxMCwgY29uZD0weDdmMTQ5N2Zh
NzAzOCkgYXQgcHRocmVhZF9jb25kX3dhaXQuYzo1MDgKd2FybmluZzogKEludGVybmFsIGVycm9y
OiBwYyAweDdmMTQ5ZWUyNzhmNiBpbiByZWFkIGluIENVLCBidXQgbm90IGluIHN5bXRhYi4pCiMy
ICBfX3B0aHJlYWRfY29uZF93YWl0IChjb25kPTB4N2YxNDk3ZmE3MDM4LCBtdXRleD0weDdmMTQ5
N2ZhNzAxMCkgYXQgcHRocmVhZF9jb25kX3dhaXQuYzo2MzgKIzMgIDB4MDAwMDdmMTQ5ZWYxM2M5
YyBpbiBXVEY6OlRocmVhZENvbmRpdGlvbjo6d2FpdChXVEY6Ok11dGV4JikgKHRoaXM9MHg3ZjE0
OTdmYTcwMzgsIG11dGV4PS4uLikgYXQgLi4vLi4vU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFk
aW5nUE9TSVguY3BwOjU4MgojNCAgMHgwMDAwN2YxNDllZjEzZDVkIGluIFdURjo6VGhyZWFkQ29u
ZGl0aW9uOjp0aW1lZFdhaXQoV1RGOjpNdXRleCYsIFdURjo6V2FsbFRpbWUpICh0aGlzPTB4N2Yx
NDk3ZmE3MDM4LCBtdXRleD0uLi4sIGFic29sdXRlVGltZT0uLi4pIGF0IC4uLy4uL1NvdXJjZS9X
VEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNwcDo1OTIKIzUgIDB4MDAwMDdmMTQ5ZWU1Yzdj
YSBpbiBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5SW1wbCh2b2lkIGNvbnN0Kiwg
V1RGOjpTY29wZWRMYW1iZGE8Ym9vbCAoKT4gY29uc3QmLCBXVEY6OlNjb3BlZExhbWJkYTx2b2lk
ICgpPiBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKGFkZHJl
c3M9MHg3ZjE0OTdmYWMwMzksIHZhbGlkYXRpb249Li4uLCBiZWZvcmVTbGVlcD0uLi4sIHRpbWVv
dXQ9Li4uKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcDo1OTUKIzYgIDB4
MDAwMDdmMTQ5ZTA3ODI3MSBpbiBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5PFdU
Rjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpOjp7bGFtYmRhKCkjMX0sIFdURjo6Q29uZGl0aW9u
Ojp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZSBjb25zdCYpOjp7bGFtYmRhKCkjMn0+KHZvaWQgY29uc3QqLCBXVEY6OkNvbmRpdGlv
bjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWND
bG9ja1R5cGUgY29uc3QmKTo6e2xhbWJkYSgpIzF9IGNvbnN0JiwgV1RGOjpDb25kaXRpb246Ondh
aXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tU
eXBlIGNvbnN0Jik6OntsYW1iZGEoKSMyfSBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xv
Y2tUeXBlIGNvbnN0JikgKGFkZHJlc3M9MHg3ZjE0OTdmYWMwMzksIHZhbGlkYXRpb249Li4uLCBi
ZWZvcmVTbGVlcD0uLi4sIHRpbWVvdXQ9Li4uKSBhdCBEZXJpdmVkU291cmNlcy9Gb3J3YXJkaW5n
SGVhZGVycy93dGYvUGFya2luZ0xvdC5oOjgyCiM3ICAweDAwMDA3ZjE0OWUwNzRmOTUgaW4gV1RG
OjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKHRoaXM9MHg3ZjE0OTdmYWMwMzksIGxvY2s9Li4u
LCB0aW1lb3V0PS4uLikgYXQgRGVyaXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Nv
bmRpdGlvbi5oOjc2CiM4ICAweDAwMDA3ZjE0OWUwNzE0ZDUgaW4gV1RGOjpDb25kaXRpb246Ondh
aXQ8V1RGOjpMb2NrPihXVEY6OkxvY2smKSAodGhpcz0weDdmMTQ5N2ZhYzAzOSwgbG9jaz0uLi4p
IGF0IERlcml2ZWRTb3VyY2VzL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9Db25kaXRpb24uaDoxMjIK
d2FybmluZzogKEludGVybmFsIGVycm9yOiBwYyAweDdmMTQ5ZWUyNzhmNiBpbiByZWFkIGluIENV
LCBidXQgbm90IGluIHN5bXRhYi4pCiM5ICAweDAwMDA3ZjE0OWVlMjkzM2YgaW4gV1RGOjpDcm9z
c1RocmVhZFF1ZXVlPFdURjo6Q3Jvc3NUaHJlYWRUYXNrPjo6d2FpdEZvck1lc3NhZ2UoKSAodGhp
cz0weDdmMTQ5N2ZhYzAxMCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRRdWV1
ZS5oOjgxCndhcm5pbmc6IChJbnRlcm5hbCBlcnJvcjogcGMgMHg3ZjE0OWVlMjc4ZjYgaW4gcmVh
ZCBpbiBDVSwgYnV0IG5vdCBpbiBzeW10YWIuKQojMTAgMHgwMDAwN2YxNDllZTI3ZDJiIGluIFdU
Rjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6dGFza1J1bkxvb3AoKSAod2FybmluZzogKEludGVy
bmFsIGVycm9yOiBwYyAweDdmMTQ5ZWUyNzhmNiBpbiByZWFkIGluIENVLCBidXQgbm90IGluIHN5
bXRhYi4pCnRoaXM9MHg3ZjE0OTdmYWMwMDApIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL0Nyb3Nz
VGhyZWFkVGFza0hhbmRsZXIuY3BwOjgwCndhcm5pbmc6IChJbnRlcm5hbCBlcnJvcjogcGMgMHg3
ZjE0OWVlMjc4ZjYgaW4gcmVhZCBpbiBDVSwgYnV0IG5vdCBpbiBzeW10YWIuKQp3YXJuaW5nOiAo
SW50ZXJuYWwgZXJyb3I6IHBjIDB4N2YxNDllZTI3OGY2IGluIHJlYWQgaW4gQ1UsIGJ1dCBub3Qg
aW4gc3ltdGFiLikKIzExIDB4MDAwMDdmMTQ5ZWUyNzhmNyBpbiB3YXJuaW5nOiAoSW50ZXJuYWwg
ZXJyb3I6IHBjIDB4N2YxNDllZTI3OGY2IGluIHJlYWQgaW4gQ1UsIGJ1dCBub3QgaW4gc3ltdGFi
LikKb3BlcmF0b3IoKSgpIGNvbnN0d2FybmluZzogKEludGVybmFsIGVycm9yOiBwYyAweDdmMTQ5
ZWUyNzhmNiBpbiByZWFkIGluIENVLCBidXQgbm90IGluIHN5bXRhYi4pCndhcm5pbmc6IChJbnRl
cm5hbCBlcnJvcjogcGMgMHg3ZjE0OWVlMjc4ZjYgaW4gcmVhZCBpbiBDVSwgYnV0IG5vdCBpbiBz
eW10YWIuKQogKHdhcm5pbmc6IChJbnRlcm5hbCBlcnJvcjogcGMgMHg3ZjE0OWVlMjc4ZjYgaW4g
cmVhZCBpbiBDVSwgYnV0IG5vdCBpbiBzeW10YWIuKQpfX2Nsb3N1cmU9MHg3ZjE0OTdmZmEzNjgp
d2FybmluZzogKEludGVybmFsIGVycm9yOiBwYyAweDdmMTQ5ZWUyNzhmNiBpbiByZWFkIGluIENV
LCBidXQgbm90IGluIHN5bXRhYi4pCiBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVh
ZFRhc2tIYW5kbGVyLmNwcHdhcm5pbmc6IChJbnRlcm5hbCBlcnJvcjogcGMgMHg3ZjE0OWVlMjc4
ZjYgaW4gcmVhZCBpbiBDVSwgYnV0IG5vdCBpbiBzeW10YWIuKQp3YXJuaW5nOiAoSW50ZXJuYWwg
ZXJyb3I6IHBjIDB4N2YxNDllZTI3OGY2IGluIHJlYWQgaW4gQ1UsIGJ1dCBub3QgaW4gc3ltdGFi
LikKOjM5CiMxMiAweDAwMDA3ZjE0OWVlMjhjOTQgaW4gV1RGOjpEZXRhaWw6OkNhbGxhYmxlV3Jh
cHBlcjxXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI6OkNyb3NzVGhyZWFkVGFza0hhbmRsZXIo
Y2hhciBjb25zdCosIFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6QXV0b2RyYWluZWRQb29s
Rm9yUnVuTG9vcCk6OjxsYW1iZGEoKT4sIHZvaWQ+OjpjYWxsKHZvaWQpICh0aGlzPTB4N2YxNDk3
ZmZhMzYwKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlvbi5oOjUyCiMxMyAweDAwMDA3
ZjE0OWRlZTQwNTUgaW4gV1RGOjpGdW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0
ICh0aGlzPTB4N2YxNDM2ZGZkYzMwKSBhdCBEZXJpdmVkU291cmNlcy9Gb3J3YXJkaW5nSGVhZGVy
cy93dGYvRnVuY3Rpb24uaDo4MwojMTQgMHgwMDAwN2YxNDllZTZjN2ZiIGluIFdURjo6VGhyZWFk
OjplbnRyeVBvaW50KFdURjo6VGhyZWFkOjpOZXdUaHJlYWRDb250ZXh0KikgKG5ld1RocmVhZENv
bnRleHQ9MHg3ZjE0OTdmZjQ1ZjApIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5j
cHA6MTgxCiMxNSAweDAwMDA3ZjE0OWVmMTJmNzUgaW4gV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50
KHZvaWQqKSAoY29udGV4dD0weDdmMTQ5N2ZmNDVmMCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYv
cG9zaXgvVGhyZWFkaW5nUE9TSVguY3BwOjI0MQojMTYgMHgwMDAwN2YxNDlhZGMzNGQyIGluIHN0
YXJ0X3RocmVhZCAoYXJnPTxvcHRpbWl6ZWQgb3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0NzcK
IzE3IDB4MDAwMDdmMTQ5YThiMzMyMyBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lz
di9saW51eC94ODZfNjQvY2xvbmUuUzo5NQoKVGhyZWFkIDEwIChUaHJlYWQgMHg3ZjE0Mzc1ZmY3
MDAgKExXUCAzNDkwKSk6CiMwICAweDAwMDA3ZjE0OWE4YTg1M2YgaW4gX19HSV9fX3BvbGwgKGZk
cz0weDdmMTQyODAwM2Y0MCwgbmZkcz0xLCB0aW1lb3V0PS0xKSBhdCAuLi9zeXNkZXBzL3VuaXgv
c3lzdi9saW51eC9wb2xsLmM6MjkKIzEgIDB4MDAwMDdmMTQ5YWUzNzBmZSBpbiBnX21haW5fY29u
dGV4dF9wb2xsIChwcmlvcml0eT08b3B0aW1pemVkIG91dD4sIG5fZmRzPTEsIGZkcz0weDdmMTQy
ODAwM2Y0MCwgdGltZW91dD08b3B0aW1pemVkIG91dD4sIGNvbnRleHQ9MHg3ZjE0MjgwMDBiNjAp
IGF0IC4uL2dsaWIvZ21haW4uYzo0NDM0CiMyICBnX21haW5fY29udGV4dF9pdGVyYXRlIChjb250
ZXh0PTB4N2YxNDI4MDAwYjYwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNwYXRj
aEBlbnRyeT0xLCBzZWxmPTxvcHRpbWl6ZWQgb3V0PikgYXQgLi4vZ2xpYi9nbWFpbi5jOjQxMjYK
IzMgIDB4MDAwMDdmMTQ5YWUzNzQ4MyBpbiBnX21haW5fbG9vcF9ydW4gKGxvb3A9MHg3ZjE0Mjgw
MDNlNjApIGF0IC4uL2dsaWIvZ21haW4uYzo0MzI5CiM0ICAweDAwMDA3ZjE0OWVmMDdmOTIgaW4g
V1RGOjpSdW5Mb29wOjpydW4oKSAoKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxv
b3BHTGliLmNwcDoxMDgKIzUgIDB4MDAwMDdmMTQ5ZWVmZmVlYyBpbiBvcGVyYXRvcigpKCkgY29u
c3QgKF9fY2xvc3VyZT0weDdmMTQ5N2ZiZGZlMCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYvZ2Vu
ZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcDo1MQojNiAgMHgwMDAwN2YxNDllZjAxZmE0IGluIFdU
Rjo6RGV0YWlsOjpDYWxsYWJsZVdyYXBwZXI8V1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlh
bGl6ZShjaGFyIGNvbnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpR
T1MpOjo8bGFtYmRhKCk+LCB2b2lkPjo6Y2FsbCh2b2lkKSAodGhpcz0weDdmMTQ5N2ZiZGZkOCkg
YXQgLi4vLi4vU291cmNlL1dURi93dGYvRnVuY3Rpb24uaDo1MgojNyAgMHgwMDAwN2YxNDlkZWU0
MDU1IGluIFdURjo6RnVuY3Rpb248dm9pZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAodGhpcz0w
eDdmMTQzNzVmZWMzMCkgYXQgRGVyaXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Z1
bmN0aW9uLmg6ODMKIzggIDB4MDAwMDdmMTQ5ZWU2YzdmYiBpbiBXVEY6OlRocmVhZDo6ZW50cnlQ
b2ludChXVEY6OlRocmVhZDo6TmV3VGhyZWFkQ29udGV4dCopIChuZXdUaHJlYWRDb250ZXh0PTB4
N2YxNDk3ZmY0NWEwKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjE4MQoj
OSAgMHgwMDAwN2YxNDllZjEyZjc1IGluIFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKikg
KGNvbnRleHQ9MHg3ZjE0OTdmZjQ1YTApIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1Ro
cmVhZGluZ1BPU0lYLmNwcDoyNDEKIzEwIDB4MDAwMDdmMTQ5YWRjMzRkMiBpbiBzdGFydF90aHJl
YWQgKGFyZz08b3B0aW1pemVkIG91dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiMxMSAweDAw
MDA3ZjE0OWE4YjMzMjMgaW4gY2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgv
eDg2XzY0L2Nsb25lLlM6OTUKClRocmVhZCA5IChUaHJlYWQgMHg3ZjE0MzY1ZmQ3MDAgKExXUCAz
NDkyKSk6CiMwICAweDAwMDA3ZjE0OWE4YTg1M2YgaW4gX19HSV9fX3BvbGwgKGZkcz0weDdmMTQy
MDAwM2QxMCwgbmZkcz0xLCB0aW1lb3V0PS0xKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51
eC9wb2xsLmM6MjkKIzEgIDB4MDAwMDdmMTQ5YWUzNzBmZSBpbiBnX21haW5fY29udGV4dF9wb2xs
IChwcmlvcml0eT08b3B0aW1pemVkIG91dD4sIG5fZmRzPTEsIGZkcz0weDdmMTQyMDAwM2QxMCwg
dGltZW91dD08b3B0aW1pemVkIG91dD4sIGNvbnRleHQ9MHg3ZjE0MjAwMDBiNjApIGF0IC4uL2ds
aWIvZ21haW4uYzo0NDM0CiMyICBnX21haW5fY29udGV4dF9pdGVyYXRlIChjb250ZXh0PTB4N2Yx
NDIwMDAwYjYwLCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNwYXRjaEBlbnRyeT0x
LCBzZWxmPTxvcHRpbWl6ZWQgb3V0PikgYXQgLi4vZ2xpYi9nbWFpbi5jOjQxMjYKIzMgIDB4MDAw
MDdmMTQ5YWUzNzQ4MyBpbiBnX21haW5fbG9vcF9ydW4gKGxvb3A9MHg3ZjE0MjAwMDNjMzApIGF0
IC4uL2dsaWIvZ21haW4uYzo0MzI5CiM0ICAweDAwMDA3ZjE0OWVmMDdmOTIgaW4gV1RGOjpSdW5M
b29wOjpydW4oKSAoKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNw
cDoxMDgKIzUgIDB4MDAwMDdmMTQ5ZWVmZmVlYyBpbiBvcGVyYXRvcigpKCkgY29uc3QgKF9fY2xv
c3VyZT0weDdmMTQ5N2ZiNjIwMCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3Jr
UXVldWVHZW5lcmljLmNwcDo1MQojNiAgMHgwMDAwN2YxNDllZjAxZmE0IGluIFdURjo6RGV0YWls
OjpDYWxsYWJsZVdyYXBwZXI8V1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjaGFy
IGNvbnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpRT1MpOjo8bGFt
YmRhKCk+LCB2b2lkPjo6Y2FsbCh2b2lkKSAodGhpcz0weDdmMTQ5N2ZiNjFmOCkgYXQgLi4vLi4v
U291cmNlL1dURi93dGYvRnVuY3Rpb24uaDo1MgojNyAgMHgwMDAwN2YxNDlkZWU0MDU1IGluIFdU
Rjo6RnVuY3Rpb248dm9pZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAodGhpcz0weDdmMTQzNjVm
Y2MzMCkgYXQgRGVyaXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uLmg6
ODMKIzggIDB4MDAwMDdmMTQ5ZWU2YzdmYiBpbiBXVEY6OlRocmVhZDo6ZW50cnlQb2ludChXVEY6
OlRocmVhZDo6TmV3VGhyZWFkQ29udGV4dCopIChuZXdUaHJlYWRDb250ZXh0PTB4N2YxNDk3ZmY0
NjkwKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjE4MQojOSAgMHgwMDAw
N2YxNDllZjEyZjc1IGluIFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKikgKGNvbnRleHQ9
MHg3ZjE0OTdmZjQ2OTApIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BP
U0lYLmNwcDoyNDEKIzEwIDB4MDAwMDdmMTQ5YWRjMzRkMiBpbiBzdGFydF90aHJlYWQgKGFyZz08
b3B0aW1pemVkIG91dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiMxMSAweDAwMDA3ZjE0OWE4
YjMzMjMgaW4gY2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Ns
b25lLlM6OTUKClRocmVhZCA4IChUaHJlYWQgMHg3ZjE0MzVkZmM3MDAgKExXUCAzNDkzKSk6CiMw
ICAweDAwMDA3ZjE0OWE4YTg1M2YgaW4gX19HSV9fX3BvbGwgKGZkcz0weDdmMTQyNDAwM2IxMCwg
bmZkcz0xLCB0aW1lb3V0PS0xKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb2xsLmM6
MjkKIzEgIDB4MDAwMDdmMTQ5YWUzNzBmZSBpbiBnX21haW5fY29udGV4dF9wb2xsIChwcmlvcml0
eT08b3B0aW1pemVkIG91dD4sIG5fZmRzPTEsIGZkcz0weDdmMTQyNDAwM2IxMCwgdGltZW91dD08
b3B0aW1pemVkIG91dD4sIGNvbnRleHQ9MHg3ZjE0MjQwMDBiNjApIGF0IC4uL2dsaWIvZ21haW4u
Yzo0NDM0CiMyICBnX21haW5fY29udGV4dF9pdGVyYXRlIChjb250ZXh0PTB4N2YxNDI0MDAwYjYw
LCBibG9jaz1ibG9ja0BlbnRyeT0xLCBkaXNwYXRjaD1kaXNwYXRjaEBlbnRyeT0xLCBzZWxmPTxv
cHRpbWl6ZWQgb3V0PikgYXQgLi4vZ2xpYi9nbWFpbi5jOjQxMjYKIzMgIDB4MDAwMDdmMTQ5YWUz
NzQ4MyBpbiBnX21haW5fbG9vcF9ydW4gKGxvb3A9MHg3ZjE0MjQwMDNhMzApIGF0IC4uL2dsaWIv
Z21haW4uYzo0MzI5CiM0ICAweDAwMDA3ZjE0OWVmMDdmOTIgaW4gV1RGOjpSdW5Mb29wOjpydW4o
KSAoKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcDoxMDgKIzUg
IDB4MDAwMDdmMTQ5ZWVmZmVlYyBpbiBvcGVyYXRvcigpKCkgY29uc3QgKF9fY2xvc3VyZT0weDdm
MTQ5N2ZiNjMzOCkgYXQgLi4vLi4vU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5l
cmljLmNwcDo1MQojNiAgMHgwMDAwN2YxNDllZjAxZmE0IGluIFdURjo6RGV0YWlsOjpDYWxsYWJs
ZVdyYXBwZXI8V1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjaGFyIGNvbnN0Kiwg
V1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpRT1MpOjo8bGFtYmRhKCk+LCB2
b2lkPjo6Y2FsbCh2b2lkKSAodGhpcz0weDdmMTQ5N2ZiNjMzMCkgYXQgLi4vLi4vU291cmNlL1dU
Ri93dGYvRnVuY3Rpb24uaDo1MgojNyAgMHgwMDAwN2YxNDlkZWU0MDU1IGluIFdURjo6RnVuY3Rp
b248dm9pZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAodGhpcz0weDdmMTQzNWRmYmMzMCkgYXQg
RGVyaXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uLmg6ODMKIzggIDB4
MDAwMDdmMTQ5ZWU2YzdmYiBpbiBXVEY6OlRocmVhZDo6ZW50cnlQb2ludChXVEY6OlRocmVhZDo6
TmV3VGhyZWFkQ29udGV4dCopIChuZXdUaHJlYWRDb250ZXh0PTB4N2YxNDk3ZmY0NzgwKSBhdCAu
Li8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjE4MQojOSAgMHgwMDAwN2YxNDllZjEy
Zjc1IGluIFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKikgKGNvbnRleHQ9MHg3ZjE0OTdm
ZjQ3ODApIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNwcDoy
NDEKIzEwIDB4MDAwMDdmMTQ5YWRjMzRkMiBpbiBzdGFydF90aHJlYWQgKGFyZz08b3B0aW1pemVk
IG91dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiMxMSAweDAwMDA3ZjE0OWE4YjMzMjMgaW4g
Y2xvbmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUK
ClRocmVhZCA3IChUaHJlYWQgMHg3ZjE0MzdmZmY3MDAgKExXUCAzNDg5KSk6CiMwICBzeXNjYWxs
ICgpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9zeXNjYWxsLlM6MzgKIzEg
IDB4MDAwMDdmMTQ5YWU4YjRiNiBpbiBnX2NvbmRfd2FpdF91bnRpbCAoY29uZD1jb25kQGVudHJ5
PTB4NTYwNGUwZDkxMjg4LCBtdXRleD1tdXRleEBlbnRyeT0weDU2MDRlMGQ5MTI4MCwgZW5kX3Rp
bWU9ZW5kX3RpbWVAZW50cnk9MTA0OTUxNjkwOTM1KSBhdCAuLi9nbGliL2d0aHJlYWQtcG9zaXgu
YzoxNjEyCiMyICAweDAwMDA3ZjE0OWFlMDU1OTEgaW4gZ19hc3luY19xdWV1ZV9wb3BfaW50ZXJu
X3VubG9ja2VkIChxdWV1ZT0weDU2MDRlMGQ5MTI4MCwgd2FpdD0xLCBlbmRfdGltZT0xMDQ5NTE2
OTA5MzUpIGF0IC4uL2dsaWIvZ2FzeW5jcXVldWUuYzo0MjIKIzMgIDB4MDAwMDdmMTQ5YWU2MWZm
YSBpbiBnX3RocmVhZF9wb29sX3dhaXRfZm9yX25ld190YXNrIChwb29sPTxvcHRpbWl6ZWQgb3V0
PikgYXQgLi4vZ2xpYi9ndGhyZWFkcG9vbC5jOjI3OAojNCAgZ190aHJlYWRfcG9vbF90aHJlYWRf
cHJveHkgKGRhdGE9PG9wdGltaXplZCBvdXQ+KSBhdCAuLi9nbGliL2d0aHJlYWRwb29sLmM6MzQz
CiM1ICAweDAwMDA3ZjE0OWFlNjE1YTEgaW4gZ190aHJlYWRfcHJveHkgKGRhdGE9MHg1NjA0ZTBk
OGFkMjApIGF0IC4uL2dsaWIvZ3RocmVhZC5jOjgyNgojNiAgMHgwMDAwN2YxNDlhZGMzNGQyIGlu
IHN0YXJ0X3RocmVhZCAoYXJnPTxvcHRpbWl6ZWQgb3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0
NzcKIzcgIDB4MDAwMDdmMTQ5YThiMzMyMyBpbiBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgv
c3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzo5NQoKVGhyZWFkIDYgKFRocmVhZCAweDdmMTQ1NmNm
ZDcwMCAoTFdQIDM0ODQpKToKIzAgIDB4MDAwMDdmMTQ5YThhODUzZiBpbiBfX0dJX19fcG9sbCAo
ZmRzPTB4NTYwNGUwZGE1MTMwLCBuZmRzPTMsIHRpbWVvdXQ9LTEpIGF0IC4uL3N5c2RlcHMvdW5p
eC9zeXN2L2xpbnV4L3BvbGwuYzoyOQojMSAgMHgwMDAwN2YxNDlhZTM3MGZlIGluIGdfbWFpbl9j
b250ZXh0X3BvbGwgKHByaW9yaXR5PTxvcHRpbWl6ZWQgb3V0Piwgbl9mZHM9MywgZmRzPTB4NTYw
NGUwZGE1MTMwLCB0aW1lb3V0PTxvcHRpbWl6ZWQgb3V0PiwgY29udGV4dD0weDU2MDRlMGRhMzNh
MCkgYXQgLi4vZ2xpYi9nbWFpbi5jOjQ0MzQKIzIgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNv
bnRleHQ9MHg1NjA0ZTBkYTMzYTAsIGJsb2NrPWJsb2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRpc3Bh
dGNoQGVudHJ5PTEsIHNlbGY9PG9wdGltaXplZCBvdXQ+KSBhdCAuLi9nbGliL2dtYWluLmM6NDEy
NgojMyAgMHgwMDAwN2YxNDlhZTM3NDgzIGluIGdfbWFpbl9sb29wX3J1biAobG9vcD0weDU2MDRl
MGRhMzQ5MCkgYXQgLi4vZ2xpYi9nbWFpbi5jOjQzMjkKIzQgIDB4MDAwMDdmMTQ5YjA5ZjEwYSBp
biBnZGJ1c19zaGFyZWRfdGhyZWFkX2Z1bmMgKHVzZXJfZGF0YT0weDU2MDRlMGRhMzM3MCkgYXQg
Li4vZ2lvL2dkYnVzcHJpdmF0ZS5jOjI4MAojNSAgMHgwMDAwN2YxNDlhZTYxNWExIGluIGdfdGhy
ZWFkX3Byb3h5IChkYXRhPTB4NTYwNGUwZDYxOTgwKSBhdCAuLi9nbGliL2d0aHJlYWQuYzo4MjYK
IzYgIDB4MDAwMDdmMTQ5YWRjMzRkMiBpbiBzdGFydF90aHJlYWQgKGFyZz08b3B0aW1pemVkIG91
dD4pIGF0IHB0aHJlYWRfY3JlYXRlLmM6NDc3CiM3ICAweDAwMDA3ZjE0OWE4YjMzMjMgaW4gY2xv
bmUgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6OTUKClRo
cmVhZCA1IChUaHJlYWQgMHg3ZjE0OTg4YTU3MDAgKExXUCAzNDgxKSk6CiMwICBmdXRleF9hYnN0
aW1lZF93YWl0X2NhbmNlbGFibGUgKHByaXZhdGU9MCwgYWJzdGltZT0weDdmMTQ5ODhhNDk4MCwg
Y2xvY2tpZD0tMTczNTc2Nzg4OCwgZXhwZWN0ZWQ9MCwgZnV0ZXhfd29yZD0weDdmMTRhMDY5YmRh
OCA8Ym1hbGxvYzo6U3RhdGljUGVyUHJvY2Vzc1N0b3JhZ2VUcmFpdHM8Ym1hbGxvYzo6U2NhdmVu
Z2VyPjo6U3RvcmFnZTo6c19tZW1vcnkrNzI+KSBhdCAuLi9zeXNkZXBzL25wdGwvZnV0ZXgtaW50
ZXJuYWwuaDozMjAKIzEgIF9fcHRocmVhZF9jb25kX3dhaXRfY29tbW9uIChhYnN0aW1lPTB4N2Yx
NDk4OGE0OTgwLCBjbG9ja2lkPS0xNzM1NzY3ODg4LCBtdXRleD0weDU2MDRlMGQ4MjYxMCwgY29u
ZD0weDdmMTRhMDY5YmQ4MCA8Ym1hbGxvYzo6U3RhdGljUGVyUHJvY2Vzc1N0b3JhZ2VUcmFpdHM8
Ym1hbGxvYzo6U2NhdmVuZ2VyPjo6U3RvcmFnZTo6c19tZW1vcnkrMzI+KSBhdCBwdGhyZWFkX2Nv
bmRfd2FpdC5jOjUyMAojMiAgX19wdGhyZWFkX2NvbmRfY2xvY2t3YWl0IChhYnN0aW1lPTB4N2Yx
NDk4OGE0OTgwLCBjbG9ja2lkPS0xNzM1NzY3ODg4LCBtdXRleD0weDU2MDRlMGQ4MjYxMCwgY29u
ZD0weDdmMTRhMDY5YmQ4MCA8Ym1hbGxvYzo6U3RhdGljUGVyUHJvY2Vzc1N0b3JhZ2VUcmFpdHM8
Ym1hbGxvYzo6U2NhdmVuZ2VyPjo6U3RvcmFnZTo6c19tZW1vcnkrMzI+KSBhdCBwdGhyZWFkX2Nv
bmRfd2FpdC5jOjY3NwojMyAgX19wdGhyZWFkX2NvbmRfY2xvY2t3YWl0IChjb25kPTB4N2YxNGEw
NjliZDgwIDxibWFsbG9jOjpTdGF0aWNQZXJQcm9jZXNzU3RvcmFnZVRyYWl0czxibWFsbG9jOjpT
Y2F2ZW5nZXI+OjpTdG9yYWdlOjpzX21lbW9yeSszMj4sIG11dGV4PTB4NTYwNGUwZDgyNjEwLCBj
bG9ja2lkPS0xNzM1NzY3ODg4LCBhYnN0aW1lPTB4N2YxNDk4OGE0OTgwKSBhdCBwdGhyZWFkX2Nv
bmRfd2FpdC5jOjY2NQojNCAgMHgwMDAwN2YxNDllZjMwYTBmIGluIHN0ZDo6Y29uZGl0aW9uX3Zh
cmlhYmxlOjpfX3dhaXRfdW50aWxfaW1wbDxzdGQ6OmNocm9ubzo6ZHVyYXRpb248bG9uZywgc3Rk
OjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gPihzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+
Jiwgc3RkOjpjaHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpjaHJvbm86Ol9WMjo6c3RlYWR5X2Nsb2Nr
LCBzdGQ6OmNocm9ubzo6ZHVyYXRpb248bG9uZywgc3RkOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+
ID4gPiBjb25zdCYpICh0aGlzPTB4N2YxNGEwNjliZDgwIDxibWFsbG9jOjpTdGF0aWNQZXJQcm9j
ZXNzU3RvcmFnZVRyYWl0czxibWFsbG9jOjpTY2F2ZW5nZXI+OjpTdG9yYWdlOjpzX21lbW9yeSsz
Mj4sIF9fbG9jaz0uLi4sIF9fYXRpbWU9Li4uKSBhdCAvdXNyL2luY2x1ZGUvYysrLzEwLjIuMC9j
b25kaXRpb25fdmFyaWFibGU6MjA5CiM1ICAweDAwMDA3ZjE0OWVmMzAyM2YgaW4gc3RkOjpjb25k
aXRpb25fdmFyaWFibGU6OndhaXRfdW50aWw8c3RkOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcsIHN0
ZDo6cmF0aW88MWwsIDEwMDAwMDAwMDBsPiA+ID4oc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4
PiYsIHN0ZDo6Y2hyb25vOjp0aW1lX3BvaW50PHN0ZDo6Y2hyb25vOjpfVjI6OnN0ZWFkeV9jbG9j
aywgc3RkOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcsIHN0ZDo6cmF0aW88MWwsIDEwMDAwMDAwMDBs
PiA+ID4gY29uc3QmKSAodGhpcz0weDdmMTRhMDY5YmQ4MCA8Ym1hbGxvYzo6U3RhdGljUGVyUHJv
Y2Vzc1N0b3JhZ2VUcmFpdHM8Ym1hbGxvYzo6U2NhdmVuZ2VyPjo6U3RvcmFnZTo6c19tZW1vcnkr
MzI+LCBfX2xvY2s9Li4uLCBfX2F0aW1lPS4uLikgYXQgL3Vzci9pbmNsdWRlL2MrKy8xMC4yLjAv
Y29uZGl0aW9uX3ZhcmlhYmxlOjExOQojNiAgMHgwMDAwN2YxNDllZjJmZDFkIGluIHN0ZDo6X1Yy
Ojpjb25kaXRpb25fdmFyaWFibGVfYW55Ojp3YWl0X3VudGlsPHN0ZDo6dW5pcXVlX2xvY2s8Ym1h
bGxvYzo6TXV0ZXg+LCBzdGQ6OmNocm9ubzo6X1YyOjpzdGVhZHlfY2xvY2ssIHN0ZDo6Y2hyb25v
OjpkdXJhdGlvbjxsb25nLCBzdGQ6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPiA+KHN0ZDo6dW5p
cXVlX2xvY2s8Ym1hbGxvYzo6TXV0ZXg+Jiwgc3RkOjpjaHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpj
aHJvbm86Ol9WMjo6c3RlYWR5X2Nsb2NrLCBzdGQ6OmNocm9ubzo6ZHVyYXRpb248bG9uZywgc3Rk
OjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gPiBjb25zdCYpICh0aGlzPTB4N2YxNGEwNjliZDgw
IDxibWFsbG9jOjpTdGF0aWNQZXJQcm9jZXNzU3RvcmFnZVRyYWl0czxibWFsbG9jOjpTY2F2ZW5n
ZXI+OjpTdG9yYWdlOjpzX21lbW9yeSszMj4sIF9fbG9jaz0uLi4sIF9fYXRpbWU9Li4uKSBhdCAv
dXNyL2luY2x1ZGUvYysrLzEwLjIuMC9jb25kaXRpb25fdmFyaWFibGU6MzQ0CiM3ICAweDAwMDA3
ZjE0OWVmMmU1NmMgaW4gc3RkOjpfVjI6OmNvbmRpdGlvbl92YXJpYWJsZV9hbnk6OndhaXRfdW50
aWw8c3RkOjp1bmlxdWVfbG9jazxibWFsbG9jOjpNdXRleD4sIHN0ZDo6Y2hyb25vOjpfVjI6OnN0
ZWFkeV9jbG9jaywgc3RkOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcgaW50LCBzdGQ6OnJhdGlvPDEs
IDEwMDAwMDAwMDA+ID4sIGJtYWxsb2M6OlNjYXZlbmdlcjo6dGhyZWFkUnVuTG9vcCgpOjo8bGFt
YmRhKCk+ID4oc3RkOjp1bmlxdWVfbG9jazxibWFsbG9jOjpNdXRleD4gJiwgY29uc3Qgc3RkOjpj
aHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpjaHJvbm86Ol9WMjo6c3RlYWR5X2Nsb2NrLCBzdGQ6OmNo
cm9ubzo6ZHVyYXRpb248bG9uZywgc3RkOjpyYXRpbzwxLCAxMDAwMDAwMDAwPiA+ID4gJiwgc3Ry
dWN0IHsuLi59KSAodGhpcz0weDdmMTRhMDY5YmQ4MCA8Ym1hbGxvYzo6U3RhdGljUGVyUHJvY2Vz
c1N0b3JhZ2VUcmFpdHM8Ym1hbGxvYzo6U2NhdmVuZ2VyPjo6U3RvcmFnZTo6c19tZW1vcnkrMzI+
LCBfX2xvY2s9Li4uLCBfX2F0aW1lPS4uLiwgX19wPS4uLikgYXQgL3Vzci9pbmNsdWRlL2MrKy8x
MC4yLjAvY29uZGl0aW9uX3ZhcmlhYmxlOjM1NQojOCAgMHgwMDAwN2YxNDllZjJlNTAyIGluIHN0
ZDo6X1YyOjpjb25kaXRpb25fdmFyaWFibGVfYW55Ojp3YWl0X2ZvcjxzdGQ6OnVuaXF1ZV9sb2Nr
PGJtYWxsb2M6Ok11dGV4PiwgbG9uZyBpbnQsIHN0ZDo6cmF0aW88MSwgMTAwMD4sIGJtYWxsb2M6
OlNjYXZlbmdlcjo6dGhyZWFkUnVuTG9vcCgpOjo8bGFtYmRhKCk+ID4oc3RkOjp1bmlxdWVfbG9j
azxibWFsbG9jOjpNdXRleD4gJiwgY29uc3Qgc3RkOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcsIHN0
ZDo6cmF0aW88MSwgMTAwMD4gPiAmLCBzdHJ1Y3Qgey4uLn0pICh0aGlzPTB4N2YxNGEwNjliZDgw
IDxibWFsbG9jOjpTdGF0aWNQZXJQcm9jZXNzU3RvcmFnZVRyYWl0czxibWFsbG9jOjpTY2F2ZW5n
ZXI+OjpTdG9yYWdlOjpzX21lbW9yeSszMj4sIF9fbG9jaz0uLi4sIF9fcnRpbWU9Li4uLCBfX3A9
Li4uKSBhdCAvdXNyL2luY2x1ZGUvYysrLzEwLjIuMC9jb25kaXRpb25fdmFyaWFibGU6MzcwCiM5
ICAweDAwMDA3ZjE0OWVmMmUxYjAgaW4gYm1hbGxvYzo6U2NhdmVuZ2VyOjp0aHJlYWRSdW5Mb29w
KCkgKHRoaXM9MHg3ZjE0YTA2OWJkNjAgPGJtYWxsb2M6OlN0YXRpY1BlclByb2Nlc3NTdG9yYWdl
VHJhaXRzPGJtYWxsb2M6OlNjYXZlbmdlcj46OlN0b3JhZ2U6OnNfbWVtb3J5PikgYXQgLi4vLi4v
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9TY2F2ZW5nZXIuY3BwOjQyMQojMTAgMHgwMDAwN2YxNDll
ZjJlMDhhIGluIGJtYWxsb2M6OlNjYXZlbmdlcjo6dGhyZWFkRW50cnlQb2ludChibWFsbG9jOjpT
Y2F2ZW5nZXIqKSAoc2NhdmVuZ2VyPTB4N2YxNGEwNjliZDYwIDxibWFsbG9jOjpTdGF0aWNQZXJQ
cm9jZXNzU3RvcmFnZVRyYWl0czxibWFsbG9jOjpTY2F2ZW5nZXI+OjpTdG9yYWdlOjpzX21lbW9y
eT4pIGF0IC4uLy4uL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU2NhdmVuZ2VyLmNwcDozOTUKIzEx
IDB4MDAwMDdmMTQ5ZWYzMTczNiBpbiBzdGQ6Ol9faW52b2tlX2ltcGw8dm9pZCwgdm9pZCAoKiko
Ym1hbGxvYzo6U2NhdmVuZ2VyKiksIGJtYWxsb2M6OlNjYXZlbmdlcio+KHN0ZDo6X19pbnZva2Vf
b3RoZXIsIHZvaWQgKComJikoYm1hbGxvYzo6U2NhdmVuZ2VyKiksIGJtYWxsb2M6OlNjYXZlbmdl
ciomJikgKF9fZj1AMHg1NjA0ZTBkODI2NTA6IDB4N2YxNDllZjJlMDcyIDxibWFsbG9jOjpTY2F2
ZW5nZXI6OnRocmVhZEVudHJ5UG9pbnQoYm1hbGxvYzo6U2NhdmVuZ2VyKik+KSBhdCAvdXNyL2lu
Y2x1ZGUvYysrLzEwLjIuMC9iaXRzL2ludm9rZS5oOjYwCiMxMiAweDAwMDA3ZjE0OWVmMzE2YWIg
aW4gc3RkOjpfX2ludm9rZTx2b2lkICgqKShibWFsbG9jOjpTY2F2ZW5nZXIqKSwgYm1hbGxvYzo6
U2NhdmVuZ2VyKj4odm9pZCAoKiYmKShibWFsbG9jOjpTY2F2ZW5nZXIqKSwgYm1hbGxvYzo6U2Nh
dmVuZ2VyKiYmKSAoX19mbj1AMHg1NjA0ZTBkODI2NTA6IDB4N2YxNDllZjJlMDcyIDxibWFsbG9j
OjpTY2F2ZW5nZXI6OnRocmVhZEVudHJ5UG9pbnQoYm1hbGxvYzo6U2NhdmVuZ2VyKik+KSBhdCAv
dXNyL2luY2x1ZGUvYysrLzEwLjIuMC9iaXRzL2ludm9rZS5oOjk1CiMxMyAweDAwMDA3ZjE0OWVm
MzE2MWIgaW4gc3RkOjp0aHJlYWQ6Ol9JbnZva2VyPHN0ZDo6dHVwbGU8dm9pZCAoKikoYm1hbGxv
Yzo6U2NhdmVuZ2VyKiksIGJtYWxsb2M6OlNjYXZlbmdlcio+ID46Ol9NX2ludm9rZTwwdWwsIDF1
bD4oc3RkOjpfSW5kZXhfdHVwbGU8MHVsLCAxdWw+KSAodGhpcz0weDU2MDRlMGQ4MjY0OCkgYXQg
L3Vzci9pbmNsdWRlL2MrKy8xMC4yLjAvdGhyZWFkOjI2NAojMTQgMHgwMDAwN2YxNDllZjMxNWQ0
IGluIHN0ZDo6dGhyZWFkOjpfSW52b2tlcjxzdGQ6OnR1cGxlPHZvaWQgKCopKGJtYWxsb2M6OlNj
YXZlbmdlciopLCBibWFsbG9jOjpTY2F2ZW5nZXIqPiA+OjpvcGVyYXRvcigpKCkgKHRoaXM9MHg1
NjA0ZTBkODI2NDgpIGF0IC91c3IvaW5jbHVkZS9jKysvMTAuMi4wL3RocmVhZDoyNzEKIzE1IDB4
MDAwMDdmMTQ5ZWYzMTViOCBpbiBzdGQ6OnRocmVhZDo6X1N0YXRlX2ltcGw8c3RkOjp0aHJlYWQ6
Ol9JbnZva2VyPHN0ZDo6dHVwbGU8dm9pZCAoKikoYm1hbGxvYzo6U2NhdmVuZ2VyKiksIGJtYWxs
b2M6OlNjYXZlbmdlcio+ID4gPjo6X01fcnVuKCkgKHRoaXM9MHg1NjA0ZTBkODI2NDApIGF0IC91
c3IvaW5jbHVkZS9jKysvMTAuMi4wL3RocmVhZDoyMTUKIzE2IDB4MDAwMDdmMTQ5YWJjOGE3NCBp
biBzdGQ6OmV4ZWN1dGVfbmF0aXZlX3RocmVhZF9yb3V0aW5lKHZvaWQqKSAoX19wPTB4NTYwNGUw
ZDgyNjQwKSBhdCAuLi8uLi8uLi8uLi8uLi9saWJzdGRjKystdjMvc3JjL2MrKzExL3RocmVhZC5j
Yzo4MAojMTcgMHgwMDAwN2YxNDlhZGMzNGQyIGluIHN0YXJ0X3RocmVhZCAoYXJnPTxvcHRpbWl6
ZWQgb3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0NzcKIzE4IDB4MDAwMDdmMTQ5YThiMzMyMyBp
biBjbG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzo5
NQoKVGhyZWFkIDQgKFRocmVhZCAweDdmMTQ1N2NmZjcwMCAoTFdQIDM0ODIpKToKIzAgIDB4MDAw
MDdmMTQ5YThhODUzZiBpbiBfX0dJX19fcG9sbCAoZmRzPTB4N2YxNDUwMDA1MDIwLCBuZmRzPTEs
IHRpbWVvdXQ9LTEpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BvbGwuYzoyOQojMSAg
MHgwMDAwN2YxNDlhZTM3MGZlIGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHByaW9yaXR5PTxvcHRp
bWl6ZWQgb3V0Piwgbl9mZHM9MSwgZmRzPTB4N2YxNDUwMDA1MDIwLCB0aW1lb3V0PTxvcHRpbWl6
ZWQgb3V0PiwgY29udGV4dD0weDdmMTQ1MDAwMGI2MCkgYXQgLi4vZ2xpYi9nbWFpbi5jOjQ0MzQK
IzIgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNvbnRleHQ9MHg3ZjE0NTAwMDBiNjAsIGJsb2Nr
PWJsb2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRpc3BhdGNoQGVudHJ5PTEsIHNlbGY9PG9wdGltaXpl
ZCBvdXQ+KSBhdCAuLi9nbGliL2dtYWluLmM6NDEyNgojMyAgMHgwMDAwN2YxNDlhZTM3NDgzIGlu
IGdfbWFpbl9sb29wX3J1biAobG9vcD0weDdmMTQ1MDAwM2U2MCkgYXQgLi4vZ2xpYi9nbWFpbi5j
OjQzMjkKIzQgIDB4MDAwMDdmMTQ5ZWYwN2Y5MiBpbiBXVEY6OlJ1bkxvb3A6OnJ1bigpICgpIGF0
IC4uLy4uL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOjEwOAojNSAgMHgwMDAw
N2YxNDllZWZmZWVjIGluIG9wZXJhdG9yKCkoKSBjb25zdCAoX19jbG9zdXJlPTB4N2YxNDk3ZmY2
MTEwKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3Bw
OjUxCiM2ICAweDAwMDA3ZjE0OWVmMDFmYTQgaW4gV1RGOjpEZXRhaWw6OkNhbGxhYmxlV3JhcHBl
cjxXVEY6OldvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNoYXIgY29uc3QqLCBXVEY6Oldv
cmtRdWV1ZTo6VHlwZSwgV1RGOjpXb3JrUXVldWU6OlFPUyk6OjxsYW1iZGEoKT4sIHZvaWQ+Ojpj
YWxsKHZvaWQpICh0aGlzPTB4N2YxNDk3ZmY2MTA4KSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9G
dW5jdGlvbi5oOjUyCiM3ICAweDAwMDA3ZjE0OWRlZTQwNTUgaW4gV1RGOjpGdW5jdGlvbjx2b2lk
ICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICh0aGlzPTB4N2YxNDU3Y2ZlYzMwKSBhdCBEZXJpdmVk
U291cmNlcy9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRnVuY3Rpb24uaDo4MwojOCAgMHgwMDAwN2Yx
NDllZTZjN2ZiIGluIFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhyZWFkOjpOZXdUaHJl
YWRDb250ZXh0KikgKG5ld1RocmVhZENvbnRleHQ9MHg3ZjE0OTdmZjQwMDApIGF0IC4uLy4uL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHA6MTgxCiM5ICAweDAwMDA3ZjE0OWVmMTJmNzUgaW4g
V1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqKSAoY29udGV4dD0weDdmMTQ5N2ZmNDAwMCkg
YXQgLi4vLi4vU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVguY3BwOjI0MQojMTAg
MHgwMDAwN2YxNDlhZGMzNGQyIGluIHN0YXJ0X3RocmVhZCAoYXJnPTxvcHRpbWl6ZWQgb3V0Pikg
YXQgcHRocmVhZF9jcmVhdGUuYzo0NzcKIzExIDB4MDAwMDdmMTQ5YThiMzMyMyBpbiBjbG9uZSAo
KSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzo5NQoKVGhyZWFk
IDMgKFRocmVhZCAweDdmMTQ1NzRmZTcwMCAoTFdQIDM0ODMpKToKIzAgIDB4MDAwMDdmMTQ5YThh
ODUzZiBpbiBfX0dJX19fcG9sbCAoZmRzPTB4NTYwNGUwZDhmNGQwLCBuZmRzPTIsIHRpbWVvdXQ9
LTEpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BvbGwuYzoyOQojMSAgMHgwMDAwN2Yx
NDlhZTM3MGZlIGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHByaW9yaXR5PTxvcHRpbWl6ZWQgb3V0
Piwgbl9mZHM9MiwgZmRzPTB4NTYwNGUwZDhmNGQwLCB0aW1lb3V0PTxvcHRpbWl6ZWQgb3V0Piwg
Y29udGV4dD0weDU2MDRlMGQ5MzYzMCkgYXQgLi4vZ2xpYi9nbWFpbi5jOjQ0MzQKIzIgIGdfbWFp
bl9jb250ZXh0X2l0ZXJhdGUgKGNvbnRleHQ9Y29udGV4dEBlbnRyeT0weDU2MDRlMGQ5MzYzMCwg
YmxvY2s9YmxvY2tAZW50cnk9MSwgZGlzcGF0Y2g9ZGlzcGF0Y2hAZW50cnk9MSwgc2VsZj08b3B0
aW1pemVkIG91dD4pIGF0IC4uL2dsaWIvZ21haW4uYzo0MTI2CiMzICAweDAwMDA3ZjE0OWFlMzcy
MzMgaW4gZ19tYWluX2NvbnRleHRfaXRlcmF0aW9uIChjb250ZXh0PTB4NTYwNGUwZDkzNjMwLCBt
YXlfYmxvY2s9bWF5X2Jsb2NrQGVudHJ5PTEpIGF0IC4uL2dsaWIvZ21haW4uYzo0MTk2CiM0ICAw
eDAwMDA3ZjE0OWFlMzcyODEgaW4gZ2xpYl93b3JrZXJfbWFpbiAoZGF0YT08b3B0aW1pemVkIG91
dD4pIGF0IC4uL2dsaWIvZ21haW4uYzo2MDg5CiM1ICAweDAwMDA3ZjE0OWFlNjE1YTEgaW4gZ190
aHJlYWRfcHJveHkgKGRhdGE9MHg1NjA0ZTBkOGE0MDApIGF0IC4uL2dsaWIvZ3RocmVhZC5jOjgy
NgojNiAgMHgwMDAwN2YxNDlhZGMzNGQyIGluIHN0YXJ0X3RocmVhZCAoYXJnPTxvcHRpbWl6ZWQg
b3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0NzcKIzcgIDB4MDAwMDdmMTQ5YThiMzMyMyBpbiBj
bG9uZSAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzo5NQoK
VGhyZWFkIDIgKFRocmVhZCAweDdmMTQ1NjRmYzcwMCAoTFdQIDM0ODUpKToKIzAgIDB4MDAwMDdm
MTQ5YThhODUzZiBpbiBfX0dJX19fcG9sbCAoZmRzPTB4N2YxNDQwMDAzZjQwLCBuZmRzPTIsIHRp
bWVvdXQ9LTEpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BvbGwuYzoyOQojMSAgMHgw
MDAwN2YxNDlhZTM3MGZlIGluIGdfbWFpbl9jb250ZXh0X3BvbGwgKHByaW9yaXR5PTxvcHRpbWl6
ZWQgb3V0Piwgbl9mZHM9MiwgZmRzPTB4N2YxNDQwMDAzZjQwLCB0aW1lb3V0PTxvcHRpbWl6ZWQg
b3V0PiwgY29udGV4dD0weDdmMTQ0MDAwMGI2MCkgYXQgLi4vZ2xpYi9nbWFpbi5jOjQ0MzQKIzIg
IGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNvbnRleHQ9MHg3ZjE0NDAwMDBiNjAsIGJsb2NrPWJs
b2NrQGVudHJ5PTEsIGRpc3BhdGNoPWRpc3BhdGNoQGVudHJ5PTEsIHNlbGY9PG9wdGltaXplZCBv
dXQ+KSBhdCAuLi9nbGliL2dtYWluLmM6NDEyNgojMyAgMHgwMDAwN2YxNDlhZTM3NDgzIGluIGdf
bWFpbl9sb29wX3J1biAobG9vcD0weDdmMTQ0MDAwM2U2MCkgYXQgLi4vZ2xpYi9nbWFpbi5jOjQz
MjkKIzQgIDB4MDAwMDdmMTQ5ZWYwN2Y5MiBpbiBXVEY6OlJ1bkxvb3A6OnJ1bigpICgpIGF0IC4u
Ly4uL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOjEwOAojNSAgMHgwMDAwN2Yx
NDllZWZmZWVjIGluIG9wZXJhdG9yKCkoKSBjb25zdCAoX19jbG9zdXJlPTB4N2YxNDk3ZmY2MWI4
KSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwOjUx
CiM2ICAweDAwMDA3ZjE0OWVmMDFmYTQgaW4gV1RGOjpEZXRhaWw6OkNhbGxhYmxlV3JhcHBlcjxX
VEY6OldvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNoYXIgY29uc3QqLCBXVEY6OldvcmtR
dWV1ZTo6VHlwZSwgV1RGOjpXb3JrUXVldWU6OlFPUyk6OjxsYW1iZGEoKT4sIHZvaWQ+OjpjYWxs
KHZvaWQpICh0aGlzPTB4N2YxNDk3ZmY2MWIwKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9GdW5j
dGlvbi5oOjUyCiM3ICAweDAwMDA3ZjE0OWRlZTQwNTUgaW4gV1RGOjpGdW5jdGlvbjx2b2lkICgp
Pjo6b3BlcmF0b3IoKSgpIGNvbnN0ICh0aGlzPTB4N2YxNDU2NGZiYzMwKSBhdCBEZXJpdmVkU291
cmNlcy9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRnVuY3Rpb24uaDo4MwojOCAgMHgwMDAwN2YxNDll
ZTZjN2ZiIGluIFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhyZWFkOjpOZXdUaHJlYWRD
b250ZXh0KikgKG5ld1RocmVhZENvbnRleHQ9MHg3ZjE0OTdmZjQwYTApIGF0IC4uLy4uL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZy5jcHA6MTgxCiM5ICAweDAwMDA3ZjE0OWVmMTJmNzUgaW4gV1RG
Ojp3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqKSAoY29udGV4dD0weDdmMTQ5N2ZmNDBhMCkgYXQg
Li4vLi4vU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVguY3BwOjI0MQojMTAgMHgw
MDAwN2YxNDlhZGMzNGQyIGluIHN0YXJ0X3RocmVhZCAoYXJnPTxvcHRpbWl6ZWQgb3V0PikgYXQg
cHRocmVhZF9jcmVhdGUuYzo0NzcKIzExIDB4MDAwMDdmMTQ5YThiMzMyMyBpbiBjbG9uZSAoKSBh
dCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzo5NQoKVGhyZWFkIDEg
KFRocmVhZCAweDdmMTQ5ODhhODljMCAoTFdQIDM0NzgpKToKIzAgIGdfbG9ndiAobG9nX2RvbWFp
bj0weDdmMTQ5OWI0MTk0MyAibGlic291cCIsIGxvZ19sZXZlbD1HX0xPR19MRVZFTF9DUklUSUNB
TCwgZm9ybWF0PTxvcHRpbWl6ZWQgb3V0PiwgYXJncz08b3B0aW1pemVkIG91dD4pIGF0IC4uL2ds
aWIvZ21lc3NhZ2VzLmM6MTQxMwojMSAgMHgwMDAwN2YxNDlhZTNlOTczIGluIGdfbG9nIChsb2df
ZG9tYWluPTxvcHRpbWl6ZWQgb3V0PiwgbG9nX2xldmVsPTxvcHRpbWl6ZWQgb3V0PiwgZm9ybWF0
PTxvcHRpbWl6ZWQgb3V0PikgYXQgLi4vZ2xpYi9nbWVzc2FnZXMuYzoxNDUxCiMyICAweDAwMDA3
ZjE0YTYxYWY3ZjYgaW4gV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2Fn
ZUJvZHkoX1NvdXBNZXNzYWdlKiwgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbCYpIGNvbnN0ICh0
aGlzPTB4N2YxNDU0MWY2Nzg4LCBzb3VwTWVzc2FnZT0weDU2MDRlMGRhNjk5MCBbU291cE1lc3Nh
Z2VdLCBibG9iUmVnaXN0cnk9Li4uKSBhdCAuLi8uLi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHA6MTM4CiMzICAweDAwMDA3ZjE0YTYx
YWY1NmMgaW4gV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OjpjcmVhdGVTb3VwTWVzc2FnZShXZWJD
b3JlOjpCbG9iUmVnaXN0cnlJbXBsJikgY29uc3QgKHRoaXM9MHg3ZjE0NTQxZjY3ODgsIGJsb2JS
ZWdpc3RyeT0uLi4pIGF0IC4uLy4uL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcDo5MAojNCAgMHgwMDAwN2YxNGEyYjkwYjE3IGluIFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpXYXNCbG9ja2luZ0Nvb2tp
ZXMpICh0aGlzPTB4N2YxNDU0MWY2NTgwLCByZXF1ZXN0PS4uLiwgd2FzQmxvY2tpbmdDb29raWVz
PVdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6V2FzQmxvY2tpbmdDb29raWVzOjpObykgYXQg
Li4vLi4vU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuY3BwOjEyNwojNSAgMHgwMDAwN2YxNGEyYjkwNWYxIGluIFdlYktpdDo6TmV0d29ya0RhdGFU
YXNrU291cDo6TmV0d29ya0RhdGFUYXNrU291cChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uJiwgV2Vi
S2l0OjpOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29u
c3QmLCBXVEY6Ok9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyVHlwZT4s
IFdURjo6T2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllclR5cGU+LCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9s
aWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCwgYm9vbCkg
KHRoaXM9MHg3ZjE0NTQxZjY1ODAsIHNlc3Npb249Li4uLCBjbGllbnQ9Li4uLCByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzPS4uLiwgZnJhbWVJRD0uLi4sIHBhZ2VJRD0uLi4sIHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5PVdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UsIHNob3VsZENv
bnRlbnRTbmlmZj1XZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6OkRvTm90U25pZmZDb250
ZW50LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0PXRydWUsIGRhdGFU
YXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uPWZhbHNlKSBhdCAuLi8uLi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6ODEKIzYgIDB4MDAw
MDdmMTRhMjg0YmI1NyBpbiBXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZShXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uJiwgV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgY29uc3QmLCBXVEY6Ok9iamVjdElkZW50aWZpZXI8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyVHlwZT4sIFdURjo6T2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllclR5cGU+LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeSwgYm9vbCwgYm9vbCkgKHNlc3Npb249Li4uLCBjbGllbnQ9Li4uLCByZXF1ZXN0
PS4uLiwgZnJhbWVJRD0uLi4sIHBhZ2VJRD0uLi4sIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5PVdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UsIHNob3VsZENvbnRlbnRTbmlmZj1X
ZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6OkRvTm90U25pZmZDb250ZW50LCBzaG91bGRD
b250ZW50RW5jb2RpbmdTbmlmZj1XZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGlj
eTo6RG9Ob3RTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdD10
cnVlLCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbj1mYWxzZSkgYXQgLi4vLi4vU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaDo0NQoj
NyAgMHgwMDAwN2YxNGEyODM2YjVkIGluIFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbiYsIFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ2xpZW50Jiwg
V2ViS2l0OjpOZXR3b3JrTG9hZFBhcmFtZXRlcnMgY29uc3QmKSAoc2Vzc2lvbj0uLi4sIGNsaWVu
dD0uLi4sIHBhcmFtZXRlcnM9Li4uKSBhdCAuLi8uLi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtEYXRhVGFzay5jcHA6NjAKIzggIDB4MDAwMDdmMTRhMjgzYTE1YiBpbiBXZWJL
aXQ6Ok5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2xpZW50Jiwg
V2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbCosIFdlYktpdDo6TmV0d29ya0xvYWRQYXJhbWV0ZXJz
JiYsIFdlYktpdDo6TmV0d29ya1Nlc3Npb24mKSAodGhpcz0weDdmMTQ5N2ZlMTAwMCwgY2xpZW50
PS4uLiwgYmxvYlJlZ2lzdHJ5PTB4N2YxNDk3ZmQ3MTM4LCBwYXJhbWV0ZXJzPS4uLiwgbmV0d29y
a1Nlc3Npb249Li4uKSBhdCAuLi8uLi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcDo1NwojOSAgMHgwMDAwN2YxNGEyOGUxMjAzIGluIHN0ZDo6bWFrZV91bmlxdWU8
V2ViS2l0OjpOZXR3b3JrTG9hZCwgV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXImLCBXZWJD
b3JlOjpCbG9iUmVnaXN0cnlJbXBsKiwgV2ViS2l0OjpOZXR3b3JrTG9hZFBhcmFtZXRlcnMsIFdl
YktpdDo6TmV0d29ya1Nlc3Npb24mPihXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlciYsIFdl
YkNvcmU6OkJsb2JSZWdpc3RyeUltcGwqJiYsIFdlYktpdDo6TmV0d29ya0xvYWRQYXJhbWV0ZXJz
JiYsIFdlYktpdDo6TmV0d29ya1Nlc3Npb24mKSAoKSBhdCAvdXNyL2luY2x1ZGUvYysrLzEwLjIu
MC9iaXRzL3VuaXF1ZV9wdHIuaDo5NjIKIzEwIDB4MDAwMDdmMTRhMjhkNGVjNCBpbiBXVEY6Om1h
a2VVbmlxdWU8V2ViS2l0OjpOZXR3b3JrTG9hZCwgV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXImLCBXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsKiwgV2ViS2l0OjpOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMsIFdlYktpdDo6TmV0d29ya1Nlc3Npb24mPihXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRlciYsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeUltcGwqJiYsIFdlYktpdDo6TmV0d29ya0xvYWRQ
YXJhbWV0ZXJzJiYsIFdlYktpdDo6TmV0d29ya1Nlc3Npb24mKSAoKSBhdCBEZXJpdmVkU291cmNl
cy9Gb3J3YXJkaW5nSGVhZGVycy93dGYvU3RkTGliRXh0cmFzLmg6NTA3CiMxMSAweDAwMDA3ZjE0
YTI4OGRlMDIgaW4gV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xv
YWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpGaXJzdExvYWQpICh0aGlzPTB4N2YxNDU3ZGVlNjAwLCByZXF1ZXN0PS4uLiwgbG9hZD1X
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Rmlyc3RMb2FkOjpZZXMpIGF0IC4uLy4uL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDozMzgK
IzEyIDB4MDAwMDdmMTRhMjhjNzRlOSBpbiBvcGVyYXRvcigpPHN0ZDo6dW5pcXVlX3B0cjxXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6RW50cnk+LCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OlJl
dHJpZXZlSW5mbz4oc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6TmV0d29ya0NhY2hlOjpFbnRyeSwg
c3RkOjpkZWZhdWx0X2RlbGV0ZTxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RW50cnk+ID4sIFdlYktp
dDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6UmV0cmlldmVJbmZvKSAoX19jbG9zdXJlPTB4N2YxNDk3
ZmRiNGU4LCBlbnRyeT1zdGQ6OnVuaXF1ZV9wdHI8Y2xhc3MgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OkVudHJ5PiA9IHsuLi59LCBpbmZvPS4uLikgYXQgLi4vLi4vU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOjI1OAojMTMgMHgwMDAwN2YxNGEyOGM3
NWM1IGluIFdURjo6RGV0YWlsOjpDYWxsYWJsZVdyYXBwZXI8V2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTo6PGxhbWJkYShhdXRvOjU5LCBhdXRvOjYwKT4sIHZvaWQsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RW50cnksIHN0ZDo6ZGVmYXVsdF9kZWxldGU8V2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkVudHJ5PiA+LCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6
OlJldHJpZXZlSW5mbyY+OjpjYWxsKHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6RW50cnksIHN0ZDo6ZGVmYXVsdF9kZWxldGU8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkVudHJ5
PiA+LCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OlJldHJpZXZlSW5mbyAmKSAo
dGhpcz0weDdmMTQ5N2ZkYjRlMCwgaW4jMD1zdGQ6OnVuaXF1ZV9wdHI8Y2xhc3MgV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkVudHJ5PiA9IHsuLi59LCBpbiMxPS4uLikgYXQgRGVyaXZlZFNvdXJjZXMv
Rm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uLmg6NTIKIzE0IDB4MDAwMDdmMTRhMmIxOWNl
NCBpbiBXVEY6OkZ1bmN0aW9uPHZvaWQgKHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6RW50cnksIHN0ZDo6ZGVmYXVsdF9kZWxldGU8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkVu
dHJ5PiA+LCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OlJldHJpZXZlSW5mbyBjb25zdCYp
Pjo6b3BlcmF0b3IoKShzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkVudHJ5
LCBzdGQ6OmRlZmF1bHRfZGVsZXRlPFdlYktpdDo6TmV0d29ya0NhY2hlOjpFbnRyeT4gPiwgV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpSZXRyaWV2ZUluZm8gY29uc3QmKSBjb25zdCAodGhp
cz0weDdmZmM1NTgzY2FiMCwgaW4jMD1zdGQ6OnVuaXF1ZV9wdHI8Y2xhc3MgV2ViS2l0OjpOZXR3
b3JrQ2FjaGU6OkVudHJ5PiA9IHsuLi59LCBpbiMxPS4uLikgYXQgRGVyaXZlZFNvdXJjZXMvRm9y
d2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uLmg6ODMKIzE1IDB4MDAwMDdmMTRhMmFmNzBhNyBp
biBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmNvbXBsZXRlUmV0cmlldmUoV1RGOjpGdW5j
dGlvbjx2b2lkIChzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkVudHJ5LCBz
dGQ6OmRlZmF1bHRfZGVsZXRlPFdlYktpdDo6TmV0d29ya0NhY2hlOjpFbnRyeT4gPiwgV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpSZXRyaWV2ZUluZm8gY29uc3QmKT4mJiwgc3RkOjp1bmlx
dWVfcHRyPFdlYktpdDo6TmV0d29ya0NhY2hlOjpFbnRyeSwgc3RkOjpkZWZhdWx0X2RlbGV0ZTxX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RW50cnk+ID4sIFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNo
ZTo6UmV0cmlldmVJbmZvJikgKGhhbmRsZXI9Li4uLCBlbnRyeT1zdGQ6OnVuaXF1ZV9wdHI8Y2xh
c3MgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkVudHJ5PiA9IHsuLi59LCBpbmZvPS4uLikgYXQgLi4v
Li4vU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwOjQ1
NQojMTYgMHgwMDAwN2YxNGEyYWY2YmVlIGluIFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6
cmV0cmlldmUoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JiwgV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Okdsb2JhbEZyYW1lSUQgY29uc3QmLCBXVEY6Ok9wdGlvbmFsPFdlYktpdDo6TmF2aWdh
dGluZ1RvQXBwQm91bmREb21haW4+LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKHN0ZDo6dW5pcXVlX3B0
cjxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RW50cnksIHN0ZDo6ZGVmYXVsdF9kZWxldGU8V2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OkVudHJ5PiA+LCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OlJl
dHJpZXZlSW5mbyBjb25zdCYpPiYmKSAodGhpcz0weDdmMTQ5N2ZjNTAwMCwgcmVxdWVzdD0uLi4s
IGZyYW1lSUQ9Li4uLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPS4uLiwgY29tcGxldGlv
bkhhbmRsZXI9Li4uKSBhdCAuLi8uLi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHA6MzkwCiMxNyAweDAwMDA3ZjE0YTI4OGNiMmQgaW4gV2ViS2l0OjpO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgY29uc3QmKSAodGhpcz0weDdmMTQ1N2RlZTYwMCwgcmVxdWVzdD0uLi4pIGF0IC4u
Ly4uL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cDoyNTAKIzE4IDB4MDAwMDdmMTRhMjhjNWNjNCBpbiBvcGVyYXRvcigpKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIGNvbnN0ICh0aGlzPTB4N2ZmYzU1ODNjY2QwLCByZXF1ZXN0PS4uLikgYXQg
Li4vLi4vU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwOjIwMwojMTkgMHgwMDAwN2YxNGEyOGM5YzcxIGluIFdURjo6X192aXNpdG9yX3RhYmxlPFdU
Rjo6VmlzaXRvcjxXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKTo6PGxhbWJk
YShhdXRvOjU4JiYpPiBbd2l0aCBhdXRvOjU4ID0gV1RGOjpWYXJpYW50PFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCwgV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OlJlZGlyZWN0aW9uVHJpcGxl
dCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj5dOjo8bGFtYmRhKFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKT4sIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpOjo8bGFtYmRhKGF1
dG86NTgmJik+IFt3aXRoIGF1dG86NTggPSBXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0LCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yPl06OjxsYW1iZGEoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNr
ZXI6OlJlZGlyZWN0aW9uVHJpcGxldCYpPiwgV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnN0YXJ0KCk6OjxsYW1iZGEoYXV0bzo1OCYmKT4gW3dpdGggYXV0bzo1OCA9IFdURjo6VmFyaWFu
dDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpS
ZWRpcmVjdGlvblRyaXBsZXQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+XTo6PGxhbWJkYShXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKT4gPiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0LCBXZWJL
aXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yPjo6X190cmFtcG9saW5lX2Z1bmM8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PihX
VEY6OlZpc2l0b3I8V2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCk6OjxsYW1i
ZGEoYXV0bzo1OCYmKT4gW3dpdGggYXV0bzo1OCA9IFdURjo6VmFyaWFudDxXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QsIFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBs
ZXQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+XTo6PGxhbWJkYShXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJik+LCBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKTo6PGxhbWJkYShh
dXRvOjU4JiYpPiBbd2l0aCBhdXRvOjU4ID0gV1RGOjpWYXJpYW50PFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCwgV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OlJlZGlyZWN0aW9uVHJpcGxldCwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj5dOjo8bGFtYmRhKFdlYktpdDo6TmV0d29ya0xvYWRDaGVj
a2VyOjpSZWRpcmVjdGlvblRyaXBsZXQmKT4sIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
OjpzdGFydCgpOjo8bGFtYmRhKGF1dG86NTgmJik+IFt3aXRoIGF1dG86NTggPSBXVEY6OlZhcmlh
bnQ8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0LCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6
UmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPl06OjxsYW1iZGEoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik+ID4gJiwgV1RGOjpfX3Zpc2l0b3JfdGFibGU8V1RGOjpW
aXNpdG9yPFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpOjo8bGFtYmRhKGF1
dG86NTgmJik+IFt3aXRoIGF1dG86NTggPSBXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0LCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yPl06OjxsYW1iZGEoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYp
PiwgV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCk6OjxsYW1iZGEoYXV0bzo1
OCYmKT4gW3dpdGggYXV0bzo1OCA9IFdURjo6VmFyaWFudDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QsIFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3I+XTo6PGxhbWJkYShXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6
UmVkaXJlY3Rpb25UcmlwbGV0Jik+LCBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3Rh
cnQoKTo6PGxhbWJkYShhdXRvOjU4JiYpPiBbd2l0aCBhdXRvOjU4ID0gV1RGOjpWYXJpYW50PFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCwgV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OlJlZGly
ZWN0aW9uVHJpcGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj5dOjo8bGFtYmRhKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpPiA+LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFdlYktpdDo6
TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3I+OjpfX3ZhcmlhbnRfdHlwZSAmKSAoX192aXNpdG9yPS4uLiwgX192PS4uLikgYXQgRGVy
aXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1ZhcmlhbnQuaDoxODczCiMyMCAweDAw
MDA3ZjE0YTI4YzkxMzkgaW4gV1RGOjp2aXNpdDxXVEY6OlZpc2l0b3I8V2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCk6OjxsYW1iZGEoYXV0bzo1OCYmKT4gW3dpdGggYXV0bzo1
OCA9IFdURjo6VmFyaWFudDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFdlYktpdDo6TmV0d29y
a0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+
XTo6PGxhbWJkYShXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik+LCBXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c3RhcnQoKTo6PGxhbWJkYShhdXRvOjU4JiYpPiBbd2l0aCBhdXRvOjU4ID0g
V1RGOjpWYXJpYW50PFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCwgV2ViS2l0OjpOZXR3b3JrTG9h
ZENoZWNrZXI6OlJlZGlyZWN0aW9uVHJpcGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj5dOjo8
bGFtYmRhKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQmKT4s
IFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpOjo8bGFtYmRhKGF1dG86NTgm
Jik+IFt3aXRoIGF1dG86NTggPSBXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
LCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yPl06OjxsYW1iZGEoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik+ID4s
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCwgV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OlJl
ZGlyZWN0aW9uVHJpcGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4oV1RGOjpWaXNpdG9yPFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpOjo8bGFtYmRhKGF1dG86NTgmJik+
IFt3aXRoIGF1dG86NTggPSBXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0LCBX
ZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yPl06OjxsYW1iZGEoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiwgV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCk6OjxsYW1iZGEoYXV0bzo1OCYmKT4gW3dp
dGggYXV0bzo1OCA9IFdURjo6VmFyaWFudDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFdlYktp
dDo6TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3I+XTo6PGxhbWJkYShXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rp
b25UcmlwbGV0Jik+LCBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKTo6PGxh
bWJkYShhdXRvOjU4JiYpPiBbd2l0aCBhdXRvOjU4ID0gV1RGOjpWYXJpYW50PFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCwgV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OlJlZGlyZWN0aW9uVHJp
cGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj5dOjo8bGFtYmRhKFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYpPiA+ICYmLCBXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0LCBX
ZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yPiAmKSAoX192aXNpdG9yPS4uLiwgX192PS4uLikgYXQgRGVyaXZlZFNvdXJj
ZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1ZhcmlhbnQuaDoxODg5CiMyMSAweDAwMDA3ZjE0YTI4
YzhhZDIgaW4gV1RGOjpzd2l0Y2hPbjxXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0LCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yPiYsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFy
dCgpOjo8bGFtYmRhKGF1dG86NTgmJik+IFt3aXRoIGF1dG86NTggPSBXVEY6OlZhcmlhbnQ8V2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0LCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJl
Y3Rpb25UcmlwbGV0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPl06OjxsYW1iZGEoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpPiwgV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCk6
OjxsYW1iZGEoYXV0bzo1OCYmKT4gW3dpdGggYXV0bzo1OCA9IFdURjo6VmFyaWFudDxXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QsIFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlv
blRyaXBsZXQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+XTo6PGxhbWJkYShXZWJLaXQ6Ok5ldHdv
cmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0Jik+LCBXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c3RhcnQoKTo6PGxhbWJkYShhdXRvOjU4JiYpPiBbd2l0aCBhdXRvOjU4ID0g
V1RGOjpWYXJpYW50PFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCwgV2ViS2l0OjpOZXR3b3JrTG9h
ZENoZWNrZXI6OlJlZGlyZWN0aW9uVHJpcGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj5dOjo8
bGFtYmRhKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpPiA+KFdURjo6VmFyaWFudDxXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QsIFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlv
blRyaXBsZXQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+ICYpICh2PS4uLikgYXQgRGVyaXZlZFNv
dXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1ZhcmlhbnQuaDoyMDU0CiMyMiAweDAwMDA3ZjE0
YTI4YzVkNjQgaW4gb3BlcmF0b3IoKTxXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0LCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yPiA+KFdURjo6VmFyaWFudDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QsIFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3I+JiYpIGNvbnN0IChfX2Nsb3N1cmU9MHg3ZjE0OTdmNWIzNjgsIHJl
c3VsdD0uLi4pIGF0IC4uLy4uL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcDoxODkKIzIzIDB4MDAwMDdmMTRhMjhjNWRhZSBpbiBXVEY6OkRldGFp
bDo6Q2FsbGFibGVXcmFwcGVyPFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgp
Ojo8bGFtYmRhKGF1dG86NTgmJik+LCB2b2lkLCBXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0LCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYmPjo6Y2FsbChXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0LCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25U
cmlwbGV0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiAmJikgKHRoaXM9MHg3ZjE0OTdmNWIzNjAs
IGluIzA9Li4uKSBhdCBEZXJpdmVkU291cmNlcy9Gb3J3YXJkaW5nSGVhZGVycy93dGYvRnVuY3Rp
b24uaDo1MgojMjQgMHgwMDAwN2YxNGEyODVlNTE3IGluIFdURjo6RnVuY3Rpb248dm9pZCAoV1RG
OjpWYXJpYW50PFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCwgV2ViS2l0OjpOZXR3b3JrTG9hZENo
ZWNrZXI6OlJlZGlyZWN0aW9uVHJpcGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4mJik+Ojpv
cGVyYXRvcigpKFdURjo6VmFyaWFudDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFdlYktpdDo6
TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3I+JiYpIGNvbnN0ICh0aGlzPTB4N2ZmYzU1ODNjZGQwLCBpbiMwPS4uLikgYXQgRGVyaXZl
ZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uLmg6ODMKIzI1IDB4MDAwMDdm
MTRhMjg1NGViOSBpbiBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKFdURjo6VmFyaWFudDxX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpSZWRp
cmVjdGlvblRyaXBsZXQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+JiYpPjo6b3BlcmF0b3IoKShX
VEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0LCBXZWJLaXQ6Ok5ldHdvcmtMb2Fk
Q2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYmKSAo
dGhpcz0weDdmMTQ5N2ZmZTI5OCwgaW4jMD0uLi4pIGF0IERlcml2ZWRTb3VyY2VzL0ZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9Db21wbGV0aW9uSGFuZGxlci5oOjY3CiMyNiAweDAwMDA3ZjE0YTI4M2Qz
NzEgaW4gV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmNvbnRpbnVlQ2hlY2tpbmdSZXF1ZXN0
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQg
KFdURjo6VmFyaWFudDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFdlYktpdDo6TmV0d29ya0xv
YWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+JiYp
PiYmKSAodGhpcz0weDdmMTQ1N2RmZDIwMCwgcmVxdWVzdD0uLi4sIGhhbmRsZXI9Li4uKSBhdCAu
Li8uLi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6
MzAzCiMyNyAweDAwMDA3ZjE0YTI4M2QwMWEgaW4gV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6
OmNvbnRpbnVlQ2hlY2tpbmdSZXF1ZXN0T3JEb1N5bnRoZXRpY1JlZGlyZWN0KFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkIChXVEY6OlZhcmlhbnQ8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0LCBX
ZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yPiYmKT4mJikgKHRoaXM9MHg3ZjE0NTdkZmQyMDAsIG9yaWdpbmFsUmVxdWVz
dD0uLi4sIGN1cnJlbnRSZXF1ZXN0PS4uLiwgaGFuZGxlcj0uLi4pIGF0IC4uLy4uL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoyNDkKIzI4IDB4MDAw
MDdmMTRhMjg0NmMwOCBpbiBvcGVyYXRvcigpPHN0ZDo6ZXhwZXJpbWVudGFsOjpmdW5kYW1lbnRh
bHNfdjM6OmV4cGVjdGVkPFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpDb250ZW50RXh0ZW5z
aW9uUmVzdWx0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiA+KHN0ZDo6ZXhwZXJpbWVudGFsOjpm
dW5kYW1lbnRhbHNfdjM6OmV4cGVjdGVkPFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpDb250
ZW50RXh0ZW5zaW9uUmVzdWx0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYmKSAoX19jbG9zdXJl
PTB4N2YxNDk3ZmZlMjkwLCByZXN1bHQ9Li4uKSBhdCAuLi8uLi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6MjM0CiMyOSAweDAwMDA3ZjE0YTI4NDZj
NWEgaW4gV1RGOjpEZXRhaWw6OkNhbGxhYmxlV3JhcHBlcjxXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hl
Y2tlcjo6Y2hlY2tSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpD
b250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQqLCBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6
VmFsaWRhdGlvbkhhbmRsZXImJik6OjxsYW1iZGEoYXV0bzoyMyYmKT4sIHZvaWQsIHN0ZDo6ZXhw
ZXJpbWVudGFsOjpmdW5kYW1lbnRhbHNfdjM6OmV4cGVjdGVkPFdlYktpdDo6TmV0d29ya0xvYWRD
aGVja2VyOjpDb250ZW50RXh0ZW5zaW9uUmVzdWx0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYm
Pjo6Y2FsbChzdGQ6OmV4cGVyaW1lbnRhbDo6ZnVuZGFtZW50YWxzX3YzOjpleHBlY3RlZDxXZWJL
aXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6Q29udGVudEV4dGVuc2lvblJlc3VsdCwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcj4gJiYpICh0aGlzPTB4N2YxNDk3ZmZlMjg4LCBpbiMwPS4uLikgYXQgRGVy
aXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uLmg6NTIKIzMwIDB4MDAw
MDdmMTRhMjg1ZWJlZCBpbiBXVEY6OkZ1bmN0aW9uPHZvaWQgKHN0ZDo6ZXhwZXJpbWVudGFsOjpm
dW5kYW1lbnRhbHNfdjM6OmV4cGVjdGVkPFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpDb250
ZW50RXh0ZW5zaW9uUmVzdWx0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYmKT46Om9wZXJhdG9y
KCkoc3RkOjpleHBlcmltZW50YWw6OmZ1bmRhbWVudGFsc192Mzo6ZXhwZWN0ZWQ8V2ViS2l0OjpO
ZXR3b3JrTG9hZENoZWNrZXI6OkNvbnRlbnRFeHRlbnNpb25SZXN1bHQsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3I+JiYpIGNvbnN0ICh0aGlzPTB4N2ZmYzU1ODNkYWYwLCBpbiMwPS4uLikgYXQgRGVy
aXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uLmg6ODMKIzMxIDB4MDAw
MDdmMTRhMjg1NTY4NyBpbiBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKHN0ZDo6ZXhwZXJp
bWVudGFsOjpmdW5kYW1lbnRhbHNfdjM6OmV4cGVjdGVkPFdlYktpdDo6TmV0d29ya0xvYWRDaGVj
a2VyOjpDb250ZW50RXh0ZW5zaW9uUmVzdWx0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYmKT46
Om9wZXJhdG9yKCkoc3RkOjpleHBlcmltZW50YWw6OmZ1bmRhbWVudGFsc192Mzo6ZXhwZWN0ZWQ8
V2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OkNvbnRlbnRFeHRlbnNpb25SZXN1bHQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3I+JiYpICh0aGlzPTB4N2ZmYzU1ODNkZDUwLCBpbiMwPS4uLikgYXQg
RGVyaXZlZFNvdXJjZXMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0NvbXBsZXRpb25IYW5kbGVyLmg6
NjcKIzMyIDB4MDAwMDdmMTRhMjgzZTQyNSBpbiBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6
cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKHN0ZDo6ZXhwZXJpbWVudGFsOjpmdW5kYW1l
bnRhbHNfdjM6OmV4cGVjdGVkPFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpDb250ZW50RXh0
ZW5zaW9uUmVzdWx0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiYmKT4mJikgKHRoaXM9MHg3ZjE0
NTdkZmQyMDAsIHJlcXVlc3Q9Li4uLCBjYWxsYmFjaz0uLi4pIGF0IC4uLy4uL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDo0NDIKIzMzIDB4MDAwMDdm
MTRhMjgzY2RmMyBpbiBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tSZXF1ZXN0KFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3lD
bGllbnQqLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKFdURjo6VmFyaWFudDxXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QsIFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlv
blRyaXBsZXQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+JiYpPiYmKSAodGhpcz0weDdmMTQ1N2Rm
ZDIwMCwgcmVxdWVzdD0uLi4sIGNsaWVudD0weDdmMTQ1N2RlZTYxOCwgaGFuZGxlcj0uLi4pIGF0
IC4uLy4uL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNw
cDoyMjIKIzM0IDB4MDAwMDdmMTRhMjgzYmNkNCBpbiBXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tl
cjo6Y2hlY2soV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkNvbnRlbnRTZWN1
cml0eVBvbGljeUNsaWVudCosIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoV1RGOjpWYXJp
YW50PFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCwgV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6
OlJlZGlyZWN0aW9uVHJpcGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4mJik+JiYpICh0aGlz
PTB4N2YxNDU3ZGZkMjAwLCByZXF1ZXN0PS4uLiwgY2xpZW50PTB4N2YxNDU3ZGVlNjE4LCBoYW5k
bGVyPS4uLikgYXQgLi4vLi4vU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZENoZWNrZXIuY3BwOjk1CiMzNSAweDAwMDA3ZjE0YTI4OGJmZmYgaW4gV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkgKHRoaXM9MHg3ZjE0NTdkZWU2MDApIGF0IC4uLy4uL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoxODUK
IzM2IDB4MDAwMDdmMTRhMjg5YzBhZSBpbiBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c2VydmljZVdvcmtlckRpZE5vdEhhbmRsZShXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2sq
KSAodGhpcz0weDdmMTQ1N2RlZTYwMCwgZmV0Y2hUYXNrPTB4MCkgYXQgLi4vLi4vU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOjE1MDUKIzM3IDB4
MDAwMDdmMTRhMjg5YmFkZSBpbiBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnRX
aXRoU2VydmljZVdvcmtlcigpICh0aGlzPTB4N2YxNDU3ZGVlNjAwKSBhdCAuLi8uLi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6MTQ4MAojMzgg
MHgwMDAwN2YxNGEyODMyNDg3IGluIFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnNjaGVkdWxlUmVzb3VyY2VMb2FkKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMmJikgKHRoaXM9MHg3ZjE0OTdmOWMwMDAsIGxvYWRQYXJhbWV0ZXJzPS4uLikgYXQgLi4v
Li4vU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6NDY1CiMzOSAweDAwMDA3ZjE0YTIzMjg3OGUgaW4gSVBDOjpjYWxsTWVtYmVyRnVu
Y3Rpb25JbXBsPFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIHZvaWQgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OiopKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMmJiksIHN0ZDo6dHVwbGU8V2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycz4sIDB1bD4oV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyosIHZvaWQgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OiopKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiksIHN0ZDo6dHVwbGU8V2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4mJiwgc3RkOjppbnRlZ2VyX3NlcXVlbmNl
PHVuc2lnbmVkIGxvbmcsIDB1bD4pIChvYmplY3Q9MHg3ZjE0OTdmOWMwMDAsIGZ1bmN0aW9uPSh2
b2lkIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjoqKShjbGFzcyBXZWJL
aXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzICogY29uc3QsIGNsYXNzIFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgJiYpKSAweDdmMTRhMjgzMjBhMCA8V2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2NoZWR1bGVSZXNvdXJjZUxvYWQoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmKT4sIGFyZ3M9Li4uKSBhdCAuLi8u
Li9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmg6NDMKIzQwIDB4MDAw
MDdmMTRhMjMxZmYxZSBpbiBJUEM6OmNhbGxNZW1iZXJGdW5jdGlvbjxXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLCB2b2lkIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjoqKShXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYpLCBz
dGQ6OnR1cGxlPFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM+LCBzdGQ6Omlu
dGVnZXJfc2VxdWVuY2U8dW5zaWduZWQgbG9uZywgMHVsPiA+KHN0ZDo6dHVwbGU8V2ViS2l0OjpO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4mJiwgV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyosIHZvaWQgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OiopKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJikpIChhcmdzPS4u
Liwgb2JqZWN0PTB4N2YxNDk3ZjljMDAwLCBmdW5jdGlvbj0odm9pZCAoV2ViS2l0OjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6KikoY2xhc3MgV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyAqIGNvbnN0LCBjbGFzcyBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzICYmKSkgMHg3ZjE0YTI4MzIwYTAgPFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnNjaGVkdWxlUmVzb3VyY2VMb2FkKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMmJik+KSBhdCAuLi8uLi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9I
YW5kbGVNZXNzYWdlLmg6NDkKIzQxIDB4MDAwMDdmMTRhMjMxNmU5YSBpbiBJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJl
c291cmNlTG9hZCwgV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcywgdm9pZCAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6KikoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmKT4oSVBDOjpEZWNvZGVyJiwgV2ViS2l0OjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyosIHZvaWQgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OiopKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJikp
IChkZWNvZGVyPS4uLiwgb2JqZWN0PTB4N2YxNDk3ZjljMDAwLCBmdW5jdGlvbj0odm9pZCAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6KikoY2xhc3MgV2ViS2l0OjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyAqIGNvbnN0LCBjbGFzcyBXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzICYmKSkgMHg3ZjE0YTI4MzIwYTAgPFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNjaGVkdWxlUmVzb3VyY2VMb2FkKFdlYktpdDo6TmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik+KSBhdCAuLi8uLi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdlLmg6MTIxCiM0MiAweDAwMDA3ZjE0YTIzMTA5ZjUgaW4g
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSAodGhpcz0weDdmMTQ5N2Y5YzAwMCwgY29ubmVjdGlvbj0uLi4sIGRlY29kZXI9Li4uKSBh
dCBEZXJpdmVkU291cmNlcy9XZWJLaXQvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlUmVjZWl2ZXIuY3BwOjM4MgojNDMgMHgwMDAwN2YxNGEyODMwZGRjIGluIFdlYktpdDo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpICh0aGlzPTB4N2YxNDk3ZjljMDAwLCBjb25uZWN0aW9uPS4u
LiwgZGVjb2Rlcj0uLi4pIGF0IC4uLy4uL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOjE5MQojNDQgMHgwMDAwN2YxNGEyYmIxNWIx
IGluIElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6RGVjb2RlciYpICh0aGlz
PTB4N2YxNDk3ZmVhMTk4LCBkZWNvZGVyPS4uLikgYXQgLi4vLi4vU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6MTAxMQojNDUgMHgwMDAwN2YxNGEyYmIxODFiIGluIElQ
Qzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkRlY29k
ZXIsIHN0ZDo6ZGVmYXVsdF9kZWxldGU8SVBDOjpEZWNvZGVyPiA+KSAodGhpcz0weDdmMTQ5N2Zl
YTE5OCwgbWVzc2FnZT1zdGQ6OnVuaXF1ZV9wdHI8Y2xhc3MgSVBDOjpEZWNvZGVyPiA9IHsuLi59
KSBhdCAuLi8uLi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoxMDU2
CiM0NiAweDAwMDA3ZjE0YTJiYjFkMzUgaW4gSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaE9uZUlu
Y29taW5nTWVzc2FnZSgpICh0aGlzPTB4N2YxNDk3ZmVhMTk4KSBhdCAuLi8uLi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoxMTI1CiM0NyAweDAwMDA3ZjE0YTJiYjEz
NTIgaW4gb3BlcmF0b3IoKSgpIChfX2Nsb3N1cmU9MHg3ZjE0OTdmNmUxMTgpIGF0IC4uLy4uL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOjk4MAojNDggMHgwMDAwN2Yx
NGEyYmI3MTY2IGluIFdURjo6RGV0YWlsOjpDYWxsYWJsZVdyYXBwZXI8SVBDOjpDb25uZWN0aW9u
OjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkRlY29kZXI+KTo6
PGxhbWJkYSgpPiwgdm9pZD46OmNhbGwodm9pZCkgKHRoaXM9MHg3ZjE0OTdmNmUxMTApIGF0IERl
cml2ZWRTb3VyY2VzL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9GdW5jdGlvbi5oOjUyCiM0OSAweDAw
MDA3ZjE0OWRlZTQwNTUgaW4gV1RGOjpGdW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNv
bnN0ICh0aGlzPTB4N2ZmYzU1ODNmMDIwKSBhdCBEZXJpdmVkU291cmNlcy9Gb3J3YXJkaW5nSGVh
ZGVycy93dGYvRnVuY3Rpb24uaDo4MwojNTAgMHgwMDAwN2YxNDllZTY2YmExIGluIFdURjo6UnVu
TG9vcDo6cGVyZm9ybVdvcmsoKSAodGhpcz0weDdmMTQ5N2ZmOTAwMCkgYXQgLi4vLi4vU291cmNl
L1dURi93dGYvUnVuTG9vcC5jcHA6MTI4CiM1MSAweDAwMDA3ZjE0OWVmMDc5ZjQgaW4gb3BlcmF0
b3IoKShncG9pbnRlcikgY29uc3QgKF9fY2xvc3VyZT0weDAsIHVzZXJEYXRhPTB4N2YxNDk3ZmY5
MDAwKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcDo4MAojNTIg
MHgwMDAwN2YxNDllZjA3YTE4IGluIF9GVU4oZ3BvaW50ZXIpICgpIGF0IC4uLy4uL1NvdXJjZS9X
VEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOjgyCiM1MyAweDAwMDA3ZjE0OWVmMDc5ODcgaW4g
b3BlcmF0b3IoKShHU291cmNlKiwgR1NvdXJjZUZ1bmMsIGdwb2ludGVyKSBjb25zdCAoX19jbG9z
dXJlPTB4MCwgc291cmNlPTB4NTYwNGUwZDg0MjIwLCBjYWxsYmFjaz0weDdmMTQ5ZWYwNzlmYiA8
X0ZVTihncG9pbnRlcik+LCB1c2VyRGF0YT0weDdmMTQ5N2ZmOTAwMCkgYXQgLi4vLi4vU291cmNl
L1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHA6NTMKIzU0IDB4MDAwMDdmMTQ5ZWYwNzlkNSBp
biBfRlVOKEdTb3VyY2UqLCBHU291cmNlRnVuYywgZ3BvaW50ZXIpICgpIGF0IC4uLy4uL1NvdXJj
ZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwOjU2CiM1NSAweDAwMDA3ZjE0OWFlMzZkYmYg
aW4gZ19tYWluX2Rpc3BhdGNoIChjb250ZXh0PTB4NTYwNGUwZDgzMTcwKSBhdCAuLi9nbGliL2dt
YWluLmM6MzMzNwojNTYgZ19tYWluX2NvbnRleHRfZGlzcGF0Y2ggKGNvbnRleHQ9MHg1NjA0ZTBk
ODMxNzApIGF0IC4uL2dsaWIvZ21haW4uYzo0MDU1CiM1NyAweDAwMDA3ZjE0OWFlMzcxNjggaW4g
Z19tYWluX2NvbnRleHRfaXRlcmF0ZSAoY29udGV4dD0weDU2MDRlMGQ4MzE3MCwgYmxvY2s9Ymxv
Y2tAZW50cnk9MSwgZGlzcGF0Y2g9ZGlzcGF0Y2hAZW50cnk9MSwgc2VsZj08b3B0aW1pemVkIG91
dD4pIGF0IC4uL2dsaWIvZ21haW4uYzo0MTMxCiM1OCAweDAwMDA3ZjE0OWFlMzc0ODMgaW4gZ19t
YWluX2xvb3BfcnVuIChsb29wPTB4NTYwNGUwZDg0MjAwKSBhdCAuLi9nbGliL2dtYWluLmM6NDMy
OQojNTkgMHgwMDAwN2YxNDllZjA3ZjkyIGluIFdURjo6UnVuTG9vcDo6cnVuKCkgKCkgYXQgLi4v
Li4vU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHA6MTA4CiM2MCAweDAwMDA3ZjE0
YTJiYTU3MTMgaW4gV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzTWFpbkJhc2U8V2ViS2l0OjpOZXR3
b3JrUHJvY2VzcywgZmFsc2U+OjpydW4oaW50LCBjaGFyKiopICh0aGlzPTB4N2ZmYzU1ODNmMmUw
LCBhcmdjPTMsIGFyZ3Y9MHg3ZmZjNTU4M2Y0NzgpIGF0IC4uLy4uL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0F1eGlsaWFyeVByb2Nlc3NNYWluLmg6NzAKIzYxIDB4MDAwMDdmMTRhMmJhMzIxMiBpbiBX
ZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3NNYWluPFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYWluU291
cD4oaW50LCBjaGFyKiopIChhcmdjPTMsIGFyZ3Y9MHg3ZmZjNTU4M2Y0NzgpIGF0IC4uLy4uL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3NNYWluLmg6OTYKIzYyIDB4MDAwMDdm
MTRhMmI5ODdlNyBpbiBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzTWFpbihpbnQsIGNoYXIqKikgKGFy
Z2M9MywgYXJndj0weDdmZmM1NTgzZjQ3OCkgYXQgLi4vLi4vU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwOjYxCiM2MyAweDAwMDA1NjA0
ZGY4OTY5NDkgaW4gbWFpbihpbnQsIGNoYXIqKikgKGFyZ2M9MywgYXJndj0weDdmZmM1NTgzZjQ3
OCkgYXQgLi4vLi4vU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgv
TmV0d29ya1Byb2Nlc3NNYWluLmNwcDozMQoKU1RERVJSOiAKU1RERVJSOiB3YXJuaW5nOiB0aGUg
ZGVidWcgaW5mb3JtYXRpb24gZm91bmQgaW4gIi91c3IvbGliL2RlYnVnLy91c3IvbGliL3g4Nl82
NC1saW51eC1nbnUvbGliaWN1ZGF0YS5zby42Ny4xLmRlYnVnIiBkb2VzIG5vdCBtYXRjaCAiL3Vz
ci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJpY3VkYXRhLnNvLjY3IiAoQ1JDIG1pc21hdGNoKS4K
U1RERVJSOiAKU1RERVJSOiAKU1RERVJSOiB3YXJuaW5nOiB0aGUgZGVidWcgaW5mb3JtYXRpb24g
Zm91bmQgaW4gIi91c3IvbGliL2RlYnVnLy91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliaWN1
ZGF0YS5zby42Ny4xLmRlYnVnIiBkb2VzIG5vdCBtYXRjaCAiL3Vzci9saWIveDg2XzY0LWxpbnV4
LWdudS9saWJpY3VkYXRhLnNvLjY3IiAoQ1JDIG1pc21hdGNoKS4KU1RERVJSOiAKU1RERVJSOiAK
U1RERVJSOiB3YXJuaW5nOiB0aGUgZGVidWcgaW5mb3JtYXRpb24gZm91bmQgaW4gIi91c3IvbGli
L2RlYnVnLy91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLXhjYi5zby4xLjAuMC5kZWJ1
ZyIgZG9lcyBub3QgbWF0Y2ggIi91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLXhjYi5z
by4xIiAoQ1JDIG1pc21hdGNoKS4KU1RERVJSOiAKU1RERVJSOiAKU1RERVJSOiB3YXJuaW5nOiB0
aGUgZGVidWcgaW5mb3JtYXRpb24gZm91bmQgaW4gIi91c3IvbGliL2RlYnVnLy91c3IvbGliL3g4
Nl82NC1saW51eC1nbnUvbGliWDExLXhjYi5zby4xLjAuMC5kZWJ1ZyIgZG9lcyBub3QgbWF0Y2gg
Ii91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGliWDExLXhjYi5zby4xIiAoQ1JDIG1pc21hdGNo
KS4KU1RERVJSOiAKU1RERVJSOiAKU1RERVJSOiAocHJvY2VzczozNDc4KTogbGlic291cC1DUklU
SUNBTCAqKjogMjA6NDU6MTIuNjQwOiBzb3VwX21lc3NhZ2Vfc2V0X3JlcXVlc3RfYm9keTogYXNz
ZXJ0aW9uICdzdHJlYW0gPT0gTlVMTCB8fCBHX0lTX1BPTExBQkxFX0lOUFVUX1NUUkVBTSAoc3Ry
ZWFtKScgZmFpbGVkClNUREVSUjogTEVBSzogMSBXZWJQYWdlUHJveHk=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423468</attachid>
            <date>2021-03-17 03:36:24 -0700</date>
            <delta_ts>2021-03-18 03:40:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-soup-input-stream-pollable.diff</filename>
            <type>text/plain</type>
            <size>3799</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlZmQwNzQ0OWNkMjAuLjVhYjQwNzQxMGRjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDIxLTAzLTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0gU09VUDMgY3Jhc2hlcyBpbnNpZGUgc291cF9t
ZXNzYWdlX3NldF9yZXF1ZXN0X2JvZHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMzIzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbSBpbXBsZW1lbnQg
R1BvbGxhYmxlSW5wdXRTdHJlYW0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
V2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbS5jcHA6CisgICAgICAgICh3ZWJraXRGb3JtRGF0YUlu
cHV0U3RyZWFtTmV3KToKKyAgICAgICAgKHdlYmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1DYW5Qb2xs
KToKKyAgICAgICAgKHdlYmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1Jc1JlYWRhYmxlKToKKyAgICAg
ICAgKHdlYmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1DcmVhdGVTb3VyY2UpOgorICAgICAgICAod2Vi
a2l0Rm9ybURhdGFJbnB1dFN0cmVhbVBvbGxhYmxlSW50ZXJmYWNlSW5pdCk6CisKIDIwMjEtMDMt
MTEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGlu
dGVycG9sYXRpb24gb2YgcGVyc3BlY3RpdmUgcHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9XZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9XZWJLaXRGb3JtRGF0YUlu
cHV0U3RyZWFtLmNwcAppbmRleCBiMGNiY2VjM2IyYmYuLjhhMzVjNjE2NDA5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1dlYktpdEZvcm1EYXRhSW5w
dXRTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9X
ZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtLmNwcApAQCAtMzcsOSArMzcsMTMgQEAgc3RydWN0IF9X
ZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtUHJpdmF0ZSB7CiAgICAgR1JlZlB0cjxHSW5wdXRTdHJl
YW0+IGN1cnJlbnRTdHJlYW07CiAgICAgdW5zaWduZWQgbmV4dEluZGV4OwogICAgIGxvbmcgbG9u
ZyBjdXJyZW50U3RyZWFtUmFuZ2VMZW5ndGg7CisgICAgYm9vbCBjYW5Qb2xsOwogfTsKIAotV0VC
S0lUX0RFRklORV9UWVBFKFdlYktpdEZvcm1EYXRhSW5wdXRTdHJlYW0sIHdlYmtpdF9mb3JtX2Rh
dGFfaW5wdXRfc3RyZWFtLCBHX1RZUEVfSU5QVVRfU1RSRUFNKQorc3RhdGljIHZvaWQgd2Via2l0
Rm9ybURhdGFJbnB1dFN0cmVhbVBvbGxhYmxlSW50ZXJmYWNlSW5pdChHUG9sbGFibGVJbnB1dFN0
cmVhbUludGVyZmFjZSopOworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdEZv
cm1EYXRhSW5wdXRTdHJlYW0sIHdlYmtpdF9mb3JtX2RhdGFfaW5wdXRfc3RyZWFtLCBHX1RZUEVf
SU5QVVRfU1RSRUFNLAorICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShHX1RZUEVfUE9MTEFCTEVf
SU5QVVRfU1RSRUFNLCB3ZWJraXRGb3JtRGF0YUlucHV0U3RyZWFtUG9sbGFibGVJbnRlcmZhY2VJ
bml0KSkKIAogc3RhdGljIGJvb2wgd2Via2l0Rm9ybURhdGFJbnB1dFN0cmVhbUNyZWF0ZU5leHRT
dHJlYW0oV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbSogc3RyZWFtLCBHQ2FuY2VsbGFibGUqIGNh
bmNlbGxhYmxlKQogewpAQCAtMTMwLDYgKzEzNCwxNSBAQCBHUmVmUHRyPEdJbnB1dFN0cmVhbT4g
d2Via2l0Rm9ybURhdGFJbnB1dFN0cmVhbU5ldyhSZWY8Rm9ybURhdGE+JiYgZm9ybURhdGEpCiAg
ICAgc3RyZWFtLT5wcml2LT5mb3JtRGF0YSA9IFdURk1vdmUoZm9ybURhdGEpOwogICAgIHN0cmVh
bS0+cHJpdi0+Y3VycmVudFN0cmVhbVJhbmdlTGVuZ3RoID0gQmxvYkRhdGFJdGVtOjp0b0VuZE9m
RmlsZTsKIAorICAgIC8vIEdGaWxlSW5wdXRTdHJlYW0gaXMgbm90IHBvbGxhYmxlLCBzbyB0aGUg
c3RyZWFtIGlzIG9ubHkgcG9sbGFibGUgaWYgRm9ybURhdGEgZG9lc24ndCBjb250YWluIEVuY29k
ZWRGaWxlRGF0YSBlbGVtZW50cy4KKyAgICBzdHJlYW0tPnByaXYtPmNhblBvbGwgPSB0cnVlOwor
ICAgIGZvciAoY29uc3QgYXV0byYgZWxlbWVudCA6IHN0cmVhbS0+cHJpdi0+Zm9ybURhdGEtPmVs
ZW1lbnRzKCkpIHsKKyAgICAgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Rm9ybURhdGFF
bGVtZW50OjpFbmNvZGVkRmlsZURhdGE+KGVsZW1lbnQuZGF0YSkpIHsKKyAgICAgICAgICAgIHN0
cmVhbS0+cHJpdi0+Y2FuUG9sbCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisKICAgICByZXR1cm4gYWRvcHRHUmVmKEdfSU5QVVRfU1RSRUFNKChzdHJlYW0p
KSk7CiB9CiAKQEAgLTE0NSwzICsxNTgsMjggQEAgR0J5dGVzKiB3ZWJraXRGb3JtRGF0YUlucHV0
U3RyZWFtUmVhZEFsbChXZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtKiBzdHJlYW0pCiAKICAgICBy
ZXR1cm4gZ19tZW1vcnlfb3V0cHV0X3N0cmVhbV9zdGVhbF9hc19ieXRlcyhHX01FTU9SWV9PVVRQ
VVRfU1RSRUFNKG91dHB1dFN0cmVhbS5nZXQoKSkpOwogfQorCitzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0Rm9ybURhdGFJbnB1dFN0cmVhbUNhblBvbGwoR1BvbGxhYmxlSW5wdXRTdHJlYW0qIHN0cmVh
bSkKK3sKKyAgICBhdXRvKiBwcml2ID0gV0VCS0lUX0ZPUk1fREFUQV9JTlBVVF9TVFJFQU0oc3Ry
ZWFtKS0+cHJpdjsKKyAgICByZXR1cm4gcHJpdi0+Y2FuUG9sbDsKK30KKworc3RhdGljIGdib29s
ZWFuIHdlYmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1Jc1JlYWRhYmxlKEdQb2xsYWJsZUlucHV0U3Ry
ZWFtKiBzdHJlYW0pCit7CisgICAgYXV0byogcHJpdiA9IFdFQktJVF9GT1JNX0RBVEFfSU5QVVRf
U1RSRUFNKHN0cmVhbSktPnByaXY7CisgICAgcmV0dXJuIHByaXYtPmN1cnJlbnRTdHJlYW0gfHwg
cHJpdi0+bmV4dEluZGV4IDwgcHJpdi0+Zm9ybURhdGEtPmVsZW1lbnRzKCkuc2l6ZSgpOworfQor
CitzdGF0aWMgR1NvdXJjZSogd2Via2l0Rm9ybURhdGFJbnB1dFN0cmVhbUNyZWF0ZVNvdXJjZShH
UG9sbGFibGVJbnB1dFN0cmVhbSogc3RyZWFtLCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlKQor
eworICAgIEdSZWZQdHI8R1NvdXJjZT4gYmFzZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNl
X25ldygwKSk7CisgICAgcmV0dXJuIGdfcG9sbGFibGVfc291cmNlX25ld19mdWxsKHN0cmVhbSwg
YmFzZS5nZXQoKSwgY2FuY2VsbGFibGUpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRGb3JtRGF0
YUlucHV0U3RyZWFtUG9sbGFibGVJbnRlcmZhY2VJbml0KEdQb2xsYWJsZUlucHV0U3RyZWFtSW50
ZXJmYWNlKiBpZmFjZSkKK3sKKyAgICBpZmFjZS0+Y2FuX3BvbGwgPSB3ZWJraXRGb3JtRGF0YUlu
cHV0U3RyZWFtQ2FuUG9sbDsKKyAgICBpZmFjZS0+aXNfcmVhZGFibGUgPSB3ZWJraXRGb3JtRGF0
YUlucHV0U3RyZWFtSXNSZWFkYWJsZTsKKyAgICBpZmFjZS0+Y3JlYXRlX3NvdXJjZSA9IHdlYmtp
dEZvcm1EYXRhSW5wdXRTdHJlYW1DcmVhdGVTb3VyY2U7Cit9Cg==
</data>
<flag name="review"
          id="442836"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>