<?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>231484</bug_id>
          
          <creation_ts>2021-10-09 17:06:47 -0700</creation_ts>
          <short_desc>Introduce RemoteDisplayListRecorderProxy and RemoteDisplayListRecorder</short_desc>
          <delta_ts>2021-10-19 18:33:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231980</see_also>
          <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>230860</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1802424</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-09 17:06:47 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802493</commentid>
    <comment_count>1</comment_count>
      <attachid>440739</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-10 16:06:53 -0700</bug_when>
    <thetext>Created attachment 440739
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802494</commentid>
    <comment_count>2</comment_count>
      <attachid>440740</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-10 16:34:55 -0700</bug_when>
    <thetext>Created attachment 440740
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802502</commentid>
    <comment_count>3</comment_count>
      <attachid>440745</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-10 17:18:44 -0700</bug_when>
    <thetext>Created attachment 440745
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802504</commentid>
    <comment_count>4</comment_count>
      <attachid>440746</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-10 17:32:11 -0700</bug_when>
    <thetext>Created attachment 440746
Fix typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802699</commentid>
    <comment_count>5</comment_count>
      <attachid>440746</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-11 11:07:36 -0700</bug_when>
    <thetext>Comment on attachment 440746
Fix typo

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

&gt; Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:46
&gt; +    static Ref&lt;RemoteDisplayListRecorder&gt; create(WebCore::ImageBuffer&amp; imageBuffer, QualifiedRenderingResourceIdentifier imageBufferIdentifier, RemoteRenderingBackend&amp; renderingBackend)

Can this ImageBuffer type be template-qualified so that we know at compile time that it&apos;s the right kind of image buffer?

&gt; Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:52
&gt; +    void startListeningForIPC();
&gt; +    void stopListeningForIPC();

These feel a bit weird on this API.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:42
&gt; +    RemoteDisplayListRecorderProxy(WebCore::ImageBuffer&amp;, RemoteRenderingBackendProxy&amp;, const WebCore::FloatRect&amp; initialClip, const WebCore::AffineTransform&amp;, WebCore::DrawGlyphsRecorder::DeconstructDrawGlyphs = WebCore::DrawGlyphsRecorder::DeconstructDrawGlyphs::Yes);

Same question: can ImageBuffer be specialized? It&apos;s a concrete image buffer here, right?

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:45
&gt; +    ~RemoteDisplayListRecorderProxy() { }

= default?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802743</commentid>
    <comment_count>6</comment_count>
      <attachid>440746</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-11 12:35:54 -0700</bug_when>
    <thetext>Comment on attachment 440746
Fix typo

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

Thanks for the review!

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:46
&gt;&gt; +    static Ref&lt;RemoteDisplayListRecorder&gt; create(WebCore::ImageBuffer&amp; imageBuffer, QualifiedRenderingResourceIdentifier imageBufferIdentifier, RemoteRenderingBackend&amp; renderingBackend)
&gt; 
&gt; Can this ImageBuffer type be template-qualified so that we know at compile time that it&apos;s the right kind of image buffer?

I think it&apos;s possible, but then we&apos;ll need to templatize RemoteDisplayListRecorder with an ImageBufferBackendType as well, since the remote image buffer could be a AcceleratedRemoteImageBuffer or UnacceleratedRemoteImageBuffer.
This means we&apos;ll need to teach the IPC message receiver generator to take template arguments for a given message receiver, such that the generated message receiver implementation can take this form:

```
template &lt;typename ImageBufferBackendType&gt;
void RemoteDisplayListRecorder&lt;ImageBufferBackendType&gt;::didReceiveStreamMessage(IPC::StreamServerConnectionBase&amp; connection, IPC::Decoder&amp; decoder)
```

Let&apos;s tackle this separately in a followup bug.

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:52
&gt;&gt; +    void stopListeningForIPC();
&gt; 
&gt; These feel a bit weird on this API.

I believe `(start|stop)ListeningForIPC` is the established pattern for setting up and tearing down IPC message receivers in the GPU Process; but now that I think more about it, we only need to expose `stopListeningForIPC()` here to make it work with ScopedActiveMessageReceiveQueue, since we should always `startListeningForIPC()` right after creating this object anyways.

I&apos;ll adjust this so that `startListeningForIPC()` is just a private helper method that&apos;s invoked in `RemoteDisplayListRecorder::create`, which is consistent with `RemoteRenderingBackend::create`.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:45
&gt;&gt; +    ~RemoteDisplayListRecorderProxy() { }
&gt; 
&gt; = default?

Fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802752</commentid>
    <comment_count>7</comment_count>
      <attachid>440824</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-11 12:45:07 -0700</bug_when>
    <thetext>Created attachment 440824
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802848</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-11 15:37:12 -0700</bug_when>
    <thetext>Committed r283941 (242800@main): &lt;https://commits.webkit.org/242800@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440824.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802850</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-11 15:38:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/84119482&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440739</attachid>
            <date>2021-10-10 16:06:53 -0700</date>
            <delta_ts>2021-10-10 16:59:40 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231484-20211010160653.patch</filename>
            <type>text/plain</type>
            <size>98553</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc5NWE0MTUzNjlmYjMy
NGEwOGI4ZWNmMWQ0YjAwZmQwZTcyYzk4Ni4uNjkyNWUxNTU2N2MyZDQ3ZTlhNGY1ZWFmMDZmN2Zk
ZDg0NTRjYmIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEwLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ4
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBX
ZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmg6CisKKyAgICAgICAgQWRkIGRlZmF1bHQgY29uc3RydWN0b3JzIGZv
ciBhIGNvdXBsZSBvZiBkaXNwbGF5IGxpc3QgaXRlbXMgc28gdGhhdCB0aGV5IGNhbiBiZSBlbmNv
ZGVkIGFzIElQQyBhcmd1bWVudHMgdXNpbmcKKyAgICAgICAgU2ltcGxlQXJndW1lbnRDb2Rlci4K
KwogMjAyMS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW0dQVSBQcm9jZXNzXSBzdXBwb3J0IHJlbmRlcmluZyBBcHBsZSBQYXkgbG9nb3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggYzE5OWZmOTZlYmU3MGE1YzQyMTlhNmY3YWQ4NDk2MWQ3NWMwOTNjZi4uNzRhZjhhMDU1
YjQxMGMyODRjNmU1YTdkNmYyMGM3Y2MxNzJkYWU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTQg
QEAKKzIwMjEtMTAtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgSW50cm9kdWNlIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eSBhbmQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIHR3byBuZXcgY2xhc3NlcyB0aGF0IGhvdXNlIG1vc3Qg
b2YgdGhlIGxvZ2ljIGZvciBwcm9wYWdhdGluZyBkaXNwbGF5IGxpc3QgaXRlbXMgZnJvbSB0aGUg
d2ViIGNvbnRlbnQKKyAgICAgICAgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eSBpcyBhIHN1YmNsYXNzIG9mIERpc3BsYXlMaXN0OjpSZWNv
cmRlciB0aGF0IHJlY29yZHMKKyAgICAgICAgZWFjaCBpdGVtIGJ5IHNlbmRpbmcgaXQgdG8gdGhl
IEdQVSBwcm9jZXNzIHRocm91Z2ggYSBzdHJlYW0gY29ubmVjdGlvbiwgd2hpY2ggd2lsbCBiZSBh
ZGRlZCB0bworICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgaW4gYSBzdWJzZXF1
ZW50IHBhdGNoLiBUaGUgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5IHdpbGwgYmUgbWFu
YWdlZCBieQorICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IGluIHRoZSB3ZWIgcHJvY2Vz
cy4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBhY3RzIGFzIHRoZSBzdHJlYW1pbmcgSVBDIGRl
c3RpbmF0aW9uIGluCisgICAgICAgIHRoZSBHUFUgcHJvY2VzcywgYW5kIGhhbmRsZXMgdGhlIGlu
Y29taW5nIGRpc3BsYXkgbGlzdCBpdGVtcyBieSBhcHBseWluZyB0aGVtIHRvIHRoZSBwbGF0Zm9y
bSBncmFwaGljcyBjb250ZXh0LgorCisgICAgICAgIEZvciBtb3N0IG9mIHRoZXNlIGRpc3BsYXkg
bGlzdCBpdGVtcywgd2UgY2FuIHByb3BhZ2F0ZSB0aGVtIHRvIHRoZSBHUFUgcHJvY2VzcyBieSBz
ZW5kaW5nIGVhY2ggZGlzcGxheSBsaXN0CisgICAgICAgIGl0ZW0ncyBjb25zdHJ1Y3RvciBhcmd1
bWVudHMgYXMgc2VwYXJhdGUgSVBDIGFyZ3VtZW50cy4gSW4gYSBmdXR1cmUgcGF0Y2gsIHdlIHNo
b3VsZCBhZGQgc3VwcG9ydCBmb3IgZW5jb2RpbmcKKyAgICAgICAgdGhlIGZvbGxvd2luZyBkaXNw
bGF5IGxpc3QgaXRlbXMgaW4gdGhlIHNhbWUgd2F5OgorCisgICAgICAgIC0gU2V0SW5saW5lRmls
bENvbG9yCisgICAgICAgIC0gU2V0SW5saW5lU3Ryb2tlQ29sb3IKKyAgICAgICAgLSBTZXRTdGF0
ZQorICAgICAgICAtIFNldExpbmVEYXNoCisgICAgICAgIC0gRHJhd0dseXBocworICAgICAgICAt
IERyYXdMaW5lc0ZvclRleHQKKyAgICAgICAgLSBGaWxsUmVjdFdpdGhHcmFkaWVudAorCisgICAg
ICAgIEZvciBub3csIHRoZSBhYm92ZSBkaXNwbGF5IGxpc3QgaXRlbXMgYXJlIGVuY29kZWQgYW5k
IGRlY29kZWQgYXMgd2hvbGUgaXRlbXMuIFdoaWxlIHRoZXJlJ3Mgbm8gcHJhY3RpY2FsCisgICAg
ICAgIGRpc2FkdmFudGFnZSB0byBpbXBsZW1lbnRpbmcgaXQgdGhpcyB3YXksIGl0IHdvdWxkIGJl
IG5pY2UgdG8gbWFrZSBpdCBjb25zaXN0ZW50LgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cmVz
b3VyY2VDYWNoZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmRyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2F2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnJlc3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjp0cmFuc2xhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpyb3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpzY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OnNldENUTSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmNvbmNhdGVuYXRlQ1RNKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6c2V0SW5saW5lRmlsbENvbG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0SW5saW5lU3Ryb2tlQ29sb3IpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRTdHJva2VUaGlja25lc3MpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRTdGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldExpbmVDYXApOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRMaW5lRGFzaCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldExpbmVKb2lu
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TWl0ZXJM
aW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsZWFy
U2hhZG93KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xp
cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBPdXQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGlwVG9JbWFn
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNs
aXBPdXRUb1BhdGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpjbGlwUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0dseXBocyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdQYXR0ZXJu
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YmVnaW5UcmFu
c3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmVuZFRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6ZHJhd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpkcmF3TGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OmRyYXdMaW5lc0ZvclRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0VsbGlwc2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3UGF0aCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdGb2N1c1JpbmdQYXRoKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZvY3VzUmlu
Z1JlY3RzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Zmls
bFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxs
UmVjdFdpdGhDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmZpbGxSZWN0V2l0aEdyYWRpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6ZmlsbENvbXBvc2l0ZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsTGluZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxBcmMpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUXVhZEN1cnZlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbEJlemllckN1
cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFBh
dGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsRWxs
aXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmdldFBp
eGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
cHV0UGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpwYWludEZyYW1lRm9yTWVkaWEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6c3Ryb2tlTGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OnN0cm9rZUFyYyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OnN0cm9rZVF1YWRDdXJ2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZUJlemllckN1cnZlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGVhclJlY3QpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjphcHBseVN0cm9rZVBhdHRlcm4pOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjphcHBseUZpbGxQYXR0
ZXJuKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YXBwbHlE
ZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OmZsdXNoQ29udGV4dCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpoYW5kbGVJdGVtKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnBlcmZvcm1XaXRoTWVkaWFQbGF5
ZXJPbk1haW5UaHJlYWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5oOgorCisgICAgICAgIEFkZCBoZWxwZXIgbWV0aG9kcyB0byBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kIHRoYXQgYXJlIGNhbGxlZCBmcm9tIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAg
KGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKworICAg
ICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGVuY29kZSBhbmQgZGVjb2RlIFNldElubGluZUZpbGxD
b2xvciBhbmQgU2V0SW5saW5lU3Ryb2tlQ29sb3IgdXNpbmcgc2ltcGxlIGFyZ3VtZW50IGNvZGVy
LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6bV9yZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpnZXRQaXhlbEJ1ZmZlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cHV0UGl4ZWxC
dWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OmNhbkRyYXdJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVuZGVyaW5nTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2F2ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVzdG9yZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
VHJhbnNsYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmRSb3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZFNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRDVE0pOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENvbmNhdGVuYXRlQ1RNKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRJbmxp
bmVGaWxsQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZFNldElubGluZVN0cm9rZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRTdHJva2VUaGlja25lc3MpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNl
dFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmRTZXRMaW5lQ2FwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpyZWNvcmRTZXRMaW5lRGFzaCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0TGluZUpvaW4pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldE1pdGVyTGlt
aXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZENsZWFyU2hhZG93KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmRDbGlwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwT3V0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwVG9JbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xpcE91
dFRvUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6cmVjb3JkQ2xpcFBhdGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRFbmRDbGlwVG9E
cmF3aW5nQ29tbWFuZHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OnJlY29yZERyYXdHbHlwaHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd05hdGl2ZUlt
YWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojpy
ZWNvcmREcmF3UGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkQmVnaW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRW5kVHJhbnNwYXJlbmN5
TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZERyYXdSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmREcmF3TGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0xpbmVzRm9yVGV4dCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0RvdHNGb3JE
b2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkRHJhd0VsbGlwc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXRoKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3Rm9jdXNSaW5nUGF0aCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
RHJhd0ZvY3VzUmluZ1JlY3RzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJlY3RXaXRoQ29sb3IpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxSZWN0
V2l0aEdyYWRpZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRGaWxsQ29tcG9zaXRlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxSb3VuZGVkUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJl
Y3RXaXRoUm91bmRlZEhvbGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZEZpbGxMaW5lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsQXJjKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUXVhZEN1cnZlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxs
QmV6aWVyQ3VydmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZEZpbGxQYXRoKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsRWxsaXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkR2V0UGl4ZWxCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFB1dFBp
eGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmRQYWludEZyYW1lRm9yTWVkaWEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZVJlY3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZUxpbmUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0
cm9rZUFyYyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6cmVjb3JkU3Ryb2tlUXVhZEN1cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VCZXppZXJDdXJ2ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlUGF0aCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
U3Ryb2tlRWxsaXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkQ2xlYXJSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRBcHBseVN0cm9rZVBhdHRlcm4pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEFwcGx5RmlsbFBh
dHRlcm4pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJlc291cmNlVXNlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpmbHVzaENvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNyZWF0ZU5lc3Rl
ZENvbnRleHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5Ojp+UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZXNldE5l
ZWRzRmx1c2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6Om5lZWRzRmx1c2ggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnNlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZE5hdGl2ZUltYWdlVXNl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWNvcmRG
b250VXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpy
ZWNvcmRJbWFnZUJ1ZmZlclVzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6aXNDYWNoZWQgY29uc3QpOgorCisgICAgICAgIEFkZCBoZWxwZXIgbWV0aG9k
cyB0byBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgdGhhdCBhcmUgY2FsbGVkIGZyb20gUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6c2VuZFRvU3RyZWFtKToKKwogMjAyMS0xMC0w
OCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFdlYiBJbnNw
ZWN0b3I6IHByb3ZpZGUgYSB3YXkgZm9yIF9XS0luc3BlY3RvckV4dGVuc2lvbiBjbGllbnRzIHRv
IGJlIG5vdGlmaWVkIHdoZW4gdGhlIGluc3BlY3RlZCBwYWdlIG5hdmlnYXRlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCBk
NmUyNTY3N2JlZjcxNWJhNDljZjA0MWUxNGM5ZWM4MDFjNWM5N2MzLi44MzA4N2NlNjkwNGM1YmQx
MjE5N2E0OWE2OGQxMTVlYThhNWZmY2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtNDMwLDcgKzQzMCw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0pOwogCi0gICAgdmly
dHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlRm9yQ2FudmFzKEltYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNhbnZhc0NvbG9yU3BhY2Up
OworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZUZv
ckNhbnZhcyhJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYsIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBjYW52YXNDb2xvclNwYWNlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRp
bGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiA9IHsgfSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQg
ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIElt
YWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgPSB7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKaW5kZXggMTM5NzgwMWI0ZDhlMGZmY2Q2OTQ2N2NhMTQyMjBkMDA1M2NmMTVlZS4uODE2
MGRkZjBhMTljMzMwZGNlNWQzMjE2M2FkYTgyMzZlNWE0MTQ0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC01MCw3ICs1MCw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIENyZWF0ZSBhbiBpbWFnZSBidWZmZXIgY29tcGF0aWJsZSB3aXRoIHRo
ZSBjb250ZXh0LCB3aXRoIHN1aXRhYmxlIHJlc29sdXRpb24gZm9yIGRyYXdpbmcgaW50byB0aGUg
YnVmZmVyIGFuZCB0aGVuIGludG8gdGhpcyBjb250ZXh0LgogICAgIHN0YXRpYyBSZWZQdHI8SW1h
Z2VCdWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgY29uc3Qg
R3JhcGhpY3NDb250ZXh0Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRl
Q29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9y
U3BhY2UmLCBjb25zdCBHcmFwaGljc0NvbnRleHQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEZsb2F0
U2l6ZSYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4
dCYpOwogICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVCdWZm
ZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBEZXN0aW5h
dGlvbkNvbG9yU3BhY2UmLCBjb25zdCBHcmFwaGljc0NvbnRleHQmKTsKIAogICAgIC8vIFRoZXNl
IGZ1bmN0aW9ucyBhcmUgdXNlZCB3aGVuIGNsYW1waW5nIHRoZSBJbWFnZUJ1ZmZlciB3aGljaCBp
cyBjcmVhdGVkIGZvciBmaWx0ZXIsIG1hc2tlciBvciBjbGlwcGVyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1zLmgKaW5kZXggMDExYjQxZDliMWI1Mzk3MDMzZmM5MGY2ZGQyYmJlMGI1ZjBm
YmQyZS4uMTFmZWNjYzAwYzEzMGYzYTE0ZjMzZDk1ODQ2YzE4MjI1OTJkMTU2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0xODgsNiArMTg4LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7CiAKKyAgICBTZXRJbmxpbmVGaWxs
Q29sb3IoKSA9IGRlZmF1bHQ7CiAgICAgU2V0SW5saW5lRmlsbENvbG9yKFNSR0JBPHVpbnQ4X3Q+
IGNvbG9yRGF0YSkKICAgICAgICAgOiBtX2NvbG9yRGF0YShjb2xvckRhdGEpCiAgICAgewpAQCAt
MjA2LDYgKzIwNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxp
bmVJdGVtID0gdHJ1ZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9
IGZhbHNlOwogCisgICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoKSA9IGRlZmF1bHQ7CiAgICAgU2V0
SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWludDhfdD4gY29sb3JEYXRhKQogICAgICAgICA6IG1f
Y29sb3JEYXRhKGNvbG9yRGF0YSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNzRmZmEzNTJlOWRlMDBjYjg2NmY5MDJjNmVhYmRl
YWFkYTY5Y2Y4Ni4uZWRmZmE2NjE4Y2I0NGZkNDEzZDc4NmE2MDkzMDMwZDM4Mjg1ODA3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjAs
NiArMjAsOCBAQCAkKEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL21vZGVscy5w
eQogJChKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS94eGQucGwKICQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiskKFBST0pF
Q1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVz
c2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5p
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5k
ZXggZjRmOGFjMjU3ZDE1NWUxZmU2ZjYxNjdhZTQzYzljZTU3NWExZWJlOS4uYTE2OWI4ODQ1MzY0
OTEyYWY3MjdjNWFhZDgwMWZjYzUzNGI5ZTcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yMDMsMTIgKzIwMywxOCBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDRE1Qcm94eU1lc3Nh
Z2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzUmVwbGllcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3Nh
Z2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0TWVzc2Fn
ZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0TWVzc2FnZXNSZXBs
aWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5h
Z2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzMxNDc0NmMyY2U4MDVmZmRiOTkwMjkxZGI4NjdiMjlm
ZDJiZWExMi4uZDlmNDY3OTgyNGE2NzJiYzgzYjQzZTM2MDBiZWE5NDJmMGUwMTZlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjQ3LDYgKzI0Nyw3IEBAIE1FU1NBR0VfUkVDRUlW
RVJTID0gXAogCVBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5IFwKIAlQbHVnaW5Q
cm9jZXNzL1BsdWdpblByb2Nlc3MgXAogCUdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyBcCisJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyIFwK
IAlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQgXAogCUdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgXAogCUdQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YjNlZGUwYjc1MzdmNjM0NzQ1OTJlZmQxMjJhN2Y0YjMxZjc2OWJkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0wLDAgKzEsNDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCIKKwor
I2luY2x1ZGUgIlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlcy5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1
ZmZlciwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRl
bnRpZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVuZGVyaW5nQmFja2VuZCkKKyAgICA6
IG1faW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpCisgICAgLCBtX2ltYWdlQnVmZmVySWRlbnRpZmll
cihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCisgICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQocmVuZGVy
aW5nQmFja2VuZCkKK3sKK30KKworUmVtb3RlUmVzb3VyY2VDYWNoZSYgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6cmVzb3VyY2VDYWNoZSgpCit7CisgICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFj
a2VuZC0+cmVtb3RlUmVzb3VyY2VDYWNoZSgpOworfQorCitHcmFwaGljc0NvbnRleHQmIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdpbmdDb250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9t
YXNrSW1hZ2VCdWZmZXIgPyBtX21hc2tJbWFnZUJ1ZmZlci0+Y29udGV4dCgpIDogbV9pbWFnZUJ1
ZmZlci0+Y29udGV4dCgpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0
YXJ0TGlzdGVuaW5nRm9ySVBDKCkKK3sKKyAgICBBU1NFUlQoIW1faXNMaXN0ZW5pbmdGb3JJUEMp
OworICAgIG1faXNMaXN0ZW5pbmdGb3JJUEMgPSB0cnVlOworICAgIC8vIEZJWE1FOiBOb3QgaW1w
bGVtZW50ZWQgeWV0LgorfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0b3BM
aXN0ZW5pbmdGb3JJUEMoKQoreworICAgIGlmICghbV9pc0xpc3RlbmluZ0ZvcklQQykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZCB5ZXQuCisgICAgbV9p
c0xpc3RlbmluZ0ZvcklQQyA9IGZhbHNlOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OnNhdmUoKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlNhdmUoKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cmVzdG9yZSgpCit7CisgICAgaGFu
ZGxlSXRlbShEaXNwbGF5TGlzdDo6UmVzdG9yZSgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjp0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKK3sKKyAgICBoYW5kbGVJ
dGVtKERpc3BsYXlMaXN0OjpUcmFuc2xhdGUoeCwgeSkpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OnJvdGF0ZShmbG9hdCBhbmdsZSkKK3sKKyAgICBoYW5kbGVJdGVtKERp
c3BsYXlMaXN0OjpSb3RhdGUoYW5nbGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpzY2FsZShjb25zdCBGbG9hdFNpemUmIHNjYWxlKQoreworICAgIGhhbmRsZUl0ZW0o
RGlzcGxheUxpc3Q6OlNjYWxlKHNjYWxlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6c2V0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgY3RtKQoreworICAgIGhhbmRs
ZUl0ZW0oRGlzcGxheUxpc3Q6OlNldENUTShjdG0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpjb25jYXRlbmF0ZUNUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGN0bSkK
K3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpDb25jYXRlbmF0ZUNUTShjdG0pKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRJbmxpbmVGaWxsQ29sb3IoRGlz
cGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvciYmIGl0ZW0pCit7CisgICAgaGFuZGxlSXRlbShX
VEZNb3ZlKGl0ZW0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRJ
bmxpbmVTdHJva2VDb2xvcihEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3ImJiBpdGVt
KQoreworICAgIGhhbmRsZUl0ZW0oV1RGTW92ZShpdGVtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6c2V0U3Ryb2tlVGhpY2tuZXNzKGZsb2F0IHRoaWNrbmVzcykKK3sK
KyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTZXRTdHJva2VUaGlja25lc3ModGhpY2tuZXNz
KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0U3RhdGUoRGlzcGxh
eUxpc3Q6OlNldFN0YXRlJiYgaXRlbSkKK3sKKyAgICBhdXRvIHN0cm9rZVBhdHRlcm5JbWFnZUlk
ZW50aWZpZXIgPSBpdGVtLnN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIoKTsKKyAgICBSZWZQ
dHI8TmF0aXZlSW1hZ2U+IHN0cm9rZVBhdHRlcm5JbWFnZTsKKyAgICBpZiAoc3Ryb2tlUGF0dGVy
bkltYWdlSWRlbnRpZmllcikKKyAgICAgICAgc3Ryb2tlUGF0dGVybkltYWdlID0gcmVzb3VyY2VD
YWNoZSgpLmNhY2hlZE5hdGl2ZUltYWdlKHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIpOwor
CisgICAgYXV0byBmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllciA9IGl0ZW0uZmlsbFBhdHRlcm5J
bWFnZUlkZW50aWZpZXIoKTsKKyAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IGZpbGxQYXR0ZXJuSW1h
Z2U7CisgICAgaWYgKGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKQorICAgICAgICBmaWxsUGF0
dGVybkltYWdlID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hlZE5hdGl2ZUltYWdlKGZpbGxQYXR0ZXJu
SW1hZ2VJZGVudGlmaWVyKTsKKworICAgIGhhbmRsZUl0ZW0oV1RGTW92ZShpdGVtKSwgc3Ryb2tl
UGF0dGVybkltYWdlLmdldCgpLCBmaWxsUGF0dGVybkltYWdlLmdldCgpKTsKKworICAgIGlmIChz
dHJva2VQYXR0ZXJuSW1hZ2UpCisgICAgICAgIHJlc291cmNlQ2FjaGUoKS5yZWNvcmRSZXNvdXJj
ZVVzZShzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKTsKKworICAgIGlmIChmaWxsUGF0dGVy
bkltYWdlKQorICAgICAgICByZXNvdXJjZUNhY2hlKCkucmVjb3JkUmVzb3VyY2VVc2UoZmlsbFBh
dHRlcm5JbWFnZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnNldExpbmVDYXAoTGluZUNhcCBsaW5lQ2FwKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxh
eUxpc3Q6OlNldExpbmVDYXAobGluZUNhcCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OnNldExpbmVEYXNoKERpc3BsYXlMaXN0OjpTZXRMaW5lRGFzaCYmIGl0ZW0pCit7
CisgICAgaGFuZGxlSXRlbShXVEZNb3ZlKGl0ZW0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzZXRMaW5lSm9pbihMaW5lSm9pbiBsaW5lSm9pbikKK3sKKyAgICBoYW5k
bGVJdGVtKERpc3BsYXlMaXN0OjpTZXRMaW5lSm9pbihsaW5lSm9pbikpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldE1pdGVyTGltaXQoZmxvYXQgbGltaXQpCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U2V0TWl0ZXJMaW1pdChsaW1pdCkpOworfQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsZWFyU2hhZG93KCkKK3sKKyAgICBoYW5k
bGVJdGVtKERpc3BsYXlMaXN0OjpDbGVhclNoYWRvdygpKTsKK30KKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpjbGlwKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBoYW5k
bGVJdGVtKERpc3BsYXlMaXN0OjpDbGlwKHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpjbGlwT3V0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBoYW5k
bGVJdGVtKERpc3BsYXlMaXN0OjpDbGlwT3V0KHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpjbGlwVG9JbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uUmVjdCkKK3sKKyAgICBSZWZQdHIgaW1hZ2VCdWZmZXIgPSByZXNv
dXJjZUNhY2hlKCkuY2FjaGVkSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKKyAg
ICBpZiAoIWltYWdlQnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xpcFRv
SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBkZXN0aW5hdGlvblJlY3QpLCAqaW1h
Z2VCdWZmZXIpOworICAgIHJlc291cmNlQ2FjaGUoKS5yZWNvcmRSZXNvdXJjZVVzZShpbWFnZUJ1
ZmZlcklkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNs
aXBPdXRUb1BhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlM
aXN0OjpDbGlwT3V0VG9QYXRoKHBhdGgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpjbGlwUGF0aChjb25zdCBQYXRoJiBwYXRoLCBXaW5kUnVsZSBydWxlKQoreworICAg
IGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkNsaXBQYXRoKHBhdGgsIHJ1bGUpKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpiZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2Um
IGNvbG9yU3BhY2UpCit7CisgICAgbV9tYXNrSW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlQ29tcGF0aWJsZUJ1ZmZlcihkZXN0aW5hdGlvbi5zaXplKCksIGNvbG9yU3BhY2UsIGRyYXdp
bmdDb250ZXh0KCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmVuZENs
aXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKQoreworICAg
IGF1dG8gbWFza0ltYWdlQnVmZmVyID0gc3RkOjpleGNoYW5nZShtX21hc2tJbWFnZUJ1ZmZlciwg
eyB9KTsKKyAgICBpZiAoIW1hc2tJbWFnZUJ1ZmZlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRyYXdpbmdDb250ZXh0KCku
Y2xpcFRvSW1hZ2VCdWZmZXIoKm1hc2tJbWFnZUJ1ZmZlciwgZGVzdGluYXRpb24pOworfQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdHbHlwaHMoRGlzcGxheUxpc3Q6OkRy
YXdHbHlwaHMmJiBpdGVtKQoreworICAgIGF1dG8gZm9udElkZW50aWZpZXIgPSBpdGVtLmZvbnRJ
ZGVudGlmaWVyKCk7CisgICAgUmVmUHRyIGZvbnQgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkRm9u
dChmb250SWRlbnRpZmllcik7CisgICAgaWYgKCFmb250KSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlSXRlbShXVEZN
b3ZlKGl0ZW0pLCAqZm9udCk7CisgICAgcmVzb3VyY2VDYWNoZSgpLnJlY29yZFJlc291cmNlVXNl
KGZvbnRJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpk
cmF3SW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRl
bnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAg
UmVmUHRyIGltYWdlQnVmZmVyID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hlZEltYWdlQnVmZmVyKGlt
YWdlQnVmZmVySWRlbnRpZmllcik7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikgeworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhhbmRs
ZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIs
IGRlc3RpbmF0aW9uUmVjdCwgc3JjUmVjdCwgb3B0aW9ucyksICppbWFnZUJ1ZmZlcik7CisgICAg
cmVzb3VyY2VDYWNoZSgpLnJlY29yZFJlc291cmNlVXNlKGltYWdlQnVmZmVySWRlbnRpZmllcik7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIFJl
ZlB0ciBpbWFnZSA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWROYXRpdmVJbWFnZShpbWFnZUlkZW50
aWZpZXIpOworICAgIGlmICghaW1hZ2UpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpE
cmF3TmF0aXZlSW1hZ2UoaW1hZ2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNS
ZWN0LCBvcHRpb25zKSwgKmltYWdlKTsKKyAgICByZXNvdXJjZUNhY2hlKCkucmVjb3JkUmVzb3Vy
Y2VVc2UoaW1hZ2VJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpkcmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlm
aWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIFJlZlB0ciBpbWFn
ZSA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWROYXRpdmVJbWFnZShpbWFnZUlkZW50aWZpZXIpOwor
ICAgIGlmICghaW1hZ2UpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3UGF0dGVy
bihpbWFnZUlkZW50aWZpZXIsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zv
cm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKSwgKmltYWdlKTsKKyAgICByZXNvdXJjZUNhY2hl
KCkucmVjb3JkUmVzb3VyY2VVc2UoaW1hZ2VJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkp
Cit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6QmVnaW5UcmFuc3BhcmVuY3lMYXllcihv
cGFjaXR5KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZW5kVHJhbnNw
YXJlbmN5TGF5ZXIoKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkVuZFRyYW5zcGFy
ZW5jeUxheWVyKCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKQoreworICAg
IGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdSZWN0KHJlY3QsIGJvcmRlclRoaWNrbmVzcykp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdMaW5lKGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQyKQoreworICAgIGhhbmRs
ZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdMaW5lKHBvaW50MSwgcG9pbnQyKSk7Cit9CisKK3ZvaWQg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0xpbmVzRm9yVGV4dChEaXNwbGF5TGlzdDo6
RHJhd0xpbmVzRm9yVGV4dCYmIGl0ZW0pCit7CisgICAgaGFuZGxlSXRlbShXVEZNb3ZlKGl0ZW0p
KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3RG90c0ZvckRvY3Vt
ZW50TWFya2VyKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGUmIHN0eWxlKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdEb3RzRm9y
RG9jdW1lbnRNYXJrZXIocmVjdCwgc3R5bGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpkcmF3RWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaGFu
ZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd0VsbGlwc2UocmVjdCkpOworfQorCit2b2lkIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCit7CisgICAg
aGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd1BhdGgocGF0aCkpOworfQorCit2b2lkIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdGb2N1c1JpbmdQYXRoKGNvbnN0IFBhdGgmIHBhdGgs
IGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBo
YW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUGF0aChwYXRoLCB3aWR0aCwgb2Zm
c2V0LCBjb2xvcikpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdG
b2N1c1JpbmdSZWN0cyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRo
LCBmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBoYW5kbGVJdGVtKERp
c3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUmVjdHMocmVjdHMsIHdpZHRoLCBvZmZzZXQsIGNvbG9y
KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxSZWN0
KHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUmVjdFdp
dGhDb2xvcihjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAg
ICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsUmVjdFdpdGhDb2xvcihyZWN0LCBjb2xvcikp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxSZWN0V2l0aEdyYWRp
ZW50KERpc3BsYXlMaXN0OjpGaWxsUmVjdFdpdGhHcmFkaWVudCYmIGl0ZW0pCit7CisgICAgaGFu
ZGxlSXRlbShXVEZNb3ZlKGl0ZW0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpmaWxsQ29tcG9zaXRlZFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xv
ciYgY29sb3IsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQorewor
ICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxDb21wb3NpdGVkUmVjdChyZWN0LCBjb2xv
ciwgb3AsIGJsZW5kTW9kZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmZpbGxSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0LCBjb25zdCBDb2xv
ciYgY29sb3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5
TGlzdDo6RmlsbFJvdW5kZWRSZWN0KHJlY3QsIGNvbG9yLCBibGVuZE1vZGUpKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRIb2xlUmVj
dCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZp
bGxSZWN0V2l0aFJvdW5kZWRIb2xlKHJlY3QsIHJvdW5kZWRIb2xlUmVjdCwgY29sb3IpKTsKK30K
KworI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmZpbGxMaW5lKGNvbnN0IExpbmVEYXRhJiBkYXRhKQoreworICAgIGhhbmRsZUl0
ZW0oRGlzcGxheUxpc3Q6OkZpbGxMaW5lKGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpmaWxsQXJjKGNvbnN0IEFyY0RhdGEmIGRhdGEpCit7CisgICAgaGFuZGxl
SXRlbShEaXNwbGF5TGlzdDo6RmlsbEFyYyhkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6ZmlsbFF1YWRDdXJ2ZShjb25zdCBRdWFkQ3VydmVEYXRhJiBkYXRhKQor
eworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxRdWFkQ3VydmUoZGF0YSkpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxCZXppZXJDdXJ2ZShjb25zdCBC
ZXppZXJDdXJ2ZURhdGEmIGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Rmls
bEJlemllckN1cnZlKGRhdGEpKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTkxJTkVfUEFUSF9E
QVRBKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxQYXRoKGNvbnN0IFBh
dGgmIHBhdGgpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbFBhdGgocGF0aCkp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxFbGxpcHNlKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsRWxs
aXBzZShyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Z2V0UGl4
ZWxCdWZmZXIoY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgUGl4ZWxCdWZmZXJGb3JtYXQm
IG91dHB1dEZvcm1hdCkKK3sKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnBvcHVsYXRlR2V0UGl4
ZWxCdWZmZXJTaGFyZWRNZW1vcnkobV9pbWFnZUJ1ZmZlci0+Z2V0UGl4ZWxCdWZmZXIob3V0cHV0
Rm9ybWF0LCBzcmNSZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
cHV0UGl4ZWxCdWZmZXIoY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RQb2ludCwgY29uc3QgUGl4ZWxCdWZmZXImIHBpeGVsQnVmZmVyLCBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIGRlc3RGb3JtYXQpCit7CisgICAgbV9pbWFnZUJ1ZmZlci0+cHV0UGl4ZWxCdWZmZXIo
cGl4ZWxCdWZmZXIsIHNyY1JlY3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7Cit9CisKK3ZvaWQg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cGFpbnRGcmFtZUZvck1lZGlhKE1lZGlhUGxheWVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKQorewor
ICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVh
ZChpZGVudGlmaWVyLCBbaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyLmNvcHlSZWYoKSwgZGVz
dGluYXRpb25dKE1lZGlhUGxheWVyJiBwbGF5ZXIpIHsKKyAgICAgICAgLy8gSXQgaXMgY3VycmVu
dGx5IG5vdCBzYWZlIHRvIGNhbGwgcGFpbnRGcmFtZUZvck1lZGlhKCkgb2ZmIHRoZSBtYWluIHRo
cmVhZC4KKyAgICAgICAgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS5wYWludEZyYW1lRm9yTWVkaWEo
cGxheWVyLCBkZXN0aW5hdGlvbik7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6c3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGxpbmVX
aWR0aCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTdHJva2VSZWN0KHJlY3QsIGxp
bmVXaWR0aCkpOworfQorCisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tlTGluZShjb25zdCBMaW5lRGF0YSYgZGF0YSkK
K3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTdHJva2VMaW5lKGRhdGEpKTsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VBcmMoY29uc3QgQXJjRGF0YSYg
ZGF0YSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTdHJva2VBcmMoZGF0YSkpOwor
fQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZVF1YWRDdXJ2ZShjb25z
dCBRdWFkQ3VydmVEYXRhJiBkYXRhKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlN0
cm9rZVF1YWRDdXJ2ZShkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6c3Ryb2tlQmV6aWVyQ3VydmUoY29uc3QgQmV6aWVyQ3VydmVEYXRhJiBkYXRhKQoreworICAg
IGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlN0cm9rZUJlemllckN1cnZlKGRhdGEpKTsKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OnN0cm9rZVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBoYW5kbGVJ
dGVtKERpc3BsYXlMaXN0OjpTdHJva2VQYXRoKHBhdGgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpzdHJva2VFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sK
KyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTdHJva2VFbGxpcHNlKHJlY3QpKTsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGVhclJlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkNsZWFyUmVjdChyZWN0KSk7
Cit9CisKKyNpZiBVU0UoQ0cpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YXBw
bHlTdHJva2VQYXR0ZXJuKCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpBcHBseVN0
cm9rZVBhdHRlcm4oKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YXBw
bHlGaWxsUGF0dGVybigpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6QXBwbHlGaWxs
UGF0dGVybigpKTsKK30KKworI2VuZGlmIC8vIFVTRShDRykKKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjphcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQor
eworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkFwcGx5RGV2aWNlU2NhbGVGYWN0b3Ioc2Nh
bGVGYWN0b3IpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmbHVzaENv
bnRleHQoR3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
bV9pbWFnZUJ1ZmZlci0+Zmx1c2hDb250ZXh0KCk7CisgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5k
aWRGbHVzaChpZGVudGlmaWVyLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllcik7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBm
Nzg1MWRmYWI5MWYxOGQ0MTQxZTkxNzA1NDQ4Y2NhZDk2NmE4NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyLmgKQEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgiCisjaW5jbHVk
ZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU3RyZWFtU2VydmVyQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CitjbGFzcyBSZW1vdGVS
ZXNvdXJjZUNhY2hlOworCitjbGFzcyBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyIDogcHVibGlj
IElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcj4gY3JlYXRlKFdlYkNvcmU6OkltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZl
ciwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRp
ZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVuZGVyaW5nQmFja2VuZCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIoaW1h
Z2VCdWZmZXIsIGltYWdlQnVmZmVySWRlbnRpZmllciwgcmVuZGVyaW5nQmFja2VuZCkpOworICAg
IH0KKworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKKyAgICB2b2lkIHN0b3BMaXN0
ZW5pbmdGb3JJUEMoKTsKKworICAgIHZvaWQgc2F2ZSgpOworICAgIHZvaWQgcmVzdG9yZSgpOwor
ICAgIHZvaWQgdHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpOworICAgIHZvaWQgcm90YXRlKGZs
b2F0IGFuZ2xlKTsKKyAgICB2b2lkIHNjYWxlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2Nh
bGUpOworICAgIHZvaWQgc2V0Q1RNKGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwor
ICAgIHZvaWQgY29uY2F0ZW5hdGVDVE0oY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7
CisgICAgdm9pZCBzZXRJbmxpbmVGaWxsQ29sb3IoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElu
bGluZUZpbGxDb2xvciYmKTsKKyAgICB2b2lkIHNldElubGluZVN0cm9rZUNvbG9yKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvciYmKTsKKyAgICB2b2lkIHNldFN0cm9r
ZVRoaWNrbmVzcyhmbG9hdCk7CisgICAgdm9pZCBzZXRTdGF0ZShXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6U2V0U3RhdGUmJik7CisgICAgdm9pZCBzZXRMaW5lQ2FwKFdlYkNvcmU6OkxpbmVDYXApOwor
ICAgIHZvaWQgc2V0TGluZURhc2goV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldExpbmVEYXNoJiYp
OworICAgIHZvaWQgc2V0TGluZUpvaW4oV2ViQ29yZTo6TGluZUpvaW4pOworICAgIHZvaWQgc2V0
TWl0ZXJMaW1pdChmbG9hdCk7CisgICAgdm9pZCBjbGVhclNoYWRvdygpOworICAgIHZvaWQgY2xp
cChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICB2b2lkIGNsaXBPdXQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0Jik7CisgICAgdm9pZCBjbGlwVG9JbWFnZUJ1ZmZlcihXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVz
dGluYXRpb25SZWN0KTsKKyAgICB2b2lkIGNsaXBPdXRUb1BhdGgoY29uc3QgV2ViQ29yZTo6UGF0
aCYpOworICAgIHZvaWQgY2xpcFBhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYsIFdlYkNvcmU6Oldp
bmRSdWxlKTsKKyAgICB2b2lkIGJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZSYpOworICAgIHZvaWQgZW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24pOworICAgIHZvaWQgZHJhd0dseXBocyhXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0dseXBocyYmKTsKKyAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uUmVjdCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9u
cyYpOworICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1h
Z2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25z
Jik7CisgICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKyAgICB2b2lkIGJlZ2luVHJh
bnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSk7CisgICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lM
YXllcigpOworICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgZmxv
YXQgYm9yZGVyVGhpY2tuZXNzKTsKKyAgICB2b2lkIGRyYXdMaW5lKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmIHBvaW50MSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9pbnQyKTsKKyAg
ICB2b2lkIGRyYXdMaW5lc0ZvclRleHQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdMaW5lc0Zv
clRleHQmJik7CisgICAgdm9pZCBkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50TWFya2VyTGluZVN0eWxlJik7
CisgICAgdm9pZCBkcmF3RWxsaXBzZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICB2
b2lkIGRyYXdQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmKTsKKyAgICB2b2lkIGRyYXdGb2N1c1Jp
bmdQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBj
b25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZvaWQgZHJhd0ZvY3VzUmluZ1JlY3RzKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+JiByZWN0cywgZmxvYXQgd2lkdGgsIGZsb2F0IG9m
ZnNldCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2b2lkIGZpbGxSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpOworICAgIHZvaWQgZmlsbFJlY3RXaXRoQ29sb3IoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2b2lkIGZpbGxS
ZWN0V2l0aEdyYWRpZW50KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUmVjdFdpdGhHcmFkaWVu
dCYmKTsKKyAgICB2b2lkIGZpbGxDb21wb3NpdGVkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yLCBX
ZWJDb3JlOjpCbGVuZE1vZGUpOworICAgIHZvaWQgZmlsbFJvdW5kZWRSZWN0KGNvbnN0IFdlYkNv
cmU6OkZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIFdlYkNvcmU6OkJs
ZW5kTW9kZSk7CisgICAgdm9pZCBmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImKTsKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKyAgICB2b2lkIGZp
bGxMaW5lKGNvbnN0IFdlYkNvcmU6OkxpbmVEYXRhJik7CisgICAgdm9pZCBmaWxsQXJjKGNvbnN0
IFdlYkNvcmU6OkFyY0RhdGEmKTsKKyAgICB2b2lkIGZpbGxRdWFkQ3VydmUoY29uc3QgV2ViQ29y
ZTo6UXVhZEN1cnZlRGF0YSYpOworICAgIHZvaWQgZmlsbEJlemllckN1cnZlKGNvbnN0IFdlYkNv
cmU6OkJlemllckN1cnZlRGF0YSYpOworI2VuZGlmCisgICAgdm9pZCBmaWxsUGF0aChjb25zdCBX
ZWJDb3JlOjpQYXRoJik7CisgICAgdm9pZCBmaWxsRWxsaXBzZShjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmKTsKKyAgICB2b2lkIGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQp
OworICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgV2ViQ29yZTo6UGl4
ZWxCdWZmZXImLCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpOwor
ICAgIHZvaWQgcGFpbnRGcmFtZUZvck1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbik7CisgICAgdm9pZCBzdHJv
a2VSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0IGxpbmVXaWR0aCk7CisjaWYg
RU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisgICAgdm9pZCBzdHJva2VMaW5lKGNvbnN0IFdlYkNv
cmU6OkxpbmVEYXRhJik7CisgICAgdm9pZCBzdHJva2VBcmMoY29uc3QgV2ViQ29yZTo6QXJjRGF0
YSYpOworICAgIHZvaWQgc3Ryb2tlUXVhZEN1cnZlKGNvbnN0IFdlYkNvcmU6OlF1YWRDdXJ2ZURh
dGEmKTsKKyAgICB2b2lkIHN0cm9rZUJlemllckN1cnZlKGNvbnN0IFdlYkNvcmU6OkJlemllckN1
cnZlRGF0YSYpOworI2VuZGlmCisgICAgdm9pZCBzdHJva2VQYXRoKGNvbnN0IFdlYkNvcmU6OlBh
dGgmKTsKKyAgICB2b2lkIHN0cm9rZUVsbGlwc2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7
CisgICAgdm9pZCBjbGVhclJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisjaWYgVVNF
KENHKQorICAgIHZvaWQgYXBwbHlTdHJva2VQYXR0ZXJuKCk7CisgICAgdm9pZCBhcHBseUZpbGxQ
YXR0ZXJuKCk7CisjZW5kaWYKKyAgICB2b2lkIGFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQp
OworICAgIHZvaWQgZmx1c2hDb250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEZsdXNoSWRl
bnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcihXZWJD
b3JlOjpJbWFnZUJ1ZmZlciYsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCYpOworCisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSYgcmVz
b3VyY2VDYWNoZSgpOworICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgZHJhd2luZ0NvbnRl
eHQoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIC4uLiBBZGRpdGlvbmFs
QXJncz4KKyAgICB2b2lkIGhhbmRsZUl0ZW0oVCYmIGl0ZW0sIEFkZGl0aW9uYWxBcmdzJiYgLi4u
IGFyZ3MpCisgICAgeworICAgICAgICAvLyBGSVhNRTogSW4gdGhlIGZ1dHVyZSwgd2Ugc2hvdWxk
IGNvbnNpZGVyIGJ1ZmZlcmluZyB1cCBiYXRjaGVzIG9mIGRpc3BsYXkgbGlzdCBpdGVtcyBiZWZv
cmUKKyAgICAgICAgLy8gYXBwbHlpbmcgdGhlbSBpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZW0gaW1t
ZWRpYXRlbHksIHNvIHRoYXQgd2UgY2FuIGFwcGx5IGNsaXBwaW5nIGFuZCBvY2NsdXNpb24KKyAg
ICAgICAgLy8gb3B0aW1pemF0aW9ucyB0byBza2lwIG92ZXIgcGFydHMgb2YgYSBkaXNwbGF5IGxp
c3QsIGlmIHBvc3NpYmxlLgorICAgICAgICBpdGVtLmFwcGx5KGRyYXdpbmdDb250ZXh0KCksIGFy
Z3MuLi4pOworICAgIH0KKworICAgIHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAg
UmVmPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdlQnVmZmVyOworICAgIFF1YWxpZmllZFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsKKyAgICBS
ZWY8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW5kZXJpbmdCYWNrZW5kOworICAgIFJlZlB0
cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9tYXNrSW1hZ2VCdWZmZXI7CisgICAgYm9vbCBtX2lz
TGlzdGVuaW5nRm9ySVBDIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YzE0MDkzYTNiOWFiYTBhMWJlNzIwNjg3ZWZiNDY2OGI1OTVhMzYxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw5OCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAt
PiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICBT
YXZlKCkKKyAgICBSZXN0b3JlKCkKKyAgICBUcmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKKyAg
ICBSb3RhdGUoZmxvYXQgYW5nbGUpCisgICAgU2NhbGUoV2ViQ29yZTo6RmxvYXRTaXplIHNjYWxl
KQorICAgIFNldENUTShXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0gY3RtKQorICAgIENvbmNhdGVu
YXRlQ1RNKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSBjdG0pCisgICAgU2V0SW5saW5lRmlsbENv
bG9yKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3IgaXRlbSkKKyAgICBT
ZXRJbmxpbmVTdHJva2VDb2xvcihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tl
Q29sb3IgaXRlbSkKKyAgICBTZXRTdHJva2VUaGlja25lc3MoZmxvYXQgdGhpY2tuZXNzKQorICAg
IFNldFN0YXRlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZSBpdGVtKQorICAgIFNldExp
bmVDYXAoZW51bTp1aW50OF90IFdlYkNvcmU6OkxpbmVDYXAgbGluZUNhcCkKKyAgICBTZXRMaW5l
RGFzaChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0TGluZURhc2ggaXRlbSkKKyAgICBTZXRMaW5l
Sm9pbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TGluZUpvaW4gbGluZUpvaW4pCisgICAgU2V0TWl0
ZXJMaW1pdChmbG9hdCBsaW1pdCkKKyAgICBDbGVhclNoYWRvdygpCisgICAgQ2xpcChXZWJDb3Jl
OjpGbG9hdFJlY3QgcmVjdCkKKyAgICBDbGlwT3V0KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQor
ICAgIENsaXBUb0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5h
dGlvblJlY3QpCisgICAgQ2xpcE91dFRvUGF0aChXZWJDb3JlOjpQYXRoIHBhdGgpCisgICAgQ2xp
cFBhdGgoV2ViQ29yZTo6UGF0aCBwYXRoLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6V2luZFJ1bGUg
d2luZFJ1bGUpCisgICAgQmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMoV2ViQ29yZTo6RmxvYXRS
ZWN0IGRlc3RpbmF0aW9uLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFj
ZSkKKyAgICBFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3Rp
bmF0aW9uKQorICAgIERyYXdHbHlwaHMoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMg
aXRlbSkKKyAgICBEcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0
aW9uUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHNyY1JlY3QsIHN0cnVjdCBXZWJDb3JlOjpJbWFn
ZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQorICAgIERyYXdOYXRpdmVJbWFnZShXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9h
dFNpemUgaW1hZ2VTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdFJlY3QsIFdlYkNvcmU6OkZs
b2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMgb3B0
aW9ucykKKyAgICBEcmF3UGF0dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFNpemUgaW1hZ2VTaXplLCBXZWJDb3Jl
OjpGbG9hdFJlY3QgZGVzdFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0aWxlUmVjdCwgV2ViQ29y
ZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSwgV2ViQ29yZTo6RmxvYXRQb2ludCBwaGFzZSwg
V2ViQ29yZTo6RmxvYXRTaXplIHNwYWNpbmcsIHN0cnVjdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9ucyBvcHRpb25zKQorICAgIEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0
eSkKKyAgICBFbmRUcmFuc3BhcmVuY3lMYXllcigpCisgICAgRHJhd1JlY3QoV2ViQ29yZTo6Rmxv
YXRSZWN0IHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykKKyAgICBEcmF3TGluZShXZWJDb3Jl
OjpGbG9hdFBvaW50IHBvaW50MSwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludDIpCisgICAgRHJh
d0xpbmVzRm9yVGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVzRm9yVGV4dCBpdGVt
KQorICAgIERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3Qs
IHN0cnVjdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKKyAgICBEcmF3
RWxsaXBzZShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkKKyAgICBEcmF3UGF0aChXZWJDb3JlOjpQ
YXRoIHBhdGgpCisgICAgRHJhd0ZvY3VzUmluZ1BhdGgoV2ViQ29yZTo6UGF0aCBwYXRoLCBmbG9h
dCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBXZWJDb3JlOjpDb2xvciBjb2xvcikKKyAgICBEcmF3Rm9j
dXNSaW5nUmVjdHMoVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gcmVjdHMsIGZsb2F0IHdpZHRo
LCBmbG9hdCBvZmZzZXQsIFdlYkNvcmU6OkNvbG9yIGNvbG9yKQorICAgIEZpbGxSZWN0KFdlYkNv
cmU6OkZsb2F0UmVjdCByZWN0KQorICAgIEZpbGxSZWN0V2l0aENvbG9yKFdlYkNvcmU6OkZsb2F0
UmVjdCByZWN0LCBXZWJDb3JlOjpDb2xvciBjb2xvcikKKyAgICBGaWxsUmVjdFdpdGhHcmFkaWVu
dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQgaXRlbSkKKyAgICBG
aWxsQ29tcG9zaXRlZFJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIFdlYkNvcmU6OkNvbG9y
IGNvbG9yLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3Igb3AsIGVudW06
dWludDhfdCBXZWJDb3JlOjpCbGVuZE1vZGUgYmxlbmRNb2RlKQorICAgIEZpbGxSb3VuZGVkUmVj
dChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0IHJlY3QsIFdlYkNvcmU6OkNvbG9yIGNvbG9yLCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6QmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBGaWxsUmVjdFdp
dGhSb3VuZGVkSG9sZShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgV2ViQ29yZTo6RmxvYXRSb3Vu
ZGVkUmVjdCByb3VuZGVkSG9sZVJlY3QsIFdlYkNvcmU6OkNvbG9yIGNvbG9yKQorI2lmIEVOQUJM
RShJTkxJTkVfUEFUSF9EQVRBKQorICAgIEZpbGxMaW5lKHN0cnVjdCBXZWJDb3JlOjpMaW5lRGF0
YSBkYXRhKQorICAgIEZpbGxBcmMoc3RydWN0IFdlYkNvcmU6OkFyY0RhdGEgZGF0YSkKKyAgICBG
aWxsUXVhZEN1cnZlKHN0cnVjdCBXZWJDb3JlOjpRdWFkQ3VydmVEYXRhIGRhdGEpCisgICAgRmls
bEJlemllckN1cnZlKHN0cnVjdCBXZWJDb3JlOjpCZXppZXJDdXJ2ZURhdGEgZGF0YSkKKyNlbmRp
ZgorICAgIEZpbGxQYXRoKFdlYkNvcmU6OlBhdGggcGF0aCkKKyAgICBGaWxsRWxsaXBzZShXZWJD
b3JlOjpGbG9hdFJlY3QgcmVjdCkKKyAgICBHZXRQaXhlbEJ1ZmZlcihXZWJDb3JlOjpJbnRSZWN0
IHNyY1JlY3QsIHN0cnVjdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCBvdXRwdXRGb3JtYXQp
CisgICAgUHV0UGl4ZWxCdWZmZXIoV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpJ
bnRQb2ludCBkZXN0UG9pbnQsIFdlYkNvcmU6OlBpeGVsQnVmZmVyIHBpeGVsQnVmZmVyLCBlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KQorICAg
IFBhaW50RnJhbWVGb3JNZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9uKQorICAgIFN0cm9rZVJlY3QoV2Vi
Q29yZTo6RmxvYXRSZWN0IHJlY3QsIGZsb2F0IGxpbmVXaWR0aCkKKyNpZiBFTkFCTEUoSU5MSU5F
X1BBVEhfREFUQSkKKyAgICBTdHJva2VMaW5lKHN0cnVjdCBXZWJDb3JlOjpMaW5lRGF0YSBkYXRh
KQorICAgIFN0cm9rZUFyYyhzdHJ1Y3QgV2ViQ29yZTo6QXJjRGF0YSBkYXRhKQorICAgIFN0cm9r
ZVF1YWRDdXJ2ZShzdHJ1Y3QgV2ViQ29yZTo6UXVhZEN1cnZlRGF0YSBkYXRhKQorICAgIFN0cm9r
ZUJlemllckN1cnZlKHN0cnVjdCBXZWJDb3JlOjpCZXppZXJDdXJ2ZURhdGEgZGF0YSkKKyNlbmRp
ZgorICAgIFN0cm9rZVBhdGgoV2ViQ29yZTo6UGF0aCBwYXRoKQorICAgIFN0cm9rZUVsbGlwc2Uo
V2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCisgICAgQ2xlYXJSZWN0KFdlYkNvcmU6OkZsb2F0UmVj
dCByZWN0KQorI2lmIFVTRShDRykKKyAgICBBcHBseVN0cm9rZVBhdHRlcm4oKQorICAgIEFwcGx5
RmlsbFBhdHRlcm4oKQorI2VuZGlmCisgICAgQXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBz
Y2FsZUZhY3RvcikKKyAgICBGbHVzaENvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Rmx1
c2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZmNjZWQ3ZDUxYTIxMjJhNjAwNDg5OWUx
OWUzODBjYmQ1ODU3MjFmMS4uYzdkMWE4M2VlZmUzMWU3YzI5ZDcyM2RjYzVhZjc1Nzg2OTIyZjI0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtNzgzLDYgKzc4MywxNCBAQCB2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnVwZGF0ZUxhc3RLbm93blN0YXRlKFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRTdGF0ZSBzdAogICAgIG1fbGFzdEtub3duU3RhdGUuc3RvcmVSZWxheGVkKHN0YXRl
KTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpwZXJmb3JtV2l0aE1lZGlhUGxh
eWVyT25NYWluVGhyZWFkKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBGdW5jdGlv
bjx2b2lkKE1lZGlhUGxheWVyJik+JiYgY2FsbGJhY2spCit7CisgICAgY2FsbE9uTWFpblJ1bkxv
b3BBbmRXYWl0KFsmLCBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzID0gbV9ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyXSB7CisgICAgICAgIGlmIChhdXRvIHBsYXllciA9IGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCku
bWVkaWFQbGF5ZXIoaWRlbnRpZmllcikpCisgICAgICAgICAgICBjYWxsYmFjaygqcGxheWVyKTsK
KyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA0MTlhZTZkMTZmNzJkN2Q1OTMx
NDFmZTIyOTZhY2ZlNjlhMWM1OTBjLi42MjhlYzM5YjZhMTg5YjgyZWJhNGZmZjI1OGY2NmFkOTY4
MGQ3MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTk5LDYgKzk5LDggQEAgcHVibGljOgog
CiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlIGxhc3RLbm93blN0YXRlKCkgY29uc3Q7
CiAKKyAgICB2b2lkIHBlcmZvcm1XaXRoTWVkaWFQbGF5ZXJPbk1haW5UaHJlYWQoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6Ok1lZGlhUGxheWVy
Jik+JiYpOworCiBwcml2YXRlOgogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRDcmVhdGlvblBhcmFtZXRl
cnMmJik7CiAgICAgdm9pZCBzdGFydExpc3RlbmluZ0ZvcklQQygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNDFjNzZiZGI4ZGE3MTY0NWYzODUzYTMzZmFk
NWRkMjVlZDc4NDQxYy4uNzgzOWY2OThkZDgxYTgyNDJkMWFjM2YzMjU0NjViZjE1MDE1NTUyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC02OTEsMTMgKzY5
MSwxOCBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dhbGxUaW1lJzog
Wyc8d3RmL1dhbGxUaW1lLmg+J10sCiAgICAgICAgICdTdHJpbmcnOiBbJzx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4nXSwKICAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nlc3Npb25JRC5o
PiddLAorICAgICAgICAnV2ViQ29yZTo6QXJjRGF0YSc6IFsnPFdlYkNvcmUvSW5saW5lUGF0aERh
dGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncyc6IFsnPFdlYkNv
cmUvQXV0b3BsYXlFdmVudC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6QmV6aWVyQ3VydmVEYXRh
JzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAorICAgICAgICAnV2ViQ29yZTo6Qmxl
bmRNb2RlJzogWyc8V2ViQ29yZS9HcmFwaGljc1R5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lzaW9uJzogWyc8V2ViQ29yZS9GcmFtZUxv
YWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24nOiBbJzxX
ZWJDb3JlL0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OkNPT1BEaXNwb3NpdGlvbic6IFsnPFdlYkNvcmUvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaD4n
XSwKKyAgICAgICAgJ1dlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yJzogWyc8V2ViQ29yZS9HcmFw
aGljc1R5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpDcmVhdGVOZXdHcm91cEZvckhpZ2hs
aWdodCc6IFsnPFdlYkNvcmUvQXBwSGlnaGxpZ2h0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlJzogWyc8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJzogWyc8V2ViQ29yZS9Db2xv
clNwYWNlLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSc6
IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1l
bnRPcldvcmtlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnOiBbJzxXZWJDb3JlL0Ry
YWdEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnSGFuZGxpbmdNZXRob2QnOiBbJzxX
ZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCkBAIC03MDgsNiArNzEzLDcgQEAgZGVmIGhlYWRlcnNf
Zm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzog
Wyc8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Rmlyc3RQYXJ0
eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUnOiBbJzxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Rm9udENoYW5nZXMnOiBbJzxXZWJDb3JlL0ZvbnRB
dHRyaWJ1dGVDaGFuZ2VzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpGb250U21vb3RoaW5nTW9k
ZSc6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RnJh
bWVMb2FkVHlwZSc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEnOiBbJzxXZWJDb3JlL0luYmFuZEdlbmVyaWNDdWUuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OkdyYW1tYXJEZXRhaWwnOiBbJzxXZWJDb3JlL1RleHRDaGVj
a2VyQ2xpZW50Lmg+J10sCkBAIC03MjMsMTAgKzcyOSwxNCBAQCBkZWYgaGVhZGVyc19mb3JfdHlw
ZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OktleXByZXNzQ29tbWFuZCc6IFsnPFdlYkNvcmUv
S2V5Ym9hcmRFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uQ2xpZW50OjpNZWRpYUtleUVycm9yQ29k
ZSc6IFsnPFdlYkNvcmUvTGVnYWN5Q0RNU2Vzc2lvbi5oPiddLAorICAgICAgICAnV2ViQ29yZTo6
TGluZUNhcCc6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAorICAgICAgICAnV2ViQ29y
ZTo6TGluZURhdGEnOiBbJzxXZWJDb3JlL0lubGluZVBhdGhEYXRhLmg+J10sCisgICAgICAgICdX
ZWJDb3JlOjpMaW5lSm9pbic6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJU
eXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyc6IFsnPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSc6IFsnPFdlYkNvcmUvTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1vdXNlRXZlbnRQb2xp
Y3knOiBbJzxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpN
b3ZlRGF0YSc6IFsnPFdlYkNvcmUvSW5saW5lUGF0aERhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uJzogWyc8V2ViQ29yZS9OZXR3b3JrTG9h
ZEluZm9ybWF0aW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0
YSc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVi
b2FyZEltYWdlJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCkBAIC03NDIsNiArNzUyLDcg
QEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXInOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OlByZXNlcnZlUmVzb2x1dGlvbic6IFsnPFdlYkNvcmUvSW1hZ2VCdWZmZXJC
YWNrZW5kLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcic6IFsnPFdl
YkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlF1YWRDdXJ2
ZURhdGEnOiBbJzxXZWJDb3JlL0lubGluZVBhdGhEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQnOiBbJzxXZWJDb3JlL0RvY3Vt
ZW50U3RvcmFnZUFjY2Vzcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9s
aWN5JzogWyc8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDg2N2Y2ZDU0OGI5ZTI5ODRlYzcx
ZjMzZGEwMjg5ODcyMzk3MWNkMGQuLjAzMmVmNDczYjVkMjA2MzUyMzc5Nzk5NTA4NjliODExZjBi
ZjBkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcApAQCAtMTU5LDYgKzE1OSw5IEBAIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X1NPVVJDRShDR1BvaW50KQogREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNF
KENHQWZmaW5lVHJhbnNmb3JtKQogI2VuZGlmCiAKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09E
RVJfRk9SX1NPVVJDRShEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yKQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKERpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJv
a2VDb2xvcikKKwogI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJD
RQogCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgU2hhcmVkQnVmZmVyKiBidWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCmluZGV4IDdlOGZlYzlmYjNmNjI4NWFlN2U2MGIzZjA0ODRhMWVmOTlj
NzZlNmEuLjIwOGYxYjYxMTdiODc5MGNhNDM1MTRiYWE0MTQ1ZDA2YzI2MmFmMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludDNELmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KQEAgLTI1Myw2ICsyNTQsOSBAQCBERUZJTkVf
U0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoQ0dQb2ludCkKIERFRklORV9TSU1QTEVf
QVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR0FmZmluZVRyYW5zZm9ybSkKICNlbmRpZgogCitE
RUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlNldElubGluZUZpbGxDb2xvcikKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9S
X0hFQURFUihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpCisKICN1
bmRlZiBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nPiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCBjNGE4NGUxZmI2ZjQ2NmI4ZmJkNTRlNmNhNDZjNDcyNDIyYjNiMGM4Li43ZTIz
ZDYwNTJjNDUyNGYyN2I3MDQyMDJhYTBlN2M5MTdmMWRiOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI1
LDYgKzI1LDcgQEAgR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9EaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5j
cHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCkBAIC02MTEsNiArNjEyLDcgQEAgV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvRGlzcGxheUxpc3RXcml0ZXJIYW5kbGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJh
dGVkLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5jcHAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNw
cApAQCAtNzU1LDYgKzc1Nyw3IEBAIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VSZWNlaXZlci5jcHAKIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhS
U3lzdGVtTWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWQyMDQxZmE1MmRmMzZhOTE2NmZjNzI4MmUxOWI2
NGI5MWQ0OWIzZS4uM2IwN2ZiM2Q1NjUyMGRjYzhlZWY4Zjk1MTY4MWJiNThmNTZhNDcwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
MDUzLDYgKzIwNTMsOSBAQAogCQlGNDQyOTE5NjFGQTU5NDJBMDAyQ0M5M0UgLyogX1dLQXR0YWNo
bWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDQyOTE5NTFGQTU5NDJBMDAyQ0M5M0UgLyogX1dLQXR0YWNobWVudEludGVybmFsLmgg
Ki87IH07CiAJCUY0NDgxNTY0MjM4NzgyMDAwMDk4MjY1NyAvKiBXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDQ4MTU2MjIzODc4MjAwMDA5ODI2NTcgLyogV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ci5oICovOyB9OwogCQlGNDRERkVCMjFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0REZF
QjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCAqLzsgfTsKKwkJRjQ1MTdE
N0IyNkZCQ0QzOTAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTE3
RDc5MjZGQkNEMzgwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBs
aWVzLmggKi87IH07CisJCUY0NTE3RDdDMjZGQkNEMzkwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0NTE3RDdBMjZGQkNEMzgwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kTWVzc2FnZXMuaCAqLzsgfTsKKwkJRjQ1MUMwRkUyNzAzQjI2MzAwMkJBMDNCIC8qIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ4QkI4REQyNkY5NjM1RDAwMUMxQzQwIC8qIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eS5oICovOyB9OwogCQlGNDY2MEJDMjI1REVGMDgxMDBFODY1OTgg
LyogUGFzdGVib2FyZEFjY2Vzc0ludGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ2NjBCQzEyNURFRjA4MTAwRTg2NTk4IC8qIFBhc3RlYm9hcmRB
Y2Nlc3NJbnRlbnQuaCAqLzsgfTsKIAkJRjQ4NTcwQTMyNjQ0QkVDNTAwQzA1RjcxIC8qIFRpbWVv
dXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODU3
MEEyMjY0NEJFQzQwMEMwNUY3MSAvKiBUaW1lb3V0LmggKi87IH07CiAJCUY0OEQyQTg1MjE1ODNB
N0UwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0OEQyQTg0MjE1ODNBMDIwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCAq
LzsgfTsKQEAgLTYxMjksOSArNjEzMiwxNyBAQAogCQlGNDQ4MTU2MzIzODc4MjAwMDA5ODI2NTcg
LyogV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0REZF
QjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViSWNvblV0aWxpdGllcy5oOyBwYXRoID0gaW9zL1dlYkljb25V
dGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0REZFQjExRTlFNzUy
RjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBXZWJJY29uVXRpbGl0aWVzLm1tOyBwYXRoID0gaW9zL1dlYkljb25V
dGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NTE3RDc3MjZGQkND
RTQwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJRjQ1MTdENzkyNkZCQ0QzODAwNEM4NDc1IC8qIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBs
aWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUY0NTE3RDdBMjZG
QkNEMzgwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2Vz
Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlGNDUxQzEw
MDI3MDNEODUzMDAyQkEwM0IgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDY2MEJDMTI1REVGMDgxMDBFODY1OTggLyogUGFzdGVib2Fy
ZEFjY2Vzc0ludGVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0EwNTE2MjY4MjdBMDkwMDdFNUNGMiAv
KiBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVpY2tMb29rUHJl
dmlld0FjdGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0ODU3MEEyMjY0
NEJFQzQwMEMwNUY3MSAvKiBUaW1lb3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRpbWVvdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4QkI4REQyNkY5
NjM1RDAwMUMxQzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjQ4QkI4REUyNkY5NjM1RDAwMUMxQzQwIC8qIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDhCQjhE
RjI2Rjk2MzkyMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0OEJCOEUwMjZGOTYzOTIwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDhEMkE4NDIxNTgzQTAyMDBDNjc1
MkIgLyogQXBwS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEtpdFNQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDk2QTQyRjFGNThBMjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJ
bnRlcmFjdGlvblN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0
ZS5oOyBwYXRoID0gaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDk2QTQzMDFGNThBMjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRl
cmFjdGlvblN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gRHJhZ0Ryb3BJbnRlcmFjdGlv
blN0YXRlLm1tOyBwYXRoID0gaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwNzIsNiArOTA4Myw4IEBACiAJCQkJNzI3QTdGMzYy
NDA3ODhGMDAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oICov
LAogCQkJCTcyN0E3RjM4MjQwNzg4RjAwMDREMjkzMSAvKiBQbGF0Zm9ybUltYWdlQnVmZmVyU2hh
cmVhYmxlQmFja2VuZC5oICovLAogCQkJCTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0
Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLywKKwkJCQlGNDhCQjhERTI2Rjk2MzVEMDAx
QzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCAqLywKKwkJCQlGNDhC
QjhERDI2Rjk2MzVEMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Lmgg
Ki8sCiAJCQkJN0I5MDQxNjUyNTRBRkRFQTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHkuY3BwICovLAogCQkJCTdCOTA0MTY2MjU0QUZERUIwMDZFRUI4QyAvKiBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5LmggKi8sCiAJCQkJN0I5MDQxNjcyNTRBRkUxNzAwNkVFQjhD
IC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC05MDk0
LDYgKzkxMDcsOSBAQAogCQkJCUY0MDk0Q0JCMjU1MzA0QUYwMDNENzNFMyAvKiBEaXNwbGF5TGlz
dFJlYWRlckhhbmRsZS5oICovLAogCQkJCTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0
Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmggKi8sCiAJCQkJMUNDNTRBRkQyNzBGOTY1NDAwNUJGOEJF
IC8qIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oICovLAorCQkJCUY0OEJC
OEUwMjZGOTYzOTIwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcCAqLywK
KwkJCQlGNDhCQjhERjI2Rjk2MzkyMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ci5oICovLAorCQkJCUY0NTFDMTAwMjcwM0Q4NTMwMDJCQTAzQiAvKiBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyLm1lc3NhZ2VzLmluICovLAogCQkJCTdCOTA0MTY5MjU0QUZFQTcwMDZFRUI4QyAv
KiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgKi8sCiAJCQkJN0I5MDQxNkEyNTRBRkVBNzAw
NkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmggKi8sCiAJCQkJN0I5MDQxNjgyNTRB
RkVBNzAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluICovLApA
QCAtMTE0NjUsNiArMTE0ODEsOSBAQAogCQkJCUNEODI1MkRBMjVENDkxNTQwMDg2MkZEOCAvKiBS
ZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJ
CQkJQ0Q4MjUyRDkyNUQ0OTE1NDAwODYyRkQ4IC8qIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5l
clByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDRDgyNTJEODI1RDQ5MTUzMDA4NjJGRDggLyogUmVt
b3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQlG
NDUxN0Q3NzI2RkJDQ0U0MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCisJCQkJRjQ1MTdEN0EyNkZCQ0QzODAwNEM4NDc1IC8qIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oICovLAorCQkJCUY0NTE3RDc5MjZGQkNEMzgwMDRDODQ3
NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMEY1
OTQ3QTUxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkwRjU5NDdBNjE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovLAogCQkJCTFERDJBNjZCMjU2MjAyMUUw
MEZGN0I2RiAvKiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CkBAIC0xMjU2MCw2ICsxMjU3OSw3IEBACiAJCQkJQ0RBQzIwQjQyM0ZCNThGMjAwMjFERUUzIC8q
IFJlbW90ZUNETUluc3RhbmNlUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQUMyMENBMjNG
QzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEQUMyMEM5MjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Np
b25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNDUxQzBGRTI3MDNCMjYzMDAyQkEw
M0IgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyRDQ3QjU2RDE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCBp
biBIZWFkZXJzICovLAogCQkJCTJEREY3MzE1MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjE2QUVBMTY0
QjNBODgwMDI5MEQ2MiAvKiBSZW1vdGVMYXllclRyZWVDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
QEAgLTEyNTg4LDYgKzEyNjA4LDggQEAKIAkJCQkxQUMxMzM4NjE4NTkwQzQ2MDBGM0VDMDUgLyog
UmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYwODhB
MDAyNjFGQThCQzAwRTI1MDBEIC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ2MDg4QTAxMjYxRkE4QzQwMEUyNTAwRCAvKiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNDUxN0Q3QzI2RkJD
RDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNDUxN0Q3QjI2RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZE1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQxNENFMkQyNjlERTZF
QTAwQkQyMTZBIC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY1OTQ3OTAxODdCM0IzQTAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcgLyogUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNlMDJh
MjhhYjU1Yzk5NGVmYTcwMDNjODc0ZTViNzc5NDM4MDk1MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5LmNwcApAQCAtMCwwICsxLDQ0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCIKKworI2luY2x1ZGUgIlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
Q29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhUGxheWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eShJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSYgcmVuZGVyaW5nQmFja2VuZCwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29u
c3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCisgICAgOiBEaXNwbGF5TGlz
dDo6UmVjb3JkZXIoeyB9LCBpbml0aWFsQ2xpcCwgaW5pdGlhbENUTSwgZGVjb25zdHJ1Y3REcmF3
R2x5cGhzKQorICAgICwgbV9kZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIoaW1hZ2VCdWZmZXIu
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpCisgICAgLCBtX2ltYWdlQnVmZmVyKG1ha2VX
ZWFrUHRyKGltYWdlQnVmZmVyKSkKKyAgICAsIG1fcmVuZGVyaW5nQmFja2VuZChtYWtlV2Vha1B0
cihyZW5kZXJpbmdCYWNrZW5kKSkKK3sKK30KKworUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkoUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5JiBwYXJlbnQsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSkKKyAgICA6IERpc3BsYXlMaXN0OjpSZWNvcmRlcihw
YXJlbnQsIHsgfSwgaW5pdGlhbENsaXAsIGluaXRpYWxDVE0pCisgICAgLCBtX2Rlc3RpbmF0aW9u
QnVmZmVySWRlbnRpZmllcihwYXJlbnQubV9kZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCisg
ICAgLCBtX2ltYWdlQnVmZmVyKHBhcmVudC5tX2ltYWdlQnVmZmVyKQorICAgICwgbV9yZW5kZXJp
bmdCYWNrZW5kKHBhcmVudC5tX3JlbmRlcmluZ0JhY2tlbmQpCit7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpnZXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZl
ckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkdldFBpeGVsQnVmZmVy
KHNvdXJjZVJlY3QsIG91dHB1dEZvcm1hdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eTo6cHV0UGl4ZWxCdWZmZXIoY29uc3QgUGl4ZWxCdWZmZXImIHBpeGVsQnVm
ZmVyLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBB
bHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6UHV0UGl4ZWxCdWZmZXIoc3JjUmVjdCwgZGVzdFBv
aW50LCBwaXhlbEJ1ZmZlciwgZGVzdEZvcm1hdCkpOworfQorCitib29sIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6Y2FuRHJhd0ltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJiBp
bWFnZUJ1ZmZlcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5kICYmIG1f
cmVuZGVyaW5nQmFja2VuZC0+aXNDYWNoZWQoaW1hZ2VCdWZmZXIpOworfQorCitSZW5kZXJpbmdN
b2RlIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVuZGVyaW5nTW9kZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXIgPyBtX2ltYWdlQnVmZmVyLT5yZW5kZXJpbmdN
b2RlKCkgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOworfQorCit2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2F2ZSgpCit7CisgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U2F2ZSgpKTsKK30KKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJlc3RvcmUoKQoreworICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlJlc3RvcmUoKSk7Cit9CisKK3ZvaWQg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRUcmFuc2xhdGUoZmxvYXQgeCwg
ZmxvYXQgeSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpUcmFuc2xhdGUoeCwgeSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkUm90YXRlKGZsb2F0IGFuZ2xlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlJvdGF0ZShhbmdsZSkpOworfQorCit2b2lkIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2NhbGUoY29uc3QgRmxvYXRTaXplJiBz
Y2FsZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpT
Y2FsZShzY2FsZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkU2V0Q1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldENUTSh0cmFuc2Zvcm0p
KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENvbmNh
dGVuYXRlQ1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNvbmNhdGVuYXRlQ1RNKHRyYW5z
Zm9ybSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
U2V0SW5saW5lRmlsbENvbG9yKFNSR0JBPHVpbnQ4X3Q+IGNvbG9yKQoreworICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldElubGluZUZpbGxDb2xvcih7IGNv
bG9yIH0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZFNldElubGluZVN0cm9rZUNvbG9yKFNSR0JBPHVpbnQ4X3Q+IGNvbG9yKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldElubGluZVN0cm9rZUNvbG9y
KHsgY29sb3IgfSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkU2V0U3Ryb2tlVGhpY2tuZXNzKGZsb2F0IHRoaWNrbmVzcykKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTZXRTdHJva2VUaGlja25lc3ModGhp
Y2tuZXNzKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNv
cmRTZXRTdGF0ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29u
dGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdzKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldFN0YXRlKHsgc3RhdGUsIGZsYWdzIH0pKTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldExpbmVD
YXAoTGluZUNhcCBsaW5lQ2FwKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OlNldExpbmVDYXAobGluZUNhcCkpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0TGluZURhc2goY29uc3QgRGFzaEFycmF5JiBh
cnJheSwgZmxvYXQgZGFzaE9mZnNldCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpTZXRMaW5lRGFzaCh7IGFycmF5LCBkYXNoT2Zmc2V0IH0pKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldExpbmVKb2lu
KExpbmVKb2luIGxpbmVKb2luKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OlNldExpbmVKb2luKGxpbmVKb2luKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRNaXRlckxpbWl0KGZsb2F0IGxpbWl0KQor
eworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldE1pdGVy
TGltaXQobGltaXQpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZENsZWFyU2hhZG93KCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpDbGVhclNoYWRvdygpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZENsaXAoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNsaXAocmVjdCkpOwor
fQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xpcE91dChj
b25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6Q2xpcE91dChyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwVG9JbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uUmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpDbGlwVG9JbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGRlc3RpbmF0aW9u
UmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
Q2xpcE91dFRvUGF0aChjb25zdCBQYXRoJiBwYXRoKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNsaXBPdXRUb1BhdGgocGF0aCkpOworfQorCit2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xpcFBhdGgoY29uc3QgUGF0
aCYgcGF0aCwgV2luZFJ1bGUgcnVsZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpDbGlwUGF0aChwYXRoLCBydWxlKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5k
cyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29s
b3JTcGFjZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhkZXN0aW5hdGlvbiwgY29sb3JTcGFjZSkpOwor
fQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRW5kQ2xpcFRv
RHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCit7CisgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RW5kQ2xpcFRvRHJhd2luZ0Nv
bW1hbmRzKGRlc3RpbmF0aW9uKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVm
ZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZhbmNlcywgdW5z
aWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5n
TW9kZSBtb2RlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkRyYXdHbHlwaHMoeyBmb250LCBnbHlwaHMsIGFkdmFuY2VzLCBjb3VudCwgbG9jYWxBbmNo
b3IsIG1vZGUgfSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkRHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAg
c2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0ltYWdlQnVmZmVy
KGltYWdlQnVmZmVySWRlbnRpZmllciwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdOYXRpdmVJ
bWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBG
bG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3TmF0aXZl
SW1hZ2UoaW1hZ2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRp
b25zKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRE
cmF3UGF0dGVybihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBj
b25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0s
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdQYXR0ZXJuKGltYWdlSWRlbnRpZmllciwgaW1h
Z2VTaXplLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9w
dGlvbnMpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKK3sKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpCZWdpblRyYW5zcGFyZW5jeUxheWVyKG9w
YWNpdHkpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZEVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpFbmRUcmFuc3BhcmVuY3lMYXllcigpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCwgZmxvYXQgd2lkdGgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6RHJhd1JlY3QocmVjdCwgd2lkdGgpKTsKK30KKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdMaW5lKGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50MSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQyKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdMaW5lKHBvaW50MSwgcG9pbnQyKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3TGluZXNG
b3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQmIGJsb2NrTG9jYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYg
bG9jYWxBbmNob3IsIGZsb2F0IHRoaWNrbmVzcywgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMsIGJv
b2wgcHJpbnRpbmcsIGJvb2wgZG91YmxlTGluZXMpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0xpbmVzRm9yVGV4dCh7IGJsb2NrTG9jYXRpb24s
IGxvY2FsQW5jaG9yLCB0aGlja25lc3MsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJsZUxpbmVzIH0p
KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdE
b3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZSYgc3R5bGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihyZWN0LCBzdHlsZSkp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0Vs
bGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdFbGxpcHNlKHJlY3QpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXRoKGNvbnN0IFBhdGgmIHBh
dGgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJh
d1BhdGgocGF0aCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkRHJhd0ZvY3VzUmluZ1BhdGgoY29uc3QgUGF0aCYgcGF0aCwgZmxvYXQgd2lkdGgsIGZs
b2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdGb2N1c1JpbmdQYXRoKHBhdGgsIHdpZHRoLCBv
ZmZzZXQsIGNvbG9yKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmREcmF3Rm9jdXNSaW5nUmVjdHMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3Rz
LCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAg
c2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0ZvY3VzUmluZ1Jl
Y3RzKHJlY3RzLCB3aWR0aCwgb2Zmc2V0LCBjb2xvcikpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxS
ZWN0KHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZEZpbGxSZWN0V2l0aENvbG9yKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3Im
IGNvbG9yKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OkZpbGxSZWN0V2l0aENvbG9yKHJlY3QsIGNvbG9yKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhHcmFkaWVudChjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIEdyYWRpZW50JiBncmFkaWVudCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsUmVjdFdpdGhHcmFkaWVudCh7IHJlY3QsIGdy
YWRpZW50IH0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZEZpbGxDb21wb3NpdGVkUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9y
JiBjb2xvciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBtb2RlKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxDb21wb3NpdGVkUmVj
dChyZWN0LCBjb2xvciwgb3AsIG1vZGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZEZpbGxSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0
JiByb3VuZGVkUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBCbGVuZE1vZGUgbW9kZSkKK3sKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsUm91bmRlZFJl
Y3Qocm91bmRlZFJlY3QsIGNvbG9yLCBtb2RlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0LCBjb25zdCBD
b2xvciYgY29sb3IpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGUocmVjdCwgcm91bmRlZFJlY3QsIGNvbG9yKSk7
Cit9CisKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxMaW5lKGNvbnN0IExpbmVEYXRhJiBkYXRhKQor
eworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxMaW5l
KGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZEZpbGxBcmMoY29uc3QgQXJjRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsQXJjKGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxRdWFkQ3VydmUoY29uc3QgUXVhZEN1
cnZlRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpGaWxsUXVhZEN1cnZlKGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxCZXppZXJDdXJ2ZShjb25zdCBCZXppZXJDdXJ2ZURh
dGEmIGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6RmlsbEJlemllckN1cnZlKGRhdGEpKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTkxJTkVf
UEFUSF9EQVRBKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
RmlsbFBhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsUGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsRWxsaXBzZShjb25zdCBGbG9hdFJlY3Qm
IHJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
RmlsbEVsbGlwc2UocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkR2V0UGl4ZWxCdWZmZXIoUGl4ZWxCdWZmZXJGb3JtYXQgb3V0cHV0Rm9ybWF0
LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OkdldFBpeGVsQnVmZmVyKHJlY3QsIG91dHB1dEZvcm1hdCkpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUHV0UGl4ZWxCdWZm
ZXIoY29uc3QgUGl4ZWxCdWZmZXImIGJ1ZmZlciwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBwcmVtdWx0aXBs
aWNhdGlvbikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpQdXRQaXhlbEJ1ZmZlcihzcmNSZWN0LCBkZXN0UG9pbnQsIGJ1ZmZlciwgcHJlbXVsdGlwbGlj
YXRpb24pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZFBhaW50RnJhbWVGb3JNZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OlBhaW50RnJhbWVGb3JNZWRpYShwbGF5ZXIuaWRlbnRpZmllcigpLCBkZXN0aW5hdGlv
bikpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ry
b2tlUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IHdpZHRoKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlN0cm9rZVJlY3QocmVjdCwgd2lk
dGgpKTsKK30KKworI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorCit2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlTGluZShjb25zdCBMaW5lRGF0YSYg
ZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpT
dHJva2VMaW5lKGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZFN0cm9rZUFyYyhjb25zdCBBcmNEYXRhJiBkYXRhKQoreworICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlN0cm9rZUFyYyhkYXRhKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VRdWFkQ3Vy
dmUoY29uc3QgUXVhZEN1cnZlRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTdHJva2VRdWFkQ3VydmUoZGF0YSkpOworfQorCit2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlQmV6aWVyQ3VydmUo
Y29uc3QgQmV6aWVyQ3VydmVEYXRhJiBkYXRhKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlN0cm9rZUJlemllckN1cnZlKGRhdGEpKTsKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlUGF0aChjb25zdCBQYXRoJiBwYXRoKQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlN0cm9rZVBhdGgocGF0
aCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ry
b2tlRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U3Ryb2tlRWxsaXBzZShyZWN0KSk7Cit9CisKK3Zv
aWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGVhclJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OkNsZWFyUmVjdChyZWN0KSk7Cit9CisKKyNpZiBVU0UoQ0cpCisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRBcHBseVN0cm9rZVBhdHRlcm4oKQor
eworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkFwcGx5U3Ry
b2tlUGF0dGVybigpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZEFwcGx5RmlsbFBhdHRlcm4oKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OkFwcGx5RmlsbFBhdHRlcm4oKSk7Cit9CisKKyNlbmRpZiAvLyBV
U0UoQ0cpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRBcHBs
eURldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkFwcGx5RGV2aWNlU2NhbGVGYWN0b3Ioc2Nh
bGVGYWN0b3IpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZFJlc291cmNlVXNlKE5hdGl2ZUltYWdlJiBpbWFnZSkKK3sKKyAgICBpZiAoVU5MSUtFTFko
IW1fcmVuZGVyaW5nQmFja2VuZCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnJlY29yZE5h
dGl2ZUltYWdlVXNlKGltYWdlKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZFJlc291cmNlVXNlKEZvbnQmIGZvbnQpCit7CisgICAgaWYgKFVOTElLRUxZ
KCFtX3JlbmRlcmluZ0JhY2tlbmQpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5yZWNvcmRG
b250VXNlKGZvbnQpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkUmVzb3VyY2VVc2UoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQoreworICAgIGlmIChV
TkxJS0VMWSghbV9yZW5kZXJpbmdCYWNrZW5kKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+
cmVjb3JkSW1hZ2VCdWZmZXJVc2UoaW1hZ2VCdWZmZXIpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6Zmx1c2hDb250ZXh0KEdyYXBoaWNzQ29udGV4dEZsdXNoSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OkZsdXNoQ29udGV4dCh7IGlkZW50aWZpZXIgfSkpOworfQorCitzdGQ6OnVu
aXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OmNyZWF0ZU5lc3RlZENvbnRleHQoY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlPFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eT4oKnRoaXMsIGluaXRpYWxDbGlwLCBpbml0aWFs
Q1RNKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTliNjBiOGY4OTJmZDMxYzNkYTc1NGFh
NWZlM2EyMmNlMDY0MzBiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKQEAgLTAs
MCArMSwxNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RS
ZWNvcmRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhd0dseXBoc1JlY29yZGVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OworCitjbGFzcyBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkgOiBwdWJsaWMgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyIHsKK3B1YmxpYzoKKyAgICBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHkoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25z
dCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBXZWJDb3JlOjpEcmF3R2x5cGhzUmVjb3JkZXI6
OkRlY29uc3RydWN0RHJhd0dseXBocyA9IFdlYkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RGVj
b25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOworICAgIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eShSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkmIHBhcmVudCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3Jt
JiBpbml0aWFsQ1RNKTsKKworICAgIH5SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkoKSB7
IH0KKworICAgIHZvaWQgcmVzZXROZWVkc0ZsdXNoKCkgeyBtX25lZWRzRmx1c2ggPSBmYWxzZTsg
fQorICAgIGJvb2wgbmVlZHNGbHVzaCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNGbHVzaDsgfQor
CisgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1h
dCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3VyY2VSZWN0KSBmaW5h
bDsKKyAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBm
aW5hbDsKKyAgICB2b2lkIGZsdXNoQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRGbHVz
aElkZW50aWZpZXIpIGZpbmFsOworCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
CisgICAgdm9pZCBzZW5kKFQmJiBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgbV9uZWVkc0ZsdXNo
ID0gdHJ1ZTsKKyAgICAgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5zZW5kVG9TdHJlYW0oV1RGTW92
ZShtZXNzYWdlKSwgbV9kZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpOworICAgIH0KKworICAg
IGZyaWVuZCBjbGFzcyBEcmF3R2x5cGhzUmVjb3JkZXI7CisKKyAgICBib29sIGNhbkRyYXdJbWFn
ZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYpIGNvbnN0IGZpbmFsOworICAgIFJlbmRlcmluZ01v
ZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCByZWNvcmRTYXZlKCkg
ZmluYWw7CisgICAgdm9pZCByZWNvcmRSZXN0b3JlKCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRU
cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRSb3RhdGUo
ZmxvYXQgYW5nbGUpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU2NhbGUoY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRDVE0oY29uc3QgV2ViQ29yZTo6
QWZmaW5lVHJhbnNmb3JtJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRDb25jYXRlbmF0ZUNUTShj
b25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFNl
dElubGluZUZpbGxDb2xvcihXZWJDb3JlOjpTUkdCQTx1aW50OF90PikgZmluYWw7CisgICAgdm9p
ZCByZWNvcmRTZXRJbmxpbmVTdHJva2VDb2xvcihXZWJDb3JlOjpTUkdCQTx1aW50OF90PikgZmlu
YWw7CisgICAgdm9pZCByZWNvcmRTZXRTdHJva2VUaGlja25lc3MoZmxvYXQpIGZpbmFsOworICAg
IHZvaWQgcmVjb3JkU2V0U3RhdGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUm
LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncykgZmluYWw7
CisgICAgdm9pZCByZWNvcmRTZXRMaW5lQ2FwKFdlYkNvcmU6OkxpbmVDYXApIGZpbmFsOworICAg
IHZvaWQgcmVjb3JkU2V0TGluZURhc2goY29uc3QgV2ViQ29yZTo6RGFzaEFycmF5JiwgZmxvYXQg
ZGFzaE9mZnNldCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRMaW5lSm9pbihXZWJDb3JlOjpM
aW5lSm9pbikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRNaXRlckxpbWl0KGZsb2F0KSBmaW5h
bDsKKyAgICB2b2lkIHJlY29yZENsZWFyU2hhZG93KCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRD
bGlwKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQ2xp
cE91dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZENs
aXBUb0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb25S
ZWN0KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZENsaXBPdXRUb1BhdGgoY29uc3QgV2ViQ29yZTo6
UGF0aCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQ2xpcFBhdGgoY29uc3QgV2ViQ29yZTo6UGF0
aCYsIFdlYkNvcmU6OldpbmRSdWxlKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEJlZ2luQ2xpcFRv
RHJhd2luZ0NvbW1hbmRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24sIERl
c3RpbmF0aW9uQ29sb3JTcGFjZSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRFbmRDbGlwVG9EcmF3
aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbikgZmluYWw7
CisgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKGNvbnN0IFdlYkNvcmU6OkZvbnQmLCBjb25zdCBX
ZWJDb3JlOjpHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgV2ViQ29yZTo6R2x5cGhCdWZmZXJBZHZh
bmNlKiwgdW5zaWduZWQgY291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2FsQW5j
aG9yLCBXZWJDb3JlOjpGb250U21vb3RoaW5nTW9kZSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRE
cmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdl
QnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50
aW5nT3B0aW9ucyYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd05hdGl2ZUltYWdlKFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6
OkltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3UGF0dGVy
bihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVU
cmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9u
cyYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQmVnaW5UcmFuc3BhcmVuY3lMYXllcihm
bG9hdCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRFbmRUcmFuc3BhcmVuY3lMYXllcigpIGZpbmFs
OworICAgIHZvaWQgcmVjb3JkRHJhd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgZmxv
YXQpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd0xpbmUoY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgcG9pbnQxLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludDIpIGZpbmFsOwor
ICAgIHZvaWQgcmVjb3JkRHJhd0xpbmVzRm9yVGV4dChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBibG9ja0xvY2F0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvY2FsQW5jaG9yLCBm
bG9hdCB0aGlja25lc3MsIGNvbnN0IFdlYkNvcmU6OkRhc2hBcnJheSYgd2lkdGhzLCBib29sIHBy
aW50aW5nLCBib29sIGRvdWJsZUxpbmVzKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdEb3Rz
Rm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdF
bGxpcHNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3Jk
RHJhd1BhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJh
d0ZvY3VzUmluZ1BhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYsIGZsb2F0IHdpZHRoLCBmbG9hdCBv
ZmZzZXQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3
Rm9jdXNSaW5nUmVjdHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4mLCBmbG9hdCB3
aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOworICAgIHZv
aWQgcmVjb3JkRmlsbFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAg
dm9pZCByZWNvcmRGaWxsUmVjdFdpdGhDb2xvcihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbFJlY3RXaXRo
R3JhZGllbnQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgV2ViQ29yZTo6R3JhZGllbnQmKSBm
aW5hbDsKKyAgICB2b2lkIHJlY29yZEZpbGxDb21wb3NpdGVkUmVjdChjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJh
dG9yLCBXZWJDb3JlOjpCbGVuZE1vZGUpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbFJvdW5k
ZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBXZWJDb3JlOjpD
b2xvciYsIFdlYkNvcmU6OkJsZW5kTW9kZSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxsUmVj
dFdpdGhSb3VuZGVkSG9sZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKKyNpZiBF
TkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKyAgICB2b2lkIHJlY29yZEZpbGxMaW5lKGNvbnN0IFdl
YkNvcmU6OkxpbmVEYXRhJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxsQXJjKGNvbnN0IFdl
YkNvcmU6OkFyY0RhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEZpbGxRdWFkQ3VydmUoY29u
c3QgV2ViQ29yZTo6UXVhZEN1cnZlRGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbEJl
emllckN1cnZlKGNvbnN0IFdlYkNvcmU6OkJlemllckN1cnZlRGF0YSYpIGZpbmFsOworI2VuZGlm
CisgICAgdm9pZCByZWNvcmRGaWxsUGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJikgZmluYWw7Cisg
ICAgdm9pZCByZWNvcmRGaWxsRWxsaXBzZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5h
bDsKKyAgICB2b2lkIHJlY29yZEdldFBpeGVsQnVmZmVyKFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9y
bWF0IG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZv
aWQgcmVjb3JkUHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVz
dFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uKSBmaW5hbDsKKyAgICB2b2lk
IHJlY29yZFBhaW50RnJhbWVGb3JNZWRpYShNZWRpYVBsYXllciYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgZGVzdGluYXRpb24pIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU3Ryb2tlUmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCkgZmluYWw7CisjaWYgRU5BQkxFKElOTElO
RV9QQVRIX0RBVEEpCisgICAgdm9pZCByZWNvcmRTdHJva2VMaW5lKGNvbnN0IFdlYkNvcmU6Okxp
bmVEYXRhJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTdHJva2VBcmMoY29uc3QgV2ViQ29yZTo6
QXJjRGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU3Ryb2tlUXVhZEN1cnZlKGNvbnN0IFdl
YkNvcmU6OlF1YWRDdXJ2ZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFN0cm9rZUJlemll
ckN1cnZlKGNvbnN0IFdlYkNvcmU6OkJlemllckN1cnZlRGF0YSYpIGZpbmFsOworI2VuZGlmCisg
ICAgdm9pZCByZWNvcmRTdHJva2VQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlY29yZFN0cm9rZUVsbGlwc2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmlu
YWw7CisgICAgdm9pZCByZWNvcmRDbGVhclJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7CisjaWYgVVNFKENHKQorICAgIHZvaWQgcmVjb3JkQXBwbHlTdHJva2VQYXR0ZXJuKCkg
ZmluYWw7CisgICAgdm9pZCByZWNvcmRBcHBseUZpbGxQYXR0ZXJuKCkgZmluYWw7CisjZW5kaWYK
KyAgICB2b2lkIHJlY29yZEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpIGZpbmFsOworCisg
ICAgdm9pZCByZWNvcmRSZXNvdXJjZVVzZShXZWJDb3JlOjpOYXRpdmVJbWFnZSYpIGZpbmFsOwor
ICAgIHZvaWQgcmVjb3JkUmVzb3VyY2VVc2UoV2ViQ29yZTo6Rm9udCYpIGZpbmFsOworICAgIHZv
aWQgcmVjb3JkUmVzb3VyY2VVc2UoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBmaW5hbDsKKworICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IGNyZWF0ZU5lc3RlZENv
bnRleHQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgV2ViQ29y
ZTo6QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKSBmaW5hbDsKKworICAgIFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcjsK
KyAgICBXZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdlQnVmZmVyOworICAgIFdl
YWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5PiBtX3JlbmRlcmluZ0JhY2tlbmQ7Cisg
ICAgYm9vbCBtX25lZWRzRmx1c2ggeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggNzcyZmJj
YTY4ZmE3ZjAzMWFkMDQyMDFlOWZlMDE2ZGVkN2I1NzE5Yi4uYmY0OWE4MjdkMjAyODI0YTQ3YjBk
NjU2OTZjNmNhMmM3ZDhmYjkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcApAQCAtNDQ3LDYgKzQ0NywzMCBAQCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmVuc3VyZUJhY2tlbmRDcmVhdGVkKCkKICAgICBy
ZXR1cm4gcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKTsKIH0KIAordm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZE5hdGl2ZUltYWdlVXNlKE5hdGl2ZUltYWdlJiBpbWFn
ZSkKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5yZWNvcmROYXRpdmVJbWFnZVVz
ZShpbWFnZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWNvcmRG
b250VXNlKEZvbnQmIGZvbnQpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkucmVj
b3JkRm9udFVzZShmb250KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OnJlY29yZEltYWdlQnVmZmVyVXNlKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikKK3sKKyAgICBt
X3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5yZWNvcmRJbWFnZUJ1ZmZlclVzZShpbWFnZUJ1ZmZl
cik7Cit9CisKK2Jvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojppc0NhY2hlZChjb25z
dCBJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIGNvbnN0Cit7CisgICAgaWYgKGF1dG8gY2FjaGVk
SW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZWRJbWFnZUJ1ZmZl
cihpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkpIHsKKyAgICAgICAg
QVNTRVJUKGNhY2hlZEltYWdlQnVmZmVyID09ICZpbWFnZUJ1ZmZlcik7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmgKaW5kZXggMjM5NGZmNWFkYzRkNzgzYjhhZmQyZGMxMzIxZjJmNTQ3
NWEyMTI4NS4uYWEwMjNkY2YyZGI1YTMzYWFiMTNmNjliYTAxNjI5MmQzMDVhZjc2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC04OCw2ICs4OCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRlc3Ryb3lHZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeSgpOwogCiAgICAg
dm9pZCBjcmVhdGVSZW1vdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOworICAg
IGJvb2wgaXNDYWNoZWQoY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBjb25zdDsKICAgICAg
ICAgCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKQEAgLTEyNCw2ICsxMjUsMjIg
QEAgcHVibGljOgogCiAgICAgYm9vbCBpc0dQVVByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKCkgY29u
c3QgeyByZXR1cm4gIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247IH0KIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+CisgICAgdm9pZCBzZW5kVG9TdHJlYW0oVCYmIG1lc3NhZ2Us
IE9iamVjdElkZW50aWZpZXI8VT4gaWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIC8vIEZJWE1F
OiBOb3QgeWV0IGltcGxlbWVudGVkLgorICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
CisgICAgdm9pZCBzZW5kVG9TdHJlYW0oVCYmIG1lc3NhZ2UpCisgICAgeworICAgICAgICBzZW5k
VG9TdHJlYW0oV1RGTW92ZShtZXNzYWdlKSwgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7
CisgICAgfQorCisgICAgdm9pZCByZWNvcmROYXRpdmVJbWFnZVVzZShXZWJDb3JlOjpOYXRpdmVJ
bWFnZSYpOworICAgIHZvaWQgcmVjb3JkRm9udFVzZShXZWJDb3JlOjpGb250Jik7CisgICAgdm9p
ZCByZWNvcmRJbWFnZUJ1ZmZlclVzZShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOworCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShXZWJQYWdlJik7CiAK
</data>
<flag name="commit-queue"
          id="464787"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440740</attachid>
            <date>2021-10-10 16:34:55 -0700</date>
            <delta_ts>2021-10-10 17:51:15 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231484-20211010163454.patch</filename>
            <type>text/plain</type>
            <size>99089</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc5NWE0MTUzNjlmYjMy
NGEwOGI4ZWNmMWQ0YjAwZmQwZTcyYzk4Ni4uNjkyNWUxNTU2N2MyZDQ3ZTlhNGY1ZWFmMDZmN2Zk
ZDg0NTRjYmIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEwLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ4
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBX
ZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmg6CisKKyAgICAgICAgQWRkIGRlZmF1bHQgY29uc3RydWN0b3JzIGZv
ciBhIGNvdXBsZSBvZiBkaXNwbGF5IGxpc3QgaXRlbXMgc28gdGhhdCB0aGV5IGNhbiBiZSBlbmNv
ZGVkIGFzIElQQyBhcmd1bWVudHMgdXNpbmcKKyAgICAgICAgU2ltcGxlQXJndW1lbnRDb2Rlci4K
KwogMjAyMS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW0dQVSBQcm9jZXNzXSBzdXBwb3J0IHJlbmRlcmluZyBBcHBsZSBQYXkgbG9nb3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggYzE5OWZmOTZlYmU3MGE1YzQyMTlhNmY3YWQ4NDk2MWQ3NWMwOTNjZi4uNWJiOGRlNmQ0
NmIxYmEwZDRkNjQyZTA0YTZmYTZiNDZiMmQxY2UyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTUg
QEAKKzIwMjEtMTAtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgSW50cm9kdWNlIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eSBhbmQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIHR3byBuZXcgY2xhc3NlcyB0aGF0IGhvdXNlIG1vc3Qg
b2YgdGhlIGxvZ2ljIGZvciBwcm9wYWdhdGluZyBkaXNwbGF5IGxpc3QgaXRlbXMgZnJvbSB0aGUg
d2ViIGNvbnRlbnQKKyAgICAgICAgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eSBpcyBhIHN1YmNsYXNzIG9mIERpc3BsYXlMaXN0OjpSZWNv
cmRlciB0aGF0IHJlY29yZHMKKyAgICAgICAgZWFjaCBpdGVtIGJ5IHNlbmRpbmcgaXQgdG8gdGhl
IEdQVSBwcm9jZXNzIHRocm91Z2ggYSBzdHJlYW0gY29ubmVjdGlvbiwgd2hpY2ggd2lsbCBiZSBh
ZGRlZCB0bworICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgaW4gYSBzdWJzZXF1
ZW50IHBhdGNoLiBUaGUgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5IHdpbGwgYmUgbWFu
YWdlZCBieQorICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5IGluIHRoZSB3ZWIgcHJvY2Vz
cy4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBhY3RzIGFzIHRoZSBzdHJlYW1pbmcgSVBDIGRl
c3RpbmF0aW9uIGluCisgICAgICAgIHRoZSBHUFUgcHJvY2VzcywgYW5kIGhhbmRsZXMgdGhlIGlu
Y29taW5nIGRpc3BsYXkgbGlzdCBpdGVtcyBieSBhcHBseWluZyB0aGVtIHRvIHRoZSBwbGF0Zm9y
bSBncmFwaGljcyBjb250ZXh0LgorCisgICAgICAgIEZvciBtb3N0IG9mIHRoZXNlIGRpc3BsYXkg
bGlzdCBpdGVtcywgd2UgY2FuIHByb3BhZ2F0ZSB0aGVtIHRvIHRoZSBHUFUgcHJvY2VzcyBieSBz
ZW5kaW5nIGVhY2ggZGlzcGxheSBsaXN0CisgICAgICAgIGl0ZW0ncyBjb25zdHJ1Y3RvciBhcmd1
bWVudHMgYXMgc2VwYXJhdGUgSVBDIGFyZ3VtZW50cy4gSW4gYSBmdXR1cmUgcGF0Y2gsIHdlIHNo
b3VsZCBhZGQgc3VwcG9ydCBmb3IgZW5jb2RpbmcKKyAgICAgICAgdGhlIGZvbGxvd2luZyBkaXNw
bGF5IGxpc3QgaXRlbXMgaW4gdGhlIHNhbWUgd2F5OgorCisgICAgICAgIC0gU2V0SW5saW5lRmls
bENvbG9yCisgICAgICAgIC0gU2V0SW5saW5lU3Ryb2tlQ29sb3IKKyAgICAgICAgLSBTZXRTdGF0
ZQorICAgICAgICAtIFNldExpbmVEYXNoCisgICAgICAgIC0gRHJhd0dseXBocworICAgICAgICAt
IERyYXdMaW5lc0ZvclRleHQKKyAgICAgICAgLSBGaWxsUmVjdFdpdGhHcmFkaWVudAorCisgICAg
ICAgIEZvciBub3csIHRoZSBhYm92ZSBkaXNwbGF5IGxpc3QgaXRlbXMgYXJlIGVuY29kZWQgYW5k
IGRlY29kZWQgYXMgd2hvbGUgaXRlbXMuIFdoaWxlIHRoZXJlJ3Mgbm8gcHJhY3RpY2FsCisgICAg
ICAgIGRpc2FkdmFudGFnZSB0byBpbXBsZW1lbnRpbmcgaXQgdGhpcyB3YXksIGl0IHdvdWxkIGJl
IG5pY2UgdG8gbWFrZSBpdCBjb25zaXN0ZW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cmVzb3VyY2VDYWNoZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdG9wTGlzdGVuaW5n
Rm9ySVBDKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2F2
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnJlc3RvcmUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjp0cmFuc2xhdGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpyb3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzY2FsZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldENUTSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNvbmNhdGVuYXRlQ1RNKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0SW5saW5lRmlsbENv
bG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0SW5s
aW5lU3Ryb2tlQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpzZXRTdHJva2VUaGlja25lc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzZXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OnNldExpbmVDYXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzZXRMaW5lRGFzaCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OnNldExpbmVKb2luKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6c2V0TWl0ZXJMaW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsZWFyU2hhZG93KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBPdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpjbGlwVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBPdXRUb1BhdGgpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGlwUGF0aCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZW5kQ2xpcFRvRHJh
d2luZ0NvbW1hbmRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6ZHJhd0dseXBocyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmVuZFRyYW5zcGFyZW5jeUxheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1JlY3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3TGluZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdMaW5lc0ZvclRleHQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3RG90c0Zv
ckRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6ZHJhd0VsbGlwc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpkcmF3UGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OmRyYXdGb2N1c1JpbmdQYXRoKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6ZHJhd0ZvY3VzUmluZ1JlY3RzKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUmVjdFdpdGhDb2xvcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxSZWN0V2l0aEdyYWRpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbENvbXBvc2l0ZWRS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJv
dW5kZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpmaWxsTGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OmZpbGxBcmMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpmaWxsUXVhZEN1cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6ZmlsbEJlemllckN1cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsRWxsaXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmdldFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cHV0UGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwYWludEZyYW1lRm9yTWVkaWEpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tlTGluZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZUFyYyk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZVF1YWRDdXJ2
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZUJl
emllckN1cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OnN0cm9rZUVsbGlwc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpjbGVhclJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjphcHBseVN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjphcHBseUZpbGxQYXR0ZXJuKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6YXBwbHlEZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZsdXNoQ29udGV4dCk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpoYW5kbGVJdGVtKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
bWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OnBlcmZvcm1XaXRoTWVkaWFQbGF5ZXJPbk1haW5UaHJlYWQpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorCisgICAgICAgIEFk
ZCBoZWxwZXIgbWV0aG9kcyB0byBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHRoYXQgYXJlIGNhbGxl
ZCBmcm9tIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaDoKKworICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGVuY29k
ZSBhbmQgZGVjb2RlIFNldElubGluZUZpbGxDb2xvciBhbmQgU2V0SW5saW5lU3Ryb2tlQ29sb3Ig
dXNpbmcgc2ltcGxlIGFyZ3VtZW50IGNvZGVyLgorCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6bV9yZW5k
ZXJpbmdCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpnZXRQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cHV0UGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNhbkRyYXdJbWFnZUJ1ZmZlciBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVuZGVyaW5n
TW9kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkU2F2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkUmVzdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkVHJhbnNsYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSb3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNjYWxlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRD
VE0pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZENvbmNhdGVuYXRlQ1RNKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpyZWNvcmRTZXRJbmxpbmVGaWxsQ29sb3IpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldElubGluZVN0cm9rZUNv
bG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojpy
ZWNvcmRTZXRTdHJva2VUaGlja25lc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRMaW5lQ2FwKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRMaW5lRGFz
aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkU2V0TGluZUpvaW4pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OnJlY29yZFNldE1pdGVyTGltaXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENsZWFyU2hhZG93KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwT3V0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNv
cmRDbGlwVG9JbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xpcE91dFRvUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xpcFBhdGgpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEJlZ2luQ2xpcFRv
RHJhd2luZ0NvbW1hbmRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdHbHlwaHMpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERy
YXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkRHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3UGF0dGVybik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQmVnaW5UcmFuc3Bh
cmVuY3lMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkRW5kVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdSZWN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3TGluZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJh
d0xpbmVzRm9yVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0VsbGlwc2UpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERy
YXdQYXRoKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmREcmF3Rm9jdXNSaW5nUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0ZvY3VzUmluZ1JlY3RzKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
RmlsbFJlY3RXaXRoQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZEZpbGxSZWN0V2l0aEdyYWRpZW50KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsQ29tcG9zaXRlZFJl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZEZpbGxSb3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxMaW5lKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRG
aWxsQXJjKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmRGaWxsUXVhZEN1cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsQmV6aWVyQ3VydmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxQYXRoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsRWxs
aXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkR2V0UGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZFB1dFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRQYWludEZyYW1lRm9yTWVkaWEp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZFN0cm9rZVJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZFN0cm9rZUxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZUFyYyk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlUXVhZEN1cnZlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJv
a2VCZXppZXJDdXJ2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkU3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlRWxsaXBzZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xlYXJSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRBcHBs
eVN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OnJlY29yZEFwcGx5RmlsbFBhdHRlcm4pOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEFwcGx5RGV2aWNlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZFJlc291cmNlVXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpmbHVzaENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OmNyZWF0ZU5lc3RlZENvbnRleHQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojp+UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZXNldE5lZWRzRmx1c2gpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6Om5lZWRzRmx1c2ggY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnNlbmQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXR0
ZXJuKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OnJlY29yZE5hdGl2ZUltYWdlVXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpyZWNvcmRGb250VXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWNvcmRJbWFnZUJ1ZmZlclVzZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6aXNDYWNoZWQgY29uc3QpOgor
CisgICAgICAgIEFkZCBoZWxwZXIgbWV0aG9kcyB0byBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkgdGhhdCBhcmUgY2FsbGVkIGZyb20gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Lgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
c2VuZFRvU3RyZWFtKToKKwogMjAyMS0xMC0wOCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4K
IAogICAgICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYSB3YXkgZm9yIF9XS0lu
c3BlY3RvckV4dGVuc2lvbiBjbGllbnRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGluc3BlY3Rl
ZCBwYWdlIG5hdmlnYXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuaAppbmRleCBkNmUyNTY3N2JlZjcxNWJhNDljZjA0MWUxNGM5ZWM4
MDFjNWM5N2MzLi44MzA4N2NlNjkwNGM1YmQxMjE5N2E0OWE2OGQxMTVlYThhNWZmY2Q3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aApAQCAtNDMwLDcgKzQzMCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURy
YXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1h
Z2UgfSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd0lt
YWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgSW1hZ2VPcmllbnRhdGlv
bjo6RnJvbUltYWdlIH0pOwogCi0gICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdl
Rm9yQ2FudmFzKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxv
YXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgRGVzdGluYXRpb25D
b2xvclNwYWNlIGNhbnZhc0NvbG9yU3BhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZUZvckNhbnZhcyhJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjYW52YXNDb2xvclNwYWNlKTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdl
KEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYg
c291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxv
YXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxl
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggMTM5NzgwMWI0ZDhlMGZmY2Q2
OTQ2N2NhMTQyMjBkMDA1M2NmMTVlZS4uODE2MGRkZjBhMTljMzMwZGNlNWQzMjE2M2FkYTgyMzZl
NWE0MTQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENyZWF0ZSBhbiBpbWFn
ZSBidWZmZXIgY29tcGF0aWJsZSB3aXRoIHRoZSBjb250ZXh0LCB3aXRoIHN1aXRhYmxlIHJlc29s
dXRpb24gZm9yIGRyYXdpbmcgaW50byB0aGUgYnVmZmVyIGFuZCB0aGVuIGludG8gdGhpcyBjb250
ZXh0LgogICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVCdWZm
ZXIoY29uc3QgRmxvYXRTaXplJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7Ci0gICAgc3RhdGlj
IFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNp
emUmLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBjb25zdCBHcmFwaGljc0NvbnRleHQm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVD
b21wYXRpYmxlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JT
cGFjZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBjb25zdCBHcmFwaGlj
c0NvbnRleHQmKTsKIAogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZCB3aGVuIGNsYW1w
aW5nIHRoZSBJbWFnZUJ1ZmZlciB3aGljaCBpcyBjcmVhdGVkIGZvciBmaWx0ZXIsIG1hc2tlciBv
ciBjbGlwcGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggMDExYjQxZDli
MWI1Mzk3MDMzZmM5MGY2ZGQyYmJlMGI1ZjBmYmQyZS4uMTFmZWNjYzAwYzEzMGYzYTE0ZjMzZDk1
ODQ2YzE4MjI1OTJkMTU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0x
ODgsNiArMTg4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGlu
ZUl0ZW0gPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0g
ZmFsc2U7CiAKKyAgICBTZXRJbmxpbmVGaWxsQ29sb3IoKSA9IGRlZmF1bHQ7CiAgICAgU2V0SW5s
aW5lRmlsbENvbG9yKFNSR0JBPHVpbnQ4X3Q+IGNvbG9yRGF0YSkKICAgICAgICAgOiBtX2NvbG9y
RGF0YShjb2xvckRhdGEpCiAgICAgewpAQCAtMjA2LDYgKzIwNyw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKICAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOwogCisgICAgU2V0SW5saW5lU3Ryb2tl
Q29sb3IoKSA9IGRlZmF1bHQ7CiAgICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWludDhf
dD4gY29sb3JEYXRhKQogICAgICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dAppbmRleCAzMTUyMTgzMGYzYWE3NzI4ODI3MTA4ZGRlZmUxYmRkZTdmOTFk
MzE0Li44MTNjYjk1ZTkyNThlOTU1M2I5YWRmOTAzMjcyMjU1ZDY4YjNlZmNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKQEAgLTEyNyw2ICsxMjcsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzCiAKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIKICAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
CiAgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA3NGZmYTM1
MmU5ZGUwMGNiODY2ZjkwMmM2ZWFiZGVhYWRhNjljZjg2Li5lZGZmYTY2MThjYjQ0ZmQ0MTNkNzg2
YTYwOTMwMzBkMzgyODU4MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0yMCw2ICsyMCw4IEBAICQoSkFWQVNDUklQVENPUkVfUFJJVkFU
RV9IRUFERVJTX0RJUikvbW9kZWxzLnB5CiAkKEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVS
U19ESVIpL3h4ZC5wbAogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHQubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxl
LldlYktpdC5HUFVQcm9jZXNzLnNiLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBmNGY4YWMyNTdkMTU1ZTFmZTZmNjE2N2FlNDNjOWNl
NTc1YTFlYmU5Li5hMTY5Yjg4NDUzNjQ5MTJhZjcyN2M1YWFkODAxZmNjNTM0YjllNzFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTIw
MywxMiArMjAzLDE4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUNETVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VzUmVw
bGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVHcmFwaGljc0NvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFw
aGljc0NvbnRleHRNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjMzE0NzQ2YzJj
ZTgwNWZmZGI5OTAyOTFkYjg2N2IyOWZkMmJlYTEyLi5kOWY0Njc5ODI0YTY3MmJjODNiNDNlMzYw
MGJlYTk0MmYwZTAxNmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNDcsNiAr
MjQ3LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkgXAogCVBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2VzcyBcCiAJR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXIgXAogCUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZCBcCiAJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TCBcCiAJR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliM2VkZTBiNzUzN2Y2MzQ3NDU5MmVmZDEy
MmE3ZjRiMzFmNzY5YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTAsMCArMSw0NjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlci5oIgorCisjaW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ck1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBy
ZW5kZXJpbmdCYWNrZW5kKQorICAgIDogbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikKKyAgICAs
IG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAgICAsIG1f
cmVuZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQoreworfQorCitSZW1vdGVSZXNvdXJj
ZUNhY2hlJiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpyZXNvdXJjZUNhY2hlKCkKK3sKKyAg
ICByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5kLT5yZW1vdGVSZXNvdXJjZUNhY2hlKCk7Cit9CisK
K0dyYXBoaWNzQ29udGV4dCYgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd2luZ0NvbnRl
eHQoKQoreworICAgIHJldHVybiBtX21hc2tJbWFnZUJ1ZmZlciA/IG1fbWFza0ltYWdlQnVmZmVy
LT5jb250ZXh0KCkgOiBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQoreworICAgIEFTU0VS
VCghbV9pc0xpc3RlbmluZ0ZvcklQQyk7CisgICAgbV9pc0xpc3RlbmluZ0ZvcklQQyA9IHRydWU7
CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZCB5ZXQuCit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6c3RvcExpc3RlbmluZ0ZvcklQQygpCit7CisgICAgaWYgKCFtX2lz
TGlzdGVuaW5nRm9ySVBDKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogTm90IGlt
cGxlbWVudGVkIHlldC4KKyAgICBtX2lzTGlzdGVuaW5nRm9ySVBDID0gZmFsc2U7Cit9CisKK3Zv
aWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2F2ZSgpCit7CisgICAgaGFuZGxlSXRlbShE
aXNwbGF5TGlzdDo6U2F2ZSgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpyZXN0b3JlKCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpSZXN0b3JlKCkpOwor
fQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnRyYW5zbGF0ZShmbG9hdCB4LCBm
bG9hdCB5KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlRyYW5zbGF0ZSh4LCB5KSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cm90YXRlKGZsb2F0IGFuZ2xl
KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlJvdGF0ZShhbmdsZSkpOworfQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYgc2Nh
bGUpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U2NhbGUoc2NhbGUpKTsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRDVE0oY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBjdG0pCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U2V0Q1RNKGN0bSkpOwor
fQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNvbmNhdGVuYXRlQ1RNKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgY3RtKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkNv
bmNhdGVuYXRlQ1RNKGN0bSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OnNldElubGluZUZpbGxDb2xvcihEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yJiYgaXRl
bSkKK3sKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSkpOworfQorCit2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OnNldElubGluZVN0cm9rZUNvbG9yKERpc3BsYXlMaXN0OjpTZXRJ
bmxpbmVTdHJva2VDb2xvciYmIGl0ZW0pCit7CisgICAgaGFuZGxlSXRlbShXVEZNb3ZlKGl0ZW0p
KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRTdHJva2VUaGlja25l
c3MoZmxvYXQgdGhpY2tuZXNzKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlNldFN0
cm9rZVRoaWNrbmVzcyh0aGlja25lc3MpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpzZXRTdGF0ZShEaXNwbGF5TGlzdDo6U2V0U3RhdGUmJiBpdGVtKQoreworICAgIGF1
dG8gc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllciA9IGl0ZW0uc3Ryb2tlUGF0dGVybkltYWdl
SWRlbnRpZmllcigpOworICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gc3Ryb2tlUGF0dGVybkltYWdl
OworICAgIGlmIChzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKQorICAgICAgICBzdHJva2VQ
YXR0ZXJuSW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkTmF0aXZlSW1hZ2Uoc3Ryb2tlUGF0
dGVybkltYWdlSWRlbnRpZmllcik7CisKKyAgICBhdXRvIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlm
aWVyID0gaXRlbS5maWxsUGF0dGVybkltYWdlSWRlbnRpZmllcigpOworICAgIFJlZlB0cjxOYXRp
dmVJbWFnZT4gZmlsbFBhdHRlcm5JbWFnZTsKKyAgICBpZiAoZmlsbFBhdHRlcm5JbWFnZUlkZW50
aWZpZXIpCisgICAgICAgIGZpbGxQYXR0ZXJuSW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVk
TmF0aXZlSW1hZ2UoZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIpOworCisgICAgaGFuZGxlSXRl
bShXVEZNb3ZlKGl0ZW0pLCBzdHJva2VQYXR0ZXJuSW1hZ2UuZ2V0KCksIGZpbGxQYXR0ZXJuSW1h
Z2UuZ2V0KCkpOworCisgICAgaWYgKHN0cm9rZVBhdHRlcm5JbWFnZSkKKyAgICAgICAgcmVzb3Vy
Y2VDYWNoZSgpLnJlY29yZFJlc291cmNlVXNlKHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIp
OworCisgICAgaWYgKGZpbGxQYXR0ZXJuSW1hZ2UpCisgICAgICAgIHJlc291cmNlQ2FjaGUoKS5y
ZWNvcmRSZXNvdXJjZVVzZShmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TGluZUNhcChMaW5lQ2FwIGxpbmVDYXApCit7
CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U2V0TGluZUNhcChsaW5lQ2FwKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TGluZURhc2goRGlzcGxheUxpc3Q6
OlNldExpbmVEYXNoJiYgaXRlbSkKK3sKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSkpOwor
fQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldExpbmVKb2luKExpbmVKb2lu
IGxpbmVKb2luKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlNldExpbmVKb2luKGxp
bmVKb2luKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TWl0ZXJM
aW1pdChmbG9hdCBsaW1pdCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTZXRNaXRl
ckxpbWl0KGxpbWl0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xl
YXJTaGFkb3coKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkNsZWFyU2hhZG93KCkp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXAoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkNsaXAocmVjdCkpOwor
fQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBPdXQoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkNsaXBPdXQocmVjdCkp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBUb0ltYWdlQnVmZmVy
KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0KQoreworICAgIFJl
ZlB0ciBpbWFnZUJ1ZmZlciA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWRJbWFnZUJ1ZmZlcihpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlmICghaW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBoYW5kbGVJ
dGVtKERpc3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIs
IGRlc3RpbmF0aW9uUmVjdCksICppbWFnZUJ1ZmZlcik7CisgICAgcmVzb3VyY2VDYWNoZSgpLnJl
Y29yZFJlc291cmNlVXNlKGltYWdlQnVmZmVySWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcE91dFRvUGF0aChjb25zdCBQYXRoJiBwYXRoKQorewor
ICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkNsaXBPdXRUb1BhdGgocGF0aCkpOworfQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBQYXRoKGNvbnN0IFBhdGgmIHBhdGgs
IFdpbmRSdWxlIHJ1bGUpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xpcFBhdGgo
cGF0aCwgcnVsZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmJlZ2lu
Q2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSkKK3sKKyAgICBtX21hc2tJbWFnZUJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGRlc3RpbmF0aW9uLnNp
emUoKSwgY29sb3JTcGFjZSwgZHJhd2luZ0NvbnRleHQoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24pCit7CisgICAgYXV0byBtYXNrSW1hZ2VCdWZmZXIgPSBzdGQ6OmV4Y2hh
bmdlKG1fbWFza0ltYWdlQnVmZmVyLCB7IH0pOworICAgIGlmICghbWFza0ltYWdlQnVmZmVyKSB7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZHJhd2luZ0NvbnRleHQoKS5jbGlwVG9JbWFnZUJ1ZmZlcigqbWFza0ltYWdlQnVmZmVy
LCBkZXN0aW5hdGlvbik7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJh
d0dseXBocyhEaXNwbGF5TGlzdDo6RHJhd0dseXBocyYmIGl0ZW0pCit7CisgICAgYXV0byBmb250
SWRlbnRpZmllciA9IGl0ZW0uZm9udElkZW50aWZpZXIoKTsKKyAgICBSZWZQdHIgZm9udCA9IHJl
c291cmNlQ2FjaGUoKS5jYWNoZWRGb250KGZvbnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWZvbnQp
IHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSksICpmb250KTsKKyAgICByZXNvdXJjZUNh
Y2hlKCkucmVjb3JkUmVzb3VyY2VVc2UoZm9udElkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdJbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKK3sKKyAgICBSZWZQdHIgaW1hZ2VCdWZmZXIgPSByZXNvdXJjZUNhY2hl
KCkuY2FjaGVkSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIWlt
YWdlQnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVy
KGltYWdlQnVmZmVySWRlbnRpZmllciwgZGVzdGluYXRpb25SZWN0LCBzcmNSZWN0LCBvcHRpb25z
KSwgKmltYWdlQnVmZmVyKTsKKyAgICByZXNvdXJjZUNhY2hlKCkucmVjb3JkUmVzb3VyY2VVc2Uo
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpkcmF3TmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRl
bnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCit7CisgICAgUmVmUHRyIGltYWdlID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hl
ZE5hdGl2ZUltYWdlKGltYWdlSWRlbnRpZmllcik7CisgICAgaWYgKCFpbWFnZSkgeworICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhh
bmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZShpbWFnZUlkZW50aWZpZXIsIGlt
YWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpLCAqaW1hZ2UpOworICAgIHJlc291
cmNlQ2FjaGUoKS5yZWNvcmRSZXNvdXJjZVVzZShpbWFnZUlkZW50aWZpZXIpOworfQorCit2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNv
bnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCit7CisgICAgUmVmUHRyIGltYWdlID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hlZE5hdGl2ZUlt
YWdlKGltYWdlSWRlbnRpZmllcik7CisgICAgaWYgKCFpbWFnZSkgeworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhhbmRsZUl0ZW0o
RGlzcGxheUxpc3Q6OkRyYXdQYXR0ZXJuKGltYWdlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0
UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpLCAqaW1h
Z2UpOworICAgIHJlc291cmNlQ2FjaGUoKS5yZWNvcmRSZXNvdXJjZVVzZShpbWFnZUlkZW50aWZp
ZXIpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmJlZ2luVHJhbnNwYXJl
bmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpC
ZWdpblRyYW5zcGFyZW5jeUxheWVyKG9wYWNpdHkpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjplbmRUcmFuc3BhcmVuY3lMYXllcigpCit7CisgICAgaGFuZGxlSXRlbShE
aXNwbGF5TGlzdDo6RW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBi
b3JkZXJUaGlja25lc3MpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd1JlY3Qo
cmVjdCwgYm9yZGVyVGhpY2tuZXNzKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6ZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50
JiBwb2ludDIpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd0xpbmUocG9pbnQx
LCBwb2ludDIpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3TGlu
ZXNGb3JUZXh0KERpc3BsYXlMaXN0OjpEcmF3TGluZXNGb3JUZXh0JiYgaXRlbSkKK3sKKyAgICBo
YW5kbGVJdGVtKFdURk1vdmUoaXRlbSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBj
b25zdCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSYgc3R5bGUpCit7CisgICAgaGFuZGxlSXRlbShE
aXNwbGF5TGlzdDo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihyZWN0LCBzdHlsZSkpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdFbGxpcHNlKGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3RWxsaXBzZShy
ZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdGgoY29u
c3QgUGF0aCYgcGF0aCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3UGF0aChw
YXRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZvY3VzUmlu
Z1BhdGgoY29uc3QgUGF0aCYgcGF0aCwgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3Qg
Q29sb3ImIGNvbG9yKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdGb2N1c1Jp
bmdQYXRoKHBhdGgsIHdpZHRoLCBvZmZzZXQsIGNvbG9yKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZvY3VzUmluZ1JlY3RzKGNvbnN0IFZlY3RvcjxGbG9hdFJl
Y3Q+JiByZWN0cywgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9y
KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdGb2N1c1JpbmdSZWN0cyhyZWN0
cywgd2lkdGgsIG9mZnNldCwgY29sb3IpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaGFuZGxlSXRl
bShEaXNwbGF5TGlzdDo6RmlsbFJlY3QocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OmZpbGxSZWN0V2l0aENvbG9yKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29u
c3QgQ29sb3ImIGNvbG9yKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxSZWN0
V2l0aENvbG9yKHJlY3QsIGNvbG9yKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6ZmlsbFJlY3RXaXRoR3JhZGllbnQoRGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRp
ZW50JiYgaXRlbSkKK3sKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSkpOworfQorCit2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxDb21wb3NpdGVkUmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJs
ZW5kTW9kZSBibGVuZE1vZGUpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbENv
bXBvc2l0ZWRSZWN0KHJlY3QsIGNvbG9yLCBvcCwgYmxlbmRNb2RlKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0Um91bmRl
ZFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3sK
KyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3QocmVjdCwgY29sb3Is
IGJsZW5kTW9kZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSb3Vu
ZGVkUmVjdCYgcm91bmRlZEhvbGVSZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgaGFu
ZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGUocmVjdCwgcm91bmRl
ZEhvbGVSZWN0LCBjb2xvcikpOworfQorCisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbExpbmUoY29uc3QgTGluZURhdGEm
IGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbExpbmUoZGF0YSkpOwor
fQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxBcmMoY29uc3QgQXJjRGF0
YSYgZGF0YSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsQXJjKGRhdGEpKTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUXVhZEN1cnZlKGNvbnN0
IFF1YWRDdXJ2ZURhdGEmIGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Rmls
bFF1YWRDdXJ2ZShkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
ZmlsbEJlemllckN1cnZlKGNvbnN0IEJlemllckN1cnZlRGF0YSYgZGF0YSkKK3sKKyAgICBoYW5k
bGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsQmV6aWVyQ3VydmUoZGF0YSkpOworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6ZmlsbFBhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3Bs
YXlMaXN0OjpGaWxsUGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6ZmlsbEVsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIGhhbmRsZUl0
ZW0oRGlzcGxheUxpc3Q6OkZpbGxFbGxpcHNlKHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpnZXRQaXhlbEJ1ZmZlcihjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBj
b25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0KQoreworICAgIG1fcmVuZGVyaW5n
QmFja2VuZC0+cG9wdWxhdGVHZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeShtX2ltYWdlQnVmZmVy
LT5nZXRQaXhlbEJ1ZmZlcihvdXRwdXRGb3JtYXQsIHNyY1JlY3QpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcihjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxC
dWZmZXIsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkKK3sKKyAgICBtX2ltYWdl
QnVmZmVyLT5wdXRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBk
ZXN0Rm9ybWF0KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwYWludEZy
YW1lRm9yTWVkaWEoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24pCit7CisgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5wZXJmb3JtV2l0
aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKGlkZW50aWZpZXIsIFtpbWFnZUJ1ZmZlciA9IG1faW1h
Z2VCdWZmZXIuY29weVJlZigpLCBkZXN0aW5hdGlvbl0oTWVkaWFQbGF5ZXImIHBsYXllcikgewor
ICAgICAgICAvLyBJdCBpcyBjdXJyZW50bHkgbm90IHNhZmUgdG8gY2FsbCBwYWludEZyYW1lRm9y
TWVkaWEoKSBvZmYgdGhlIG1haW4gdGhyZWFkLgorICAgICAgICBpbWFnZUJ1ZmZlci0+Y29udGV4
dCgpLnBhaW50RnJhbWVGb3JNZWRpYShwbGF5ZXIsIGRlc3RpbmF0aW9uKTsKKyAgICB9KTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCwgZmxvYXQgbGluZVdpZHRoKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxp
c3Q6OlN0cm9rZVJlY3QocmVjdCwgbGluZVdpZHRoKSk7Cit9CisKKyNpZiBFTkFCTEUoSU5MSU5F
X1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VMaW5l
KGNvbnN0IExpbmVEYXRhJiBkYXRhKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlN0
cm9rZUxpbmUoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0
cm9rZUFyYyhjb25zdCBBcmNEYXRhJiBkYXRhKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxp
c3Q6OlN0cm9rZUFyYyhkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6c3Ryb2tlUXVhZEN1cnZlKGNvbnN0IFF1YWRDdXJ2ZURhdGEmIGRhdGEpCit7CisgICAgaGFu
ZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlUXVhZEN1cnZlKGRhdGEpKTsKK30KKwordm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VCZXppZXJDdXJ2ZShjb25zdCBCZXppZXJD
dXJ2ZURhdGEmIGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlQmV6
aWVyQ3VydmUoZGF0YSkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOTElORV9QQVRIX0RBVEEp
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tlUGF0aChjb25zdCBQYXRo
JiBwYXRoKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlN0cm9rZVBhdGgocGF0aCkp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlN0cm9r
ZUVsbGlwc2UocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNs
ZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5
TGlzdDo6Q2xlYXJSZWN0KHJlY3QpKTsKK30KKworI2lmIFVTRShDRykKKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjphcHBseVN0cm9rZVBhdHRlcm4oKQoreworICAgIGhhbmRsZUl0
ZW0oRGlzcGxheUxpc3Q6OkFwcGx5U3Ryb2tlUGF0dGVybigpKTsKK30KKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjphcHBseUZpbGxQYXR0ZXJuKCkKK3sKKyAgICBoYW5kbGVJdGVt
KERpc3BsYXlMaXN0OjpBcHBseUZpbGxQYXR0ZXJuKCkpOworfQorCisjZW5kaWYgLy8gVVNFKENH
KQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmFwcGx5RGV2aWNlU2NhbGVGYWN0
b3IoZmxvYXQgc2NhbGVGYWN0b3IpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6QXBw
bHlEZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3RvcikpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OmZsdXNoQ29udGV4dChHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX2ltYWdlQnVmZmVyLT5mbHVzaENvbnRleHQoKTsKKyAg
ICBtX3JlbmRlcmluZ0JhY2tlbmQtPmRpZEZsdXNoKGlkZW50aWZpZXIsIG1faW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMGY3ODUxZGZhYjkxZjE4ZDQxNDFlOTE3MDU0NDhjY2FkOTY2
YTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIlF1YWxp
ZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaCIKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNs
dWRlICJTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5
TGlzdEl0ZW1zLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDsKK2NsYXNzIFJlbW90ZVJlc291cmNlQ2FjaGU7CisKK2NsYXNzIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXIgOiBwdWJsaWMgSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIsIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyPiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyPiBjcmVhdGUoV2ViQ29yZTo6
SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5k
ZXJpbmdCYWNrZW5kKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcihpbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBy
ZW5kZXJpbmdCYWNrZW5kKSk7CisgICAgfQorCisgICAgdm9pZCBzdGFydExpc3RlbmluZ0ZvcklQ
QygpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0ZvcklQQygpOworCisgICAgdm9pZCBzYXZlKCk7
CisgICAgdm9pZCByZXN0b3JlKCk7CisgICAgdm9pZCB0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQg
eSk7CisgICAgdm9pZCByb3RhdGUoZmxvYXQgYW5nbGUpOworICAgIHZvaWQgc2NhbGUoY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBzY2FsZSk7CisgICAgdm9pZCBzZXRDVE0oY29uc3QgV2ViQ29y
ZTo6QWZmaW5lVHJhbnNmb3JtJik7CisgICAgdm9pZCBjb25jYXRlbmF0ZUNUTShjb25zdCBXZWJD
b3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKKyAgICB2b2lkIHNldElubGluZUZpbGxDb2xvcihXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yJiYpOworICAgIHZvaWQgc2V0SW5s
aW5lU3Ryb2tlQ29sb3IoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9y
JiYpOworICAgIHZvaWQgc2V0U3Ryb2tlVGhpY2tuZXNzKGZsb2F0KTsKKyAgICB2b2lkIHNldFN0
YXRlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZSYmKTsKKyAgICB2b2lkIHNldExpbmVD
YXAoV2ViQ29yZTo6TGluZUNhcCk7CisgICAgdm9pZCBzZXRMaW5lRGFzaChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U2V0TGluZURhc2gmJik7CisgICAgdm9pZCBzZXRMaW5lSm9pbihXZWJDb3JlOjpM
aW5lSm9pbik7CisgICAgdm9pZCBzZXRNaXRlckxpbWl0KGZsb2F0KTsKKyAgICB2b2lkIGNsZWFy
U2hhZG93KCk7CisgICAgdm9pZCBjbGlwKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworICAg
IHZvaWQgY2xpcE91dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICB2b2lkIGNsaXBU
b0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QpOworICAgIHZvaWQgY2xpcE91dFRv
UGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJik7CisgICAgdm9pZCBjbGlwUGF0aChjb25zdCBXZWJD
b3JlOjpQYXRoJiwgV2ViQ29yZTo6V2luZFJ1bGUpOworICAgIHZvaWQgYmVnaW5DbGlwVG9EcmF3
aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3Qg
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJik7CisgICAgdm9pZCBlbmRDbGlwVG9EcmF3
aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbik7CisgICAg
dm9pZCBkcmF3R2x5cGhzKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzJiYpOworICAg
IHZvaWQgZHJhd0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGlu
YXRpb25SZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNv
cmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7CisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpB
ZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9u
cyYpOworICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsKKyAg
ICB2b2lkIGVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CisgICAgdm9pZCBkcmF3UmVjdChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCBib3JkZXJUaGlja25lc3MpOworICAgIHZvaWQgZHJh
d0xpbmUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBwb2ludDIpOworICAgIHZvaWQgZHJhd0xpbmVzRm9yVGV4dChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd0xpbmVzRm9yVGV4dCYmKTsKKyAgICB2b2lkIGRyYXdEb3RzRm9yRG9j
dW1lbnRNYXJrZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RG9j
dW1lbnRNYXJrZXJMaW5lU3R5bGUmKTsKKyAgICB2b2lkIGRyYXdFbGxpcHNlKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpOworICAgIHZvaWQgZHJhd1BhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYp
OworICAgIHZvaWQgZHJhd0ZvY3VzUmluZ1BhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYsIGZsb2F0
IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBk
cmF3Rm9jdXNSaW5nUmVjdHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4mIHJlY3Rz
LCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAg
IHZvaWQgZmlsbFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgdm9pZCBmaWxs
UmVjdFdpdGhDb2xvcihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpD
b2xvciYpOworICAgIHZvaWQgZmlsbFJlY3RXaXRoR3JhZGllbnQoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZpbGxSZWN0V2l0aEdyYWRpZW50JiYpOworICAgIHZvaWQgZmlsbENvbXBvc2l0ZWRSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgV2ViQ29y
ZTo6Q29tcG9zaXRlT3BlcmF0b3IsIFdlYkNvcmU6OkJsZW5kTW9kZSk7CisgICAgdm9pZCBmaWxs
Um91bmRlZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiwgV2ViQ29yZTo6QmxlbmRNb2RlKTsKKyAgICB2b2lkIGZpbGxSZWN0V2l0aFJv
dW5kZWRIb2xlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
Um91bmRlZFJlY3QmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworI2lmIEVOQUJMRShJTkxJTkVf
UEFUSF9EQVRBKQorICAgIHZvaWQgZmlsbExpbmUoY29uc3QgV2ViQ29yZTo6TGluZURhdGEmKTsK
KyAgICB2b2lkIGZpbGxBcmMoY29uc3QgV2ViQ29yZTo6QXJjRGF0YSYpOworICAgIHZvaWQgZmls
bFF1YWRDdXJ2ZShjb25zdCBXZWJDb3JlOjpRdWFkQ3VydmVEYXRhJik7CisgICAgdm9pZCBmaWxs
QmV6aWVyQ3VydmUoY29uc3QgV2ViQ29yZTo6QmV6aWVyQ3VydmVEYXRhJik7CisjZW5kaWYKKyAg
ICB2b2lkIGZpbGxQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmKTsKKyAgICB2b2lkIGZpbGxFbGxp
cHNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworICAgIHZvaWQgZ2V0UGl4ZWxCdWZmZXIo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZm
ZXJGb3JtYXQmIG91dHB1dEZvcm1hdCk7CisgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBv
aW50LCBjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlw
bGljYXRpb24gZGVzdEZvcm1hdCk7CisgICAgdm9pZCBwYWludEZyYW1lRm9yTWVkaWEoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uKTsKKyAgICB2b2lkIHN0cm9rZVJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jiwg
ZmxvYXQgbGluZVdpZHRoKTsKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKyAgICB2b2lk
IHN0cm9rZUxpbmUoY29uc3QgV2ViQ29yZTo6TGluZURhdGEmKTsKKyAgICB2b2lkIHN0cm9rZUFy
Yyhjb25zdCBXZWJDb3JlOjpBcmNEYXRhJik7CisgICAgdm9pZCBzdHJva2VRdWFkQ3VydmUoY29u
c3QgV2ViQ29yZTo6UXVhZEN1cnZlRGF0YSYpOworICAgIHZvaWQgc3Ryb2tlQmV6aWVyQ3VydmUo
Y29uc3QgV2ViQ29yZTo6QmV6aWVyQ3VydmVEYXRhJik7CisjZW5kaWYKKyAgICB2b2lkIHN0cm9r
ZVBhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYpOworICAgIHZvaWQgc3Ryb2tlRWxsaXBzZShjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICB2b2lkIGNsZWFyUmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKTsKKyNpZiBVU0UoQ0cpCisgICAgdm9pZCBhcHBseVN0cm9rZVBhdHRlcm4o
KTsKKyAgICB2b2lkIGFwcGx5RmlsbFBhdHRlcm4oKTsKKyNlbmRpZgorICAgIHZvaWQgYXBwbHlE
ZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CisgICAgdm9pZCBmbHVzaENvbnRleHQoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyKTsKKworcHJpdmF0ZToKKyAgICBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgUXVhbGlmaWVkUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJik7CisKKyAgICBS
ZW1vdGVSZXNvdXJjZUNhY2hlJiByZXNvdXJjZUNhY2hlKCk7CisgICAgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiBkcmF3aW5nQ29udGV4dCgpOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgLi4uIEFkZGl0aW9uYWxBcmdzPgorICAgIHZvaWQgaGFuZGxlSXRlbShUJiYgaXRl
bSwgQWRkaXRpb25hbEFyZ3MmJiAuLi4gYXJncykKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBJ
biB0aGUgZnV0dXJlLCB3ZSBzaG91bGQgY29uc2lkZXIgYnVmZmVyaW5nIHVwIGJhdGNoZXMgb2Yg
ZGlzcGxheSBsaXN0IGl0ZW1zIGJlZm9yZQorICAgICAgICAvLyBhcHBseWluZyB0aGVtIGluc3Rl
YWQgb2YgYXBwbHlpbmcgdGhlbSBpbW1lZGlhdGVseSwgc28gdGhhdCB3ZSBjYW4gYXBwbHkgY2xp
cHBpbmcgYW5kIG9jY2x1c2lvbgorICAgICAgICAvLyBvcHRpbWl6YXRpb25zIHRvIHNraXAgb3Zl
ciBwYXJ0cyBvZiBhIGRpc3BsYXkgbGlzdCwgaWYgcG9zc2libGUuCisgICAgICAgIGl0ZW0uYXBw
bHkoZHJhd2luZ0NvbnRleHQoKSwgYXJncy4uLik7CisgICAgfQorCisgICAgdm9pZCBkaWRSZWNl
aXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CisKKyAgICBSZWY8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1faW1hZ2VC
dWZmZXI7CisgICAgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VC
dWZmZXJJZGVudGlmaWVyOworICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRl
cmluZ0JhY2tlbmQ7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX21hc2tJbWFn
ZUJ1ZmZlcjsKKyAgICBib29sIG1faXNMaXN0ZW5pbmdGb3JJUEMgeyBmYWxzZSB9OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMTQwOTNhM2I5YWJhMGExYmU3MjA2ODdlZmI0NjY4YjU5
NWEzNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDk4IEBA
CisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgTm90UmVm
Q291bnRlZCBTdHJlYW0geworICAgIFNhdmUoKQorICAgIFJlc3RvcmUoKQorICAgIFRyYW5zbGF0
ZShmbG9hdCB4LCBmbG9hdCB5KQorICAgIFJvdGF0ZShmbG9hdCBhbmdsZSkKKyAgICBTY2FsZShX
ZWJDb3JlOjpGbG9hdFNpemUgc2NhbGUpCisgICAgU2V0Q1RNKFdlYkNvcmU6OkFmZmluZVRyYW5z
Zm9ybSBjdG0pCisgICAgQ29uY2F0ZW5hdGVDVE0oV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIGN0
bSkKKyAgICBTZXRJbmxpbmVGaWxsQ29sb3IoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGlu
ZUZpbGxDb2xvciBpdGVtKQorICAgIFNldElubGluZVN0cm9rZUNvbG9yKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvciBpdGVtKQorICAgIFNldFN0cm9rZVRoaWNrbmVz
cyhmbG9hdCB0aGlja25lc3MpCisgICAgU2V0U3RhdGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNl
dFN0YXRlIGl0ZW0pCisgICAgU2V0TGluZUNhcChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TGluZUNh
cCBsaW5lQ2FwKQorICAgIFNldExpbmVEYXNoKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRMaW5l
RGFzaCBpdGVtKQorICAgIFNldExpbmVKb2luKGVudW06dWludDhfdCBXZWJDb3JlOjpMaW5lSm9p
biBsaW5lSm9pbikKKyAgICBTZXRNaXRlckxpbWl0KGZsb2F0IGxpbWl0KQorICAgIENsZWFyU2hh
ZG93KCkKKyAgICBDbGlwKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQorICAgIENsaXBPdXQoV2Vi
Q29yZTo6RmxvYXRSZWN0IHJlY3QpCisgICAgQ2xpcFRvSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9uUmVjdCkKKyAgICBDbGlwT3V0VG9QYXRoKFdlYkNv
cmU6OlBhdGggcGF0aCkKKyAgICBDbGlwUGF0aChXZWJDb3JlOjpQYXRoIHBhdGgsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpXaW5kUnVsZSB3aW5kUnVsZSkKKyAgICBCZWdpbkNsaXBUb0RyYXdpbmdD
b21tYW5kcyhXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb24sIFdlYkNvcmU6OkRlc3RpbmF0
aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKQorICAgIEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhX
ZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb24pCisgICAgRHJhd0dseXBocyhXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RHJhd0dseXBocyBpdGVtKQorICAgIERyYXdJbWFnZUJ1ZmZlcihXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXZWJD
b3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qgc3JjUmVj
dCwgc3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCisgICAgRHJh
d05hdGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0U2l6ZSBpbWFnZVNpemUsIFdlYkNvcmU6OkZsb2F0UmVj
dCBkZXN0UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHNyY1JlY3QsIHN0cnVjdCBXZWJDb3JlOjpJ
bWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zKQorICAgIERyYXdQYXR0ZXJuKFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0
U2l6ZSBpbWFnZVNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0UmVjdCwgV2ViQ29yZTo6Rmxv
YXRSZWN0IHRpbGVSZWN0LCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtLCBXZWJD
b3JlOjpGbG9hdFBvaW50IHBoYXNlLCBXZWJDb3JlOjpGbG9hdFNpemUgc3BhY2luZywgc3RydWN0
IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCisgICAgQmVnaW5UcmFuc3Bh
cmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQorICAgIEVuZFRyYW5zcGFyZW5jeUxheWVyKCkKKyAg
ICBEcmF3UmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgZmxvYXQgYm9yZGVyVGhpY2tuZXNz
KQorICAgIERyYXdMaW5lKFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQxLCBXZWJDb3JlOjpGbG9h
dFBvaW50IHBvaW50MikKKyAgICBEcmF3TGluZXNGb3JUZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3TGluZXNGb3JUZXh0IGl0ZW0pCisgICAgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihX
ZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgc3RydWN0IFdlYkNvcmU6OkRvY3VtZW50TWFya2VyTGlu
ZVN0eWxlIHN0eWxlKQorICAgIERyYXdFbGxpcHNlKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQor
ICAgIERyYXdQYXRoKFdlYkNvcmU6OlBhdGggcGF0aCkKKyAgICBEcmF3Rm9jdXNSaW5nUGF0aChX
ZWJDb3JlOjpQYXRoIHBhdGgsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIFdlYkNvcmU6OkNv
bG9yIGNvbG9yKQorICAgIERyYXdGb2N1c1JpbmdSZWN0cyhWZWN0b3I8V2ViQ29yZTo6RmxvYXRS
ZWN0PiByZWN0cywgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgV2ViQ29yZTo6Q29sb3IgY29s
b3IpCisgICAgRmlsbFJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCisgICAgRmlsbFJlY3RX
aXRoQ29sb3IoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIFdlYkNvcmU6OkNvbG9yIGNvbG9yKQor
ICAgIEZpbGxSZWN0V2l0aEdyYWRpZW50KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUmVjdFdp
dGhHcmFkaWVudCBpdGVtKQorICAgIEZpbGxDb21wb3NpdGVkUmVjdChXZWJDb3JlOjpGbG9hdFJl
Y3QgcmVjdCwgV2ViQ29yZTo6Q29sb3IgY29sb3IsIGVudW06dWludDhfdCBXZWJDb3JlOjpDb21w
b3NpdGVPcGVyYXRvciBvcCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkJsZW5kTW9kZSBibGVuZE1v
ZGUpCisgICAgRmlsbFJvdW5kZWRSZWN0KFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QgcmVjdCwg
V2ViQ29yZTo6Q29sb3IgY29sb3IsIGVudW06dWludDhfdCBXZWJDb3JlOjpCbGVuZE1vZGUgYmxl
bmRNb2RlKQorICAgIEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKFdlYkNvcmU6OkZsb2F0UmVjdCBy
ZWN0LCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0IHJvdW5kZWRIb2xlUmVjdCwgV2ViQ29yZTo6
Q29sb3IgY29sb3IpCisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisgICAgRmlsbExpbmUo
c3RydWN0IFdlYkNvcmU6OkxpbmVEYXRhIGRhdGEpCisgICAgRmlsbEFyYyhzdHJ1Y3QgV2ViQ29y
ZTo6QXJjRGF0YSBkYXRhKQorICAgIEZpbGxRdWFkQ3VydmUoc3RydWN0IFdlYkNvcmU6OlF1YWRD
dXJ2ZURhdGEgZGF0YSkKKyAgICBGaWxsQmV6aWVyQ3VydmUoc3RydWN0IFdlYkNvcmU6OkJlemll
ckN1cnZlRGF0YSBkYXRhKQorI2VuZGlmCisgICAgRmlsbFBhdGgoV2ViQ29yZTo6UGF0aCBwYXRo
KQorICAgIEZpbGxFbGxpcHNlKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQorICAgIEdldFBpeGVs
QnVmZmVyKFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgc3RydWN0IFdlYkNvcmU6OlBpeGVsQnVm
ZmVyRm9ybWF0IG91dHB1dEZvcm1hdCkKKyAgICBQdXRQaXhlbEJ1ZmZlcihXZWJDb3JlOjpJbnRS
ZWN0IHNyY1JlY3QsIFdlYkNvcmU6OkludFBvaW50IGRlc3RQb2ludCwgV2ViQ29yZTo6UGl4ZWxC
dWZmZXIgcGl4ZWxCdWZmZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIGRlc3RGb3JtYXQpCisgICAgUGFpbnRGcmFtZUZvck1lZGlhKFdlYkNvcmU6Ok1lZGlh
UGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRp
b24pCisgICAgU3Ryb2tlUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgZmxvYXQgbGluZVdp
ZHRoKQorI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorICAgIFN0cm9rZUxpbmUoc3RydWN0
IFdlYkNvcmU6OkxpbmVEYXRhIGRhdGEpCisgICAgU3Ryb2tlQXJjKHN0cnVjdCBXZWJDb3JlOjpB
cmNEYXRhIGRhdGEpCisgICAgU3Ryb2tlUXVhZEN1cnZlKHN0cnVjdCBXZWJDb3JlOjpRdWFkQ3Vy
dmVEYXRhIGRhdGEpCisgICAgU3Ryb2tlQmV6aWVyQ3VydmUoc3RydWN0IFdlYkNvcmU6OkJlemll
ckN1cnZlRGF0YSBkYXRhKQorI2VuZGlmCisgICAgU3Ryb2tlUGF0aChXZWJDb3JlOjpQYXRoIHBh
dGgpCisgICAgU3Ryb2tlRWxsaXBzZShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkKKyAgICBDbGVh
clJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCisjaWYgVVNFKENHKQorICAgIEFwcGx5U3Ry
b2tlUGF0dGVybigpCisgICAgQXBwbHlGaWxsUGF0dGVybigpCisjZW5kaWYKKyAgICBBcHBseURl
dmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQorICAgIEZsdXNoQ29udGV4dChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIgaWRlbnRpZmllcikKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBm
Y2NlZDdkNTFhMjEyMmE2MDA0ODk5ZTE5ZTM4MGNiZDU4NTcyMWYxLi5jN2QxYTgzZWVmZTMxZTdj
MjlkNzIzZGNjNWFmNzU3ODY5MjJmMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC03
ODMsNiArNzgzLDE0IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6dXBkYXRlTGFzdEtu
b3duU3RhdGUoUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlIHN0CiAgICAgbV9sYXN0S25vd25T
dGF0ZS5zdG9yZVJlbGF4ZWQoc3RhdGUpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OnBlcmZvcm1XaXRoTWVkaWFQbGF5ZXJPbk1haW5UaHJlYWQoTWVkaWFQbGF5ZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoTWVkaWFQbGF5ZXImKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyYsIGdwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50aWZpZXJdIHsKKyAgICAg
ICAgaWYgKGF1dG8gcGxheWVyID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+cmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5tZWRpYVBsYXllcihpZGVudGlmaWVyKSkKKyAgICAgICAg
ICAgIGNhbGxiYWNrKCpwbGF5ZXIpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmlu
ZGV4IDQxOWFlNmQxNmY3MmQ3ZDU5MzE0MWZlMjI5NmFjZmU2OWExYzU5MGMuLjYyOGVjMzliNmEx
ODliODJlYmE0ZmZmMjU4ZjY2YWQ5NjgwZDcyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAt
OTksNiArOTksOCBAQCBwdWJsaWM6CiAKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUg
bGFzdEtub3duU3RhdGUoKSBjb25zdDsKIAorICAgIHZvaWQgcGVyZm9ybVdpdGhNZWRpYVBsYXll
ck9uTWFpblRocmVhZChXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIEZ1bmN0aW9uPHZv
aWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXImKT4mJik7CisKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZENyZWF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9y
SVBDKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA0MWM3
NmJkYjhkYTcxNjQ1ZjM4NTNhMzNmYWQ1ZGQyNWVkNzg0NDFjLi43ODM5ZjY5OGRkODFhODI0MmQx
YWMzZjMyNTQ2NWJmMTUwMTU1NTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKQEAgLTY5MSwxMyArNjkxLDE4IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgogICAgICAgICAnV2FsbFRpbWUnOiBbJzx3dGYvV2FsbFRpbWUuaD4nXSwKICAgICAgICAgJ1N0
cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmluZy5oPiddLAogICAgICAgICAnUEFMOjpTZXNzaW9u
SUQnOiBbJzxwYWwvU2Vzc2lvbklELmg+J10sCisgICAgICAgICdXZWJDb3JlOjpBcmNEYXRhJzog
Wyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXV0b3Bs
YXlFdmVudEZsYWdzJzogWyc8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCisgICAgICAgICdX
ZWJDb3JlOjpCZXppZXJDdXJ2ZURhdGEnOiBbJzxXZWJDb3JlL0lubGluZVBhdGhEYXRhLmg+J10s
CisgICAgICAgICdXZWJDb3JlOjpCbGVuZE1vZGUnOiBbJzxXZWJDb3JlL0dyYXBoaWNzVHlwZXMu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNp
b24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OkNPRVBEaXNwb3NpdGlvbic6IFsnPFdlYkNvcmUvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6Q09PUERpc3Bvc2l0aW9uJzogWyc8V2ViQ29yZS9Dcm9z
c09yaWdpbk9wZW5lclBvbGljeS5oPiddLAorICAgICAgICAnV2ViQ29yZTo6Q29tcG9zaXRlT3Bl
cmF0b3InOiBbJzxXZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OkNyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9BcHBIaWdobGlnaHQuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UnOiBbJzxXZWJDb3Jl
L0RPTVBhc3RlQWNjZXNzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UnOiBbJzxXZWJDb3JlL0NvbG9yU3BhY2UuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkRv
Y3VtZW50TWFya2VyTGluZVN0eWxlJzogWyc8V2ViQ29yZS9HcmFwaGljc1R5cGVzLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE9yV29ya2VySWRlbnRpZmllcic6IFsnPFdlYkNvcmUv
U2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRp
b25GbGFncyc6IFsnPFdlYkNvcmUvRHJhZ0RhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRy
YWdIYW5kbGluZ01ldGhvZCc6IFsnPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKQEAgLTcwOCw2
ICs3MTMsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6
OkZpbGVDaG9vc2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSc6IFsnPFdlYkNv
cmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGb250Q2hh
bmdlcyc6IFsnPFdlYkNvcmUvRm9udEF0dHJpYnV0ZUNoYW5nZXMuaD4nXSwKKyAgICAgICAgJ1dl
YkNvcmU6OkZvbnRTbW9vdGhpbmdNb2RlJzogWyc8V2ViQ29yZS9HcmFwaGljc1R5cGVzLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUxvYWRUeXBlJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRl
clR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSc6IFsnPFdlYkNv
cmUvSW5iYW5kR2VuZXJpY0N1ZS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6R3JhbW1hckRldGFp
bCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKQEAgLTcyMywxMCArNzI5LDE0
IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6S2V5cHJl
c3NDb21tYW5kJzogWyc8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCc6IFsnPFdlYkNvcmUvU2VydmljZVdv
cmtlckNsaWVudERhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb25D
bGllbnQ6Ok1lZGlhS2V5RXJyb3JDb2RlJzogWyc8V2ViQ29yZS9MZWdhY3lDRE1TZXNzaW9uLmg+
J10sCisgICAgICAgICdXZWJDb3JlOjpMaW5lQ2FwJzogWyc8V2ViQ29yZS9HcmFwaGljc1R5cGVz
Lmg+J10sCisgICAgICAgICdXZWJDb3JlOjpMaW5lRGF0YSc6IFsnPFdlYkNvcmUvSW5saW5lUGF0
aERhdGEuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkxpbmVKb2luJzogWyc8V2ViQ29yZS9HcmFw
aGljc1R5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0Jzog
Wyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8V2ViQ29yZS9NZWRpYVBsYXllci5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5
JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4n
XSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1vdmVEYXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0
YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24n
OiBbJzxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQu
aD4nXSwKQEAgLTc0Miw2ICs3NTIsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvRnJhbWVM
b2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uJzog
Wyc8V2ViQ29yZS9JbWFnZUJ1ZmZlckJhY2tlbmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPiddLAorICAg
ICAgICAnV2ViQ29yZTo6UXVhZEN1cnZlRGF0YSc6IFsnPFdlYkNvcmUvSW5saW5lUGF0aERhdGEu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJlY2VudFNlYXJjaCc6IFsnPFdlYkNvcmUvU2VhcmNo
UG9wdXBNZW51Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jl
c3VsdCc6IFsnPFdlYkNvcmUvRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3knOiBbJzxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPidd
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggODY3ZjZkNTQ4YjllMjk4NGVjNzFmMzNkYTAyODk4NzIzOTcxY2QwZC4uMDMyZWY0NzNiNWQy
MDYzNTIzNzk3OTk1MDg2OWI4MTFmMGJmMGRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xNTksNiArMTU5LDkgQEAgREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKENHUG9pbnQpCiBERUZJTkVfU0lNUExFX0FS
R1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dBZmZpbmVUcmFuc2Zvcm0pCiAjZW5kaWYKIAorREVG
SU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFKERpc3BsYXlMaXN0OjpTZXRJbmxp
bmVGaWxsQ29sb3IpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRGlz
cGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yKQorCiAjdW5kZWYgREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFCiAKIHN0YXRpYyB2b2lkIGVuY29kZVNoYXJlZEJ1ZmZl
cihFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTaGFyZWRCdWZmZXIqIGJ1ZmZlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggN2U4ZmVjOWZiM2Y2
Mjg1YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2YS4uMjA4ZjFiNjExN2I4NzkwY2E0MzUxNGJhYTQx
NDVkMDZjMjYyYWYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F1dG9wbGF5RXZl
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlz
dEl0ZW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GbG9hdFBvaW50M0QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAt
MjUzLDYgKzI1NCw5IEBAIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihD
R1BvaW50KQogREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKENHQWZmaW5l
VHJhbnNmb3JtKQogI2VuZGlmCiAKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hF
QURFUihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yKQorREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJ
bmxpbmVTdHJva2VDb2xvcikKKwogI3VuZGVmIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJf
Rk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkF0
dHJpYnV0ZWRTdHJpbmc+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGM0YTg0ZTFmYjZmNDY2YjhmYmQ1NGU2
Y2E0NmM0NzI0MjJiM2IwYzguLjdlMjNkNjA1MmM0NTI0ZjI3YjcwNDIwMmFhMGU3YzkxN2YxZGI5
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dApAQCAtMjUsNiArMjUsNyBAQCBHUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
Y3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNz
L0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL0Rp
c3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5j
cHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKQEAgLTYxMSw2
ICs2MTIsNyBAQCBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9EaXNwbGF5TGlzdFdyaXRlckhhbmRs
ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAorV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC03NTUsNiArNzU3LDcgQEAgTmV0d29ya0Jyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJUQ0RhdGFDaGFubmVsUmVt
b3RlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1NZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlZDIwNDFm
YTUyZGYzNmE5MTY2ZmM3MjgyZTE5YjY0YjkxZDQ5YjNlLi4zYjA3ZmIzZDU2NTIwZGNjOGVlZjhm
OTUxNjgxYmI1OGY1NmE0NzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTIwNTMsNiArMjA1Myw5IEBACiAJCUY0NDI5MTk2MUZBNTk0
MkEwMDJDQzkzRSAvKiBfV0tBdHRhY2htZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDI5MTk1MUZBNTk0MkEwMDJDQzkzRSAvKiBf
V0tBdHRhY2htZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJRjQ0ODE1NjQyMzg3ODIwMDAwOTgyNjU3
IC8qIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDgxNTYyMjM4NzgyMDAwMDk4MjY1NyAvKiBXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CiAJCUY0NERGRUIyMUU5RTc1MkYwMDM4
RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDRERkVCMDFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxp
dGllcy5oICovOyB9OworCQlGNDUxN0Q3QjI2RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVy
aW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ1MTdENzkyNkZCQ0QzODAwNEM4NDc1IC8qIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJRjQ1MTdEN0MyNkZCQ0QzOTAw
NEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1MTdEN0EyNkZCQ0QzODAwNEM4NDc1
IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oICovOyB9OworCQlGNDUxQzBGRTI3
MDNCMjYzMDAyQkEwM0IgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhCQjhERDI2Rjk2MzVE
MDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmggKi87IH07CiAJCUY0
NjYwQkMyMjVERUYwODEwMEU4NjU5OCAvKiBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDY2MEJDMTI1REVGMDgx
MDBFODY1OTggLyogUGFzdGVib2FyZEFjY2Vzc0ludGVudC5oICovOyB9OwogCQlGNDg1NzBBMzI2
NDRCRUM1MDBDMDVGNzEgLyogVGltZW91dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ4NTcwQTIyNjQ0QkVDNDAwQzA1RjcxIC8qIFRpbWVvdXQuaCAq
LzsgfTsKIAkJRjQ4RDJBODUyMTU4M0E3RTAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBODQyMTU4M0EwMjAw
QzY3NTJCIC8qIEFwcEtpdFNQSS5oICovOyB9OwpAQCAtNjEyOSw5ICs2MTMyLDE3IEBACiAJCUY0
NDgxNTYzMjM4NzgyMDAwMDk4MjY1NyAvKiBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbTsg
cGF0aCA9IGlvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDRERkVCMDFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxp
dGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJY29uVXRpbGl0aWVz
Lmg7IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDRERkVCMTFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkljb25VdGlsaXRpZXMu
bW07IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjQ1MTdENzcyNkZCQ0NFNDAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlGNDUxN0Q3OTI2RkJD
RDM4MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVz
c2FnZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKKwkJRjQ1MTdEN0EyNkZCQ0QzODAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCUY0NTFDMTAwMjcwM0Q4NTMwMDJCQTAzQiAvKiBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NjYwQkMxMjVERUYw
ODEwMEU4NjU5OCAvKiBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
c3RlYm9hcmRBY2Nlc3NJbnRlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3
QTA1MTYyNjgyN0EwOTAwN0U1Q0YyIC8qIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQ4NTcwQTIyNjQ0QkVDNDAwQzA1RjcxIC8qIFRpbWVvdXQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNDhCQjhERDI2Rjk2MzVEMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDhCQjhERTI2Rjk2MzVEMDAx
QzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0OEJCOERGMjZGOTYzOTIwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4QkI4RTAyNkY5NjM5MjAwMUMxQzQw
IC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0OEQyQTg0MjE1ODNBMDIwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OTZBNDJGMUY1OEEy
NzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
RHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmg7IHBhdGggPSBpb3MvRHJhZ0Ryb3BJbnRlcmFjdGlv
blN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OTZBNDMwMUY1OEEyNzIw
MDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5h
bWUgPSBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW07IHBhdGggPSBpb3MvRHJhZ0Ryb3BJbnRl
cmFjdGlvblN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTA3Miw2ICs5
MDgzLDggQEAKIAkJCQk3MjdBN0YzNjI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmggKi8sCiAJCQkJNzI3QTdGMzgyNDA3ODhGMDAwNEQyOTMxIC8q
IFBsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmggKi8sCiAJCQkJNzIyNzgwMEIy
NDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICovLAor
CQkJCUY0OEJCOERFMjZGOTYzNUQwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHkuY3BwICovLAorCQkJCUY0OEJCOEREMjZGOTYzNUQwMDFDMUM0MCAvKiBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHkuaCAqLywKIAkJCQk3QjkwNDE2NTI1NEFGREVBMDA2RUVCOEMg
LyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAgKi8sCiAJCQkJN0I5MDQxNjYyNTRB
RkRFQjAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaCAqLywKIAkJCQk3
QjkwNDE2NzI1NEFGRTE3MDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5t
ZXNzYWdlcy5pbiAqLywKQEAgLTkwOTQsNiArOTEwNyw5IEBACiAJCQkJRjQwOTRDQkIyNTUzMDRB
RjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmggKi8sCiAJCQkJNTVBRDA5NDMy
NDA4QTBFNjAwREU0RDJGIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLywKIAkJCQkx
Q0M1NEFGRDI3MEY5NjU0MDA1QkY4QkUgLyogUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLmggKi8sCisJCQkJRjQ4QkI4RTAyNkY5NjM5MjAwMUMxQzQwIC8qIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwICovLAorCQkJCUY0OEJCOERGMjZGOTYzOTIwMDFDMUM0MCAvKiBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmggKi8sCisJCQkJRjQ1MUMxMDAyNzAzRDg1MzAwMkJB
MDNCIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJN0I5
MDQxNjkyNTRBRkVBNzAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCAqLywK
IAkJCQk3QjkwNDE2QTI1NEFGRUE3MDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
aCAqLywKIAkJCQk3QjkwNDE2ODI1NEFGRUE3MDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wubWVzc2FnZXMuaW4gKi8sCkBAIC0xMTQ2NSw2ICsxMTQ4MSw5IEBACiAJCQkJQ0Q4MjUy
REEyNUQ0OTE1NDAwODYyRkQ4IC8qIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDRDgyNTJEOTI1RDQ5MTU0MDA4NjJGRDggLyogUmVt
b3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNEODI1MkQ4
MjVENDkxNTMwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oICovLAorCQkJCUY0NTE3RDc3MjZGQkNDRTQwMDRDODQ3NSAvKiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlGNDUxN0Q3QTI2RkJD
RDM4MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmggKi8sCisJCQkJ
RjQ1MTdENzkyNkZCQ0QzODAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdl
c1JlcGxpZXMuaCAqLywKIAkJCQkwRjU5NDdBNTE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTBGNTk0N0E2MTg3
QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggKi8s
CiAJCQkJMUREMkE2NkIyNTYyMDIxRTAwRkY3QjZGIC8qIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTEyNTYwLDYgKzEyNTc5LDcgQEAKIAkJCQlDREFD
MjBCNDIzRkI1OEYyMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0RBQzIwQ0EyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNl
U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzkyM0ZDMkY3NTAwMjFERUUzIC8q
IFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY0NTFDMEZFMjcwM0IyNjMwMDJCQTAzQiAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENDdCNTZEMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRERjczMTUxOEU5NTA2
MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFCMTZBRUExNjRCM0E4ODAwMjkwRDYyIC8qIFJlbW90ZUxheWVyVHJlZUNv
bnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMTI1ODgsNiArMTI2MDgsOCBAQAogCQkJCTFBQzEz
Mzg2MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0NjA4OEEwMDI2MUZBOEJDMDBFMjUwMEQgLyogUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYwODhBMDEyNjFGQThDNDAwRTI1MDBE
IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY0NTE3RDdDMjZGQkNEMzkwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0NTE3RDdCMjZGQkNEMzkwMDRDODQ3
NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNDE0Q0UyRDI2OURFNkVBMDBCRDIxNkEgLyogUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDc5MDE4N0IzQjNBMDA0Mzc4NTcgLyog
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E4
MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45M2UwMmEyOGFiNTVjOTk0ZWZhNzAwM2M4NzRlNWI3Nzk0MzgwOTUx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCkBAIC0wLDAgKzEsNDQ2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIgorCisj
aW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3REcmF3
aW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFn
ZUJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW5kZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9h
dFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERy
YXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0ds
eXBocykKKyAgICA6IERpc3BsYXlMaXN0OjpSZWNvcmRlcih7IH0sIGluaXRpYWxDbGlwLCBpbml0
aWFsQ1RNLCBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCisgICAgLCBtX2Rlc3RpbmF0aW9uQnVmZmVy
SWRlbnRpZmllcihpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKKyAg
ICAsIG1faW1hZ2VCdWZmZXIobWFrZVdlYWtQdHIoaW1hZ2VCdWZmZXIpKQorICAgICwgbV9yZW5k
ZXJpbmdCYWNrZW5kKG1ha2VXZWFrUHRyKHJlbmRlcmluZ0JhY2tlbmQpKQoreworfQorCitSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eShSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkmIHBhcmVudCwgY29uc3QgRmxvYXRSZWN0
JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKQorICAgIDog
RGlzcGxheUxpc3Q6OlJlY29yZGVyKHBhcmVudCwgeyB9LCBpbml0aWFsQ2xpcCwgaW5pdGlhbENU
TSkKKyAgICAsIG1fZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKHBhcmVudC5tX2Rlc3RpbmF0
aW9uQnVmZmVySWRlbnRpZmllcikKKyAgICAsIG1faW1hZ2VCdWZmZXIocGFyZW50Lm1faW1hZ2VC
dWZmZXIpCisgICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQocGFyZW50Lm1fcmVuZGVyaW5nQmFja2Vu
ZCkKK3sKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmdldFBpeGVs
QnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJl
Y3QmIHNvdXJjZVJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6R2V0UGl4ZWxCdWZmZXIoc291cmNlUmVjdCwgb3V0cHV0Rm9ybWF0KSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpwdXRQaXhlbEJ1ZmZlcihjb25z
dCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpQdXRQaXhl
bEJ1ZmZlcihzcmNSZWN0LCBkZXN0UG9pbnQsIHBpeGVsQnVmZmVyLCBkZXN0Rm9ybWF0KSk7Cit9
CisKK2Jvb2wgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpjYW5EcmF3SW1hZ2VCdWZm
ZXIoY29uc3QgSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAoreworICAgIHJldHVybiBt
X3JlbmRlcmluZ0JhY2tlbmQgJiYgbV9yZW5kZXJpbmdCYWNrZW5kLT5pc0NhY2hlZChpbWFnZUJ1
ZmZlcik7Cit9CisKK1JlbmRlcmluZ01vZGUgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZW5kZXJpbmdNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbWFnZUJ1ZmZlciA/IG1f
aW1hZ2VCdWZmZXItPnJlbmRlcmluZ01vZGUoKSA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0
ZWQ7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTYXZl
KCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTYXZl
KCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVz
dG9yZSgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
UmVzdG9yZSgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZFRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlRyYW5zbGF0ZSh4LCB5KSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSb3RhdGUoZmxvYXQgYW5nbGUpCit7
CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Um90YXRlKGFu
Z2xlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRT
Y2FsZShjb25zdCBGbG9hdFNpemUmIHNjYWxlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNjYWxlKHNjYWxlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiB0cmFuc2Zvcm0pCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6U2V0Q1RNKHRyYW5zZm9ybSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkQ29uY2F0ZW5hdGVDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0
cmFuc2Zvcm0pCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6Q29uY2F0ZW5hdGVDVE0odHJhbnNmb3JtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRJbmxpbmVGaWxsQ29sb3IoU1JHQkE8dWludDhfdD4g
Y29sb3IpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
U2V0SW5saW5lRmlsbENvbG9yKHsgY29sb3IgfSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWludDhf
dD4gY29sb3IpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6U2V0SW5saW5lU3Ryb2tlQ29sb3IoeyBjb2xvciB9KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRTdHJva2VUaGlja25lc3MoZmxvYXQgdGhp
Y2tuZXNzKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OlNldFN0cm9rZVRoaWNrbmVzcyh0aGlja25lc3MpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldFN0YXRlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3MgZmxhZ3Mp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U2V0U3Rh
dGUoeyBzdGF0ZSwgZmxhZ3MgfSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkU2V0TGluZUNhcChMaW5lQ2FwIGxpbmVDYXApCit7CisgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U2V0TGluZUNhcChsaW5lQ2FwKSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRMaW5l
RGFzaChjb25zdCBEYXNoQXJyYXkmIGFycmF5LCBmbG9hdCBkYXNoT2Zmc2V0KQoreworICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldExpbmVEYXNoKHsgYXJy
YXksIGRhc2hPZmZzZXQgfSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkU2V0TGluZUpvaW4oTGluZUpvaW4gbGluZUpvaW4pCit7CisgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U2V0TGluZUpvaW4obGluZUpvaW4p
KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldE1p
dGVyTGltaXQoZmxvYXQgbGltaXQpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6U2V0TWl0ZXJMaW1pdChsaW1pdCkpOworfQorCit2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xlYXJTaGFkb3coKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNsZWFyU2hhZG93KCkpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xpcChjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6Q2xpcChyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRDbGlwT3V0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDbGlwT3V0KHJlY3QpKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENsaXBUb0ltYWdl
QnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNsaXBUb0ltYWdlQnVmZmVyKGltYWdlQnVmZmVy
SWRlbnRpZmllciwgZGVzdGluYXRpb25SZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwT3V0VG9QYXRoKGNvbnN0IFBhdGgmIHBhdGgpCit7
CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Q2xpcE91dFRv
UGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojpy
ZWNvcmRDbGlwUGF0aChjb25zdCBQYXRoJiBwYXRoLCBXaW5kUnVsZSBydWxlKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNsaXBQYXRoKHBhdGgsIHJ1
bGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEJl
Z2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIERl
c3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGRlc3Rp
bmF0aW9uLCBjb2xvclNwYWNlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoZGVzdGluYXRpb24pKTsKK30KKwordm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdHbHlwaHMoY29uc3QgRm9u
dCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZl
ckFkdmFuY2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgbG9j
YWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIG1vZGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0dseXBocyh7IGZvbnQsIGdseXBocywgYWR2
YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hvciwgbW9kZSB9KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3SW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpEcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBkZXN0UmVjdCwg
c3JjUmVjdCwgb3B0aW9ucykpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkRHJhd05hdGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBp
bWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OkRyYXdOYXRpdmVJbWFnZShpbWFnZUlkZW50aWZpZXIsIGltYWdlU2l6ZSwg
ZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7
CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd1BhdHRl
cm4oaW1hZ2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNm
b3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucykpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFj
aXR5KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkJl
Z2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRW5kVHJhbnNwYXJlbmN5TGF5ZXIoKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkVuZFRyYW5zcGFyZW5jeUxh
eWVyKCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
RHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCB3aWR0aCkKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3UmVjdChyZWN0LCB3aWR0
aCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJh
d0xpbmUoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludDIp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0xp
bmUocG9pbnQxLCBwb2ludDIpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZERyYXdMaW5lc0ZvclRleHQoY29uc3QgRmxvYXRQb2ludCYgYmxvY2tMb2Nh
dGlvbiwgY29uc3QgRmxvYXRTaXplJiBsb2NhbEFuY2hvciwgZmxvYXQgdGhpY2tuZXNzLCBjb25z
dCBEYXNoQXJyYXkmIHdpZHRocywgYm9vbCBwcmludGluZywgYm9vbCBkb3VibGVMaW5lcykKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3TGluZXNG
b3JUZXh0KHsgYmxvY2tMb2NhdGlvbiwgbG9jYWxBbmNob3IsIHRoaWNrbmVzcywgd2lkdGhzLCBw
cmludGluZywgZG91YmxlTGluZXMgfSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFJl
Y3QmIHJlY3QsIGNvbnN0IERvY3VtZW50TWFya2VyTGluZVN0eWxlJiBzdHlsZSkKK3sKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3RG90c0ZvckRvY3Vt
ZW50TWFya2VyKHJlY3QsIHN0eWxlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmREcmF3RWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0VsbGlwc2Uo
cmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
RHJhd1BhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3UGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3Rm9jdXNSaW5nUGF0aChjb25zdCBQYXRo
JiBwYXRoLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit7
CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0ZvY3Vz
UmluZ1BhdGgocGF0aCwgd2lkdGgsIG9mZnNldCwgY29sb3IpKTsKK30KKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdGb2N1c1JpbmdSZWN0cyhjb25zdCBW
ZWN0b3I8RmxvYXRSZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0
IENvbG9yJiBjb2xvcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpEcmF3Rm9jdXNSaW5nUmVjdHMocmVjdHMsIHdpZHRoLCBvZmZzZXQsIGNvbG9yKSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6RmlsbFJlY3QocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJlY3RXaXRoQ29sb3IoY29uc3QgRmxvYXRS
ZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RmlsbFJlY3RXaXRoQ29sb3IocmVjdCwgY29sb3IpKTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxSZWN0
V2l0aEdyYWRpZW50KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgR3JhZGllbnQmIGdyYWRpZW50KQor
eworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxSZWN0
V2l0aEdyYWRpZW50KHsgcmVjdCwgZ3JhZGllbnQgfSkpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbENvbXBvc2l0ZWRSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxl
bmRNb2RlIG1vZGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6RmlsbENvbXBvc2l0ZWRSZWN0KHJlY3QsIGNvbG9yLCBvcCwgbW9kZSkpOworfQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJvdW5kZWRSZWN0
KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0LCBjb25zdCBDb2xvciYgY29sb3Is
IEJsZW5kTW9kZSBtb2RlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OkZpbGxSb3VuZGVkUmVjdChyb3VuZGVkUmVjdCwgY29sb3IsIG1vZGUpKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxSZWN0V2l0
aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSb3VuZGVkUmVj
dCYgcm91bmRlZFJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShyZWN0
LCByb3VuZGVkUmVjdCwgY29sb3IpKTsKK30KKworI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRB
KQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbExpbmUo
Y29uc3QgTGluZURhdGEmIGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6RmlsbExpbmUoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbEFyYyhjb25zdCBBcmNEYXRhJiBkYXRhKQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxBcmMoZGF0
YSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmls
bFF1YWRDdXJ2ZShjb25zdCBRdWFkQ3VydmVEYXRhJiBkYXRhKQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxRdWFkQ3VydmUoZGF0YSkpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbEJlemllckN1
cnZlKGNvbnN0IEJlemllckN1cnZlRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsQmV6aWVyQ3VydmUoZGF0YSkpOworfQorCisj
ZW5kaWYgLy8gRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUGF0aChjb25zdCBQYXRoJiBwYXRoKQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxQYXRoKHBhdGgp
KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxF
bGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsRWxsaXBzZShyZWN0KSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRHZXRQaXhlbEJ1ZmZlcihQaXhlbEJ1
ZmZlckZvcm1hdCBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6R2V0UGl4ZWxCdWZmZXIocmVj
dCwgb3V0cHV0Rm9ybWF0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmRQdXRQaXhlbEJ1ZmZlcihjb25zdCBQaXhlbEJ1ZmZlciYgYnVmZmVyLCBjb25z
dCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11
bHRpcGxpY2F0aW9uIHByZW11bHRpcGxpY2F0aW9uKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlB1dFBpeGVsQnVmZmVyKHNyY1JlY3QsIGRlc3RQb2lu
dCwgYnVmZmVyLCBwcmVtdWx0aXBsaWNhdGlvbikpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUGFpbnRGcmFtZUZvck1lZGlhKE1lZGlhUGxheWVyJiBw
bGF5ZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCit7CisgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6UGFpbnRGcmFtZUZvck1lZGlhKHBsYXllci5p
ZGVudGlmaWVyKCksIGRlc3RpbmF0aW9uKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxv
YXQgd2lkdGgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6U3Ryb2tlUmVjdChyZWN0LCB3aWR0aCkpOworfQorCisjaWYgRU5BQkxFKElOTElORV9QQVRI
X0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJv
a2VMaW5lKGNvbnN0IExpbmVEYXRhJiBkYXRhKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlN0cm9rZUxpbmUoZGF0YSkpOworfQorCit2b2lkIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlQXJjKGNvbnN0IEFyY0RhdGEm
IGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
U3Ryb2tlQXJjKGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZFN0cm9rZVF1YWRDdXJ2ZShjb25zdCBRdWFkQ3VydmVEYXRhJiBkYXRhKQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlN0cm9rZVF1YWRD
dXJ2ZShkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojpy
ZWNvcmRTdHJva2VCZXppZXJDdXJ2ZShjb25zdCBCZXppZXJDdXJ2ZURhdGEmIGRhdGEpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U3Ryb2tlQmV6aWVy
Q3VydmUoZGF0YSkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VQYXRoKGNv
bnN0IFBhdGgmIHBhdGgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6U3Ryb2tlUGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTdHJva2VF
bGxpcHNlKHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZENsZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgc2VuZChNZXNz
YWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Q2xlYXJSZWN0KHJlY3QpKTsKK30KKwor
I2lmIFVTRShDRykKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZEFwcGx5U3Ryb2tlUGF0dGVybigpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6QXBwbHlTdHJva2VQYXR0ZXJuKCkpOworfQorCit2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQXBwbHlGaWxsUGF0dGVybigpCit7CisgICAg
c2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6QXBwbHlGaWxsUGF0dGVy
bigpKTsKK30KKworI2VuZGlmIC8vIFVTRShDRykKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0
b3IpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6QXBw
bHlEZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3RvcikpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVzb3VyY2VVc2UoTmF0aXZlSW1hZ2UmIGltYWdl
KQoreworICAgIGlmIChVTkxJS0VMWSghbV9yZW5kZXJpbmdCYWNrZW5kKSkgeworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVu
ZGVyaW5nQmFja2VuZC0+cmVjb3JkTmF0aXZlSW1hZ2VVc2UoaW1hZ2UpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVzb3VyY2VVc2UoRm9udCYgZm9u
dCkKK3sKKyAgICBpZiAoVU5MSUtFTFkoIW1fcmVuZGVyaW5nQmFja2VuZCkpIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3Jl
bmRlcmluZ0JhY2tlbmQtPnJlY29yZEZvbnRVc2UoZm9udCk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSZXNvdXJjZVVzZShJbWFnZUJ1ZmZlciYgaW1h
Z2VCdWZmZXIpCit7CisgICAgaWYgKFVOTElLRUxZKCFtX3JlbmRlcmluZ0JhY2tlbmQpKSB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5yZWNvcmRJbWFnZUJ1ZmZlclVzZShpbWFnZUJ1ZmZlcik7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpmbHVzaENvbnRleHQo
R3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Rmx1c2hDb250ZXh0KHsgaWRlbnRp
ZmllciB9KSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+IFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y3JlYXRlTmVzdGVkQ29udGV4dChjb25zdCBGbG9hdFJl
Y3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pCit7Cisg
ICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5PigqdGhp
cywgaW5pdGlhbENsaXAsIGluaXRpYWxDVE0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
OWI2MGI4Zjg5MmZkMzFjM2RhNzU0YWE1ZmUzYTIyY2UwNjQzMGI1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHkuaApAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9EaXNwbGF5TGlzdFJlY29yZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmF3
R2x5cGhzUmVjb3JkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CisKK2NsYXNzIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXIgeworcHVi
bGljOgorICAgIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eShXZWJDb3JlOjpJbWFnZUJ1
ZmZlciYsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIFdlYkNv
cmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzID0gV2ViQ29yZTo6
RHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Olllcyk7CisgICAgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eSYgcGFyZW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pOworCisgICAgflJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eSgpIHsgfQorCisgICAgdm9pZCByZXNldE5lZWRzRmx1c2goKSB7
IG1fbmVlZHNGbHVzaCA9IGZhbHNlOyB9CisgICAgYm9vbCBuZWVkc0ZsdXNoKCkgY29uc3QgeyBy
ZXR1cm4gbV9uZWVkc0ZsdXNoOyB9CisKKyAgICB2b2lkIGdldFBpeGVsQnVmZmVyKGNvbnN0IFdl
YkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHNvdXJjZVJlY3QpIGZpbmFsOworICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3Qg
V2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRp
cGxpY2F0aW9uIGRlc3RGb3JtYXQpIGZpbmFsOworICAgIHZvaWQgZmx1c2hDb250ZXh0KFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllcikgZmluYWw7CisKK3ByaXZhdGU6Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIHNlbmQoVCYmIG1lc3NhZ2UpCisgICAg
eworICAgICAgICBtX25lZWRzRmx1c2ggPSB0cnVlOworICAgICAgICBtX3JlbmRlcmluZ0JhY2tl
bmQtPnNlbmRUb1N0cmVhbShXVEZNb3ZlKG1lc3NhZ2UpLCBtX2Rlc3RpbmF0aW9uQnVmZmVySWRl
bnRpZmllcik7CisgICAgfQorCisgICAgZnJpZW5kIGNsYXNzIERyYXdHbHlwaHNSZWNvcmRlcjsK
KworICAgIGJvb2wgY2FuRHJhd0ltYWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3Qg
ZmluYWw7CisgICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgZmluYWw7CisK
KyAgICB2b2lkIHJlY29yZFNhdmUoKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFJlc3RvcmUoKSBm
aW5hbDsKKyAgICB2b2lkIHJlY29yZFRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KSBmaW5hbDsK
KyAgICB2b2lkIHJlY29yZFJvdGF0ZShmbG9hdCBhbmdsZSkgZmluYWw7CisgICAgdm9pZCByZWNv
cmRTY2FsZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29y
ZFNldENUTShjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKSBmaW5hbDsKKyAgICB2b2lk
IHJlY29yZENvbmNhdGVuYXRlQ1RNKGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpIGZp
bmFsOworICAgIHZvaWQgcmVjb3JkU2V0SW5saW5lRmlsbENvbG9yKFdlYkNvcmU6OlNSR0JBPHVp
bnQ4X3Q+KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFNldElubGluZVN0cm9rZUNvbG9yKFdlYkNv
cmU6OlNSR0JBPHVpbnQ4X3Q+KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFNldFN0cm9rZVRoaWNr
bmVzcyhmbG9hdCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRTdGF0ZShjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRTdGF0ZSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRlOjpT
dGF0ZUNoYW5nZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFNldExpbmVDYXAoV2ViQ29y
ZTo6TGluZUNhcCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRMaW5lRGFzaChjb25zdCBXZWJD
b3JlOjpEYXNoQXJyYXkmLCBmbG9hdCBkYXNoT2Zmc2V0KSBmaW5hbDsKKyAgICB2b2lkIHJlY29y
ZFNldExpbmVKb2luKFdlYkNvcmU6OkxpbmVKb2luKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFNl
dE1pdGVyTGltaXQoZmxvYXQpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQ2xlYXJTaGFkb3coKSBm
aW5hbDsKKyAgICB2b2lkIHJlY29yZENsaXAoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmlu
YWw7CisgICAgdm9pZCByZWNvcmRDbGlwT3V0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZp
bmFsOworICAgIHZvaWQgcmVjb3JkQ2xpcFRvSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQ2xpcE91
dFRvUGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRDbGlw
UGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJiwgV2ViQ29yZTo6V2luZFJ1bGUpIGZpbmFsOworICAg
IHZvaWQgcmVjb3JkQmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgRGVzdGluYXRpb25Db2xvclNwYWNlKSBmaW5hbDsKKyAgICB2
b2lkIHJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoY29uc3Qg
V2ViQ29yZTo6Rm9udCYsIGNvbnN0IFdlYkNvcmU6OkdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBX
ZWJDb3JlOjpHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIFdlYkNvcmU6OkZvbnRTbW9vdGhpbmdNb2RlKSBm
aW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CisgICAgdm9pZCByZWNv
cmREcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlt
YWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlY29yZERyYXdQYXR0ZXJuKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHBoYXNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNv
cmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRC
ZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEVuZFRy
YW5zcGFyZW5jeUxheWVyKCkgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3UmVjdChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCkgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3TGlu
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIHBvaW50MikgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3TGluZXNGb3JUZXh0KGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGJsb2NrTG9jYXRpb24sIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgbG9jYWxBbmNob3IsIGZsb2F0IHRoaWNrbmVzcywgY29uc3QgV2ViQ29yZTo6RGFz
aEFycmF5JiB3aWR0aHMsIGJvb2wgcHJpbnRpbmcsIGJvb2wgZG91YmxlTGluZXMpIGZpbmFsOwor
ICAgIHZvaWQgcmVjb3JkRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSYpIGZpbmFs
OworICAgIHZvaWQgcmVjb3JkRHJhd0VsbGlwc2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3UGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJikgZmlu
YWw7CisgICAgdm9pZCByZWNvcmREcmF3Rm9jdXNSaW5nUGF0aChjb25zdCBXZWJDb3JlOjpQYXRo
JiwgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5h
bDsKKyAgICB2b2lkIHJlY29yZERyYXdGb2N1c1JpbmdSZWN0cyhjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6RmxvYXRSZWN0PiYsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IFdlYkNvcmU6
OkNvbG9yJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxsUmVjdChjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEZpbGxSZWN0V2l0aENvbG9yKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAg
dm9pZCByZWNvcmRGaWxsUmVjdFdpdGhHcmFkaWVudChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBXZWJDb3JlOjpHcmFkaWVudCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbENvbXBvc2l0
ZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwg
V2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3IsIFdlYkNvcmU6OkJsZW5kTW9kZSkgZmluYWw7Cisg
ICAgdm9pZCByZWNvcmRGaWxsUm91bmRlZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSb3VuZGVk
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgV2ViQ29yZTo6QmxlbmRNb2RlKSBmaW5hbDsK
KyAgICB2b2lkIHJlY29yZEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpDb2xvciYpIGZpbmFsOworI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorICAgIHZvaWQg
cmVjb3JkRmlsbExpbmUoY29uc3QgV2ViQ29yZTo6TGluZURhdGEmKSBmaW5hbDsKKyAgICB2b2lk
IHJlY29yZEZpbGxBcmMoY29uc3QgV2ViQ29yZTo6QXJjRGF0YSYpIGZpbmFsOworICAgIHZvaWQg
cmVjb3JkRmlsbFF1YWRDdXJ2ZShjb25zdCBXZWJDb3JlOjpRdWFkQ3VydmVEYXRhJikgZmluYWw7
CisgICAgdm9pZCByZWNvcmRGaWxsQmV6aWVyQ3VydmUoY29uc3QgV2ViQ29yZTo6QmV6aWVyQ3Vy
dmVEYXRhJikgZmluYWw7CisjZW5kaWYKKyAgICB2b2lkIHJlY29yZEZpbGxQYXRoKGNvbnN0IFdl
YkNvcmU6OlBhdGgmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEZpbGxFbGxpcHNlKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkR2V0UGl4ZWxCdWZmZXIo
V2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgZmluYWw7CisgICAgdm9pZCByZWNvcmRQdXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJD
b3JlOjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24pIGZpbmFsOworICAgIHZvaWQgcmVjb3JkUGFpbnRGcmFtZUZvck1lZGlhKE1lZGlhUGxh
eWVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbikgZmluYWw7CisgICAg
dm9pZCByZWNvcmRTdHJva2VSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0KSBm
aW5hbDsKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKyAgICB2b2lkIHJlY29yZFN0cm9r
ZUxpbmUoY29uc3QgV2ViQ29yZTo6TGluZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFN0
cm9rZUFyYyhjb25zdCBXZWJDb3JlOjpBcmNEYXRhJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRT
dHJva2VRdWFkQ3VydmUoY29uc3QgV2ViQ29yZTo6UXVhZEN1cnZlRGF0YSYpIGZpbmFsOworICAg
IHZvaWQgcmVjb3JkU3Ryb2tlQmV6aWVyQ3VydmUoY29uc3QgV2ViQ29yZTo6QmV6aWVyQ3VydmVE
YXRhJikgZmluYWw7CisjZW5kaWYKKyAgICB2b2lkIHJlY29yZFN0cm9rZVBhdGgoY29uc3QgV2Vi
Q29yZTo6UGF0aCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU3Ryb2tlRWxsaXBzZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZENsZWFyUmVjdChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyNpZiBVU0UoQ0cpCisgICAgdm9pZCByZWNv
cmRBcHBseVN0cm9rZVBhdHRlcm4oKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEFwcGx5RmlsbFBh
dHRlcm4oKSBmaW5hbDsKKyNlbmRpZgorICAgIHZvaWQgcmVjb3JkQXBwbHlEZXZpY2VTY2FsZUZh
Y3RvcihmbG9hdCkgZmluYWw7CisKKyAgICB2b2lkIHJlY29yZFJlc291cmNlVXNlKFdlYkNvcmU6
Ok5hdGl2ZUltYWdlJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRSZXNvdXJjZVVzZShXZWJDb3Jl
OjpGb250JikgZmluYWw7CisgICAgdm9pZCByZWNvcmRSZXNvdXJjZVVzZShXZWJDb3JlOjpJbWFn
ZUJ1ZmZlciYpIGZpbmFsOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dD4gY3JlYXRlTmVzdGVkQ29udGV4dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGlu
aXRpYWxDbGlwLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pIGZp
bmFsOworCisgICAgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fZGVzdGlu
YXRpb25CdWZmZXJJZGVudGlmaWVyOworICAgIFdlYWtQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+
IG1faW1hZ2VCdWZmZXI7CisgICAgV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+
IG1fcmVuZGVyaW5nQmFja2VuZDsKKyAgICBib29sIG1fbmVlZHNGbHVzaCB7IGZhbHNlIH07Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmNwcAppbmRleCA3NzJmYmNhNjhmYTdmMDMxYWQwNDIwMWU5ZmUwMTZkZWQ3YjU3MTli
Li5iZjQ5YTgyN2QyMDI4MjRhNDdiMGQ2NTY5NmM2Y2EyYzdkOGZiOTFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC00NDcsNiArNDQ3LDMwIEBAIFJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZW5zdXJl
QmFja2VuZENyZWF0ZWQoKQogICAgIHJldHVybiByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigp
OwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVjb3JkTmF0aXZlSW1h
Z2VVc2UoTmF0aXZlSW1hZ2UmIGltYWdlKQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LnJlY29yZE5hdGl2ZUltYWdlVXNlKGltYWdlKTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OnJlY29yZEZvbnRVc2UoRm9udCYgZm9udCkKK3sKKyAgICBtX3JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5yZWNvcmRGb250VXNlKGZvbnQpOworfQorCit2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVjb3JkSW1hZ2VCdWZmZXJVc2UoSW1hZ2VCdWZmZXIm
IGltYWdlQnVmZmVyKQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LnJlY29yZElt
YWdlQnVmZmVyVXNlKGltYWdlQnVmZmVyKTsKK30KKworYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmlzQ2FjaGVkKGNvbnN0IEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QK
K3sKKyAgICBpZiAoYXV0byBjYWNoZWRJbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNhY2hlZEltYWdlQnVmZmVyKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcigpKSkgeworICAgICAgICBBU1NFUlQoY2FjaGVkSW1hZ2VCdWZmZXIgPT0gJmltYWdl
QnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRleCAyMzk0ZmY1YWRj
NGQ3ODNiOGFmZDJkYzEzMjFmMmY1NDc1YTIxMjg1Li5hYTAyM2RjZjJkYjVhMzNhYWIxM2Y2OWJh
MDE2MjkyZDMwNWFmNzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgK
QEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVzdHJveUdldFBpeGVsQnVmZmVy
U2hhcmVkTWVtb3J5KCk7CiAKICAgICB2b2lkIGNyZWF0ZVJlbW90ZUltYWdlQnVmZmVyKFdlYkNv
cmU6OkltYWdlQnVmZmVyJik7CisgICAgYm9vbCBpc0NhY2hlZChjb25zdCBXZWJDb3JlOjpJbWFn
ZUJ1ZmZlciYpIGNvbnN0OwogICAgICAgICAKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCiAg
ICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwpAQCAtMTI0LDYgKzEyNSwyMiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25DbG9zZWQoKSBjb25zdCB7IHJldHVybiAhbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bjsgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KKyAgICB2b2lkIHNl
bmRUb1N0cmVhbShUJiYgbWVzc2FnZSwgT2JqZWN0SWRlbnRpZmllcjxVPiBpZGVudGlmaWVyKQor
ICAgIHsKKyAgICAgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQuCisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIHNlbmRUb1N0cmVhbShUJiYgbWVzc2Fn
ZSkKKyAgICB7CisgICAgICAgIHNlbmRUb1N0cmVhbShXVEZNb3ZlKG1lc3NhZ2UpLCByZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcigpKTsKKyAgICB9CisKKyAgICB2b2lkIHJlY29yZE5hdGl2ZUlt
YWdlVXNlKFdlYkNvcmU6Ok5hdGl2ZUltYWdlJik7CisgICAgdm9pZCByZWNvcmRGb250VXNlKFdl
YkNvcmU6OkZvbnQmKTsKKyAgICB2b2lkIHJlY29yZEltYWdlQnVmZmVyVXNlKFdlYkNvcmU6Oklt
YWdlQnVmZmVyJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KFdlYlBhZ2UmKTsKIAo=
</data>
<flag name="commit-queue"
          id="464791"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440745</attachid>
            <date>2021-10-10 17:18:44 -0700</date>
            <delta_ts>2021-10-10 17:40:29 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231484-20211010171843.patch</filename>
            <type>text/plain</type>
            <size>99570</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjc5ZWFiMTUzNmJlNWUz
ZTdlNDc3ODUyYmI0ZjgyMGEzNTE4NDM1MS4uODE1ZTI0MWVlNmI1ZjY0ZTU1Y2YxNmVmM2VkYTNl
MDRiOWU2OGUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEwLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ4
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBX
ZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmg6CisKKyAgICAgICAgQWRkIGRlZmF1bHQgY29uc3RydWN0b3JzIGZv
ciBhIGNvdXBsZSBvZiBkaXNwbGF5IGxpc3QgaXRlbXMgc28gdGhhdCB0aGV5IGNhbiBiZSBlbmNv
ZGVkIGFzIElQQyBhcmd1bWVudHMgdXNpbmcKKyAgICAgICAgU2ltcGxlQXJndW1lbnRDb2Rlci4K
KwogMjAyMS0xMC0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBFeHBvcnQgc29tZSBkaXNwbGF5IGxpc3QgaXRlbSBtZXRob2RzIGZvciB1c2UgaW4g
V2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBjMTk5ZmY5NmViZTcwYTVjNDIxOWE2ZjdhZDg0OTYxZDc1YzA5
M2NmLi41YmI4ZGU2ZDQ2YjFiYTBkNGQ2NDJlMDRhNmZhNmI0NmIyZDFjZTJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxNSBAQAorMjAyMS0xMC0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5IGFuZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgdHdvIG5ldyBjbGFzc2VzIHRo
YXQgaG91c2UgbW9zdCBvZiB0aGUgbG9naWMgZm9yIHByb3BhZ2F0aW5nIGRpc3BsYXkgbGlzdCBp
dGVtcyBmcm9tIHRoZSB3ZWIgY29udGVudAorICAgICAgICBwcm9jZXNzIHRvIHRoZSBHUFUgcHJv
Y2Vzcy4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5IGlzIGEgc3ViY2xhc3Mgb2YgRGlz
cGxheUxpc3Q6OlJlY29yZGVyIHRoYXQgcmVjb3JkcworICAgICAgICBlYWNoIGl0ZW0gYnkgc2Vu
ZGluZyBpdCB0byB0aGUgR1BVIHByb2Nlc3MgdGhyb3VnaCBhIHN0cmVhbSBjb25uZWN0aW9uLCB3
aGljaCB3aWxsIGJlIGFkZGVkIHRvCisgICAgICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSBpbiBhIHN1YnNlcXVlbnQgcGF0Y2guIFRoZSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkgd2lsbCBiZSBtYW5hZ2VkIGJ5CisgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyUHJveHkgaW4g
dGhlIHdlYiBwcm9jZXNzLiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyIGFjdHMgYXMgdGhlIHN0
cmVhbWluZyBJUEMgZGVzdGluYXRpb24gaW4KKyAgICAgICAgdGhlIEdQVSBwcm9jZXNzLCBhbmQg
aGFuZGxlcyB0aGUgaW5jb21pbmcgZGlzcGxheSBsaXN0IGl0ZW1zIGJ5IGFwcGx5aW5nIHRoZW0g
dG8gdGhlIHBsYXRmb3JtIGdyYXBoaWNzIGNvbnRleHQuCisKKyAgICAgICAgRm9yIG1vc3Qgb2Yg
dGhlc2UgZGlzcGxheSBsaXN0IGl0ZW1zLCB3ZSBjYW4gcHJvcGFnYXRlIHRoZW0gdG8gdGhlIEdQ
VSBwcm9jZXNzIGJ5IHNlbmRpbmcgZWFjaCBkaXNwbGF5IGxpc3QKKyAgICAgICAgaXRlbSdzIGNv
bnN0cnVjdG9yIGFyZ3VtZW50cyBhcyBzZXBhcmF0ZSBJUEMgYXJndW1lbnRzLiBJbiBhIGZ1dHVy
ZSBwYXRjaCwgd2Ugc2hvdWxkIGFkZCBzdXBwb3J0IGZvciBlbmNvZGluZworICAgICAgICB0aGUg
Zm9sbG93aW5nIGRpc3BsYXkgbGlzdCBpdGVtcyBpbiB0aGUgc2FtZSB3YXk6CisKKyAgICAgICAg
LSBTZXRJbmxpbmVGaWxsQ29sb3IKKyAgICAgICAgLSBTZXRJbmxpbmVTdHJva2VDb2xvcgorICAg
ICAgICAtIFNldFN0YXRlCisgICAgICAgIC0gU2V0TGluZURhc2gKKyAgICAgICAgLSBEcmF3R2x5
cGhzCisgICAgICAgIC0gRHJhd0xpbmVzRm9yVGV4dAorICAgICAgICAtIEZpbGxSZWN0V2l0aEdy
YWRpZW50CisKKyAgICAgICAgRm9yIG5vdywgdGhlIGFib3ZlIGRpc3BsYXkgbGlzdCBpdGVtcyBh
cmUgZW5jb2RlZCBhbmQgZGVjb2RlZCBhcyB3aG9sZSBpdGVtcy4gV2hpbGUgdGhlcmUncyBubyBw
cmFjdGljYWwKKyAgICAgICAgZGlzYWR2YW50YWdlIHRvIGltcGxlbWVudGluZyBpdCB0aGlzIHdh
eSwgaXQgd291bGQgYmUgbmljZSB0byBtYWtlIGl0IGNvbnNpc3RlbnQuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpyZXNvdXJjZUNhY2hlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd2luZ0NvbnRleHQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdGFydExpc3Rl
bmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpzYXZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6cmVzdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnJvdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OnNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0
Q1RNKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y29uY2F0
ZW5hdGVDVE0pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpz
ZXRJbmxpbmVGaWxsQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpzZXRJbmxpbmVTdHJva2VDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OnNldFN0cm9rZVRoaWNrbmVzcyk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TGluZUNhcCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldExpbmVEYXNoKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TGluZUpvaW4pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xlYXJTaGFkb3cpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGlwKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcE91dCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBUb0ltYWdlQnVmZmVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcE91dFRvUGF0aCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBQYXRoKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YmVnaW5DbGlwVG9EcmF3
aW5nQ29tbWFuZHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjplbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZW5kVHJhbnNwYXJl
bmN5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpk
cmF3UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRy
YXdMaW5lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJh
d0xpbmVzRm9yVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3RWxsaXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdQYXRoKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZvY3VzUmluZ1BhdGgpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nUmVjdHMpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxSZWN0V2l0aENvbG9yKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJlY3RXaXRo
R3JhZGllbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpm
aWxsQ29tcG9zaXRlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxMaW5lKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbEFyYyk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxRdWFkQ3VydmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsQmV6aWVyQ3VydmUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUGF0aCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxFbGxpcHNlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Z2V0UGl4ZWxCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnBhaW50RnJhbWVG
b3JNZWRpYSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0
cm9rZVJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpz
dHJva2VMaW5lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
c3Ryb2tlQXJjKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
c3Ryb2tlUXVhZEN1cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6c3Ryb2tlQmV6aWVyQ3VydmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6c3Ryb2tlRWxsaXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OmNsZWFyUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OmFwcGx5U3Ryb2tlUGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmFwcGx5RmlsbFBhdHRlcm4pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjphcHBseURldmljZVNjYWxlRmFjdG9y
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Zmx1c2hDb250
ZXh0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmhhbmRsZUl0ZW0pOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVhZCk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6
CisKKyAgICAgICAgQWRkIGhlbHBlciBtZXRob2RzIHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQg
dGhhdCBhcmUgY2FsbGVkIGZyb20gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlw
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCisgICAgICAgIE1ha2UgaXQgcG9z
c2libGUgdG8gZW5jb2RlIGFuZCBkZWNvZGUgU2V0SW5saW5lRmlsbENvbG9yIGFuZCBTZXRJbmxp
bmVTdHJva2VDb2xvciB1c2luZyBzaW1wbGUgYXJndW1lbnQgY29kZXIuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjptX3JlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OmdldFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpwdXRQaXhlbEJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y2FuRHJhd0ltYWdlQnVm
ZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZW5kZXJpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSZXN0b3JlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRUcmFuc2xhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJvdGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZFNldENUTSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkQ29uY2F0ZW5hdGVDVE0pOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldElubGluZUZpbGxDb2xvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0
SW5saW5lU3Ryb2tlQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZFNldFN0cm9rZVRoaWNrbmVzcyk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0U3RhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldExpbmVD
YXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZFNldExpbmVEYXNoKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmRTZXRMaW5lSm9pbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0TWl0ZXJMaW1pdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xlYXJTaGFkb3cp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZENsaXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZENsaXBPdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OnJlY29yZENsaXBUb0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwT3V0VG9QYXRoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwUGF0
aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkQmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
RHJhd0dseXBocyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkRHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXR0ZXJu
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNv
cmRCZWdpblRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRFbmRUcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd1JlY3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZERyYXdMaW5lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmREcmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRE
cmF3RWxsaXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkRHJhd1BhdGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdGb2N1c1JpbmdQYXRoKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3Rm9jdXNSaW5nUmVj
dHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZEZpbGxSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJlY3RXaXRoR3JhZGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZp
bGxDb21wb3NpdGVkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkRmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhSb3VuZGVkSG9s
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkRmlsbExpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZEZpbGxBcmMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxRdWFkQ3VydmUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxCZXppZXJDdXJ2ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmls
bFBhdGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZEZpbGxFbGxpcHNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpyZWNvcmRHZXRQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUHV0UGl4ZWxCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFBhaW50
RnJhbWVGb3JNZWRpYSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkU3Ryb2tlUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlTGluZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlQXJjKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VR
dWFkQ3VydmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZFN0cm9rZUJlemllckN1cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VQYXRoKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VFbGxpcHNlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRD
bGVhclJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZEFwcGx5U3Ryb2tlUGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQXBwbHlGaWxsUGF0dGVybik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQXBwbHlEZXZp
Y2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkUmVzb3VyY2VVc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OmZsdXNoQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y3JlYXRlTmVzdGVkQ29udGV4dCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6On5SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlc2V0TmVlZHNGbHVzaCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6bmVlZHNGbHVzaCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
c2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkRHJhd1BhdHRlcm4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6cmVjb3JkTmF0aXZlSW1hZ2VVc2UpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZEZvbnRVc2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZEltYWdlQnVmZmVy
VXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojppc0Nh
Y2hlZCBjb25zdCk6CisKKyAgICAgICAgQWRkIGhlbHBlciBtZXRob2RzIHRvIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSB0aGF0IGFyZSBjYWxsZWQgZnJvbSBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpzZW5kVG9TdHJlYW0pOgorCiAyMDIxLTEwLTA4ICBCSiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogcHJvdmlkZSBh
IHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgbm90aWZpZWQgd2hl
biB0aGUgaW5zcGVjdGVkIHBhZ2UgbmF2aWdhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGQ2ZTI1Njc3YmVmNzE1YmE0
OWNmMDQxZTE0YzllYzgwMWM1Yzk3YzMuLjgzMDg3Y2U2OTA0YzViZDEyMTk3YTQ5YTY4ZDExNWVh
OGE1ZmZjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCkBAIC00MzAsNyArNDMwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZSB9KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEltYWdlRHJh
d1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBj
b25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CiAKLSAgICB2aXJ0dWFsIEltYWdlRHJhd1Jl
c3VsdCBkcmF3SW1hZ2VGb3JDYW52YXMoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
LCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY2FudmFzQ29sb3JTcGFjZSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlRm9yQ2FudmFzKEltYWdlJiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNhbnZhc0Nv
bG9yU3BhY2UpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQg
ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJ
bWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291
cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlLCBJ
bWFnZTo6VGlsZVJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAxMzk3
ODAxYjRkOGUwZmZjZDY5NDY3Y2ExNDIyMGQwMDUzY2YxNWVlLi44MTYwZGRmMGExOWMzMzBkY2U1
ZDMyMTYzYWRhODIzNmU1YTQxNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgLy8g
Q3JlYXRlIGFuIGltYWdlIGJ1ZmZlciBjb21wYXRpYmxlIHdpdGggdGhlIGNvbnRleHQsIHdpdGgg
c3VpdGFibGUgcmVzb2x1dGlvbiBmb3IgZHJhd2luZyBpbnRvIHRoZSBidWZmZXIgYW5kIHRoZW4g
aW50byB0aGlzIGNvbnRleHQuCiAgICAgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRl
Q29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBjb25zdCBHcmFwaGljc0NvbnRleHQm
KTsKLSAgICBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVDb21wYXRpYmxlQnVmZmVy
KGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIGNvbnN0IEdy
YXBoaWNzQ29udGV4dCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7CiAgICAgc3RhdGlj
IFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNp
emUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYs
IGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCiAgICAgLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSB1
c2VkIHdoZW4gY2xhbXBpbmcgdGhlIEltYWdlQnVmZmVyIHdoaWNoIGlzIGNyZWF0ZWQgZm9yIGZp
bHRlciwgbWFza2VyIG9yIGNsaXBwZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApp
bmRleCA4NGIwYmZhZmY4MDQwNjQyYTUxNjRhNjJjNTAwNTAxYjFmYjNkNmVhLi4xM2FlODc5OGIy
NzRmYzgwNDMxYmJlYjM1MTUxZTU2YjM4MjhmYmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKQEAgLTE4OCw2ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
RHJhd2luZ0l0ZW0gPSBmYWxzZTsKIAorICAgIFNldElubGluZUZpbGxDb2xvcigpID0gZGVmYXVs
dDsKICAgICBTZXRJbmxpbmVGaWxsQ29sb3IoU1JHQkE8dWludDhfdD4gY29sb3JEYXRhKQogICAg
ICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKICAgICB7CkBAIC0yMDYsNiArMjA3LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7CiAKKyAgICBT
ZXRJbmxpbmVTdHJva2VDb2xvcigpID0gZGVmYXVsdDsKICAgICBTZXRJbmxpbmVTdHJva2VDb2xv
cihTUkdCQTx1aW50OF90PiBjb2xvckRhdGEpCiAgICAgICAgIDogbV9jb2xvckRhdGEoY29sb3JE
YXRhKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDMxNTIxODMwZjNhYTc3Mjg4MjcxMDhk
ZGVmZTFiZGRlN2Y5MWQzMTQuLjgxM2NiOTVlOTI1OGU5NTUzYjlhZGY5MDMyNzIyNTVkNjhiM2Vm
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTI3LDYgKzEyNyw3IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKICAgICBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MK
ICAgICBHUFVQcm9jZXNzL0dQVVByb2Nlc3MKIAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcgogICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0wKICAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CmluZGV4IDc0ZmZhMzUyZTlkZTAwY2I4NjZmOTAyYzZlYWJkZWFhZGE2OWNmODYuLmVkZmZhNjYx
OGNiNDRmZDQxM2Q3ODZhNjA5MzAzMGQzODI4NTgwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTIwLDYgKzIwLDggQEAgJChKQVZBU0NS
SVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS9tb2RlbHMucHkKICQoSkFWQVNDUklQVENPUkVf
UFJJVkFURV9IRUFERVJTX0RJUikveHhkLnBsCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dC5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGY0ZjhhYzI1N2QxNTVlMWZl
NmY2MTY3YWU0M2M5Y2U1NzVhMWViZTkuLmExNjliODg0NTM2NDkxMmFmNzI3YzVhYWQ4MDFmY2M1
MzRiOWU3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdApAQCAtMjAzLDEyICsyMDMsMTggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VzUmVw
bGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dE1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IGMzMTQ3NDZjMmNlODA1ZmZkYjk5MDI5MWRiODY3YjI5ZmQyYmVhMTIuLmQ5ZjQ2Nzk4MjRh
NjcyYmM4M2I0M2UzNjAwYmVhOTQyZjBlMDE2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTI0Nyw2ICsyNDcsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlQbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eSBcCiAJUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
IFwKIAlHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgXAorCUdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBcCiAJR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kIFwKIAlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMIFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94
eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE1NGY3ZGIxYzg1
OTNiODNkYWRkYjBkZTk0MmNjNTg2ZDU3ZmIzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcApA
QCAtMCwwICsxLDQ2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXMuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcihJbWFnZUJ1ZmZlciYg
aW1hZ2VCdWZmZXIsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQp
CisgICAgOiBtX2ltYWdlQnVmZmVyKGltYWdlQnVmZmVyKQorICAgICwgbV9pbWFnZUJ1ZmZlcklk
ZW50aWZpZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgICwgbV9yZW5kZXJpbmdCYWNrZW5k
KHJlbmRlcmluZ0JhY2tlbmQpCit7Cit9CisKK1JlbW90ZVJlc291cmNlQ2FjaGUmIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OnJlc291cmNlQ2FjaGUoKQoreworICAgIHJldHVybiBtX3JlbmRl
cmluZ0JhY2tlbmQtPnJlbW90ZVJlc291cmNlQ2FjaGUoKTsKK30KKworR3JhcGhpY3NDb250ZXh0
JiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3aW5nQ29udGV4dCgpCit7CisgICAgcmV0
dXJuIG1fbWFza0ltYWdlQnVmZmVyID8gbV9tYXNrSW1hZ2VCdWZmZXItPmNvbnRleHQoKSA6IG1f
aW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpzdGFydExpc3RlbmluZ0ZvcklQQygpCit7CisgICAgQVNTRVJUKCFtX2lzTGlzdGVuaW5n
Rm9ySVBDKTsKKyAgICBtX2lzTGlzdGVuaW5nRm9ySVBDID0gdHJ1ZTsKKyAgICAvLyBGSVhNRTog
Tm90IGltcGxlbWVudGVkIHlldC4KK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKK3sKKyAgICBpZiAoIW1faXNMaXN0ZW5pbmdGb3JJUEMp
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0Lgor
ICAgIG1faXNMaXN0ZW5pbmdGb3JJUEMgPSBmYWxzZTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzYXZlKCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTYXZl
KCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnJlc3RvcmUoKQorewor
ICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlJlc3RvcmUoKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6dHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpCit7CisgICAg
aGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6VHJhbnNsYXRlKHgsIHkpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpyb3RhdGUoZmxvYXQgYW5nbGUpCit7CisgICAgaGFuZGxl
SXRlbShEaXNwbGF5TGlzdDo6Um90YXRlKGFuZ2xlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6c2NhbGUoY29uc3QgRmxvYXRTaXplJiBzY2FsZSkKK3sKKyAgICBoYW5k
bGVJdGVtKERpc3BsYXlMaXN0OjpTY2FsZShzY2FsZSkpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OnNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGN0bSkKK3sKKyAg
ICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTZXRDVE0oY3RtKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6Y29uY2F0ZW5hdGVDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBjdG0pCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q29uY2F0ZW5hdGVDVE0oY3Rt
KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0SW5saW5lRmlsbENv
bG9yKERpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3ImJiBpdGVtKQoreworICAgIGhhbmRs
ZUl0ZW0oV1RGTW92ZShpdGVtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6c2V0SW5saW5lU3Ryb2tlQ29sb3IoRGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9y
JiYgaXRlbSkKK3sKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSkpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0aGlja25l
c3MpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U2V0U3Ryb2tlVGhpY2tuZXNzKHRo
aWNrbmVzcykpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldFN0YXRl
KERpc3BsYXlMaXN0OjpTZXRTdGF0ZSYmIGl0ZW0pCit7CisgICAgYXV0byBzdHJva2VQYXR0ZXJu
SW1hZ2VJZGVudGlmaWVyID0gaXRlbS5zdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKCk7Cisg
ICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBzdHJva2VQYXR0ZXJuSW1hZ2U7CisgICAgaWYgKHN0cm9r
ZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIpCisgICAgICAgIHN0cm9rZVBhdHRlcm5JbWFnZSA9IHJl
c291cmNlQ2FjaGUoKS5jYWNoZWROYXRpdmVJbWFnZShzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlm
aWVyKTsKKworICAgIGF1dG8gZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIgPSBpdGVtLmZpbGxQ
YXR0ZXJuSW1hZ2VJZGVudGlmaWVyKCk7CisgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBmaWxsUGF0
dGVybkltYWdlOworICAgIGlmIChmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllcikKKyAgICAgICAg
ZmlsbFBhdHRlcm5JbWFnZSA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWROYXRpdmVJbWFnZShmaWxs
UGF0dGVybkltYWdlSWRlbnRpZmllcik7CisKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSks
IHN0cm9rZVBhdHRlcm5JbWFnZS5nZXQoKSwgZmlsbFBhdHRlcm5JbWFnZS5nZXQoKSk7CisKKyAg
ICBpZiAoc3Ryb2tlUGF0dGVybkltYWdlKQorICAgICAgICByZXNvdXJjZUNhY2hlKCkucmVjb3Jk
UmVzb3VyY2VVc2Uoc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcik7CisKKyAgICBpZiAoZmls
bFBhdHRlcm5JbWFnZSkKKyAgICAgICAgcmVzb3VyY2VDYWNoZSgpLnJlY29yZFJlc291cmNlVXNl
KGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpzZXRMaW5lQ2FwKExpbmVDYXAgbGluZUNhcCkKK3sKKyAgICBoYW5kbGVJdGVt
KERpc3BsYXlMaXN0OjpTZXRMaW5lQ2FwKGxpbmVDYXApKTsKK30KKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpzZXRMaW5lRGFzaChEaXNwbGF5TGlzdDo6U2V0TGluZURhc2gmJiBp
dGVtKQoreworICAgIGhhbmRsZUl0ZW0oV1RGTW92ZShpdGVtKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TGluZUpvaW4oTGluZUpvaW4gbGluZUpvaW4pCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U2V0TGluZUpvaW4obGluZUpvaW4pKTsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IGxpbWl0
KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlNldE1pdGVyTGltaXQobGltaXQpKTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGVhclNoYWRvdygpCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xlYXJTaGFkb3coKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xpcChyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcE91dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xpcE91dChyZWN0KSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QpCit7CisgICAgUmVmUHRyIGltYWdlQnVmZmVy
ID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hlZEltYWdlQnVmZmVyKGltYWdlQnVmZmVySWRlbnRpZmll
cik7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6
OkNsaXBUb0ltYWdlQnVmZmVyKGltYWdlQnVmZmVySWRlbnRpZmllciwgZGVzdGluYXRpb25SZWN0
KSwgKmltYWdlQnVmZmVyKTsKKyAgICByZXNvdXJjZUNhY2hlKCkucmVjb3JkUmVzb3VyY2VVc2Uo
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpjbGlwT3V0VG9QYXRoKGNvbnN0IFBhdGgmIHBhdGgpCit7CisgICAgaGFuZGxlSXRlbShE
aXNwbGF5TGlzdDo6Q2xpcE91dFRvUGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6Y2xpcFBhdGgoY29uc3QgUGF0aCYgcGF0aCwgV2luZFJ1bGUgcnVsZSkK
K3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpDbGlwUGF0aChwYXRoLCBydWxlKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YmVnaW5DbGlwVG9EcmF3aW5nQ29t
bWFuZHMoY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRGVzdGluYXRpb25Db2xv
clNwYWNlJiBjb2xvclNwYWNlKQoreworICAgIG1fbWFza0ltYWdlQnVmZmVyID0gSW1hZ2VCdWZm
ZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoZGVzdGluYXRpb24uc2l6ZSgpLCBjb2xvclNwYWNl
LCBkcmF3aW5nQ29udGV4dCgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjplbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbikK
K3sKKyAgICBhdXRvIG1hc2tJbWFnZUJ1ZmZlciA9IHN0ZDo6ZXhjaGFuZ2UobV9tYXNrSW1hZ2VC
dWZmZXIsIHsgfSk7CisgICAgaWYgKCFtYXNrSW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkcmF3aW5nQ29u
dGV4dCgpLmNsaXBUb0ltYWdlQnVmZmVyKCptYXNrSW1hZ2VCdWZmZXIsIGRlc3RpbmF0aW9uKTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3R2x5cGhzKERpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzJiYgaXRlbSkKK3sKKyAgICBhdXRvIGZvbnRJZGVudGlmaWVyID0gaXRl
bS5mb250SWRlbnRpZmllcigpOworICAgIFJlZlB0ciBmb250ID0gcmVzb3VyY2VDYWNoZSgpLmNh
Y2hlZEZvbnQoZm9udElkZW50aWZpZXIpOworICAgIGlmICghZm9udCkgeworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhhbmRsZUl0
ZW0oV1RGTW92ZShpdGVtKSwgKmZvbnQpOworICAgIHJlc291cmNlQ2FjaGUoKS5yZWNvcmRSZXNv
dXJjZVVzZShmb250SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6ZHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQor
eworICAgIFJlZlB0ciBpbWFnZUJ1ZmZlciA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWRJbWFnZUJ1
ZmZlcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlmICghaW1hZ2VCdWZmZXIpIHsKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyLCBkZXN0aW5hdGlvblJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpLCAqaW1hZ2VCdWZmZXIp
OworICAgIHJlc291cmNlQ2FjaGUoKS5yZWNvcmRSZXNvdXJjZVVzZShpbWFnZUJ1ZmZlcklkZW50
aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdOYXRpdmVJ
bWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBG
bG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sK
KyAgICBSZWZQdHIgaW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkTmF0aXZlSW1hZ2UoaW1h
Z2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIWltYWdlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlSXRlbShEaXNwbGF5
TGlzdDo6RHJhd05hdGl2ZUltYWdlKGltYWdlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3B0aW9ucyksICppbWFnZSk7CisgICAgcmVzb3VyY2VDYWNoZSgpLnJlY29y
ZFJlc291cmNlVXNlKGltYWdlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdl
SWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBSZWZQ
dHIgaW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkTmF0aXZlSW1hZ2UoaW1hZ2VJZGVudGlm
aWVyKTsKKyAgICBpZiAoIWltYWdlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJh
d1BhdHRlcm4oaW1hZ2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RSZWN0LCB0aWxlUmVjdCwg
dHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyksICppbWFnZSk7CisgICAgcmVzb3Vy
Y2VDYWNoZSgpLnJlY29yZFJlc291cmNlVXNlKGltYWdlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBv
cGFjaXR5KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkJlZ2luVHJhbnNwYXJlbmN5
TGF5ZXIob3BhY2l0eSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmVu
ZFRyYW5zcGFyZW5jeUxheWVyKCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpFbmRU
cmFuc3BhcmVuY3lMYXllcigpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykK
K3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3UmVjdChyZWN0LCBib3JkZXJUaGlj
a25lc3MpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3TGluZShj
b25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MikKK3sKKyAg
ICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3TGluZShwb2ludDEsIHBvaW50MikpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdMaW5lc0ZvclRleHQoRGlzcGxh
eUxpc3Q6OkRyYXdMaW5lc0ZvclRleHQmJiBpdGVtKQoreworICAgIGhhbmRsZUl0ZW0oV1RGTW92
ZShpdGVtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0RvdHNG
b3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IERvY3VtZW50TWFy
a2VyTGluZVN0eWxlJiBzdHlsZSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3
RG90c0ZvckRvY3VtZW50TWFya2VyKHJlY3QsIHN0eWxlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd0VsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQorewor
ICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdFbGxpcHNlKHJlY3QpKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3UGF0aChjb25zdCBQYXRoJiBwYXRoKQor
eworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdQYXRoKHBhdGgpKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nUGF0aChjb25zdCBQYXRo
JiBwYXRoLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit7
CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd0ZvY3VzUmluZ1BhdGgocGF0aCwgd2lk
dGgsIG9mZnNldCwgY29sb3IpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpkcmF3Rm9jdXNSaW5nUmVjdHMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RzLCBmbG9h
dCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgaGFuZGxl
SXRlbShEaXNwbGF5TGlzdDo6RHJhd0ZvY3VzUmluZ1JlY3RzKHJlY3RzLCB3aWR0aCwgb2Zmc2V0
LCBjb2xvcikpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpG
aWxsUmVjdChyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Zmls
bFJlY3RXaXRoQ29sb3IoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3Ip
Cit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoQ29sb3IocmVjdCwg
Y29sb3IpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUmVjdFdp
dGhHcmFkaWVudChEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQmJiBpdGVtKQorewor
ICAgIGhhbmRsZUl0ZW0oV1RGTW92ZShpdGVtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6ZmlsbENvbXBvc2l0ZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29u
c3QgQ29sb3ImIGNvbG9yLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9k
ZSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsQ29tcG9zaXRlZFJlY3QocmVj
dCwgY29sb3IsIG9wLCBibGVuZE1vZGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29u
c3QgQ29sb3ImIGNvbG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQoreworICAgIGhhbmRsZUl0ZW0o
RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdChyZWN0LCBjb2xvciwgYmxlbmRNb2RlKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJlY3RXaXRoUm91bmRlZEhv
bGUoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
SG9sZVJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlM
aXN0OjpGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShyZWN0LCByb3VuZGVkSG9sZVJlY3QsIGNvbG9y
KSk7Cit9CisKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpmaWxsTGluZShjb25zdCBMaW5lRGF0YSYgZGF0YSkKK3sKKyAgICBo
YW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsTGluZShkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbEFyYyhjb25zdCBBcmNEYXRhJiBkYXRhKQoreworICAg
IGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxBcmMoZGF0YSkpOworfQorCit2b2lkIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxRdWFkQ3VydmUoY29uc3QgUXVhZEN1cnZlRGF0YSYg
ZGF0YSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsUXVhZEN1cnZlKGRhdGEp
KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsQmV6aWVyQ3VydmUo
Y29uc3QgQmV6aWVyQ3VydmVEYXRhJiBkYXRhKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxp
c3Q6OkZpbGxCZXppZXJDdXJ2ZShkYXRhKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5MSU5F
X1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUGF0aChj
b25zdCBQYXRoJiBwYXRoKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxQYXRo
KHBhdGgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsRWxsaXBz
ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6
RmlsbEVsbGlwc2UocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmdldFBpeGVsQnVmZmVyKGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFBpeGVsQnVmZmVy
Rm9ybWF0JiBvdXRwdXRGb3JtYXQpCit7CisgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5wb3B1bGF0
ZUdldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5KG1faW1hZ2VCdWZmZXItPmdldFBpeGVsQnVmZmVy
KG91dHB1dEZvcm1hdCwgc3JjUmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBv
aW50JiBkZXN0UG9pbnQsIGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwgQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KQoreworICAgIG1faW1hZ2VCdWZmZXItPnB1dFBpeGVs
QnVmZmVyKHBpeGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnBhaW50RnJhbWVGb3JNZWRpYShNZWRp
YVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
bikKK3sKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnBlcmZvcm1XaXRoTWVkaWFQbGF5ZXJPbk1h
aW5UaHJlYWQoaWRlbnRpZmllciwgW2ltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlci5jb3B5UmVm
KCksIGRlc3RpbmF0aW9uXShNZWRpYVBsYXllciYgcGxheWVyKSB7CisgICAgICAgIC8vIEl0IGlz
IGN1cnJlbnRseSBub3Qgc2FmZSB0byBjYWxsIHBhaW50RnJhbWVGb3JNZWRpYSgpIG9mZiB0aGUg
bWFpbiB0aHJlYWQuCisgICAgICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkucGFpbnRGcmFtZUZv
ck1lZGlhKHBsYXllciwgZGVzdGluYXRpb24pOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9h
dCBsaW5lV2lkdGgpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlUmVjdChy
ZWN0LCBsaW5lV2lkdGgpKTsKK30KKworI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZUxpbmUoY29uc3QgTGluZURhdGEm
IGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlTGluZShkYXRhKSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tlQXJjKGNvbnN0IEFy
Y0RhdGEmIGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlQXJjKGRh
dGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VRdWFkQ3Vy
dmUoY29uc3QgUXVhZEN1cnZlRGF0YSYgZGF0YSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlM
aXN0OjpTdHJva2VRdWFkQ3VydmUoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OnN0cm9rZUJlemllckN1cnZlKGNvbnN0IEJlemllckN1cnZlRGF0YSYgZGF0YSkK
K3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTdHJva2VCZXppZXJDdXJ2ZShkYXRhKSk7
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCit7CisgICAg
aGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlUGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tlRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlRWxsaXBzZShyZWN0KSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xlYXJSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpDbGVhclJlY3Qo
cmVjdCkpOworfQorCisjaWYgVVNFKENHKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmFwcGx5U3Ryb2tlUGF0dGVybigpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6
QXBwbHlTdHJva2VQYXR0ZXJuKCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmFwcGx5RmlsbFBhdHRlcm4oKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkFw
cGx5RmlsbFBhdHRlcm4oKSk7Cit9CisKKyNlbmRpZiAvLyBVU0UoQ0cpCisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6YXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZh
Y3RvcikKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpBcHBseURldmljZVNjYWxlRmFj
dG9yKHNjYWxlRmFjdG9yKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
Zmx1c2hDb250ZXh0KEdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIG1faW1hZ2VCdWZmZXItPmZsdXNoQ29udGV4dCgpOworICAgIG1fcmVuZGVyaW5nQmFj
a2VuZC0+ZGlkRmx1c2goaWRlbnRpZmllciwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxOWEzZDM4NDA0NDQzZTU4ODVi
OTMzZjFiZjI5NTAwNmY0M2IzYTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0wLDAgKzEs
MTUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
IgorI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlN0cmVhbVNl
cnZlckNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOworY2xh
c3MgUmVtb3RlUmVzb3VyY2VDYWNoZTsKKworY2xhc3MgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ciA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFr
UHRyPFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IGNyZWF0ZShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYg
aW1hZ2VCdWZmZXIsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyKGltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tl
bmQpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7CisgICAgdm9p
ZCBzdG9wTGlzdGVuaW5nRm9ySVBDKCk7CisKKyAgICB2b2lkIHNhdmUoKTsKKyAgICB2b2lkIHJl
c3RvcmUoKTsKKyAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KTsKKyAgICB2b2lk
IHJvdGF0ZShmbG9hdCBhbmdsZSk7CisgICAgdm9pZCBzY2FsZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIHNjYWxlKTsKKyAgICB2b2lkIHNldENUTShjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKKyAgICB2b2lkIGNvbmNhdGVuYXRlQ1RNKGNvbnN0IFdlYkNvcmU6OkFmZmluZVRy
YW5zZm9ybSYpOworICAgIHZvaWQgc2V0SW5saW5lRmlsbENvbG9yKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTZXRJbmxpbmVGaWxsQ29sb3ImJik7CisgICAgdm9pZCBzZXRJbmxpbmVTdHJva2VDb2xv
cihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3ImJik7CisgICAgdm9p
ZCBzZXRTdHJva2VUaGlja25lc3MoZmxvYXQpOworICAgIHZvaWQgc2V0U3RhdGUoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlNldFN0YXRlJiYpOworICAgIHZvaWQgc2V0TGluZUNhcChXZWJDb3JlOjpM
aW5lQ2FwKTsKKyAgICB2b2lkIHNldExpbmVEYXNoKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRM
aW5lRGFzaCYmKTsKKyAgICB2b2lkIHNldExpbmVKb2luKFdlYkNvcmU6OkxpbmVKb2luKTsKKyAg
ICB2b2lkIHNldE1pdGVyTGltaXQoZmxvYXQpOworICAgIHZvaWQgY2xlYXJTaGFkb3coKTsKKyAg
ICB2b2lkIGNsaXAoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgdm9pZCBjbGlwT3V0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworICAgIHZvaWQgY2xpcFRvSW1hZ2VCdWZmZXIo
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uUmVjdCk7CisgICAgdm9pZCBjbGlwT3V0VG9QYXRoKGNvbnN0IFdl
YkNvcmU6OlBhdGgmKTsKKyAgICB2b2lkIGNsaXBQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmLCBX
ZWJDb3JlOjpXaW5kUnVsZSk7CisgICAgdm9pZCBiZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBXZWJDb3JlOjpEZXN0
aW5hdGlvbkNvbG9yU3BhY2UmKTsKKyAgICB2b2lkIGVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKTsKKyAgICB2b2lkIGRyYXdHbHlw
aHMoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMmJik7CisgICAgdm9pZCBkcmF3SW1h
Z2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVy
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnMmKTsKKyAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50
aW5nT3B0aW9ucyYpOworICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7CisgICAgdm9p
ZCBiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpOworICAgIHZvaWQgZW5kVHJh
bnNwYXJlbmN5TGF5ZXIoKTsKKyAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcyk7CisgICAgdm9pZCBkcmF3TGluZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBv
aW50Mik7CisgICAgdm9pZCBkcmF3TGluZXNGb3JUZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3TGluZXNGb3JUZXh0JiYpOworICAgIHZvaWQgZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxp
bmVTdHlsZSYpOworICAgIHZvaWQgZHJhd0VsbGlwc2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
Jik7CisgICAgdm9pZCBkcmF3UGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJik7CisgICAgdm9pZCBk
cmF3Rm9jdXNSaW5nUGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJiwgZmxvYXQgd2lkdGgsIGZsb2F0
IG9mZnNldCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2b2lkIGRyYXdGb2N1c1JpbmdS
ZWN0cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRo
LCBmbG9hdCBvZmZzZXQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBmaWxsUmVj
dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICB2b2lkIGZpbGxSZWN0V2l0aENvbG9y
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAg
dm9pZCBmaWxsUmVjdFdpdGhHcmFkaWVudChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RX
aXRoR3JhZGllbnQmJik7CisgICAgdm9pZCBmaWxsQ29tcG9zaXRlZFJlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBXZWJDb3JlOjpDb21wb3NpdGVP
cGVyYXRvciwgV2ViQ29yZTo6QmxlbmRNb2RlKTsKKyAgICB2b2lkIGZpbGxSb3VuZGVkUmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBX
ZWJDb3JlOjpCbGVuZE1vZGUpOworICAgIHZvaWQgZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisg
ICAgdm9pZCBmaWxsTGluZShjb25zdCBXZWJDb3JlOjpMaW5lRGF0YSYpOworICAgIHZvaWQgZmls
bEFyYyhjb25zdCBXZWJDb3JlOjpBcmNEYXRhJik7CisgICAgdm9pZCBmaWxsUXVhZEN1cnZlKGNv
bnN0IFdlYkNvcmU6OlF1YWRDdXJ2ZURhdGEmKTsKKyAgICB2b2lkIGZpbGxCZXppZXJDdXJ2ZShj
b25zdCBXZWJDb3JlOjpCZXppZXJDdXJ2ZURhdGEmKTsKKyNlbmRpZgorICAgIHZvaWQgZmlsbFBh
dGgoY29uc3QgV2ViQ29yZTo6UGF0aCYpOworICAgIHZvaWQgZmlsbEVsbGlwc2UoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0Jik7CisgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0
cHV0Rm9ybWF0KTsKKyAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IFdl
YkNvcmU6OlBpeGVsQnVmZmVyJiwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0
Rm9ybWF0KTsKKyAgICB2b2lkIHBhaW50RnJhbWVGb3JNZWRpYShXZWJDb3JlOjpNZWRpYVBsYXll
cklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24pOworICAg
IHZvaWQgc3Ryb2tlUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCBsaW5lV2lk
dGgpOworI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorICAgIHZvaWQgc3Ryb2tlTGluZShj
b25zdCBXZWJDb3JlOjpMaW5lRGF0YSYpOworICAgIHZvaWQgc3Ryb2tlQXJjKGNvbnN0IFdlYkNv
cmU6OkFyY0RhdGEmKTsKKyAgICB2b2lkIHN0cm9rZVF1YWRDdXJ2ZShjb25zdCBXZWJDb3JlOjpR
dWFkQ3VydmVEYXRhJik7CisgICAgdm9pZCBzdHJva2VCZXppZXJDdXJ2ZShjb25zdCBXZWJDb3Jl
OjpCZXppZXJDdXJ2ZURhdGEmKTsKKyNlbmRpZgorICAgIHZvaWQgc3Ryb2tlUGF0aChjb25zdCBX
ZWJDb3JlOjpQYXRoJik7CisgICAgdm9pZCBzdHJva2VFbGxpcHNlKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpOworICAgIHZvaWQgY2xlYXJSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OworI2lmIFVTRShDRykKKyAgICB2b2lkIGFwcGx5U3Ryb2tlUGF0dGVybigpOworICAgIHZvaWQg
YXBwbHlGaWxsUGF0dGVybigpOworI2VuZGlmCisgICAgdm9pZCBhcHBseURldmljZVNjYWxlRmFj
dG9yKGZsb2F0KTsKKyAgICB2b2lkIGZsdXNoQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRGbHVzaElkZW50aWZpZXIpOworCitwcml2YXRlOgorICAgIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmKTsKKworICAgIFJlbW90ZVJlc291cmNl
Q2FjaGUmIHJlc291cmNlQ2FjaGUoKTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGRy
YXdpbmdDb250ZXh0KCk7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSAuLi4g
QWRkaXRpb25hbEFyZ3M+CisgICAgdm9pZCBoYW5kbGVJdGVtKFQmJiBpdGVtLCBBZGRpdGlvbmFs
QXJncyYmIC4uLiBhcmdzKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IEluIHRoZSBmdXR1cmUs
IHdlIHNob3VsZCBjb25zaWRlciBidWZmZXJpbmcgdXAgYmF0Y2hlcyBvZiBkaXNwbGF5IGxpc3Qg
aXRlbXMgYmVmb3JlCisgICAgICAgIC8vIGFwcGx5aW5nIHRoZW0gaW5zdGVhZCBvZiBhcHBseWlu
ZyB0aGVtIGltbWVkaWF0ZWx5LCBzbyB0aGF0IHdlIGNhbiBhcHBseSBjbGlwcGluZyBhbmQgb2Nj
bHVzaW9uCisgICAgICAgIC8vIG9wdGltaXphdGlvbnMgdG8gc2tpcCBvdmVyIHBhcnRzIG9mIGEg
ZGlzcGxheSBsaXN0LCBpZiBwb3NzaWJsZS4KKyAgICAgICAgaXRlbS5hcHBseShkcmF3aW5nQ29u
dGV4dCgpLCBhcmdzLi4uKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNz
YWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKworICAgIFJlZjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9pbWFnZUJ1ZmZlcjsKKyAgICBR
dWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZp
ZXI7CisgICAgUmVmPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOworICAg
IGJvb2wgbV9pc0xpc3RlbmluZ0ZvcklQQyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWMxNDA5M2EzYjlhYmEw
YTFiZTcyMDY4N2VmYjQ2NjhiNTk1YTM2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2Vz
LmluCkBAIC0wLDAgKzEsOTggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgU2F2ZSgpCisgICAgUmVz
dG9yZSgpCisgICAgVHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpCisgICAgUm90YXRlKGZsb2F0
IGFuZ2xlKQorICAgIFNjYWxlKFdlYkNvcmU6OkZsb2F0U2l6ZSBzY2FsZSkKKyAgICBTZXRDVE0o
V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIGN0bSkKKyAgICBDb25jYXRlbmF0ZUNUTShXZWJDb3Jl
OjpBZmZpbmVUcmFuc2Zvcm0gY3RtKQorICAgIFNldElubGluZUZpbGxDb2xvcihXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yIGl0ZW0pCisgICAgU2V0SW5saW5lU3Ryb2tl
Q29sb3IoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yIGl0ZW0pCisg
ICAgU2V0U3Ryb2tlVGhpY2tuZXNzKGZsb2F0IHRoaWNrbmVzcykKKyAgICBTZXRTdGF0ZShXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGUgaXRlbSkKKyAgICBTZXRMaW5lQ2FwKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpMaW5lQ2FwIGxpbmVDYXApCisgICAgU2V0TGluZURhc2goV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlNldExpbmVEYXNoIGl0ZW0pCisgICAgU2V0TGluZUpvaW4oZW51bTp1aW50
OF90IFdlYkNvcmU6OkxpbmVKb2luIGxpbmVKb2luKQorICAgIFNldE1pdGVyTGltaXQoZmxvYXQg
bGltaXQpCisgICAgQ2xlYXJTaGFkb3coKQorICAgIENsaXAoV2ViQ29yZTo6RmxvYXRSZWN0IHJl
Y3QpCisgICAgQ2xpcE91dChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkKKyAgICBDbGlwVG9JbWFn
ZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0KQorICAg
IENsaXBPdXRUb1BhdGgoV2ViQ29yZTo6UGF0aCBwYXRoKQorICAgIENsaXBQYXRoKFdlYkNvcmU6
OlBhdGggcGF0aCwgZW51bTp1aW50OF90IFdlYkNvcmU6OldpbmRSdWxlIHdpbmRSdWxlKQorICAg
IEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlv
biwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpCisgICAgRW5kQ2xp
cFRvRHJhd2luZ0NvbW1hbmRzKFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlvbikKKyAgICBE
cmF3R2x5cGhzKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzIGl0ZW0pCisgICAgRHJh
d0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlvblJlY3QsIFdlYkNv
cmU6OkZsb2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlv
bnMgb3B0aW9ucykKKyAgICBEcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6
ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qgc3JjUmVj
dCwgc3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCisgICAgRHJh
d1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGRl
c3RSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGlsZVJlY3QsIFdlYkNvcmU6OkFmZmluZVRyYW5z
Zm9ybSB0cmFuc2Zvcm0sIFdlYkNvcmU6OkZsb2F0UG9pbnQgcGhhc2UsIFdlYkNvcmU6OkZsb2F0
U2l6ZSBzcGFjaW5nLCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9u
cykKKyAgICBCZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCisgICAgRW5kVHJh
bnNwYXJlbmN5TGF5ZXIoKQorICAgIERyYXdSZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBm
bG9hdCBib3JkZXJUaGlja25lc3MpCisgICAgRHJhd0xpbmUoV2ViQ29yZTo6RmxvYXRQb2ludCBw
b2ludDEsIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQyKQorICAgIERyYXdMaW5lc0ZvclRleHQo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdMaW5lc0ZvclRleHQgaXRlbSkKKyAgICBEcmF3RG90
c0ZvckRvY3VtZW50TWFya2VyKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBzdHJ1Y3QgV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCisgICAgRHJhd0VsbGlwc2UoV2ViQ29y
ZTo6RmxvYXRSZWN0IHJlY3QpCisgICAgRHJhd1BhdGgoV2ViQ29yZTo6UGF0aCBwYXRoKQorICAg
IERyYXdGb2N1c1JpbmdQYXRoKFdlYkNvcmU6OlBhdGggcGF0aCwgZmxvYXQgd2lkdGgsIGZsb2F0
IG9mZnNldCwgV2ViQ29yZTo6Q29sb3IgY29sb3IpCisgICAgRHJhd0ZvY3VzUmluZ1JlY3RzKFZl
Y3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHJlY3RzLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0
LCBXZWJDb3JlOjpDb2xvciBjb2xvcikKKyAgICBGaWxsUmVjdChXZWJDb3JlOjpGbG9hdFJlY3Qg
cmVjdCkKKyAgICBGaWxsUmVjdFdpdGhDb2xvcihXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgV2Vi
Q29yZTo6Q29sb3IgY29sb3IpCisgICAgRmlsbFJlY3RXaXRoR3JhZGllbnQoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRpZW50IGl0ZW0pCisgICAgRmlsbENvbXBvc2l0ZWRS
ZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBXZWJDb3JlOjpDb2xvciBjb2xvciwgZW51bTp1
aW50OF90IFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yIG9wLCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6QmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBGaWxsUm91bmRlZFJlY3QoV2ViQ29yZTo6Rmxv
YXRSb3VuZGVkUmVjdCByZWN0LCBXZWJDb3JlOjpDb2xvciBjb2xvciwgZW51bTp1aW50OF90IFdl
YkNvcmU6OkJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUo
V2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Qgcm91bmRl
ZEhvbGVSZWN0LCBXZWJDb3JlOjpDb2xvciBjb2xvcikKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhf
REFUQSkKKyAgICBGaWxsTGluZShzdHJ1Y3QgV2ViQ29yZTo6TGluZURhdGEgZGF0YSkKKyAgICBG
aWxsQXJjKHN0cnVjdCBXZWJDb3JlOjpBcmNEYXRhIGRhdGEpCisgICAgRmlsbFF1YWRDdXJ2ZShz
dHJ1Y3QgV2ViQ29yZTo6UXVhZEN1cnZlRGF0YSBkYXRhKQorICAgIEZpbGxCZXppZXJDdXJ2ZShz
dHJ1Y3QgV2ViQ29yZTo6QmV6aWVyQ3VydmVEYXRhIGRhdGEpCisjZW5kaWYKKyAgICBGaWxsUGF0
aChXZWJDb3JlOjpQYXRoIHBhdGgpCisgICAgRmlsbEVsbGlwc2UoV2ViQ29yZTo6RmxvYXRSZWN0
IHJlY3QpCisgICAgR2V0UGl4ZWxCdWZmZXIoV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBzdHJ1
Y3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQgb3V0cHV0Rm9ybWF0KQorICAgIFB1dFBpeGVs
QnVmZmVyKFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6SW50UG9pbnQgZGVzdFBv
aW50LCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciBwaXhlbEJ1ZmZlciwgZW51bTp1aW50OF90IFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkKKyAgICBQYWludEZyYW1lRm9y
TWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6
OkZsb2F0UmVjdCBkZXN0aW5hdGlvbikKKyAgICBTdHJva2VSZWN0KFdlYkNvcmU6OkZsb2F0UmVj
dCByZWN0LCBmbG9hdCBsaW5lV2lkdGgpCisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisg
ICAgU3Ryb2tlTGluZShzdHJ1Y3QgV2ViQ29yZTo6TGluZURhdGEgZGF0YSkKKyAgICBTdHJva2VB
cmMoc3RydWN0IFdlYkNvcmU6OkFyY0RhdGEgZGF0YSkKKyAgICBTdHJva2VRdWFkQ3VydmUoc3Ry
dWN0IFdlYkNvcmU6OlF1YWRDdXJ2ZURhdGEgZGF0YSkKKyAgICBTdHJva2VCZXppZXJDdXJ2ZShz
dHJ1Y3QgV2ViQ29yZTo6QmV6aWVyQ3VydmVEYXRhIGRhdGEpCisjZW5kaWYKKyAgICBTdHJva2VQ
YXRoKFdlYkNvcmU6OlBhdGggcGF0aCkKKyAgICBTdHJva2VFbGxpcHNlKFdlYkNvcmU6OkZsb2F0
UmVjdCByZWN0KQorICAgIENsZWFyUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkKKyNpZiBV
U0UoQ0cpCisgICAgQXBwbHlTdHJva2VQYXR0ZXJuKCkKKyAgICBBcHBseUZpbGxQYXR0ZXJuKCkK
KyNlbmRpZgorICAgIEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCisg
ICAgRmx1c2hDb250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwCmluZGV4IGZjY2VkN2Q1MWEyMTIyYTYwMDQ4OTllMTllMzgwY2JkNTg1NzIx
ZjEuLmM3ZDFhODNlZWZlMzFlN2MyOWQ3MjNkY2M1YWY3NTc4NjkyMmYyNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKQEAgLTc4Myw2ICs3ODMsMTQgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjp1cGRhdGVMYXN0S25vd25TdGF0ZShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUg
c3QKICAgICBtX2xhc3RLbm93blN0YXRlLnN0b3JlUmVsYXhlZChzdGF0ZSk7CiB9CiAKK3ZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVh
ZChNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChNZWRpYVBs
YXllciYpPiYmIGNhbGxiYWNrKQoreworICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChbJiwg
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcywg
aWRlbnRpZmllcl0geworICAgICAgICBpZiAoYXV0byBwbGF5ZXIgPSBncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLT5yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLm1lZGlhUGxheWVyKGlk
ZW50aWZpZXIpKQorICAgICAgICAgICAgY2FsbGJhY2soKnBsYXllcik7CisgICAgfSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggNDE5YWU2ZDE2ZjcyZDdkNTkzMTQxZmUyMjk2YWNmZTY5
YTFjNTkwYy4uNjI4ZWMzOWI2YTE4OWI4MmViYTRmZmYyNThmNjZhZDk2ODBkNzJkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5oCkBAIC05OSw2ICs5OSw4IEBAIHB1YmxpYzoKIAogICAgIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRTdGF0ZSBsYXN0S25vd25TdGF0ZSgpIGNvbnN0OwogCisgICAgdm9pZCBw
ZXJmb3JtV2l0aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciwgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpNZWRpYVBsYXllciYpPiYmKTsKKwogcHJp
dmF0ZToKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIHZv
aWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CmluZGV4IDQxYzc2YmRiOGRhNzE2NDVmMzg1M2EzM2ZhZDVkZDI1ZWQ3ODQ0MWMu
Ljc4MzlmNjk4ZGQ4MWE4MjQyZDFhYzNmMzI1NDY1YmYxNTAxNTU1MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNjkxLDEzICs2OTEsMTggQEAgZGVmIGhl
YWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXYWxsVGltZSc6IFsnPHd0Zi9XYWxsVGlt
ZS5oPiddLAogICAgICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQvV1RGU3RyaW5nLmg+J10sCiAg
ICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9uSUQuaD4nXSwKKyAgICAgICAg
J1dlYkNvcmU6OkFyY0RhdGEnOiBbJzxXZWJDb3JlL0lubGluZVBhdGhEYXRhLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZl
bnQuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkJlemllckN1cnZlRGF0YSc6IFsnPFdlYkNvcmUv
SW5saW5lUGF0aERhdGEuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkJsZW5kTW9kZSc6IFsnPFdl
YkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbic6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uJzogWyc8V2ViQ29yZS9Dcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpDT09QRGlzcG9zaXRp
b24nOiBbJzxXZWJDb3JlL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5Lmg+J10sCisgICAgICAgICdX
ZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcic6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQnOiBbJzxXZWJD
b3JlL0FwcEhpZ2hsaWdodC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6IFsnPFdlYkNvcmUvQ29sb3JTcGFjZS5oPiddLAor
ICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUnOiBbJzxXZWJDb3JlL0dy
YXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVu
dGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJzogWyc8V2ViQ29yZS9EcmFnRGF0YS5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kJzogWyc8V2ViQ29yZS9EcmFnQWN0
aW9ucy5oPiddLApAQCAtNzA4LDYgKzcxMyw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgogICAgICAgICAnV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmls
ZUNob29zZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJl
bW92YWxNb2RlJzogWyc8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OkZvbnRDaGFuZ2VzJzogWyc8V2ViQ29yZS9Gb250QXR0cmlidXRlQ2hhbmdl
cy5oPiddLAorICAgICAgICAnV2ViQ29yZTo6Rm9udFNtb290aGluZ01vZGUnOiBbJzxXZWJDb3Jl
L0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lTG9hZFR5cGUnOiBb
JzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkdlbmVy
aWNDdWVEYXRhJzogWyc8V2ViQ29yZS9JbmJhbmRHZW5lcmljQ3VlLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpHcmFtbWFyRGV0YWlsJzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPidd
LApAQCAtNzIzLDEwICs3MjksMTQgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAg
ICAgICdXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQnOiBbJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkJzog
Wyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6TGVnYWN5Q0RNU2Vzc2lvbkNsaWVudDo6TWVkaWFLZXlFcnJvckNvZGUnOiBbJzxXZWJDb3Jl
L0xlZ2FjeUNETVNlc3Npb24uaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkxpbmVDYXAnOiBbJzxX
ZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkxpbmVEYXRhJzog
Wyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TGluZUpv
aW4nOiBbJzxXZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Okxv
Y2tCYWNrRm9yd2FyZExpc3QnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3Jl
L01lZGlhUGxheWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjo6SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29y
ZS9Eb2N1bWVudExvYWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TW92ZURhdGEnOiBbJzxX
ZWJDb3JlL0lubGluZVBhdGhEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpOZXR3b3JrVHJh
bnNhY3Rpb25JbmZvcm1hdGlvbic6IFsnPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGEnOiBbJzxXZWJDb3Jl
L1Bhc3RlYm9hcmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSc6IFsn
PFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLApAQCAtNzQyLDYgKzc1Miw3IEBAIGRlZiBoZWFkZXJz
X2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQ
cmVzZXJ2ZVJlc29sdXRpb24nOiBbJzxXZWJDb3JlL0ltYWdlQnVmZmVyQmFja2VuZC5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInOiBbJzxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGlmaWVyLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpRdWFkQ3VydmVEYXRhJzogWyc8V2Vi
Q29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UmVjZW50U2VhcmNo
JzogWyc8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJl
cXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0JzogWyc8V2ViQ29yZS9Eb2N1bWVudFN0b3JhZ2VBY2Nl
c3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSc6IFsnPFdlYkNv
cmUvQXVkaW9TZXNzaW9uLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAppbmRleCA4NjdmNmQ1NDhiOWUyOTg0ZWM3MWYzM2RhMDI4OTg3MjM5
NzFjZDBkLi4wMzJlZjQ3M2I1ZDIwNjM1MjM3OTc5OTUwODY5YjgxMWYwYmYwZGEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTE1OSw2
ICsxNTksOSBAQCBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dQb2lu
dCkKIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRShDR0FmZmluZVRyYW5z
Zm9ybSkKICNlbmRpZgogCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcikKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRf
Q09ERVJfRk9SX1NPVVJDRShEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpCisKICN1
bmRlZiBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UKIAogc3RhdGljIHZv
aWQgZW5jb2RlU2hhcmVkQnVmZmVyKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNoYXJlZEJ1ZmZl
ciogYnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAppbmRleCA3ZThmZWM5ZmIzZjYyODVhZTdlNjBiM2YwNDg0YTFlZjk5Yzc2ZTZhLi4yMDhmMWI2
MTE3Yjg3OTBjYTQzNTE0YmFhNDE0NWQwNmMyNjJhZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9p
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRSZWN0Lmg+CkBAIC0yNTMsNiArMjU0LDkgQEAgREVGSU5FX1NJTVBMRV9BUkdVTUVO
VF9DT0RFUl9GT1JfSEVBREVSKENHUG9pbnQpCiBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVS
X0ZPUl9IRUFERVIoQ0dBZmZpbmVUcmFuc2Zvcm0pCiAjZW5kaWYKIAorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVG
aWxsQ29sb3IpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yKQorCiAjdW5kZWYgREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZz4gewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggYzRh
ODRlMWZiNmY0NjZiOGZiZDU0ZTZjYTQ2YzQ3MjQyMmIzYjBjOC4uN2UyM2Q2MDUyYzQ1MjRmMjdi
NzA0MjAyYWEwZTdjOTE3ZjFkYjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNSw2ICsyNSw3IEBAIEdQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuY3BwCitHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlLmNwcApAQCAtNjExLDYgKzYxMiw3IEBAIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0Rp
c3BsYXlMaXN0V3JpdGVySGFuZGxlLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCitXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTc1NSw2ICs3
NTcsNyBAQCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNw
cAogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCitSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbU1lc3NhZ2VS
ZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGVkMjA0MWZhNTJkZjM2YTkxNjZmYzcyODJlMTliNjRiOTFkNDliM2UuLjNi
MDdmYjNkNTY1MjBkY2M4ZWVmOGY5NTE2ODFiYjU4ZjU2YTQ3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA1Myw2ICsyMDUzLDkg
QEAKIAkJRjQ0MjkxOTYxRkE1OTQyQTAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0MjkxOTUx
RkE1OTQyQTAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnRJbnRlcm5hbC5oICovOyB9OwogCQlGNDQ4
MTU2NDIzODc4MjAwMDA5ODI2NTcgLyogV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0ODE1NjIyMzg3
ODIwMDAwOTgyNjU3IC8qIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKIAkJ
RjQ0REZFQjIxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NERGRUIwMUU5RTc1MkYwMDM4
RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi87IH07CisJCUY0NTE3RDdCMjZGQkNEMzkwMDRD
ODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUxN0Q3OTI2RkJDRDM4MDA0
Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oICovOyB9Owor
CQlGNDUxN0Q3QzI2RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUx
N0Q3QTI2RkJDRDM4MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgg
Ki87IH07CisJCUY0NTFDMEZFMjcwM0IyNjMwMDJCQTAzQiAvKiBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0OEJCOEREMjZGOTYzNUQwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHkuaCAqLzsgfTsKIAkJRjQ2NjBCQzIyNURFRjA4MTAwRTg2NTk4IC8qIFBhc3RlYm9hcmRB
Y2Nlc3NJbnRlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0NjYwQkMxMjVERUYwODEwMEU4NjU5OCAvKiBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50Lmgg
Ki87IH07CiAJCUY0ODU3MEEzMjY0NEJFQzUwMEMwNUY3MSAvKiBUaW1lb3V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDg1NzBBMjI2NDRCRUM0MDBD
MDVGNzEgLyogVGltZW91dC5oICovOyB9OwogCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyog
QXBwS2l0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDhEMkE4NDIxNTgzQTAyMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggKi87IH07CkBAIC02MTI5
LDkgKzYxMzIsMTcgQEAKIAkJRjQ0ODE1NjMyMzg3ODIwMDAwOTgyNjU3IC8qIFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NERGRUIwMUU5RTc1MkYwMDM4
RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYkljb25VdGlsaXRpZXMuaDsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NERGRUIxMUU5RTc1MkYwMDM4RDE5NiAvKiBX
ZWJJY29uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV2ViSWNvblV0aWxpdGllcy5tbTsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDUxN0Q3NzI2RkJDQ0U0MDA0Qzg0NzUgLyog
UmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZE1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCUY0NTE3RDc5MjZGQkNEMzgwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlGNDUxN0Q3QTI2RkJDRDM4MDA0Qzg0NzUg
LyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRjQ1MUMxMDAyNzAzRDg1MzAwMkJB
MDNCIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjQ2NjBCQzEyNURFRjA4MTAwRTg2NTk4IC8qIFBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVib2FyZEFjY2Vzc0ludGVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDdBMDUxNjI2ODI3QTA5MDA3RTVDRjIgLyogUXVpY2tMb29rUHJl
dmlld0FjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDg1NzBBMjI2NDRCRUM0MDBDMDVGNzEg
LyogVGltZW91dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lb3V0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0OEJCOEREMjZGOTYzNUQwMDFDMUM0MCAv
KiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY0OEJCOERFMjZGOTYzNUQwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4QkI4REYyNkY5NjM5MjAwMUMx
QzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDhC
QjhFMDI2Rjk2MzkyMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBODQyMTU4M0EwMjAwQzY3NTJCIC8qIEFwcEtpdFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBcHBLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjQ5NkE0MkYxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaDsgcGF0aCA9IGlv
cy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ5NkE0MzAxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbTsgcGF0
aCA9IGlvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05MDcyLDYgKzkwODMsOCBAQAogCQkJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkz
MSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAqLywKIAkJCQk3MjdBN0Yz
ODI0MDc4OEYwMDA0RDI5MzEgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQu
aCAqLywKIAkJCQk3MjI3ODAwQjI0MDhCRDdEMDA3RDM3NkIgLyogUGxhdGZvcm1SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmggKi8sCisJCQkJRjQ4QkI4REUyNkY5NjM1RDAwMUMxQzQwIC8qIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAgKi8sCisJCQkJRjQ4QkI4REQyNkY5NjM1RDAw
MUMxQzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oICovLAogCQkJCTdCOTA0
MTY1MjU0QUZERUEwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCAq
LywKIAkJCQk3QjkwNDE2NjI1NEFGREVCMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eS5oICovLAogCQkJCTdCOTA0MTY3MjU0QUZFMTcwMDZFRUI4QyAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5Lm1lc3NhZ2VzLmluICovLApAQCAtOTA5NCw2ICs5MTA3LDkgQEAK
IAkJCQlGNDA5NENCQjI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUu
aCAqLywKIAkJCQk1NUFEMDk0MzI0MDhBMEU2MDBERTREMkYgLyogUGxhdGZvcm1SZW1vdGVJbWFn
ZUJ1ZmZlci5oICovLAogCQkJCTFDQzU0QUZEMjcwRjk2NTQwMDVCRjhCRSAvKiBRdWFsaWZpZWRS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJCQlGNDhCQjhFMDI2Rjk2MzkyMDAx
QzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgKi8sCisJCQkJRjQ4QkI4REYy
NkY5NjM5MjAwMUMxQzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCAqLywKKwkJCQlG
NDUxQzEwMDI3MDNEODUzMDAyQkEwM0IgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQk3QjkwNDE2OTI1NEFGRUE3MDA2RUVCOEMgLyogUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuY3BwICovLAogCQkJCTdCOTA0MTZBMjU0QUZFQTcwMDZFRUI4QyAvKiBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTC5oICovLAogCQkJCTdCOTA0MTY4MjU0QUZFQTcwMDZFRUI4QyAv
KiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbiAqLywKQEAgLTExNDY1LDYgKzEx
NDgxLDkgQEAKIAkJCQlDRDgyNTJEQTI1RDQ5MTU0MDA4NjJGRDggLyogUmVtb3RlUmVtb3RlQ29t
bWFuZExpc3RlbmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEODI1MkQ5MjVE
NDkxNTQwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJQcm94eU1lc3NhZ2Vz
LmggKi8sCiAJCQkJQ0Q4MjUyRDgyNUQ0OTE1MzAwODYyRkQ4IC8qIFJlbW90ZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lclByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJRjQ1MTdENzcyNkZCQ0NF
NDAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCUY0NTE3RDdBMjZGQkNEMzgwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
TWVzc2FnZXMuaCAqLywKKwkJCQlGNDUxN0Q3OTI2RkJDRDM4MDA0Qzg0NzUgLyogUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTBGNTk0N0E1MTg3QjUxNzYw
MDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJMEY1OTQ3QTYxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWVzc2FnZXMuaCAqLywKIAkJCQkxREQyQTY2QjI1NjIwMjFFMDBGRjdCNkYgLyogUmVt
b3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTI1NjAsNiAr
MTI1NzksNyBAQAogCQkJCUNEQUMyMEI0MjNGQjU4RjIwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0
YW5jZVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDQTIzRkMyRjc1MDAyMURFRTMg
LyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBD
OTIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uSWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjQ1MUMwRkUyNzAzQjI2MzAwMkJBMDNCIC8qIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQxODEw
NzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBENjIg
LyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjU4OCw2ICsx
MjYwOCw4IEBACiAJCQkJMUFDMTMzODYxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJl
Z2lzdHJ5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MDg4QTAwMjYxRkE4QkMwMEUy
NTAwRCAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjA4
OEEwMTI2MUZBOEM0MDBFMjUwMEQgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZENyZWF0aW9uUGFy
YW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ1MTdEN0MyNkZCQ0QzOTAwNEM4NDc1IC8q
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ1
MTdEN0IyNkZCQ0QzOTAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1Jl
cGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0MTRDRTJEMjY5REU2RUEwMEJEMjE2QSAvKiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0Nzkw
MTg3QjNCM0EwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMjcyM2M0NmQ5ZjE0ZmFiMTkw
Y2E0NzFlMGJhMzJiMzdhYjBkZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAK
QEAgLTAsMCArMSw0NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rp
c3BsYXlMaXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHkoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkmIHJlbmRlcmluZ0JhY2tlbmQsIGNvbnN0IEZsb2F0UmVjdCYgaW5p
dGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgRHJhd0dseXBoc1Jl
Y29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQorICAg
IDogRGlzcGxheUxpc3Q6OlJlY29yZGVyKHsgfSwgaW5pdGlhbENsaXAsIGluaXRpYWxDVE0sIGRl
Y29uc3RydWN0RHJhd0dseXBocykKKyAgICAsIG1fZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVy
KGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKQorICAgICwgbV9pbWFn
ZUJ1ZmZlcihtYWtlV2Vha1B0cihpbWFnZUJ1ZmZlcikpCisgICAgLCBtX3JlbmRlcmluZ0JhY2tl
bmQobWFrZVdlYWtQdHIocmVuZGVyaW5nQmFja2VuZCkpCit7Cit9CisKK1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eSYgcGFyZW50LCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxD
bGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pCisgICAgOiBEaXNwbGF5TGlz
dDo6UmVjb3JkZXIocGFyZW50LCB7IH0sIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNKQorICAgICwg
bV9kZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIocGFyZW50Lm1fZGVzdGluYXRpb25CdWZmZXJJ
ZGVudGlmaWVyKQorICAgICwgbV9pbWFnZUJ1ZmZlcihwYXJlbnQubV9pbWFnZUJ1ZmZlcikKKyAg
ICAsIG1fcmVuZGVyaW5nQmFja2VuZChwYXJlbnQubV9yZW5kZXJpbmdCYWNrZW5kKQoreworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Z2V0UGl4ZWxCdWZmZXIoY29u
c3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpH
ZXRQaXhlbEJ1ZmZlcihzb3VyY2VSZWN0LCBvdXRwdXRGb3JtYXQpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVm
ZmVyJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KQoreworICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlB1dFBpeGVsQnVmZmVyKHNy
Y1JlY3QsIGRlc3RQb2ludCwgcGl4ZWxCdWZmZXIsIGRlc3RGb3JtYXQpKTsKK30KKworYm9vbCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJ
bWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVuZGVyaW5n
QmFja2VuZCAmJiBtX3JlbmRlcmluZ0JhY2tlbmQtPmlzQ2FjaGVkKGltYWdlQnVmZmVyKTsKK30K
KworUmVuZGVyaW5nTW9kZSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlbmRlcmlu
Z01vZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2ltYWdlQnVmZmVyID8gbV9pbWFnZUJ1ZmZl
ci0+cmVuZGVyaW5nTW9kZSgpIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNhdmUoKQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNhdmUoKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSZXN0b3JlKCkKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZXN0b3JlKCkp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkVHJhbnNs
YXRlKGZsb2F0IHgsIGZsb2F0IHkpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6VHJhbnNsYXRlKHgsIHkpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJvdGF0ZShmbG9hdCBhbmdsZSkKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSb3RhdGUoYW5nbGUpKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNjYWxlKGNvbnN0
IEZsb2F0U2l6ZSYgc2NhbGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6U2NhbGUoc2NhbGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZFNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9y
bSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTZXRD
VE0odHJhbnNmb3JtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmRDb25jYXRlbmF0ZUNUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDb25jYXRl
bmF0ZUNUTSh0cmFuc2Zvcm0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZFNldElubGluZUZpbGxDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvcikKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTZXRJbmxpbmVG
aWxsQ29sb3IoRGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvciB7IGNvbG9yIH0pKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldElubGluZVN0
cm9rZUNvbG9yKFNSR0JBPHVpbnQ4X3Q+IGNvbG9yKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldElubGluZVN0cm9rZUNvbG9yKERpc3BsYXlMaXN0
OjpTZXRJbmxpbmVTdHJva2VDb2xvciB7IGNvbG9yIH0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0aGlj
a25lc3MpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
U2V0U3Ryb2tlVGhpY2tuZXNzKHRoaWNrbmVzcykpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBmbGFncykK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTZXRTdGF0
ZShEaXNwbGF5TGlzdDo6U2V0U3RhdGUgeyBzdGF0ZSwgZmxhZ3MgfSkpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0TGluZUNhcChMaW5lQ2FwIGxp
bmVDYXApCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
U2V0TGluZUNhcChsaW5lQ2FwKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRTZXRMaW5lRGFzaChjb25zdCBEYXNoQXJyYXkmIGFycmF5LCBmbG9hdCBk
YXNoT2Zmc2V0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OlNldExpbmVEYXNoKERpc3BsYXlMaXN0OjpTZXRMaW5lRGFzaCB7IGFycmF5LCBkYXNoT2Zm
c2V0IH0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZFNldExpbmVKb2luKExpbmVKb2luIGxpbmVKb2luKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldExpbmVKb2luKGxpbmVKb2luKSk7Cit9CisKK3Zv
aWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRNaXRlckxpbWl0KGZs
b2F0IGxpbWl0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OlNldE1pdGVyTGltaXQobGltaXQpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZENsZWFyU2hhZG93KCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDbGVhclNoYWRvdygpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENsaXAoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNs
aXAocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkQ2xpcE91dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Q2xpcE91dChyZWN0KSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwVG9JbWFnZUJ1ZmZlcihSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uUmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpDbGlwVG9JbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIs
IGRlc3RpbmF0aW9uUmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkQ2xpcE91dFRvUGF0aChjb25zdCBQYXRoJiBwYXRoKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNsaXBPdXRUb1BhdGgocGF0aCkp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xpcFBh
dGgoY29uc3QgUGF0aCYgcGF0aCwgV2luZFJ1bGUgcnVsZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDbGlwUGF0aChwYXRoLCBydWxlKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRCZWdpbkNsaXBUb0Ry
YXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2UgY29sb3JTcGFjZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhkZXN0aW5hdGlvbiwgY29s
b3JTcGFjZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24p
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RW5kQ2xp
cFRvRHJhd2luZ0NvbW1hbmRzKGRlc3RpbmF0aW9uKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNv
bnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBh
ZHZhbmNlcywgdW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBG
b250U21vb3RoaW5nTW9kZSBtb2RlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OkRyYXdHbHlwaHMoRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMgeyBmb250
LCBnbHlwaHMsIGFkdmFuY2VzLCBjb3VudCwgbG9jYWxBbmNob3IsIG1vZGUgfSkpOworfQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0ltYWdlQnVmZmVy
KFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVySWRlbnRpZmll
ciwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3TmF0aXZlSW1hZ2UoaW1hZ2VJZGVudGlmaWVy
LCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3UGF0dGVybihSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdl
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkRyYXdQYXR0ZXJuKGltYWdlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgdGls
ZVJlY3QsIHRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpKTsKK30KKwordm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEJlZ2luVHJhbnNwYXJlbmN5TGF5
ZXIoZmxvYXQgb3BhY2l0eSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpCZWdpblRyYW5zcGFyZW5jeUxheWVyKG9wYWNpdHkpKTsKK30KKwordm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEVuZFRyYW5zcGFyZW5jeUxheWVy
KCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpFbmRU
cmFuc3BhcmVuY3lMYXllcigpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZERyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgd2lkdGgp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd1Jl
Y3QocmVjdCwgd2lkdGgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZERyYXdMaW5lKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnQyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OkRyYXdMaW5lKHBvaW50MSwgcG9pbnQyKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3TGluZXNGb3JUZXh0KGNvbnN0IEZsb2F0UG9p
bnQmIGJsb2NrTG9jYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgbG9jYWxBbmNob3IsIGZsb2F0IHRo
aWNrbmVzcywgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMsIGJvb2wgcHJpbnRpbmcsIGJvb2wgZG91
YmxlTGluZXMpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6RHJhd0xpbmVzRm9yVGV4dChEaXNwbGF5TGlzdDo6RHJhd0xpbmVzRm9yVGV4dCB7IGJsb2Nr
TG9jYXRpb24sIGxvY2FsQW5jaG9yLCB0aGlja25lc3MsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJs
ZUxpbmVzIH0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25z
dCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSYgc3R5bGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihyZWN0
LCBzdHlsZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkRHJhd0VsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdFbGxpcHNlKHJlY3QpKTsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXRoKGNvbnN0
IFBhdGgmIHBhdGgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6RHJhd1BhdGgocGF0aCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkRHJhd0ZvY3VzUmluZ1BhdGgoY29uc3QgUGF0aCYgcGF0aCwgZmxvYXQg
d2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdGb2N1c1JpbmdQYXRoKHBhdGgs
IHdpZHRoLCBvZmZzZXQsIGNvbG9yKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmREcmF3Rm9jdXNSaW5nUmVjdHMoY29uc3QgVmVjdG9yPEZsb2F0UmVj
dD4mIHJlY3RzLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3Ip
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0Zv
Y3VzUmluZ1JlY3RzKHJlY3RzLCB3aWR0aCwgb2Zmc2V0LCBjb2xvcikpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkZpbGxSZWN0KHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZEZpbGxSZWN0V2l0aENvbG9yKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29u
c3QgQ29sb3ImIGNvbG9yKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OkZpbGxSZWN0V2l0aENvbG9yKHJlY3QsIGNvbG9yKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhHcmFkaWVudChj
b25zdCBGbG9hdFJlY3QmIHJlY3QsIEdyYWRpZW50JiBncmFkaWVudCkKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsUmVjdFdpdGhHcmFkaWVudChE
aXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQgeyByZWN0LCBncmFkaWVudCB9KSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsQ29tcG9z
aXRlZFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgbW9kZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsQ29tcG9zaXRlZFJlY3QocmVjdCwgY29sb3Is
IG9wLCBtb2RlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojpy
ZWNvcmRGaWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3Qs
IGNvbnN0IENvbG9yJiBjb2xvciwgQmxlbmRNb2RlIG1vZGUpCit7CisgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RmlsbFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0
LCBjb2xvciwgbW9kZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6cmVjb3JkRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBj
b25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQor
eworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxSZWN0
V2l0aFJvdW5kZWRIb2xlKHJlY3QsIHJvdW5kZWRSZWN0LCBjb2xvcikpOworfQorCisjaWYgRU5B
QkxFKElOTElORV9QQVRIX0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmRGaWxsTGluZShjb25zdCBMaW5lRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsTGluZShkYXRhKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsQXJjKGNvbnN0
IEFyY0RhdGEmIGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6RmlsbEFyYyhkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmRGaWxsUXVhZEN1cnZlKGNvbnN0IFF1YWRDdXJ2ZURhdGEmIGRhdGEp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RmlsbFF1
YWRDdXJ2ZShkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmRGaWxsQmV6aWVyQ3VydmUoY29uc3QgQmV6aWVyQ3VydmVEYXRhJiBkYXRhKQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxCZXppZXJD
dXJ2ZShkYXRhKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxQYXRoKGNvbnN0
IFBhdGgmIHBhdGgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6RmlsbFBhdGgocGF0aCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkRmlsbEVsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxFbGxpcHNlKHJl
Y3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEdl
dFBpeGVsQnVmZmVyKFBpeGVsQnVmZmVyRm9ybWF0IG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVj
dCYgcmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpHZXRQaXhlbEJ1ZmZlcihyZWN0LCBvdXRwdXRGb3JtYXQpKTsKK30KKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVs
QnVmZmVyJiBidWZmZXIsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBk
ZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gcHJlbXVsdGlwbGljYXRpb24pCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6UHV0UGl4ZWxCdWZm
ZXIoc3JjUmVjdCwgZGVzdFBvaW50LCBidWZmZXIsIHByZW11bHRpcGxpY2F0aW9uKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRQYWludEZyYW1lRm9y
TWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbikK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpQYWludEZy
YW1lRm9yTWVkaWEocGxheWVyLmlkZW50aWZpZXIoKSwgZGVzdGluYXRpb24pKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZVJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LCBmbG9hdCB3aWR0aCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTdHJva2VSZWN0KHJlY3QsIHdpZHRoKSk7Cit9CisKKyNp
ZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OnJlY29yZFN0cm9rZUxpbmUoY29uc3QgTGluZURhdGEmIGRhdGEpCit7CisgICAg
c2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U3Ryb2tlTGluZShkYXRh
KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJv
a2VBcmMoY29uc3QgQXJjRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpTdHJva2VBcmMoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlUXVhZEN1cnZlKGNvbnN0IFF1YWRD
dXJ2ZURhdGEmIGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6U3Ryb2tlUXVhZEN1cnZlKGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZUJlemllckN1cnZlKGNvbnN0IEJlemllckN1
cnZlRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpTdHJva2VCZXppZXJDdXJ2ZShkYXRhKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
SU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZFN0cm9rZVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTdHJva2VQYXRoKHBhdGgpKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZUVsbGlwc2UoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OlN0cm9rZUVsbGlwc2UocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xlYXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDbGVh
clJlY3QocmVjdCkpOworfQorCisjaWYgVVNFKENHKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eTo6cmVjb3JkQXBwbHlTdHJva2VQYXR0ZXJuKCkKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpBcHBseVN0cm9rZVBhdHRlcm4oKSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRBcHBseUZp
bGxQYXR0ZXJuKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpBcHBseUZpbGxQYXR0ZXJuKCkpOworfQorCisjZW5kaWYgLy8gVVNFKENHKQorCit2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQXBwbHlEZXZpY2VTY2FsZUZh
Y3RvcihmbG9hdCBzY2FsZUZhY3RvcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpBcHBseURldmljZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSZXNvdXJjZVVz
ZShOYXRpdmVJbWFnZSYgaW1hZ2UpCit7CisgICAgaWYgKFVOTElLRUxZKCFtX3JlbmRlcmluZ0Jh
Y2tlbmQpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5yZWNvcmROYXRpdmVJbWFnZVVzZShp
bWFnZSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRS
ZXNvdXJjZVVzZShGb250JiBmb250KQoreworICAgIGlmIChVTkxJS0VMWSghbV9yZW5kZXJpbmdC
YWNrZW5kKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cmVjb3JkRm9udFVzZShmb250KTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJlc291cmNl
VXNlKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikKK3sKKyAgICBpZiAoVU5MSUtFTFkoIW1fcmVu
ZGVyaW5nQmFja2VuZCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnJlY29yZEltYWdlQnVm
ZmVyVXNlKGltYWdlQnVmZmVyKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OmZsdXNoQ29udGV4dChHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpG
bHVzaENvbnRleHQoRGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dCB7IGlkZW50aWZpZXIgfSkpOwor
fQorCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OmNyZWF0ZU5lc3RlZENvbnRleHQoY29uc3QgRmxvYXRSZWN0JiBpbml0aWFs
Q2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKQoreworICAgIHJldHVybiBt
YWtlVW5pcXVlPFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eT4oKnRoaXMsIGluaXRpYWxD
bGlwLCBpbml0aWFsQ1RNKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA5OThkYzVhMmYzMWVlZDYxZDFiNWE4ZDFmNjM4YmRmOTNi
ZTU2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKQEAgLTAsMCArMSwxNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRGlzcGxheUxpc3RSZWNvcmRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhd0dseXBoc1Jl
Y29yZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OworCitjbGFzcyBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyIHsKK3B1YmxpYzoKKyAg
ICBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGlu
aXRpYWxDbGlwLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBXZWJDb3JlOjpEcmF3
R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyA9IFdlYkNvcmU6OkRyYXdHbHlw
aHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOworICAgIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eShSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkmIHBhcmVu
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgV2ViQ29yZTo6
QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKTsKKworICAgIH5SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkoKSB7IH0KKworICAgIHZvaWQgcmVzZXROZWVkc0ZsdXNoKCkgeyBtX25lZWRz
Rmx1c2ggPSBmYWxzZTsgfQorICAgIGJvb2wgbmVlZHNGbHVzaCgpIGNvbnN0IHsgcmV0dXJuIG1f
bmVlZHNGbHVzaDsgfQorCisgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQ
aXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBz
b3VyY2VSZWN0KSBmaW5hbDsKKyAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBkZXN0Rm9ybWF0KSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoQ29udGV4dChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIpIGZpbmFsOworCitwcml2YXRlOgorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBzZW5kKFQmJiBtZXNzYWdlKQorICAgIHsKKyAgICAg
ICAgbV9uZWVkc0ZsdXNoID0gdHJ1ZTsKKyAgICAgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5zZW5k
VG9TdHJlYW0oV1RGTW92ZShtZXNzYWdlKSwgbV9kZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIp
OworICAgIH0KKworICAgIGZyaWVuZCBjbGFzcyBEcmF3R2x5cGhzUmVjb3JkZXI7CisKKyAgICBi
b29sIGNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlciYpIGNvbnN0IGZpbmFsOwor
ICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IGZpbmFsOworCisgICAgdm9p
ZCByZWNvcmRTYXZlKCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRSZXN0b3JlKCkgZmluYWw7Cisg
ICAgdm9pZCByZWNvcmRUcmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkgZmluYWw7CisgICAgdm9p
ZCByZWNvcmRSb3RhdGUoZmxvYXQgYW5nbGUpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU2NhbGUo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRDVE0o
Y29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRD
b25jYXRlbmF0ZUNUTShjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKSBmaW5hbDsKKyAg
ICB2b2lkIHJlY29yZFNldElubGluZUZpbGxDb2xvcihXZWJDb3JlOjpTUkdCQTx1aW50OF90Pikg
ZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRJbmxpbmVTdHJva2VDb2xvcihXZWJDb3JlOjpTUkdC
QTx1aW50OF90PikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRTdHJva2VUaGlja25lc3MoZmxv
YXQpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU2V0U3RhdGUoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0U3RhdGUmLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFu
Z2VGbGFncykgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRMaW5lQ2FwKFdlYkNvcmU6OkxpbmVD
YXApIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU2V0TGluZURhc2goY29uc3QgV2ViQ29yZTo6RGFz
aEFycmF5JiwgZmxvYXQgZGFzaE9mZnNldCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRMaW5l
Sm9pbihXZWJDb3JlOjpMaW5lSm9pbikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRNaXRlckxp
bWl0KGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZENsZWFyU2hhZG93KCkgZmluYWw7Cisg
ICAgdm9pZCByZWNvcmRDbGlwKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAg
IHZvaWQgcmVjb3JkQ2xpcE91dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlY29yZENsaXBUb0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgZGVzdGluYXRpb25SZWN0KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZENsaXBPdXRUb1BhdGgo
Y29uc3QgV2ViQ29yZTo6UGF0aCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQ2xpcFBhdGgoY29u
c3QgV2ViQ29yZTo6UGF0aCYsIFdlYkNvcmU6OldpbmRSdWxlKSBmaW5hbDsKKyAgICB2b2lkIHJl
Y29yZEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
ZGVzdGluYXRpb24sIERlc3RpbmF0aW9uQ29sb3JTcGFjZSkgZmluYWw7CisgICAgdm9pZCByZWNv
cmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0
aW5hdGlvbikgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3R2x5cGhzKGNvbnN0IFdlYkNvcmU6
OkZvbnQmLCBjb25zdCBXZWJDb3JlOjpHbHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgV2ViQ29yZTo6
R2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgY291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIGxvY2FsQW5jaG9yLCBXZWJDb3JlOjpGb250U21vb3RoaW5nTW9kZSkgZmluYWw7Cisg
ICAgdm9pZCByZWNvcmREcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJD
b3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd05h
dGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgZmluYWw7CisgICAgdm9pZCBy
ZWNvcmREcmF3UGF0dGVybihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQmVnaW5UcmFu
c3BhcmVuY3lMYXllcihmbG9hdCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRFbmRUcmFuc3BhcmVu
Y3lMYXllcigpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd1JlY3QoY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiwgZmxvYXQpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd0xpbmUoY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBw
b2ludDIpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd0xpbmVzRm9yVGV4dChjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBibG9ja0xvY2F0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGxvY2FsQW5jaG9yLCBmbG9hdCB0aGlja25lc3MsIGNvbnN0IFdlYkNvcmU6OkRhc2hBcnJheSYg
d2lkdGhzLCBib29sIHByaW50aW5nLCBib29sIGRvdWJsZUxpbmVzKSBmaW5hbDsKKyAgICB2b2lk
IHJlY29yZERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiwgY29uc3QgV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUmKSBmaW5hbDsKKyAgICB2
b2lkIHJlY29yZERyYXdFbGxpcHNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwor
ICAgIHZvaWQgcmVjb3JkRHJhd1BhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYpIGZpbmFsOworICAg
IHZvaWQgcmVjb3JkRHJhd0ZvY3VzUmluZ1BhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYsIGZsb2F0
IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAg
dm9pZCByZWNvcmREcmF3Rm9jdXNSaW5nUmVjdHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0
UmVjdD4mLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBXZWJDb3JlOjpDb2xvciYp
IGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JikgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxsUmVjdFdpdGhDb2xvcihjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOworICAgIHZvaWQgcmVj
b3JkRmlsbFJlY3RXaXRoR3JhZGllbnQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgV2ViQ29y
ZTo6R3JhZGllbnQmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEZpbGxDb21wb3NpdGVkUmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIFdlYkNvcmU6
OkNvbXBvc2l0ZU9wZXJhdG9yLCBXZWJDb3JlOjpCbGVuZE1vZGUpIGZpbmFsOworICAgIHZvaWQg
cmVjb3JkRmlsbFJvdW5kZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpDb2xvciYsIFdlYkNvcmU6OkJsZW5kTW9kZSkgZmluYWw7CisgICAgdm9p
ZCByZWNvcmRGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
KSBmaW5hbDsKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKyAgICB2b2lkIHJlY29yZEZp
bGxMaW5lKGNvbnN0IFdlYkNvcmU6OkxpbmVEYXRhJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRG
aWxsQXJjKGNvbnN0IFdlYkNvcmU6OkFyY0RhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEZp
bGxRdWFkQ3VydmUoY29uc3QgV2ViQ29yZTo6UXVhZEN1cnZlRGF0YSYpIGZpbmFsOworICAgIHZv
aWQgcmVjb3JkRmlsbEJlemllckN1cnZlKGNvbnN0IFdlYkNvcmU6OkJlemllckN1cnZlRGF0YSYp
IGZpbmFsOworI2VuZGlmCisgICAgdm9pZCByZWNvcmRGaWxsUGF0aChjb25zdCBXZWJDb3JlOjpQ
YXRoJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxsRWxsaXBzZShjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEdldFBpeGVsQnVmZmVyKFdlYkNvcmU6
OlBpeGVsQnVmZmVyRm9ybWF0IG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
IGZpbmFsOworICAgIHZvaWQgcmVjb3JkUHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4
ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uKSBm
aW5hbDsKKyAgICB2b2lkIHJlY29yZFBhaW50RnJhbWVGb3JNZWRpYShNZWRpYVBsYXllciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24pIGZpbmFsOworICAgIHZvaWQgcmVj
b3JkU3Ryb2tlUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCkgZmluYWw7Cisj
aWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisgICAgdm9pZCByZWNvcmRTdHJva2VMaW5lKGNv
bnN0IFdlYkNvcmU6OkxpbmVEYXRhJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTdHJva2VBcmMo
Y29uc3QgV2ViQ29yZTo6QXJjRGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU3Ryb2tlUXVh
ZEN1cnZlKGNvbnN0IFdlYkNvcmU6OlF1YWRDdXJ2ZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJl
Y29yZFN0cm9rZUJlemllckN1cnZlKGNvbnN0IFdlYkNvcmU6OkJlemllckN1cnZlRGF0YSYpIGZp
bmFsOworI2VuZGlmCisgICAgdm9pZCByZWNvcmRTdHJva2VQYXRoKGNvbnN0IFdlYkNvcmU6OlBh
dGgmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFN0cm9rZUVsbGlwc2UoY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCByZWNvcmRDbGVhclJlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JikgZmluYWw7CisjaWYgVVNFKENHKQorICAgIHZvaWQgcmVjb3JkQXBwbHlT
dHJva2VQYXR0ZXJuKCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRBcHBseUZpbGxQYXR0ZXJuKCkg
ZmluYWw7CisjZW5kaWYKKyAgICB2b2lkIHJlY29yZEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxv
YXQpIGZpbmFsOworCisgICAgdm9pZCByZWNvcmRSZXNvdXJjZVVzZShXZWJDb3JlOjpOYXRpdmVJ
bWFnZSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkUmVzb3VyY2VVc2UoV2ViQ29yZTo6Rm9udCYp
IGZpbmFsOworICAgIHZvaWQgcmVjb3JkUmVzb3VyY2VVc2UoV2ViQ29yZTo6SW1hZ2VCdWZmZXIm
KSBmaW5hbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+
IGNyZWF0ZU5lc3RlZENvbnRleHQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBpbml0aWFsQ2xp
cCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKSBmaW5hbDsKKwor
ICAgIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uQnVm
ZmVySWRlbnRpZmllcjsKKyAgICBXZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdl
QnVmZmVyOworICAgIFdlYWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5PiBtX3JlbmRl
cmluZ0JhY2tlbmQ7CisgICAgYm9vbCBtX25lZWRzRmx1c2ggeyBmYWxzZSB9OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggNzcyZmJjYTY4ZmE3ZjAz
MWFkMDQyMDFlOWZlMDE2ZGVkN2I1NzE5Yi4uYmY0OWE4MjdkMjAyODI0YTQ3YjBkNjU2OTZjNmNh
MmM3ZDhmYjkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApA
QCAtNDQ3LDYgKzQ0NywzMCBAQCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmVuc3VyZUJhY2tlbmRDcmVhdGVkKCkKICAgICByZXR1cm4gcmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnJlY29yZE5hdGl2ZUltYWdlVXNlKE5hdGl2ZUltYWdlJiBpbWFnZSkKK3sKKyAg
ICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5yZWNvcmROYXRpdmVJbWFnZVVzZShpbWFnZSk7
Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWNvcmRGb250VXNlKEZv
bnQmIGZvbnQpCit7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkucmVjb3JkRm9udFVz
ZShmb250KTsKK30KKwordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZElt
YWdlQnVmZmVyVXNlKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikKK3sKKyAgICBtX3JlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5yZWNvcmRJbWFnZUJ1ZmZlclVzZShpbWFnZUJ1ZmZlcik7Cit9CisK
K2Jvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojppc0NhY2hlZChjb25zdCBJbWFnZUJ1
ZmZlciYgaW1hZ2VCdWZmZXIpIGNvbnN0Cit7CisgICAgaWYgKGF1dG8gY2FjaGVkSW1hZ2VCdWZm
ZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jYWNoZWRJbWFnZUJ1ZmZlcihpbWFnZUJ1
ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkpIHsKKyAgICAgICAgQVNTRVJUKGNh
Y2hlZEltYWdlQnVmZmVyID09ICZpbWFnZUJ1ZmZlcik7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmgKaW5kZXggMjM5NGZmNWFkYzRkNzgzYjhhZmQyZGMxMzIxZjJmNTQ3NWEyMTI4NS4u
YWEwMjNkY2YyZGI1YTMzYWFiMTNmNjliYTAxNjI5MmQzMDVhZjc2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRlc3Ryb3lHZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeSgpOwogCiAgICAgdm9pZCBjcmVh
dGVSZW1vdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOworICAgIGJvb2wgaXND
YWNoZWQoY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBjb25zdDsKICAgICAgICAgCiAgICAg
Ly8gSVBDOjpNZXNzYWdlU2VuZGVyLgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKQEAgLTEyNCw2ICsxMjUsMjIgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc0dQVVByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKCkgY29uc3QgeyByZXR1
cm4gIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247IH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+CisgICAgdm9pZCBzZW5kVG9TdHJlYW0oVCYmIG1lc3NhZ2UsIE9iamVjdElk
ZW50aWZpZXI8VT4gaWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBOb3QgeWV0
IGltcGxlbWVudGVkLgorICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9p
ZCBzZW5kVG9TdHJlYW0oVCYmIG1lc3NhZ2UpCisgICAgeworICAgICAgICBzZW5kVG9TdHJlYW0o
V1RGTW92ZShtZXNzYWdlKSwgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CisgICAgfQor
CisgICAgdm9pZCByZWNvcmROYXRpdmVJbWFnZVVzZShXZWJDb3JlOjpOYXRpdmVJbWFnZSYpOwor
ICAgIHZvaWQgcmVjb3JkRm9udFVzZShXZWJDb3JlOjpGb250Jik7CisgICAgdm9pZCByZWNvcmRJ
bWFnZUJ1ZmZlclVzZShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOworCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShXZWJQYWdlJik7CiAK
</data>
<flag name="commit-queue"
          id="464788"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440746</attachid>
            <date>2021-10-10 17:32:11 -0700</date>
            <delta_ts>2021-10-11 12:45:04 -0700</delta_ts>
            <desc>Fix typo</desc>
            <filename>bug-231484-20211010173210.patch</filename>
            <type>text/plain</type>
            <size>99540</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjc5ZWFiMTUzNmJlNWUz
ZTdlNDc3ODUyYmI0ZjgyMGEzNTE4NDM1MS4uODE1ZTI0MWVlNmI1ZjY0ZTU1Y2YxNmVmM2VkYTNl
MDRiOWU2OGUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEwLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ4
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBX
ZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmg6CisKKyAgICAgICAgQWRkIGRlZmF1bHQgY29uc3RydWN0b3JzIGZv
ciBhIGNvdXBsZSBvZiBkaXNwbGF5IGxpc3QgaXRlbXMgc28gdGhhdCB0aGV5IGNhbiBiZSBlbmNv
ZGVkIGFzIElQQyBhcmd1bWVudHMgdXNpbmcKKyAgICAgICAgU2ltcGxlQXJndW1lbnRDb2Rlci4K
KwogMjAyMS0xMC0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBFeHBvcnQgc29tZSBkaXNwbGF5IGxpc3QgaXRlbSBtZXRob2RzIGZvciB1c2UgaW4g
V2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBjMTk5ZmY5NmViZTcwYTVjNDIxOWE2ZjdhZDg0OTYxZDc1YzA5
M2NmLi41YmI4ZGU2ZDQ2YjFiYTBkNGQ2NDJlMDRhNmZhNmI0NmIyZDFjZTJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxNSBAQAorMjAyMS0xMC0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5IGFuZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0ODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgdHdvIG5ldyBjbGFzc2VzIHRo
YXQgaG91c2UgbW9zdCBvZiB0aGUgbG9naWMgZm9yIHByb3BhZ2F0aW5nIGRpc3BsYXkgbGlzdCBp
dGVtcyBmcm9tIHRoZSB3ZWIgY29udGVudAorICAgICAgICBwcm9jZXNzIHRvIHRoZSBHUFUgcHJv
Y2Vzcy4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5IGlzIGEgc3ViY2xhc3Mgb2YgRGlz
cGxheUxpc3Q6OlJlY29yZGVyIHRoYXQgcmVjb3JkcworICAgICAgICBlYWNoIGl0ZW0gYnkgc2Vu
ZGluZyBpdCB0byB0aGUgR1BVIHByb2Nlc3MgdGhyb3VnaCBhIHN0cmVhbSBjb25uZWN0aW9uLCB3
aGljaCB3aWxsIGJlIGFkZGVkIHRvCisgICAgICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSBpbiBhIHN1YnNlcXVlbnQgcGF0Y2guIFRoZSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkgd2lsbCBiZSBtYW5hZ2VkIGJ5CisgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyUHJveHkgaW4g
dGhlIHdlYiBwcm9jZXNzLiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyIGFjdHMgYXMgdGhlIHN0
cmVhbWluZyBJUEMgZGVzdGluYXRpb24gaW4KKyAgICAgICAgdGhlIEdQVSBwcm9jZXNzLCBhbmQg
aGFuZGxlcyB0aGUgaW5jb21pbmcgZGlzcGxheSBsaXN0IGl0ZW1zIGJ5IGFwcGx5aW5nIHRoZW0g
dG8gdGhlIHBsYXRmb3JtIGdyYXBoaWNzIGNvbnRleHQuCisKKyAgICAgICAgRm9yIG1vc3Qgb2Yg
dGhlc2UgZGlzcGxheSBsaXN0IGl0ZW1zLCB3ZSBjYW4gcHJvcGFnYXRlIHRoZW0gdG8gdGhlIEdQ
VSBwcm9jZXNzIGJ5IHNlbmRpbmcgZWFjaCBkaXNwbGF5IGxpc3QKKyAgICAgICAgaXRlbSdzIGNv
bnN0cnVjdG9yIGFyZ3VtZW50cyBhcyBzZXBhcmF0ZSBJUEMgYXJndW1lbnRzLiBJbiBhIGZ1dHVy
ZSBwYXRjaCwgd2Ugc2hvdWxkIGFkZCBzdXBwb3J0IGZvciBlbmNvZGluZworICAgICAgICB0aGUg
Zm9sbG93aW5nIGRpc3BsYXkgbGlzdCBpdGVtcyBpbiB0aGUgc2FtZSB3YXk6CisKKyAgICAgICAg
LSBTZXRJbmxpbmVGaWxsQ29sb3IKKyAgICAgICAgLSBTZXRJbmxpbmVTdHJva2VDb2xvcgorICAg
ICAgICAtIFNldFN0YXRlCisgICAgICAgIC0gU2V0TGluZURhc2gKKyAgICAgICAgLSBEcmF3R2x5
cGhzCisgICAgICAgIC0gRHJhd0xpbmVzRm9yVGV4dAorICAgICAgICAtIEZpbGxSZWN0V2l0aEdy
YWRpZW50CisKKyAgICAgICAgRm9yIG5vdywgdGhlIGFib3ZlIGRpc3BsYXkgbGlzdCBpdGVtcyBh
cmUgZW5jb2RlZCBhbmQgZGVjb2RlZCBhcyB3aG9sZSBpdGVtcy4gV2hpbGUgdGhlcmUncyBubyBw
cmFjdGljYWwKKyAgICAgICAgZGlzYWR2YW50YWdlIHRvIGltcGxlbWVudGluZyBpdCB0aGlzIHdh
eSwgaXQgd291bGQgYmUgbmljZSB0byBtYWtlIGl0IGNvbnNpc3RlbnQuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpyZXNvdXJjZUNhY2hlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd2luZ0NvbnRleHQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdGFydExpc3Rl
bmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpzYXZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6cmVzdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnJvdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OnNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0
Q1RNKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y29uY2F0
ZW5hdGVDVE0pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpz
ZXRJbmxpbmVGaWxsQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpzZXRJbmxpbmVTdHJva2VDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OnNldFN0cm9rZVRoaWNrbmVzcyk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TGluZUNhcCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldExpbmVEYXNoKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TGluZUpvaW4pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xlYXJTaGFkb3cpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGlwKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcE91dCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBUb0ltYWdlQnVmZmVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcE91dFRvUGF0aCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXBQYXRoKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YmVnaW5DbGlwVG9EcmF3
aW5nQ29tbWFuZHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjplbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZW5kVHJhbnNwYXJl
bmN5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpk
cmF3UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRy
YXdMaW5lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJh
d0xpbmVzRm9yVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3RWxsaXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdQYXRoKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZvY3VzUmluZ1BhdGgpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nUmVjdHMpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxSZWN0V2l0aENvbG9yKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJlY3RXaXRo
R3JhZGllbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpm
aWxsQ29tcG9zaXRlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxMaW5lKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbEFyYyk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxRdWFkQ3VydmUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsQmV6aWVyQ3VydmUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUGF0aCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxFbGxpcHNlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Z2V0UGl4ZWxCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwdXRQaXhlbEJ1ZmZlcik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnBhaW50RnJhbWVG
b3JNZWRpYSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0
cm9rZVJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpz
dHJva2VMaW5lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
c3Ryb2tlQXJjKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
c3Ryb2tlUXVhZEN1cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6c3Ryb2tlQmV6aWVyQ3VydmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6c3Ryb2tlRWxsaXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OmNsZWFyUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OmFwcGx5U3Ryb2tlUGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmFwcGx5RmlsbFBhdHRlcm4pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjphcHBseURldmljZVNjYWxlRmFjdG9y
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Zmx1c2hDb250
ZXh0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmhhbmRsZUl0ZW0pOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVhZCk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6
CisKKyAgICAgICAgQWRkIGhlbHBlciBtZXRob2RzIHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQg
dGhhdCBhcmUgY2FsbGVkIGZyb20gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlw
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCisgICAgICAgIE1ha2UgaXQgcG9z
c2libGUgdG8gZW5jb2RlIGFuZCBkZWNvZGUgU2V0SW5saW5lRmlsbENvbG9yIGFuZCBTZXRJbmxp
bmVTdHJva2VDb2xvciB1c2luZyBzaW1wbGUgYXJndW1lbnQgY29kZXIuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjptX3JlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OmdldFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpwdXRQaXhlbEJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y2FuRHJhd0ltYWdlQnVm
ZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZW5kZXJpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSZXN0b3JlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRUcmFuc2xhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJvdGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZFNldENUTSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkQ29uY2F0ZW5hdGVDVE0pOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldElubGluZUZpbGxDb2xvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0
SW5saW5lU3Ryb2tlQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZFNldFN0cm9rZVRoaWNrbmVzcyk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0U3RhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldExpbmVD
YXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZFNldExpbmVEYXNoKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmRTZXRMaW5lSm9pbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0TWl0ZXJMaW1pdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xlYXJTaGFkb3cp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZENsaXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZENsaXBPdXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OnJlY29yZENsaXBUb0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwT3V0VG9QYXRoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwUGF0
aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkQmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
RHJhd0dseXBocyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkRHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXR0ZXJu
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNv
cmRCZWdpblRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRFbmRUcmFuc3BhcmVuY3lMYXllcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd1JlY3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZERyYXdMaW5lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmREcmF3TGluZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRE
cmF3RWxsaXBzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkRHJhd1BhdGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdGb2N1c1JpbmdQYXRoKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3Rm9jdXNSaW5nUmVj
dHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZEZpbGxSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJlY3RXaXRoR3JhZGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZp
bGxDb21wb3NpdGVkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkRmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhSb3VuZGVkSG9s
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkRmlsbExpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZEZpbGxBcmMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxRdWFkQ3VydmUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxCZXppZXJDdXJ2ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmls
bFBhdGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZEZpbGxFbGxpcHNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpyZWNvcmRHZXRQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUHV0UGl4ZWxCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFBhaW50
RnJhbWVGb3JNZWRpYSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkU3Ryb2tlUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlTGluZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlQXJjKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VR
dWFkQ3VydmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZFN0cm9rZUJlemllckN1cnZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VQYXRoKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VFbGxpcHNlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRD
bGVhclJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZEFwcGx5U3Ryb2tlUGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQXBwbHlGaWxsUGF0dGVybik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQXBwbHlEZXZp
Y2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkUmVzb3VyY2VVc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OmZsdXNoQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y3JlYXRlTmVzdGVkQ29udGV4dCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6On5SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlc2V0TmVlZHNGbHVzaCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6bmVlZHNGbHVzaCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
c2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkRHJhd1BhdHRlcm4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6cmVjb3JkTmF0aXZlSW1hZ2VVc2UpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZEZvbnRVc2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZEltYWdlQnVmZmVy
VXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojppc0Nh
Y2hlZCBjb25zdCk6CisKKyAgICAgICAgQWRkIGhlbHBlciBtZXRob2RzIHRvIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSB0aGF0IGFyZSBjYWxsZWQgZnJvbSBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpzZW5kVG9TdHJlYW0pOgorCiAyMDIxLTEwLTA4ICBCSiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogcHJvdmlkZSBh
IHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgbm90aWZpZWQgd2hl
biB0aGUgaW5zcGVjdGVkIHBhZ2UgbmF2aWdhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGQ2ZTI1Njc3YmVmNzE1YmE0
OWNmMDQxZTE0YzllYzgwMWM1Yzk3YzMuLjgzMDg3Y2U2OTA0YzViZDEyMTk3YTQ5YTY4ZDExNWVh
OGE1ZmZjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCkBAIC00MzAsNyArNDMwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZSB9KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEltYWdlRHJh
d1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBj
b25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CiAKLSAgICB2aXJ0dWFsIEltYWdlRHJhd1Jl
c3VsdCBkcmF3SW1hZ2VGb3JDYW52YXMoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
LCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY2FudmFzQ29sb3JTcGFjZSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlRm9yQ2FudmFzKEltYWdlJiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNhbnZhc0Nv
bG9yU3BhY2UpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQg
ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJ
bWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291
cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlLCBJ
bWFnZTo6VGlsZVJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAxMzk3
ODAxYjRkOGUwZmZjZDY5NDY3Y2ExNDIyMGQwMDUzY2YxNWVlLi44MTYwZGRmMGExOWMzMzBkY2U1
ZDMyMTYzYWRhODIzNmU1YTQxNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgLy8g
Q3JlYXRlIGFuIGltYWdlIGJ1ZmZlciBjb21wYXRpYmxlIHdpdGggdGhlIGNvbnRleHQsIHdpdGgg
c3VpdGFibGUgcmVzb2x1dGlvbiBmb3IgZHJhd2luZyBpbnRvIHRoZSBidWZmZXIgYW5kIHRoZW4g
aW50byB0aGlzIGNvbnRleHQuCiAgICAgc3RhdGljIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRl
Q29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBjb25zdCBHcmFwaGljc0NvbnRleHQm
KTsKLSAgICBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVDb21wYXRpYmxlQnVmZmVy
KGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIGNvbnN0IEdy
YXBoaWNzQ29udGV4dCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7CiAgICAgc3RhdGlj
IFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNp
emUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYs
IGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogCiAgICAgLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSB1
c2VkIHdoZW4gY2xhbXBpbmcgdGhlIEltYWdlQnVmZmVyIHdoaWNoIGlzIGNyZWF0ZWQgZm9yIGZp
bHRlciwgbWFza2VyIG9yIGNsaXBwZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApp
bmRleCA4NGIwYmZhZmY4MDQwNjQyYTUxNjRhNjJjNTAwNTAxYjFmYjNkNmVhLi4xM2FlODc5OGIy
NzRmYzgwNDMxYmJlYjM1MTUxZTU2YjM4MjhmYmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKQEAgLTE4OCw2ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
RHJhd2luZ0l0ZW0gPSBmYWxzZTsKIAorICAgIFNldElubGluZUZpbGxDb2xvcigpID0gZGVmYXVs
dDsKICAgICBTZXRJbmxpbmVGaWxsQ29sb3IoU1JHQkE8dWludDhfdD4gY29sb3JEYXRhKQogICAg
ICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKICAgICB7CkBAIC0yMDYsNiArMjA3LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7CiAKKyAgICBT
ZXRJbmxpbmVTdHJva2VDb2xvcigpID0gZGVmYXVsdDsKICAgICBTZXRJbmxpbmVTdHJva2VDb2xv
cihTUkdCQTx1aW50OF90PiBjb2xvckRhdGEpCiAgICAgICAgIDogbV9jb2xvckRhdGEoY29sb3JE
YXRhKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDMxNTIxODMwZjNhYTc3Mjg4MjcxMDhk
ZGVmZTFiZGRlN2Y5MWQzMTQuLjgxM2NiOTVlOTI1OGU5NTUzYjlhZGY5MDMyNzIyNTVkNjhiM2Vm
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTI3LDYgKzEyNyw3IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKICAgICBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MK
ICAgICBHUFVQcm9jZXNzL0dQVVByb2Nlc3MKIAorICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcgogICAgIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0wKICAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CmluZGV4IDc0ZmZhMzUyZTlkZTAwY2I4NjZmOTAyYzZlYWJkZWFhZGE2OWNmODYuLmVkZmZhNjYx
OGNiNDRmZDQxM2Q3ODZhNjA5MzAzMGQzODI4NTgwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTIwLDYgKzIwLDggQEAgJChKQVZBU0NS
SVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS9tb2RlbHMucHkKICQoSkFWQVNDUklQVENPUkVf
UFJJVkFURV9IRUFERVJTX0RJUikveHhkLnBsCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1Rf
RElSKS9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dC5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGY0ZjhhYzI1N2QxNTVlMWZl
NmY2MTY3YWU0M2M5Y2U1NzVhMWViZTkuLmExNjliODg0NTM2NDkxMmFmNzI3YzVhYWQ4MDFmY2M1
MzRiOWU3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdApAQCAtMjAzLDEyICsyMDMsMTggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ0RNUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VzUmVw
bGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dE1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IGMzMTQ3NDZjMmNlODA1ZmZkYjk5MDI5MWRiODY3YjI5ZmQyYmVhMTIuLmQ5ZjQ2Nzk4MjRh
NjcyYmM4M2I0M2UzNjAwYmVhOTQyZjBlMDE2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTI0Nyw2ICsyNDcsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlQbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eSBcCiAJUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
IFwKIAlHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgXAorCUdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBcCiAJR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kIFwKIAlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMIFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94
eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE1NGY3ZGIxYzg1
OTNiODNkYWRkYjBkZTk0MmNjNTg2ZDU3ZmIzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcApA
QCAtMCwwICsxLDQ2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXMuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcihJbWFnZUJ1ZmZlciYg
aW1hZ2VCdWZmZXIsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQp
CisgICAgOiBtX2ltYWdlQnVmZmVyKGltYWdlQnVmZmVyKQorICAgICwgbV9pbWFnZUJ1ZmZlcklk
ZW50aWZpZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgICwgbV9yZW5kZXJpbmdCYWNrZW5k
KHJlbmRlcmluZ0JhY2tlbmQpCit7Cit9CisKK1JlbW90ZVJlc291cmNlQ2FjaGUmIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OnJlc291cmNlQ2FjaGUoKQoreworICAgIHJldHVybiBtX3JlbmRl
cmluZ0JhY2tlbmQtPnJlbW90ZVJlc291cmNlQ2FjaGUoKTsKK30KKworR3JhcGhpY3NDb250ZXh0
JiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3aW5nQ29udGV4dCgpCit7CisgICAgcmV0
dXJuIG1fbWFza0ltYWdlQnVmZmVyID8gbV9tYXNrSW1hZ2VCdWZmZXItPmNvbnRleHQoKSA6IG1f
aW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpzdGFydExpc3RlbmluZ0ZvcklQQygpCit7CisgICAgQVNTRVJUKCFtX2lzTGlzdGVuaW5n
Rm9ySVBDKTsKKyAgICBtX2lzTGlzdGVuaW5nRm9ySVBDID0gdHJ1ZTsKKyAgICAvLyBGSVhNRTog
Tm90IGltcGxlbWVudGVkIHlldC4KK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKK3sKKyAgICBpZiAoIW1faXNMaXN0ZW5pbmdGb3JJUEMp
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0Lgor
ICAgIG1faXNMaXN0ZW5pbmdGb3JJUEMgPSBmYWxzZTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzYXZlKCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTYXZl
KCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnJlc3RvcmUoKQorewor
ICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlJlc3RvcmUoKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6dHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpCit7CisgICAg
aGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6VHJhbnNsYXRlKHgsIHkpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpyb3RhdGUoZmxvYXQgYW5nbGUpCit7CisgICAgaGFuZGxl
SXRlbShEaXNwbGF5TGlzdDo6Um90YXRlKGFuZ2xlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6c2NhbGUoY29uc3QgRmxvYXRTaXplJiBzY2FsZSkKK3sKKyAgICBoYW5k
bGVJdGVtKERpc3BsYXlMaXN0OjpTY2FsZShzY2FsZSkpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OnNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGN0bSkKK3sKKyAg
ICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTZXRDVE0oY3RtKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6Y29uY2F0ZW5hdGVDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBjdG0pCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q29uY2F0ZW5hdGVDVE0oY3Rt
KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0SW5saW5lRmlsbENv
bG9yKERpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3ImJiBpdGVtKQoreworICAgIGhhbmRs
ZUl0ZW0oV1RGTW92ZShpdGVtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6c2V0SW5saW5lU3Ryb2tlQ29sb3IoRGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9y
JiYgaXRlbSkKK3sKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSkpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0aGlja25l
c3MpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U2V0U3Ryb2tlVGhpY2tuZXNzKHRo
aWNrbmVzcykpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldFN0YXRl
KERpc3BsYXlMaXN0OjpTZXRTdGF0ZSYmIGl0ZW0pCit7CisgICAgYXV0byBzdHJva2VQYXR0ZXJu
SW1hZ2VJZGVudGlmaWVyID0gaXRlbS5zdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKCk7Cisg
ICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBzdHJva2VQYXR0ZXJuSW1hZ2U7CisgICAgaWYgKHN0cm9r
ZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIpCisgICAgICAgIHN0cm9rZVBhdHRlcm5JbWFnZSA9IHJl
c291cmNlQ2FjaGUoKS5jYWNoZWROYXRpdmVJbWFnZShzdHJva2VQYXR0ZXJuSW1hZ2VJZGVudGlm
aWVyKTsKKworICAgIGF1dG8gZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIgPSBpdGVtLmZpbGxQ
YXR0ZXJuSW1hZ2VJZGVudGlmaWVyKCk7CisgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBmaWxsUGF0
dGVybkltYWdlOworICAgIGlmIChmaWxsUGF0dGVybkltYWdlSWRlbnRpZmllcikKKyAgICAgICAg
ZmlsbFBhdHRlcm5JbWFnZSA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWROYXRpdmVJbWFnZShmaWxs
UGF0dGVybkltYWdlSWRlbnRpZmllcik7CisKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSks
IHN0cm9rZVBhdHRlcm5JbWFnZS5nZXQoKSwgZmlsbFBhdHRlcm5JbWFnZS5nZXQoKSk7CisKKyAg
ICBpZiAoc3Ryb2tlUGF0dGVybkltYWdlKQorICAgICAgICByZXNvdXJjZUNhY2hlKCkucmVjb3Jk
UmVzb3VyY2VVc2Uoc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcik7CisKKyAgICBpZiAoZmls
bFBhdHRlcm5JbWFnZSkKKyAgICAgICAgcmVzb3VyY2VDYWNoZSgpLnJlY29yZFJlc291cmNlVXNl
KGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpzZXRMaW5lQ2FwKExpbmVDYXAgbGluZUNhcCkKK3sKKyAgICBoYW5kbGVJdGVt
KERpc3BsYXlMaXN0OjpTZXRMaW5lQ2FwKGxpbmVDYXApKTsKK30KKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpzZXRMaW5lRGFzaChEaXNwbGF5TGlzdDo6U2V0TGluZURhc2gmJiBp
dGVtKQoreworICAgIGhhbmRsZUl0ZW0oV1RGTW92ZShpdGVtKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TGluZUpvaW4oTGluZUpvaW4gbGluZUpvaW4pCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U2V0TGluZUpvaW4obGluZUpvaW4pKTsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRNaXRlckxpbWl0KGZsb2F0IGxpbWl0
KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlNldE1pdGVyTGltaXQobGltaXQpKTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGVhclNoYWRvdygpCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xlYXJTaGFkb3coKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xpcChyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcE91dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xpcE91dChyZWN0KSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QpCit7CisgICAgUmVmUHRyIGltYWdlQnVmZmVy
ID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hlZEltYWdlQnVmZmVyKGltYWdlQnVmZmVySWRlbnRpZmll
cik7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6
OkNsaXBUb0ltYWdlQnVmZmVyKGltYWdlQnVmZmVySWRlbnRpZmllciwgZGVzdGluYXRpb25SZWN0
KSwgKmltYWdlQnVmZmVyKTsKKyAgICByZXNvdXJjZUNhY2hlKCkucmVjb3JkUmVzb3VyY2VVc2Uo
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpjbGlwT3V0VG9QYXRoKGNvbnN0IFBhdGgmIHBhdGgpCit7CisgICAgaGFuZGxlSXRlbShE
aXNwbGF5TGlzdDo6Q2xpcE91dFRvUGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6Y2xpcFBhdGgoY29uc3QgUGF0aCYgcGF0aCwgV2luZFJ1bGUgcnVsZSkK
K3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpDbGlwUGF0aChwYXRoLCBydWxlKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YmVnaW5DbGlwVG9EcmF3aW5nQ29t
bWFuZHMoY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRGVzdGluYXRpb25Db2xv
clNwYWNlJiBjb2xvclNwYWNlKQoreworICAgIG1fbWFza0ltYWdlQnVmZmVyID0gSW1hZ2VCdWZm
ZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoZGVzdGluYXRpb24uc2l6ZSgpLCBjb2xvclNwYWNl
LCBkcmF3aW5nQ29udGV4dCgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjplbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbikK
K3sKKyAgICBhdXRvIG1hc2tJbWFnZUJ1ZmZlciA9IHN0ZDo6ZXhjaGFuZ2UobV9tYXNrSW1hZ2VC
dWZmZXIsIHsgfSk7CisgICAgaWYgKCFtYXNrSW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkcmF3aW5nQ29u
dGV4dCgpLmNsaXBUb0ltYWdlQnVmZmVyKCptYXNrSW1hZ2VCdWZmZXIsIGRlc3RpbmF0aW9uKTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3R2x5cGhzKERpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzJiYgaXRlbSkKK3sKKyAgICBhdXRvIGZvbnRJZGVudGlmaWVyID0gaXRl
bS5mb250SWRlbnRpZmllcigpOworICAgIFJlZlB0ciBmb250ID0gcmVzb3VyY2VDYWNoZSgpLmNh
Y2hlZEZvbnQoZm9udElkZW50aWZpZXIpOworICAgIGlmICghZm9udCkgeworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhhbmRsZUl0
ZW0oV1RGTW92ZShpdGVtKSwgKmZvbnQpOworICAgIHJlc291cmNlQ2FjaGUoKS5yZWNvcmRSZXNv
dXJjZVVzZShmb250SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6ZHJhd0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQor
eworICAgIFJlZlB0ciBpbWFnZUJ1ZmZlciA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWRJbWFnZUJ1
ZmZlcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlmICghaW1hZ2VCdWZmZXIpIHsKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyLCBkZXN0aW5hdGlvblJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpLCAqaW1hZ2VCdWZmZXIp
OworICAgIHJlc291cmNlQ2FjaGUoKS5yZWNvcmRSZXNvdXJjZVVzZShpbWFnZUJ1ZmZlcklkZW50
aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdOYXRpdmVJ
bWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBG
bG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sK
KyAgICBSZWZQdHIgaW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkTmF0aXZlSW1hZ2UoaW1h
Z2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIWltYWdlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlSXRlbShEaXNwbGF5
TGlzdDo6RHJhd05hdGl2ZUltYWdlKGltYWdlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3B0aW9ucyksICppbWFnZSk7CisgICAgcmVzb3VyY2VDYWNoZSgpLnJlY29y
ZFJlc291cmNlVXNlKGltYWdlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdl
SWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBSZWZQ
dHIgaW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkTmF0aXZlSW1hZ2UoaW1hZ2VJZGVudGlm
aWVyKTsKKyAgICBpZiAoIWltYWdlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJh
d1BhdHRlcm4oaW1hZ2VJZGVudGlmaWVyLCBpbWFnZVNpemUsIGRlc3RSZWN0LCB0aWxlUmVjdCwg
dHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyksICppbWFnZSk7CisgICAgcmVzb3Vy
Y2VDYWNoZSgpLnJlY29yZFJlc291cmNlVXNlKGltYWdlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBv
cGFjaXR5KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkJlZ2luVHJhbnNwYXJlbmN5
TGF5ZXIob3BhY2l0eSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmVu
ZFRyYW5zcGFyZW5jeUxheWVyKCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpFbmRU
cmFuc3BhcmVuY3lMYXllcigpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykK
K3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3UmVjdChyZWN0LCBib3JkZXJUaGlj
a25lc3MpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3TGluZShj
b25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MikKK3sKKyAg
ICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3TGluZShwb2ludDEsIHBvaW50MikpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdMaW5lc0ZvclRleHQoRGlzcGxh
eUxpc3Q6OkRyYXdMaW5lc0ZvclRleHQmJiBpdGVtKQoreworICAgIGhhbmRsZUl0ZW0oV1RGTW92
ZShpdGVtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0RvdHNG
b3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IERvY3VtZW50TWFy
a2VyTGluZVN0eWxlJiBzdHlsZSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3
RG90c0ZvckRvY3VtZW50TWFya2VyKHJlY3QsIHN0eWxlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd0VsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQorewor
ICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdFbGxpcHNlKHJlY3QpKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3UGF0aChjb25zdCBQYXRoJiBwYXRoKQor
eworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdQYXRoKHBhdGgpKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nUGF0aChjb25zdCBQYXRo
JiBwYXRoLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit7
CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd0ZvY3VzUmluZ1BhdGgocGF0aCwgd2lk
dGgsIG9mZnNldCwgY29sb3IpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpkcmF3Rm9jdXNSaW5nUmVjdHMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RzLCBmbG9h
dCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAgaGFuZGxl
SXRlbShEaXNwbGF5TGlzdDo6RHJhd0ZvY3VzUmluZ1JlY3RzKHJlY3RzLCB3aWR0aCwgb2Zmc2V0
LCBjb2xvcikpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpG
aWxsUmVjdChyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Zmls
bFJlY3RXaXRoQ29sb3IoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3Ip
Cit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoQ29sb3IocmVjdCwg
Y29sb3IpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUmVjdFdp
dGhHcmFkaWVudChEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQmJiBpdGVtKQorewor
ICAgIGhhbmRsZUl0ZW0oV1RGTW92ZShpdGVtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6ZmlsbENvbXBvc2l0ZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29u
c3QgQ29sb3ImIGNvbG9yLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9k
ZSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsQ29tcG9zaXRlZFJlY3QocmVj
dCwgY29sb3IsIG9wLCBibGVuZE1vZGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpmaWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29u
c3QgQ29sb3ImIGNvbG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQoreworICAgIGhhbmRsZUl0ZW0o
RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdChyZWN0LCBjb2xvciwgYmxlbmRNb2RlKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJlY3RXaXRoUm91bmRlZEhv
bGUoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
SG9sZVJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlM
aXN0OjpGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShyZWN0LCByb3VuZGVkSG9sZVJlY3QsIGNvbG9y
KSk7Cit9CisKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpmaWxsTGluZShjb25zdCBMaW5lRGF0YSYgZGF0YSkKK3sKKyAgICBo
YW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsTGluZShkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbEFyYyhjb25zdCBBcmNEYXRhJiBkYXRhKQoreworICAg
IGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxBcmMoZGF0YSkpOworfQorCit2b2lkIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxRdWFkQ3VydmUoY29uc3QgUXVhZEN1cnZlRGF0YSYg
ZGF0YSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsUXVhZEN1cnZlKGRhdGEp
KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsQmV6aWVyQ3VydmUo
Y29uc3QgQmV6aWVyQ3VydmVEYXRhJiBkYXRhKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxp
c3Q6OkZpbGxCZXppZXJDdXJ2ZShkYXRhKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5MSU5F
X1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUGF0aChj
b25zdCBQYXRoJiBwYXRoKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxQYXRo
KHBhdGgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsRWxsaXBz
ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6
RmlsbEVsbGlwc2UocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmdldFBpeGVsQnVmZmVyKGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFBpeGVsQnVmZmVy
Rm9ybWF0JiBvdXRwdXRGb3JtYXQpCit7CisgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5wb3B1bGF0
ZUdldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5KG1faW1hZ2VCdWZmZXItPmdldFBpeGVsQnVmZmVy
KG91dHB1dEZvcm1hdCwgc3JjUmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBv
aW50JiBkZXN0UG9pbnQsIGNvbnN0IFBpeGVsQnVmZmVyJiBwaXhlbEJ1ZmZlciwgQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KQoreworICAgIG1faW1hZ2VCdWZmZXItPnB1dFBpeGVs
QnVmZmVyKHBpeGVsQnVmZmVyLCBzcmNSZWN0LCBkZXN0UG9pbnQsIGRlc3RGb3JtYXQpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnBhaW50RnJhbWVGb3JNZWRpYShNZWRp
YVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
bikKK3sKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnBlcmZvcm1XaXRoTWVkaWFQbGF5ZXJPbk1h
aW5UaHJlYWQoaWRlbnRpZmllciwgW2ltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlci5jb3B5UmVm
KCksIGRlc3RpbmF0aW9uXShNZWRpYVBsYXllciYgcGxheWVyKSB7CisgICAgICAgIC8vIEl0IGlz
IGN1cnJlbnRseSBub3Qgc2FmZSB0byBjYWxsIHBhaW50RnJhbWVGb3JNZWRpYSgpIG9mZiB0aGUg
bWFpbiB0aHJlYWQuCisgICAgICAgIGltYWdlQnVmZmVyLT5jb250ZXh0KCkucGFpbnRGcmFtZUZv
ck1lZGlhKHBsYXllciwgZGVzdGluYXRpb24pOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9h
dCBsaW5lV2lkdGgpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlUmVjdChy
ZWN0LCBsaW5lV2lkdGgpKTsKK30KKworI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZUxpbmUoY29uc3QgTGluZURhdGEm
IGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlTGluZShkYXRhKSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tlQXJjKGNvbnN0IEFy
Y0RhdGEmIGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlQXJjKGRh
dGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VRdWFkQ3Vy
dmUoY29uc3QgUXVhZEN1cnZlRGF0YSYgZGF0YSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlM
aXN0OjpTdHJva2VRdWFkQ3VydmUoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OnN0cm9rZUJlemllckN1cnZlKGNvbnN0IEJlemllckN1cnZlRGF0YSYgZGF0YSkK
K3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTdHJva2VCZXppZXJDdXJ2ZShkYXRhKSk7
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCit7CisgICAg
aGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlUGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tlRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlRWxsaXBzZShyZWN0KSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xlYXJSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpDbGVhclJlY3Qo
cmVjdCkpOworfQorCisjaWYgVVNFKENHKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmFwcGx5U3Ryb2tlUGF0dGVybigpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6
QXBwbHlTdHJva2VQYXR0ZXJuKCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmFwcGx5RmlsbFBhdHRlcm4oKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkFw
cGx5RmlsbFBhdHRlcm4oKSk7Cit9CisKKyNlbmRpZiAvLyBVU0UoQ0cpCisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6YXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZh
Y3RvcikKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpBcHBseURldmljZVNjYWxlRmFj
dG9yKHNjYWxlRmFjdG9yKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
Zmx1c2hDb250ZXh0KEdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIG1faW1hZ2VCdWZmZXItPmZsdXNoQ29udGV4dCgpOworICAgIG1fcmVuZGVyaW5nQmFj
a2VuZC0+ZGlkRmx1c2goaWRlbnRpZmllciwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxOWEzZDM4NDA0NDQzZTU4ODVi
OTMzZjFiZjI5NTAwNmY0M2IzYTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC0wLDAgKzEs
MTUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
IgorI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlN0cmVhbVNl
cnZlckNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOworY2xh
c3MgUmVtb3RlUmVzb3VyY2VDYWNoZTsKKworY2xhc3MgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ciA6IHB1YmxpYyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFr
UHRyPFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI+IGNyZWF0ZShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYg
aW1hZ2VCdWZmZXIsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyKGltYWdlQnVmZmVyLCBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tl
bmQpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7CisgICAgdm9p
ZCBzdG9wTGlzdGVuaW5nRm9ySVBDKCk7CisKKyAgICB2b2lkIHNhdmUoKTsKKyAgICB2b2lkIHJl
c3RvcmUoKTsKKyAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KTsKKyAgICB2b2lk
IHJvdGF0ZShmbG9hdCBhbmdsZSk7CisgICAgdm9pZCBzY2FsZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIHNjYWxlKTsKKyAgICB2b2lkIHNldENUTShjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFu
c2Zvcm0mKTsKKyAgICB2b2lkIGNvbmNhdGVuYXRlQ1RNKGNvbnN0IFdlYkNvcmU6OkFmZmluZVRy
YW5zZm9ybSYpOworICAgIHZvaWQgc2V0SW5saW5lRmlsbENvbG9yKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTZXRJbmxpbmVGaWxsQ29sb3ImJik7CisgICAgdm9pZCBzZXRJbmxpbmVTdHJva2VDb2xv
cihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3ImJik7CisgICAgdm9p
ZCBzZXRTdHJva2VUaGlja25lc3MoZmxvYXQpOworICAgIHZvaWQgc2V0U3RhdGUoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlNldFN0YXRlJiYpOworICAgIHZvaWQgc2V0TGluZUNhcChXZWJDb3JlOjpM
aW5lQ2FwKTsKKyAgICB2b2lkIHNldExpbmVEYXNoKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRM
aW5lRGFzaCYmKTsKKyAgICB2b2lkIHNldExpbmVKb2luKFdlYkNvcmU6OkxpbmVKb2luKTsKKyAg
ICB2b2lkIHNldE1pdGVyTGltaXQoZmxvYXQpOworICAgIHZvaWQgY2xlYXJTaGFkb3coKTsKKyAg
ICB2b2lkIGNsaXAoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgdm9pZCBjbGlwT3V0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworICAgIHZvaWQgY2xpcFRvSW1hZ2VCdWZmZXIo
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uUmVjdCk7CisgICAgdm9pZCBjbGlwT3V0VG9QYXRoKGNvbnN0IFdl
YkNvcmU6OlBhdGgmKTsKKyAgICB2b2lkIGNsaXBQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmLCBX
ZWJDb3JlOjpXaW5kUnVsZSk7CisgICAgdm9pZCBiZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBXZWJDb3JlOjpEZXN0
aW5hdGlvbkNvbG9yU3BhY2UmKTsKKyAgICB2b2lkIGVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKTsKKyAgICB2b2lkIGRyYXdHbHlw
aHMoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMmJik7CisgICAgdm9pZCBkcmF3SW1h
Z2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVy
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWlu
dGluZ09wdGlvbnMmKTsKKyAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50
aW5nT3B0aW9ucyYpOworICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJik7CisgICAgdm9p
ZCBiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpOworICAgIHZvaWQgZW5kVHJh
bnNwYXJlbmN5TGF5ZXIoKTsKKyAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcyk7CisgICAgdm9pZCBkcmF3TGluZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBv
aW50Mik7CisgICAgdm9pZCBkcmF3TGluZXNGb3JUZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3TGluZXNGb3JUZXh0JiYpOworICAgIHZvaWQgZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxp
bmVTdHlsZSYpOworICAgIHZvaWQgZHJhd0VsbGlwc2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
Jik7CisgICAgdm9pZCBkcmF3UGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJik7CisgICAgdm9pZCBk
cmF3Rm9jdXNSaW5nUGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJiwgZmxvYXQgd2lkdGgsIGZsb2F0
IG9mZnNldCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2b2lkIGRyYXdGb2N1c1JpbmdS
ZWN0cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRo
LCBmbG9hdCBvZmZzZXQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBmaWxsUmVj
dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICB2b2lkIGZpbGxSZWN0V2l0aENvbG9y
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAg
dm9pZCBmaWxsUmVjdFdpdGhHcmFkaWVudChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RX
aXRoR3JhZGllbnQmJik7CisgICAgdm9pZCBmaWxsQ29tcG9zaXRlZFJlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBXZWJDb3JlOjpDb21wb3NpdGVP
cGVyYXRvciwgV2ViQ29yZTo6QmxlbmRNb2RlKTsKKyAgICB2b2lkIGZpbGxSb3VuZGVkUmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBX
ZWJDb3JlOjpCbGVuZE1vZGUpOworICAgIHZvaWQgZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisg
ICAgdm9pZCBmaWxsTGluZShjb25zdCBXZWJDb3JlOjpMaW5lRGF0YSYpOworICAgIHZvaWQgZmls
bEFyYyhjb25zdCBXZWJDb3JlOjpBcmNEYXRhJik7CisgICAgdm9pZCBmaWxsUXVhZEN1cnZlKGNv
bnN0IFdlYkNvcmU6OlF1YWRDdXJ2ZURhdGEmKTsKKyAgICB2b2lkIGZpbGxCZXppZXJDdXJ2ZShj
b25zdCBXZWJDb3JlOjpCZXppZXJDdXJ2ZURhdGEmKTsKKyNlbmRpZgorICAgIHZvaWQgZmlsbFBh
dGgoY29uc3QgV2ViQ29yZTo6UGF0aCYpOworICAgIHZvaWQgZmlsbEVsbGlwc2UoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0Jik7CisgICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0
cHV0Rm9ybWF0KTsKKyAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IFdl
YkNvcmU6OlBpeGVsQnVmZmVyJiwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0
Rm9ybWF0KTsKKyAgICB2b2lkIHBhaW50RnJhbWVGb3JNZWRpYShXZWJDb3JlOjpNZWRpYVBsYXll
cklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24pOworICAg
IHZvaWQgc3Ryb2tlUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCBsaW5lV2lk
dGgpOworI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorICAgIHZvaWQgc3Ryb2tlTGluZShj
b25zdCBXZWJDb3JlOjpMaW5lRGF0YSYpOworICAgIHZvaWQgc3Ryb2tlQXJjKGNvbnN0IFdlYkNv
cmU6OkFyY0RhdGEmKTsKKyAgICB2b2lkIHN0cm9rZVF1YWRDdXJ2ZShjb25zdCBXZWJDb3JlOjpR
dWFkQ3VydmVEYXRhJik7CisgICAgdm9pZCBzdHJva2VCZXppZXJDdXJ2ZShjb25zdCBXZWJDb3Jl
OjpCZXppZXJDdXJ2ZURhdGEmKTsKKyNlbmRpZgorICAgIHZvaWQgc3Ryb2tlUGF0aChjb25zdCBX
ZWJDb3JlOjpQYXRoJik7CisgICAgdm9pZCBzdHJva2VFbGxpcHNlKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpOworICAgIHZvaWQgY2xlYXJSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OworI2lmIFVTRShDRykKKyAgICB2b2lkIGFwcGx5U3Ryb2tlUGF0dGVybigpOworICAgIHZvaWQg
YXBwbHlGaWxsUGF0dGVybigpOworI2VuZGlmCisgICAgdm9pZCBhcHBseURldmljZVNjYWxlRmFj
dG9yKGZsb2F0KTsKKyAgICB2b2lkIGZsdXNoQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRGbHVzaElkZW50aWZpZXIpOworCitwcml2YXRlOgorICAgIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmKTsKKworICAgIFJlbW90ZVJlc291cmNl
Q2FjaGUmIHJlc291cmNlQ2FjaGUoKTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGRy
YXdpbmdDb250ZXh0KCk7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSAuLi4g
QWRkaXRpb25hbEFyZ3M+CisgICAgdm9pZCBoYW5kbGVJdGVtKFQmJiBpdGVtLCBBZGRpdGlvbmFs
QXJncyYmIC4uLiBhcmdzKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IEluIHRoZSBmdXR1cmUs
IHdlIHNob3VsZCBjb25zaWRlciBidWZmZXJpbmcgdXAgYmF0Y2hlcyBvZiBkaXNwbGF5IGxpc3Qg
aXRlbXMgYmVmb3JlCisgICAgICAgIC8vIGFwcGx5aW5nIHRoZW0gaW5zdGVhZCBvZiBhcHBseWlu
ZyB0aGVtIGltbWVkaWF0ZWx5LCBzbyB0aGF0IHdlIGNhbiBhcHBseSBjbGlwcGluZyBhbmQgb2Nj
bHVzaW9uCisgICAgICAgIC8vIG9wdGltaXphdGlvbnMgdG8gc2tpcCBvdmVyIHBhcnRzIG9mIGEg
ZGlzcGxheSBsaXN0LCBpZiBwb3NzaWJsZS4KKyAgICAgICAgaXRlbS5hcHBseShkcmF3aW5nQ29u
dGV4dCgpLCBhcmdzLi4uKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNz
YWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKworICAgIFJlZjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gbV9pbWFnZUJ1ZmZlcjsKKyAgICBR
dWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZp
ZXI7CisgICAgUmVmPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1fbWFza0ltYWdlQnVmZmVyOworICAg
IGJvb2wgbV9pc0xpc3RlbmluZ0ZvcklQQyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWMxNDA5M2EzYjlhYmEw
YTFiZTcyMDY4N2VmYjQ2NjhiNTk1YTM2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2Vz
LmluCkBAIC0wLDAgKzEsOTggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4gUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlciBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CisgICAgU2F2ZSgpCisgICAgUmVz
dG9yZSgpCisgICAgVHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpCisgICAgUm90YXRlKGZsb2F0
IGFuZ2xlKQorICAgIFNjYWxlKFdlYkNvcmU6OkZsb2F0U2l6ZSBzY2FsZSkKKyAgICBTZXRDVE0o
V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIGN0bSkKKyAgICBDb25jYXRlbmF0ZUNUTShXZWJDb3Jl
OjpBZmZpbmVUcmFuc2Zvcm0gY3RtKQorICAgIFNldElubGluZUZpbGxDb2xvcihXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yIGl0ZW0pCisgICAgU2V0SW5saW5lU3Ryb2tl
Q29sb3IoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yIGl0ZW0pCisg
ICAgU2V0U3Ryb2tlVGhpY2tuZXNzKGZsb2F0IHRoaWNrbmVzcykKKyAgICBTZXRTdGF0ZShXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGUgaXRlbSkKKyAgICBTZXRMaW5lQ2FwKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpMaW5lQ2FwIGxpbmVDYXApCisgICAgU2V0TGluZURhc2goV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlNldExpbmVEYXNoIGl0ZW0pCisgICAgU2V0TGluZUpvaW4oZW51bTp1aW50
OF90IFdlYkNvcmU6OkxpbmVKb2luIGxpbmVKb2luKQorICAgIFNldE1pdGVyTGltaXQoZmxvYXQg
bGltaXQpCisgICAgQ2xlYXJTaGFkb3coKQorICAgIENsaXAoV2ViQ29yZTo6RmxvYXRSZWN0IHJl
Y3QpCisgICAgQ2xpcE91dChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkKKyAgICBDbGlwVG9JbWFn
ZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0KQorICAg
IENsaXBPdXRUb1BhdGgoV2ViQ29yZTo6UGF0aCBwYXRoKQorICAgIENsaXBQYXRoKFdlYkNvcmU6
OlBhdGggcGF0aCwgZW51bTp1aW50OF90IFdlYkNvcmU6OldpbmRSdWxlIHdpbmRSdWxlKQorICAg
IEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlv
biwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpCisgICAgRW5kQ2xp
cFRvRHJhd2luZ0NvbW1hbmRzKFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlvbikKKyAgICBE
cmF3R2x5cGhzKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzIGl0ZW0pCisgICAgRHJh
d0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1
ZmZlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0aW5hdGlvblJlY3QsIFdlYkNv
cmU6OkZsb2F0UmVjdCBzcmNSZWN0LCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlv
bnMgb3B0aW9ucykKKyAgICBEcmF3TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6
ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qgc3JjUmVj
dCwgc3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMpCisgICAgRHJh
d1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmxvYXRTaXplIGltYWdlU2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IGRl
c3RSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGlsZVJlY3QsIFdlYkNvcmU6OkFmZmluZVRyYW5z
Zm9ybSB0cmFuc2Zvcm0sIFdlYkNvcmU6OkZsb2F0UG9pbnQgcGhhc2UsIFdlYkNvcmU6OkZsb2F0
U2l6ZSBzcGFjaW5nLCBzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9u
cykKKyAgICBCZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCisgICAgRW5kVHJh
bnNwYXJlbmN5TGF5ZXIoKQorICAgIERyYXdSZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBm
bG9hdCBib3JkZXJUaGlja25lc3MpCisgICAgRHJhd0xpbmUoV2ViQ29yZTo6RmxvYXRQb2ludCBw
b2ludDEsIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQyKQorICAgIERyYXdMaW5lc0ZvclRleHQo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdMaW5lc0ZvclRleHQgaXRlbSkKKyAgICBEcmF3RG90
c0ZvckRvY3VtZW50TWFya2VyKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBzdHJ1Y3QgV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCisgICAgRHJhd0VsbGlwc2UoV2ViQ29y
ZTo6RmxvYXRSZWN0IHJlY3QpCisgICAgRHJhd1BhdGgoV2ViQ29yZTo6UGF0aCBwYXRoKQorICAg
IERyYXdGb2N1c1JpbmdQYXRoKFdlYkNvcmU6OlBhdGggcGF0aCwgZmxvYXQgd2lkdGgsIGZsb2F0
IG9mZnNldCwgV2ViQ29yZTo6Q29sb3IgY29sb3IpCisgICAgRHJhd0ZvY3VzUmluZ1JlY3RzKFZl
Y3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHJlY3RzLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0
LCBXZWJDb3JlOjpDb2xvciBjb2xvcikKKyAgICBGaWxsUmVjdChXZWJDb3JlOjpGbG9hdFJlY3Qg
cmVjdCkKKyAgICBGaWxsUmVjdFdpdGhDb2xvcihXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgV2Vi
Q29yZTo6Q29sb3IgY29sb3IpCisgICAgRmlsbFJlY3RXaXRoR3JhZGllbnQoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRpZW50IGl0ZW0pCisgICAgRmlsbENvbXBvc2l0ZWRS
ZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBXZWJDb3JlOjpDb2xvciBjb2xvciwgZW51bTp1
aW50OF90IFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yIG9wLCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6QmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBGaWxsUm91bmRlZFJlY3QoV2ViQ29yZTo6Rmxv
YXRSb3VuZGVkUmVjdCByZWN0LCBXZWJDb3JlOjpDb2xvciBjb2xvciwgZW51bTp1aW50OF90IFdl
YkNvcmU6OkJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUo
V2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Qgcm91bmRl
ZEhvbGVSZWN0LCBXZWJDb3JlOjpDb2xvciBjb2xvcikKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhf
REFUQSkKKyAgICBGaWxsTGluZShzdHJ1Y3QgV2ViQ29yZTo6TGluZURhdGEgZGF0YSkKKyAgICBG
aWxsQXJjKHN0cnVjdCBXZWJDb3JlOjpBcmNEYXRhIGRhdGEpCisgICAgRmlsbFF1YWRDdXJ2ZShz
dHJ1Y3QgV2ViQ29yZTo6UXVhZEN1cnZlRGF0YSBkYXRhKQorICAgIEZpbGxCZXppZXJDdXJ2ZShz
dHJ1Y3QgV2ViQ29yZTo6QmV6aWVyQ3VydmVEYXRhIGRhdGEpCisjZW5kaWYKKyAgICBGaWxsUGF0
aChXZWJDb3JlOjpQYXRoIHBhdGgpCisgICAgRmlsbEVsbGlwc2UoV2ViQ29yZTo6RmxvYXRSZWN0
IHJlY3QpCisgICAgR2V0UGl4ZWxCdWZmZXIoV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBzdHJ1
Y3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQgb3V0cHV0Rm9ybWF0KQorICAgIFB1dFBpeGVs
QnVmZmVyKFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6SW50UG9pbnQgZGVzdFBv
aW50LCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciBwaXhlbEJ1ZmZlciwgZW51bTp1aW50OF90IFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkKKyAgICBQYWludEZyYW1lRm9y
TWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6
OkZsb2F0UmVjdCBkZXN0aW5hdGlvbikKKyAgICBTdHJva2VSZWN0KFdlYkNvcmU6OkZsb2F0UmVj
dCByZWN0LCBmbG9hdCBsaW5lV2lkdGgpCisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisg
ICAgU3Ryb2tlTGluZShzdHJ1Y3QgV2ViQ29yZTo6TGluZURhdGEgZGF0YSkKKyAgICBTdHJva2VB
cmMoc3RydWN0IFdlYkNvcmU6OkFyY0RhdGEgZGF0YSkKKyAgICBTdHJva2VRdWFkQ3VydmUoc3Ry
dWN0IFdlYkNvcmU6OlF1YWRDdXJ2ZURhdGEgZGF0YSkKKyAgICBTdHJva2VCZXppZXJDdXJ2ZShz
dHJ1Y3QgV2ViQ29yZTo6QmV6aWVyQ3VydmVEYXRhIGRhdGEpCisjZW5kaWYKKyAgICBTdHJva2VQ
YXRoKFdlYkNvcmU6OlBhdGggcGF0aCkKKyAgICBTdHJva2VFbGxpcHNlKFdlYkNvcmU6OkZsb2F0
UmVjdCByZWN0KQorICAgIENsZWFyUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkKKyNpZiBV
U0UoQ0cpCisgICAgQXBwbHlTdHJva2VQYXR0ZXJuKCkKKyAgICBBcHBseUZpbGxQYXR0ZXJuKCkK
KyNlbmRpZgorICAgIEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCisg
ICAgRmx1c2hDb250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwCmluZGV4IGZjY2VkN2Q1MWEyMTIyYTYwMDQ4OTllMTllMzgwY2JkNTg1NzIx
ZjEuLmM3ZDFhODNlZWZlMzFlN2MyOWQ3MjNkY2M1YWY3NTc4NjkyMmYyNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKQEAgLTc4Myw2ICs3ODMsMTQgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjp1cGRhdGVMYXN0S25vd25TdGF0ZShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUg
c3QKICAgICBtX2xhc3RLbm93blN0YXRlLnN0b3JlUmVsYXhlZChzdGF0ZSk7CiB9CiAKK3ZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVh
ZChNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChNZWRpYVBs
YXllciYpPiYmIGNhbGxiYWNrKQoreworICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChbJiwg
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcywg
aWRlbnRpZmllcl0geworICAgICAgICBpZiAoYXV0byBwbGF5ZXIgPSBncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLT5yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLm1lZGlhUGxheWVyKGlk
ZW50aWZpZXIpKQorICAgICAgICAgICAgY2FsbGJhY2soKnBsYXllcik7CisgICAgfSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggNDE5YWU2ZDE2ZjcyZDdkNTkzMTQxZmUyMjk2YWNmZTY5
YTFjNTkwYy4uNjI4ZWMzOWI2YTE4OWI4MmViYTRmZmYyNThmNjZhZDk2ODBkNzJkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5oCkBAIC05OSw2ICs5OSw4IEBAIHB1YmxpYzoKIAogICAgIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRTdGF0ZSBsYXN0S25vd25TdGF0ZSgpIGNvbnN0OwogCisgICAgdm9pZCBw
ZXJmb3JtV2l0aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciwgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpNZWRpYVBsYXllciYpPiYmKTsKKwogcHJp
dmF0ZToKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIHZv
aWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CmluZGV4IDQxYzc2YmRiOGRhNzE2NDVmMzg1M2EzM2ZhZDVkZDI1ZWQ3ODQ0MWMu
Ljc4MzlmNjk4ZGQ4MWE4MjQyZDFhYzNmMzI1NDY1YmYxNTAxNTU1MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNjkxLDEzICs2OTEsMTggQEAgZGVmIGhl
YWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXYWxsVGltZSc6IFsnPHd0Zi9XYWxsVGlt
ZS5oPiddLAogICAgICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQvV1RGU3RyaW5nLmg+J10sCiAg
ICAgICAgICdQQUw6OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9uSUQuaD4nXSwKKyAgICAgICAg
J1dlYkNvcmU6OkFyY0RhdGEnOiBbJzxXZWJDb3JlL0lubGluZVBhdGhEYXRhLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9wbGF5RXZl
bnQuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkJlemllckN1cnZlRGF0YSc6IFsnPFdlYkNvcmUv
SW5saW5lUGF0aERhdGEuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkJsZW5kTW9kZSc6IFsnPFdl
YkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbic6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uJzogWyc8V2ViQ29yZS9Dcm9zc09y
aWdpbkVtYmVkZGVyUG9saWN5Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpDT09QRGlzcG9zaXRp
b24nOiBbJzxXZWJDb3JlL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5Lmg+J10sCisgICAgICAgICdX
ZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcic6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQnOiBbJzxXZWJD
b3JlL0FwcEhpZ2hsaWdodC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6IFsnPFdlYkNvcmUvQ29sb3JTcGFjZS5oPiddLAor
ICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUnOiBbJzxXZWJDb3JlL0dy
YXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVu
dGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJzogWyc8V2ViQ29yZS9EcmFnRGF0YS5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kJzogWyc8V2ViQ29yZS9EcmFnQWN0
aW9ucy5oPiddLApAQCAtNzA4LDYgKzcxMyw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgogICAgICAgICAnV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmls
ZUNob29zZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJl
bW92YWxNb2RlJzogWyc8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OkZvbnRDaGFuZ2VzJzogWyc8V2ViQ29yZS9Gb250QXR0cmlidXRlQ2hhbmdl
cy5oPiddLAorICAgICAgICAnV2ViQ29yZTo6Rm9udFNtb290aGluZ01vZGUnOiBbJzxXZWJDb3Jl
L0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lTG9hZFR5cGUnOiBb
JzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkdlbmVy
aWNDdWVEYXRhJzogWyc8V2ViQ29yZS9JbmJhbmRHZW5lcmljQ3VlLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpHcmFtbWFyRGV0YWlsJzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPidd
LApAQCAtNzIzLDEwICs3MjksMTQgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAg
ICAgICdXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQnOiBbJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkJzog
Wyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6TGVnYWN5Q0RNU2Vzc2lvbkNsaWVudDo6TWVkaWFLZXlFcnJvckNvZGUnOiBbJzxXZWJDb3Jl
L0xlZ2FjeUNETVNlc3Npb24uaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkxpbmVDYXAnOiBbJzxX
ZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkxpbmVEYXRhJzog
Wyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TGluZUpv
aW4nOiBbJzxXZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Okxv
Y2tCYWNrRm9yd2FyZExpc3QnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3Jl
L01lZGlhUGxheWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjo6SGFzQWN0aXZpdHknOiBbJzxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5JzogWyc8V2ViQ29y
ZS9Eb2N1bWVudExvYWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TW92ZURhdGEnOiBbJzxX
ZWJDb3JlL0lubGluZVBhdGhEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpOZXR3b3JrVHJh
bnNhY3Rpb25JbmZvcm1hdGlvbic6IFsnPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGEnOiBbJzxXZWJDb3Jl
L1Bhc3RlYm9hcmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSc6IFsn
PFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLApAQCAtNzQyLDYgKzc1Miw3IEBAIGRlZiBoZWFkZXJz
X2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQ
cmVzZXJ2ZVJlc29sdXRpb24nOiBbJzxXZWJDb3JlL0ltYWdlQnVmZmVyQmFja2VuZC5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInOiBbJzxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGlmaWVyLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpRdWFkQ3VydmVEYXRhJzogWyc8V2Vi
Q29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UmVjZW50U2VhcmNo
JzogWyc8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJl
cXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0JzogWyc8V2ViQ29yZS9Eb2N1bWVudFN0b3JhZ2VBY2Nl
c3MuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSc6IFsnPFdlYkNv
cmUvQXVkaW9TZXNzaW9uLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAppbmRleCA4NjdmNmQ1NDhiOWUyOTg0ZWM3MWYzM2RhMDI4OTg3MjM5
NzFjZDBkLi4wMzJlZjQ3M2I1ZDIwNjM1MjM3OTc5OTUwODY5YjgxMWYwYmYwZGEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTE1OSw2
ICsxNTksOSBAQCBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dQb2lu
dCkKIERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX1NPVVJDRShDR0FmZmluZVRyYW5z
Zm9ybSkKICNlbmRpZgogCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0Uo
RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvcikKK0RFRklORV9TSU1QTEVfQVJHVU1FTlRf
Q09ERVJfRk9SX1NPVVJDRShEaXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3IpCisKICN1
bmRlZiBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UKIAogc3RhdGljIHZv
aWQgZW5jb2RlU2hhcmVkQnVmZmVyKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNoYXJlZEJ1ZmZl
ciogYnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAppbmRleCA3ZThmZWM5ZmIzZjYyODVhZTdlNjBiM2YwNDg0YTFlZjk5Yzc2ZTZhLi4yMDhmMWI2
MTE3Yjg3OTBjYTQzNTE0YmFhNDE0NWQwNmMyNjJhZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9p
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQzRC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRSZWN0Lmg+CkBAIC0yNTMsNiArMjU0LDkgQEAgREVGSU5FX1NJTVBMRV9BUkdVTUVO
VF9DT0RFUl9GT1JfSEVBREVSKENHUG9pbnQpCiBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVS
X0ZPUl9IRUFERVIoQ0dBZmZpbmVUcmFuc2Zvcm0pCiAjZW5kaWYKIAorREVGSU5FX1NJTVBMRV9B
UkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVG
aWxsQ29sb3IpCitERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9IRUFERVIoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNvbG9yKQorCiAjdW5kZWYgREVGSU5FX1NJ
TVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVBREVSCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZz4gewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggYzRh
ODRlMWZiNmY0NjZiOGZiZDU0ZTZjYTQ2YzQ3MjQyMmIzYjBjOC4uN2UyM2Q2MDUyYzQ1MjRmMjdi
NzA0MjAyYWEwZTdjOTE3ZjFkYjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNSw2ICsyNSw3IEBAIEdQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuY3BwCitHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlLmNwcApAQCAtNjExLDYgKzYxMiw3IEBAIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0Rp
c3BsYXlMaXN0V3JpdGVySGFuZGxlLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCitXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTc1NSw2ICs3
NTcsNyBAQCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNw
cAogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUlRDRGF0
YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCitSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbU1lc3NhZ2VS
ZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGVkMjA0MWZhNTJkZjM2YTkxNjZmYzcyODJlMTliNjRiOTFkNDliM2UuLjNi
MDdmYjNkNTY1MjBkY2M4ZWVmOGY5NTE2ODFiYjU4ZjU2YTQ3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA1Myw2ICsyMDUzLDkg
QEAKIAkJRjQ0MjkxOTYxRkE1OTQyQTAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0MjkxOTUx
RkE1OTQyQTAwMkNDOTNFIC8qIF9XS0F0dGFjaG1lbnRJbnRlcm5hbC5oICovOyB9OwogCQlGNDQ4
MTU2NDIzODc4MjAwMDA5ODI2NTcgLyogV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0ODE1NjIyMzg3
ODIwMDAwOTgyNjU3IC8qIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKIAkJ
RjQ0REZFQjIxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NERGRUIwMUU5RTc1MkYwMDM4
RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi87IH07CisJCUY0NTE3RDdCMjZGQkNEMzkwMDRD
ODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUxN0Q3OTI2RkJDRDM4MDA0
Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oICovOyB9Owor
CQlGNDUxN0Q3QzI2RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUx
N0Q3QTI2RkJDRDM4MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgg
Ki87IH07CisJCUY0NTFDMEZFMjcwM0IyNjMwMDJCQTAzQiAvKiBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0OEJCOEREMjZGOTYzNUQwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHkuaCAqLzsgfTsKIAkJRjQ2NjBCQzIyNURFRjA4MTAwRTg2NTk4IC8qIFBhc3RlYm9hcmRB
Y2Nlc3NJbnRlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0NjYwQkMxMjVERUYwODEwMEU4NjU5OCAvKiBQYXN0ZWJvYXJkQWNjZXNzSW50ZW50Lmgg
Ki87IH07CiAJCUY0ODU3MEEzMjY0NEJFQzUwMEMwNUY3MSAvKiBUaW1lb3V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDg1NzBBMjI2NDRCRUM0MDBD
MDVGNzEgLyogVGltZW91dC5oICovOyB9OwogCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyog
QXBwS2l0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDhEMkE4NDIxNTgzQTAyMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggKi87IH07CkBAIC02MTI5
LDkgKzYxMzIsMTcgQEAKIAkJRjQ0ODE1NjMyMzg3ODIwMDAwOTgyNjU3IC8qIFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NERGRUIwMUU5RTc1MkYwMDM4
RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYkljb25VdGlsaXRpZXMuaDsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NERGRUIxMUU5RTc1MkYwMDM4RDE5NiAvKiBX
ZWJJY29uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV2ViSWNvblV0aWxpdGllcy5tbTsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDUxN0Q3NzI2RkJDQ0U0MDA0Qzg0NzUgLyog
UmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZE1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCUY0NTE3RDc5MjZGQkNEMzgwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlGNDUxN0Q3QTI2RkJDRDM4MDA0Qzg0NzUg
LyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRjQ1MUMxMDAyNzAzRDg1MzAwMkJB
MDNCIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjQ2NjBCQzEyNURFRjA4MTAwRTg2NTk4IC8qIFBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVib2FyZEFjY2Vzc0ludGVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDdBMDUxNjI2ODI3QTA5MDA3RTVDRjIgLyogUXVpY2tMb29rUHJl
dmlld0FjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDg1NzBBMjI2NDRCRUM0MDBDMDVGNzEg
LyogVGltZW91dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lb3V0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0OEJCOEREMjZGOTYzNUQwMDFDMUM0MCAv
KiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY0OEJCOERFMjZGOTYzNUQwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4QkI4REYyNkY5NjM5MjAwMUMx
QzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDhC
QjhFMDI2Rjk2MzkyMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBODQyMTU4M0EwMjAwQzY3NTJCIC8qIEFwcEtpdFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBcHBLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjQ5NkE0MkYxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaDsgcGF0aCA9IGlv
cy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ5NkE0MzAxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbTsgcGF0
aCA9IGlvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05MDcyLDYgKzkwODMsOCBAQAogCQkJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkz
MSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAqLywKIAkJCQk3MjdBN0Yz
ODI0MDc4OEYwMDA0RDI5MzEgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQu
aCAqLywKIAkJCQk3MjI3ODAwQjI0MDhCRDdEMDA3RDM3NkIgLyogUGxhdGZvcm1SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmggKi8sCisJCQkJRjQ4QkI4REUyNkY5NjM1RDAwMUMxQzQwIC8qIFJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAgKi8sCisJCQkJRjQ4QkI4REQyNkY5NjM1RDAw
MUMxQzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oICovLAogCQkJCTdCOTA0
MTY1MjU0QUZERUEwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCAq
LywKIAkJCQk3QjkwNDE2NjI1NEFGREVCMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eS5oICovLAogCQkJCTdCOTA0MTY3MjU0QUZFMTcwMDZFRUI4QyAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5Lm1lc3NhZ2VzLmluICovLApAQCAtOTA5NCw2ICs5MTA3LDkgQEAK
IAkJCQlGNDA5NENCQjI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUu
aCAqLywKIAkJCQk1NUFEMDk0MzI0MDhBMEU2MDBERTREMkYgLyogUGxhdGZvcm1SZW1vdGVJbWFn
ZUJ1ZmZlci5oICovLAogCQkJCTFDQzU0QUZEMjcwRjk2NTQwMDVCRjhCRSAvKiBRdWFsaWZpZWRS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJCQlGNDhCQjhFMDI2Rjk2MzkyMDAx
QzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgKi8sCisJCQkJRjQ4QkI4REYy
NkY5NjM5MjAwMUMxQzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCAqLywKKwkJCQlG
NDUxQzEwMDI3MDNEODUzMDAyQkEwM0IgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQk3QjkwNDE2OTI1NEFGRUE3MDA2RUVCOEMgLyogUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuY3BwICovLAogCQkJCTdCOTA0MTZBMjU0QUZFQTcwMDZFRUI4QyAvKiBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTC5oICovLAogCQkJCTdCOTA0MTY4MjU0QUZFQTcwMDZFRUI4QyAv
KiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbiAqLywKQEAgLTExNDY1LDYgKzEx
NDgxLDkgQEAKIAkJCQlDRDgyNTJEQTI1RDQ5MTU0MDA4NjJGRDggLyogUmVtb3RlUmVtb3RlQ29t
bWFuZExpc3RlbmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNEODI1MkQ5MjVE
NDkxNTQwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJQcm94eU1lc3NhZ2Vz
LmggKi8sCiAJCQkJQ0Q4MjUyRDgyNUQ0OTE1MzAwODYyRkQ4IC8qIFJlbW90ZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lclByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJRjQ1MTdENzcyNkZCQ0NF
NDAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCUY0NTE3RDdBMjZGQkNEMzgwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
TWVzc2FnZXMuaCAqLywKKwkJCQlGNDUxN0Q3OTI2RkJDRDM4MDA0Qzg0NzUgLyogUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTBGNTk0N0E1MTg3QjUxNzYw
MDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJMEY1OTQ3QTYxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWVzc2FnZXMuaCAqLywKIAkJCQkxREQyQTY2QjI1NjIwMjFFMDBGRjdCNkYgLyogUmVt
b3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTI1NjAsNiAr
MTI1NzksNyBAQAogCQkJCUNEQUMyMEI0MjNGQjU4RjIwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0
YW5jZVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBDQTIzRkMyRjc1MDAyMURFRTMg
LyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFDMjBD
OTIzRkMyRjc1MDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uSWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjQ1MUMwRkUyNzAzQjI2MzAwMkJBMDNCIC8qIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQxODEw
NzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBENjIg
LyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjU4OCw2ICsx
MjYwOCw4IEBACiAJCQkJMUFDMTMzODYxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJl
Z2lzdHJ5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MDg4QTAwMjYxRkE4QkMwMEUy
NTAwRCAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjA4
OEEwMTI2MUZBOEM0MDBFMjUwMEQgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZENyZWF0aW9uUGFy
YW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ1MTdEN0MyNkZCQ0QzOTAwNEM4NDc1IC8q
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ1
MTdEN0IyNkZCQ0QzOTAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1Jl
cGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0MTRDRTJEMjY5REU2RUEwMEJEMjE2QSAvKiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0Nzkw
MTg3QjNCM0EwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzNTc5YWY0OWUzZTllZGZmMWNj
OTFlMDVkMjNiYzI4MmZkZGY4ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAK
QEAgLTAsMCArMSw0NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rp
c3BsYXlMaXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHkoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkmIHJlbmRlcmluZ0JhY2tlbmQsIGNvbnN0IEZsb2F0UmVjdCYgaW5p
dGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgRHJhd0dseXBoc1Jl
Y29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQorICAg
IDogRGlzcGxheUxpc3Q6OlJlY29yZGVyKHsgfSwgaW5pdGlhbENsaXAsIGluaXRpYWxDVE0sIGRl
Y29uc3RydWN0RHJhd0dseXBocykKKyAgICAsIG1fZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVy
KGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKQorICAgICwgbV9pbWFn
ZUJ1ZmZlcihtYWtlV2Vha1B0cihpbWFnZUJ1ZmZlcikpCisgICAgLCBtX3JlbmRlcmluZ0JhY2tl
bmQobWFrZVdlYWtQdHIocmVuZGVyaW5nQmFja2VuZCkpCit7Cit9CisKK1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eSYgcGFyZW50LCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxD
bGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pCisgICAgOiBEaXNwbGF5TGlz
dDo6UmVjb3JkZXIocGFyZW50LCB7IH0sIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNKQorICAgICwg
bV9kZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIocGFyZW50Lm1fZGVzdGluYXRpb25CdWZmZXJJ
ZGVudGlmaWVyKQorICAgICwgbV9pbWFnZUJ1ZmZlcihwYXJlbnQubV9pbWFnZUJ1ZmZlcikKKyAg
ICAsIG1fcmVuZGVyaW5nQmFja2VuZChwYXJlbnQubV9yZW5kZXJpbmdCYWNrZW5kKQoreworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Z2V0UGl4ZWxCdWZmZXIoY29u
c3QgUGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpH
ZXRQaXhlbEJ1ZmZlcihzb3VyY2VSZWN0LCBvdXRwdXRGb3JtYXQpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVsQnVm
ZmVyJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RQb2ludCwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KQoreworICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlB1dFBpeGVsQnVmZmVyKHNy
Y1JlY3QsIGRlc3RQb2ludCwgcGl4ZWxCdWZmZXIsIGRlc3RGb3JtYXQpKTsKK30KKworYm9vbCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJ
bWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVuZGVyaW5n
QmFja2VuZCAmJiBtX3JlbmRlcmluZ0JhY2tlbmQtPmlzQ2FjaGVkKGltYWdlQnVmZmVyKTsKK30K
KworUmVuZGVyaW5nTW9kZSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlbmRlcmlu
Z01vZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2ltYWdlQnVmZmVyID8gbV9pbWFnZUJ1ZmZl
ci0+cmVuZGVyaW5nTW9kZSgpIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNhdmUoKQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNhdmUoKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSZXN0b3JlKCkKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSZXN0b3JlKCkp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkVHJhbnNs
YXRlKGZsb2F0IHgsIGZsb2F0IHkpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6VHJhbnNsYXRlKHgsIHkpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJvdGF0ZShmbG9hdCBhbmdsZSkKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpSb3RhdGUoYW5nbGUpKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNjYWxlKGNvbnN0
IEZsb2F0U2l6ZSYgc2NhbGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6U2NhbGUoc2NhbGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZFNldENUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9y
bSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTZXRD
VE0odHJhbnNmb3JtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmRDb25jYXRlbmF0ZUNUTShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDb25jYXRl
bmF0ZUNUTSh0cmFuc2Zvcm0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZFNldElubGluZUZpbGxDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvcikKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTZXRJbmxpbmVG
aWxsQ29sb3IoRGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvciB7IGNvbG9yIH0pKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldElubGluZVN0
cm9rZUNvbG9yKFNSR0JBPHVpbnQ4X3Q+IGNvbG9yKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldElubGluZVN0cm9rZUNvbG9yKERpc3BsYXlMaXN0
OjpTZXRJbmxpbmVTdHJva2VDb2xvciB7IGNvbG9yIH0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0aGlj
a25lc3MpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
U2V0U3Ryb2tlVGhpY2tuZXNzKHRoaWNrbmVzcykpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0U3RhdGUoY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlLCBHcmFwaGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncyBmbGFncykK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTZXRTdGF0
ZShEaXNwbGF5TGlzdDo6U2V0U3RhdGUgeyBzdGF0ZSwgZmxhZ3MgfSkpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0TGluZUNhcChMaW5lQ2FwIGxp
bmVDYXApCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
U2V0TGluZUNhcChsaW5lQ2FwKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRTZXRMaW5lRGFzaChjb25zdCBEYXNoQXJyYXkmIGFycmF5LCBmbG9hdCBk
YXNoT2Zmc2V0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OlNldExpbmVEYXNoKERpc3BsYXlMaXN0OjpTZXRMaW5lRGFzaCB7IGFycmF5LCBkYXNoT2Zm
c2V0IH0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29y
ZFNldExpbmVKb2luKExpbmVKb2luIGxpbmVKb2luKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNldExpbmVKb2luKGxpbmVKb2luKSk7Cit9CisKK3Zv
aWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRNaXRlckxpbWl0KGZs
b2F0IGxpbWl0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OlNldE1pdGVyTGltaXQobGltaXQpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZENsZWFyU2hhZG93KCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDbGVhclNoYWRvdygpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENsaXAoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNs
aXAocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkQ2xpcE91dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Q2xpcE91dChyZWN0KSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwVG9JbWFnZUJ1ZmZlcihSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uUmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpDbGlwVG9JbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIs
IGRlc3RpbmF0aW9uUmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkQ2xpcE91dFRvUGF0aChjb25zdCBQYXRoJiBwYXRoKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNsaXBPdXRUb1BhdGgocGF0aCkp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xpcFBh
dGgoY29uc3QgUGF0aCYgcGF0aCwgV2luZFJ1bGUgcnVsZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDbGlwUGF0aChwYXRoLCBydWxlKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRCZWdpbkNsaXBUb0Ry
YXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2UgY29sb3JTcGFjZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhkZXN0aW5hdGlvbiwgY29s
b3JTcGFjZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24p
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RW5kQ2xp
cFRvRHJhd2luZ0NvbW1hbmRzKGRlc3RpbmF0aW9uKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNv
bnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBh
ZHZhbmNlcywgdW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBG
b250U21vb3RoaW5nTW9kZSBtb2RlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OkRyYXdHbHlwaHMoRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMgeyBmb250
LCBnbHlwaHMsIGFkdmFuY2VzLCBjb3VudCwgbG9jYWxBbmNob3IsIG1vZGUgfSkpOworfQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0ltYWdlQnVmZmVy
KFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVySWRlbnRpZmll
ciwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3TmF0aXZlSW1hZ2UoaW1hZ2VJZGVudGlmaWVy
LCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3UGF0dGVybihSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VJZGVudGlmaWVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdl
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkRyYXdQYXR0ZXJuKGltYWdlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgdGls
ZVJlY3QsIHRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpKTsKK30KKwordm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEJlZ2luVHJhbnNwYXJlbmN5TGF5
ZXIoZmxvYXQgb3BhY2l0eSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpCZWdpblRyYW5zcGFyZW5jeUxheWVyKG9wYWNpdHkpKTsKK30KKwordm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEVuZFRyYW5zcGFyZW5jeUxheWVy
KCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpFbmRU
cmFuc3BhcmVuY3lMYXllcigpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZERyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgd2lkdGgp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd1Jl
Y3QocmVjdCwgd2lkdGgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZERyYXdMaW5lKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnQyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OkRyYXdMaW5lKHBvaW50MSwgcG9pbnQyKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3TGluZXNGb3JUZXh0KGNvbnN0IEZsb2F0UG9p
bnQmIGJsb2NrTG9jYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgbG9jYWxBbmNob3IsIGZsb2F0IHRo
aWNrbmVzcywgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMsIGJvb2wgcHJpbnRpbmcsIGJvb2wgZG91
YmxlTGluZXMpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6RHJhd0xpbmVzRm9yVGV4dChEaXNwbGF5TGlzdDo6RHJhd0xpbmVzRm9yVGV4dCB7IGJsb2Nr
TG9jYXRpb24sIGxvY2FsQW5jaG9yLCB0aGlja25lc3MsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJs
ZUxpbmVzIH0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25z
dCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSYgc3R5bGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihyZWN0
LCBzdHlsZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkRHJhd0VsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdFbGxpcHNlKHJlY3QpKTsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdQYXRoKGNvbnN0
IFBhdGgmIHBhdGgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6RHJhd1BhdGgocGF0aCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkRHJhd0ZvY3VzUmluZ1BhdGgoY29uc3QgUGF0aCYgcGF0aCwgZmxvYXQg
d2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdGb2N1c1JpbmdQYXRoKHBhdGgs
IHdpZHRoLCBvZmZzZXQsIGNvbG9yKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmREcmF3Rm9jdXNSaW5nUmVjdHMoY29uc3QgVmVjdG9yPEZsb2F0UmVj
dD4mIHJlY3RzLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3Ip
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd0Zv
Y3VzUmluZ1JlY3RzKHJlY3RzLCB3aWR0aCwgb2Zmc2V0LCBjb2xvcikpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkZpbGxSZWN0KHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZEZpbGxSZWN0V2l0aENvbG9yKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29u
c3QgQ29sb3ImIGNvbG9yKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OkZpbGxSZWN0V2l0aENvbG9yKHJlY3QsIGNvbG9yKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhHcmFkaWVudChj
b25zdCBGbG9hdFJlY3QmIHJlY3QsIEdyYWRpZW50JiBncmFkaWVudCkKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsUmVjdFdpdGhHcmFkaWVudChE
aXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQgeyByZWN0LCBncmFkaWVudCB9KSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsQ29tcG9z
aXRlZFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgbW9kZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsQ29tcG9zaXRlZFJlY3QocmVjdCwgY29sb3Is
IG9wLCBtb2RlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5Ojpy
ZWNvcmRGaWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3Qs
IGNvbnN0IENvbG9yJiBjb2xvciwgQmxlbmRNb2RlIG1vZGUpCit7CisgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RmlsbFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0
LCBjb2xvciwgbW9kZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6cmVjb3JkRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBj
b25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQor
eworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxSZWN0
V2l0aFJvdW5kZWRIb2xlKHJlY3QsIHJvdW5kZWRSZWN0LCBjb2xvcikpOworfQorCisjaWYgRU5B
QkxFKElOTElORV9QQVRIX0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmRGaWxsTGluZShjb25zdCBMaW5lRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsTGluZShkYXRhKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsQXJjKGNvbnN0
IEFyY0RhdGEmIGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6RmlsbEFyYyhkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmRGaWxsUXVhZEN1cnZlKGNvbnN0IFF1YWRDdXJ2ZURhdGEmIGRhdGEp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RmlsbFF1
YWRDdXJ2ZShkYXRhKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmRGaWxsQmV6aWVyQ3VydmUoY29uc3QgQmV6aWVyQ3VydmVEYXRhJiBkYXRhKQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxCZXppZXJD
dXJ2ZShkYXRhKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxQYXRoKGNvbnN0
IFBhdGgmIHBhdGgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6RmlsbFBhdGgocGF0aCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkRmlsbEVsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxFbGxpcHNlKHJl
Y3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEdl
dFBpeGVsQnVmZmVyKFBpeGVsQnVmZmVyRm9ybWF0IG91dHB1dEZvcm1hdCwgY29uc3QgSW50UmVj
dCYgcmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpHZXRQaXhlbEJ1ZmZlcihyZWN0LCBvdXRwdXRGb3JtYXQpKTsKK30KKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFB1dFBpeGVsQnVmZmVyKGNvbnN0IFBpeGVs
QnVmZmVyJiBidWZmZXIsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBk
ZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gcHJlbXVsdGlwbGljYXRpb24pCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6UHV0UGl4ZWxCdWZm
ZXIoc3JjUmVjdCwgZGVzdFBvaW50LCBidWZmZXIsIHByZW11bHRpcGxpY2F0aW9uKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRQYWludEZyYW1lRm9y
TWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbikK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpQYWludEZy
YW1lRm9yTWVkaWEocGxheWVyLmlkZW50aWZpZXIoKSwgZGVzdGluYXRpb24pKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZVJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LCBmbG9hdCB3aWR0aCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTdHJva2VSZWN0KHJlY3QsIHdpZHRoKSk7Cit9CisKKyNp
ZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OnJlY29yZFN0cm9rZUxpbmUoY29uc3QgTGluZURhdGEmIGRhdGEpCit7CisgICAg
c2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U3Ryb2tlTGluZShkYXRh
KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJv
a2VBcmMoY29uc3QgQXJjRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpTdHJva2VBcmMoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU3Ryb2tlUXVhZEN1cnZlKGNvbnN0IFF1YWRD
dXJ2ZURhdGEmIGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6U3Ryb2tlUXVhZEN1cnZlKGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZUJlemllckN1cnZlKGNvbnN0IEJlemllckN1
cnZlRGF0YSYgZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpTdHJva2VCZXppZXJDdXJ2ZShkYXRhKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
SU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZFN0cm9rZVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTdHJva2VQYXRoKHBhdGgpKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZUVsbGlwc2UoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OlN0cm9rZUVsbGlwc2UocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xlYXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDbGVh
clJlY3QocmVjdCkpOworfQorCisjaWYgVVNFKENHKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eTo6cmVjb3JkQXBwbHlTdHJva2VQYXR0ZXJuKCkKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpBcHBseVN0cm9rZVBhdHRlcm4oKSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRBcHBseUZp
bGxQYXR0ZXJuKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpBcHBseUZpbGxQYXR0ZXJuKCkpOworfQorCisjZW5kaWYgLy8gVVNFKENHKQorCit2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQXBwbHlEZXZpY2VTY2FsZUZh
Y3RvcihmbG9hdCBzY2FsZUZhY3RvcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpBcHBseURldmljZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSZXNvdXJjZVVz
ZShOYXRpdmVJbWFnZSYgaW1hZ2UpCit7CisgICAgaWYgKFVOTElLRUxZKCFtX3JlbmRlcmluZ0Jh
Y2tlbmQpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5yZWNvcmROYXRpdmVJbWFnZVVzZShp
bWFnZSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRS
ZXNvdXJjZVVzZShGb250JiBmb250KQoreworICAgIGlmIChVTkxJS0VMWSghbV9yZW5kZXJpbmdC
YWNrZW5kKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cmVjb3JkRm9udFVzZShmb250KTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJlc291cmNl
VXNlKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikKK3sKKyAgICBpZiAoVU5MSUtFTFkoIW1fcmVu
ZGVyaW5nQmFja2VuZCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnJlY29yZEltYWdlQnVm
ZmVyVXNlKGltYWdlQnVmZmVyKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OmZsdXNoQ29udGV4dChHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpG
bHVzaENvbnRleHQoaWRlbnRpZmllcikpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3ND
b250ZXh0PiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNyZWF0ZU5lc3RlZENvbnRl
eHQoY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBp
bml0aWFsQ1RNKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlPFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eT4oKnRoaXMsIGluaXRpYWxDbGlwLCBpbml0aWFsQ1RNKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA5OThkYzVh
MmYzMWVlZDYxZDFiNWE4ZDFmNjM4YmRmOTNiZTU2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5LmgKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZWNvcmRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRHJhd0dseXBoc1JlY29yZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9H
cmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OworCitjbGFzcyBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyIHsKK3B1YmxpYzoKKyAgICBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBXZWJDb3JlOjpBZmZp
bmVUcmFuc2Zvcm0mLCBXZWJDb3JlOjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJh
d0dseXBocyA9IFdlYkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5
cGhzOjpZZXMpOworICAgIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eShSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHkmIHBhcmVudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBp
bml0aWFsQ2xpcCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKTsK
KworICAgIH5SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkoKSB7IH0KKworICAgIHZvaWQg
cmVzZXROZWVkc0ZsdXNoKCkgeyBtX25lZWRzRmx1c2ggPSBmYWxzZTsgfQorICAgIGJvb2wgbmVl
ZHNGbHVzaCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNGbHVzaDsgfQorCisgICAgdm9pZCBnZXRQ
aXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzb3VyY2VSZWN0KSBmaW5hbDsKKyAgICB2b2lkIHB1
dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2Vi
Q29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBmaW5hbDsKKyAgICB2b2lk
IGZsdXNoQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIpIGZp
bmFsOworCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBzZW5k
KFQmJiBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgbV9uZWVkc0ZsdXNoID0gdHJ1ZTsKKyAgICAg
ICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5zZW5kVG9TdHJlYW0oV1RGTW92ZShtZXNzYWdlKSwgbV9k
ZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpOworICAgIH0KKworICAgIGZyaWVuZCBjbGFzcyBE
cmF3R2x5cGhzUmVjb3JkZXI7CisKKyAgICBib29sIGNhbkRyYXdJbWFnZUJ1ZmZlcihjb25zdCBJ
bWFnZUJ1ZmZlciYpIGNvbnN0IGZpbmFsOworICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9k
ZSgpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCByZWNvcmRTYXZlKCkgZmluYWw7CisgICAgdm9p
ZCByZWNvcmRSZXN0b3JlKCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRUcmFuc2xhdGUoZmxvYXQg
eCwgZmxvYXQgeSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRSb3RhdGUoZmxvYXQgYW5nbGUpIGZp
bmFsOworICAgIHZvaWQgcmVjb3JkU2NhbGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJikgZmlu
YWw7CisgICAgdm9pZCByZWNvcmRTZXRDVE0oY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3Jt
JikgZmluYWw7CisgICAgdm9pZCByZWNvcmRDb25jYXRlbmF0ZUNUTShjb25zdCBXZWJDb3JlOjpB
ZmZpbmVUcmFuc2Zvcm0mKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFNldElubGluZUZpbGxDb2xv
cihXZWJDb3JlOjpTUkdCQTx1aW50OF90PikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTZXRJbmxp
bmVTdHJva2VDb2xvcihXZWJDb3JlOjpTUkdCQTx1aW50OF90PikgZmluYWw7CisgICAgdm9pZCBy
ZWNvcmRTZXRTdHJva2VUaGlja25lc3MoZmxvYXQpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU2V0
U3RhdGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUmLCBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRTdGF0ZTo6U3RhdGVDaGFuZ2VGbGFncykgZmluYWw7CisgICAgdm9pZCByZWNv
cmRTZXRMaW5lQ2FwKFdlYkNvcmU6OkxpbmVDYXApIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU2V0
TGluZURhc2goY29uc3QgV2ViQ29yZTo6RGFzaEFycmF5JiwgZmxvYXQgZGFzaE9mZnNldCkgZmlu
YWw7CisgICAgdm9pZCByZWNvcmRTZXRMaW5lSm9pbihXZWJDb3JlOjpMaW5lSm9pbikgZmluYWw7
CisgICAgdm9pZCByZWNvcmRTZXRNaXRlckxpbWl0KGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHJl
Y29yZENsZWFyU2hhZG93KCkgZmluYWw7CisgICAgdm9pZCByZWNvcmRDbGlwKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQ2xpcE91dChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZENsaXBUb0ltYWdlQnVmZmVy
KFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0KSBmaW5hbDsKKyAg
ICB2b2lkIHJlY29yZENsaXBPdXRUb1BhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYpIGZpbmFsOwor
ICAgIHZvaWQgcmVjb3JkQ2xpcFBhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYsIFdlYkNvcmU6Oldp
bmRSdWxlKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRz
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24sIERlc3RpbmF0aW9uQ29sb3JT
cGFjZSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbikgZmluYWw7CisgICAgdm9pZCByZWNv
cmREcmF3R2x5cGhzKGNvbnN0IFdlYkNvcmU6OkZvbnQmLCBjb25zdCBXZWJDb3JlOjpHbHlwaEJ1
ZmZlckdseXBoKiwgY29uc3QgV2ViQ29yZTo6R2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQg
Y291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBXZWJDb3JlOjpG
b250U21vb3RoaW5nTW9kZSkgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3SW1hZ2VCdWZmZXIo
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIGZp
bmFsOworICAgIHZvaWQgcmVjb3JkRHJhd05hdGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdP
cHRpb25zJikgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3UGF0dGVybihXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFs
OworICAgIHZvaWQgcmVjb3JkQmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCkgZmluYWw7Cisg
ICAgdm9pZCByZWNvcmRFbmRUcmFuc3BhcmVuY3lMYXllcigpIGZpbmFsOworICAgIHZvaWQgcmVj
b3JkRHJhd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgZmxvYXQpIGZpbmFsOworICAg
IHZvaWQgcmVjb3JkRHJhd0xpbmUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9pbnQxLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludDIpIGZpbmFsOworICAgIHZvaWQgcmVjb3Jk
RHJhd0xpbmVzRm9yVGV4dChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBibG9ja0xvY2F0aW9u
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvY2FsQW5jaG9yLCBmbG9hdCB0aGlja25lc3Ms
IGNvbnN0IFdlYkNvcmU6OkRhc2hBcnJheSYgd2lkdGhzLCBib29sIHByaW50aW5nLCBib29sIGRv
dWJsZUxpbmVzKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdEb3RzRm9yRG9jdW1lbnRNYXJr
ZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RG9jdW1lbnRNYXJr
ZXJMaW5lU3R5bGUmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdFbGxpcHNlKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd1BhdGgoY29uc3Qg
V2ViQ29yZTo6UGF0aCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd0ZvY3VzUmluZ1BhdGgo
Y29uc3QgV2ViQ29yZTo6UGF0aCYsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IFdl
YkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3Rm9jdXNSaW5nUmVjdHMo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4mLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zm
c2V0LCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbFJl
Y3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxs
UmVjdFdpdGhDb2xvcihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpD
b2xvciYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbFJlY3RXaXRoR3JhZGllbnQoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiwgV2ViQ29yZTo6R3JhZGllbnQmKSBmaW5hbDsKKyAgICB2b2lk
IHJlY29yZEZpbGxDb21wb3NpdGVkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25z
dCBXZWJDb3JlOjpDb2xvciYsIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yLCBXZWJDb3JlOjpC
bGVuZE1vZGUpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbFJvdW5kZWRSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIFdlYkNvcmU6
OkJsZW5kTW9kZSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxsUmVjdFdpdGhSb3VuZGVkSG9s
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRS
ZWN0JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKKyNpZiBFTkFCTEUoSU5MSU5FX1BB
VEhfREFUQSkKKyAgICB2b2lkIHJlY29yZEZpbGxMaW5lKGNvbnN0IFdlYkNvcmU6OkxpbmVEYXRh
JikgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxsQXJjKGNvbnN0IFdlYkNvcmU6OkFyY0RhdGEm
KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEZpbGxRdWFkQ3VydmUoY29uc3QgV2ViQ29yZTo6UXVh
ZEN1cnZlRGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbEJlemllckN1cnZlKGNvbnN0
IFdlYkNvcmU6OkJlemllckN1cnZlRGF0YSYpIGZpbmFsOworI2VuZGlmCisgICAgdm9pZCByZWNv
cmRGaWxsUGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRG
aWxsRWxsaXBzZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHJl
Y29yZEdldFBpeGVsQnVmZmVyKFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0IG91dHB1dEZvcm1h
dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkUHV0UGl4
ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFBhaW50RnJh
bWVGb3JNZWRpYShNZWRpYVBsYXllciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdGlu
YXRpb24pIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU3Ryb2tlUmVjdChjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmLCBmbG9hdCkgZmluYWw7CisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisg
ICAgdm9pZCByZWNvcmRTdHJva2VMaW5lKGNvbnN0IFdlYkNvcmU6OkxpbmVEYXRhJikgZmluYWw7
CisgICAgdm9pZCByZWNvcmRTdHJva2VBcmMoY29uc3QgV2ViQ29yZTo6QXJjRGF0YSYpIGZpbmFs
OworICAgIHZvaWQgcmVjb3JkU3Ryb2tlUXVhZEN1cnZlKGNvbnN0IFdlYkNvcmU6OlF1YWRDdXJ2
ZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFN0cm9rZUJlemllckN1cnZlKGNvbnN0IFdl
YkNvcmU6OkJlemllckN1cnZlRGF0YSYpIGZpbmFsOworI2VuZGlmCisgICAgdm9pZCByZWNvcmRT
dHJva2VQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFN0
cm9rZUVsbGlwc2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBy
ZWNvcmRDbGVhclJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisjaWYgVVNF
KENHKQorICAgIHZvaWQgcmVjb3JkQXBwbHlTdHJva2VQYXR0ZXJuKCkgZmluYWw7CisgICAgdm9p
ZCByZWNvcmRBcHBseUZpbGxQYXR0ZXJuKCkgZmluYWw7CisjZW5kaWYKKyAgICB2b2lkIHJlY29y
ZEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpIGZpbmFsOworCisgICAgdm9pZCByZWNvcmRS
ZXNvdXJjZVVzZShXZWJDb3JlOjpOYXRpdmVJbWFnZSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3Jk
UmVzb3VyY2VVc2UoV2ViQ29yZTo6Rm9udCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkUmVzb3Vy
Y2VVc2UoV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBmaW5hbDsKKworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IGNyZWF0ZU5lc3RlZENvbnRleHQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNm
b3JtJiBpbml0aWFsQ1RNKSBmaW5hbDsKKworICAgIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcjsKKyAgICBXZWFrUHRyPFdl
YkNvcmU6OkltYWdlQnVmZmVyPiBtX2ltYWdlQnVmZmVyOworICAgIFdlYWtQdHI8UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5PiBtX3JlbmRlcmluZ0JhY2tlbmQ7CisgICAgYm9vbCBtX25lZWRz
Rmx1c2ggeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHAKaW5kZXggNzcyZmJjYTY4ZmE3ZjAzMWFkMDQyMDFlOWZlMDE2ZGVkN2I1NzE5Yi4uYmY0
OWE4MjdkMjAyODI0YTQ3YjBkNjU2OTZjNmNhMmM3ZDhmYjkxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtNDQ3LDYgKzQ0NywzMCBAQCBSZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllciBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmVuc3VyZUJhY2tl
bmRDcmVhdGVkKCkKICAgICByZXR1cm4gcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKTsKIH0K
IAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZE5hdGl2ZUltYWdlVXNl
KE5hdGl2ZUltYWdlJiBpbWFnZSkKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5y
ZWNvcmROYXRpdmVJbWFnZVVzZShpbWFnZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpyZWNvcmRGb250VXNlKEZvbnQmIGZvbnQpCit7CisgICAgbV9yZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkucmVjb3JkRm9udFVzZShmb250KTsKK30KKwordm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZEltYWdlQnVmZmVyVXNlKEltYWdlQnVmZmVyJiBpbWFn
ZUJ1ZmZlcikKK3sKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5yZWNvcmRJbWFnZUJ1
ZmZlclVzZShpbWFnZUJ1ZmZlcik7Cit9CisKK2Jvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Ojppc0NhY2hlZChjb25zdCBJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpIGNvbnN0Cit7Cisg
ICAgaWYgKGF1dG8gY2FjaGVkSW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5jYWNoZWRJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIoKSkpIHsKKyAgICAgICAgQVNTRVJUKGNhY2hlZEltYWdlQnVmZmVyID09ICZpbWFnZUJ1ZmZl
cik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggMjM5NGZmNWFkYzRkNzgz
YjhhZmQyZGMxMzIxZjJmNTQ3NWEyMTI4NS4uYWEwMjNkY2YyZGI1YTMzYWFiMTNmNjliYTAxNjI5
MmQzMDVhZjc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC04
OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlc3Ryb3lHZXRQaXhlbEJ1ZmZlclNoYXJl
ZE1lbW9yeSgpOwogCiAgICAgdm9pZCBjcmVhdGVSZW1vdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJ
bWFnZUJ1ZmZlciYpOworICAgIGJvb2wgaXNDYWNoZWQoY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZm
ZXImKSBjb25zdDsKICAgICAgICAgCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgogICAgIElQ
Qzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBvdmVycmlkZTsK
QEAgLTEyNCw2ICsxMjUsMjIgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0dQVVByb2Nlc3NDb25u
ZWN0aW9uQ2xvc2VkKCkgY29uc3QgeyByZXR1cm4gIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247IH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CisgICAgdm9pZCBzZW5kVG9T
dHJlYW0oVCYmIG1lc3NhZ2UsIE9iamVjdElkZW50aWZpZXI8VT4gaWRlbnRpZmllcikKKyAgICB7
CisgICAgICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkLgorICAgIH0KKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBzZW5kVG9TdHJlYW0oVCYmIG1lc3NhZ2UpCisg
ICAgeworICAgICAgICBzZW5kVG9TdHJlYW0oV1RGTW92ZShtZXNzYWdlKSwgcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIoKSk7CisgICAgfQorCisgICAgdm9pZCByZWNvcmROYXRpdmVJbWFnZVVz
ZShXZWJDb3JlOjpOYXRpdmVJbWFnZSYpOworICAgIHZvaWQgcmVjb3JkRm9udFVzZShXZWJDb3Jl
OjpGb250Jik7CisgICAgdm9pZCByZWNvcmRJbWFnZUJ1ZmZlclVzZShXZWJDb3JlOjpJbWFnZUJ1
ZmZlciYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eShXZWJQYWdlJik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440824</attachid>
            <date>2021-10-11 12:45:07 -0700</date>
            <delta_ts>2021-10-11 15:37:14 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231484-20211011124506.patch</filename>
            <type>text/plain</type>
            <size>99557</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUzNjM0YjcwYTQyNjdj
YzUwMmZiZWYzZTI3Y2EwZGU3ZmM1ODIzMy4uNmRkMDdmZDllYTJhOWFjY2EwY2EyMTNjZDM5NDhj
NDk0ODdlMDkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEwLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkgYW5kIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ4
NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBTZWUgV2Vi
S2l0IENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtcy5oOgorCisgICAgICAgIEFkZCBkZWZhdWx0IGNvbnN0cnVjdG9ycyBmb3Ig
YSBjb3VwbGUgb2YgZGlzcGxheSBsaXN0IGl0ZW1zIHNvIHRoYXQgdGhleSBjYW4gYmUgZW5jb2Rl
ZCBhcyBJUEMgYXJndW1lbnRzIHVzaW5nCisgICAgICAgIFNpbXBsZUFyZ3VtZW50Q29kZXIuCisK
IDIwMjEtMTAtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgRXhwb3J0IHNvbWUgZGlzcGxheSBsaXN0IGl0ZW0gbWV0aG9kcyBmb3IgdXNlIGluIFdl
YktpdDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNDIzOTQ3YjliNmE3MmEyMjY4NDI3ZmJjZGE0OGMzNzE5YWUwNTdj
MS4uY2NmZWNlOWI2MTgwN2YxYjQ4ZmVlMDAyNDRlODBiYWU1YWRjZmU4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMTUgQEAKKzIwMjEtMTAtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eSBhbmQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgorCisgICAgICAgIEludHJvZHVjZSB0d28gbmV3IGNsYXNzZXMgdGhhdCBo
b3VzZSBtb3N0IG9mIHRoZSBsb2dpYyBmb3IgcHJvcGFnYXRpbmcgZGlzcGxheSBsaXN0IGl0ZW1z
IGZyb20gdGhlIHdlYiBjb250ZW50CisgICAgICAgIHByb2Nlc3MgdG8gdGhlIEdQVSBwcm9jZXNz
LiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkgaXMgYSBzdWJjbGFzcyBvZiBEaXNwbGF5
TGlzdDo6UmVjb3JkZXIgdGhhdCByZWNvcmRzCisgICAgICAgIGVhY2ggaXRlbSBieSBzZW5kaW5n
IGl0IHRvIHRoZSBHUFUgcHJvY2VzcyB0aHJvdWdoIGEgc3RyZWFtIGNvbm5lY3Rpb24sIHdoaWNo
IHdpbGwgYmUgYWRkZWQgdG8KKyAgICAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IGlu
IGEgc3Vic2VxdWVudCBwYXRjaC4gVGhlIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eSB3
aWxsIGJlIG1hbmFnZWQgYnkKKyAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSBpbiB0aGUg
d2ViIHByb2Nlc3MuIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgYWN0cyBhcyB0aGUgc3RyZWFt
aW5nIElQQyBkZXN0aW5hdGlvbiBpbgorICAgICAgICB0aGUgR1BVIHByb2Nlc3MsIGFuZCBoYW5k
bGVzIHRoZSBpbmNvbWluZyBkaXNwbGF5IGxpc3QgaXRlbXMgYnkgYXBwbHlpbmcgdGhlbSB0byB0
aGUgcGxhdGZvcm0gZ3JhcGhpY3MgY29udGV4dC4KKworICAgICAgICBGb3IgbW9zdCBvZiB0aGVz
ZSBkaXNwbGF5IGxpc3QgaXRlbXMsIHdlIGNhbiBwcm9wYWdhdGUgdGhlbSB0byB0aGUgR1BVIHBy
b2Nlc3MgYnkgc2VuZGluZyBlYWNoIGRpc3BsYXkgbGlzdAorICAgICAgICBpdGVtJ3MgY29uc3Ry
dWN0b3IgYXJndW1lbnRzIGFzIHNlcGFyYXRlIElQQyBhcmd1bWVudHMuIEluIGEgZnV0dXJlIHBh
dGNoLCB3ZSBzaG91bGQgYWRkIHN1cHBvcnQgZm9yIGVuY29kaW5nCisgICAgICAgIHRoZSBmb2xs
b3dpbmcgZGlzcGxheSBsaXN0IGl0ZW1zIGluIHRoZSBzYW1lIHdheToKKworICAgICAgICAtIFNl
dElubGluZUZpbGxDb2xvcgorICAgICAgICAtIFNldElubGluZVN0cm9rZUNvbG9yCisgICAgICAg
IC0gU2V0U3RhdGUKKyAgICAgICAgLSBTZXRMaW5lRGFzaAorICAgICAgICAtIERyYXdHbHlwaHMK
KyAgICAgICAgLSBEcmF3TGluZXNGb3JUZXh0CisgICAgICAgIC0gRmlsbFJlY3RXaXRoR3JhZGll
bnQKKworICAgICAgICBGb3Igbm93LCB0aGUgYWJvdmUgZGlzcGxheSBsaXN0IGl0ZW1zIGFyZSBl
bmNvZGVkIGFuZCBkZWNvZGVkIGFzIHdob2xlIGl0ZW1zLiBXaGlsZSB0aGVyZSdzIG5vIHByYWN0
aWNhbAorICAgICAgICBkaXNhZHZhbnRhZ2UgdG8gaW1wbGVtZW50aW5nIGl0IHRoaXMgd2F5LCBp
dCB3b3VsZCBiZSBuaWNlIHRvIG1ha2UgaXQgY29uc2lzdGVudC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnJlc291cmNlQ2FjaGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3aW5nQ29udGV4dCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0YXJ0TGlzdGVuaW5n
Rm9ySVBDKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Rv
cExpc3RlbmluZ0ZvcklQQyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OnNhdmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
cm90YXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2Nh
bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRDVE0p
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjb25jYXRlbmF0
ZUNUTSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldElu
bGluZUZpbGxDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnNldElubGluZVN0cm9rZUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6c2V0U3Ryb2tlVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRMaW5lQ2FwKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TGluZURhc2gpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRMaW5lSm9pbik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldE1pdGVyTGltaXQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGVhclNoYWRvdyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsaXApOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGlwT3V0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpjbGlwT3V0VG9QYXRoKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcFBhdGgpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpiZWdpbkNsaXBUb0RyYXdpbmdD
b21tYW5kcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmVu
ZENsaXBUb0RyYXdpbmdDb21tYW5kcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjplbmRUcmFuc3BhcmVuY3lM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0xp
bmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3TGlu
ZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OmRyYXdFbGxpcHNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpkcmF3Rm9jdXNSaW5nUGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdGb2N1c1JpbmdSZWN0cyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxSZWN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJlY3RXaXRoQ29sb3IpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUmVjdFdpdGhHcmFk
aWVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxD
b21wb3NpdGVkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmZpbGxSb3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbExpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsQXJjKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFF1YWRDdXJ2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxCZXppZXJDdXJ2ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbEVsbGlwc2UpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpnZXRQaXhlbEJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnB1dFBpeGVsQnVmZmVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6cGFpbnRGcmFtZUZvck1l
ZGlhKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tl
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9r
ZUxpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdHJv
a2VBcmMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzdHJv
a2VRdWFkQ3VydmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpzdHJva2VCZXppZXJDdXJ2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OnN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpzdHJva2VFbGxpcHNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6Y2xlYXJSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6YXBwbHlTdHJva2VQYXR0ZXJuKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6YXBwbHlGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmbHVzaENvbnRleHQp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6aGFu
ZGxlSXRlbSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpwZXJmb3JtV2l0aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKwor
ICAgICAgICBBZGQgaGVscGVyIG1ldGhvZHMgdG8gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCB0aGF0
IGFyZSBjYWxsZWQgZnJvbSBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJs
ZSB0byBlbmNvZGUgYW5kIGRlY29kZSBTZXRJbmxpbmVGaWxsQ29sb3IgYW5kIFNldElubGluZVN0
cm9rZUNvbG9yIHVzaW5nIHNpbXBsZSBhcmd1bWVudCBjb2Rlci4KKworICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6Om1fcmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6Z2V0UGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnB1dFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpjYW5EcmF3SW1hZ2VCdWZmZXIg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlbmRlcmluZ01vZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZFNhdmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFJlc3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFRyYW5zbGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUm90YXRlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRT
Y2FsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkU2V0Q1RNKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRDb25jYXRlbmF0ZUNUTSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0SW5saW5lRmlsbENvbG9yKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRJbmxp
bmVTdHJva2VDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkU2V0U3Ryb2tlVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRTdGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0TGluZUNhcCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
U2V0TGluZURhc2gpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZFNldExpbmVKb2luKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRNaXRlckxpbWl0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGVhclNoYWRvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xp
cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkQ2xpcE91dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eTo6cmVjb3JkQ2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENsaXBPdXRUb1BhdGgpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENsaXBQYXRoKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRC
ZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3
R2x5cGhzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmREcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd1BhdHRlcm4pOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEJl
Z2luVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZEVuZFRyYW5zcGFyZW5jeUxheWVyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3UmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJh
d0xpbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6
OnJlY29yZERyYXdMaW5lc0ZvclRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdF
bGxpcHNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmREcmF3UGF0aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkRHJhd0ZvY3VzUmluZ1BhdGgpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdGb2N1c1JpbmdSZWN0cyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
RmlsbFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OnJlY29yZEZpbGxSZWN0V2l0aENvbG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhHcmFkaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbENv
bXBvc2l0ZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRGaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRG
aWxsTGluZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6cmVjb3JkRmlsbEFyYyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkRmlsbFF1YWRDdXJ2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbEJlemllckN1cnZlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUGF0
aCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkRmlsbEVsbGlwc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHk6OnJlY29yZEdldFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRQdXRQaXhlbEJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUGFpbnRGcmFt
ZUZvck1lZGlhKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmRTdHJva2VSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VMaW5lKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VBcmMpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZVF1YWRD
dXJ2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkU3Ryb2tlQmV6aWVyQ3VydmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZUVsbGlwc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENsZWFy
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkQXBwbHlTdHJva2VQYXR0ZXJuKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRBcHBseUZpbGxQYXR0ZXJuKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRBcHBseURldmljZVNj
YWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmRSZXNvdXJjZVVzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6Zmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpjcmVhdGVOZXN0ZWRDb250ZXh0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHku
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6flJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVzZXROZWVkc0ZsdXNoKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpuZWVkc0ZsdXNoIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpzZW5k
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNv
cmREcmF3UGF0dGVybik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpyZWNvcmROYXRpdmVJbWFnZVVzZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVjb3JkRm9udFVzZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVjb3JkSW1hZ2VCdWZmZXJVc2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmlzQ2FjaGVk
IGNvbnN0KToKKworICAgICAgICBBZGQgaGVscGVyIG1ldGhvZHMgdG8gUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5IHRoYXQgYXJlIGNhbGxlZCBmcm9tIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnNlbmRUb1N0cmVhbSk6CisKIDIwMjEtMTAtMTEgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgQWRBdHRyaWJ1dGlvbkRh
ZW1vbiBzYW5kYm94IG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCBkNmUyNTY3N2JlZjcxNWJhNDljZjA0MWUxNGM5
ZWM4MDFjNWM5N2MzLi44MzA4N2NlNjkwNGM1YmQxMjE5N2E0OWE2OGQxMTVlYThhNWZmY2Q3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaApAQCAtNDMwLDcgKzQzMCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBJbWFn
ZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9t
SW1hZ2UgfSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJh
d0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgSW1hZ2VPcmllbnRh
dGlvbjo6RnJvbUltYWdlIH0pOwogCi0gICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd0lt
YWdlRm9yQ2FudmFzKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgRGVzdGluYXRp
b25Db2xvclNwYWNlIGNhbnZhc0NvbG9yU3BhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZUZvckNhbnZhcyhJbWFnZSYsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjYW52YXNDb2xvclNwYWNlKTsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZElt
YWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2lu
dCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNw
YWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3Qg
RmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVS
dWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggMTM5NzgwMWI0ZDhlMGZm
Y2Q2OTQ2N2NhMTQyMjBkMDA1M2NmMTVlZS4uODE2MGRkZjBhMTljMzMwZGNlNWQzMjE2M2FkYTgy
MzZlNWE0MTQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENyZWF0ZSBhbiBp
bWFnZSBidWZmZXIgY29tcGF0aWJsZSB3aXRoIHRoZSBjb250ZXh0LCB3aXRoIHN1aXRhYmxlIHJl
c29sdXRpb24gZm9yIGRyYXdpbmcgaW50byB0aGUgYnVmZmVyIGFuZCB0aGVuIGludG8gdGhpcyBj
b250ZXh0LgogICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVC
dWZmZXIoY29uc3QgRmxvYXRTaXplJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7Ci0gICAgc3Rh
dGljIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9h
dFNpemUmLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBjb25zdCBHcmFwaGljc0NvbnRl
eHQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVh
dGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IERlc3RpbmF0aW9uQ29s
b3JTcGFjZSYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpOwogICAgIHN0YXRpYyBSZWZQdHI8SW1h
Z2VCdWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBjb25zdCBHcmFw
aGljc0NvbnRleHQmKTsKIAogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZCB3aGVuIGNs
YW1waW5nIHRoZSBJbWFnZUJ1ZmZlciB3aGljaCBpcyBjcmVhdGVkIGZvciBmaWx0ZXIsIG1hc2tl
ciBvciBjbGlwcGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggODRiMGJm
YWZmODA0MDY0MmE1MTY0YTYyYzUwMDUwMWIxZmIzZDZlYS4uMTNhZTg3OThiMjc0ZmM4MDQzMWJi
ZWIzNTE1MWU1NmIzODI4ZmJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBA
IC0xODgsNiArMTg4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lu
bGluZUl0ZW0gPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVt
ID0gZmFsc2U7CiAKKyAgICBTZXRJbmxpbmVGaWxsQ29sb3IoKSA9IGRlZmF1bHQ7CiAgICAgU2V0
SW5saW5lRmlsbENvbG9yKFNSR0JBPHVpbnQ4X3Q+IGNvbG9yRGF0YSkKICAgICAgICAgOiBtX2Nv
bG9yRGF0YShjb2xvckRhdGEpCiAgICAgewpAQCAtMjA2LDYgKzIwNyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOwogCisgICAgU2V0SW5saW5lU3Ry
b2tlQ29sb3IoKSA9IGRlZmF1bHQ7CiAgICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IoU1JHQkE8dWlu
dDhfdD4gY29sb3JEYXRhKQogICAgICAgICA6IG1fY29sb3JEYXRhKGNvbG9yRGF0YSkKICAgICB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAppbmRleCAzMTUyMTgzMGYzYWE3NzI4ODI3MTA4ZGRlZmUxYmRkZTdm
OTFkMzE0Li44MTNjYjk1ZTkyNThlOTU1M2I5YWRmOTAzMjcyMjU1ZDY4YjNlZmNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTEyNyw2ICsxMjcsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzCiAKKyAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIKICAgICBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMCiAgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA3NGZm
YTM1MmU5ZGUwMGNiODY2ZjkwMmM2ZWFiZGVhYWRhNjljZjg2Li5lZGZmYTY2MThjYjQ0ZmQ0MTNk
Nzg2YTYwOTMwMzBkMzgyODU4MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yMCw2ICsyMCw4IEBAICQoSkFWQVNDUklQVENPUkVfUFJJ
VkFURV9IRUFERVJTX0RJUikvbW9kZWxzLnB5CiAkKEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVB
REVSU19ESVIpL3h4ZC5wbAogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHQubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFw
cGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBmNGY4YWMyNTdkMTU1ZTFmZTZmNjE2N2FlNDNj
OWNlNTc1YTFlYmU5Li5hMTY5Yjg4NDUzNjQ5MTJhZjcyN2M1YWFkODAxZmNjNTM0YjllNzFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAg
LTIwMywxMiArMjAzLDE4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUNETVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlc1JlcGxpZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVHcmFwaGljc0NvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVH
cmFwaGljc0NvbnRleHRNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjMzE0NzQ2
YzJjZTgwNWZmZGI5OTAyOTFkYjg2N2IyOWZkMmJlYTEyLi5kOWY0Njc5ODI0YTY3MmJjODNiNDNl
MzYwMGJlYTk0MmYwZTAxNmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNDcs
NiArMjQ3LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
b250cm9sbGVyUHJveHkgXAogCVBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2VzcyBcCiAJR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFwKKwlHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgXAogCUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZCBcCiAJR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTCBcCiAJR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhNTRmN2RiMWM4NTkzYjgzZGFkZGIw
ZGU5NDJjYzU4NmQ1N2ZiMzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTAsMCArMSw0
NjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVy
LCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kKQorICAgIDogbV9p
bWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikKKyAgICAsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKGlt
YWdlQnVmZmVySWRlbnRpZmllcikKKyAgICAsIG1fcmVuZGVyaW5nQmFja2VuZChyZW5kZXJpbmdC
YWNrZW5kKQoreworfQorCitSZW1vdGVSZXNvdXJjZUNhY2hlJiBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpyZXNvdXJjZUNhY2hlKCkKK3sKKyAgICByZXR1cm4gbV9yZW5kZXJpbmdCYWNrZW5k
LT5yZW1vdGVSZXNvdXJjZUNhY2hlKCk7Cit9CisKK0dyYXBoaWNzQ29udGV4dCYgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd2luZ0NvbnRleHQoKQoreworICAgIHJldHVybiBtX21hc2tJ
bWFnZUJ1ZmZlciA/IG1fbWFza0ltYWdlQnVmZmVyLT5jb250ZXh0KCkgOiBtX2ltYWdlQnVmZmVy
LT5jb250ZXh0KCk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3RhcnRM
aXN0ZW5pbmdGb3JJUEMoKQoreworICAgIEFTU0VSVCghbV9pc0xpc3RlbmluZ0ZvcklQQyk7Cisg
ICAgbV9pc0xpc3RlbmluZ0ZvcklQQyA9IHRydWU7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1l
bnRlZCB5ZXQuCit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3RvcExpc3Rl
bmluZ0ZvcklQQygpCit7CisgICAgaWYgKCFtX2lzTGlzdGVuaW5nRm9ySVBDKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIHlldC4KKyAgICBtX2lzTGlz
dGVuaW5nRm9ySVBDID0gZmFsc2U7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6c2F2ZSgpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U2F2ZSgpKTsKK30KKwor
dm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpyZXN0b3JlKCkKK3sKKyAgICBoYW5kbGVJ
dGVtKERpc3BsYXlMaXN0OjpSZXN0b3JlKCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OnRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KQoreworICAgIGhhbmRsZUl0ZW0o
RGlzcGxheUxpc3Q6OlRyYW5zbGF0ZSh4LCB5KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6cm90YXRlKGZsb2F0IGFuZ2xlKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxh
eUxpc3Q6OlJvdGF0ZShhbmdsZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OnNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYgc2NhbGUpCit7CisgICAgaGFuZGxlSXRlbShEaXNw
bGF5TGlzdDo6U2NhbGUoc2NhbGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyOjpzZXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBjdG0pCit7CisgICAgaGFuZGxlSXRl
bShEaXNwbGF5TGlzdDo6U2V0Q1RNKGN0bSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmNvbmNhdGVuYXRlQ1RNKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgY3RtKQorewor
ICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkNvbmNhdGVuYXRlQ1RNKGN0bSkpOworfQorCit2
b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldElubGluZUZpbGxDb2xvcihEaXNwbGF5
TGlzdDo6U2V0SW5saW5lRmlsbENvbG9yJiYgaXRlbSkKK3sKKyAgICBoYW5kbGVJdGVtKFdURk1v
dmUoaXRlbSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnNldElubGlu
ZVN0cm9rZUNvbG9yKERpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvciYmIGl0ZW0pCit7
CisgICAgaGFuZGxlSXRlbShXVEZNb3ZlKGl0ZW0pKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpzZXRTdHJva2VUaGlja25lc3MoZmxvYXQgdGhpY2tuZXNzKQoreworICAg
IGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlNldFN0cm9rZVRoaWNrbmVzcyh0aGlja25lc3MpKTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpzZXRTdGF0ZShEaXNwbGF5TGlz
dDo6U2V0U3RhdGUmJiBpdGVtKQoreworICAgIGF1dG8gc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRp
ZmllciA9IGl0ZW0uc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcigpOworICAgIFJlZlB0cjxO
YXRpdmVJbWFnZT4gc3Ryb2tlUGF0dGVybkltYWdlOworICAgIGlmIChzdHJva2VQYXR0ZXJuSW1h
Z2VJZGVudGlmaWVyKQorICAgICAgICBzdHJva2VQYXR0ZXJuSW1hZ2UgPSByZXNvdXJjZUNhY2hl
KCkuY2FjaGVkTmF0aXZlSW1hZ2Uoc3Ryb2tlUGF0dGVybkltYWdlSWRlbnRpZmllcik7CisKKyAg
ICBhdXRvIGZpbGxQYXR0ZXJuSW1hZ2VJZGVudGlmaWVyID0gaXRlbS5maWxsUGF0dGVybkltYWdl
SWRlbnRpZmllcigpOworICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gZmlsbFBhdHRlcm5JbWFnZTsK
KyAgICBpZiAoZmlsbFBhdHRlcm5JbWFnZUlkZW50aWZpZXIpCisgICAgICAgIGZpbGxQYXR0ZXJu
SW1hZ2UgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkTmF0aXZlSW1hZ2UoZmlsbFBhdHRlcm5JbWFn
ZUlkZW50aWZpZXIpOworCisgICAgaGFuZGxlSXRlbShXVEZNb3ZlKGl0ZW0pLCBzdHJva2VQYXR0
ZXJuSW1hZ2UuZ2V0KCksIGZpbGxQYXR0ZXJuSW1hZ2UuZ2V0KCkpOworCisgICAgaWYgKHN0cm9r
ZVBhdHRlcm5JbWFnZSkKKyAgICAgICAgcmVzb3VyY2VDYWNoZSgpLnJlY29yZFJlc291cmNlVXNl
KHN0cm9rZVBhdHRlcm5JbWFnZUlkZW50aWZpZXIpOworCisgICAgaWYgKGZpbGxQYXR0ZXJuSW1h
Z2UpCisgICAgICAgIHJlc291cmNlQ2FjaGUoKS5yZWNvcmRSZXNvdXJjZVVzZShmaWxsUGF0dGVy
bkltYWdlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
c2V0TGluZUNhcChMaW5lQ2FwIGxpbmVDYXApCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlz
dDo6U2V0TGluZUNhcChsaW5lQ2FwKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6c2V0TGluZURhc2goRGlzcGxheUxpc3Q6OlNldExpbmVEYXNoJiYgaXRlbSkKK3sKKyAg
ICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OnNldExpbmVKb2luKExpbmVKb2luIGxpbmVKb2luKQoreworICAgIGhhbmRsZUl0
ZW0oRGlzcGxheUxpc3Q6OlNldExpbmVKb2luKGxpbmVKb2luKSk7Cit9CisKK3ZvaWQgUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6c2V0TWl0ZXJMaW1pdChmbG9hdCBsaW1pdCkKK3sKKyAgICBo
YW5kbGVJdGVtKERpc3BsYXlMaXN0OjpTZXRNaXRlckxpbWl0KGxpbWl0KSk7Cit9CisKK3ZvaWQg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xlYXJTaGFkb3coKQoreworICAgIGhhbmRsZUl0
ZW0oRGlzcGxheUxpc3Q6OkNsZWFyU2hhZG93KCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OmNsaXAoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIGhhbmRsZUl0
ZW0oRGlzcGxheUxpc3Q6OkNsaXAocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmNsaXBPdXQoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIGhhbmRsZUl0
ZW0oRGlzcGxheUxpc3Q6OkNsaXBPdXQocmVjdCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OmNsaXBUb0ltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgZGVzdGluYXRpb25SZWN0KQoreworICAgIFJlZlB0ciBpbWFnZUJ1ZmZlciA9IHJlc291cmNl
Q2FjaGUoKS5jYWNoZWRJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlm
ICghaW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpDbGlwVG9JbWFn
ZUJ1ZmZlcihpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGRlc3RpbmF0aW9uUmVjdCksICppbWFnZUJ1
ZmZlcik7CisgICAgcmVzb3VyY2VDYWNoZSgpLnJlY29yZFJlc291cmNlVXNlKGltYWdlQnVmZmVy
SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Y2xpcE91
dFRvUGF0aChjb25zdCBQYXRoJiBwYXRoKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6
OkNsaXBPdXRUb1BhdGgocGF0aCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OmNsaXBQYXRoKGNvbnN0IFBhdGgmIHBhdGgsIFdpbmRSdWxlIHJ1bGUpCit7CisgICAgaGFu
ZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xpcFBhdGgocGF0aCwgcnVsZSkpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0
IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29s
b3JTcGFjZSkKK3sKKyAgICBtX21hc2tJbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGVD
b21wYXRpYmxlQnVmZmVyKGRlc3RpbmF0aW9uLnNpemUoKSwgY29sb3JTcGFjZSwgZHJhd2luZ0Nv
bnRleHQoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZW5kQ2xpcFRv
RHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCit7CisgICAgYXV0
byBtYXNrSW1hZ2VCdWZmZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fbWFza0ltYWdlQnVmZmVyLCB7IH0p
OworICAgIGlmICghbWFza0ltYWdlQnVmZmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZHJhd2luZ0NvbnRleHQoKS5jbGlw
VG9JbWFnZUJ1ZmZlcigqbWFza0ltYWdlQnVmZmVyLCBkZXN0aW5hdGlvbik7Cit9CisKK3ZvaWQg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0dseXBocyhEaXNwbGF5TGlzdDo6RHJhd0ds
eXBocyYmIGl0ZW0pCit7CisgICAgYXV0byBmb250SWRlbnRpZmllciA9IGl0ZW0uZm9udElkZW50
aWZpZXIoKTsKKyAgICBSZWZQdHIgZm9udCA9IHJlc291cmNlQ2FjaGUoKS5jYWNoZWRGb250KGZv
bnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWZvbnQpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUo
aXRlbSksICpmb250KTsKKyAgICByZXNvdXJjZUNhY2hlKCkucmVjb3JkUmVzb3VyY2VVc2UoZm9u
dElkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdJ
bWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBSZWZQ
dHIgaW1hZ2VCdWZmZXIgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkSW1hZ2VCdWZmZXIoaW1hZ2VC
dWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKSB7CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlSXRl
bShEaXNwbGF5TGlzdDo6RHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVySWRlbnRpZmllciwgZGVz
dGluYXRpb25SZWN0LCBzcmNSZWN0LCBvcHRpb25zKSwgKmltYWdlQnVmZmVyKTsKKyAgICByZXNv
dXJjZUNhY2hlKCkucmVjb3JkUmVzb3VyY2VVc2UoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgUmVmUHRy
IGltYWdlID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hlZE5hdGl2ZUltYWdlKGltYWdlSWRlbnRpZmll
cik7CisgICAgaWYgKCFpbWFnZSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdO
YXRpdmVJbWFnZShpbWFnZUlkZW50aWZpZXIsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3Qs
IG9wdGlvbnMpLCAqaW1hZ2UpOworICAgIHJlc291cmNlQ2FjaGUoKS5yZWNvcmRSZXNvdXJjZVVz
ZShpbWFnZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmRyYXdQYXR0ZXJuKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIs
IGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9y
bSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgUmVmUHRyIGltYWdlID0g
cmVzb3VyY2VDYWNoZSgpLmNhY2hlZE5hdGl2ZUltYWdlKGltYWdlSWRlbnRpZmllcik7CisgICAg
aWYgKCFpbWFnZSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdQYXR0ZXJuKGlt
YWdlSWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwg
cGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpLCAqaW1hZ2UpOworICAgIHJlc291cmNlQ2FjaGUoKS5y
ZWNvcmRSZXNvdXJjZVVzZShpbWFnZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKK3sK
KyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpCZWdpblRyYW5zcGFyZW5jeUxheWVyKG9wYWNp
dHkpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjplbmRUcmFuc3BhcmVu
Y3lMYXllcigpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RW5kVHJhbnNwYXJlbmN5
TGF5ZXIoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCit7CisgICAgaGFu
ZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd1JlY3QocmVjdCwgYm9yZGVyVGhpY2tuZXNzKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0xpbmUoY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludDIpCit7CisgICAgaGFuZGxlSXRl
bShEaXNwbGF5TGlzdDo6RHJhd0xpbmUocG9pbnQxLCBwb2ludDIpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3TGluZXNGb3JUZXh0KERpc3BsYXlMaXN0OjpEcmF3
TGluZXNGb3JUZXh0JiYgaXRlbSkKK3sKKyAgICBoYW5kbGVJdGVtKFdURk1vdmUoaXRlbSkpOwor
fQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdEb3RzRm9yRG9jdW1lbnRN
YXJrZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBEb2N1bWVudE1hcmtlckxpbmVTdHls
ZSYgc3R5bGUpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd0RvdHNGb3JEb2N1
bWVudE1hcmtlcihyZWN0LCBzdHlsZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXI6OmRyYXdFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBoYW5kbGVJ
dGVtKERpc3BsYXlMaXN0OjpEcmF3RWxsaXBzZShyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd1BhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sKKyAgICBoYW5k
bGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3UGF0aChwYXRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZvY3VzUmluZ1BhdGgoY29uc3QgUGF0aCYgcGF0aCwgZmxv
YXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIGhhbmRs
ZUl0ZW0oRGlzcGxheUxpc3Q6OkRyYXdGb2N1c1JpbmdQYXRoKHBhdGgsIHdpZHRoLCBvZmZzZXQs
IGNvbG9yKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZvY3Vz
UmluZ1JlY3RzKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0cywgZmxvYXQgd2lkdGgsIGZs
b2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxh
eUxpc3Q6OkRyYXdGb2N1c1JpbmdSZWN0cyhyZWN0cywgd2lkdGgsIG9mZnNldCwgY29sb3IpKTsK
K30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpmaWxsUmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbFJlY3QocmVj
dCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxSZWN0V2l0aENv
bG9yKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQoreworICAgIGhh
bmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aENvbG9yKHJlY3QsIGNvbG9yKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFJlY3RXaXRoR3JhZGllbnQo
RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRpZW50JiYgaXRlbSkKK3sKKyAgICBoYW5kbGVJ
dGVtKFdURk1vdmUoaXRlbSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6
OmZpbGxDb21wb3NpdGVkUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBj
b2xvciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit7CisgICAg
aGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbENvbXBvc2l0ZWRSZWN0KHJlY3QsIGNvbG9yLCBv
cCwgYmxlbmRNb2RlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Zmls
bFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBj
b2xvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0
OjpGaWxsUm91bmRlZFJlY3QocmVjdCwgY29sb3IsIGJsZW5kTW9kZSkpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZEhvbGVSZWN0LCBj
b25zdCBDb2xvciYgY29sb3IpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbFJl
Y3RXaXRoUm91bmRlZEhvbGUocmVjdCwgcm91bmRlZEhvbGVSZWN0LCBjb2xvcikpOworfQorCisj
aWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6ZmlsbExpbmUoY29uc3QgTGluZURhdGEmIGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShE
aXNwbGF5TGlzdDo6RmlsbExpbmUoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmZpbGxBcmMoY29uc3QgQXJjRGF0YSYgZGF0YSkKK3sKKyAgICBoYW5kbGVJdGVt
KERpc3BsYXlMaXN0OjpGaWxsQXJjKGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpmaWxsUXVhZEN1cnZlKGNvbnN0IFF1YWRDdXJ2ZURhdGEmIGRhdGEpCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RmlsbFF1YWRDdXJ2ZShkYXRhKSk7Cit9CisKK3Zv
aWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbEJlemllckN1cnZlKGNvbnN0IEJlemll
ckN1cnZlRGF0YSYgZGF0YSkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsQmV6
aWVyQ3VydmUoZGF0YSkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOTElORV9QQVRIX0RBVEEp
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbFBhdGgoY29uc3QgUGF0aCYg
cGF0aCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpGaWxsUGF0aChwYXRoKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZmlsbEVsbGlwc2UoY29uc3QgRmxv
YXRSZWN0JiByZWN0KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkZpbGxFbGxpcHNl
KHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpnZXRQaXhlbEJ1
ZmZlcihjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0
cHV0Rm9ybWF0KQoreworICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cG9wdWxhdGVHZXRQaXhlbEJ1
ZmZlclNoYXJlZE1lbW9yeShtX2ltYWdlQnVmZmVyLT5nZXRQaXhlbEJ1ZmZlcihvdXRwdXRGb3Jt
YXQsIHNyY1JlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwdXRQ
aXhlbEJ1ZmZlcihjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBv
aW50LCBjb25zdCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIEFscGhhUHJlbXVsdGlwbGljYXRp
b24gZGVzdEZvcm1hdCkKK3sKKyAgICBtX2ltYWdlQnVmZmVyLT5wdXRQaXhlbEJ1ZmZlcihwaXhl
bEJ1ZmZlciwgc3JjUmVjdCwgZGVzdFBvaW50LCBkZXN0Rm9ybWF0KTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpwYWludEZyYW1lRm9yTWVkaWEoTWVkaWFQbGF5ZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24pCit7CisgICAg
bV9yZW5kZXJpbmdCYWNrZW5kLT5wZXJmb3JtV2l0aE1lZGlhUGxheWVyT25NYWluVGhyZWFkKGlk
ZW50aWZpZXIsIFtpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXIuY29weVJlZigpLCBkZXN0aW5h
dGlvbl0oTWVkaWFQbGF5ZXImIHBsYXllcikgeworICAgICAgICAvLyBJdCBpcyBjdXJyZW50bHkg
bm90IHNhZmUgdG8gY2FsbCBwYWludEZyYW1lRm9yTWVkaWEoKSBvZmYgdGhlIG1haW4gdGhyZWFk
LgorICAgICAgICBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLnBhaW50RnJhbWVGb3JNZWRpYShwbGF5
ZXIsIGRlc3RpbmF0aW9uKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpzdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgbGluZVdpZHRo
KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlN0cm9rZVJlY3QocmVjdCwgbGluZVdp
ZHRoKSk7Cit9CisKKyNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpzdHJva2VMaW5lKGNvbnN0IExpbmVEYXRhJiBkYXRhKQorewor
ICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlN0cm9rZUxpbmUoZGF0YSkpOworfQorCit2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OnN0cm9rZUFyYyhjb25zdCBBcmNEYXRhJiBkYXRh
KQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlN0cm9rZUFyYyhkYXRhKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6c3Ryb2tlUXVhZEN1cnZlKGNvbnN0IFF1
YWRDdXJ2ZURhdGEmIGRhdGEpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tl
UXVhZEN1cnZlKGRhdGEpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpz
dHJva2VCZXppZXJDdXJ2ZShjb25zdCBCZXppZXJDdXJ2ZURhdGEmIGRhdGEpCit7CisgICAgaGFu
ZGxlSXRlbShEaXNwbGF5TGlzdDo6U3Ryb2tlQmV6aWVyQ3VydmUoZGF0YSkpOworfQorCisjZW5k
aWYgLy8gRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6c3Ryb2tlUGF0aChjb25zdCBQYXRoJiBwYXRoKQoreworICAgIGhhbmRsZUl0ZW0o
RGlzcGxheUxpc3Q6OlN0cm9rZVBhdGgocGF0aCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OnN0cm9rZUVsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAg
IGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OlN0cm9rZUVsbGlwc2UocmVjdCkpOworfQorCit2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmNsZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCit7CisgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6Q2xlYXJSZWN0KHJlY3QpKTsKK30K
KworI2lmIFVTRShDRykKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjphcHBseVN0
cm9rZVBhdHRlcm4oKQoreworICAgIGhhbmRsZUl0ZW0oRGlzcGxheUxpc3Q6OkFwcGx5U3Ryb2tl
UGF0dGVybigpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjphcHBseUZp
bGxQYXR0ZXJuKCkKK3sKKyAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpBcHBseUZpbGxQYXR0
ZXJuKCkpOworfQorCisjZW5kaWYgLy8gVVNFKENHKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCit7Cisg
ICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6QXBwbHlEZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZh
Y3RvcikpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OmZsdXNoQ29udGV4
dChHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX2lt
YWdlQnVmZmVyLT5mbHVzaENvbnRleHQoKTsKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPmRpZEZs
dXNoKGlkZW50aWZpZXIsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDBhZThkMjk3ZWYzNmQ0YTFjNTI0NGRhODZlMWU0
MzcyMTJmNDRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtMCwwICsxLDE1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIlF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCIKKyNpbmNsdWRl
ICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJTdHJlYW1TZXJ2ZXJDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKK2NsYXNzIFJlbW90ZVJl
c291cmNlQ2FjaGU7CisKK2NsYXNzIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgOiBwdWJsaWMg
SVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyPiBjcmVhdGUoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVy
LCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kKQorICAgIHsKKyAg
ICAgICAgYXV0byBpbnN0YW5jZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcihpbWFnZUJ1ZmZlciwgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5k
KSk7CisgICAgICAgIGluc3RhbmNlLT5zdGFydExpc3RlbmluZ0ZvcklQQygpOworICAgICAgICBy
ZXR1cm4gaW5zdGFuY2U7CisgICAgfQorCisgICAgdm9pZCBzdG9wTGlzdGVuaW5nRm9ySVBDKCk7
CisKKyAgICB2b2lkIHNhdmUoKTsKKyAgICB2b2lkIHJlc3RvcmUoKTsKKyAgICB2b2lkIHRyYW5z
bGF0ZShmbG9hdCB4LCBmbG9hdCB5KTsKKyAgICB2b2lkIHJvdGF0ZShmbG9hdCBhbmdsZSk7Cisg
ICAgdm9pZCBzY2FsZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNjYWxlKTsKKyAgICB2b2lk
IHNldENUTShjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKKyAgICB2b2lkIGNvbmNh
dGVuYXRlQ1RNKGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOworICAgIHZvaWQgc2V0
SW5saW5lRmlsbENvbG9yKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3Im
Jik7CisgICAgdm9pZCBzZXRJbmxpbmVTdHJva2VDb2xvcihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
U2V0SW5saW5lU3Ryb2tlQ29sb3ImJik7CisgICAgdm9pZCBzZXRTdHJva2VUaGlja25lc3MoZmxv
YXQpOworICAgIHZvaWQgc2V0U3RhdGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlJiYp
OworICAgIHZvaWQgc2V0TGluZUNhcChXZWJDb3JlOjpMaW5lQ2FwKTsKKyAgICB2b2lkIHNldExp
bmVEYXNoKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRMaW5lRGFzaCYmKTsKKyAgICB2b2lkIHNl
dExpbmVKb2luKFdlYkNvcmU6OkxpbmVKb2luKTsKKyAgICB2b2lkIHNldE1pdGVyTGltaXQoZmxv
YXQpOworICAgIHZvaWQgY2xlYXJTaGFkb3coKTsKKyAgICB2b2lkIGNsaXAoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0Jik7CisgICAgdm9pZCBjbGlwT3V0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpOworICAgIHZvaWQgY2xpcFRvSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uUmVjdCk7
CisgICAgdm9pZCBjbGlwT3V0VG9QYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmKTsKKyAgICB2b2lk
IGNsaXBQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmLCBXZWJDb3JlOjpXaW5kUnVsZSk7CisgICAg
dm9pZCBiZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UmKTsKKyAg
ICB2b2lkIGVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uKTsKKyAgICB2b2lkIGRyYXdHbHlwaHMoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdHbHlwaHMmJik7CisgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKTsKKyAgICB2b2lk
IGRyYXdOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1h
Z2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpOworICAgIHZvaWQg
ZHJhd1BhdHRlcm4oV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6
OkltYWdlUGFpbnRpbmdPcHRpb25zJik7CisgICAgdm9pZCBiZWdpblRyYW5zcGFyZW5jeUxheWVy
KGZsb2F0IG9wYWNpdHkpOworICAgIHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKKyAgICB2
b2lkIGRyYXdSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNr
bmVzcyk7CisgICAgdm9pZCBkcmF3TGluZShjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb2lu
dDEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvaW50Mik7CisgICAgdm9pZCBkcmF3TGlu
ZXNGb3JUZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TGluZXNGb3JUZXh0JiYpOworICAg
IHZvaWQgZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSYpOworICAgIHZvaWQgZHJh
d0VsbGlwc2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgdm9pZCBkcmF3UGF0aChj
b25zdCBXZWJDb3JlOjpQYXRoJik7CisgICAgdm9pZCBkcmF3Rm9jdXNSaW5nUGF0aChjb25zdCBX
ZWJDb3JlOjpQYXRoJiwgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKTsKKyAgICB2b2lkIGRyYXdGb2N1c1JpbmdSZWN0cyhjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6RmxvYXRSZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IFdl
YkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBmaWxsUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKTsKKyAgICB2b2lkIGZpbGxSZWN0V2l0aENvbG9yKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdm9pZCBmaWxsUmVjdFdpdGhHcmFkaWVu
dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQmJik7CisgICAgdm9p
ZCBmaWxsQ29tcG9zaXRlZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImLCBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvciwgV2ViQ29yZTo6QmxlbmRN
b2RlKTsKKyAgICB2b2lkIGZpbGxSb3VuZGVkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJvdW5k
ZWRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBXZWJDb3JlOjpCbGVuZE1vZGUpOworICAg
IHZvaWQgZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7
CisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisgICAgdm9pZCBmaWxsTGluZShjb25zdCBX
ZWJDb3JlOjpMaW5lRGF0YSYpOworICAgIHZvaWQgZmlsbEFyYyhjb25zdCBXZWJDb3JlOjpBcmNE
YXRhJik7CisgICAgdm9pZCBmaWxsUXVhZEN1cnZlKGNvbnN0IFdlYkNvcmU6OlF1YWRDdXJ2ZURh
dGEmKTsKKyAgICB2b2lkIGZpbGxCZXppZXJDdXJ2ZShjb25zdCBXZWJDb3JlOjpCZXppZXJDdXJ2
ZURhdGEmKTsKKyNlbmRpZgorICAgIHZvaWQgZmlsbFBhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYp
OworICAgIHZvaWQgZmlsbEVsbGlwc2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAg
dm9pZCBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25z
dCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0KTsKKyAgICB2b2lkIHB1
dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgV2Vi
Q29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KTsKKyAgICB2b2lkIHBhaW50
RnJhbWVGb3JNZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgZGVzdGluYXRpb24pOworICAgIHZvaWQgc3Ryb2tlUmVjdChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCBsaW5lV2lkdGgpOworI2lmIEVOQUJMRShJTkxJTkVf
UEFUSF9EQVRBKQorICAgIHZvaWQgc3Ryb2tlTGluZShjb25zdCBXZWJDb3JlOjpMaW5lRGF0YSYp
OworICAgIHZvaWQgc3Ryb2tlQXJjKGNvbnN0IFdlYkNvcmU6OkFyY0RhdGEmKTsKKyAgICB2b2lk
IHN0cm9rZVF1YWRDdXJ2ZShjb25zdCBXZWJDb3JlOjpRdWFkQ3VydmVEYXRhJik7CisgICAgdm9p
ZCBzdHJva2VCZXppZXJDdXJ2ZShjb25zdCBXZWJDb3JlOjpCZXppZXJDdXJ2ZURhdGEmKTsKKyNl
bmRpZgorICAgIHZvaWQgc3Ryb2tlUGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJik7CisgICAgdm9p
ZCBzdHJva2VFbGxpcHNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworICAgIHZvaWQgY2xl
YXJSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworI2lmIFVTRShDRykKKyAgICB2b2lk
IGFwcGx5U3Ryb2tlUGF0dGVybigpOworICAgIHZvaWQgYXBwbHlGaWxsUGF0dGVybigpOworI2Vu
ZGlmCisgICAgdm9pZCBhcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKKyAgICB2b2lkIGZs
dXNoQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXIpOworCitw
cml2YXRlOgorICAgIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXImLCBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQmKTsKKworICAgIFJlbW90ZVJlc291cmNlQ2FjaGUmIHJlc291cmNlQ2FjaGUoKTsK
KyAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGRyYXdpbmdDb250ZXh0KCk7CisKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSAuLi4gQWRkaXRpb25hbEFyZ3M+CisgICAgdm9p
ZCBoYW5kbGVJdGVtKFQmJiBpdGVtLCBBZGRpdGlvbmFsQXJncyYmIC4uLiBhcmdzKQorICAgIHsK
KyAgICAgICAgLy8gRklYTUU6IEluIHRoZSBmdXR1cmUsIHdlIHNob3VsZCBjb25zaWRlciBidWZm
ZXJpbmcgdXAgYmF0Y2hlcyBvZiBkaXNwbGF5IGxpc3QgaXRlbXMgYmVmb3JlCisgICAgICAgIC8v
IGFwcGx5aW5nIHRoZW0gaW5zdGVhZCBvZiBhcHBseWluZyB0aGVtIGltbWVkaWF0ZWx5LCBzbyB0
aGF0IHdlIGNhbiBhcHBseSBjbGlwcGluZyBhbmQgb2NjbHVzaW9uCisgICAgICAgIC8vIG9wdGlt
aXphdGlvbnMgdG8gc2tpcCBvdmVyIHBhcnRzIG9mIGEgZGlzcGxheSBsaXN0LCBpZiBwb3NzaWJs
ZS4KKyAgICAgICAgaXRlbS5hcHBseShkcmF3aW5nQ29udGV4dCgpLCBhcmdzLi4uKTsKKyAgICB9
CisKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7CisgICAgdm9pZCBkaWRSZWNlaXZl
U3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwgSVBDOjpEZWNv
ZGVyJikgZmluYWw7CisKKyAgICBSZWY8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1faW1hZ2VCdWZm
ZXI7CisgICAgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VCdWZm
ZXJJZGVudGlmaWVyOworICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmlu
Z0JhY2tlbmQ7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBtX21hc2tJbWFnZUJ1
ZmZlcjsKKyAgICBib29sIG1faXNMaXN0ZW5pbmdGb3JJUEMgeyBmYWxzZSB9OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMTQw
OTNhM2I5YWJhMGExYmU3MjA2ODdlZmI0NjY4YjU5NWEzNjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDk4IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgTm90UmVmQ291bnRlZCBTdHJlYW0geworICAgIFNhdmUo
KQorICAgIFJlc3RvcmUoKQorICAgIFRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KQorICAgIFJv
dGF0ZShmbG9hdCBhbmdsZSkKKyAgICBTY2FsZShXZWJDb3JlOjpGbG9hdFNpemUgc2NhbGUpCisg
ICAgU2V0Q1RNKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSBjdG0pCisgICAgQ29uY2F0ZW5hdGVD
VE0oV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIGN0bSkKKyAgICBTZXRJbmxpbmVGaWxsQ29sb3Io
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxDb2xvciBpdGVtKQorICAgIFNldElu
bGluZVN0cm9rZUNvbG9yKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xv
ciBpdGVtKQorICAgIFNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCB0aGlja25lc3MpCisgICAgU2V0
U3RhdGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlIGl0ZW0pCisgICAgU2V0TGluZUNh
cChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TGluZUNhcCBsaW5lQ2FwKQorICAgIFNldExpbmVEYXNo
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRMaW5lRGFzaCBpdGVtKQorICAgIFNldExpbmVKb2lu
KGVudW06dWludDhfdCBXZWJDb3JlOjpMaW5lSm9pbiBsaW5lSm9pbikKKyAgICBTZXRNaXRlckxp
bWl0KGZsb2F0IGxpbWl0KQorICAgIENsZWFyU2hhZG93KCkKKyAgICBDbGlwKFdlYkNvcmU6OkZs
b2F0UmVjdCByZWN0KQorICAgIENsaXBPdXQoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCisgICAg
Q2xpcFRvSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0IGRlc3RpbmF0aW9u
UmVjdCkKKyAgICBDbGlwT3V0VG9QYXRoKFdlYkNvcmU6OlBhdGggcGF0aCkKKyAgICBDbGlwUGF0
aChXZWJDb3JlOjpQYXRoIHBhdGgsIGVudW06dWludDhfdCBXZWJDb3JlOjpXaW5kUnVsZSB3aW5k
UnVsZSkKKyAgICBCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcyhXZWJDb3JlOjpGbG9hdFJlY3Qg
ZGVzdGluYXRpb24sIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKQor
ICAgIEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRp
b24pCisgICAgRHJhd0dseXBocyhXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBocyBpdGVt
KQorICAgIERyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb25S
ZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3Qgc3JjUmVjdCwgc3RydWN0IFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zIG9wdGlvbnMpCisgICAgRHJhd05hdGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0U2l6
ZSBpbWFnZVNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCBkZXN0UmVjdCwgV2ViQ29yZTo6RmxvYXRS
ZWN0IHNyY1JlY3QsIHN0cnVjdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25z
KQorICAgIERyYXdQYXR0ZXJuKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBp
bWFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0U2l6ZSBpbWFnZVNpemUsIFdlYkNvcmU6OkZs
b2F0UmVjdCBkZXN0UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRpbGVSZWN0LCBXZWJDb3JlOjpB
ZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtLCBXZWJDb3JlOjpGbG9hdFBvaW50IHBoYXNlLCBXZWJD
b3JlOjpGbG9hdFNpemUgc3BhY2luZywgc3RydWN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRp
b25zIG9wdGlvbnMpCisgICAgQmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQor
ICAgIEVuZFRyYW5zcGFyZW5jeUxheWVyKCkKKyAgICBEcmF3UmVjdChXZWJDb3JlOjpGbG9hdFJl
Y3QgcmVjdCwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKQorICAgIERyYXdMaW5lKFdlYkNvcmU6OkZs
b2F0UG9pbnQgcG9pbnQxLCBXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50MikKKyAgICBEcmF3TGlu
ZXNGb3JUZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TGluZXNGb3JUZXh0IGl0ZW0pCisg
ICAgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgc3Ry
dWN0IFdlYkNvcmU6OkRvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQorICAgIERyYXdFbGxp
cHNlKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQorICAgIERyYXdQYXRoKFdlYkNvcmU6OlBhdGgg
cGF0aCkKKyAgICBEcmF3Rm9jdXNSaW5nUGF0aChXZWJDb3JlOjpQYXRoIHBhdGgsIGZsb2F0IHdp
ZHRoLCBmbG9hdCBvZmZzZXQsIFdlYkNvcmU6OkNvbG9yIGNvbG9yKQorICAgIERyYXdGb2N1c1Jp
bmdSZWN0cyhWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiByZWN0cywgZmxvYXQgd2lkdGgsIGZs
b2F0IG9mZnNldCwgV2ViQ29yZTo6Q29sb3IgY29sb3IpCisgICAgRmlsbFJlY3QoV2ViQ29yZTo6
RmxvYXRSZWN0IHJlY3QpCisgICAgRmlsbFJlY3RXaXRoQ29sb3IoV2ViQ29yZTo6RmxvYXRSZWN0
IHJlY3QsIFdlYkNvcmU6OkNvbG9yIGNvbG9yKQorICAgIEZpbGxSZWN0V2l0aEdyYWRpZW50KFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUmVjdFdpdGhHcmFkaWVudCBpdGVtKQorICAgIEZpbGxD
b21wb3NpdGVkUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgV2ViQ29yZTo6Q29sb3IgY29s
b3IsIGVudW06dWludDhfdCBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvciBvcCwgZW51bTp1aW50
OF90IFdlYkNvcmU6OkJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgRmlsbFJvdW5kZWRSZWN0KFdl
YkNvcmU6OkZsb2F0Um91bmRlZFJlY3QgcmVjdCwgV2ViQ29yZTo6Q29sb3IgY29sb3IsIGVudW06
dWludDhfdCBXZWJDb3JlOjpCbGVuZE1vZGUgYmxlbmRNb2RlKQorICAgIEZpbGxSZWN0V2l0aFJv
dW5kZWRIb2xlKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBXZWJDb3JlOjpGbG9hdFJvdW5kZWRS
ZWN0IHJvdW5kZWRIb2xlUmVjdCwgV2ViQ29yZTo6Q29sb3IgY29sb3IpCisjaWYgRU5BQkxFKElO
TElORV9QQVRIX0RBVEEpCisgICAgRmlsbExpbmUoc3RydWN0IFdlYkNvcmU6OkxpbmVEYXRhIGRh
dGEpCisgICAgRmlsbEFyYyhzdHJ1Y3QgV2ViQ29yZTo6QXJjRGF0YSBkYXRhKQorICAgIEZpbGxR
dWFkQ3VydmUoc3RydWN0IFdlYkNvcmU6OlF1YWRDdXJ2ZURhdGEgZGF0YSkKKyAgICBGaWxsQmV6
aWVyQ3VydmUoc3RydWN0IFdlYkNvcmU6OkJlemllckN1cnZlRGF0YSBkYXRhKQorI2VuZGlmCisg
ICAgRmlsbFBhdGgoV2ViQ29yZTo6UGF0aCBwYXRoKQorICAgIEZpbGxFbGxpcHNlKFdlYkNvcmU6
OkZsb2F0UmVjdCByZWN0KQorICAgIEdldFBpeGVsQnVmZmVyKFdlYkNvcmU6OkludFJlY3Qgc3Jj
UmVjdCwgc3RydWN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0IG91dHB1dEZvcm1hdCkKKyAg
ICBQdXRQaXhlbEJ1ZmZlcihXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OkludFBv
aW50IGRlc3RQb2ludCwgV2ViQ29yZTo6UGl4ZWxCdWZmZXIgcGl4ZWxCdWZmZXIsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpCisgICAgUGFp
bnRGcmFtZUZvck1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJDb3JlOjpGbG9hdFJlY3QgZGVzdGluYXRpb24pCisgICAgU3Ryb2tlUmVjdChXZWJDb3Jl
OjpGbG9hdFJlY3QgcmVjdCwgZmxvYXQgbGluZVdpZHRoKQorI2lmIEVOQUJMRShJTkxJTkVfUEFU
SF9EQVRBKQorICAgIFN0cm9rZUxpbmUoc3RydWN0IFdlYkNvcmU6OkxpbmVEYXRhIGRhdGEpCisg
ICAgU3Ryb2tlQXJjKHN0cnVjdCBXZWJDb3JlOjpBcmNEYXRhIGRhdGEpCisgICAgU3Ryb2tlUXVh
ZEN1cnZlKHN0cnVjdCBXZWJDb3JlOjpRdWFkQ3VydmVEYXRhIGRhdGEpCisgICAgU3Ryb2tlQmV6
aWVyQ3VydmUoc3RydWN0IFdlYkNvcmU6OkJlemllckN1cnZlRGF0YSBkYXRhKQorI2VuZGlmCisg
ICAgU3Ryb2tlUGF0aChXZWJDb3JlOjpQYXRoIHBhdGgpCisgICAgU3Ryb2tlRWxsaXBzZShXZWJD
b3JlOjpGbG9hdFJlY3QgcmVjdCkKKyAgICBDbGVhclJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJl
Y3QpCisjaWYgVVNFKENHKQorICAgIEFwcGx5U3Ryb2tlUGF0dGVybigpCisgICAgQXBwbHlGaWxs
UGF0dGVybigpCisjZW5kaWYKKyAgICBBcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxl
RmFjdG9yKQorICAgIEZsdXNoQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRGbHVzaElk
ZW50aWZpZXIgaWRlbnRpZmllcikKK30KKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBmY2NlZDdkNTFhMjEyMmE2MDA0ODk5ZTE5ZTM4
MGNiZDU4NTcyMWYxLi5jN2QxYTgzZWVmZTMxZTdjMjlkNzIzZGNjNWFmNzU3ODY5MjJmMjQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC03ODMsNiArNzgzLDE0IEBAIHZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6dXBkYXRlTGFzdEtub3duU3RhdGUoUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFN0YXRlIHN0CiAgICAgbV9sYXN0S25vd25TdGF0ZS5zdG9yZVJlbGF4ZWQoc3RhdGUpOwog
fQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnBlcmZvcm1XaXRoTWVkaWFQbGF5ZXJP
bk1haW5UaHJlYWQoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZv
aWQoTWVkaWFQbGF5ZXImKT4mJiBjYWxsYmFjaykKK3sKKyAgICBjYWxsT25NYWluUnVuTG9vcEFu
ZFdhaXQoWyYsIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgPSBtX2dwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MsIGlkZW50aWZpZXJdIHsKKyAgICAgICAgaWYgKGF1dG8gcGxheWVyID0gZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2Vzcy0+cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5tZWRp
YVBsYXllcihpZGVudGlmaWVyKSkKKyAgICAgICAgICAgIGNhbGxiYWNrKCpwbGF5ZXIpOworICAg
IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDQxOWFlNmQxNmY3MmQ3ZDU5MzE0MWZl
MjI5NmFjZmU2OWExYzU5MGMuLjYyOGVjMzliNmExODliODJlYmE0ZmZmMjU4ZjY2YWQ5NjgwZDcy
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtOTksNiArOTksOCBAQCBwdWJsaWM6CiAKICAg
ICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUgbGFzdEtub3duU3RhdGUoKSBjb25zdDsKIAor
ICAgIHZvaWQgcGVyZm9ybVdpdGhNZWRpYVBsYXllck9uTWFpblRocmVhZChXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXImKT4m
Jik7CisKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZENyZWF0aW9uUGFyYW1ldGVycyYm
KTsKICAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA0MWM3NmJkYjhkYTcxNjQ1ZjM4NTNhMzNmYWQ1ZGQy
NWVkNzg0NDFjLi43ODM5ZjY5OGRkODFhODI0MmQxYWMzZjMyNTQ2NWJmMTUwMTU1NTJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTY5MSwxMyArNjkxLDE4
IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2FsbFRpbWUnOiBbJzx3
dGYvV2FsbFRpbWUuaD4nXSwKICAgICAgICAgJ1N0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPiddLAogICAgICAgICAnUEFMOjpTZXNzaW9uSUQnOiBbJzxwYWwvU2Vzc2lvbklELmg+J10s
CisgICAgICAgICdXZWJDb3JlOjpBcmNEYXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzogWyc8V2ViQ29yZS9B
dXRvcGxheUV2ZW50Lmg+J10sCisgICAgICAgICdXZWJDb3JlOjpCZXppZXJDdXJ2ZURhdGEnOiBb
JzxXZWJDb3JlL0lubGluZVBhdGhEYXRhLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpCbGVuZE1v
ZGUnOiBbJzxXZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkJy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVy
VHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbic6IFsnPFdlYkNv
cmUvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Q09P
UERpc3Bvc2l0aW9uJzogWyc8V2ViQ29yZS9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oPiddLAor
ICAgICAgICAnV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3InOiBbJzxXZWJDb3JlL0dyYXBoaWNz
VHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkNyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0
JzogWyc8V2ViQ29yZS9BcHBIaWdobGlnaHQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UnOiBbJzxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UnOiBbJzxXZWJDb3JlL0NvbG9yU3Bh
Y2UuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50TWFya2VyTGluZVN0eWxlJzogWyc8
V2ViQ29yZS9HcmFwaGljc1R5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE9y
V29ya2VySWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncyc6IFsnPFdlYkNvcmUvRHJhZ0Rh
dGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdIYW5kbGluZ01ldGhvZCc6IFsnPFdlYkNv
cmUvRHJhZ0FjdGlvbnMuaD4nXSwKQEAgLTcwOCw2ICs3MTMsNyBAQCBkZWYgaGVhZGVyc19mb3Jf
dHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MnOiBbJzxX
ZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZSc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpGb250Q2hhbmdlcyc6IFsnPFdlYkNvcmUvRm9udEF0dHJp
YnV0ZUNoYW5nZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkZvbnRTbW9vdGhpbmdNb2RlJzog
Wyc8V2ViQ29yZS9HcmFwaGljc1R5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUxv
YWRUeXBlJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpHZW5lcmljQ3VlRGF0YSc6IFsnPFdlYkNvcmUvSW5iYW5kR2VuZXJpY0N1ZS5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6R3JhbW1hckRldGFpbCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJD
bGllbnQuaD4nXSwKQEAgLTcyMywxMCArNzI5LDE0IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5
cGUpOgogICAgICAgICAnV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kJzogWyc8V2ViQ29yZS9LZXli
b2FyZEV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpMYXN0TmF2aWdhdGlvbldhc0FwcElu
aXRpYXRlZCc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERhdGEuaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb25DbGllbnQ6Ok1lZGlhS2V5RXJyb3JDb2RlJzog
Wyc8V2ViQ29yZS9MZWdhY3lDRE1TZXNzaW9uLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpMaW5l
Q2FwJzogWyc8V2ViQ29yZS9HcmFwaGljc1R5cGVzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpM
aW5lRGF0YSc6IFsnPFdlYkNvcmUvSW5saW5lUGF0aERhdGEuaD4nXSwKKyAgICAgICAgJ1dlYkNv
cmU6OkxpbmVKb2luJzogWyc8V2ViQ29yZS9HcmFwaGljc1R5cGVzLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVz
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJzog
Wyc8V2ViQ29yZS9NZWRpYVBsYXllci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSc6
IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6Ok1vdmVE
YXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdvcmtMb2FkSW5m
b3JtYXRpb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhJzog
Wyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJk
SW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKQEAgLTc0Miw2ICs3NTIsNyBAQCBk
ZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllcic6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6UHJlc2VydmVSZXNvbHV0aW9uJzogWyc8V2ViQ29yZS9JbWFnZUJ1ZmZlckJhY2tl
bmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJzogWyc8V2ViQ29y
ZS9Qcm9jZXNzSWRlbnRpZmllci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6UXVhZEN1cnZlRGF0
YSc6IFsnPFdlYkNvcmUvSW5saW5lUGF0aERhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJl
Y2VudFNlYXJjaCc6IFsnPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdCc6IFsnPFdlYkNvcmUvRG9jdW1lbnRT
dG9yYWdlQWNjZXNzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kn
OiBbJzxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggODY3ZjZkNTQ4YjllMjk4NGVjNzFmMzNk
YTAyODk4NzIzOTcxY2QwZC4uMDMyZWY0NzNiNWQyMDYzNTIzNzk3OTk1MDg2OWI4MTFmMGJmMGRh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CkBAIC0xNTksNiArMTU5LDkgQEAgREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09V
UkNFKENHUG9pbnQpCiBERUZJTkVfU0lNUExFX0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoQ0dB
ZmZpbmVUcmFuc2Zvcm0pCiAjZW5kaWYKIAorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9G
T1JfU09VUkNFKERpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3IpCitERUZJTkVfU0lNUExF
X0FSR1VNRU5UX0NPREVSX0ZPUl9TT1VSQ0UoRGlzcGxheUxpc3Q6OlNldElubGluZVN0cm9rZUNv
bG9yKQorCiAjdW5kZWYgREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfU09VUkNFCiAK
IHN0YXRpYyB2b2lkIGVuY29kZVNoYXJlZEJ1ZmZlcihFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBT
aGFyZWRCdWZmZXIqIGJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKaW5kZXggN2U4ZmVjOWZiM2Y2Mjg1YWU3ZTYwYjNmMDQ4NGExZWY5OWM3NmU2
YS4uMjA4ZjFiNjExN2I4NzkwY2E0MzUxNGJhYTQxNDVkMDZjMjYyYWYwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nv
bG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50M0QuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAtMjUzLDYgKzI1NCw5IEBAIERFRklORV9TSU1Q
TEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihDR1BvaW50KQogREVGSU5FX1NJTVBMRV9BUkdV
TUVOVF9DT0RFUl9GT1JfSEVBREVSKENHQWZmaW5lVHJhbnNmb3JtKQogI2VuZGlmCiAKK0RFRklO
RV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUihXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
U2V0SW5saW5lRmlsbENvbG9yKQorREVGSU5FX1NJTVBMRV9BUkdVTUVOVF9DT0RFUl9GT1JfSEVB
REVSKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVTdHJva2VDb2xvcikKKwogI3VuZGVm
IERFRklORV9TSU1QTEVfQVJHVU1FTlRfQ09ERVJfRk9SX0hFQURFUgogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmc+IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CmluZGV4IGM0YTg0ZTFmYjZmNDY2YjhmYmQ1NGU2Y2E0NmM0NzI0MjJiM2IwYzguLjdlMjNkNjA1
MmM0NTI0ZjI3YjcwNDIwMmFhMGU3YzkxN2YxZGI5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjUsNiAr
MjUsNyBAQCBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL0Rpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcAor
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcAogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZS5jcHAKQEAgLTYxMSw2ICs2MTIsNyBAQCBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9EaXNwbGF5TGlzdFdyaXRlckhhbmRsZS5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQu
Y3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
LmNwcAorV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBA
IC03NTUsNiArNzU3LDcgQEAgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VS
ZWNlaXZlci5jcHAKIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKIFJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFBsYXRmb3JtWFJTeXN0
ZW1NZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBlNzlhYzA4ZTlhYzk3YTUwODYxMGZkOTBiN2QxOWMxZjk4
MzdmNGVmLi41YjMyZWJhMjIwOGE0ZDg0OWM0NTcwNzFiY2E0Mzg5NjI1MjE3MGU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwNTMs
NiArMjA1Myw5IEBACiAJCUY0NDI5MTk2MUZBNTk0MkEwMDJDQzkzRSAvKiBfV0tBdHRhY2htZW50
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0NDI5MTk1MUZBNTk0MkEwMDJDQzkzRSAvKiBfV0tBdHRhY2htZW50SW50ZXJuYWwuaCAqLzsg
fTsKIAkJRjQ0ODE1NjQyMzg3ODIwMDAwOTgyNjU3IC8qIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
NDgxNTYyMjM4NzgyMDAwMDk4MjY1NyAvKiBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgg
Ki87IH07CiAJCUY0NERGRUIyMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRERkVCMDFF
OUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovOyB9OworCQlGNDUxN0Q3QjI2
RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1MTdENzky
NkZCQ0QzODAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMu
aCAqLzsgfTsKKwkJRjQ1MTdEN0MyNkZCQ0QzOTAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ1MTdEN0EyNkZCQ0QzODAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRN
ZXNzYWdlcy5oICovOyB9OworCQlGNDUxQzBGRTI3MDNCMjYzMDAyQkEwM0IgLyogUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDhCQjhERDI2Rjk2MzVEMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5LmggKi87IH07CiAJCUY0NjYwQkMyMjVERUYwODEwMEU4NjU5OCAvKiBQ
YXN0ZWJvYXJkQWNjZXNzSW50ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDY2MEJDMTI1REVGMDgxMDBFODY1OTggLyogUGFzdGVib2FyZEFjY2Vz
c0ludGVudC5oICovOyB9OwogCQlGNDg1NzBBMzI2NDRCRUM1MDBDMDVGNzEgLyogVGltZW91dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4NTcwQTIy
NjQ0QkVDNDAwQzA1RjcxIC8qIFRpbWVvdXQuaCAqLzsgfTsKIAkJRjQ4RDJBODUyMTU4M0E3RTAw
QzY3NTJCIC8qIEFwcEtpdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ4RDJBODQyMTU4M0EwMjAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oICovOyB9
OwpAQCAtNjEzMCw5ICs2MTMzLDE3IEBACiAJCUY0NDgxNTYzMjM4NzgyMDAwMDk4MjY1NyAvKiBX
S0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMDFF
OUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJJY29uVXRpbGl0aWVzLmg7IHBhdGggPSBpb3MvV2ViSWNvblV0aWxp
dGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMTFFOUU3NTJGMDAz
OEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFdlYkljb25VdGlsaXRpZXMubW07IHBhdGggPSBpb3MvV2ViSWNvblV0aWxp
dGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ1MTdENzcyNkZCQ0NFNDAw
NEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1l
c3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQlGNDUxN0Q3OTI2RkJDRDM4MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVy
aW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMu
aDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRjQ1MTdEN0EyNkZCQ0Qz
ODAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUY0NTFDMTAwMjcw
M0Q4NTMwMDJCQTAzQiAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0NjYwQkMxMjVERUYwODEwMEU4NjU5OCAvKiBQYXN0ZWJvYXJkQWNj
ZXNzSW50ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTA1MTYyNjgyN0EwOTAwN0U1Q0YyIC8qIFF1
aWNrTG9va1ByZXZpZXdBY3Rpdml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWlja0xvb2tQcmV2aWV3
QWN0aXZpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4NTcwQTIyNjQ0QkVD
NDAwQzA1RjcxIC8qIFRpbWVvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGltZW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDhCQjhERDI2Rjk2MzVE
MDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNDhCQjhERTI2Rjk2MzVEMDAxQzFDNDAgLyogUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0OEJCOERGMjZG
OTYzOTIwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjQ4QkI4RTAyNkY5NjM5MjAwMUMxQzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OEQyQTg0MjE1ODNBMDIwMEM2NzUyQiAv
KiBBcHBLaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0OTZBNDJGMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVy
YWN0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmg7
IHBhdGggPSBpb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0OTZBNDMwMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0
aW9uU3RhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBEcmFnRHJvcEludGVyYWN0aW9uU3Rh
dGUubW07IHBhdGggPSBpb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtOTA3Myw2ICs5MDg0LDggQEAKIAkJCQk3MjdBN0YzNjI0MDc4
OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggKi8sCiAJ
CQkJNzI3QTdGMzgyNDA3ODhGMDAwNEQyOTMxIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCYWNrZW5kLmggKi8sCiAJCQkJNzIyNzgwMEIyNDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRmb3Jt
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICovLAorCQkJCUY0OEJCOERFMjZGOTYzNUQwMDFDMUM0
MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwICovLAorCQkJCUY0OEJCOERE
MjZGOTYzNUQwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCAqLywK
IAkJCQk3QjkwNDE2NTI1NEFGREVBMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5jcHAgKi8sCiAJCQkJN0I5MDQxNjYyNTRBRkRFQjAwNkVFQjhDIC8qIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkuaCAqLywKIAkJCQk3QjkwNDE2NzI1NEFGRTE3MDA2RUVCOEMgLyog
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5tZXNzYWdlcy5pbiAqLywKQEAgLTkwOTUsNiAr
OTEwOCw5IEBACiAJCQkJRjQwOTRDQkIyNTUzMDRBRjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVh
ZGVySGFuZGxlLmggKi8sCiAJCQkJNTVBRDA5NDMyNDA4QTBFNjAwREU0RDJGIC8qIFBsYXRmb3Jt
UmVtb3RlSW1hZ2VCdWZmZXIuaCAqLywKIAkJCQkxQ0M1NEFGRDI3MEY5NjU0MDA1QkY4QkUgLyog
UXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggKi8sCisJCQkJRjQ4QkI4RTAy
NkY5NjM5MjAwMUMxQzQwIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwICovLAorCQkJ
CUY0OEJCOERGMjZGOTYzOTIwMDFDMUM0MCAvKiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmgg
Ki8sCisJCQkJRjQ1MUMxMDAyNzAzRDg1MzAwMkJBMDNCIC8qIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJN0I5MDQxNjkyNTRBRkVBNzAwNkVFQjhDIC8qIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCAqLywKIAkJCQk3QjkwNDE2QTI1NEFGRUE3MDA2RUVC
OEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaCAqLywKIAkJCQk3QjkwNDE2ODI1NEFGRUE3
MDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4gKi8sCkBAIC0x
MTQ2Nyw2ICsxMTQ4Myw5IEBACiAJCQkJQ0Q4MjUyREEyNUQ0OTE1NDAwODYyRkQ4IC8qIFJlbW90
ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlD
RDgyNTJEOTI1RDQ5MTU0MDA4NjJGRDggLyogUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJv
eHlNZXNzYWdlcy5oICovLAogCQkJCUNEODI1MkQ4MjVENDkxNTMwMDg2MkZEOCAvKiBSZW1vdGVS
ZW1vdGVDb21tYW5kTGlzdGVuZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCUY0NTE3
RDc3MjZGQkNDRTQwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQlGNDUxN0Q3QTI2RkJDRDM4MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVy
aW5nQmFja2VuZE1lc3NhZ2VzLmggKi8sCisJCQkJRjQ1MTdENzkyNkZCQ0QzODAwNEM4NDc1IC8q
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkwRjU5NDdB
NTE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTBGNTk0N0E2MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NkIyNTYyMDIxRTAwRkY3
QjZGIC8qIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAg
LTEyNTYyLDYgKzEyNTgxLDcgQEAKIAkJCQlDREFDMjBCNDIzRkI1OEYyMDAyMURFRTMgLyogUmVt
b3RlQ0RNSW5zdGFuY2VQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQ0EyM0ZDMkY3
NTAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0RBQzIwQzkyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0NTFDMEZFMjcwM0IyNjMwMDJCQTAzQiAv
KiBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
NDdCNTZEMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkRERjczMTUxOEU5NTA2MDAwNEY1QTY2IC8qIFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCMTZBRUExNjRCM0E4
ODAwMjkwRDYyIC8qIFJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAt
MTI1OTAsNiArMTI2MTAsOCBAQAogCQkJCTFBQzEzMzg2MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1v
dGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjA4OEEwMDI2
MUZBOEJDMDBFMjUwMEQgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDYwODhBMDEyNjFGQThDNDAwRTI1MDBEIC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRD
cmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0NTE3RDdDMjZGQkNEMzkw
MDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCUY0NTE3RDdCMjZGQkNEMzkwMDRDODQ3NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDE0Q0UyRDI2OURFNkVBMDBC
RDIxNkEgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjU5NDc5MDE4N0IzQjNBMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E4MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzU3OWFmNDll
M2U5ZWRmZjFjYzkxZTA1ZDIzYmMyODJmZGRmOGYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHkuY3BwCkBAIC0wLDAgKzEsNDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3REcmF3
aW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFn
ZUJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW5kZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9h
dFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERy
YXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0ds
eXBocykKKyAgICA6IERpc3BsYXlMaXN0OjpSZWNvcmRlcih7IH0sIGluaXRpYWxDbGlwLCBpbml0
aWFsQ1RNLCBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCisgICAgLCBtX2Rlc3RpbmF0aW9uQnVmZmVy
SWRlbnRpZmllcihpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkKKyAg
ICAsIG1faW1hZ2VCdWZmZXIobWFrZVdlYWtQdHIoaW1hZ2VCdWZmZXIpKQorICAgICwgbV9yZW5k
ZXJpbmdCYWNrZW5kKG1ha2VXZWFrUHRyKHJlbmRlcmluZ0JhY2tlbmQpKQoreworfQorCitSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eShSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkmIHBhcmVudCwgY29uc3QgRmxvYXRSZWN0
JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNKQorICAgIDog
RGlzcGxheUxpc3Q6OlJlY29yZGVyKHBhcmVudCwgeyB9LCBpbml0aWFsQ2xpcCwgaW5pdGlhbENU
TSkKKyAgICAsIG1fZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKHBhcmVudC5tX2Rlc3RpbmF0
aW9uQnVmZmVySWRlbnRpZmllcikKKyAgICAsIG1faW1hZ2VCdWZmZXIocGFyZW50Lm1faW1hZ2VC
dWZmZXIpCisgICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQocGFyZW50Lm1fcmVuZGVyaW5nQmFja2Vu
ZCkKK3sKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmdldFBpeGVs
QnVmZmVyKGNvbnN0IFBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJl
Y3QmIHNvdXJjZVJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6R2V0UGl4ZWxCdWZmZXIoc291cmNlUmVjdCwgb3V0cHV0Rm9ybWF0KSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpwdXRQaXhlbEJ1ZmZlcihjb25z
dCBQaXhlbEJ1ZmZlciYgcGl4ZWxCdWZmZXIsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEludFBvaW50JiBkZXN0UG9pbnQsIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkK
K3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpQdXRQaXhl
bEJ1ZmZlcihzcmNSZWN0LCBkZXN0UG9pbnQsIHBpeGVsQnVmZmVyLCBkZXN0Rm9ybWF0KSk7Cit9
CisKK2Jvb2wgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpjYW5EcmF3SW1hZ2VCdWZm
ZXIoY29uc3QgSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBjb25zdAoreworICAgIHJldHVybiBt
X3JlbmRlcmluZ0JhY2tlbmQgJiYgbV9yZW5kZXJpbmdCYWNrZW5kLT5pc0NhY2hlZChpbWFnZUJ1
ZmZlcik7Cit9CisKK1JlbmRlcmluZ01vZGUgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZW5kZXJpbmdNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbWFnZUJ1ZmZlciA/IG1f
aW1hZ2VCdWZmZXItPnJlbmRlcmluZ01vZGUoKSA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0
ZWQ7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTYXZl
KCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTYXZl
KCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUmVz
dG9yZSgpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
UmVzdG9yZSgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZFRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlRyYW5zbGF0ZSh4LCB5KSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRSb3RhdGUoZmxvYXQgYW5nbGUpCit7
CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Um90YXRlKGFu
Z2xlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRT
Y2FsZShjb25zdCBGbG9hdFNpemUmIHNjYWxlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlNjYWxlKHNjYWxlKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiB0cmFuc2Zvcm0pCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6U2V0Q1RNKHRyYW5zZm9ybSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkQ29uY2F0ZW5hdGVDVE0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0
cmFuc2Zvcm0pCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6Q29uY2F0ZW5hdGVDVE0odHJhbnNmb3JtKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRJbmxpbmVGaWxsQ29sb3IoU1JHQkE8dWludDhfdD4g
Y29sb3IpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6
U2V0SW5saW5lRmlsbENvbG9yKERpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsQ29sb3IgeyBjb2xv
ciB9KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRT
ZXRJbmxpbmVTdHJva2VDb2xvcihTUkdCQTx1aW50OF90PiBjb2xvcikKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTZXRJbmxpbmVTdHJva2VDb2xvcihE
aXNwbGF5TGlzdDo6U2V0SW5saW5lU3Ryb2tlQ29sb3IgeyBjb2xvciB9KSk7Cit9CisKK3ZvaWQg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTZXRTdHJva2VUaGlja25lc3Mo
ZmxvYXQgdGhpY2tuZXNzKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OlNldFN0cm9rZVRoaWNrbmVzcyh0aGlja25lc3MpKTsKK30KKwordm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldFN0YXRlKGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxh
Z3MgZmxhZ3MpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6U2V0U3RhdGUoRGlzcGxheUxpc3Q6OlNldFN0YXRlIHsgc3RhdGUsIGZsYWdzIH0pKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFNldExpbmVDYXAo
TGluZUNhcCBsaW5lQ2FwKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXI6OlNldExpbmVDYXAobGluZUNhcCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0TGluZURhc2goY29uc3QgRGFzaEFycmF5JiBhcnJh
eSwgZmxvYXQgZGFzaE9mZnNldCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpTZXRMaW5lRGFzaChEaXNwbGF5TGlzdDo6U2V0TGluZURhc2ggeyBhcnJh
eSwgZGFzaE9mZnNldCB9KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclBy
b3h5OjpyZWNvcmRTZXRMaW5lSm9pbihMaW5lSm9pbiBsaW5lSm9pbikKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTZXRMaW5lSm9pbihsaW5lSm9pbikp
OworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkU2V0TWl0
ZXJMaW1pdChmbG9hdCBsaW1pdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpTZXRNaXRlckxpbWl0KGxpbWl0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGVhclNoYWRvdygpCit7CisgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Q2xlYXJTaGFkb3coKSk7Cit9CisK
K3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRDbGlwKGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyOjpDbGlwKHJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZENsaXBPdXQoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkNsaXBPdXQocmVjdCkpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQ2xpcFRvSW1hZ2VC
dWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Q2xpcFRvSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyLCBkZXN0aW5hdGlvblJlY3QpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHk6OnJlY29yZENsaXBPdXRUb1BhdGgoY29uc3QgUGF0aCYgcGF0aCkKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpDbGlwT3V0VG9Q
YXRoKHBhdGgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJl
Y29yZENsaXBQYXRoKGNvbnN0IFBhdGgmIHBhdGgsIFdpbmRSdWxlIHJ1bGUpCit7CisgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Q2xpcFBhdGgocGF0aCwgcnVs
ZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkQmVn
aW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgRGVz
dGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMoZGVzdGlu
YXRpb24sIGNvbG9yU3BhY2UpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRl
c3RpbmF0aW9uKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkVuZENsaXBUb0RyYXdpbmdDb21tYW5kcyhkZXN0aW5hdGlvbikpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0dseXBocyhjb25zdCBGb250
JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMsIGNvbnN0IEdseXBoQnVmZmVy
QWR2YW5jZSogYWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBsb2Nh
bEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgbW9kZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3R2x5cGhzKERpc3BsYXlMaXN0OjpEcmF3R2x5
cGhzIHsgZm9udCwgZ2x5cGhzLCBhZHZhbmNlcywgY291bnQsIGxvY2FsQW5jaG9yLCBtb2RlIH0p
KTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdJ
bWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZl
cklkZW50aWZpZXIsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3TmF0aXZlSW1hZ2UoUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRTaXplJiBp
bWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RHJhd05hdGl2ZUltYWdlKGltYWdl
SWRlbnRpZmllciwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucykpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd1BhdHRlcm4o
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3QgRmxvYXRT
aXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpEcmF3UGF0dGVybihpbWFnZUlkZW50aWZpZXIsIGltYWdlU2l6ZSwgZGVz
dFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRCZWdpblRyYW5z
cGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlcjo6QmVnaW5UcmFuc3BhcmVuY3lMYXllcihvcGFjaXR5KSk7Cit9
CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRFbmRUcmFuc3Bh
cmVuY3lMYXllcigpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6RW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZs
b2F0IHdpZHRoKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkRyYXdSZWN0KHJlY3QsIHdpZHRoKSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5OjpyZWNvcmREcmF3TGluZShjb25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNv
bnN0IEZsb2F0UG9pbnQmIHBvaW50MikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyOjpEcmF3TGluZShwb2ludDEsIHBvaW50MikpOworfQorCit2b2lkIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0xpbmVzRm9yVGV4dChjb25z
dCBGbG9hdFBvaW50JiBibG9ja0xvY2F0aW9uLCBjb25zdCBGbG9hdFNpemUmIGxvY2FsQW5jaG9y
LCBmbG9hdCB0aGlja25lc3MsIGNvbnN0IERhc2hBcnJheSYgd2lkdGhzLCBib29sIHByaW50aW5n
LCBib29sIGRvdWJsZUxpbmVzKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXI6OkRyYXdMaW5lc0ZvclRleHQoRGlzcGxheUxpc3Q6OkRyYXdMaW5lc0ZvclRl
eHQgeyBibG9ja0xvY2F0aW9uLCBsb2NhbEFuY2hvciwgdGhpY2tuZXNzLCB3aWR0aHMsIHByaW50
aW5nLCBkb3VibGVMaW5lcyB9KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmREcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCwgY29uc3QgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUmIHN0eWxlKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkRyYXdEb3RzRm9yRG9jdW1lbnRN
YXJrZXIocmVjdCwgc3R5bGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
UHJveHk6OnJlY29yZERyYXdFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3RWxsaXBzZShyZWN0
KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmREcmF3
UGF0aChjb25zdCBQYXRoJiBwYXRoKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OkRyYXdQYXRoKHBhdGgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZERyYXdGb2N1c1JpbmdQYXRoKGNvbnN0IFBhdGgmIHBh
dGgsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpEcmF3Rm9jdXNSaW5n
UGF0aChwYXRoLCB3aWR0aCwgb2Zmc2V0LCBjb2xvcikpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRHJhd0ZvY3VzUmluZ1JlY3RzKGNvbnN0IFZlY3Rv
cjxGbG9hdFJlY3Q+JiByZWN0cywgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgQ29s
b3ImIGNvbG9yKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkRyYXdGb2N1c1JpbmdSZWN0cyhyZWN0cywgd2lkdGgsIG9mZnNldCwgY29sb3IpKTsKK30K
Kwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyOjpGaWxsUmVjdChyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxsUmVjdFdpdGhDb2xvcihjb25zdCBGbG9hdFJlY3Qm
IHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyOjpGaWxsUmVjdFdpdGhDb2xvcihyZWN0LCBjb2xvcikpOworfQor
Cit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFJlY3RXaXRo
R3JhZGllbnQoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBHcmFkaWVudCYgZ3JhZGllbnQpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RmlsbFJlY3RXaXRo
R3JhZGllbnQoRGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRpZW50IHsgcmVjdCwgZ3JhZGll
bnQgfSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
RmlsbENvbXBvc2l0ZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNv
bG9yLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIG1vZGUpCit7CisgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RmlsbENvbXBvc2l0ZWRSZWN0KHJl
Y3QsIGNvbG9yLCBvcCwgbW9kZSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eTo6cmVjb3JkRmlsbFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJv
dW5kZWRSZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIEJsZW5kTW9kZSBtb2RlKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxSb3VuZGVkUmVjdChy
b3VuZGVkUmVjdCwgY29sb3IsIG1vZGUpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHk6OnJlY29yZEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QsIGNvbnN0IENvbG9y
JiBjb2xvcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVy
OjpGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShyZWN0LCByb3VuZGVkUmVjdCwgY29sb3IpKTsKK30K
KworI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0
UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbExpbmUoY29uc3QgTGluZURhdGEmIGRhdGEpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6RmlsbExpbmUoZGF0
YSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmls
bEFyYyhjb25zdCBBcmNEYXRhJiBkYXRhKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OkZpbGxBcmMoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkRmlsbFF1YWRDdXJ2ZShjb25zdCBRdWFkQ3VydmVE
YXRhJiBkYXRhKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXI6OkZpbGxRdWFkQ3VydmUoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXJQcm94eTo6cmVjb3JkRmlsbEJlemllckN1cnZlKGNvbnN0IEJlemllckN1cnZlRGF0YSYg
ZGF0YSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpG
aWxsQmV6aWVyQ3VydmUoZGF0YSkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOTElORV9QQVRI
X0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRGaWxs
UGF0aChjb25zdCBQYXRoJiBwYXRoKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXI6OkZpbGxQYXRoKHBhdGgpKTsKK30KKwordm9pZCBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEZpbGxFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpGaWxs
RWxsaXBzZShyZWN0KSk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
OjpyZWNvcmRHZXRQaXhlbEJ1ZmZlcihQaXhlbEJ1ZmZlckZvcm1hdCBvdXRwdXRGb3JtYXQsIGNv
bnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlcjo6R2V0UGl4ZWxCdWZmZXIocmVjdCwgb3V0cHV0Rm9ybWF0KSk7Cit9CisKK3Zv
aWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRQdXRQaXhlbEJ1ZmZlcihj
b25zdCBQaXhlbEJ1ZmZlciYgYnVmZmVyLCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBJ
bnRQb2ludCYgZGVzdFBvaW50LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIHByZW11bHRpcGxpY2F0
aW9uKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlB1
dFBpeGVsQnVmZmVyKHNyY1JlY3QsIGRlc3RQb2ludCwgYnVmZmVyLCBwcmVtdWx0aXBsaWNhdGlv
bikpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3JkUGFp
bnRGcmFtZUZvck1lZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dGluYXRpb24pCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
cjo6UGFpbnRGcmFtZUZvck1lZGlhKHBsYXllci5pZGVudGlmaWVyKCksIGRlc3RpbmF0aW9uKSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgd2lkdGgpCit7CisgICAgc2VuZChNZXNz
YWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U3Ryb2tlUmVjdChyZWN0LCB3aWR0aCkp
OworfQorCisjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VMaW5lKGNvbnN0IExpbmVEYXRhJiBkYXRh
KQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OlN0cm9r
ZUxpbmUoZGF0YSkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6
cmVjb3JkU3Ryb2tlQXJjKGNvbnN0IEFyY0RhdGEmIGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U3Ryb2tlQXJjKGRhdGEpKTsKK30KKwordm9p
ZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZFN0cm9rZVF1YWRDdXJ2ZShj
b25zdCBRdWFkQ3VydmVEYXRhJiBkYXRhKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OlN0cm9rZVF1YWRDdXJ2ZShkYXRhKSk7Cit9CisKK3ZvaWQgUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VCZXppZXJDdXJ2ZShjb25z
dCBCZXppZXJDdXJ2ZURhdGEmIGRhdGEpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlcjo6U3Ryb2tlQmV6aWVyQ3VydmUoZGF0YSkpOworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpyZWNvcmRTdHJva2VQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCit7CisgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6U3Ryb2tlUGF0aChwYXRoKSk7
Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNvcmRTdHJva2VF
bGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpTdHJva2VFbGxpcHNlKHJlY3QpKTsKK30KKwordm9pZCBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZENsZWFyUmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlcjo6Q2xlYXJSZWN0KHJlY3QpKTsKK30KKworI2lmIFVTRShDRykKKwordm9pZCBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEFwcGx5U3Ryb2tlUGF0dGVybigpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6QXBwbHlTdHJva2VQ
YXR0ZXJuKCkpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVj
b3JkQXBwbHlGaWxsUGF0dGVybigpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6QXBwbHlGaWxsUGF0dGVybigpKTsKK30KKworI2VuZGlmIC8vIFVTRShD
RykKKwordm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlY29yZEFwcGx5RGV2
aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6QXBwbHlEZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZh
Y3RvcikpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6cmVjb3Jk
UmVzb3VyY2VVc2UoTmF0aXZlSW1hZ2UmIGltYWdlKQoreworICAgIGlmIChVTkxJS0VMWSghbV9y
ZW5kZXJpbmdCYWNrZW5kKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVuZGVyaW5nQmFja2VuZC0+cmVjb3JkTmF0aXZl
SW1hZ2VVc2UoaW1hZ2UpOworfQorCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eTo6cmVjb3JkUmVzb3VyY2VVc2UoRm9udCYgZm9udCkKK3sKKyAgICBpZiAoVU5MSUtFTFkoIW1f
cmVuZGVyaW5nQmFja2VuZCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnJlY29yZEZvbnRV
c2UoZm9udCk7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpyZWNv
cmRSZXNvdXJjZVVzZShJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIpCit7CisgICAgaWYgKFVOTElL
RUxZKCFtX3JlbmRlcmluZ0JhY2tlbmQpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5yZWNv
cmRJbWFnZUJ1ZmZlclVzZShpbWFnZUJ1ZmZlcik7Cit9CisKK3ZvaWQgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5OjpmbHVzaENvbnRleHQoR3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlcjo6Rmx1c2hDb250ZXh0KGlkZW50aWZpZXIpKTsKK30KKworc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzQ29udGV4dD4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpjcmVhdGVO
ZXN0ZWRDb250ZXh0KGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgaW5pdGlhbENUTSkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZW1vdGVEaXNw
bGF5TGlzdFJlY29yZGVyUHJveHk+KCp0aGlzLCBpbml0aWFsQ2xpcCwgaW5pdGlhbENUTSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBlODQ3ZWZmYTU4NmZlYjEyM2NlZDkzM2RiNGE3MmIxZWUzNzk1NzIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlM
aXN0UmVjb3JkZXJQcm94eS5oCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RyYXdHbHlwaHNSZWNvcmRlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsK
KworY2xhc3MgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5IDogcHVibGljIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZWNvcmRlciB7CitwdWJsaWM6CisgICAgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5KFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpEZWNv
bnN0cnVjdERyYXdHbHlwaHMgPSBXZWJDb3JlOjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3Ry
dWN0RHJhd0dseXBoczo6WWVzKTsKKyAgICBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHko
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5JiBwYXJlbnQsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYgaW5p
dGlhbENUTSk7CisKKyAgICB+UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KCkgPSBkZWZh
dWx0OworCisgICAgdm9pZCByZXNldE5lZWRzRmx1c2goKSB7IG1fbmVlZHNGbHVzaCA9IGZhbHNl
OyB9CisgICAgYm9vbCBuZWVkc0ZsdXNoKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0ZsdXNoOyB9
CisKKyAgICB2b2lkIGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9y
bWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJjZVJlY3QpIGZp
bmFsOworICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXIm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQp
IGZpbmFsOworICAgIHZvaWQgZmx1c2hDb250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEZs
dXNoSWRlbnRpZmllcikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KKyAgICB2b2lkIHNlbmQoVCYmIG1lc3NhZ2UpCisgICAgeworICAgICAgICBtX25lZWRzRmx1
c2ggPSB0cnVlOworICAgICAgICBtX3JlbmRlcmluZ0JhY2tlbmQtPnNlbmRUb1N0cmVhbShXVEZN
b3ZlKG1lc3NhZ2UpLCBtX2Rlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcik7CisgICAgfQorCisg
ICAgZnJpZW5kIGNsYXNzIERyYXdHbHlwaHNSZWNvcmRlcjsKKworICAgIGJvb2wgY2FuRHJhd0lt
YWdlQnVmZmVyKGNvbnN0IEltYWdlQnVmZmVyJikgY29uc3QgZmluYWw7CisgICAgUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHJlY29yZFNhdmUo
KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFJlc3RvcmUoKSBmaW5hbDsKKyAgICB2b2lkIHJlY29y
ZFRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFJvdGF0
ZShmbG9hdCBhbmdsZSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRTY2FsZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFNldENUTShjb25zdCBXZWJDb3Jl
OjpBZmZpbmVUcmFuc2Zvcm0mKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZENvbmNhdGVuYXRlQ1RN
KGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3Jk
U2V0SW5saW5lRmlsbENvbG9yKFdlYkNvcmU6OlNSR0JBPHVpbnQ4X3Q+KSBmaW5hbDsKKyAgICB2
b2lkIHJlY29yZFNldElubGluZVN0cm9rZUNvbG9yKFdlYkNvcmU6OlNSR0JBPHVpbnQ4X3Q+KSBm
aW5hbDsKKyAgICB2b2lkIHJlY29yZFNldFN0cm9rZVRoaWNrbmVzcyhmbG9hdCkgZmluYWw7Cisg
ICAgdm9pZCByZWNvcmRTZXRTdGF0ZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRTdGF0
ZSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0ZUNoYW5nZUZsYWdzKSBmaW5h
bDsKKyAgICB2b2lkIHJlY29yZFNldExpbmVDYXAoV2ViQ29yZTo6TGluZUNhcCkgZmluYWw7Cisg
ICAgdm9pZCByZWNvcmRTZXRMaW5lRGFzaChjb25zdCBXZWJDb3JlOjpEYXNoQXJyYXkmLCBmbG9h
dCBkYXNoT2Zmc2V0KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFNldExpbmVKb2luKFdlYkNvcmU6
OkxpbmVKb2luKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFNldE1pdGVyTGltaXQoZmxvYXQpIGZp
bmFsOworICAgIHZvaWQgcmVjb3JkQ2xlYXJTaGFkb3coKSBmaW5hbDsKKyAgICB2b2lkIHJlY29y
ZENsaXAoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCByZWNvcmRD
bGlwT3V0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcmVjb3Jk
Q2xpcFRvSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlt
YWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlv
blJlY3QpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQ2xpcE91dFRvUGF0aChjb25zdCBXZWJDb3Jl
OjpQYXRoJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRDbGlwUGF0aChjb25zdCBXZWJDb3JlOjpQ
YXRoJiwgV2ViQ29yZTo6V2luZFJ1bGUpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkQmVnaW5DbGlw
VG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
RGVzdGluYXRpb25Db2xvclNwYWNlKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEVuZENsaXBUb0Ry
YXdpbmdDb21tYW5kcyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RpbmF0aW9uKSBmaW5h
bDsKKyAgICB2b2lkIHJlY29yZERyYXdHbHlwaHMoY29uc3QgV2ViQ29yZTo6Rm9udCYsIGNvbnN0
IFdlYkNvcmU6OkdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBXZWJDb3JlOjpHbHlwaEJ1ZmZlckFk
dmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYWxB
bmNob3IsIFdlYkNvcmU6OkZvbnRTbW9vdGhpbmdNb2RlKSBmaW5hbDsKKyAgICB2b2lkIHJlY29y
ZERyYXdJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1h
Z2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zJikgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3TmF0aXZlSW1hZ2UoV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERyYXdQYXR0
ZXJuKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkFmZmlu
ZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRp
b25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRCZWdpblRyYW5zcGFyZW5jeUxheWVy
KGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEVuZFRyYW5zcGFyZW5jeUxheWVyKCkgZmlu
YWw7CisgICAgdm9pZCByZWNvcmREcmF3UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBm
bG9hdCkgZmluYWw7CisgICAgdm9pZCByZWNvcmREcmF3TGluZShjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBwb2ludDEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvaW50MikgZmluYWw7
CisgICAgdm9pZCByZWNvcmREcmF3TGluZXNGb3JUZXh0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIGJsb2NrTG9jYXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9jYWxBbmNob3Is
IGZsb2F0IHRoaWNrbmVzcywgY29uc3QgV2ViQ29yZTo6RGFzaEFycmF5JiB3aWR0aHMsIGJvb2wg
cHJpbnRpbmcsIGJvb2wgZG91YmxlTGluZXMpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJhd0Rv
dHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJD
b3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRHJh
d0VsbGlwc2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCByZWNv
cmREcmF3UGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRE
cmF3Rm9jdXNSaW5nUGF0aChjb25zdCBXZWJDb3JlOjpQYXRoJiwgZmxvYXQgd2lkdGgsIGZsb2F0
IG9mZnNldCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZERy
YXdGb2N1c1JpbmdSZWN0cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYsIGZsb2F0
IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAg
dm9pZCByZWNvcmRGaWxsUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlY29yZEZpbGxSZWN0V2l0aENvbG9yKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxsUmVjdFdp
dGhHcmFkaWVudChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBXZWJDb3JlOjpHcmFkaWVudCYp
IGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbENvbXBvc2l0ZWRSZWN0KGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgV2ViQ29yZTo6Q29tcG9zaXRlT3Bl
cmF0b3IsIFdlYkNvcmU6OkJsZW5kTW9kZSkgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxsUm91
bmRlZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdCYsIGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiwgV2ViQ29yZTo6QmxlbmRNb2RlKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOworI2lm
IEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorICAgIHZvaWQgcmVjb3JkRmlsbExpbmUoY29uc3Qg
V2ViQ29yZTo6TGluZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEZpbGxBcmMoY29uc3Qg
V2ViQ29yZTo6QXJjRGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkRmlsbFF1YWRDdXJ2ZShj
b25zdCBXZWJDb3JlOjpRdWFkQ3VydmVEYXRhJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRGaWxs
QmV6aWVyQ3VydmUoY29uc3QgV2ViQ29yZTo6QmV6aWVyQ3VydmVEYXRhJikgZmluYWw7CisjZW5k
aWYKKyAgICB2b2lkIHJlY29yZEZpbGxQYXRoKGNvbnN0IFdlYkNvcmU6OlBhdGgmKSBmaW5hbDsK
KyAgICB2b2lkIHJlY29yZEZpbGxFbGxpcHNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZp
bmFsOworICAgIHZvaWQgcmVjb3JkR2V0UGl4ZWxCdWZmZXIoV2ViQ29yZTo6UGl4ZWxCdWZmZXJG
b3JtYXQgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CisgICAg
dm9pZCByZWNvcmRQdXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBk
ZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24pIGZpbmFsOworICAgIHZv
aWQgcmVjb3JkUGFpbnRGcmFtZUZvck1lZGlhKE1lZGlhUGxheWVyJiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBkZXN0aW5hdGlvbikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTdHJva2VSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0KSBmaW5hbDsKKyNpZiBFTkFCTEUoSU5M
SU5FX1BBVEhfREFUQSkKKyAgICB2b2lkIHJlY29yZFN0cm9rZUxpbmUoY29uc3QgV2ViQ29yZTo6
TGluZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZFN0cm9rZUFyYyhjb25zdCBXZWJDb3Jl
OjpBcmNEYXRhJikgZmluYWw7CisgICAgdm9pZCByZWNvcmRTdHJva2VRdWFkQ3VydmUoY29uc3Qg
V2ViQ29yZTo6UXVhZEN1cnZlRGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVjb3JkU3Ryb2tlQmV6
aWVyQ3VydmUoY29uc3QgV2ViQ29yZTo6QmV6aWVyQ3VydmVEYXRhJikgZmluYWw7CisjZW5kaWYK
KyAgICB2b2lkIHJlY29yZFN0cm9rZVBhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYpIGZpbmFsOwor
ICAgIHZvaWQgcmVjb3JkU3Ryb2tlRWxsaXBzZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBm
aW5hbDsKKyAgICB2b2lkIHJlY29yZENsZWFyUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KSBmaW5hbDsKKyNpZiBVU0UoQ0cpCisgICAgdm9pZCByZWNvcmRBcHBseVN0cm9rZVBhdHRlcm4o
KSBmaW5hbDsKKyAgICB2b2lkIHJlY29yZEFwcGx5RmlsbFBhdHRlcm4oKSBmaW5hbDsKKyNlbmRp
ZgorICAgIHZvaWQgcmVjb3JkQXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCkgZmluYWw7CisK
KyAgICB2b2lkIHJlY29yZFJlc291cmNlVXNlKFdlYkNvcmU6Ok5hdGl2ZUltYWdlJikgZmluYWw7
CisgICAgdm9pZCByZWNvcmRSZXNvdXJjZVVzZShXZWJDb3JlOjpGb250JikgZmluYWw7CisgICAg
dm9pZCByZWNvcmRSZXNvdXJjZVVzZShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGZpbmFsOworCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gY3JlYXRlTmVzdGVk
Q29udGV4dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBXZWJD
b3JlOjpBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pIGZpbmFsOworCisgICAgV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVy
OworICAgIFdlYWtQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1faW1hZ2VCdWZmZXI7CisgICAg
V2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IG1fcmVuZGVyaW5nQmFja2VuZDsK
KyAgICBib29sIG1fbmVlZHNGbHVzaCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCA3NzJmYmNhNjhmYTdmMDMxYWQwNDIwMWU5ZmUw
MTZkZWQ3YjU3MTliLi5iZjQ5YTgyN2QyMDI4MjRhNDdiMGQ2NTY5NmM2Y2EyYzdkOGZiOTFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC00NDcsNiArNDQ3
LDMwIEBAIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6ZW5zdXJlQmFja2VuZENyZWF0ZWQoKQogICAgIHJldHVybiByZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcigpOwogfQogCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVj
b3JkTmF0aXZlSW1hZ2VVc2UoTmF0aXZlSW1hZ2UmIGltYWdlKQoreworICAgIG1fcmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LnJlY29yZE5hdGl2ZUltYWdlVXNlKGltYWdlKTsKK30KKwordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlY29yZEZvbnRVc2UoRm9udCYgZm9udCkKK3sK
KyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5yZWNvcmRGb250VXNlKGZvbnQpOworfQor
Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVjb3JkSW1hZ2VCdWZmZXJVc2Uo
SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQoreworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LnJlY29yZEltYWdlQnVmZmVyVXNlKGltYWdlQnVmZmVyKTsKK30KKworYm9vbCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OmlzQ2FjaGVkKGNvbnN0IEltYWdlQnVmZmVyJiBpbWFnZUJ1
ZmZlcikgY29uc3QKK3sKKyAgICBpZiAoYXV0byBjYWNoZWRJbWFnZUJ1ZmZlciA9IG1fcmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmNhY2hlZEltYWdlQnVmZmVyKGltYWdlQnVmZmVyLnJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpKSkgeworICAgICAgICBBU1NFUlQoY2FjaGVkSW1hZ2VCdWZm
ZXIgPT0gJmltYWdlQnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJl
dHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRl
eCAyMzk0ZmY1YWRjNGQ3ODNiOGFmZDJkYzEzMjFmMmY1NDc1YTIxMjg1Li5hYTAyM2RjZjJkYjVh
MzNhYWIxM2Y2OWJhMDE2MjkyZDMwNWFmNzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVzdHJveUdl
dFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5KCk7CiAKICAgICB2b2lkIGNyZWF0ZVJlbW90ZUltYWdl
QnVmZmVyKFdlYkNvcmU6OkltYWdlQnVmZmVyJik7CisgICAgYm9vbCBpc0NhY2hlZChjb25zdCBX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OwogICAgICAgICAKICAgICAvLyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIuCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0IG92ZXJyaWRlOwpAQCAtMTI0LDYgKzEyNSwyMiBAQCBwdWJsaWM6CiAKICAgICBib29s
IGlzR1BVUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoKSBjb25zdCB7IHJldHVybiAhbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbjsgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4K
KyAgICB2b2lkIHNlbmRUb1N0cmVhbShUJiYgbWVzc2FnZSwgT2JqZWN0SWRlbnRpZmllcjxVPiBp
ZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQu
CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIHNlbmRUb1N0cmVh
bShUJiYgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIHNlbmRUb1N0cmVhbShXVEZNb3ZlKG1lc3Nh
Z2UpLCByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKKyAgICB9CisKKyAgICB2b2lkIHJl
Y29yZE5hdGl2ZUltYWdlVXNlKFdlYkNvcmU6Ok5hdGl2ZUltYWdlJik7CisgICAgdm9pZCByZWNv
cmRGb250VXNlKFdlYkNvcmU6OkZvbnQmKTsKKyAgICB2b2lkIHJlY29yZEltYWdlQnVmZmVyVXNl
KFdlYkNvcmU6OkltYWdlQnVmZmVyJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5KFdlYlBhZ2UmKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>