<?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>228924</bug_id>
          
          <creation_ts>2021-08-09 14:02:26 -0700</creation_ts>
          <short_desc>Add Cross-Origin-Opener-Policy support for Blob URLs</short_desc>
          <delta_ts>2021-08-10 19:59:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>228923</dependson>
          <blocked>228755</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>calvaris</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1782962</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-09 14:02:26 -0700</bug_when>
    <thetext>Add Cross-Origin-Opener-Policy support for Blob URLs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783208</commentid>
    <comment_count>1</comment_count>
      <attachid>435270</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-10 10:32:32 -0700</bug_when>
    <thetext>Created attachment 435270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783270</commentid>
    <comment_count>2</comment_count>
      <attachid>435284</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-10 13:37:55 -0700</bug_when>
    <thetext>Created attachment 435284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783343</commentid>
    <comment_count>3</comment_count>
      <attachid>435284</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-10 15:57:01 -0700</bug_when>
    <thetext>Comment on attachment 435284
Patch

Why is it ok to have { } in registerBlobURLOptionallyFileBacked and Blob&apos;s DeserializationContructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783346</commentid>
    <comment_count>4</comment_count>
      <attachid>435284</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-10 16:12:41 -0700</bug_when>
    <thetext>Comment on attachment 435284
Patch

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

&gt; Source/WebCore/fileapi/Blob.cpp:140
&gt; +        ThreadableBlobRegistry::registerBlobURL(nullptr, { }, m_internalURL, srcURL);

Passing an empty coop is intentional here.
Notice that we are also passing nullptr as the securityOrigin (first parameter). This is because this constructor is merely used when deserializing a Blob passed via SerializedScriptValue. Both srcURL and and m_internalURL are internal blob URLs here (no origin).

COOP gets assigned when creating a *public* blob URL from a Blob (By calling URL.createObjectURL()). Blobs themselves don&apos;t have a COOP value but there is a COOP value associated with each public Blob URL for the blob in question.

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:848
&gt; +    session-&gt;blobRegistry().registerBlobURLOptionallyFileBacked(url, srcURL, BlobDataFileReferenceWithSandboxExtension::create(fileBackedPath), contentType, { });

BlobRegistryImpl::registerBlobURL() calls BlobRegistryImpl::registerBlobURLOptionallyFileBacked() internally so I had to add a COOP parameter to BlobRegistryImpl::registerBlobURLOptionallyFileBacked(). However, ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked() is only called from the Blob deserialization constructor (discussed above) and only deals with internal blob URLs (not public ones with security origins). Also note that ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked() does not take a SecurityOrigin in parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783379</commentid>
    <comment_count>5</comment_count>
      <attachid>435284</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-10 19:58:10 -0700</bug_when>
    <thetext>Comment on attachment 435284
Patch

Clearing flags on attachment: 435284

Committed r280881 (240418@main): &lt;https://commits.webkit.org/240418@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783380</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-10 19:58:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783381</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-10 19:59:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/81773955&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435270</attachid>
            <date>2021-08-10 10:32:32 -0700</date>
            <delta_ts>2021-08-10 14:42:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228924-20210810103231.patch</filename>
            <type>text/plain</type>
            <size>43465</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJlODdlNzMwMjVkMWE5
ZGIxODRkODljYTM1ZTM1OWI0NDllZjg0Ni4uMGMzNTZhMzEzYTEyOGJjM2FjOWQ1NDNjMWQ3ZDIx
ZTdlMGZiYjgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTA4LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5IHN1cHBvcnQgZm9yIEJsb2IgVVJMcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4OTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0J3Mg
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgd2hlbiByZWdpc3RlcmluZyBhIHB1YmxpYworICAg
ICAgICBCbG9iIFVSTCBhbmQgc3RvcmUgaXQgaW4gdGhlIGJsb2IgcmVnaXN0cnkgYWxvbmdzaWRl
IHRoZSBibG9iIGRhdGEuIEFzIGEgcmVzdWx0LAorICAgICAgICB3ZSBhcmUgYWJsZSB0byBzZXJ2
aWNlIHRoZSByaWdodCBDT09QIGhlYWRlcnMgb24gdGhlIGJsb2IgcmVzcG9uc2UgbGF0ZXIgb24g
d2hlbgorICAgICAgICBkb2luZyBhIGxvYWQgb2YgdGhpcyBibG9iLiBJbiB0aGUgZnV0dXJlLCB3
ZSdsbCBwYXNzIHRoZSBjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5CisgICAgICAgIGFzIHdl
bGwsIG9uY2Ugd2Ugc3VwcG9ydCBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxp
bmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoTG9hZGVyOjpzdGFydExvYWRpbmdCbG9iVVJM
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
Ojpjcm9zc09yaWdpbk9wZW5lclBvbGljeSBjb25zdCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RlclVSTCk6CisgICAgICAgIChXZWJDb3Jl
OjpCbG9iOjpCbG9iKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlckxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIGZp
bGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwpOgorICAgICAgICAqIGZpbGVhcGkv
VGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2Up
OgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcm9zc09yaWdpbk9wZW5lclBvbGljeVRvU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5Ojppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6YWRkQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lIZWFkZXJzKToKKyAgICAg
ICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaDoKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGlj
eTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJsb2JEYXRhOjpjbG9uZSBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9CbG9iRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6QmxvYkRhdGE6OmNyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JEYXRhOjpz
ZXRDcm9zc09yaWdpbk9wZW5lclBvbGljeSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUlt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbDo6cmVnaXN0ZXJCbG9i
VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVS
TE9wdGlvbmFsbHlGaWxlQmFja2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeUltcGwuaDoKKwogMjAyMS0wOC0xMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW21hY09TXSBSRUdSRVNTSU9OKHIyNzg4NTApOiBtb2RpZnlpbmcg
YHBsYXliYWNrUmF0ZWAgdmlhIEpTIG9uIGEgVG91Y2hCYXIgbWFjIG9ubHkgc29tZXRpbWVzIHdv
cmtzIGFuZCBhbHNvIGNhdXNlcyB0aGUgYGRlZmF1bHRQbGF5YmFja1JhdGVgIHRvIGNoYW5nZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA1OTNlNWYyYTgxZmZlMWYxYWJjYTlhZDBiY2MyYWZjNTdmMjAxZDkwLi5jMmJi
Y2ZiZWIwNTlhNzQ5N2JhOThiODU0MzFhM2JjMTIwOGYyOGE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDIxLTA4LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IHN1cHBvcnQgZm9yIEJsb2IgVVJM
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4OTI0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGcm9t
VVJMKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJl
Z2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrRGF0YVRhc2tCbG9iOjpkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6
Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJl
Z2lzdHJ5UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpCbG9iUmVnaXN0cnlQcm94eTo6cmVn
aXN0ZXJCbG9iVVJMKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5
UHJveHkuaDoKKwogMjAyMS0wOC0xMCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFRocmVhZFNhbml0aXplcjogZGF0YSByYWNlIGluIFdURjo6U3RyaW5nSW1w
bDo6ZGVyZWYoKSB1bmRlciBXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRNZWRpYUFjY2Vzc2li
aWxpdHlQcmVmZXJlbmNlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYTg3Mzk0
Nzk3ZjZhZmRjYzA4NjAxMzc2NzY2NjFjNzc4MGIzMjc1Mi4uMmM4Yzg5YWE1MjBlZTFhNjZhZGY2
ZmFiOGMzOTY3ODZhYjU2ZmRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDIxLTA4LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IHN1cHBvcnQgZm9yIEJsb2Ig
VVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4
OTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisKIDIwMjEtMDgtMDkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBCbG9iIFVSTCBjaGFuZ2Vz
IGFmdGVyIGxvYWRpbmcgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBjNjkyMDIw
NjY4NWI5MzI3NmU1NTdjYjk0MjFlMWQwOWY5NTkxMDEwLi4zNzJlMWNhNzQ4YzRmOTY3ZjYyMTQ5
ZmM2YWZjOTE4YzdkZGFlZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMjEtMDgtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgc3VwcG9ydCBmb3IgQmxvYiBV
UkxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg5
MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisKIDIwMjEtMDgtMDkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBCbG9iIFVSTCBjaGFuZ2Vz
IGFmdGVyIGxvYWRpbmcgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExv
YWRlci5jcHAKaW5kZXggMzFhMGQ5NzIyNWFjNjExMGY5MDYwYzIwNmZkMmQ3ZGJlNmVhZDk1ZC4u
ZDRlOWJjZTVjYmE2ZTNhOTU4ZGFkOGU5ZWE3ODFiZGQzMjI5ZGE4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9p
ZCBGZXRjaExvYWRlcjo6c3RhcnRMb2FkaW5nQmxvYlVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBjb25zdCBVUkwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFRocmVh
ZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChjb250ZXh0LnNlY3VyaXR5T3JpZ2lu
KCksIG1fdXJsRm9yUmVhZGluZywgYmxvYlVSTCk7CisgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eTo6cmVnaXN0ZXJCbG9iVVJMKGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSwgY29udGV4dC5jcm9z
c09yaWdpbk9wZW5lclBvbGljeSgpLCBtX3VybEZvclJlYWRpbmcsIGJsb2JVUkwpOwogCiAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV91cmxGb3JSZWFkaW5nKTsKICAgICByZXF1ZXN0LnNl
dEluaXRpYXRvcklkZW50aWZpZXIoY29udGV4dC5yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA2Mzc2ZjM4ZDlkMWRlZDE1ZGE1NjNkZjg3NDNjOTBh
MzEyMDI5OTcxLi5kYTY5MzMyNDVmMzEwYzRlMDU2MDhjMmMyZTI3YTU1ODQ2ZmJhZDY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtMTM1NCw3ICsxMzU0LDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIHNlY3VyaXR5T3JpZ2lu
KCkuaXNTYW1lT3JpZ2luQXModG9wT3JpZ2luKCkpOyB9CiAgICAgYm9vbCBzaG91bGRGb3JjZU5v
T3BlbmVyQmFzZWRPbkNPT1AoKSBjb25zdDsKIAotICAgIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVy
UG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNvbnN0OworICAgIGNvbnN0IENyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgc2V0Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koY29uc3QgQ3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3kmKTsKIAogICAgIHZvaWQgd2lsbExvYWRTY3JpcHRFbGVtZW50KGNvbnN0IFVS
TCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmlu
ZGV4IDI3MGUxNjFhMmU1M2RmZGY2ZjQwYzhmMTEwNDAzYjgwZTIwNzYzODEuLmU1MTJiZWU1MTBh
YjIwZGM0MmY4OTVjNDFlNTQxMDljYzgwNzM2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJD
U1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDb21t
b25WTS5oIgorI2luY2x1ZGUgIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgiCiAjaW5jbHVkZSAi
RE9NVGltZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRhYmFzZUNv
bnRleHQuaCIKQEAgLTMzNSw2ICszMzYsMTIgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpzdG9wQWN0aXZlRE9NT2JqZWN0cygpCiAgICAgfSk7CiB9CiAKK2NvbnN0IENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5JiBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpjcm9zc09yaWdpbk9wZW5lclBv
bGljeSgpIGNvbnN0Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENyb3NzT3JpZ2luT3Bl
bmVyUG9saWN5PiBjb29wOworICAgIHJldHVybiBjb29wOworfQorCiB2b2lkIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RJZk5lZWRlZChBY3RpdmVET01PYmpl
Y3QmIGFjdGl2ZURPTU9iamVjdCkKIHsKICAgICBBU1NFUlQobV9hY3RpdmVET01PYmplY3RzLmNv
bnRhaW5zKCZhY3RpdmVET01PYmplY3QpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCmluZGV4IGQ0YmI4ZTE5YWU3OGY3ZTgxYTZjYjYxZmI2ZTU1MjNjMTA0
YzRkZGUuLjI5OTMzNTA4MzM4MzcxMDlkZTMwOWQ3MzdlYjgwM2UxOGUzN2RlNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtNzgsNiArNzgsOCBA
QCBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGVudW0gY2xhc3MgUmVmZXJyZXJQb2xpY3kgOiB1aW50
OF90OwogZW51bSBjbGFzcyBUYXNrU291cmNlIDogdWludDhfdDsKIAorc3RydWN0IENyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5OworCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogY2xhc3MgU2Vy
dmljZVdvcmtlcjsKIGNsYXNzIFNlcnZpY2VXb3JrZXJDb250YWluZXI7CkBAIC0xNDYsNiArMTQ4
LDggQEAgcHVibGljOgogICAgIGJvb2wgYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZDsgfQogICAgIGJvb2wg
YWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZURPTU9i
amVjdHNBcmVTdG9wcGVkOyB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVy
UG9saWN5JiBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNvbnN0OworCiAgICAgSlNDOjpTY3Jp
cHRFeGVjdXRpb25TdGF0dXMganNjU2NyaXB0RXhlY3V0aW9uU3RhdHVzKCkgY29uc3Q7CiAKICAg
ICAvLyBDYWxsZWQgZnJvbSB0aGUgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3JzIG9mIEFjdGl2
ZURPTU9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCmluZGV4IGMyOWE3YmFmZDFhYTYwZWZi
Y2QzODIyOTMwNmYyZGFlMzNiMGZhYWIuLjJiOGQxYWFjY2I1NTliMDE2ZGMxMDIxNzcyN2UxNGY3
NjIwZDk5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJs
aWM6CiB2b2lkIEJsb2JVUkxSZWdpc3RyeTo6cmVnaXN0ZXJVUkwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgVVJMJiBwdWJsaWNVUkwsIFVSTFJlZ2lzdHJhYmxlJiBibG9i
KQogewogICAgIEFTU0VSVCgmYmxvYi5yZWdpc3RyeSgpID09IHRoaXMpOwotICAgIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCks
IHB1YmxpY1VSTCwgc3RhdGljX2Nhc3Q8QmxvYiY+KGJsb2IpLnVybCgpKTsKKyAgICBUaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwoY29udGV4dC5zZWN1cml0eU9yaWdpbigp
LCBjb250ZXh0LmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCksIHB1YmxpY1VSTCwgc3RhdGljX2Nh
c3Q8QmxvYiY+KGJsb2IpLnVybCgpKTsKIH0KIAogdm9pZCBCbG9iVVJMUmVnaXN0cnk6OnVucmVn
aXN0ZXJVUkwoY29uc3QgVVJMJiB1cmwpCkBAIC0xMzcsNyArMTM3LDcgQEAgQmxvYjo6QmxvYihE
ZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBjb25zdCBVUkwKICAgICAsIG1faW50ZXJuYWxVUkwoQmxvYlVSTDo6Y3JlYXRlSW50ZXJuYWxV
UkwoKSkKIHsKICAgICBpZiAoZmlsZUJhY2tlZFBhdGguaXNFbXB0eSgpKQotICAgICAgICBUaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwobnVsbHB0ciwgbV9pbnRlcm5hbFVS
TCwgc3JjVVJMKTsKKyAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9i
VVJMKG51bGxwdHIsIHsgfSwgbV9pbnRlcm5hbFVSTCwgc3JjVVJMKTsKICAgICBlbHNlCiAgICAg
ICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxl
QmFja2VkKG1faW50ZXJuYWxVUkwsIHNyY1VSTCwgZmlsZUJhY2tlZFBhdGgsIG1fdHlwZSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcAppbmRleCBjMWU2
MGFlMTdjY2I4OTVmYTE3YjBjYjZiNGRmNmFkOWEwY2I1NmQ2Li4xN2IzMjFkNzMxZjg4ODk1NTM3
MDE4MTk3ZmIzZmExNjMzMzRmYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXJMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJl
YWRlckxvYWRlci5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpz
dGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBCbG8K
ICAgICAgICAgZmFpbGVkKFNlY3VyaXR5RXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChzY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBtX3VybEZvclJlYWRpbmcsIGJsb2IudXJsKCkp
OworICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChzY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5j
cm9zc09yaWdpbk9wZW5lclBvbGljeSgpLCBtX3VybEZvclJlYWRpbmcsIGJsb2IudXJsKCkpOwog
CiAgICAgLy8gQ29uc3RydWN0IGFuZCBsb2FkIHRoZSByZXF1ZXN0LgogICAgIFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KG1fdXJsRm9yUmVhZGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcAppbmRleCA5ZmYzNjI4NTYwOTc5MTc3YmIw
YWYyY2ZhN2ZkYzIyNjIzMzE4NTc2Li44YjZmMWFjYmY1ZjVmYWEyODA4MDY5ODE2NTdlZWYzYTkx
OWI0NGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9i
UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JS
ZWdpc3RyeS5jcHAKQEAgLTk5LDE5ICs5OSwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNCbG9i
VVJMQ29udGFpbnNOdWxsT3JpZ2luKGNvbnN0IFVSTCYgdXJsKQogICAgIHJldHVybiB1cmwuc3Ry
aW5nKCkuc3Vic3RyaW5nKHN0YXJ0SW5kZXgsIGVuZEluZGV4IC0gc3RhcnRJbmRleCAtIDEpID09
ICJudWxsIjsKIH0KIAotdm9pZCBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JV
UkwoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3Jj
VVJMKQordm9pZCBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwoU2VjdXJp
dHlPcmlnaW4qIG9yaWdpbiwgY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmIGNvb3AsIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCkKIHsKICAgICAvLyBJZiB0aGUgYmxvYiBV
UkwgY29udGFpbnMgbnVsbCBvcmlnaW4sIGFzIGluIHRoZSBjb250ZXh0IHdpdGggdW5pcXVlIHNl
Y3VyaXR5IG9yaWdpbiBvciBmaWxlIFVSTCwgc2F2ZSB0aGUgbWFwcGluZyBiZXR3ZWVuIHVybCBh
bmQgb3JpZ2luIHNvIHRoYXQgdGhlIG9yaWdpbiBjYW4gYmUgcmV0cml2ZWQgd2hlbiBkb2luZyBz
ZWN1cml0eSBvcmlnaW4gY2hlY2suCiAgICAgaWYgKG9yaWdpbiAmJiBpc0Jsb2JVUkxDb250YWlu
c051bGxPcmlnaW4odXJsKSkKICAgICAgICAgb3JpZ2luTWFwKCktPmFkZCh1cmwuc3RyaW5nKCks
IG9yaWdpbik7CiAKICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgYmxvYlJlZ2lz
dHJ5KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5
KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMLCBjb29wKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3VybCA9IHVybC5pc29sYXRlZENvcHkoKSwg
c3JjVVJMID0gc3JjVVJMLmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgp
LnJlZ2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VSTCk7CisgICAgY2FsbE9uTWFpblRocmVhZChbdXJs
ID0gdXJsLmlzb2xhdGVkQ29weSgpLCBzcmNVUkwgPSBzcmNVUkwuaXNvbGF0ZWRDb3B5KCksIGNv
b3AgPSBjcm9zc1RocmVhZENvcHkoY29vcCldIHsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVn
aXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMLCBjb29wKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAppbmRleCAxNDEyODQ4
MmZkYzU2N2RkZjQwNjEzNzI1NzIzOTJhOWE2YzQxMWJhLi5hNjhhNTFkZjBjM2E3MWYwNDhlMzZl
YWMxZTIxMWM2YzU3ZTk4MDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1Ro
cmVhZGFibGVCbG9iUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVh
ZGFibGVCbG9iUmVnaXN0cnkuaApAQCAtMzgsMTEgKzM4LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIEJsb2JQYXJ0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKK3N0cnVjdCBDcm9z
c09yaWdpbk9wZW5lclBvbGljeTsKKwogY2xhc3MgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeSB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRQYXRoLCBjb25zdCBT
dHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJsb2JVUkwoY29u
c3QgVVJMJiwgVmVjdG9yPEJsb2JQYXJ0PiYmIGJsb2JQYXJ0cywgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSk7Ci0gICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKFNlY3VyaXR5T3JpZ2lu
KiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpOworICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyQmxvYlVSTChTZWN1cml0eU9yaWdpbiosIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5
JiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3Jj
VVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNrZWRQYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwm
IG5ld1VSTCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVu
ZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgc3RhdGljIHZvaWQgdW5yZWdpc3Rl
ckJsb2JVUkwoY29uc3QgVVJMJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAppbmRleCAzMzljZDdkMzAxNGU1NWFjMTBjNTRhNGZmZGU2ODk3YzFmYmU2YjY3Li45NDRl
NDQ3YjVlNGY3OTEyZDkyNGIyMzcxYzk5NjY0ODI2YzlkZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE1NTIsNyArMTU1Miw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5
cGUmIGNvbnRlbnRUCiAgICAgICAgIGlmICghbV9ibG9iVVJMRm9yUmVhZGluZy5pc0VtcHR5KCkp
CiAgICAgICAgICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQmxvYlVSTCht
X2Jsb2JVUkxGb3JSZWFkaW5nKTsKICAgICAgICAgbV9ibG9iVVJMRm9yUmVhZGluZyA9IEJsb2JV
Ukw6OmNyZWF0ZVB1YmxpY1VSTCgmZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpKTsKLSAgICAg
ICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKCZkb2N1bWVudCgpLnNl
Y3VyaXR5T3JpZ2luKCksIG1fYmxvYlVSTEZvclJlYWRpbmcsIG1fYmxvYi0+dXJsKCkpOworICAg
ICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwoJmRvY3VtZW50KCku
c2VjdXJpdHlPcmlnaW4oKSwgZG9jdW1lbnQoKS5jcm9zc09yaWdpbk9wZW5lclBvbGljeSgpLCBt
X2Jsb2JVUkxGb3JSZWFkaW5nLCBtX2Jsb2ItPnVybCgpKTsKIAogICAgICAgICBpZiAoIW1fcGxh
eWVyLT5sb2FkKG1fYmxvYlVSTEZvclJlYWRpbmcsIGNvbnRlbnRUeXBlLCBrZXlTeXN0ZW0pKQog
ICAgICAgICAgICAgbWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6
OkZvcm1hdEVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09y
aWdpbk9wZW5lclBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3kuY3BwCmluZGV4IGQyMmMwMmViOWNkNzhlNmM4ZjQ5Yzk2OTBlYmI5OGZmNzZi
ZmZhNTAuLmIyODhiODgwYzY2ZWJhYjc1OTc5YjYwMTc5YWUxYjM1YWNiNDljZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNwcApAQCAt
MzMsNiArMzMsMjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgU3RyaW5nIGNy
b3NzT3JpZ2luT3BlbmVyUG9saWN5VG9TdHJpbmcoY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3lWYWx1ZSYgY29vcCkKK3sKKyAgICBzd2l0Y2ggKGNvb3ApIHsKKyAgICBjYXNlIENyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5VmFsdWU6OlNhbWVPcmlnaW46CisgICAgY2FzZSBDcm9zc09yaWdpbk9w
ZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVA6CisgICAgICAgIHJldHVybiAic2Ft
ZS1vcmlnaW4iX3M7CisgICAgY2FzZSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpTYW1l
T3JpZ2luQWxsb3dQb3B1cHM6CisgICAgICAgIHJldHVybiAic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXBzIl9zOworICAgIGNhc2UgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9u
ZToKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiAidW5zYWZlLW5vbmUiX3M7Cit9
CisKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1s
I29idGFpbi1jb29wCiBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBvYnRhaW5Dcm9zc09yaWdpbk9w
ZW5lclBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKQEAgLTY5LDQgKzgzLDM0IEBAIENyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5IG9idGFpbkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlCiAgICAgcmV0dXJuIHBvbGljeTsKIH0KIAorQ3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3kgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k6Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHsKKyAgICAgICAgdmFsdWUsCisgICAgICAgIHJlcG9ydGluZ0VuZHBvaW50
Lmlzb2xhdGVkQ29weSgpLAorICAgICAgICByZXBvcnRPbmx5VmFsdWUsCisgICAgICAgIHJlcG9y
dE9ubHlSZXBvcnRpbmdFbmRwb2ludC5pc29sYXRlZENvcHkoKQorICAgIH07Cit9CisKK3ZvaWQg
YWRkQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lIZWFkZXJzKFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSYgY29vcCkKK3sKKyAgICBpZiAoY29v
cC52YWx1ZSAhPSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVOb25lKSB7Cisg
ICAgICAgIGlmIChjb29wLnJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IHJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3ksIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VG9TdHJpbmcoY29vcC52YWx1ZSkp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQo
SFRUUEhlYWRlck5hbWU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5LCBtYWtlU3RyaW5nKGNyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5VG9TdHJpbmcoY29vcC52YWx1ZSksICI7IHJlcG9ydC10bz1cIiIs
IGNvb3AucmVwb3J0aW5nRW5kcG9pbnQsICdcIicpKTsKKyAgICAgICAgaWYgKGNvb3AudmFsdWUg
PT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9yaWdpblBsdXNDT0VQKQorICAg
ICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDcm9z
c09yaWdpbkVtYmVkZGVyUG9saWN5LCAicmVxdWlyZS1jb3JwIl9zKTsgLy8gRklYTUU6IFBhc3Mg
aW4gY29lcCBhbmQgc2V0IGhlYWRlciB2YWx1ZSBjb3JyZWN0bHkuCisgICAgfQorICAgIGlmIChj
b29wLnJlcG9ydE9ubHlWYWx1ZSAhPSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNh
ZmVOb25lKSB7CisgICAgICAgIGlmIChjb29wLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludC5p
c0VtcHR5KCkpCisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhl
YWRlck5hbWU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5UmVwb3J0T25seSwgY3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3lUb1N0cmluZyhjb29wLnJlcG9ydE9ubHlWYWx1ZSkpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5UmVwb3J0T25seSwgbWFrZVN0cmluZyhjcm9zc09yaWdp
bk9wZW5lclBvbGljeVRvU3RyaW5nKGNvb3AucmVwb3J0T25seVZhbHVlKSwgIjsgcmVwb3J0LXRv
PVwiIiwgY29vcC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQsICdcIicpKTsKKyAgICAgICAg
aWYgKGNvb3AucmVwb3J0T25seVZhbHVlID09IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6
OlNhbWVPcmlnaW5QbHVzQ09FUCkKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVJlcG9ydE9ubHks
ICJyZXF1aXJlLWNvcnAiX3MpOyAvLyBGSVhNRTogUGFzcyBpbiBjb2VwIGFuZCBzZXQgaGVhZGVy
IHZhbHVlIGNvcnJlY3RseS4KKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKaW5kZXgg
ZjNkOTFkYjc1NWU0MWU3Yzc2ODA5NzRlYWM2ZDAwNmM3ZDNkNGY1Ni4uMWU1OWNlMmQ2NTVlZWM1
NWJhNzU0NDZiYWVmZDE1NzBkZDFkNWEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKQEAgLTQ4LDggKzQ4LDU0IEBAIHN0cnVjdCBDcm9z
c09yaWdpbk9wZW5lclBvbGljeSB7CiAgICAgU3RyaW5nIHJlcG9ydGluZ0VuZHBvaW50OwogICAg
IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWUgcmVwb3J0T25seVZhbHVlIHsgQ3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSB9OwogICAgIFN0cmluZyByZXBvcnRPbmx5
UmVwb3J0aW5nRW5kcG9pbnQ7CisKKyAgICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBpc29sYXRl
ZENvcHkoKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k+IGRlY29kZShEZWNvZGVyJik7CiB9Owog
CitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBh
LCBjb25zdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSYgYikKK3sKKyAgICByZXR1cm4gYS52YWx1
ZSA9PSBiLnZhbHVlICYmIGEucmVwb3J0aW5nRW5kcG9pbnQgPT0gYi5yZXBvcnRpbmdFbmRwb2lu
dCAmJiBhLnJlcG9ydE9ubHlWYWx1ZSA9PSBiLnJlcG9ydE9ubHlWYWx1ZSAmJiBhLnJlcG9ydE9u
bHlSZXBvcnRpbmdFbmRwb2ludCA9PSBiLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludDsKK30K
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdmFsdWUg
PDwgcmVwb3J0aW5nRW5kcG9pbnQgPDwgcmVwb3J0T25seVZhbHVlIDw8IHJlcG9ydE9ubHlSZXBv
cnRpbmdFbmRwb2ludDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9u
YWw8Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k+IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luT3Bl
bmVyUG9saWN5VmFsdWU+IHZhbHVlOworICAgIGRlY29kZXIgPj4gdmFsdWU7CisgICAgaWYgKCF2
YWx1ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiByZXBvcnRpbmdFbmRwb2ludDsKKyAgICBkZWNvZGVyID4+IHJlcG9ydGluZ0VuZHBv
aW50OworICAgIGlmICghcmVwb3J0aW5nRW5kcG9pbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU+
IHJlcG9ydE9ubHlWYWx1ZTsKKyAgICBkZWNvZGVyID4+IHJlcG9ydE9ubHlWYWx1ZTsKKyAgICBp
ZiAoIXJlcG9ydE9ubHlWYWx1ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiByZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQ7CisgICAg
ZGVjb2RlciA+PiByZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQ7CisgICAgaWYgKCFyZXBvcnRP
bmx5UmVwb3J0aW5nRW5kcG9pbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4ge3sKKyAgICAgICAgKnZhbHVlLAorICAgICAgICBXVEZNb3ZlKCpyZXBvcnRpbmdF
bmRwb2ludCksCisgICAgICAgICpyZXBvcnRPbmx5VmFsdWUsCisgICAgICAgIFdURk1vdmUoKnJl
cG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCkKKyAgICB9fTsKK30KKwogLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjY29vcC1lbmZvcmNlbWVudC1y
ZXN1bHQKIHN0cnVjdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuZm9yY2VtZW50UmVzdWx0IHsK
ICAgICBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggeyBmYWxzZSB9OwpAQCAt
NjEsNSArMTA3LDIwIEBAIHN0cnVjdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuZm9yY2VtZW50
UmVzdWx0IHsKIH07CiAKIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IG9idGFpbkNyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CitXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENyb3NzT3JpZ2luT3BlbmVyUG9s
aWN5SGVhZGVycyhSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3kmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGlj
eVZhbHVlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpD
cm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlLAorICAgIFdlYkNvcmU6OkNyb3NzT3JpZ2luT3Bl
bmVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUsCisgICAgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3lWYWx1ZTo6U2FtZU9yaWdpbiwKKyAgICBXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5l
clBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVAsCisgICAgV2ViQ29yZTo6Q3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9yaWdpbkFsbG93UG9wdXBzCisgICAgPjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9CbG9iRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Js
b2JEYXRhLmNwcAppbmRleCAzOGNiNGQxNzJkMzQ5OTU3YTM2MWVlNTFkMmMwYzE2NzQ2NmRhMDcx
Li41MGE0MWMxODE5OGMwMzJiZjYzM2Q4OGZmYmI3NDQ3NTk5MjgxM2U4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcApAQCAtNzgsNiArNzgsMTQgQEAg
dm9pZCBCbG9iRGF0YTo6YXBwZW5kRmlsZShSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIGZp
bGUpCiAgICAgbV9pdGVtcy5hcHBlbmQoQmxvYkRhdGFJdGVtKFdURk1vdmUoZmlsZSkpKTsKIH0K
IAorUmVmPEJsb2JEYXRhPiBCbG9iRGF0YTo6Y2xvbmUoKSBjb25zdAoreworICAgIGF1dG8gYmxv
YkRhdGEgPSBCbG9iRGF0YTo6Y3JlYXRlKG1fY29udGVudFR5cGUpOworICAgIGJsb2JEYXRhLT5t
X2Nvb3AgPSBtX2Nvb3A7CisgICAgYmxvYkRhdGEtPm1faXRlbXMgPSBtX2l0ZW1zOworICAgIHJl
dHVybiBibG9iRGF0YTsKK30KKwogdm9pZCBCbG9iRGF0YTo6YXBwZW5kRmlsZShCbG9iRGF0YUZp
bGVSZWZlcmVuY2UqIGZpbGUsIGxvbmcgbG9uZyBvZmZzZXQsIGxvbmcgbG9uZyBsZW5ndGgpCiB7
CiAgICAgbV9pdGVtcy5hcHBlbmQoQmxvYkRhdGFJdGVtKGZpbGUsIG9mZnNldCwgbGVuZ3RoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmgKaW5kZXggMzU1MGE3
NjA3NjM4YTRiNGExY2RmNDM2NzEwNDU2NTQzMmE2MTg4MS4uOWM1NTRiMGNkNmY4ZjAxZDE2Zjkz
NWQ2NzhjNWQ1OTgwN2RlN2FjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9CbG9iRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYkRhdGEuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBCbG9iRGF0YV9oCiAKICNpbmNs
dWRlICJCbG9iRGF0YUZpbGVSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJDcm9zc09yaWdpbk9wZW5l
clBvbGljeS5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVEYXRhQnVmZmVyLmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KQEAg
LTEwNSwxMiArMTA2LDE3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRUeXBlOyB9CiAKKyAgICBjb25zdCBDcm9zc09y
aWdpbk9wZW5lclBvbGljeSYgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKSBjb25zdCB7IHJldHVy
biBtX2Nvb3A7IH0KKyAgICB2b2lkIHNldENyb3NzT3JpZ2luT3BlbmVyUG9saWN5KGNvbnN0IENy
b3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjb29wKSB7IG1fY29vcCA9IGNvb3A7IH0KKwogICAgIGNv
bnN0IEJsb2JEYXRhSXRlbUxpc3QmIGl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtczsgfQog
ICAgIHZvaWQgc3dhcEl0ZW1zKEJsb2JEYXRhSXRlbUxpc3QmKTsKIAogICAgIHZvaWQgYXBwZW5k
RGF0YShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYpOwogICAgIHZvaWQgYXBwZW5kRmlsZShS
ZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmKTsKIAorICAgIFJlZjxCbG9iRGF0YT4gY2xvbmUo
KSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQmxvYlJlZ2lzdHJ5SW1wbDsK
ICAgICBCbG9iRGF0YShjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAgLTExOSw2ICsxMjUs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwZW5kRmlsZShCbG9iRGF0YUZpbGVSZWZlcmVuY2Uq
LCBsb25nIGxvbmcgb2Zmc2V0LCBsb25nIGxvbmcgbGVuZ3RoKTsKIAogICAgIFN0cmluZyBtX2Nv
bnRlbnRUeXBlOworICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IG1fY29vcDsKICAgICBCbG9i
RGF0YUl0ZW1MaXN0IG1faXRlbXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9CbG9iUmVnaXN0cnkuaAppbmRleCA2ODlkMzE5MDcxMDhkYzQ0Mzk4MDRmMWU1NDIy
NjllY2I5ZTE4YjdmLi5lMjQ3ZTg1NDRjMmY2MmVlZmJmZGZiMTBkYzAwNTIwN2IzMDRjYzI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgKQEAg
LTMxLDYgKzMxLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MCw2ICs0
MSw4IEBAIGNsYXNzIEJsb2JQYXJ0OwogY2xhc3MgQmxvYlJlZ2lzdHJ5OwogY2xhc3MgQmxvYlJl
Z2lzdHJ5SW1wbDsKIAorc3RydWN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5OworCiBXRUJDT1JF
X0VYUE9SVCBCbG9iUmVnaXN0cnkmIGJsb2JSZWdpc3RyeSgpOwogCiAvLyBCbG9iUmVnaXN0cnkg
aXMgbm90IHRocmVhZC1zYWZlLiBJdCBzaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBtYWluIHRo
cmVhZC4KQEAgLTUzLDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWdpc3Rl
ckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPEJsb2JQYXJ0PiYmLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlKSA9IDA7CiAgICAgCiAgICAgLy8gUmVnaXN0ZXJzIGEgbmV3IGJsb2IgVVJMIHJl
ZmVycmluZyB0byB0aGUgYmxvYiBkYXRhIGlkZW50aWZpZWQgYnkgdGhlIHNwZWNpZmllZCBzcmNV
UkwuCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBjb25zdCBV
UkwmIHNyY1VSTCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3Qg
VVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5Jikg
PSAwOwogCiAgICAgLy8gUmVnaXN0ZXJzIGEgbmV3IGJsb2IgVVJMIHJlZmVycmluZyB0byB0aGUg
YmxvYiBkYXRhIGlkZW50aWZpZWQgYnkgdGhlIHNwZWNpZmllZCBzcmNVUkwgb3IsIGlmIG5vbmUg
Zm91bmQsIHJlZmVycmluZyB0byB0aGUgZmlsZSBmb3VuZCBhdCB0aGUgZ2l2ZW4gcGF0aC4KICAg
ICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3Qg
VVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCmluZGV4IDIwODE4NTg3YmUw
MzAxMWU2OGNiM2U0ZTcyMWJmMjBlNjI5M2ZkZDkuLmY1NWY1YjM1ZGRhNzdiYzMwZDg3OTcxNzg1
MGJhYzFhNTMyMTU5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcApAQCAtMTUyLDE5ICsxNTIsMjUgQEAgdm9pZCBCbG9i
UmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxCbG9i
UGFydD4mJiBibG9iUGEKICAgICBhZGRCbG9iRGF0YSh1cmwuc3RyaW5nKCksIFdURk1vdmUoYmxv
YkRhdGEpKTsKIH0KIAotdm9pZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkwoY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMKQordm9pZCBCbG9iUmVnaXN0cnlJbXBsOjpy
ZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBD
cm9zc09yaWdpbk9wZW5lclBvbGljeSYgY29vcCkKIHsKLSAgICByZWdpc3RlckJsb2JVUkxPcHRp
b25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgbnVsbHB0ciwgeyB9KTsKKyAgICByZWdpc3Rl
ckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgbnVsbHB0ciwgeyB9LCBj
b29wKTsKIH0KIAotdm9pZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxPcHRpb25h
bGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxC
bG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgZmlsZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkK
K3ZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNr
ZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxl
UmVmZXJlbmNlPiYmIGZpbGUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IENyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5JiBjb29wKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgcmVnaXN0ZXJCbG9iUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3RvcigpOwogCiAgICAgQmxv
YkRhdGEqIHNyYyA9IGdldEJsb2JEYXRhRnJvbVVSTChzcmNVUkwpOwogICAgIGlmIChzcmMpIHsK
LSAgICAgICAgYWRkQmxvYkRhdGEodXJsLnN0cmluZygpLCBzcmMpOworICAgICAgICBpZiAoc3Jj
LT5jcm9zc09yaWdpbk9wZW5lclBvbGljeSgpID09IGNvb3ApCisgICAgICAgICAgICBhZGRCbG9i
RGF0YSh1cmwuc3RyaW5nKCksIHNyYyk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYXV0
byBjbG9uZSA9IHNyYy0+Y2xvbmUoKTsKKyAgICAgICAgICAgIGNsb25lLT5zZXRDcm9zc09yaWdp
bk9wZW5lclBvbGljeShjb29wKTsKKyAgICAgICAgICAgIGFkZEJsb2JEYXRhKHVybC5zdHJpbmco
KSwgV1RGTW92ZShjbG9uZSkpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTE3Myw2ICsxNzksNyBAQCB2b2lkIEJsb2JSZWdpc3RyeUltcGw6OnJlZ2lzdGVyQmxvYlVS
TE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYgdXJsLCBjb25zdAogCiAgICAgYXV0byBi
YWNraW5nRmlsZSA9IEJsb2JEYXRhOjpjcmVhdGUoY29udGVudFR5cGUpOwogICAgIGJhY2tpbmdG
aWxlLT5hcHBlbmRGaWxlKGZpbGUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgYmFja2luZ0ZpbGUt
PnNldENyb3NzT3JpZ2luT3BlbmVyUG9saWN5KGNvb3ApOwogCiAgICAgYWRkQmxvYkRhdGEodXJs
LnN0cmluZygpLCBXVEZNb3ZlKGJhY2tpbmdGaWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCmluZGV4IDU3NDAzNmE1NmQ0
MWJkYTJkNDNhNDNkNWFhZjM4ODkwNjIzZjZjYjYuLjcxYjk0NzAzNWU5OTcwYjcxYTYyZWExMWYw
YTA5MmVmNDg0OTRiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIFJlc291cmNlSGFu
ZGxlOwogY2xhc3MgUmVzb3VyY2VIYW5kbGVDbGllbnQ7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7
CiBjbGFzcyBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjsKK3N0cnVjdCBDcm9zc09yaWdpbk9wZW5lclBv
bGljeTsKIAogLy8gQmxvYlJlZ2lzdHJ5SW1wbCBpcyBub3QgdGhyZWFkLXNhZmUuIEl0IHNob3Vs
ZCBvbmx5IGJlIGNhbGxlZCBmcm9tIG1haW4gdGhyZWFkLgogY2xhc3MgV0VCQ09SRV9FWFBPUlQg
QmxvYlJlZ2lzdHJ5SW1wbCB7CkBAIC02MSw4ICs2Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNl
PiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpOwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3Jj
VVJMKTsKLSAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0
IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYm
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3kmKTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0
IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYm
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBDcm9zc09yaWdpbk9wZW5lclBvbGlj
eSYpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3Qg
VVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA4ODQzODJkNGNmNmI1NGNlMzk3YWNi
OTA4ODE2NDUwYmI2YzBkMzVjLi5hYzc3ZTQxYTQ3MjZiOTNmNjExYmQzNDJlMjBlNGE0NGE1OWQ0
MzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtODI4LDEzICs4MjgsMTMgQEAg
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlAKICAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5yZWdp
c3RlckJsb2JVUkwodXJsLCBXVEZNb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKTsKIH0KIAot
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMRnJvbVVS
TChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBVUkwmIHNyY1VSTCwgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmJiBjb29wKQogewogICAg
IGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbigpOwogICAgIGlmICghc2Vzc2lvbikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9i
VVJMKHVybCwgc3JjVVJMKTsKKyAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJs
b2JVUkwodXJsLCBzcmNVUkwsIFdURk1vdmUoY29vcCkpOwogfQogCiB2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChj
b25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tl
ZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCkBAIC04NDUsNyArODQ1LDcgQEAgdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxs
eUZpbGVCYWNrZWQoY29uc3QgVVIKICAgICBpZiAoIXNlc3Npb24pCiAgICAgICAgIHJldHVybjsK
IAotICAgIHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlG
aWxlQmFja2VkKHVybCwgc3JjVVJMLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlKGZpbGVCYWNrZWRQYXRoKSwgY29udGVudFR5cGUpOworICAgIHNlc3Np
b24tPmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVy
bCwgc3JjVVJMLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlKGZpbGVCYWNrZWRQYXRoKSwgY29udGVudFR5cGUsIHsgfSk7CiB9CiAKIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQsIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZDky
NDMyMTM5Mjk4ZGJkNjNmNGE3ZTE4YzNmMGIwMWRkZjE0ODllZS4uNmEwNTk0Y2UxNTYxOGFiMzI3
ZTA2ZWExZjZjYWE0YjhhZGNjNmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNjYs
NiArNjYsNyBAQCBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owog
ZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzU2NvcGUgOiBib29sOwogZW51bSBjbGFzcyBTaG91bGRB
c2tJVFAgOiBib29sOworc3RydWN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5Owogc3RydWN0IFJl
cXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0Owogc3RydWN0IFNhbWVTaXRlSW5mbzsKIApAQCAtMjI5
LDcgKzIzMCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0
aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
OwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpC
bG9iUGFydD4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7Ci0gICAgdm9pZCByZWdpc3Rl
ckJsb2JVUkxGcm9tVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKTsKKyAgICB2b2lk
IHJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIFdl
YkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiYpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNv
bnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwog
ICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBz
cmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKTsKICAgICB2b2lkIGJsb2JTaXplKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQodWludDY0X3QpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDc5NmJmYTQ0Y2MyNjI3MDg3NTNlNzYzMTgzYTVhMDE3YzdhZmZjMzIuLmZhOTBm
ZjRhNmQ4OTM1OThlZTBhZDA5MTMzNTEwZWU1ZWE5MmU3YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTAsNyArNTAsNyBAQCBtZXNzYWdlcyAtPiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBSZWdp
c3RlckZpbGVCbG9iVVJMKFVSTCB1cmwsIFN0cmluZyBwYXRoLCBTdHJpbmcgcmVwbGFjZW1lbnRQ
YXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBleHRlbnNpb25IYW5kbGUsIFN0
cmluZyBjb250ZW50VHlwZSkKICAgICBSZWdpc3RlckJsb2JVUkwoVVJMIHVybCwgVmVjdG9yPFdl
YkNvcmU6OkJsb2JQYXJ0PiBibG9iUGFydHMsIFN0cmluZyBjb250ZW50VHlwZSkKLSAgICBSZWdp
c3RlckJsb2JVUkxGcm9tVVJMKFVSTCB1cmwsIFVSTCBzcmNVUkwpCisgICAgUmVnaXN0ZXJCbG9i
VVJMRnJvbVVSTChVUkwgdXJsLCBVUkwgc3JjVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3kgY29vcCkKICAgICBSZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJh
Y2tlZChVUkwgdXJsLCBVUkwgc3JjVVJMLCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgsIFN0cmluZyBj
b250ZW50VHlwZSkKICAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3Jj
VVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAg
IFVucmVnaXN0ZXJCbG9iVVJMKFVSTCB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcAppbmRleCAxYjY3NGU0ZjhkNTZjNmNl
ZWYxMWY2NzUwYzE2ZDk3Y2Q3ZDdjMjI1Li40MDM2ZmM5NTExZDE3YzIyOWJiYjUyYzlkMDFiMTk2
NDUwZTBlOTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFza0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0RhdGFUYXNrQmxvYi5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJXZWJFcnJv
cnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FzeW5jRmlsZVN0cmVhbS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBQYXJzZXJzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYXJzZWRDb250ZW50UmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KQEAgLTI2NCw2ICsyNjUsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0Jsb2I6
OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKEVycm9yIGVycm9yQ29kZSkKIAogICAgICAgICBy
ZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlLCBt
X2Jsb2JEYXRhLT5jb250ZW50VHlwZSgpKTsKICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUEhlYWRl
ckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50TGVuZ3RoLCBTdHJpbmc6Om51bWJlcihtX3Rv
dGFsUmVtYWluaW5nU2l6ZSkpOworICAgICAgICBhZGRDcm9zc09yaWdpbk9wZW5lclBvbGljeUhl
YWRlcnMocmVzcG9uc2UsIG1fYmxvYkRhdGEtPmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkpOwog
CiAgICAgICAgIGlmIChpc1JhbmdlUmVxdWVzdCkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhU
VFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFJhbmdlLCBQYXJzZWRDb250ZW50
UmFuZ2UobV9yYW5nZU9mZnNldCwgbV9yYW5nZUVuZCwgbV90b3RhbFNpemUpLmhlYWRlclZhbHVl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA3OTY2MmVmYmQxMTY4
NjE5ZmZjZjY1Y2IyODg1YzFmNDAzNWI2YjIwLi4yNTkwN2ZmYzBhNDllMjI2NzZjMmUxOTM2YjAy
MWJmM2Y5MjNiNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNTks
NyArNTksNyBAQCBCbG9iUmVnaXN0cnkqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVz
OjpjcmVhdGVCbG9iUmVnaXN0cnkoKQogICAgIGNsYXNzIEVtcHR5QmxvYlJlZ2lzdHJ5IDogcHVi
bGljIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSB7CiAgICAgICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxv
YlVSTChjb25zdCBVUkwmLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJp
bmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVj
dG9yPEJsb2JQYXJ0PiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYgc3JjVVJMKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Cisg
ICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJM
LCBjb25zdCBXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGljeSYpIGZpbmFsIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5
RmlsZUJhY2tlZChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRh
RmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNl
KGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9u
ZyBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KICAgICAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKSBmaW5h
bCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKaW5kZXggMDA1M2I3ZWEyMmI5
ZjIyMDdiZjFkZTg2NTFlODBkY2UyYzk0MThiNy4uM2FmNDliNDM3MmU4Njc3YTU3ZDJlZmM4ZTg4
Yzg2NzMzOTQ1NWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9G
aWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1h
bmFnZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01Myw5ICs1NCw5IEBAIHZvaWQgQmxv
YlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgVmVjdG9yPEJs
b2JQYXJ0PiYmIGJsb2JQCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkwodXJsLCBibG9iUGFydHMsIGNv
bnRlbnRUeXBlKSwgMCk7CiB9CiAKLXZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxv
YlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwpCit2b2lkIEJsb2JSZWdpc3Ry
eVByb3h5OjpyZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJM
LCBjb25zdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSYgY29vcCkKIHsKLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVy
QmxvYlVSTEZyb21VUkwgeyB1cmwsIHNyY1VSTCB9LCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVyQmxvYlVS
TEZyb21VUkwgeyB1cmwsIHNyY1VSTCwgY29vcCB9LCAwKTsKIH0KIAogdm9pZCBCbG9iUmVnaXN0
cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJl
bmNlPiYmIGZpbGUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAppbmRleCAxODI0
MmY1MmVjYjVmY2M3MTNiYjAxM2VmN2NhYmE5Zjc1OWE1Zjg0Li4wYjFjMTc4YTgzMGNjMGEyYjAz
OWM0YTE0YWE0MjMwMmRjZDczOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3Mg
QmxvYlJlZ2lzdHJ5UHJveHkgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5IHsK
IHB1YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgUmVmPFdl
YkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChj
b25zdCBVUkwmLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUpIGZpbmFsOwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIGNv
bnN0IFVSTCYgc3JjVVJMKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBV
UkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3kmKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFj
a2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRh
dGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKICAg
ICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpIGZpbmFsOwogICAgIHZvaWQgcmVn
aXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcg
bG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggOGJiMjhiOWY3OTBmY2Q3ZmFj
ZmU3MzU2NDYxNTgxOWYyYjY0OGFmMy4uZjBmYmEzZWQ4MTViNzY2YjhhY2U5OWY1ZTY4ZjNjMzhh
ODg2MzlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtODUsOCArODUsOCBA
QCBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsKIHBy
aXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBSZWY8
QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVC
bG9iVVJMKHVybCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KICAgICB2b2lk
IHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgVmVjdG9yPEJsb2JQYXJ0PiYmIHBhcnRz
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lz
dGVyQmxvYlVSTCh1cmwsIFdURk1vdmUocGFydHMpLCBjb250ZW50VHlwZSk7IH0KLSAgICB2b2lk
IHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFs
IHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsgfQotICAgIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5j
ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdp
c3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShyZWZl
cmVuY2UpLCBjb250ZW50VHlwZSk7IH0KKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBV
UkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5
JiBjb29wKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VS
TCwgY29vcCk7IH0KKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2Vk
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJl
ZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsg
bV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBz
cmNVUkwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUsIHsgfSk7IH0KICAgICB2b2lk
IHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VS
TCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKHVybCwg
c3JjVVJMLCBzdGFydCwgZW5kLCBjb250ZW50VHlwZSk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJC
bG9iVVJMKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnVucmVnaXN0ZXJC
bG9iVVJMKHVybCk7IH0KICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJM
JiB1cmwpIGZpbmFsIHsgcmV0dXJuIG1fYmxvYlJlZ2lzdHJ5LmJsb2JTaXplKHVybCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGNmNmE2ODgzOTIwYzFjMjFkMDYwNGY0
ODlkNjJiODI3MWQ2Zjg3OGIuLmE3MDZlODFhM2I3MWY3MTdlZTQwNzUzNWEzNjEzYWFjMTg3ZjY1
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtODEsNyArODEsNyBAQCBj
bGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsKIHByaXZh
dGU6CiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBSZWY8Qmxv
YkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9i
VVJMKHVybCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KICAgICB2b2lkIHJl
Z2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgVmVjdG9yPEJsb2JQYXJ0PiYmIHBhcnRzLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVy
QmxvYlVSTCh1cmwsIFdURk1vdmUocGFydHMpLCBjb250ZW50VHlwZSk7IH0KLSAgICB2b2lkIHJl
Z2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsIHsg
bV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsgfQorICAgIHZvaWQg
cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3Qg
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmIGNvb3ApIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVn
aXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMLCBjb29wKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJM
LCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxPcHRp
b25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50
VHlwZSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxv
YlVSTEZvclNsaWNlKHVybCwgc3JjVVJMLCBzdGFydCwgZW5kLCBjb250ZW50VHlwZSk7IH0KICAg
ICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IG1fYmxvYlJl
Z2lzdHJ5LnVucmVnaXN0ZXJCbG9iVVJMKHVybCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IGU4YmM5YjQ3MjI1Y2ZlNzgyMTQ2NWY1ODJjNjVmOTc1MjQyZjRlZGUuLmFkMjdi
MGY4ZmM0NWJkM2QxY2FmMWY4MzFkOGRhNjM0MWY5NWU0NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA4LTEwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5
IHN1cHBvcnQgZm9yIEJsb2IgVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI4OTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXUFQgdGVzdCB0aGF0IGlzIG5vdyBwYXNzaW5nLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDgtMTAgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcG9ydCBjc3MvY3Nz
LXNpemluZy9hc3BlY3QtcmF0aW8gdGVzdHMgZnJvbSBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IGFhZmIwMWUwZTBiNjdiZWM1ZGMyMjkxNDg4YTlkZWYwNWQzYmU0ZWQuLjcxZjVjYTNiNWNiYzJj
ZjU4NzcxZWVlYjM1Y2YzMDViY2QwMzU5MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzE5LDEw
ICs3MTksNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nIFsgU2tpcAogIyB0ZXN0IGlzIHNlcnZlZCBvdmVy
IEhUVFAuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LW9wZW5lci1wb2xpY3kvbm8taHR0cHMuaHRtbCBbIFNraXAgXQogCi0jIENPT1AgdGVzdHMgdGhh
dCBhcmUgZmFpbGluZyBhbmQga2VlcCBwcmludGluZyBhIGRpZmZlcmVudCB1dWlkIGluIHRoZSBl
cnJvciBvdXRwdXQuCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLW9wZW5lci1wb2xpY3kvYmxvYi1wb3B1cC5odHRwcy5odG1sIFsgRmFpbHVyZSBQYXNz
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi0K
ICMgTmV3bHkgaW1wb3J0ZWQgV1BUIHRlc3RzIHRoYXQgYXJlIGNyYXNoaW5nLgogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3Ro
ZS1lbWJlZC1lbGVtZW50L2VtYmVkLXJlcHJlc2VudC1ub3RoaW5nLTA0Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIENyYXNoIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Jsb2It
cG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Jsb2ItcG9wdXAu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDVlZjk5YjY1M2Q5Zjc5MTMwNGE1YWQ0MmRlZDRmOWI1
ODVlZDI4ZWYuLmI0ZDU3ZDE2YTk0MWUwOTBlY2UxOTRlMWZkMTI2NDk5ZjcxNDczMjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
cm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICd3aW5kb3cub3BlbmVyLmZ1cnRoZXJQb3B1cCA9IHcnKQogCi1G
QUlMIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IGFuZCBhIGJsb2IgVVJMIHBvcHVwIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIDAgYnV0IGdvdCAzNgorUEFTUyBDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSBhbmQgYSBibG9iIFVSTCBwb3B1cAogCg==
</data>
<flag name="commit-queue"
          id="458047"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435284</attachid>
            <date>2021-08-10 13:37:55 -0700</date>
            <delta_ts>2021-08-10 19:58:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228924-20210810133754.patch</filename>
            <type>text/plain</type>
            <size>46999</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJlODdlNzMwMjVkMWE5
ZGIxODRkODljYTM1ZTM1OWI0NDllZjg0Ni4uZjMzMmQ2OTQxN2ZmNzVlNDc3ZmM3YWE1OWUwNmQ3
N2EzNDM1ZWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIxLTA4LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5IHN1cHBvcnQgZm9yIEJsb2IgVVJMcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4OTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0J3Mg
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgd2hlbiByZWdpc3RlcmluZyBhIHB1YmxpYworICAg
ICAgICBCbG9iIFVSTCBhbmQgc3RvcmUgaXQgaW4gdGhlIGJsb2IgcmVnaXN0cnkgYWxvbmdzaWRl
IHRoZSBibG9iIGRhdGEuIEFzIGEgcmVzdWx0LAorICAgICAgICB3ZSBhcmUgYWJsZSB0byBzZXJ2
aWNlIHRoZSByaWdodCBDT09QIGhlYWRlcnMgb24gdGhlIGJsb2IgcmVzcG9uc2UgbGF0ZXIgb24g
d2hlbgorICAgICAgICBkb2luZyBhIGxvYWQgb2YgdGhpcyBibG9iLiBJbiB0aGUgZnV0dXJlLCB3
ZSdsbCBwYXNzIHRoZSBjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5CisgICAgICAgIGFzIHdl
bGwsIG9uY2Ugd2Ugc3VwcG9ydCBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxp
bmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoTG9hZGVyOjpzdGFydExvYWRpbmdCbG9iVVJM
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
Ojpjcm9zc09yaWdpbk9wZW5lclBvbGljeSBjb25zdCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RlclVSTCk6CisgICAgICAgIChXZWJDb3Jl
OjpCbG9iOjpCbG9iKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlckxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIGZp
bGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwpOgorICAgICAgICAqIGZpbGVhcGkv
VGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2Up
OgorCisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6b2J0YWluQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSk6CisgICAgICAg
IEZvciBXZWJLaXQxLCB0aGUgaW5pdGlhbCBlbXB0eSBkb2N1bWVudCBzZWVtcyB0byBoYXZlIGFu
IGVtcHR5IFVSTCBpbnN0ZWFkIG9mCisgICAgICAgICJhYm91dDpibGFuayIgc28gSSBoYWQgdG8g
ZXh0ZW5kIHRoZSBjaGVjayBzbyB0aGF0IENPRVAgcHJvcGVybHkgZ2V0cyBlbmFibGVkLgorCisg
ICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om9idGFpbkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KToKKyAgICAgICAgRm9yIFdlYktp
dDEsIHRoZSBpbml0aWFsIGVtcHR5IGRvY3VtZW50IHNlZW1zIHRvIGhhdmUgYW4gZW1wdHkgVVJM
IGluc3RlYWQgb2YKKyAgICAgICAgImFib3V0OmJsYW5rIiBzbyBJIGhhZCB0byBleHRlbmQgdGhl
IGNoZWNrIHNvIHRoYXQgQ09PUCBwcm9wZXJseSBnZXRzIGVuYWJsZWQuCisKKyAgICAgICAgKFdl
YkNvcmU6OmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k6Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjphZGRDcm9zc09yaWdpbk9wZW5lclBvbGljeUhlYWRlcnMpOgorICAgICAgICAq
IGxvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oOgorICAgICAgICAoV2ViQ29yZTo6b3Bl
cmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGljeTo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5Ojpk
ZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QmxvYkRhdGE6OmNsb25lIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpCbG9iRGF0YTo6Y3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3kgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYkRhdGE6OnNldENy
b3NzT3JpZ2luT3BlbmVyUG9saWN5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkwp
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbDo6cmVnaXN0ZXJCbG9iVVJMT3B0
aW9uYWxseUZpbGVCYWNrZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lz
dHJ5SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9u
c2VPblN1Y2Nlc3MpOgorCiAyMDIxLTA4LTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBbbWFjT1NdIFJFR1JFU1NJT04ocjI3ODg1MCk6IG1vZGlmeWluZyBg
cGxheWJhY2tSYXRlYCB2aWEgSlMgb24gYSBUb3VjaEJhciBtYWMgb25seSBzb21ldGltZXMgd29y
a3MgYW5kIGFsc28gY2F1c2VzIHRoZSBgZGVmYXVsdFBsYXliYWNrUmF0ZWAgdG8gY2hhbmdlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDU5M2U1ZjJhODFmZmUxZjFhYmNhOWFkMGJjYzJhZmM1N2YyMDFkOTAuLmMyYmJj
ZmJlYjA1OWE3NDk3YmE5OGI4NTQzMWEzYmMxMjA4ZjI4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMjEtMDgtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgc3VwcG9ydCBmb3IgQmxvYiBVUkxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg5MjQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZyb21V
UkwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVn
aXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFza0Jsb2I6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpj
cmVhdGVCbG9iUmVnaXN0cnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJsb2JSZWdpc3RyeVByb3h5OjpyZWdp
c3RlckJsb2JVUkwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQ
cm94eS5oOgorCiAyMDIxLTA4LTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgVGhyZWFkU2FuaXRpemVyOiBkYXRhIHJhY2UgaW4gV1RGOjpTdHJpbmdJbXBs
OjpkZXJlZigpIHVuZGVyIFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnNldE1lZGlhQWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBhODczOTQ3
OTdmNmFmZGNjMDg2MDEzNzY3NjY2MWM3NzgwYjMyNzUyLi4yYzhjODlhYTUyMGVlMWE2NmFkZjZm
YWI4YzM5Njc4NmFiNTZmZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMjEtMDgtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgc3VwcG9ydCBmb3IgQmxvYiBV
UkxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg5
MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKwogMjAyMS0wOC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEJsb2IgVVJMIGNoYW5nZXMg
YWZ0ZXIgbG9hZGluZyBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGM2OTIwMjA2
Njg1YjkzMjc2ZTU1N2NiOTQyMWUxZDA5Zjk1OTEwMTAuLjM3MmUxY2E3NDhjNGY5NjdmNjIxNDlm
YzZhZmM5MThjN2RkYWVlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAyMS0wOC0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBzdXBwb3J0IGZvciBCbG9iIFVS
THMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODky
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMS0wOC0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEJsb2IgVVJMIGNoYW5nZXMg
YWZ0ZXIgbG9hZGluZyBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9h
ZGVyLmNwcAppbmRleCAzMWEwZDk3MjI1YWM2MTEwZjkwNjBjMjA2ZmQyZDdkYmU2ZWFkOTVkLi5k
NGU5YmNlNWNiYTZlM2E5NThkYWQ4ZTllYTc4MWJkZDMyMjlkYTgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lk
IEZldGNoTG9hZGVyOjpzdGFydExvYWRpbmdCbG9iVVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFVSTAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKGNvbnRleHQuc2VjdXJpdHlPcmlnaW4o
KSwgbV91cmxGb3JSZWFkaW5nLCBibG9iVVJMKTsKKyAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5
OjpyZWdpc3RlckJsb2JVUkwoY29udGV4dC5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LmNyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5KCksIG1fdXJsRm9yUmVhZGluZywgYmxvYlVSTCk7CiAKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybEZvclJlYWRpbmcpOwogICAgIHJlcXVlc3Quc2V0
SW5pdGlhdG9ySWRlbnRpZmllcihjb250ZXh0LnJlc291cmNlUmVxdWVzdElkZW50aWZpZXIoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDYzNzZmMzhkOWQxZGVkMTVkYTU2M2RmODc0M2M5MGEz
MTIwMjk5NzEuLmRhNjkzMzI0NWYzMTBjNGUwNTYwOGMyYzJlMjdhNTU4NDZmYmFkNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xMzU0LDcgKzEzNTQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c1NhbWVPcmlnaW5Bc1RvcERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gc2VjdXJpdHlPcmlnaW4o
KS5pc1NhbWVPcmlnaW5Bcyh0b3BPcmlnaW4oKSk7IH0KICAgICBib29sIHNob3VsZEZvcmNlTm9P
cGVuZXJCYXNlZE9uQ09PUCgpIGNvbnN0OwogCi0gICAgY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3kmIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkgY29uc3Q7CisgICAgY29uc3QgQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3kmIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkgY29uc3QgZmluYWw7
CiAgICAgdm9pZCBzZXRDcm9zc09yaWdpbk9wZW5lclBvbGljeShjb25zdCBDcm9zc09yaWdpbk9w
ZW5lclBvbGljeSYpOwogCiAgICAgdm9pZCB3aWxsTG9hZFNjcmlwdEVsZW1lbnQoY29uc3QgVVJM
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5k
ZXggMjcwZTE2MWEyZTUzZGZkZjZmNDBjOGYxMTA0MDNiODBlMjA3NjM4MS4uZTUxMmJlZTUxMGFi
MjBkYzQyZjg5NWM0MWU1NDEwOWNjODA3MzZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNT
U1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNvbW1v
blZNLmgiCisjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaCIKICNpbmNsdWRlICJE
T01UaW1lci5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlQ29u
dGV4dC5oIgpAQCAtMzM1LDYgKzMzNiwxMiBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OnN0b3BBY3RpdmVET01PYmplY3RzKCkKICAgICB9KTsKIH0KIAorY29uc3QgQ3Jvc3NPcmlnaW5P
cGVuZXJQb2xpY3kmIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNyb3NzT3JpZ2luT3BlbmVyUG9s
aWN5KCkgY29uc3QKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3k+IGNvb3A7CisgICAgcmV0dXJuIGNvb3A7Cit9CisKIHZvaWQgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6c3VzcGVuZEFjdGl2ZURPTU9iamVjdElmTmVlZGVkKEFjdGl2ZURPTU9iamVj
dCYgYWN0aXZlRE9NT2JqZWN0KQogewogICAgIEFTU0VSVChtX2FjdGl2ZURPTU9iamVjdHMuY29u
dGFpbnMoJmFjdGl2ZURPTU9iamVjdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgKaW5kZXggZDRiYjhlMTlhZTc4ZjdlODFhNmNiNjFmYjZlNTUyM2MxMDRj
NGRkZS4uMjk5MzM1MDgzMzgzNzEwOWRlMzA5ZDczN2ViODAzZTE4ZTM3ZGU2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC03OCw2ICs3OCw4IEBA
IGNsYXNzIFNvY2tldFByb3ZpZGVyOwogZW51bSBjbGFzcyBSZWZlcnJlclBvbGljeSA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIFRhc2tTb3VyY2UgOiB1aW50OF90OwogCitzdHJ1Y3QgQ3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3k7CisKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiBjbGFzcyBTZXJ2
aWNlV29ya2VyOwogY2xhc3MgU2VydmljZVdvcmtlckNvbnRhaW5lcjsKQEAgLTE0Niw2ICsxNDgs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBhY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkgY29u
c3QgeyByZXR1cm4gbV9hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkOyB9CiAgICAgYm9vbCBh
Y3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlRE9NT2Jq
ZWN0c0FyZVN0b3BwZWQ7IH0KIAorICAgIHZpcnR1YWwgY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3kmIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkgY29uc3Q7CisKICAgICBKU0M6OlNjcmlw
dEV4ZWN1dGlvblN0YXR1cyBqc2NTY3JpcHRFeGVjdXRpb25TdGF0dXMoKSBjb25zdDsKIAogICAg
IC8vIENhbGxlZCBmcm9tIHRoZSBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvcnMgb2YgQWN0aXZl
RE9NT2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKaW5kZXggYzI5YTdiYWZkMWFhNjBlZmJj
ZDM4MjI5MzA2ZjJkYWUzM2IwZmFhYi4uMmI4ZDFhYWNjYjU1OWIwMTZkYzEwMjE3NzI3ZTE0Zjc2
MjBkOTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1Ymxp
YzoKIHZvaWQgQmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RlclVSTChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBjb25zdCBVUkwmIHB1YmxpY1VSTCwgVVJMUmVnaXN0cmFibGUmIGJsb2Ip
CiB7CiAgICAgQVNTRVJUKCZibG9iLnJlZ2lzdHJ5KCkgPT0gdGhpcyk7Ci0gICAgVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSwg
cHVibGljVVJMLCBzdGF0aWNfY2FzdDxCbG9iJj4oYmxvYikudXJsKCkpOworICAgIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCks
IGNvbnRleHQuY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKSwgcHVibGljVVJMLCBzdGF0aWNfY2Fz
dDxCbG9iJj4oYmxvYikudXJsKCkpOwogfQogCiB2b2lkIEJsb2JVUkxSZWdpc3RyeTo6dW5yZWdp
c3RlclVSTChjb25zdCBVUkwmIHVybCkKQEAgLTEzNyw3ICsxMzcsNyBAQCBCbG9iOjpCbG9iKERl
c2VyaWFsaXphdGlvbkNvbnRydWN0b3IsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFVSTAogICAgICwgbV9pbnRlcm5hbFVSTChCbG9iVVJMOjpjcmVhdGVJbnRlcm5hbFVS
TCgpKQogewogICAgIGlmIChmaWxlQmFja2VkUGF0aC5pc0VtcHR5KCkpCi0gICAgICAgIFRocmVh
ZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChudWxscHRyLCBtX2ludGVybmFsVVJM
LCBzcmNVUkwpOworICAgICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JV
UkwobnVsbHB0ciwgeyB9LCBtX2ludGVybmFsVVJMLCBzcmNVUkwpOwogICAgIGVsc2UKICAgICAg
ICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVC
YWNrZWQobV9pbnRlcm5hbFVSTCwgc3JjVVJMLCBmaWxlQmFja2VkUGF0aCwgbV90eXBlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCmluZGV4IGMxZTYw
YWUxN2NjYjg5NWZhMTdiMGNiNmI0ZGY2YWQ5YTBjYjU2ZDYuLjE3YjMyMWQ3MzFmODg4OTU1Mzcw
MTgxOTdmYjNmYTE2MzMzNGZhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyTG9hZGVyLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OnN0
YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEJsbwog
ICAgICAgICBmYWlsZWQoU2VjdXJpdHlFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIG1fdXJsRm9yUmVhZGluZywgYmxvYi51cmwoKSk7
CisgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNy
b3NzT3JpZ2luT3BlbmVyUG9saWN5KCksIG1fdXJsRm9yUmVhZGluZywgYmxvYi51cmwoKSk7CiAK
ICAgICAvLyBDb25zdHJ1Y3QgYW5kIGxvYWQgdGhlIHJlcXVlc3QuCiAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QobV91cmxGb3JSZWFkaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCmluZGV4IDlmZjM2Mjg1NjA5NzkxNzdiYjBh
ZjJjZmE3ZmRjMjI2MjMzMTg1NzYuLjhiNmYxYWNiZjVmNWZhYTI4MDgwNjk4MTY1N2VlZjNhOTE5
YjQ0YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JS
ZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5LmNwcApAQCAtOTksMTkgKzk5LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0Jsb2JV
UkxDb250YWluc051bGxPcmlnaW4oY29uc3QgVVJMJiB1cmwpCiAgICAgcmV0dXJuIHVybC5zdHJp
bmcoKS5zdWJzdHJpbmcoc3RhcnRJbmRleCwgZW5kSW5kZXggLSBzdGFydEluZGV4IC0gMSkgPT0g
Im51bGwiOwogfQogCi12b2lkIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVS
TChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNV
UkwpCit2b2lkIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChTZWN1cml0
eU9yaWdpbiogb3JpZ2luLCBjb25zdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSYgY29vcCwgY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMKQogewogICAgIC8vIElmIHRoZSBibG9iIFVS
TCBjb250YWlucyBudWxsIG9yaWdpbiwgYXMgaW4gdGhlIGNvbnRleHQgd2l0aCB1bmlxdWUgc2Vj
dXJpdHkgb3JpZ2luIG9yIGZpbGUgVVJMLCBzYXZlIHRoZSBtYXBwaW5nIGJldHdlZW4gdXJsIGFu
ZCBvcmlnaW4gc28gdGhhdCB0aGUgb3JpZ2luIGNhbiBiZSByZXRyaXZlZCB3aGVuIGRvaW5nIHNl
Y3VyaXR5IG9yaWdpbiBjaGVjay4KICAgICBpZiAob3JpZ2luICYmIGlzQmxvYlVSTENvbnRhaW5z
TnVsbE9yaWdpbih1cmwpKQogICAgICAgICBvcmlnaW5NYXAoKS0+YWRkKHVybC5zdHJpbmcoKSwg
b3JpZ2luKTsKIAogICAgIGlmIChpc01haW5UaHJlYWQoKSkgewotICAgICAgICBibG9iUmVnaXN0
cnkoKS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOworICAgICAgICBibG9iUmVnaXN0cnko
KS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwsIGNvb3ApOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbdXJsID0gdXJsLmlzb2xhdGVkQ29weSgpLCBz
cmNVUkwgPSBzcmNVUkwuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgYmxvYlJlZ2lzdHJ5KCku
cmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt1cmwg
PSB1cmwuaXNvbGF0ZWRDb3B5KCksIHNyY1VSTCA9IHNyY1VSTC5pc29sYXRlZENvcHkoKSwgY29v
cCA9IGNyb3NzVGhyZWFkQ29weShjb29wKV0geworICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdp
c3RlckJsb2JVUkwodXJsLCBzcmNVUkwsIGNvb3ApOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oCmluZGV4IDE0MTI4NDgy
ZmRjNTY3ZGRmNDA2MTM3MjU3MjM5MmE5YTZjNDExYmEuLmE2OGE1MWRmMGMzYTcxZjA0OGUzNmVh
YzFlMjExYzZjNTdlOTgwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhy
ZWFkYWJsZUJsb2JSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5oCkBAIC0zOCwxMSArMzgsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQmxvYlBhcnQ7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAorc3RydWN0IENyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5OworCiBjbGFzcyBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGgsIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25z
dCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYgYmxvYlBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKTsKLSAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJsb2JVUkwoU2VjdXJpdHlPcmlnaW4q
LCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCk7CisgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3km
LCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCk7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNV
UkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYg
bmV3VVJMLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5k
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVy
QmxvYlVSTChjb25zdCBVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IDMzOWNkN2QzMDE0ZTU1YWMxMGM1NGE0ZmZkZTY4OTdjMWZiZTZiNjcuLjk0NGU0
NDdiNWU0Zjc5MTJkOTI0YjIzNzFjOTk2NjQ4MjZjOWRlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTU1Miw3ICsxNTUyLDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlw
ZSYgY29udGVudFQKICAgICAgICAgaWYgKCFtX2Jsb2JVUkxGb3JSZWFkaW5nLmlzRW1wdHkoKSkK
ICAgICAgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnVucmVnaXN0ZXJCbG9iVVJMKG1f
YmxvYlVSTEZvclJlYWRpbmcpOwogICAgICAgICBtX2Jsb2JVUkxGb3JSZWFkaW5nID0gQmxvYlVS
TDo6Y3JlYXRlUHVibGljVVJMKCZkb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkpOwotICAgICAg
ICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwoJmRvY3VtZW50KCkuc2Vj
dXJpdHlPcmlnaW4oKSwgbV9ibG9iVVJMRm9yUmVhZGluZywgbV9ibG9iLT51cmwoKSk7CisgICAg
ICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTCgmZG9jdW1lbnQoKS5z
ZWN1cml0eU9yaWdpbigpLCBkb2N1bWVudCgpLmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCksIG1f
YmxvYlVSTEZvclJlYWRpbmcsIG1fYmxvYi0+dXJsKCkpOwogCiAgICAgICAgIGlmICghbV9wbGF5
ZXItPmxvYWQobV9ibG9iVVJMRm9yUmVhZGluZywgY29udGVudFR5cGUsIGtleVN5c3RlbSkpCiAg
ICAgICAgICAgICBtZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6
Rm9ybWF0RXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kuY3BwCmluZGV4IGMxMWM2ODdlNGYxNDFhMTU0NDBmMjgzYjgyNGNmOWMy
OWRmNjcwMDguLmE4MTFmNTlmNzNkZDFiOTYwMzQzMDg2MWQ2ZTc0Y2ZmNjg0YjAxMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5j
cHAKQEAgLTQ1LDcgKzQ1LDcgQEAgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSBvYnRhaW5Dcm9z
c09yaWdpbkVtYmVkZGVyUG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UKIAogICAgIENyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3kgcG9saWN5OwogICAgIC8vIEZJWE1FOiBhYm91dDpibGFuayBz
aG91bGQgYmUgbWFya2VkIGFzIHNlY3VyZSBhcyBwZXIgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dl
YmFwcHNlYy1zZWN1cmUtY29udGV4dHMvI3BvdGVudGlhbGx5LXRydXN0d29ydGh5LXVybC4KLSAg
ICBpZiAoIWNvbnRleHQuaXNTZWN1cmVDb250ZXh0KCkgJiYgY29udGV4dC51cmwoKSAhPSBhYm91
dEJsYW5rVVJMKCkpCisgICAgaWYgKCFjb250ZXh0LmlzU2VjdXJlQ29udGV4dCgpICYmIGNvbnRl
eHQudXJsKCkgIT0gYWJvdXRCbGFua1VSTCgpICYmICFjb250ZXh0LnVybCgpLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIHBvbGljeTsKIAogICAgIHBhcnNlQ09FUEhlYWRlcihIVFRQSGVhZGVy
TmFtZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSwgcG9saWN5LnZhbHVlLCBwb2xpY3kucmVw
b3J0aW5nRW5kcG9pbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
bk9wZW5lclBvbGljeS5jcHAKaW5kZXggZDIyYzAyZWI5Y2Q3OGU2YzhmNDljOTY5MGViYjk4ZmY3
NmJmZmE1MC4uYTgxMWI1ZWI2MWVkMTJlMzc0MjIyMDBlMzFjOWNjMzAyZjIwYzlmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuY3BwCkBA
IC0zMyw2ICszMywyMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBTdHJpbmcg
Y3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lUb1N0cmluZyhjb25zdCBDcm9zc09yaWdpbk9wZW5lclBv
bGljeVZhbHVlJiBjb29wKQoreworICAgIHN3aXRjaCAoY29vcCkgeworICAgIGNhc2UgQ3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9yaWdpbjoKKyAgICBjYXNlIENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5VmFsdWU6OlNhbWVPcmlnaW5QbHVzQ09FUDoKKyAgICAgICAgcmV0dXJuICJz
YW1lLW9yaWdpbiJfczsKKyAgICBjYXNlIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6OlNh
bWVPcmlnaW5BbGxvd1BvcHVwczoKKyAgICAgICAgcmV0dXJuICJzYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cHMiX3M7CisgICAgY2FzZSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVO
b25lOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuICJ1bnNhZmUtbm9uZSJfczsK
K30KKwogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0
bWwjb2J0YWluLWNvb3AKIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IG9idGFpbkNyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewpAQCAtNjEsNyArNzUsNyBAQCBDcm9zc09y
aWdpbk9wZW5lclBvbGljeSBvYnRhaW5Dcm9zc09yaWdpbk9wZW5lclBvbGljeShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZQogCiAgICAgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgcG9saWN5Owog
ICAgIC8vIEZJWE1FOiBhYm91dDpibGFuayBzaG91bGQgYmUgbWFya2VkIGFzIHNlY3VyZSBhcyBw
ZXIgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1zZWN1cmUtY29udGV4dHMvI3BvdGVu
dGlhbGx5LXRydXN0d29ydGh5LXVybC4KLSAgICBpZiAoIWNvbnRleHQuaXNTZWN1cmVDb250ZXh0
KCkgJiYgY29udGV4dC51cmwoKSAhPSBhYm91dEJsYW5rVVJMKCkpCisgICAgaWYgKCFjb250ZXh0
LmlzU2VjdXJlQ29udGV4dCgpICYmIGNvbnRleHQudXJsKCkgIT0gYWJvdXRCbGFua1VSTCgpICYm
ICFjb250ZXh0LnVybCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHBvbGljeTsKIAogICAg
IHBhcnNlQ09PUChIVFRQSGVhZGVyTmFtZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3ksIHBvbGlj
eS52YWx1ZSwgcG9saWN5LnJlcG9ydGluZ0VuZHBvaW50KTsKQEAgLTY5LDQgKzgzLDM0IEBAIENy
b3NzT3JpZ2luT3BlbmVyUG9saWN5IG9idGFpbkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlCiAgICAgcmV0dXJuIHBvbGljeTsKIH0KIAorQ3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3kgQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k6Omlzb2xhdGVkQ29weSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgdmFsdWUsCisgICAgICAgIHJlcG9ydGluZ0Vu
ZHBvaW50Lmlzb2xhdGVkQ29weSgpLAorICAgICAgICByZXBvcnRPbmx5VmFsdWUsCisgICAgICAg
IHJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludC5pc29sYXRlZENvcHkoKQorICAgIH07Cit9CisK
K3ZvaWQgYWRkQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lIZWFkZXJzKFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBjb25zdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSYgY29vcCkKK3sKKyAgICBp
ZiAoY29vcC52YWx1ZSAhPSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVOb25l
KSB7CisgICAgICAgIGlmIChjb29wLnJlcG9ydGluZ0VuZHBvaW50LmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3ksIGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VG9TdHJpbmcoY29vcC52
YWx1ZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQSGVhZGVy
RmllbGQoSFRUUEhlYWRlck5hbWU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5LCBtYWtlU3RyaW5n
KGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5VG9TdHJpbmcoY29vcC52YWx1ZSksICI7IHJlcG9ydC10
bz1cIiIsIGNvb3AucmVwb3J0aW5nRW5kcG9pbnQsICdcIicpKTsKKyAgICAgICAgaWYgKGNvb3Au
dmFsdWUgPT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9yaWdpblBsdXNDT0VQ
KQorICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1l
OjpDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5LCAicmVxdWlyZS1jb3JwIl9zKTsgLy8gRklYTUU6
IFBhc3MgaW4gY29lcCBhbmQgc2V0IGhlYWRlciB2YWx1ZSBjb3JyZWN0bHkuCisgICAgfQorICAg
IGlmIChjb29wLnJlcG9ydE9ubHlWYWx1ZSAhPSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVl
OjpVbnNhZmVOb25lKSB7CisgICAgICAgIGlmIChjb29wLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRw
b2ludC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQo
SFRUUEhlYWRlck5hbWU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5UmVwb3J0T25seSwgY3Jvc3NP
cmlnaW5PcGVuZXJQb2xpY3lUb1N0cmluZyhjb29wLnJlcG9ydE9ubHlWYWx1ZSkpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRl
ck5hbWU6OkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5UmVwb3J0T25seSwgbWFrZVN0cmluZyhjcm9z
c09yaWdpbk9wZW5lclBvbGljeVRvU3RyaW5nKGNvb3AucmVwb3J0T25seVZhbHVlKSwgIjsgcmVw
b3J0LXRvPVwiIiwgY29vcC5yZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQsICdcIicpKTsKKyAg
ICAgICAgaWYgKGNvb3AucmVwb3J0T25seVZhbHVlID09IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5
VmFsdWU6OlNhbWVPcmlnaW5QbHVzQ09FUCkKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeVJlcG9y
dE9ubHksICJyZXF1aXJlLWNvcnAiX3MpOyAvLyBGSVhNRTogUGFzcyBpbiBjb2VwIGFuZCBzZXQg
aGVhZGVyIHZhbHVlIGNvcnJlY3RseS4KKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbk9wZW5lclBv
bGljeS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgK
aW5kZXggZjNkOTFkYjc1NWU0MWU3Yzc2ODA5NzRlYWM2ZDAwNmM3ZDNkNGY1Ni4uMWU1OWNlMmQ2
NTVlZWM1NWJhNzU0NDZiYWVmZDE1NzBkZDFkNWEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgKQEAgLTQ4LDggKzQ4LDU0IEBAIHN0cnVj
dCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSB7CiAgICAgU3RyaW5nIHJlcG9ydGluZ0VuZHBvaW50
OwogICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWUgcmVwb3J0T25seVZhbHVlIHsgQ3Jv
c3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSB9OwogICAgIFN0cmluZyByZXBv
cnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQ7CisKKyAgICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBp
c29sYXRlZENvcHkoKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k+IGRlY29kZShEZWNvZGVyJik7
CiB9OwogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENyb3NzT3JpZ2luT3BlbmVyUG9s
aWN5JiBhLCBjb25zdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSYgYikKK3sKKyAgICByZXR1cm4g
YS52YWx1ZSA9PSBiLnZhbHVlICYmIGEucmVwb3J0aW5nRW5kcG9pbnQgPT0gYi5yZXBvcnRpbmdF
bmRwb2ludCAmJiBhLnJlcG9ydE9ubHlWYWx1ZSA9PSBiLnJlcG9ydE9ubHlWYWx1ZSAmJiBhLnJl
cG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCA9PSBiLnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2lu
dDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3k6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwg
dmFsdWUgPDwgcmVwb3J0aW5nRW5kcG9pbnQgPDwgcmVwb3J0T25seVZhbHVlIDw8IHJlcG9ydE9u
bHlSZXBvcnRpbmdFbmRwb2ludDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6
b3B0aW9uYWw8Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3k+IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPENyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5VmFsdWU+IHZhbHVlOworICAgIGRlY29kZXIgPj4gdmFsdWU7CisgICAg
aWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiByZXBvcnRpbmdFbmRwb2ludDsKKyAgICBkZWNvZGVyID4+IHJlcG9ydGlu
Z0VuZHBvaW50OworICAgIGlmICghcmVwb3J0aW5nRW5kcG9pbnQpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPENyb3NzT3JpZ2luT3BlbmVyUG9saWN5
VmFsdWU+IHJlcG9ydE9ubHlWYWx1ZTsKKyAgICBkZWNvZGVyID4+IHJlcG9ydE9ubHlWYWx1ZTsK
KyAgICBpZiAoIXJlcG9ydE9ubHlWYWx1ZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiByZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQ7
CisgICAgZGVjb2RlciA+PiByZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQ7CisgICAgaWYgKCFy
ZXBvcnRPbmx5UmVwb3J0aW5nRW5kcG9pbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICByZXR1cm4ge3sKKyAgICAgICAgKnZhbHVlLAorICAgICAgICBXVEZNb3ZlKCpyZXBv
cnRpbmdFbmRwb2ludCksCisgICAgICAgICpyZXBvcnRPbmx5VmFsdWUsCisgICAgICAgIFdURk1v
dmUoKnJlcG9ydE9ubHlSZXBvcnRpbmdFbmRwb2ludCkKKyAgICB9fTsKK30KKwogLy8gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjY29vcC1lbmZvcmNl
bWVudC1yZXN1bHQKIHN0cnVjdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuZm9yY2VtZW50UmVz
dWx0IHsKICAgICBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggeyBmYWxzZSB9
OwpAQCAtNjEsNSArMTA3LDIwIEBAIHN0cnVjdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuZm9y
Y2VtZW50UmVzdWx0IHsKIH07CiAKIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IG9idGFpbkNyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0Jik7CitXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENyb3NzT3JpZ2luT3Bl
bmVyUG9saWN5SGVhZGVycyhSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgQ3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3kmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDcm9zc09yaWdpbk9wZW5l
clBvbGljeVZhbHVlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJD
b3JlOjpDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlLAorICAgIFdlYkNvcmU6OkNyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUsCisgICAgV2ViQ29yZTo6Q3Jvc3NPcmln
aW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9yaWdpbiwKKyAgICBXZWJDb3JlOjpDcm9zc09yaWdp
bk9wZW5lclBvbGljeVZhbHVlOjpTYW1lT3JpZ2luUGx1c0NPRVAsCisgICAgV2ViQ29yZTo6Q3Jv
c3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6U2FtZU9yaWdpbkFsbG93UG9wdXBzCisgICAgPjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JEYXRhLmNwcAppbmRleCAzOGNiNGQxNzJkMzQ5OTU3YTM2MWVlNTFkMmMwYzE2NzQ2
NmRhMDcxLi41MGE0MWMxODE5OGMwMzJiZjYzM2Q4OGZmYmI3NDQ3NTk5MjgxM2U4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcApAQCAtNzgsNiArNzgs
MTQgQEAgdm9pZCBCbG9iRGF0YTo6YXBwZW5kRmlsZShSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNl
PiYmIGZpbGUpCiAgICAgbV9pdGVtcy5hcHBlbmQoQmxvYkRhdGFJdGVtKFdURk1vdmUoZmlsZSkp
KTsKIH0KIAorUmVmPEJsb2JEYXRhPiBCbG9iRGF0YTo6Y2xvbmUoKSBjb25zdAoreworICAgIGF1
dG8gYmxvYkRhdGEgPSBCbG9iRGF0YTo6Y3JlYXRlKG1fY29udGVudFR5cGUpOworICAgIGJsb2JE
YXRhLT5tX2Nvb3AgPSBtX2Nvb3A7CisgICAgYmxvYkRhdGEtPm1faXRlbXMgPSBtX2l0ZW1zOwor
ICAgIHJldHVybiBibG9iRGF0YTsKK30KKwogdm9pZCBCbG9iRGF0YTo6YXBwZW5kRmlsZShCbG9i
RGF0YUZpbGVSZWZlcmVuY2UqIGZpbGUsIGxvbmcgbG9uZyBvZmZzZXQsIGxvbmcgbG9uZyBsZW5n
dGgpCiB7CiAgICAgbV9pdGVtcy5hcHBlbmQoQmxvYkRhdGFJdGVtKGZpbGUsIG9mZnNldCwgbGVu
Z3RoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JE
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmgKaW5kZXgg
MzU1MGE3NjA3NjM4YTRiNGExY2RmNDM2NzEwNDU2NTQzMmE2MTg4MS4uOWM1NTRiMGNkNmY4ZjAx
ZDE2ZjkzNWQ2NzhjNWQ1OTgwN2RlN2FjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQmxvYkRhdGEuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBCbG9iRGF0YV9oCiAK
ICNpbmNsdWRlICJCbG9iRGF0YUZpbGVSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJDcm9zc09yaWdp
bk9wZW5lclBvbGljeS5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVEYXRhQnVmZmVyLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KQEAgLTEwNSwxMiArMTA2LDE3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRUeXBlOyB9CiAKKyAgICBjb25zdCBD
cm9zc09yaWdpbk9wZW5lclBvbGljeSYgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKSBjb25zdCB7
IHJldHVybiBtX2Nvb3A7IH0KKyAgICB2b2lkIHNldENyb3NzT3JpZ2luT3BlbmVyUG9saWN5KGNv
bnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjb29wKSB7IG1fY29vcCA9IGNvb3A7IH0KKwog
ICAgIGNvbnN0IEJsb2JEYXRhSXRlbUxpc3QmIGl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9pdGVt
czsgfQogICAgIHZvaWQgc3dhcEl0ZW1zKEJsb2JEYXRhSXRlbUxpc3QmKTsKIAogICAgIHZvaWQg
YXBwZW5kRGF0YShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYpOwogICAgIHZvaWQgYXBwZW5k
RmlsZShSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmKTsKIAorICAgIFJlZjxCbG9iRGF0YT4g
Y2xvbmUoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQmxvYlJlZ2lzdHJ5
SW1wbDsKICAgICBCbG9iRGF0YShjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAgLTExOSw2
ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwZW5kRmlsZShCbG9iRGF0YUZpbGVSZWZl
cmVuY2UqLCBsb25nIGxvbmcgb2Zmc2V0LCBsb25nIGxvbmcgbGVuZ3RoKTsKIAogICAgIFN0cmlu
ZyBtX2NvbnRlbnRUeXBlOworICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IG1fY29vcDsKICAg
ICBCbG9iRGF0YUl0ZW1MaXN0IG1faXRlbXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAppbmRleCA2ODlkMzE5MDcxMDhkYzQ0Mzk4MDRm
MWU1NDIyNjllY2I5ZTE4YjdmLi5lMjQ3ZTg1NDRjMmY2MmVlZmJmZGZiMTBkYzAwNTIwN2IzMDRj
YzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5
LmgKQEAgLTMxLDYgKzMxLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxvcHRpb25h
bD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
MCw2ICs0MSw4IEBAIGNsYXNzIEJsb2JQYXJ0OwogY2xhc3MgQmxvYlJlZ2lzdHJ5OwogY2xhc3Mg
QmxvYlJlZ2lzdHJ5SW1wbDsKIAorc3RydWN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5OworCiBX
RUJDT1JFX0VYUE9SVCBCbG9iUmVnaXN0cnkmIGJsb2JSZWdpc3RyeSgpOwogCiAvLyBCbG9iUmVn
aXN0cnkgaXMgbm90IHRocmVhZC1zYWZlLiBJdCBzaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBt
YWluIHRocmVhZC4KQEAgLTUzLDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPEJsb2JQYXJ0PiYmLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKSA9IDA7CiAgICAgCiAgICAgLy8gUmVnaXN0ZXJzIGEgbmV3IGJsb2Ig
VVJMIHJlZmVycmluZyB0byB0aGUgYmxvYiBkYXRhIGlkZW50aWZpZWQgYnkgdGhlIHNwZWNpZmll
ZCBzcmNVUkwuCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBj
b25zdCBVUkwmIHNyY1VSTCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkwo
Y29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVyUG9s
aWN5JikgPSAwOwogCiAgICAgLy8gUmVnaXN0ZXJzIGEgbmV3IGJsb2IgVVJMIHJlZmVycmluZyB0
byB0aGUgYmxvYiBkYXRhIGlkZW50aWZpZWQgYnkgdGhlIHNwZWNpZmllZCBzcmNVUkwgb3IsIGlm
IG5vbmUgZm91bmQsIHJlZmVycmluZyB0byB0aGUgZmlsZSBmb3VuZCBhdCB0aGUgZ2l2ZW4gcGF0
aC4KICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQo
Y29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVu
Y2U+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCmluZGV4IDIwODE4
NTg3YmUwMzAxMWU2OGNiM2U0ZTcyMWJmMjBlNjI5M2ZkZDkuLmY1NWY1YjM1ZGRhNzdiYzMwZDg3
OTcxNzg1MGJhYzFhNTMyMTU5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcApAQCAtMTUyLDE5ICsxNTIsMjUgQEAgdm9p
ZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFZlY3Rv
cjxCbG9iUGFydD4mJiBibG9iUGEKICAgICBhZGRCbG9iRGF0YSh1cmwuc3RyaW5nKCksIFdURk1v
dmUoYmxvYkRhdGEpKTsKIH0KIAotdm9pZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JV
UkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMKQordm9pZCBCbG9iUmVnaXN0cnlJ
bXBsOjpyZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBj
b25zdCBDcm9zc09yaWdpbk9wZW5lclBvbGljeSYgY29vcCkKIHsKLSAgICByZWdpc3RlckJsb2JV
UkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgbnVsbHB0ciwgeyB9KTsKKyAgICBy
ZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgbnVsbHB0ciwg
eyB9LCBjb29wKTsKIH0KIAotdm9pZCBCbG9iUmVnaXN0cnlJbXBsOjpyZWdpc3RlckJsb2JVUkxP
cHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIFJl
ZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgZmlsZSwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSkKK3ZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZp
bGVCYWNrZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRh
dGFGaWxlUmVmZXJlbmNlPiYmIGZpbGUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0
IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjb29wKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgcmVnaXN0ZXJCbG9iUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3RvcigpOwogCiAg
ICAgQmxvYkRhdGEqIHNyYyA9IGdldEJsb2JEYXRhRnJvbVVSTChzcmNVUkwpOwogICAgIGlmIChz
cmMpIHsKLSAgICAgICAgYWRkQmxvYkRhdGEodXJsLnN0cmluZygpLCBzcmMpOworICAgICAgICBp
ZiAoc3JjLT5jcm9zc09yaWdpbk9wZW5lclBvbGljeSgpID09IGNvb3ApCisgICAgICAgICAgICBh
ZGRCbG9iRGF0YSh1cmwuc3RyaW5nKCksIHNyYyk7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgYXV0byBjbG9uZSA9IHNyYy0+Y2xvbmUoKTsKKyAgICAgICAgICAgIGNsb25lLT5zZXRDcm9z
c09yaWdpbk9wZW5lclBvbGljeShjb29wKTsKKyAgICAgICAgICAgIGFkZEJsb2JEYXRhKHVybC5z
dHJpbmcoKSwgV1RGTW92ZShjbG9uZSkpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTE3Myw2ICsxNzksNyBAQCB2b2lkIEJsb2JSZWdpc3RyeUltcGw6OnJlZ2lzdGVy
QmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYgdXJsLCBjb25zdAogCiAgICAg
YXV0byBiYWNraW5nRmlsZSA9IEJsb2JEYXRhOjpjcmVhdGUoY29udGVudFR5cGUpOwogICAgIGJh
Y2tpbmdGaWxlLT5hcHBlbmRGaWxlKGZpbGUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgYmFja2lu
Z0ZpbGUtPnNldENyb3NzT3JpZ2luT3BlbmVyUG9saWN5KGNvb3ApOwogCiAgICAgYWRkQmxvYkRh
dGEodXJsLnN0cmluZygpLCBXVEZNb3ZlKGJhY2tpbmdGaWxlKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCmluZGV4IDU3NDAz
NmE1NmQ0MWJkYTJkNDNhNDNkNWFhZjM4ODkwNjIzZjZjYjYuLjcxYjk0NzAzNWU5OTcwYjcxYTYy
ZWExMWYwYTA5MmVmNDg0OTRiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIFJlc291
cmNlSGFuZGxlOwogY2xhc3MgUmVzb3VyY2VIYW5kbGVDbGllbnQ7CiBjbGFzcyBSZXNvdXJjZVJl
cXVlc3Q7CiBjbGFzcyBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjsKK3N0cnVjdCBDcm9zc09yaWdpbk9w
ZW5lclBvbGljeTsKIAogLy8gQmxvYlJlZ2lzdHJ5SW1wbCBpcyBub3QgdGhyZWFkLXNhZmUuIEl0
IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIG1haW4gdGhyZWFkLgogY2xhc3MgV0VCQ09SRV9F
WFBPUlQgQmxvYlJlZ2lzdHJ5SW1wbCB7CkBAIC02MSw4ICs2Miw4IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmLCBSZWY8QmxvYkRhdGFGaWxlUmVm
ZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVy
QmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUpOwotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVS
TCYgc3JjVVJMKTsKLSAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2Vk
KGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJl
bmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxv
YlVSTChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgQ3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3kmKTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2Vk
KGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJl
bmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBDcm9zc09yaWdpbk9wZW5l
clBvbGljeSYpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwg
Y29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBV
UkwmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDllMjNiMGJmNmM1YmU5ZmY5MDVlYzExYzFiZDNhZDA5
MDY4YzNmZjUuLjMwYzgxNjU0NDljNDEzYmZiNjQwYTZmMDdjMWY4MDA5ZmZkNzMyODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhh
bmRsZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkFzeW5jRmlsZVN0cmVhbS5o
IgogI2luY2x1ZGUgIkJsb2JEYXRhLmgiCisjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xp
Y3kuaCIKICNpbmNsdWRlICJGaWxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKQEAgLTU3Niw2ICs1NzcsNyBAQCB2b2lkIEJs
b2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPblN1Y2Nlc3MoKQogCiAgICAgcmVzcG9u
c2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSwgbV9ibG9i
RGF0YS0+Y29udGVudFR5cGUoKSk7CiAgICAgcmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpDb250ZW50TGVuZ3RoLCBTdHJpbmc6Om51bWJlcihtX3RvdGFsUmVtYWlu
aW5nU2l6ZSkpOworICAgIGFkZENyb3NzT3JpZ2luT3BlbmVyUG9saWN5SGVhZGVycyhyZXNwb25z
ZSwgbV9ibG9iRGF0YS0+Y3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKSk7CiAKICAgICBpZiAoaXNS
YW5nZVJlcXVlc3QpCiAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6Q29udGVudFJhbmdlLCBQYXJzZWRDb250ZW50UmFuZ2UobV9yYW5nZU9mZnNldCwg
bV9yYW5nZUVuZCwgbV90b3RhbFNpemUpLmhlYWRlclZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCA4ODQzODJkNGNmNmI1NGNlMzk3YWNiOTA4ODE2NDUwYmI2YzBkMzVj
Li5hYzc3ZTQxYTQ3MjZiOTNmNjExYmQzNDJlMjBlNGE0NGE1OWQ0MzcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcApAQCAtODI4LDEzICs4MjgsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8
QmxvYlAKICAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkwodXJsLCBX
VEZNb3ZlKGJsb2JQYXJ0cyksIGNvbnRlbnRUeXBlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMRnJvbVVSTChjb25zdCBVUkwmIHVybCwg
Y29uc3QgVVJMJiBzcmNVUkwpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpy
ZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwg
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmJiBjb29wKQogewogICAgIGF1dG8qIHNlc3Npb24gPSBu
ZXR3b3JrU2Vzc2lvbigpOwogICAgIGlmICghc2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsK
KyAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkws
IFdURk1vdmUoY29vcCkpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwgY29u
c3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUpCkBAIC04NDUsNyArODQ1LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3Qg
VVIKICAgICBpZiAoIXNlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlc3Npb24tPmJs
b2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3Jj
VVJMLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZp
bGVCYWNrZWRQYXRoKSwgY29udGVudFR5cGUpOworICAgIHNlc3Npb24tPmJsb2JSZWdpc3RyeSgp
LnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBCbG9iRGF0
YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVCYWNrZWRQYXRo
KSwgY29udGVudFR5cGUsIHsgfSk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwm
IHNyY1VSTCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZDkyNDMyMTM5Mjk4ZGJkNjNmNGE3
ZTE4YzNmMGIwMWRkZjE0ODllZS4uNmEwNTk0Y2UxNTYxOGFiMzI3ZTA2ZWExZjZjYWE0YjhhZGNj
NmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNjYsNiArNjYsNyBAQCBjbGFzcyBS
ZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogZW51bSBjbGFzcyBTdG9yYWdl
QWNjZXNzU2NvcGUgOiBib29sOwogZW51bSBjbGFzcyBTaG91bGRBc2tJVFAgOiBib29sOworc3Ry
dWN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5Owogc3RydWN0IFJlcXVlc3RTdG9yYWdlQWNjZXNz
UmVzdWx0Owogc3RydWN0IFNhbWVTaXRlSW5mbzsKIApAQCAtMjI5LDcgKzIzMCw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCwgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpCbG9iUGFydD4mJiwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSk7Ci0gICAgdm9pZCByZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNv
bnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZy
b21VUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIFdlYkNvcmU6OkNyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5JiYpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVC
YWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJh
Y2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGludDY0X3Qgc3Rh
cnQsIGludDY0X3QgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIGJs
b2JTaXplKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDc5NmJmYTQ0
Y2MyNjI3MDg3NTNlNzYzMTgzYTVhMDE3YzdhZmZjMzIuLmZhOTBmZjRhNmQ4OTM1OThlZTBhZDA5
MTMzNTEwZWU1ZWE5MmU3YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtNTAsNyArNTAsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBSZWdpc3RlckZpbGVCbG9iVVJMKFVS
TCB1cmwsIFN0cmluZyBwYXRoLCBTdHJpbmcgcmVwbGFjZW1lbnRQYXRoLCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBleHRlbnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlwZSkK
ICAgICBSZWdpc3RlckJsb2JVUkwoVVJMIHVybCwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiBi
bG9iUGFydHMsIFN0cmluZyBjb250ZW50VHlwZSkKLSAgICBSZWdpc3RlckJsb2JVUkxGcm9tVVJM
KFVSTCB1cmwsIFVSTCBzcmNVUkwpCisgICAgUmVnaXN0ZXJCbG9iVVJMRnJvbVVSTChVUkwgdXJs
LCBVUkwgc3JjVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgY29v
cCkKICAgICBSZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChVUkwgdXJsLCBVUkwg
c3JjVVJMLCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgsIFN0cmluZyBjb250ZW50VHlwZSkKICAgICBS
ZWdpc3RlckJsb2JVUkxGb3JTbGljZShVUkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0
LCBpbnQ2NF90IGVuZCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFVucmVnaXN0ZXJCbG9iVVJM
KFVSTCB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFza0Jsb2IuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2tCbG9iLmNwcAppbmRleCAxYjY3NGU0ZjhkNTZjNmNlZWYxMWY2NzUwYzE2ZDk3Y2Q3
ZDdjMjI1Li40MDM2ZmM5NTExZDE3YzIyOWJiYjUyYzlkMDFiMTk2NDUwZTBlOTc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5j
cHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0FzeW5jRmlsZVN0cmVhbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5
SW1wbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0hUVFBQYXJzZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXJzZWRD
b250ZW50UmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KQEAgLTI2
NCw2ICsyNjUsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmRpc3BhdGNoRGlkUmVjZWl2
ZVJlc3BvbnNlKEVycm9yIGVycm9yQ29kZSkKIAogICAgICAgICByZXNwb25zZS5zZXRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlLCBtX2Jsb2JEYXRhLT5jb250ZW50
VHlwZSgpKTsKICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJO
YW1lOjpDb250ZW50TGVuZ3RoLCBTdHJpbmc6Om51bWJlcihtX3RvdGFsUmVtYWluaW5nU2l6ZSkp
OworICAgICAgICBhZGRDcm9zc09yaWdpbk9wZW5lclBvbGljeUhlYWRlcnMocmVzcG9uc2UsIG1f
YmxvYkRhdGEtPmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkpOwogCiAgICAgICAgIGlmIChpc1Jh
bmdlUmVxdWVzdCkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChIVFRQ
SGVhZGVyTmFtZTo6Q29udGVudFJhbmdlLCBQYXJzZWRDb250ZW50UmFuZ2UobV9yYW5nZU9mZnNl
dCwgbV9yYW5nZUVuZCwgbV90b3RhbFNpemUpLmhlYWRlclZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRl
Z2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA3OTY2MmVmYmQxMTY4NjE5ZmZjZjY1Y2IyODg1YzFm
NDAzNWI2YjIwLi4yNTkwN2ZmYzBhNDllMjI2NzZjMmUxOTM2YjAyMWJmM2Y5MjNiNTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNTksNyArNTksNyBAQCBCbG9iUmVn
aXN0cnkqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0
cnkoKQogICAgIGNsYXNzIEVtcHR5QmxvYlJlZ2lzdHJ5IDogcHVibGljIFdlYkNvcmU6OkJsb2JS
ZWdpc3RyeSB7CiAgICAgICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmLCBS
ZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAg
ICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPEJsb2JQYXJ0PiYmLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
Ci0gICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3Jj
VVJMKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBXZWJDb3JlOjpD
cm9zc09yaWdpbk9wZW5lclBvbGljeSYpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
ICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBV
UkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYsIGNvbnN0
IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQsIGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAg
dm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9C
bG9iUmVnaXN0cnlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9C
bG9iUmVnaXN0cnlQcm94eS5jcHAKaW5kZXggMDA1M2I3ZWEyMmI5ZjIyMDdiZjFkZTg2NTFlODBk
Y2UyYzk0MThiNy4uM2FmNDliNDM3MmU4Njc3YTU3ZDJlZmM4ZTg4Yzg2NzMzOTQ1NWRjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3Ry
eVByb3h5LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JE
YXRhRmlsZVJlZmVyZW5jZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC01Myw5ICs1NCw5IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJl
Z2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgVmVjdG9yPEJsb2JQYXJ0PiYmIGJsb2JQCiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpSZWdpc3RlckJsb2JVUkwodXJsLCBibG9iUGFydHMsIGNvbnRlbnRUeXBlKSwgMCk7CiB9
CiAKLXZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVy
bCwgY29uc3QgVVJMJiBzcmNVUkwpCit2b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJs
b2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBDcm9zc09yaWdp
bk9wZW5lclBvbGljeSYgY29vcCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVyQmxvYlVSTEZyb21VUkwgeyB1
cmwsIHNyY1VSTCB9LCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVyQmxvYlVSTEZyb21VUkwgeyB1cmwsIHNy
Y1VSTCwgY29vcCB9LCAwKTsKIH0KIAogdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJC
bG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3Jj
VVJMLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIGZpbGUsIGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAppbmRleCAxODI0MmY1MmVjYjVmY2M3MTNiYjAx
M2VmN2NhYmE5Zjc1OWE1Zjg0Li4wYjFjMTc4YTgzMGNjMGEyYjAzOWM0YTE0YWE0MjMwMmRjZDcz
OGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JS
ZWdpc3RyeVByb3h5LmgKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgQmxvYlJlZ2lzdHJ5UHJveHkg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5IHsKIHB1YmxpYzoKICAgICB2b2lk
IHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgUmVmPFdlYkNvcmU6OkJsb2JEYXRhRmls
ZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8
V2ViQ29yZTo6QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsOwot
ICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKSBm
aW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNy
Y1VSTCwgY29uc3QgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kmKSBmaW5hbDsKICAg
ICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNv
bnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYm
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJC
bG9iVVJMKGNvbnN0IFVSTCYpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xp
Y2UoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBs
b25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW0KaW5kZXggOGJiMjhiOWY3OTBmY2Q3ZmFjZmU3MzU2NDYxNTgxOWYyYjY0
OGFmMy4uZjBmYmEzZWQ4MTViNzY2YjhhY2U5OWY1ZTY4ZjNjMzhhODg2MzlkMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtODUsOCArODUsOCBAQCBjbGFzcyBXZWJCbG9iUmVn
aXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsKIHByaXZhdGU6CiAgICAgdm9pZCBy
ZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJl
bmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgV1RGTW92
ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChj
b25zdCBVUkwmIHVybCwgVmVjdG9yPEJsb2JQYXJ0PiYmIHBhcnRzLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTCh1cmwsIFdU
Rk1vdmUocGFydHMpLCBjb250ZW50VHlwZSk7IH0KLSAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChj
b25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnku
cmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsgfQotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
T3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBS
ZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxPcHRpb25h
bGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlw
ZSk7IH0KKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJM
JiBzcmNVUkwsIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjb29wKSBmaW5hbCB7IG1f
YmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VSTCwgY29vcCk7IH0KKyAgICB2
b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVu
Y2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVn
aXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIFdURk1vdmUocmVm
ZXJlbmNlKSwgY29udGVudFR5cGUsIHsgfSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZv
clNsaWNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0
LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxv
YlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKHVybCwgc3JjVVJMLCBzdGFydCwgZW5k
LCBjb250ZW50VHlwZSk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYg
dXJsKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnVucmVnaXN0ZXJCbG9iVVJMKHVybCk7IH0KICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJiB1cmwpIGZpbmFsIHsgcmV0
dXJuIG1fYmxvYlJlZ2lzdHJ5LmJsb2JTaXplKHVybCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwCmluZGV4IGNmNmE2ODgzOTIwYzFjMjFkMDYwNGY0ODlkNjJiODI3MWQ2Zjg3OGIu
LjM4YjY4Mzk0MGM4ZGY4ZmJmMTJlNGQ3NDU5ZjQwZmE0NzkwN2U2NzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtODEsOCArODEsOCBAQCBjbGFzcyBXZWJCbG9iUmVnaXN0
cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsKIHByaXZhdGU6CiAgICAgdm9pZCByZWdp
c3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNl
PiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkg
ZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgV1RGTW92ZShy
ZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25z
dCBVUkwmIHVybCwgVmVjdG9yPEJsb2JQYXJ0PiYmIHBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTCh1cmwsIFdURk1v
dmUocGFydHMpLCBjb250ZW50VHlwZSk7IH0KLSAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25z
dCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVn
aXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsgfQotICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0
aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQ
dHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5
RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7
IH0KKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBz
cmNVUkwsIGNvbnN0IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5JiBjb29wKSBmaW5hbCB7IG1fYmxv
YlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VSTCwgY29vcCk7IH0KKyAgICB2b2lk
IHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2Us
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0
ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIFdURk1vdmUocmVmZXJl
bmNlKSwgY29udGVudFR5cGUsIHsgfSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNs
aWNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBs
b25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJl
Z2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKHVybCwgc3JjVVJMLCBzdGFydCwgZW5kLCBj
b250ZW50VHlwZSk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJs
KSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnVucmVnaXN0ZXJCbG9iVVJMKHVybCk7IH0KICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJiB1cmwpIGZpbmFsIHsgcmV0dXJu
IG1fYmxvYlJlZ2lzdHJ5LmJsb2JTaXplKHVybCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IGU4YmM5YjQ3MjI1Y2ZlNzgyMTQ2NWY1ODJjNjVmOTc1MjQyZjRlZGUuLmFkMjdi
MGY4ZmM0NWJkM2QxY2FmMWY4MzFkOGRhNjM0MWY5NWU0NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA4LTEwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5
IHN1cHBvcnQgZm9yIEJsb2IgVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI4OTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXUFQgdGVzdCB0aGF0IGlzIG5vdyBwYXNzaW5nLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDgtMTAgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcG9ydCBjc3MvY3Nz
LXNpemluZy9hc3BlY3QtcmF0aW8gdGVzdHMgZnJvbSBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IGFhZmIwMWUwZTBiNjdiZWM1ZGMyMjkxNDg4YTlkZWYwNWQzYmU0ZWQuLjcxZjVjYTNiNWNiYzJj
ZjU4NzcxZWVlYjM1Y2YzMDViY2QwMzU5MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzE5LDEw
ICs3MTksNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nIFsgU2tpcAogIyB0ZXN0IGlzIHNlcnZlZCBvdmVy
IEhUVFAuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LW9wZW5lci1wb2xpY3kvbm8taHR0cHMuaHRtbCBbIFNraXAgXQogCi0jIENPT1AgdGVzdHMgdGhh
dCBhcmUgZmFpbGluZyBhbmQga2VlcCBwcmludGluZyBhIGRpZmZlcmVudCB1dWlkIGluIHRoZSBl
cnJvciBvdXRwdXQuCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLW9wZW5lci1wb2xpY3kvYmxvYi1wb3B1cC5odHRwcy5odG1sIFsgRmFpbHVyZSBQYXNz
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi0K
ICMgTmV3bHkgaW1wb3J0ZWQgV1BUIHRlc3RzIHRoYXQgYXJlIGNyYXNoaW5nLgogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3Ro
ZS1lbWJlZC1lbGVtZW50L2VtYmVkLXJlcHJlc2VudC1ub3RoaW5nLTA0Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIENyYXNoIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Jsb2It
cG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Jsb2ItcG9wdXAu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDVlZjk5YjY1M2Q5Zjc5MTMwNGE1YWQ0MmRlZDRmOWI1
ODVlZDI4ZWYuLmI0ZDU3ZDE2YTk0MWUwOTBlY2UxOTRlMWZkMTI2NDk5ZjcxNDczMjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
cm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICd3aW5kb3cub3BlbmVyLmZ1cnRoZXJQb3B1cCA9IHcnKQogCi1G
QUlMIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IGFuZCBhIGJsb2IgVVJMIHBvcHVwIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIDAgYnV0IGdvdCAzNgorUEFTUyBDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSBhbmQgYSBibG9iIFVSTCBwb3B1cAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>