<?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>223082</bug_id>
          
          <creation_ts>2021-03-11 12:05:13 -0800</creation_ts>
          <short_desc>Shutdown ANGLE on GPU process when last WebGL context is destroyed</short_desc>
          <delta_ts>2021-03-17 04:47:56 -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>WebGL</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>217211</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1738570</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-11 12:05:13 -0800</bug_when>
    <thetext>Shutdown ANGLE on GPU process when last WebGL context is destroyed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738889</commentid>
    <comment_count>1</comment_count>
      <attachid>423046</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-12 07:23:24 -0800</bug_when>
    <thetext>Created attachment 423046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738890</commentid>
    <comment_count>2</comment_count>
      <attachid>423047</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-12 07:27:59 -0800</bug_when>
    <thetext>Created attachment 423047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738898</commentid>
    <comment_count>3</comment_count>
      <attachid>423050</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-12 07:59:17 -0800</bug_when>
    <thetext>Created attachment 423050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738947</commentid>
    <comment_count>4</comment_count>
      <attachid>423062</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-12 10:42:55 -0800</bug_when>
    <thetext>Created attachment 423062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739073</commentid>
    <comment_count>5</comment_count>
      <attachid>423062</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-03-12 17:17:02 -0800</bug_when>
    <thetext>Comment on attachment 423062
Patch

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

Looks good. The retain/release code looks correct to me. A few small points; r+ though.

&gt; Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLEEGLUtilities.h:2
&gt; + * Copyright (C) 2020 Apple Inc. All rights reserved.

2021?

&gt; Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:55
&gt; +static constexpr Seconds dispatchReleaseAllResourcesIfUnusedTimeout = 0.2_s;

This feels like a short timeout to me. Consider bumping it up, maybe even to 1s or so.

&gt; Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:56
&gt; +static unsigned remoteGraphicsContextCount;

Guaranteed to be zero-initialized?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739079</commentid>
    <comment_count>6</comment_count>
      <attachid>423062</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-12 17:44:59 -0800</bug_when>
    <thetext>Comment on attachment 423062
Patch

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

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:56
&gt;&gt; +static unsigned remoteGraphicsContextCount;
&gt; 
&gt; Guaranteed to be zero-initialized?

Yes, globals like this are guaranteed to be zero-initialized by the C and C++ standards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739109</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-12 21:44:20 -0800</bug_when>
    <thetext>Internal memory benchmark observed 0.8-1.5% progression with this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739615</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-15 12:59:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/75442792&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740664</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-17 04:47:52 -0700</bug_when>
    <thetext>Committed r274557: &lt;https://commits.webkit.org/r274557&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423062.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423046</attachid>
            <date>2021-03-12 07:23:24 -0800</date>
            <delta_ts>2021-03-12 07:38:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223082-20210312172323.patch</filename>
            <type>text/plain</type>
            <size>16165</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUyNzQyNDNiNzg1Y2Y5
OWQ0ODYwMjk5ODhlYmMzYThlMTBmNTNhZC4uYTVkYjQ1M2I4NWM2ODBhMzdlYWI3NzkwYmVmOGEy
MTdkOWVmNGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTEyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgU2h1dGRvd24gQU5H
TEUgb24gR1BVIHByb2Nlc3Mgd2hlbiBsYXN0IFdlYkdMIGNvbnRleHQgaXMgZGVzdHJveWVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMwODIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCk6CisgICAgICAg
IEFkZCBhIGNhbGwgdGhhdCB1bmluaXRpYWxpemVzIHRoZSBBTkdMRSBkZWZhdWx0IGRpc3BsYXkg
aWYgdGhlcmUgYXJlIG5vIHVzZXMgb2YKKyAgICAgICAgdGhlIGRlZmF1bHQgZGlzcGxheS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpJbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTC5oOgorICAgICAgICBIb2xkIHRoZSBkZWZhdWx0IEVHTERpc3BsYXkgd2l0aCBh
IHNjb3BlZCBob2xkZXIgdGhhdCBjb3VudHMKKyAgICAgICAgdGhlIHJlZmVyZW5jZXMgdG8gdGhl
IGRlZmF1bHQgZGlzcGxheS4KKworCiAyMDIxLTAzLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
aWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gRW5jb2RpbmcgYnVmZmVyIGZv
ciBEaXNwbGF5TGlzdCBpdGVtcyBzaG91bGQgYmUgYWxpZ25lZCB0byA4IGJ5dGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDJhOGI2ZTQyN2JjNzU4MTQ3NjliMzBkMWZiODJjZjllNTBjOGUyNmUuLmFjYmFjNzI1ZGRi
NWNmMzEwYTIwYWEwY2M4NmIyMTM3YjNjMTQzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMjEtMDMtMTIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAg
ICAgICBTaHV0ZG93biBBTkdMRSBvbiBHUFUgcHJvY2VzcyB3aGVuIGxhc3QgV2ViR0wgY29udGV4
dCBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMzA4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNjaGVkdWxlIGEgY2hlY2sgZm9yIHJlbGVhc2luZyB0aGUgQU5HTEUgZGVmYXVsdCBk
aXNwbGF5IHdoZW4gZ2xvYmFsCisgICAgICAgIGNvdW50IG9mIHJlbW90ZSBncmFwaGljcyBjb250
ZXh0cyByZWFjaCB6ZXJvLiBUaGlzIHNob3VsZCBkZWNyZWFzZSB0aGUKKyAgICAgICAgbWVtb3J5
IHVzZSBvZiBzZXNzaW9ucyB3aGVyZSBXZWJHTCBpcyBub3QgYWx3YXlzIG9uLgorCisgICAgICAg
IERpc3BhdGNoIHRoZSBjaGVjayAwLjJzIGFmdGVyIGhpdHRpbmcgemVybywgc28gdGhhdCB0aGUg
b3B0aW1pemF0aW9uIHN0aWxsCisgICAgICAgIGFmZmVjdHMgcGFnZSBuYXZpZ2F0aW9ucyBidXQg
bWF5YmUgZG9lcyBub3QgcmVkdW5kYW50bHkgZGVpbml0aWFsaXplIC8KKyAgICAgICAgcmVpbml0
aWFsaXplIEFOR0xFIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGV4dCAjMSBpcyBjcmVhdGVk
IGFuZCBkZXN0cm95ZWQKKyAgICAgICAgZnJlcXVlbnRseS4KKworICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0
OjpkaXNwYXRjaFJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorCiAyMDIxLTAz
LTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IFZN
X0ZMQUdTX1BFUk1BTkVOVCBmb3IgdGhlIGNvbmZpZyB2bSBtYXBwaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDFhMDZiMGYzNGQ3MThhODY1NGQ0MDcxYWQ3NjdmOGI3YTM0Y2JkNzQuLjQ5YTRi
NzU0MDgzMjEyYzYyMWQ3OTllZWYyYzljNDhkYmFkMDBlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xNjQ1LDYgKzE2NDUsNyBAQCBpZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0V4dGVuc2lvbnNHTEFOR0xFLmNwcAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuY3BwCiAgICAgICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwCiAg
ICAgICAgICkKICAgICBlbHNlICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBkMzg1YTIy
NmQ3MDNiODdjMGU5MTU1ZGQ4ODczZGFjNzhlNGZhY2IzLi45NjgzMzMzNGRlMWZiYTM3MzMxYzBm
ZjMwODY2YWIwYzk4N2IxOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTYwOCw2ICs2
MDgsNyBAQCB0ZXN0aW5nL2NvY29hL1dlYlZpZXdWaXN1YWxJZGVudGlmaWNhdGlvbk92ZXJsYXku
bW0KIAogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5HTEUuY3BwIEBuby11
bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAg
QG5vLXVuaWZ5CitwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
VXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFy
eUFOR0xFU2V0dGluZy5jcHAgQG5vLXVuaWZ5CiAKIC8vIERlcml2ZWQgU291cmNlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEw
YzA1NGRjNDM5ODk3NTdjYjkzNGRiMjJmMjE3OGZmMGIxMThiNjAuLmFmOWUyMDhiNjE5ZTk3MjQ1
ZGU5ZTRkODEyM2EwYTA5MWZkODZkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNzEsNiArMjI3MSw4IEBACiAJCTdBRjlC
MjBGMThDRkI1RjQwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRjlCMjBCMThDRkI1RjMwMEM2NEJFRiAv
KiBKU1ZUVFJlZ2lvbkxpc3QuaCAqLzsgfTsKIAkJN0IxMDMzOUUyNTQ5NzIxNzAwQzhDMUFDIC8q
IEdyYXBoaWNzQ29udGV4dEdMQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0IxMDMzOUYyNTQ5NzIxRTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUMyNTQ5
NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCNDVBQjUwMjVGQjkzQkUwMEZE
MjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCNzc0QzYyMjVGQjkzNTUwMDkx
Mzk1RiAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcCAqLzsgfTsKKwkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Qjkw
NDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOTA0MTZF
MjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDM0NSwx
MCArMTAzNDcsMTIgQEAKIAkJN0IxMDMzOUEyNTQ5NzIwMDAwQzhDMUFDIC8qIEdyYXBoaWNzQ29u
dGV4dEdMQ1ZBTkdMRS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENW
QU5HTEUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5QzI1NDk3MjAx
MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdy
YXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjEwMzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTdCNDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdM
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0I2NEMwQjQyNTRDM0IxNjAwMDZCNEFGIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgx
NTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNl
R1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qjc3NEM2MjI1RkI5
MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8q
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRp
bGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dEdMQU5HTEVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRB
NDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI0NjgsNiArMjI0NzIsOCBAQAogCQkJCTZFMjdGMjQ0
MjI5QzlGOEQwMEYxRjYzMiAvKiBFeHRlbnNpb25zR0xBTkdMRS5oICovLAogCQkJCTZFMjdGMjQy
MjI5OENFNEIwMEYxRjYzMiAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCAqLywKIAkJCQk3
QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRVV0aWxpdGll
cy5oICovLAorCQkJCTdCNDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRH
TEFOR0xFRUdMVXRpbGl0aWVzLmggKi8sCisJCQkJN0I3NzRDNjIyNUZCOTM1NTAwOTEzOTVGIC8q
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuY3BwICovLAogCQkJCTZFMjkwODYx
MjI5REI5NTAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwICovLAogCQkJCTZF
MjkwODYzMjI5REI5NzAwMDA5ODZFMiAvKiBUZW1wb3JhcnlBTkdMRVNldHRpbmcuaCAqLywKIAkJ
CSk7CkBAIC0zMzMzNCw2ICszMzM0MCw3IEBACiAJCQkJQTE2NEEyNTUyMTM0QzFDQzAwNTA5MTU2
IC8qIEpTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUND
NTY3NTFGNDYxNDlEMDBBNDU1NUIgLyogSlNQYXltZW50TWV0aG9kRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFDQzU2NzcxRjQ2MTRBMjAwQTQ1NTVCIC8qIEpTUGF5bWVudE9wdGlvbnMuaCBp
biBIZWFkZXJzICovLAorCQkJCTdCNDVBQjU1MjVGQkE5REUwMEZEMjdGNCAvKiBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUNDNTY3OTFG
NDYxNEE3MDBBNDU1NUIgLyogSlNQYXltZW50UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTFGNjAwNTgxRjQ3NjUwNTAwNzdFODNGIC8qIEpTUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNjAwNTYxRjQ3NjUwNTAwNzdFODNGIC8qIEpTUGF5bWVu
dFJlcXVlc3RVcGRhdGVFdmVudEluaXQuaCBpbiBIZWFkZXJzICovLApAQCAtMzY1MzcsNiArMzY1
NDQsNyBAQAogCQkJCURFQ0E3REZCMUY5RUIzNjQwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMTcx
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E3REZDMUY5RUIzNjQwMEUzQjY2MSAvKiBVbmlm
aWVkU291cmNlMTcyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E3REZEMUY5RUIzNjQwMEUz
QjY2MSAvKiBVbmlmaWVkU291cmNlMTczLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdCNDVBQjUw
MjVGQjkzQkUwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E3REZFMUY5RUIzNjQwMEUzQjY2MSAvKiBVbmlmaWVk
U291cmNlMTc0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E3REZGMUY5RUIzNjQwMEUzQjY2
MSAvKiBVbmlmaWVkU291cmNlMTc1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E3RTAwMUY5
RUIzNjQwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMTc2LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCBmNDJkZjBkZjA0NGVkZjJlMGU1NzQz
MzA4YWJmMTY2NDA1N2Y1NTExLi4xODA3NjcxNmE0MDJkYjMwOTQwMGE4YjI2NWRmNDFkMDVjMDdm
ZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtMjgzNSw2ICsyODM1
LDEyIEBAIEdyYXBoaWNzQ29udGV4dEdMQ1YqIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphc0NW
KCkKICAgICByZXR1cm4gbV9jdi5nZXQoKTsKIH0KICNlbmRpZgorCit2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpyZWxlYXNlQWxsUmVzb3VyY2VzSWZVbnVzZWQoKQoreworICAgIFNjb3Bl
ZEVHTERlZmF1bHREaXNwbGF5OjpyZWxlYXNlQWxsUmVzb3VyY2VzSWZVbnVzZWQoKTsKK30KKwog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSAmJiBVU0UoQU5HTEUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCA4NWMyNWZiMDdjYjdhYjBkOTIxZWJj
NTRjNjZmYTliYzFhNzZmNmQyLi4xYjM3NDZjZTNiZjI4YjJjNjIwZTM0OGZjMTU2YjVjZjMwMjdk
Y2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTcw
LDcgKzcwLDcgQEAgc3RhdGljIGJvb2wgY2hlY2tWb2xhdGlsZUNvbnRleHRTdXBwb3J0SWZEZXZp
Y2VFeGlzdHMoRUdMRGlzcGxheSBkaXNwbGF5LCBjb25zdAogfQogI2VuZGlmCiAKLXN0YXRpYyBF
R0xEaXNwbGF5IEluaXRpYWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyYgYXR0cnMpCitzdGF0aWMgU2NvcGVkRUdMRGVmYXVsdERpc3BsYXkgSW5pdGlhbGl6
ZUVHTERpc3BsYXkoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRycykKIHsK
ICAgICBFR0xpbnQgbWFqb3JWZXJzaW9uID0gMDsKICAgICBFR0xpbnQgbWlub3JWZXJzaW9uID0g
MDsKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgRUdMRGlzcGxheSBJbml0aWFsaXplRUdMRGlz
cGxheShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJzKQogCiAgICAgaWYg
KEVHTF9Jbml0aWFsaXplKGRpc3BsYXksICZtYWpvclZlcnNpb24sICZtaW5vclZlcnNpb24pID09
IEVHTF9GQUxTRSkgewogICAgICAgICBMT0coV2ViR0wsICJFR0xEaXNwbGF5IEluaXRpYWxpemF0
aW9uIGZhaWxlZC4iKTsKLSAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KICAgICBMT0coV2ViR0wsICJBTkdMRSBpbml0aWFsaXNlZCBNYWpv
cjogJWQgTWlub3I6ICVkIiwgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb24pOwogICAgIGlmIChz
aG91bGRJbml0aWFsaXplV2l0aFZvbGF0aWxlQ29udGV4dFN1cHBvcnQpIHsKQEAgLTExMSw3ICsx
MTEsNyBAQCBzdGF0aWMgRUdMRGlzcGxheSBJbml0aWFsaXplRUdMRGlzcGxheShjb25zdCBHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJzKQogICAgICAgICBBU1NFUlQoY2hlY2tWb2xh
dGlsZUNvbnRleHRTdXBwb3J0SWZEZXZpY2VFeGlzdHMoZGlzcGxheSwgIkVHTF9BTkdMRV9wbGF0
Zm9ybV9kZXZpY2VfY29udGV4dF92b2xhdGlsZV9lYWdsIiwgIkVHTF9BTkdMRV9kZXZpY2VfZWFn
bCIsIEVHTF9FQUdMX0NPTlRFWFRfQU5HTEUpKTsKICAgICAgICAgQVNTRVJUKGNoZWNrVm9sYXRp
bGVDb250ZXh0U3VwcG9ydElmRGV2aWNlRXhpc3RzKGRpc3BsYXksICJFR0xfQU5HTEVfcGxhdGZv
cm1fZGV2aWNlX2NvbnRleHRfdm9sYXRpbGVfY2dsIiwgIkVHTF9BTkdMRV9kZXZpY2VfY2dsIiwg
RUdMX0NHTF9DT05URVhUX0FOR0xFKSk7CiAgICAgfQotICAgIHJldHVybiBkaXNwbGF5OworICAg
IHJldHVybiBTY29wZWRFR0xEZWZhdWx0RGlzcGxheTo6YWRvcHRJbml0aWFsaXplZERpc3BsYXko
ZGlzcGxheSk7CiB9CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzdGF0dXNDaGVja1RocmVzaG9s
ZCA9IDU7CkBAIC0xNjYsNyArMTY2LDcgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICBt
X2lzRm9yV2ViR0wyID0gYXR0cnMud2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dEdMV2Vi
R0xWZXJzaW9uOjpXZWJHTDI7CiAKICAgICBtX2Rpc3BsYXlPYmogPSBJbml0aWFsaXplRUdMRGlz
cGxheShhdHRycyk7Ci0gICAgaWYgKG1fZGlzcGxheU9iaiA9PSBFR0xfTk9fRElTUExBWSkKKyAg
ICBpZiAoIW1fZGlzcGxheU9iaikKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBzdXBwb3J0
c1Bvd2VyUHJlZmVyZW5jZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wu
aAppbmRleCA4MjQxZDYyZjc2YjNiMjIxYzA3NGM4MjMzNjJlNjUwYWE1YjljYTQ4Li5mNzY3OWE0
ODRmNDMwNzM4MGI5OGQ0ZDMxMWRiOGJjYzQ0OTA0NzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi9VbmlxdWVBcnJh
eS5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xB
TkdMRUVHTFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgogI2VuZGlmCiAKQEAg
LTEyNCw2ICsxMjUsOSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBzdGF0aWMgYm9vbCByZWxlYXNl
Q3VycmVudENvbnRleHQoUmVsZWFzZUJlaGF2aW9yKTsKICNlbmRpZgorI2lmIFVTRShBTkdMRSkK
KyAgICBzdGF0aWMgdm9pZCByZWxlYXNlQWxsUmVzb3VyY2VzSWZVbnVzZWQoKTsKKyNlbmRpZgog
CiAgICAgLy8gV2l0aCBtdWx0aXNhbXBsaW5nIG9uLCBibGl0IGZyb20gbXVsdGlzYW1wbGVGQk8g
dG8gcmVndWxhciBGQk8uCiAgICAgdm9pZCBwcmVwYXJlVGV4dHVyZSgpOwpAQCAtNTY1LDggKzU2
OSw4IEBAIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4q
IG1fc3dhcENoYWluIHsgbnVsbHB0ciB9OwogICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGJlIHJl
bW92ZWQgb25jZSB0aGUgY29udGV4dCBkcmF3cyB0byBhIGltYWdlIGJ1ZmZlci4gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgxNzkgLgogICAgIFJldGFpblB0
cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7CisgICAgU2NvcGVkRUdMRGVmYXVsdERpc3BsYXkg
bV9kaXNwbGF5T2JqOwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250ZXh0T2Jq
IHsgbnVsbHB0ciB9OwotICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IG1fZGlz
cGxheU9iaiB7IG51bGxwdHIgfTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmln
IG1fY29uZmlnT2JqIHsgbnVsbHB0ciB9OwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCBjNjA4ZDMyYTdiNjAzYjBlMzQwZWQxMjg5YzI2
YzM2MTFlMzYyYTAxLi5lMWZkYzdhMTdlOTI0ZWEwNDFjYmQwZmM0MjkzM2YxZGExMWEwYTNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTUyLDYgKzUyLDEzIEBAIHN0YXRpYyBJUEM6
OlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUmIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFt
V29ya1F1ZXVlKCkKICAgICByZXR1cm4gaW5zdGFuY2UuZ2V0KCk7CiB9CiAKK3N0YXRpYyBjb25z
dGV4cHIgU2Vjb25kcyBkaXNwYXRjaFJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZFRpbWVvdXQg
PSAwLjJfczsKK3N0YXRpYyB1bnNpZ25lZCByZW1vdGVHcmFwaGljc0NvbnRleHRDb3VudDsKK3N0
YXRpYyB2b2lkIGRpc3BhdGNoUmVsZWFzZUFsbFJlc291cmNlc0lmVW51c2VkKCkKK3sKKyAgICBy
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpLmRpc3BhdGNoKEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjpyZWxlYXNlQWxsUmVzb3VyY2VzSWZVbnVzZWQpOworfQorCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQogUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0
ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZp
ZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFt
Q29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkKIHsKQEAgLTgwLDYgKzg3LDcgQEAgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6On5SZW1vdGVHcmFwaGljc0NvbnRleHRHTCgpCiB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMOjppbml0aWFsaXplKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYm
IGF0dHJpYnV0ZXMpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICArK3Jl
bW90ZUdyYXBoaWNzQ29udGV4dENvdW50OwogICAgIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3Ry
ZWFtV29ya1F1ZXVlKCkuZGlzcGF0Y2goW2F0dHJpYnV0ZXMgPSBXVEZNb3ZlKGF0dHJpYnV0ZXMp
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgbXV0YWJsZSB7CiAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPndvcmtRdWV1ZUluaXRpYWxpemUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CiAg
ICAgfSk7CkBAIC05Myw2ICsxMDEsOSBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpz
dG9wTGlzdGVuaW5nRm9ySVBDKFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4mJgogICAgIHJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFtV29ya1F1ZXVlKCkuZGlzcGF0Y2goW3Byb3RlY3Rl
ZFRoaXMgPSBXVEZNb3ZlKHJlZkZyb21Db25uZWN0aW9uKV0oKSB7CiAgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPndvcmtRdWV1ZVVuaW5pdGlhbGl6ZSgpOwogICAgIH0pOworICAgIC0tcmVtb3RlR3Jh
cGhpY3NDb250ZXh0Q291bnQ7CisgICAgaWYgKCFyZW1vdGVHcmFwaGljc0NvbnRleHRDb3VudCkK
KyAgICAgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoQWZ0ZXIoZGlzcGF0Y2hSZWxlYXNl
QWxsUmVzb3VyY2VzSWZVbnVzZWRUaW1lb3V0LCBkaXNwYXRjaFJlbGVhc2VBbGxSZXNvdXJjZXNJ
ZlVudXNlZCk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCg==
</data>
<flag name="commit-queue"
          id="442308"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423047</attachid>
            <date>2021-03-12 07:27:59 -0800</date>
            <delta_ts>2021-03-12 08:58:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223082-20210312172757.patch</filename>
            <type>text/plain</type>
            <size>22352</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUyNzQyNDNiNzg1Y2Y5
OWQ0ODYwMjk5ODhlYmMzYThlMTBmNTNhZC4uYTVkYjQ1M2I4NWM2ODBhMzdlYWI3NzkwYmVmOGEy
MTdkOWVmNGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTEyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgU2h1dGRvd24gQU5H
TEUgb24gR1BVIHByb2Nlc3Mgd2hlbiBsYXN0IFdlYkdMIGNvbnRleHQgaXMgZGVzdHJveWVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMwODIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCk6CisgICAgICAg
IEFkZCBhIGNhbGwgdGhhdCB1bmluaXRpYWxpemVzIHRoZSBBTkdMRSBkZWZhdWx0IGRpc3BsYXkg
aWYgdGhlcmUgYXJlIG5vIHVzZXMgb2YKKyAgICAgICAgdGhlIGRlZmF1bHQgZGlzcGxheS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpJbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTC5oOgorICAgICAgICBIb2xkIHRoZSBkZWZhdWx0IEVHTERpc3BsYXkgd2l0aCBh
IHNjb3BlZCBob2xkZXIgdGhhdCBjb3VudHMKKyAgICAgICAgdGhlIHJlZmVyZW5jZXMgdG8gdGhl
IGRlZmF1bHQgZGlzcGxheS4KKworCiAyMDIxLTAzLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
aWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gRW5jb2RpbmcgYnVmZmVyIGZv
ciBEaXNwbGF5TGlzdCBpdGVtcyBzaG91bGQgYmUgYWxpZ25lZCB0byA4IGJ5dGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDJhOGI2ZTQyN2JjNzU4MTQ3NjliMzBkMWZiODJjZjllNTBjOGUyNmUuLmFjYmFjNzI1ZGRi
NWNmMzEwYTIwYWEwY2M4NmIyMTM3YjNjMTQzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMjEtMDMtMTIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAg
ICAgICBTaHV0ZG93biBBTkdMRSBvbiBHUFUgcHJvY2VzcyB3aGVuIGxhc3QgV2ViR0wgY29udGV4
dCBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMzA4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNjaGVkdWxlIGEgY2hlY2sgZm9yIHJlbGVhc2luZyB0aGUgQU5HTEUgZGVmYXVsdCBk
aXNwbGF5IHdoZW4gZ2xvYmFsCisgICAgICAgIGNvdW50IG9mIHJlbW90ZSBncmFwaGljcyBjb250
ZXh0cyByZWFjaCB6ZXJvLiBUaGlzIHNob3VsZCBkZWNyZWFzZSB0aGUKKyAgICAgICAgbWVtb3J5
IHVzZSBvZiBzZXNzaW9ucyB3aGVyZSBXZWJHTCBpcyBub3QgYWx3YXlzIG9uLgorCisgICAgICAg
IERpc3BhdGNoIHRoZSBjaGVjayAwLjJzIGFmdGVyIGhpdHRpbmcgemVybywgc28gdGhhdCB0aGUg
b3B0aW1pemF0aW9uIHN0aWxsCisgICAgICAgIGFmZmVjdHMgcGFnZSBuYXZpZ2F0aW9ucyBidXQg
bWF5YmUgZG9lcyBub3QgcmVkdW5kYW50bHkgZGVpbml0aWFsaXplIC8KKyAgICAgICAgcmVpbml0
aWFsaXplIEFOR0xFIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGV4dCAjMSBpcyBjcmVhdGVk
IGFuZCBkZXN0cm95ZWQKKyAgICAgICAgZnJlcXVlbnRseS4KKworICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0
OjpkaXNwYXRjaFJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorCiAyMDIxLTAz
LTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IFZN
X0ZMQUdTX1BFUk1BTkVOVCBmb3IgdGhlIGNvbmZpZyB2bSBtYXBwaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDFhMDZiMGYzNGQ3MThhODY1NGQ0MDcxYWQ3NjdmOGI3YTM0Y2JkNzQuLjQ5YTRi
NzU0MDgzMjEyYzYyMWQ3OTllZWYyYzljNDhkYmFkMDBlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xNjQ1LDYgKzE2NDUsNyBAQCBpZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0V4dGVuc2lvbnNHTEFOR0xFLmNwcAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuY3BwCiAgICAgICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwCiAg
ICAgICAgICkKICAgICBlbHNlICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBkMzg1YTIy
NmQ3MDNiODdjMGU5MTU1ZGQ4ODczZGFjNzhlNGZhY2IzLi45NjgzMzMzNGRlMWZiYTM3MzMxYzBm
ZjMwODY2YWIwYzk4N2IxOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTYwOCw2ICs2
MDgsNyBAQCB0ZXN0aW5nL2NvY29hL1dlYlZpZXdWaXN1YWxJZGVudGlmaWNhdGlvbk92ZXJsYXku
bW0KIAogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5HTEUuY3BwIEBuby11
bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAg
QG5vLXVuaWZ5CitwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
VXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFy
eUFOR0xFU2V0dGluZy5jcHAgQG5vLXVuaWZ5CiAKIC8vIERlcml2ZWQgU291cmNlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEw
YzA1NGRjNDM5ODk3NTdjYjkzNGRiMjJmMjE3OGZmMGIxMThiNjAuLmZhNDQ5NmEwY2E5ZjVmOTFi
ZTZkODg4YTAyMWVkMTBiZjI0ZGMxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNzEsNiArMjI3MSw4IEBACiAJCTdBRjlC
MjBGMThDRkI1RjQwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRjlCMjBCMThDRkI1RjMwMEM2NEJFRiAv
KiBKU1ZUVFJlZ2lvbkxpc3QuaCAqLzsgfTsKIAkJN0IxMDMzOUUyNTQ5NzIxNzAwQzhDMUFDIC8q
IEdyYXBoaWNzQ29udGV4dEdMQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0IxMDMzOUYyNTQ5NzIxRTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUMyNTQ5
NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCNDVBQjUwMjVGQjkzQkUwMEZE
MjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCNzc0QzYyMjVGQjkzNTUwMDkx
Mzk1RiAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcCAqLzsgfTsKKwkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Qjkw
NDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOTA0MTZF
MjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDM0NSwx
MCArMTAzNDcsMTIgQEAKIAkJN0IxMDMzOUEyNTQ5NzIwMDAwQzhDMUFDIC8qIEdyYXBoaWNzQ29u
dGV4dEdMQ1ZBTkdMRS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENW
QU5HTEUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5QzI1NDk3MjAx
MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdy
YXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjEwMzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTdCNDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdM
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0I2NEMwQjQyNTRDM0IxNjAwMDZCNEFGIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgx
NTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNl
R1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qjc3NEM2MjI1RkI5
MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8q
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRp
bGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dEdMQU5HTEVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRB
NDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI0NjcsNiArMjI0NzEsOCBAQAogCQkJCTZFMjdGMjQz
MjI5QzlGODQwMEYxRjYzMiAvKiBFeHRlbnNpb25zR0xBTkdMRS5jcHAgKi8sCiAJCQkJNkUyN0Yy
NDQyMjlDOUY4RDAwRjFGNjMyIC8qIEV4dGVuc2lvbnNHTEFOR0xFLmggKi8sCiAJCQkJNkUyN0Yy
NDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovLAorCQkJ
CTdCNzc0QzYyMjVGQjkzNTUwMDkxMzk1RiAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRp
bGl0aWVzLmNwcCAqLywKKwkJCQk3QjQ1QUI1NDI1RkJBOUREMDBGRDI3RjQgLyogR3JhcGhpY3ND
b250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5oICovLAogCQkJCTdCQjM0QTE2MjUzNDVDQjIwMDAy
OUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVzLmggKi8sCiAJCQkJNkUyOTA4
NjEyMjlEQjk1MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAgKi8sCiAJCQkJ
NkUyOTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oICovLApA
QCAtMzI0MzEsNiArMzI0MzcsNyBAQAogCQkJCUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBH
cmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdG
MjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzREU4NzAy
M0E5Njk3MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3QjQ1QUI1NTI1RkJBOURFMDBGRDI3RjQgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8q
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
MzMwQTAyMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTdCMTAzMzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0Nv
bnRleHRHTENWLmggaW4gSGVhZGVycyAqLywKQEAgLTM2MjI2LDYgKzM2MjMzLDcgQEAKIAkJCQk1
MUE5RDlFOTE5NUI5MzFGMDAxQjJCNUMgLyogR2FtZXBhZE1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25E
YXRhSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU3MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8q
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0I0NUFCNTAy
NUZCOTNCRTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0MzRTUxMEIxOERGOEYzNTAwQzExMkY3IC8qIEhUTUxDb252
ZXJ0ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBOEQwNkIzQTBBMjY1RENEMDA1RTcyMDMgLyog
SFRNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzkwMEMzMTk0M0MwRkMwMDg2MjVC
NSAvKiBIVFRQSGVhZGVyTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwCmluZGV4IGY0MmRmMGRmMDQ0ZWRmMmUwZTU3NDMzMDhhYmYxNjY0MDU3
ZjU1MTEuLjE4MDc2NzE2YTQwMmRiMzA5NDAwYThiMjY1ZGY0MWQwNWMwN2ZkNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC0yODM1LDYgKzI4MzUsMTIgQEAgR3JhcGhp
Y3NDb250ZXh0R0xDViogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFzQ1YoKQogICAgIHJldHVy
biBtX2N2LmdldCgpOwogfQogI2VuZGlmCisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCgpCit7CisgICAgU2NvcGVkRUdMRGVmYXVsdERp
c3BsYXk6OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCgpOworfQorCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCR0wpICYmIFVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRp
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViZjgzN2QyNWU0M2Qw
NjU4ZDZiNjg1MWRkNDhhMjE5ODY5NmY3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuY3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5oIgorCisjaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgi
CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNF
KEFOR0xFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyB1bnNpZ25lZCBkZWZhdWx0
RGlzcGxheVJlZkNvdW50Oworc3RhdGljIHZvaWQqIGRlZmF1bHREaXNwbGF5ID0gbnVsbHB0cjsK
Kworc3RhdGljIHZvaWQgcmVmRGVmYXVsdERpc3BsYXkodm9pZCogZGlzcGxheSkKK3sKKyAgICBB
U1NFUlQoZGlzcGxheSAhPSBudWxscHRyKTsKKyAgICBBU1NFUlQoZGVmYXVsdERpc3BsYXkgPT0g
ZGlzcGxheSB8fCAoIWRlZmF1bHREaXNwbGF5ICYmICFkZWZhdWx0RGlzcGxheVJlZkNvdW50KSk7
CisgICAgZGVmYXVsdERpc3BsYXlSZWZDb3VudCsrOworICAgIGRlZmF1bHREaXNwbGF5ID0gZGlz
cGxheTsKK30KKworc3RhdGljIHZvaWQgdW5yZWZEZWZhdWx0RGlzcGxheUlmTmVlZGVkKHZvaWQq
IGRpc3BsYXkpCit7CisgICAgaWYgKCFkaXNwbGF5KQorICAgICAgICByZXR1cm47CisgICAgQVNT
RVJUKGRlZmF1bHREaXNwbGF5ID09IGRpc3BsYXkpOworICAgIEFTU0VSVChkZWZhdWx0RGlzcGxh
eVJlZkNvdW50KTsKKyAgICBkZWZhdWx0RGlzcGxheVJlZkNvdW50LS07Cit9CisKK1Njb3BlZEVH
TERlZmF1bHREaXNwbGF5JiBTY29wZWRFR0xEZWZhdWx0RGlzcGxheTo6b3BlcmF0b3I9KFNjb3Bl
ZEVHTERlZmF1bHREaXNwbGF5JiYgb3RoZXIpCit7CisgICAgaWYgKHRoaXMgIT0gJm90aGVyKSB7
CisgICAgICAgIHVucmVmRGVmYXVsdERpc3BsYXlJZk5lZWRlZChtX2Rpc3BsYXkpOworICAgICAg
ICBtX2Rpc3BsYXkgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZGlzcGxheSwgbnVsbHB0cik7Cisg
ICAgfQorICAgIHJldHVybiAqdGhpczsKK30KKworU2NvcGVkRUdMRGVmYXVsdERpc3BsYXk6OlNj
b3BlZEVHTERlZmF1bHREaXNwbGF5KHZvaWQqIGRpc3BsYXkpCisgICAgOiBtX2Rpc3BsYXkoZGlz
cGxheSkKK3sKKyAgICByZWZEZWZhdWx0RGlzcGxheShtX2Rpc3BsYXkpOworfQorCitTY29wZWRF
R0xEZWZhdWx0RGlzcGxheTo6flNjb3BlZEVHTERlZmF1bHREaXNwbGF5KCkKK3sKKyAgICB1bnJl
ZkRlZmF1bHREaXNwbGF5SWZOZWVkZWQobV9kaXNwbGF5KTsKK30KKwordm9pZCBTY29wZWRFR0xE
ZWZhdWx0RGlzcGxheTo6cmVsZWFzZUFsbFJlc291cmNlc0lmVW51c2VkKCkKK3sKKyAgICBpZiAo
ZGVmYXVsdERpc3BsYXlSZWZDb3VudCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChkZWZhdWx0
RGlzcGxheSA9PSBudWxscHRyKQorICAgICAgICByZXR1cm47CisgICAgYm9vbCByZXN1bHQgPSBF
R0xfVGVybWluYXRlKGRlZmF1bHREaXNwbGF5KTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwg
cmVzdWx0KTsKKyAgICByZXN1bHQgPSBFR0xfUmVsZWFzZVRocmVhZCgpOworICAgIEFTU0VSVF9V
TlVTRUQocmVzdWx0LCByZXN1bHQpOworICAgIGRlZmF1bHREaXNwbGF5ID0gbnVsbHB0cjsKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xV
dGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDQyMDUyMGJkZThiYTJlZTg1ZDY4ODJmNjU4ZDQ1ODJk
YmNlZWEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5oCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNFKEFOR0xFKQorCisjaW5jbHVkZSA8
YWxnb3JpdGhtPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisvLyBDdXJyZW50bHkg
dGhpcyBub3QgdXNpbmcgQU5HTEUgaGVhZGVycyBzaW5jZSB0aGlzIGlzIGV4cG9ydGVkIGhlYWRl
ciBhbmQgd2UgZG8gbm90IGV4cG9ydCBBTkdMRSBoZWFkZXJzLgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNjb3BlZEVHTERlZmF1bHREaXNwbGF5IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShTY29wZWRFR0xEZWZhdWx0RGlzcGxheSk7CitwdWJsaWM6CisgICAgc3RhdGljIFNj
b3BlZEVHTERlZmF1bHREaXNwbGF5IGFkb3B0SW5pdGlhbGl6ZWREaXNwbGF5KHZvaWQqIGRpc3Bs
YXkpCisgICAgeworICAgICAgICBBU1NFUlQoZGlzcGxheSAhPSBudWxscHRyKTsKKyAgICAgICAg
cmV0dXJuIFNjb3BlZEVHTERlZmF1bHREaXNwbGF5KGRpc3BsYXkpOworICAgIH0KKyAgICBTY29w
ZWRFR0xEZWZhdWx0RGlzcGxheSgpID0gZGVmYXVsdDsKKyAgICBTY29wZWRFR0xEZWZhdWx0RGlz
cGxheShTY29wZWRFR0xEZWZhdWx0RGlzcGxheSYmIG90aGVyKQorICAgICAgICA6IG1fZGlzcGxh
eShzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZGlzcGxheSwgbnVsbHB0cikpCisgICAgeworICAgIH0K
KyAgICB+U2NvcGVkRUdMRGVmYXVsdERpc3BsYXkoKTsKKyAgICBTY29wZWRFR0xEZWZhdWx0RGlz
cGxheSYgb3BlcmF0b3I9KFNjb3BlZEVHTERlZmF1bHREaXNwbGF5JiYpOworICAgIG9wZXJhdG9y
IHZvaWQqKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5OyB9CisgICAgb3BlcmF0b3IgYm9vbCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheSAhPSBudWxscHRyOyB9CisgICAgc3RhdGljIHZvaWQg
cmVsZWFzZUFsbFJlc291cmNlc0lmVW51c2VkKCk7Citwcml2YXRlOgorICAgIFNjb3BlZEVHTERl
ZmF1bHREaXNwbGF5KHZvaWQqKTsKKyAgICB2b2lkKiBtX2Rpc3BsYXkgeyBudWxscHRyIH07Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2Eu
bW0KaW5kZXggODVjMjVmYjA3Y2I3YWIwZDkyMWViYzU0YzY2ZmE5YmMxYTc2ZjZkMi4uMWIzNzQ2
Y2UzYmYyOGIyYzYyMGUzNDhmYzE1NmI1Y2YzMDI3ZGNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBib29sIGNo
ZWNrVm9sYXRpbGVDb250ZXh0U3VwcG9ydElmRGV2aWNlRXhpc3RzKEVHTERpc3BsYXkgZGlzcGxh
eSwgY29uc3QKIH0KICNlbmRpZgogCi1zdGF0aWMgRUdMRGlzcGxheSBJbml0aWFsaXplRUdMRGlz
cGxheShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJzKQorc3RhdGljIFNj
b3BlZEVHTERlZmF1bHREaXNwbGF5IEluaXRpYWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiB7CiAgICAgRUdMaW50IG1ham9yVmVyc2lvbiA9
IDA7CiAgICAgRUdMaW50IG1pbm9yVmVyc2lvbiA9IDA7CkBAIC0xMDIsNyArMTAyLDcgQEAgc3Rh
dGljIEVHTERpc3BsYXkgSW5pdGlhbGl6ZUVHTERpc3BsYXkoY29uc3QgR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiBhdHRycykKIAogICAgIGlmIChFR0xfSW5pdGlhbGl6ZShkaXNwbGF5LCAm
bWFqb3JWZXJzaW9uLCAmbWlub3JWZXJzaW9uKSA9PSBFR0xfRkFMU0UpIHsKICAgICAgICAgTE9H
KFdlYkdMLCAiRUdMRGlzcGxheSBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7Ci0gICAgICAgIHJl
dHVybiBFR0xfTk9fRElTUExBWTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAgICAgTE9H
KFdlYkdMLCAiQU5HTEUgaW5pdGlhbGlzZWQgTWFqb3I6ICVkIE1pbm9yOiAlZCIsIG1ham9yVmVy
c2lvbiwgbWlub3JWZXJzaW9uKTsKICAgICBpZiAoc2hvdWxkSW5pdGlhbGl6ZVdpdGhWb2xhdGls
ZUNvbnRleHRTdXBwb3J0KSB7CkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIEVHTERpc3BsYXkg
SW5pdGlhbGl6ZUVHTERpc3BsYXkoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBh
dHRycykKICAgICAgICAgQVNTRVJUKGNoZWNrVm9sYXRpbGVDb250ZXh0U3VwcG9ydElmRGV2aWNl
RXhpc3RzKGRpc3BsYXksICJFR0xfQU5HTEVfcGxhdGZvcm1fZGV2aWNlX2NvbnRleHRfdm9sYXRp
bGVfZWFnbCIsICJFR0xfQU5HTEVfZGV2aWNlX2VhZ2wiLCBFR0xfRUFHTF9DT05URVhUX0FOR0xF
KSk7CiAgICAgICAgIEFTU0VSVChjaGVja1ZvbGF0aWxlQ29udGV4dFN1cHBvcnRJZkRldmljZUV4
aXN0cyhkaXNwbGF5LCAiRUdMX0FOR0xFX3BsYXRmb3JtX2RldmljZV9jb250ZXh0X3ZvbGF0aWxl
X2NnbCIsICJFR0xfQU5HTEVfZGV2aWNlX2NnbCIsIEVHTF9DR0xfQ09OVEVYVF9BTkdMRSkpOwog
ICAgIH0KLSAgICByZXR1cm4gZGlzcGxheTsKKyAgICByZXR1cm4gU2NvcGVkRUdMRGVmYXVsdERp
c3BsYXk6OmFkb3B0SW5pdGlhbGl6ZWREaXNwbGF5KGRpc3BsYXkpOwogfQogCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgc3RhdHVzQ2hlY2tUaHJlc2hvbGQgPSA1OwpAQCAtMTY2LDcgKzE2Niw3IEBA
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0CiAgICAgbV9pc0ZvcldlYkdMMiA9IGF0dHJzLndlYkdM
VmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyOwogCiAgICAg
bV9kaXNwbGF5T2JqID0gSW5pdGlhbGl6ZUVHTERpc3BsYXkoYXR0cnMpOwotICAgIGlmIChtX2Rp
c3BsYXlPYmogPT0gRUdMX05PX0RJU1BMQVkpCisgICAgaWYgKCFtX2Rpc3BsYXlPYmopCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGJvb2wgc3VwcG9ydHNQb3dlclByZWZlcmVuY2UgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKaW5kZXggODI0MWQ2MmY3NmIzYjIyMWMw
NzRjODIzMzYyZTY1MGFhNWI5Y2E0OC4uZjc2NzlhNDg0ZjQzMDczODBiOThkNGQzMTFkYjhiY2M0
NDkwNDcxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlIDx3dGYvVW5pcXVlQXJyYXkuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuaCIKICNpbmNs
dWRlICJJT1N1cmZhY2UuaCIKICNlbmRpZgogCkBAIC0xMjQsNiArMTI1LDkgQEAgcHVibGljOgog
ICAgIH07CiAgICAgc3RhdGljIGJvb2wgcmVsZWFzZUN1cnJlbnRDb250ZXh0KFJlbGVhc2VCZWhh
dmlvcik7CiAjZW5kaWYKKyNpZiBVU0UoQU5HTEUpCisgICAgc3RhdGljIHZvaWQgcmVsZWFzZUFs
bFJlc291cmNlc0lmVW51c2VkKCk7CisjZW5kaWYKIAogICAgIC8vIFdpdGggbXVsdGlzYW1wbGlu
ZyBvbiwgYmxpdCBmcm9tIG11bHRpc2FtcGxlRkJPIHRvIHJlZ3VsYXIgRkJPLgogICAgIHZvaWQg
cHJlcGFyZVRleHR1cmUoKTsKQEAgLTU2NSw4ICs1NjksOCBAQCBwcml2YXRlOgogICAgIEdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKiBtX3N3YXBDaGFpbiB7IG51bGxwdHIgfTsK
ICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgdGhlIGNvbnRleHQgZHJh
d3MgdG8gYSBpbWFnZSBidWZmZXIuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4MTc5IC4KICAgICBSZXRhaW5QdHI8V2ViR0xMYXllcj4gbV93ZWJHTExheWVy
OworICAgIFNjb3BlZEVHTERlZmF1bHREaXNwbGF5IG1fZGlzcGxheU9iajsKICAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dEdMIG1fY29udGV4dE9iaiB7IG51bGxwdHIgfTsKLSAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBtX2Rpc3BsYXlPYmogeyBudWxscHRyIH07CiAgICAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBtX2NvbmZpZ09iaiB7IG51bGxwdHIgfTsK
ICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5k
ZXggYzYwOGQzMmE3YjYwM2IwZTM0MGVkMTI4OWMyNmMzNjExZTM2MmEwMS4uZTFmZGM3YTE3ZTky
NGVhMDQxY2JkMGZjNDI5MzNmMWRhMTFhMGEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
CkBAIC01Miw2ICs1MiwxMyBAQCBzdGF0aWMgSVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVl
JiByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpCiAgICAgcmV0dXJuIGlu
c3RhbmNlLmdldCgpOwogfQogCitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgZGlzcGF0Y2hSZWxl
YXNlQWxsUmVzb3VyY2VzSWZVbnVzZWRUaW1lb3V0ID0gMC4yX3M7CitzdGF0aWMgdW5zaWduZWQg
cmVtb3RlR3JhcGhpY3NDb250ZXh0Q291bnQ7CitzdGF0aWMgdm9pZCBkaXNwYXRjaFJlbGVhc2VB
bGxSZXNvdXJjZXNJZlVudXNlZCgpCit7CisgICAgcmVtb3RlR3JhcGhpY3NDb250ZXh0R0xTdHJl
YW1Xb3JrUXVldWUoKS5kaXNwYXRjaChHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVsZWFzZUFs
bFJlc291cmNlc0lmVW51c2VkKTsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIFJlZjxSZW1v
dGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNyZWF0ZShHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBHcmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
JiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0p
CiB7CkBAIC04MCw2ICs4Nyw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjp+UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0woKQogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6aW5pdGlhbGl6
ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CisgICAgKytyZW1vdGVHcmFwaGljc0NvbnRleHRDb3VudDsK
ICAgICByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpLmRpc3BhdGNoKFth
dHRyaWJ1dGVzID0gV1RGTW92ZShhdHRyaWJ1dGVzKSwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXSgpIG11dGFibGUgewogICAgICAgICBwcm90ZWN0ZWRUaGlzLT53b3JrUXVldWVJbml0
aWFsaXplKFdURk1vdmUoYXR0cmlidXRlcykpOwogICAgIH0pOwpAQCAtOTMsNiArMTAxLDkgQEAg
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6c3RvcExpc3RlbmluZ0ZvcklQQyhSZWY8UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0w+JiYKICAgICByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0cmVh
bVdvcmtRdWV1ZSgpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShyZWZGcm9tQ29u
bmVjdGlvbildKCkgewogICAgICAgICBwcm90ZWN0ZWRUaGlzLT53b3JrUXVldWVVbmluaXRpYWxp
emUoKTsKICAgICB9KTsKKyAgICAtLXJlbW90ZUdyYXBoaWNzQ29udGV4dENvdW50OworICAgIGlm
ICghcmVtb3RlR3JhcGhpY3NDb250ZXh0Q291bnQpCisgICAgICAgIFJ1bkxvb3A6OmN1cnJlbnQo
KS5kaXNwYXRjaEFmdGVyKGRpc3BhdGNoUmVsZWFzZUFsbFJlc291cmNlc0lmVW51c2VkVGltZW91
dCwgZGlzcGF0Y2hSZWxlYXNlQWxsUmVzb3VyY2VzSWZVbnVzZWQpOwogfQogCiAjaWYgUExBVEZP
Uk0oTUFDKQo=
</data>
<flag name="commit-queue"
          id="442318"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423050</attachid>
            <date>2021-03-12 07:59:17 -0800</date>
            <delta_ts>2021-03-12 10:42:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223082-20210312175915.patch</filename>
            <type>text/plain</type>
            <size>22376</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUyNzQyNDNiNzg1Y2Y5
OWQ0ODYwMjk5ODhlYmMzYThlMTBmNTNhZC4uYTVkYjQ1M2I4NWM2ODBhMzdlYWI3NzkwYmVmOGEy
MTdkOWVmNGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTEyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgU2h1dGRvd24gQU5H
TEUgb24gR1BVIHByb2Nlc3Mgd2hlbiBsYXN0IFdlYkdMIGNvbnRleHQgaXMgZGVzdHJveWVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMwODIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCk6CisgICAgICAg
IEFkZCBhIGNhbGwgdGhhdCB1bmluaXRpYWxpemVzIHRoZSBBTkdMRSBkZWZhdWx0IGRpc3BsYXkg
aWYgdGhlcmUgYXJlIG5vIHVzZXMgb2YKKyAgICAgICAgdGhlIGRlZmF1bHQgZGlzcGxheS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpJbml0aWFsaXplRUdMRGlzcGxheSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTC5oOgorICAgICAgICBIb2xkIHRoZSBkZWZhdWx0IEVHTERpc3BsYXkgd2l0aCBh
IHNjb3BlZCBob2xkZXIgdGhhdCBjb3VudHMKKyAgICAgICAgdGhlIHJlZmVyZW5jZXMgdG8gdGhl
IGRlZmF1bHQgZGlzcGxheS4KKworCiAyMDIxLTAzLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
aWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gRW5jb2RpbmcgYnVmZmVyIGZv
ciBEaXNwbGF5TGlzdCBpdGVtcyBzaG91bGQgYmUgYWxpZ25lZCB0byA4IGJ5dGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDJhOGI2ZTQyN2JjNzU4MTQ3NjliMzBkMWZiODJjZjllNTBjOGUyNmUuLmFjYmFjNzI1ZGRi
NWNmMzEwYTIwYWEwY2M4NmIyMTM3YjNjMTQzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMjEtMDMtMTIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAg
ICAgICBTaHV0ZG93biBBTkdMRSBvbiBHUFUgcHJvY2VzcyB3aGVuIGxhc3QgV2ViR0wgY29udGV4
dCBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMzA4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNjaGVkdWxlIGEgY2hlY2sgZm9yIHJlbGVhc2luZyB0aGUgQU5HTEUgZGVmYXVsdCBk
aXNwbGF5IHdoZW4gZ2xvYmFsCisgICAgICAgIGNvdW50IG9mIHJlbW90ZSBncmFwaGljcyBjb250
ZXh0cyByZWFjaCB6ZXJvLiBUaGlzIHNob3VsZCBkZWNyZWFzZSB0aGUKKyAgICAgICAgbWVtb3J5
IHVzZSBvZiBzZXNzaW9ucyB3aGVyZSBXZWJHTCBpcyBub3QgYWx3YXlzIG9uLgorCisgICAgICAg
IERpc3BhdGNoIHRoZSBjaGVjayAwLjJzIGFmdGVyIGhpdHRpbmcgemVybywgc28gdGhhdCB0aGUg
b3B0aW1pemF0aW9uIHN0aWxsCisgICAgICAgIGFmZmVjdHMgcGFnZSBuYXZpZ2F0aW9ucyBidXQg
bWF5YmUgZG9lcyBub3QgcmVkdW5kYW50bHkgZGVpbml0aWFsaXplIC8KKyAgICAgICAgcmVpbml0
aWFsaXplIEFOR0xFIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGV4dCAjMSBpcyBjcmVhdGVk
IGFuZCBkZXN0cm95ZWQKKyAgICAgICAgZnJlcXVlbnRseS4KKworICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0
OjpkaXNwYXRjaFJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorCiAyMDIxLTAz
LTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IFZN
X0ZMQUdTX1BFUk1BTkVOVCBmb3IgdGhlIGNvbmZpZyB2bSBtYXBwaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDFhMDZiMGYzNGQ3MThhODY1NGQ0MDcxYWQ3NjdmOGI3YTM0Y2JkNzQuLjQ5YTRi
NzU0MDgzMjEyYzYyMWQ3OTllZWYyYzljNDhkYmFkMDBlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xNjQ1LDYgKzE2NDUsNyBAQCBpZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0V4dGVuc2lvbnNHTEFOR0xFLmNwcAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuY3BwCiAgICAgICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwCiAg
ICAgICAgICkKICAgICBlbHNlICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBkMzg1YTIy
NmQ3MDNiODdjMGU5MTU1ZGQ4ODczZGFjNzhlNGZhY2IzLi45NjgzMzMzNGRlMWZiYTM3MzMxYzBm
ZjMwODY2YWIwYzk4N2IxOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTYwOCw2ICs2
MDgsNyBAQCB0ZXN0aW5nL2NvY29hL1dlYlZpZXdWaXN1YWxJZGVudGlmaWNhdGlvbk92ZXJsYXku
bW0KIAogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5HTEUuY3BwIEBuby11
bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAg
QG5vLXVuaWZ5CitwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
VXRpbGl0aWVzLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFy
eUFOR0xFU2V0dGluZy5jcHAgQG5vLXVuaWZ5CiAKIC8vIERlcml2ZWQgU291cmNlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEw
YzA1NGRjNDM5ODk3NTdjYjkzNGRiMjJmMjE3OGZmMGIxMThiNjAuLmZhNDQ5NmEwY2E5ZjVmOTFi
ZTZkODg4YTAyMWVkMTBiZjI0ZGMxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNzEsNiArMjI3MSw4IEBACiAJCTdBRjlC
MjBGMThDRkI1RjQwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRjlCMjBCMThDRkI1RjMwMEM2NEJFRiAv
KiBKU1ZUVFJlZ2lvbkxpc3QuaCAqLzsgfTsKIAkJN0IxMDMzOUUyNTQ5NzIxNzAwQzhDMUFDIC8q
IEdyYXBoaWNzQ29udGV4dEdMQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0IxMDMzOUYyNTQ5NzIxRTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUMyNTQ5
NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCNDVBQjUwMjVGQjkzQkUwMEZE
MjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCNzc0QzYyMjVGQjkzNTUwMDkx
Mzk1RiAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcCAqLzsgfTsKKwkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Qjkw
NDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOTA0MTZF
MjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDM0NSwx
MCArMTAzNDcsMTIgQEAKIAkJN0IxMDMzOUEyNTQ5NzIwMDAwQzhDMUFDIC8qIEdyYXBoaWNzQ29u
dGV4dEdMQ1ZBTkdMRS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENW
QU5HTEUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5QzI1NDk3MjAx
MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdy
YXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjEwMzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTdCNDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdM
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0I2NEMwQjQyNTRDM0IxNjAwMDZCNEFGIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgx
NTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNl
R1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qjc3NEM2MjI1RkI5
MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8q
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRp
bGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dEdMQU5HTEVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRB
NDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI0NjcsNiArMjI0NzEsOCBAQAogCQkJCTZFMjdGMjQz
MjI5QzlGODQwMEYxRjYzMiAvKiBFeHRlbnNpb25zR0xBTkdMRS5jcHAgKi8sCiAJCQkJNkUyN0Yy
NDQyMjlDOUY4RDAwRjFGNjMyIC8qIEV4dGVuc2lvbnNHTEFOR0xFLmggKi8sCiAJCQkJNkUyN0Yy
NDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovLAorCQkJ
CTdCNzc0QzYyMjVGQjkzNTUwMDkxMzk1RiAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRp
bGl0aWVzLmNwcCAqLywKKwkJCQk3QjQ1QUI1NDI1RkJBOUREMDBGRDI3RjQgLyogR3JhcGhpY3ND
b250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5oICovLAogCQkJCTdCQjM0QTE2MjUzNDVDQjIwMDAy
OUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVzLmggKi8sCiAJCQkJNkUyOTA4
NjEyMjlEQjk1MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAgKi8sCiAJCQkJ
NkUyOTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oICovLApA
QCAtMzI0MzEsNiArMzI0MzcsNyBAQAogCQkJCUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBH
cmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdG
MjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzREU4NzAy
M0E5Njk3MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3QjQ1QUI1NTI1RkJBOURFMDBGRDI3RjQgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8q
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
MzMwQTAyMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTdCMTAzMzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0Nv
bnRleHRHTENWLmggaW4gSGVhZGVycyAqLywKQEAgLTM2MjI2LDYgKzM2MjMzLDcgQEAKIAkJCQk1
MUE5RDlFOTE5NUI5MzFGMDAxQjJCNUMgLyogR2FtZXBhZE1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25E
YXRhSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU3MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8q
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0I0NUFCNTAy
NUZCOTNCRTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0MzRTUxMEIxOERGOEYzNTAwQzExMkY3IC8qIEhUTUxDb252
ZXJ0ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBOEQwNkIzQTBBMjY1RENEMDA1RTcyMDMgLyog
SFRNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzkwMEMzMTk0M0MwRkMwMDg2MjVC
NSAvKiBIVFRQSGVhZGVyTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwCmluZGV4IGY0MmRmMGRmMDQ0ZWRmMmUwZTU3NDMzMDhhYmYxNjY0MDU3
ZjU1MTEuLjE4MDc2NzE2YTQwMmRiMzA5NDAwYThiMjY1ZGY0MWQwNWMwN2ZkNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC0yODM1LDYgKzI4MzUsMTIgQEAgR3JhcGhp
Y3NDb250ZXh0R0xDViogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFzQ1YoKQogICAgIHJldHVy
biBtX2N2LmdldCgpOwogfQogI2VuZGlmCisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCgpCit7CisgICAgU2NvcGVkRUdMRGVmYXVsdERp
c3BsYXk6OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCgpOworfQorCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCR0wpICYmIFVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRp
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViZjgzN2QyNWU0M2Qw
NjU4ZDZiNjg1MWRkNDhhMjE5ODY5NmY3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuY3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5oIgorCisjaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgi
CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNF
KEFOR0xFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyB1bnNpZ25lZCBkZWZhdWx0
RGlzcGxheVJlZkNvdW50Oworc3RhdGljIHZvaWQqIGRlZmF1bHREaXNwbGF5ID0gbnVsbHB0cjsK
Kworc3RhdGljIHZvaWQgcmVmRGVmYXVsdERpc3BsYXkodm9pZCogZGlzcGxheSkKK3sKKyAgICBB
U1NFUlQoZGlzcGxheSAhPSBudWxscHRyKTsKKyAgICBBU1NFUlQoZGVmYXVsdERpc3BsYXkgPT0g
ZGlzcGxheSB8fCAoIWRlZmF1bHREaXNwbGF5ICYmICFkZWZhdWx0RGlzcGxheVJlZkNvdW50KSk7
CisgICAgZGVmYXVsdERpc3BsYXlSZWZDb3VudCsrOworICAgIGRlZmF1bHREaXNwbGF5ID0gZGlz
cGxheTsKK30KKworc3RhdGljIHZvaWQgdW5yZWZEZWZhdWx0RGlzcGxheUlmTmVlZGVkKHZvaWQq
IGRpc3BsYXkpCit7CisgICAgaWYgKCFkaXNwbGF5KQorICAgICAgICByZXR1cm47CisgICAgQVNT
RVJUKGRlZmF1bHREaXNwbGF5ID09IGRpc3BsYXkpOworICAgIEFTU0VSVChkZWZhdWx0RGlzcGxh
eVJlZkNvdW50KTsKKyAgICBkZWZhdWx0RGlzcGxheVJlZkNvdW50LS07Cit9CisKK1Njb3BlZEVH
TERlZmF1bHREaXNwbGF5JiBTY29wZWRFR0xEZWZhdWx0RGlzcGxheTo6b3BlcmF0b3I9KFNjb3Bl
ZEVHTERlZmF1bHREaXNwbGF5JiYgb3RoZXIpCit7CisgICAgaWYgKHRoaXMgIT0gJm90aGVyKSB7
CisgICAgICAgIHVucmVmRGVmYXVsdERpc3BsYXlJZk5lZWRlZChtX2Rpc3BsYXkpOworICAgICAg
ICBtX2Rpc3BsYXkgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZGlzcGxheSwgbnVsbHB0cik7Cisg
ICAgfQorICAgIHJldHVybiAqdGhpczsKK30KKworU2NvcGVkRUdMRGVmYXVsdERpc3BsYXk6OlNj
b3BlZEVHTERlZmF1bHREaXNwbGF5KHZvaWQqIGRpc3BsYXkpCisgICAgOiBtX2Rpc3BsYXkoZGlz
cGxheSkKK3sKKyAgICByZWZEZWZhdWx0RGlzcGxheShtX2Rpc3BsYXkpOworfQorCitTY29wZWRF
R0xEZWZhdWx0RGlzcGxheTo6flNjb3BlZEVHTERlZmF1bHREaXNwbGF5KCkKK3sKKyAgICB1bnJl
ZkRlZmF1bHREaXNwbGF5SWZOZWVkZWQobV9kaXNwbGF5KTsKK30KKwordm9pZCBTY29wZWRFR0xE
ZWZhdWx0RGlzcGxheTo6cmVsZWFzZUFsbFJlc291cmNlc0lmVW51c2VkKCkKK3sKKyAgICBpZiAo
ZGVmYXVsdERpc3BsYXlSZWZDb3VudCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChkZWZhdWx0
RGlzcGxheSA9PSBudWxscHRyKQorICAgICAgICByZXR1cm47CisgICAgYm9vbCByZXN1bHQgPSBF
R0xfVGVybWluYXRlKGRlZmF1bHREaXNwbGF5KTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwg
cmVzdWx0KTsKKyAgICByZXN1bHQgPSBFR0xfUmVsZWFzZVRocmVhZCgpOworICAgIEFTU0VSVF9V
TlVTRUQocmVzdWx0LCByZXN1bHQpOworICAgIGRlZmF1bHREaXNwbGF5ID0gbnVsbHB0cjsKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xV
dGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDQyMDUyMGJkZThiYTJlZTg1ZDY4ODJmNjU4ZDQ1ODJk
YmNlZWEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5oCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNFKEFOR0xFKQorCisjaW5jbHVkZSA8
YWxnb3JpdGhtPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisvLyBDdXJyZW50bHkg
dGhpcyBub3QgdXNpbmcgQU5HTEUgaGVhZGVycyBzaW5jZSB0aGlzIGlzIGV4cG9ydGVkIGhlYWRl
ciBhbmQgd2UgZG8gbm90IGV4cG9ydCBBTkdMRSBoZWFkZXJzLgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNjb3BlZEVHTERlZmF1bHREaXNwbGF5IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShTY29wZWRFR0xEZWZhdWx0RGlzcGxheSk7CitwdWJsaWM6CisgICAgc3RhdGljIFNj
b3BlZEVHTERlZmF1bHREaXNwbGF5IGFkb3B0SW5pdGlhbGl6ZWREaXNwbGF5KHZvaWQqIGRpc3Bs
YXkpCisgICAgeworICAgICAgICBBU1NFUlQoZGlzcGxheSAhPSBudWxscHRyKTsKKyAgICAgICAg
cmV0dXJuIFNjb3BlZEVHTERlZmF1bHREaXNwbGF5KGRpc3BsYXkpOworICAgIH0KKyAgICBTY29w
ZWRFR0xEZWZhdWx0RGlzcGxheSgpID0gZGVmYXVsdDsKKyAgICBTY29wZWRFR0xEZWZhdWx0RGlz
cGxheShTY29wZWRFR0xEZWZhdWx0RGlzcGxheSYmIG90aGVyKQorICAgICAgICA6IG1fZGlzcGxh
eShzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZGlzcGxheSwgbnVsbHB0cikpCisgICAgeworICAgIH0K
KyAgICB+U2NvcGVkRUdMRGVmYXVsdERpc3BsYXkoKTsKKyAgICBTY29wZWRFR0xEZWZhdWx0RGlz
cGxheSYgb3BlcmF0b3I9KFNjb3BlZEVHTERlZmF1bHREaXNwbGF5JiYpOworICAgIG9wZXJhdG9y
IHZvaWQqKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5OyB9CisgICAgb3BlcmF0b3IgYm9vbCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheSAhPSBudWxscHRyOyB9CisgICAgc3RhdGljIHZvaWQg
cmVsZWFzZUFsbFJlc291cmNlc0lmVW51c2VkKCk7Citwcml2YXRlOgorICAgIFNjb3BlZEVHTERl
ZmF1bHREaXNwbGF5KHZvaWQqKTsKKyAgICB2b2lkKiBtX2Rpc3BsYXkgeyBudWxscHRyIH07Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2Eu
bW0KaW5kZXggODVjMjVmYjA3Y2I3YWIwZDkyMWViYzU0YzY2ZmE5YmMxYTc2ZjZkMi4uMWIzNzQ2
Y2UzYmYyOGIyYzYyMGUzNDhmYzE1NmI1Y2YzMDI3ZGNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBib29sIGNo
ZWNrVm9sYXRpbGVDb250ZXh0U3VwcG9ydElmRGV2aWNlRXhpc3RzKEVHTERpc3BsYXkgZGlzcGxh
eSwgY29uc3QKIH0KICNlbmRpZgogCi1zdGF0aWMgRUdMRGlzcGxheSBJbml0aWFsaXplRUdMRGlz
cGxheShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJzKQorc3RhdGljIFNj
b3BlZEVHTERlZmF1bHREaXNwbGF5IEluaXRpYWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiB7CiAgICAgRUdMaW50IG1ham9yVmVyc2lvbiA9
IDA7CiAgICAgRUdMaW50IG1pbm9yVmVyc2lvbiA9IDA7CkBAIC0xMDIsNyArMTAyLDcgQEAgc3Rh
dGljIEVHTERpc3BsYXkgSW5pdGlhbGl6ZUVHTERpc3BsYXkoY29uc3QgR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiBhdHRycykKIAogICAgIGlmIChFR0xfSW5pdGlhbGl6ZShkaXNwbGF5LCAm
bWFqb3JWZXJzaW9uLCAmbWlub3JWZXJzaW9uKSA9PSBFR0xfRkFMU0UpIHsKICAgICAgICAgTE9H
KFdlYkdMLCAiRUdMRGlzcGxheSBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7Ci0gICAgICAgIHJl
dHVybiBFR0xfTk9fRElTUExBWTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAgICAgTE9H
KFdlYkdMLCAiQU5HTEUgaW5pdGlhbGlzZWQgTWFqb3I6ICVkIE1pbm9yOiAlZCIsIG1ham9yVmVy
c2lvbiwgbWlub3JWZXJzaW9uKTsKICAgICBpZiAoc2hvdWxkSW5pdGlhbGl6ZVdpdGhWb2xhdGls
ZUNvbnRleHRTdXBwb3J0KSB7CkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIEVHTERpc3BsYXkg
SW5pdGlhbGl6ZUVHTERpc3BsYXkoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBh
dHRycykKICAgICAgICAgQVNTRVJUKGNoZWNrVm9sYXRpbGVDb250ZXh0U3VwcG9ydElmRGV2aWNl
RXhpc3RzKGRpc3BsYXksICJFR0xfQU5HTEVfcGxhdGZvcm1fZGV2aWNlX2NvbnRleHRfdm9sYXRp
bGVfZWFnbCIsICJFR0xfQU5HTEVfZGV2aWNlX2VhZ2wiLCBFR0xfRUFHTF9DT05URVhUX0FOR0xF
KSk7CiAgICAgICAgIEFTU0VSVChjaGVja1ZvbGF0aWxlQ29udGV4dFN1cHBvcnRJZkRldmljZUV4
aXN0cyhkaXNwbGF5LCAiRUdMX0FOR0xFX3BsYXRmb3JtX2RldmljZV9jb250ZXh0X3ZvbGF0aWxl
X2NnbCIsICJFR0xfQU5HTEVfZGV2aWNlX2NnbCIsIEVHTF9DR0xfQ09OVEVYVF9BTkdMRSkpOwog
ICAgIH0KLSAgICByZXR1cm4gZGlzcGxheTsKKyAgICByZXR1cm4gU2NvcGVkRUdMRGVmYXVsdERp
c3BsYXk6OmFkb3B0SW5pdGlhbGl6ZWREaXNwbGF5KGRpc3BsYXkpOwogfQogCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgc3RhdHVzQ2hlY2tUaHJlc2hvbGQgPSA1OwpAQCAtMTY2LDcgKzE2Niw3IEBA
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0CiAgICAgbV9pc0ZvcldlYkdMMiA9IGF0dHJzLndlYkdM
VmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyOwogCiAgICAg
bV9kaXNwbGF5T2JqID0gSW5pdGlhbGl6ZUVHTERpc3BsYXkoYXR0cnMpOwotICAgIGlmIChtX2Rp
c3BsYXlPYmogPT0gRUdMX05PX0RJU1BMQVkpCisgICAgaWYgKCFtX2Rpc3BsYXlPYmopCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGJvb2wgc3VwcG9ydHNQb3dlclByZWZlcmVuY2UgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKaW5kZXggODI0MWQ2MmY3NmIzYjIyMWMw
NzRjODIzMzYyZTY1MGFhNWI5Y2E0OC4uZjc2NzlhNDg0ZjQzMDczODBiOThkNGQzMTFkYjhiY2M0
NDkwNDcxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlIDx3dGYvVW5pcXVlQXJyYXkuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuaCIKICNpbmNs
dWRlICJJT1N1cmZhY2UuaCIKICNlbmRpZgogCkBAIC0xMjQsNiArMTI1LDkgQEAgcHVibGljOgog
ICAgIH07CiAgICAgc3RhdGljIGJvb2wgcmVsZWFzZUN1cnJlbnRDb250ZXh0KFJlbGVhc2VCZWhh
dmlvcik7CiAjZW5kaWYKKyNpZiBVU0UoQU5HTEUpCisgICAgc3RhdGljIHZvaWQgcmVsZWFzZUFs
bFJlc291cmNlc0lmVW51c2VkKCk7CisjZW5kaWYKIAogICAgIC8vIFdpdGggbXVsdGlzYW1wbGlu
ZyBvbiwgYmxpdCBmcm9tIG11bHRpc2FtcGxlRkJPIHRvIHJlZ3VsYXIgRkJPLgogICAgIHZvaWQg
cHJlcGFyZVRleHR1cmUoKTsKQEAgLTU2NSw4ICs1NjksOCBAQCBwcml2YXRlOgogICAgIEdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKiBtX3N3YXBDaGFpbiB7IG51bGxwdHIgfTsK
ICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgdGhlIGNvbnRleHQgZHJh
d3MgdG8gYSBpbWFnZSBidWZmZXIuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4MTc5IC4KICAgICBSZXRhaW5QdHI8V2ViR0xMYXllcj4gbV93ZWJHTExheWVy
OworICAgIFNjb3BlZEVHTERlZmF1bHREaXNwbGF5IG1fZGlzcGxheU9iajsKICAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dEdMIG1fY29udGV4dE9iaiB7IG51bGxwdHIgfTsKLSAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBtX2Rpc3BsYXlPYmogeyBudWxscHRyIH07CiAgICAg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBtX2NvbmZpZ09iaiB7IG51bGxwdHIgfTsK
ICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5k
ZXggYzYwOGQzMmE3YjYwM2IwZTM0MGVkMTI4OWMyNmMzNjExZTM2MmEwMS4uNjM4ZjYyOGNlNjVj
ZmU4YjdmNjZkZDMwZDdmZTYxNzgwN2Q0YWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
CkBAIC01Miw2ICs1MiwxNSBAQCBzdGF0aWMgSVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVl
JiByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpCiAgICAgcmV0dXJuIGlu
c3RhbmNlLmdldCgpOwogfQogCitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgZGlzcGF0Y2hSZWxl
YXNlQWxsUmVzb3VyY2VzSWZVbnVzZWRUaW1lb3V0ID0gMC4yX3M7CitzdGF0aWMgdW5zaWduZWQg
cmVtb3RlR3JhcGhpY3NDb250ZXh0Q291bnQ7CitzdGF0aWMgdm9pZCBkaXNwYXRjaFJlbGVhc2VB
bGxSZXNvdXJjZXNJZlVudXNlZCgpCit7CisjaWYgVVNFKEFOR0xFKQorICAgIHJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMU3RyZWFtV29ya1F1ZXVlKCkuZGlzcGF0Y2goR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCk7CisjZW5kaWYKK30KKwogI2lmICFQ
TEFURk9STShDT0NPQSkKIFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVz
LCBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVy
LCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNv
bm5lY3Rpb25CdWZmZXImJiBzdHJlYW0pCiB7CkBAIC04MCw2ICs4OSw3IEBAIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMOjp+UmVtb3RlR3JhcGhpY3NDb250ZXh0R0woKQogdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6aW5pdGlhbGl6ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBh
dHRyaWJ1dGVzKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgKytyZW1v
dGVHcmFwaGljc0NvbnRleHRDb3VudDsKICAgICByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0cmVh
bVdvcmtRdWV1ZSgpLmRpc3BhdGNoKFthdHRyaWJ1dGVzID0gV1RGTW92ZShhdHRyaWJ1dGVzKSwg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIG11dGFibGUgewogICAgICAgICBwcm90
ZWN0ZWRUaGlzLT53b3JrUXVldWVJbml0aWFsaXplKFdURk1vdmUoYXR0cmlidXRlcykpOwogICAg
IH0pOwpAQCAtOTMsNiArMTAzLDkgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6c3Rv
cExpc3RlbmluZ0ZvcklQQyhSZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+JiYKICAgICByZW1v
dGVHcmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpLmRpc3BhdGNoKFtwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShyZWZGcm9tQ29ubmVjdGlvbildKCkgewogICAgICAgICBwcm90ZWN0ZWRU
aGlzLT53b3JrUXVldWVVbmluaXRpYWxpemUoKTsKICAgICB9KTsKKyAgICAtLXJlbW90ZUdyYXBo
aWNzQ29udGV4dENvdW50OworICAgIGlmICghcmVtb3RlR3JhcGhpY3NDb250ZXh0Q291bnQpCisg
ICAgICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaEFmdGVyKGRpc3BhdGNoUmVsZWFzZUFs
bFJlc291cmNlc0lmVW51c2VkVGltZW91dCwgZGlzcGF0Y2hSZWxlYXNlQWxsUmVzb3VyY2VzSWZV
bnVzZWQpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423062</attachid>
            <date>2021-03-12 10:42:55 -0800</date>
            <delta_ts>2021-03-17 04:47:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223082-20210312204252.patch</filename>
            <type>text/plain</type>
            <size>22468</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUyNzQyNDNiNzg1Y2Y5
OWQ0ODYwMjk5ODhlYmMzYThlMTBmNTNhZC4uYjM2ODZkNjQwMzViNDUwZTVlZDA0YzBiNDQ4MDcy
ZWViNzJiMTUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAzLTEyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgU2h1dGRvd24gQU5H
TEUgb24gR1BVIHByb2Nlc3Mgd2hlbiBsYXN0IFdlYkdMIGNvbnRleHQgaXMgZGVzdHJveWVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMwODIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpJ
bml0aWFsaXplRUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oOgorICAgICAgICBIb2xkIHRo
ZSBkZWZhdWx0IEVHTERpc3BsYXkgd2l0aCBhIHNjb3BlZCBob2xkZXIgdGhhdCBjb3VudHMKKyAg
ICAgICAgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIGRlZmF1bHQgZGlzcGxheS4KKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZWxlYXNlQWxsUmVzb3VyY2VzSWZVbnVz
ZWQpOgorICAgICAgICBBZGQgYSBjYWxsIHRoYXQgdW5pbml0aWFsaXplcyB0aGUgQU5HTEUgZGVm
YXVsdCBkaXNwbGF5IGlmIHRoZXJlIGFyZSBubyB1c2VzIG9mCisgICAgICAgIHRoZSBkZWZhdWx0
IGRpc3BsYXkuCisKKworCiAyMDIxLTAzLTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBw
bGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gRW5jb2RpbmcgYnVmZmVyIGZvciBEaXNw
bGF5TGlzdCBpdGVtcyBzaG91bGQgYmUgYWxpZ25lZCB0byA4IGJ5dGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJh
OGI2ZTQyN2JjNzU4MTQ3NjliMzBkMWZiODJjZjllNTBjOGUyNmUuLmFjYmFjNzI1ZGRiNWNmMzEw
YTIwYWEwY2M4NmIyMTM3YjNjMTQzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEt
MDMtMTIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBT
aHV0ZG93biBBTkdMRSBvbiBHUFUgcHJvY2VzcyB3aGVuIGxhc3QgV2ViR0wgY29udGV4dCBpcyBk
ZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMzA4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNjaGVkdWxlIGEgY2hlY2sgZm9yIHJlbGVhc2luZyB0aGUgQU5HTEUgZGVmYXVsdCBkaXNwbGF5
IHdoZW4gZ2xvYmFsCisgICAgICAgIGNvdW50IG9mIHJlbW90ZSBncmFwaGljcyBjb250ZXh0cyBy
ZWFjaCB6ZXJvLiBUaGlzIHNob3VsZCBkZWNyZWFzZSB0aGUKKyAgICAgICAgbWVtb3J5IHVzZSBv
ZiBzZXNzaW9ucyB3aGVyZSBXZWJHTCBpcyBub3QgYWx3YXlzIG9uLgorCisgICAgICAgIERpc3Bh
dGNoIHRoZSBjaGVjayAwLjJzIGFmdGVyIGhpdHRpbmcgemVybywgc28gdGhhdCB0aGUgb3B0aW1p
emF0aW9uIHN0aWxsCisgICAgICAgIGFmZmVjdHMgcGFnZSBuYXZpZ2F0aW9ucyBidXQgbWF5YmUg
ZG9lcyBub3QgcmVkdW5kYW50bHkgZGVpbml0aWFsaXplIC8KKyAgICAgICAgcmVpbml0aWFsaXpl
IEFOR0xFIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGV4dCAjMSBpcyBjcmVhdGVkIGFuZCBk
ZXN0cm95ZWQKKyAgICAgICAgZnJlcXVlbnRseS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0OjpkaXNw
YXRjaFJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w6OnN0b3BMaXN0ZW5pbmdGb3JJUEMpOgorCiAyMDIxLTAzLTExICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IFZNX0ZMQUdT
X1BFUk1BTkVOVCBmb3IgdGhlIGNvbmZpZyB2bSBtYXBwaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDFhMDZiMGYzNGQ3MThhODY1NGQ0MDcxYWQ3NjdmOGI3YTM0Y2JkNzQuLjQ5YTRiNzU0MDgz
MjEyYzYyMWQ3OTllZWYyYzljNDhkYmFkMDBlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
NjQ1LDYgKzE2NDUsNyBAQCBpZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVu
c2lvbnNHTEFOR0xFLmNwcAogICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuY3BwCiAgICAgICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1wb3JhcnlBTkdMRVNldHRpbmcuY3BwCiAgICAgICAg
ICkKICAgICBlbHNlICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBkMzg1YTIyNmQ3MDNi
ODdjMGU5MTU1ZGQ4ODczZGFjNzhlNGZhY2IzLi5iM2JkMzBkNDYxYjBjYmI0ODgwY2UwZWI1MTFm
Y2MzNGJjYzM3YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTYwOCw2ICs2MDgsNyBA
QCB0ZXN0aW5nL2NvY29hL1dlYlZpZXdWaXN1YWxJZGVudGlmaWNhdGlvbk92ZXJsYXkubW0KIAog
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uc0dMQU5HTEUuY3BwIEBuby11bmlmeQog
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgQG5vLXVu
aWZ5CitwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRp
bGl0aWVzLmNwcCBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFO
R0xFU2V0dGluZy5jcHAgQG5vLXVuaWZ5CiAKIC8vIERlcml2ZWQgU291cmNlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEwYzA1
NGRjNDM5ODk3NTdjYjkzNGRiMjJmMjE3OGZmMGIxMThiNjAuLmZhNDQ5NmEwY2E5ZjVmOTFiZTZk
ODg4YTAyMWVkMTBiZjI0ZGMxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNzEsNiArMjI3MSw4IEBACiAJCTdBRjlCMjBG
MThDRkI1RjQwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRjlCMjBCMThDRkI1RjMwMEM2NEJFRiAvKiBK
U1ZUVFJlZ2lvbkxpc3QuaCAqLzsgfTsKIAkJN0IxMDMzOUUyNTQ5NzIxNzAwQzhDMUFDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQ1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENW
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0Ix
MDMzOUYyNTQ5NzIxRTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUMyNTQ5NzIw
MTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCNDVBQjUwMjVGQjkzQkUwMEZEMjdG
NCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCNzc0QzYyMjVGQjkzNTUwMDkxMzk1
RiAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcCAqLzsgfTsKKwkJN0I0
NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCNDVB
QjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2
REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENo
YWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjZE
QzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hh
aW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3MzEx
RkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjkwNDE3
MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOTA0MTZFMjU1
MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDM0NSwxMCAr
MTAzNDcsMTIgQEAKIAkJN0IxMDMzOUEyNTQ5NzIwMDAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4
dEdMQ1ZBTkdMRS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQU5H
TEUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5QzI1NDk3MjAxMDBD
OEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBo
aWNzQ29udGV4dEdMQ1ZBTkdMRS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEw
MzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHcmFwaGljc0NvbnRleHRHTENWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdCNDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRp
bGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dEdMQU5HTEVFR0xVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2
NEMwQjQyNTRDM0IxNjAwMDZCNEFGIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNl
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1
NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZE
QzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hh
aW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzEx
RkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BV
UmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qjc3NEM2MjI1RkI5MzU1
MDA5MTM5NUYgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdM
QU5HTEVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDUy
NTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjI0NjcsNiArMjI0NzEsOCBAQAogCQkJCTZFMjdGMjQzMjI5
QzlGODQwMEYxRjYzMiAvKiBFeHRlbnNpb25zR0xBTkdMRS5jcHAgKi8sCiAJCQkJNkUyN0YyNDQy
MjlDOUY4RDAwRjFGNjMyIC8qIEV4dGVuc2lvbnNHTEFOR0xFLmggKi8sCiAJCQkJNkUyN0YyNDIy
Mjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovLAorCQkJCTdC
Nzc0QzYyMjVGQjkzNTUwMDkxMzk1RiAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmNwcCAqLywKKwkJCQk3QjQ1QUI1NDI1RkJBOUREMDBGRDI3RjQgLyogR3JhcGhpY3NDb250
ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5oICovLAogCQkJCTdCQjM0QTE2MjUzNDVDQjIwMDAyOUQw
OCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVzLmggKi8sCiAJCQkJNkUyOTA4NjEy
MjlEQjk1MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAgKi8sCiAJCQkJNkUy
OTA4NjMyMjlEQjk3MDAwMDk4NkUyIC8qIFRlbXBvcmFyeUFOR0xFU2V0dGluZy5oICovLApAQCAt
MzI0MzEsNiArMzI0MzcsNyBAQAogCQkJCUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFw
aGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNB
MCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzREU4NzAyM0E5
Njk3MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dEdMLmggaW4gSGVhZGVycyAqLywKKwkJCQk3
QjQ1QUI1NTI1RkJBOURFMDBGRDI3RjQgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8qIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMzMw
QTAyMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdCMTAzMzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRl
eHRHTENWLmggaW4gSGVhZGVycyAqLywKQEAgLTM2MjI2LDYgKzM2MjMzLDcgQEAKIAkJCQk1MUE5
RDlFOTE5NUI5MzFGMDAxQjJCNUMgLyogR2FtZXBhZE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU3MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8qIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0I0NUFCNTAyNUZC
OTNCRTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0MzRTUxMEIxOERGOEYzNTAwQzExMkY3IC8qIEhUTUxDb252ZXJ0
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBOEQwNkIzQTBBMjY1RENEMDA1RTcyMDMgLyogSFRN
TE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzkwMEMzMTk0M0MwRkMwMDg2MjVCNSAv
KiBIVFRQSGVhZGVyTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwCmluZGV4IGY0MmRmMGRmMDQ0ZWRmMmUwZTU3NDMzMDhhYmYxNjY0MDU3ZjU1
MTEuLmZiMjhlYTg3ZGQwZDk2ZmRkYjBkNzFlZDk4M2I5Nzc4MmIwMWVmOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdM
QU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC0yODM1LDYgKzI4MzUsNyBAQCBHcmFwaGljc0Nv
bnRleHRHTENWKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6YXNDVigpCiAgICAgcmV0dXJuIG1f
Y3YuZ2V0KCk7CiB9CiAjZW5kaWYKKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKSAmJiBV
U0UoQU5HTEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1YmY4MzdkMjVlNDNkMDY1OGQ2YjY4NTFkZDQ4YTIxOTg2
OTZmN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcApAQCAtMCwwICsx
LDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCIKKworI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgorI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisKKyNpZiBFTkFCTEUoV0VCR0wpICYmIFVTRShBTkdMRSkKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGF0aWMgdW5zaWduZWQgZGVmYXVsdERpc3BsYXlSZWZDb3VudDsKK3N0
YXRpYyB2b2lkKiBkZWZhdWx0RGlzcGxheSA9IG51bGxwdHI7CisKK3N0YXRpYyB2b2lkIHJlZkRl
ZmF1bHREaXNwbGF5KHZvaWQqIGRpc3BsYXkpCit7CisgICAgQVNTRVJUKGRpc3BsYXkgIT0gbnVs
bHB0cik7CisgICAgQVNTRVJUKGRlZmF1bHREaXNwbGF5ID09IGRpc3BsYXkgfHwgKCFkZWZhdWx0
RGlzcGxheSAmJiAhZGVmYXVsdERpc3BsYXlSZWZDb3VudCkpOworICAgIGRlZmF1bHREaXNwbGF5
UmVmQ291bnQrKzsKKyAgICBkZWZhdWx0RGlzcGxheSA9IGRpc3BsYXk7Cit9CisKK3N0YXRpYyB2
b2lkIHVucmVmRGVmYXVsdERpc3BsYXlJZk5lZWRlZCh2b2lkKiBkaXNwbGF5KQoreworICAgIGlm
ICghZGlzcGxheSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChkZWZhdWx0RGlzcGxheSA9
PSBkaXNwbGF5KTsKKyAgICBBU1NFUlQoZGVmYXVsdERpc3BsYXlSZWZDb3VudCk7CisgICAgZGVm
YXVsdERpc3BsYXlSZWZDb3VudC0tOworfQorCitTY29wZWRFR0xEZWZhdWx0RGlzcGxheSYgU2Nv
cGVkRUdMRGVmYXVsdERpc3BsYXk6Om9wZXJhdG9yPShTY29wZWRFR0xEZWZhdWx0RGlzcGxheSYm
IG90aGVyKQoreworICAgIGlmICh0aGlzICE9ICZvdGhlcikgeworICAgICAgICB1bnJlZkRlZmF1
bHREaXNwbGF5SWZOZWVkZWQobV9kaXNwbGF5KTsKKyAgICAgICAgbV9kaXNwbGF5ID0gc3RkOjpl
eGNoYW5nZShvdGhlci5tX2Rpc3BsYXksIG51bGxwdHIpOworICAgIH0KKyAgICByZXR1cm4gKnRo
aXM7Cit9CisKK1Njb3BlZEVHTERlZmF1bHREaXNwbGF5OjpTY29wZWRFR0xEZWZhdWx0RGlzcGxh
eSh2b2lkKiBkaXNwbGF5KQorICAgIDogbV9kaXNwbGF5KGRpc3BsYXkpCit7CisgICAgcmVmRGVm
YXVsdERpc3BsYXkobV9kaXNwbGF5KTsKK30KKworU2NvcGVkRUdMRGVmYXVsdERpc3BsYXk6On5T
Y29wZWRFR0xEZWZhdWx0RGlzcGxheSgpCit7CisgICAgdW5yZWZEZWZhdWx0RGlzcGxheUlmTmVl
ZGVkKG1fZGlzcGxheSk7Cit9CisKK3ZvaWQgU2NvcGVkRUdMRGVmYXVsdERpc3BsYXk6OnJlbGVh
c2VBbGxSZXNvdXJjZXNJZlVudXNlZCgpCit7CisgICAgaWYgKGRlZmF1bHREaXNwbGF5UmVmQ291
bnQpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoZGVmYXVsdERpc3BsYXkgPT0gbnVsbHB0cikK
KyAgICAgICAgcmV0dXJuOworICAgIGJvb2wgcmVzdWx0ID0gRUdMX1Rlcm1pbmF0ZShkZWZhdWx0
RGlzcGxheSk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7CisgICAgcmVzdWx0
ID0gRUdMX1JlbGVhc2VUaHJlYWQoKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0
KTsKKyAgICBkZWZhdWx0RGlzcGxheSA9IG51bGxwdHI7Cit9CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTQ0MjA1MjBiZGU4YmEyZWU4NWQ2ODgyZjY1OGQ0NTgyZGJjZWVhMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoV0VCR0wpICYmIFVTRShBTkdMRSkKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KKworLy8gQ3VycmVudGx5IHRoaXMgbm90IHVzaW5nIEFOR0xF
IGhlYWRlcnMgc2luY2UgdGhpcyBpcyBleHBvcnRlZCBoZWFkZXIgYW5kIHdlIGRvIG5vdCBleHBv
cnQgQU5HTEUgaGVhZGVycy4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY29wZWRF
R0xEZWZhdWx0RGlzcGxheSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NvcGVkRUdMRGVm
YXVsdERpc3BsYXkpOworcHVibGljOgorICAgIHN0YXRpYyBTY29wZWRFR0xEZWZhdWx0RGlzcGxh
eSBhZG9wdEluaXRpYWxpemVkRGlzcGxheSh2b2lkKiBkaXNwbGF5KQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGRpc3BsYXkgIT0gbnVsbHB0cik7CisgICAgICAgIHJldHVybiBTY29wZWRFR0xEZWZh
dWx0RGlzcGxheShkaXNwbGF5KTsKKyAgICB9CisgICAgU2NvcGVkRUdMRGVmYXVsdERpc3BsYXko
KSA9IGRlZmF1bHQ7CisgICAgU2NvcGVkRUdMRGVmYXVsdERpc3BsYXkoU2NvcGVkRUdMRGVmYXVs
dERpc3BsYXkmJiBvdGhlcikKKyAgICAgICAgOiBtX2Rpc3BsYXkoc3RkOjpleGNoYW5nZShvdGhl
ci5tX2Rpc3BsYXksIG51bGxwdHIpKQorICAgIHsKKyAgICB9CisgICAgflNjb3BlZEVHTERlZmF1
bHREaXNwbGF5KCk7CisgICAgU2NvcGVkRUdMRGVmYXVsdERpc3BsYXkmIG9wZXJhdG9yPShTY29w
ZWRFR0xEZWZhdWx0RGlzcGxheSYmKTsKKyAgICBvcGVyYXRvciB2b2lkKigpIGNvbnN0IHsgcmV0
dXJuIG1fZGlzcGxheTsgfQorICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX2Rp
c3BsYXkgIT0gbnVsbHB0cjsgfQorICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VBbGxSZXNvdXJjZXNJ
ZlVudXNlZCgpOworcHJpdmF0ZToKKyAgICBTY29wZWRFR0xEZWZhdWx0RGlzcGxheSh2b2lkKik7
CisgICAgdm9pZCogbV9kaXNwbGF5IHsgbnVsbHB0ciB9OworfTsKKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDg1YzI1ZmIwN2Ni
N2FiMGQ5MjFlYmM1NGM2NmZhOWJjMWE3NmY2ZDIuLjcyMDhjOTAzMDUwNGM3OTA3ZGI3ZjQ3ODg4
MTkyZjA1M2U4OTNjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgYm9vbCBjaGVja1ZvbGF0aWxlQ29udGV4dFN1
cHBvcnRJZkRldmljZUV4aXN0cyhFR0xEaXNwbGF5IGRpc3BsYXksIGNvbnN0CiB9CiAjZW5kaWYK
IAotc3RhdGljIEVHTERpc3BsYXkgSW5pdGlhbGl6ZUVHTERpc3BsYXkoY29uc3QgR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRycykKK3N0YXRpYyBTY29wZWRFR0xEZWZhdWx0RGlzcGxh
eSBJbml0aWFsaXplRUdMRGlzcGxheShjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMm
IGF0dHJzKQogewogICAgIEVHTGludCBtYWpvclZlcnNpb24gPSAwOwogICAgIEVHTGludCBtaW5v
clZlcnNpb24gPSAwOwpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IEluaXRp
YWxpemVFR0xEaXNwbGF5KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMp
CiAKICAgICBpZiAoRUdMX0luaXRpYWxpemUoZGlzcGxheSwgJm1ham9yVmVyc2lvbiwgJm1pbm9y
VmVyc2lvbikgPT0gRUdMX0ZBTFNFKSB7CiAgICAgICAgIExPRyhXZWJHTCwgIkVHTERpc3BsYXkg
SW5pdGlhbGl6YXRpb24gZmFpbGVkLiIpOwotICAgICAgICByZXR1cm4gRUdMX05PX0RJU1BMQVk7
CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogICAgIExPRyhXZWJHTCwgIkFOR0xFIGluaXRp
YWxpc2VkIE1ham9yOiAlZCBNaW5vcjogJWQiLCBtYWpvclZlcnNpb24sIG1pbm9yVmVyc2lvbik7
CiAgICAgaWYgKHNob3VsZEluaXRpYWxpemVXaXRoVm9sYXRpbGVDb250ZXh0U3VwcG9ydCkgewpA
QCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IEluaXRpYWxpemVFR0xEaXNwbGF5
KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cnMpCiAgICAgICAgIEFTU0VS
VChjaGVja1ZvbGF0aWxlQ29udGV4dFN1cHBvcnRJZkRldmljZUV4aXN0cyhkaXNwbGF5LCAiRUdM
X0FOR0xFX3BsYXRmb3JtX2RldmljZV9jb250ZXh0X3ZvbGF0aWxlX2VhZ2wiLCAiRUdMX0FOR0xF
X2RldmljZV9lYWdsIiwgRUdMX0VBR0xfQ09OVEVYVF9BTkdMRSkpOwogICAgICAgICBBU1NFUlQo
Y2hlY2tWb2xhdGlsZUNvbnRleHRTdXBwb3J0SWZEZXZpY2VFeGlzdHMoZGlzcGxheSwgIkVHTF9B
TkdMRV9wbGF0Zm9ybV9kZXZpY2VfY29udGV4dF92b2xhdGlsZV9jZ2wiLCAiRUdMX0FOR0xFX2Rl
dmljZV9jZ2wiLCBFR0xfQ0dMX0NPTlRFWFRfQU5HTEUpKTsKICAgICB9Ci0gICAgcmV0dXJuIGRp
c3BsYXk7CisgICAgcmV0dXJuIFNjb3BlZEVHTERlZmF1bHREaXNwbGF5OjphZG9wdEluaXRpYWxp
emVkRGlzcGxheShkaXNwbGF5KTsKIH0KIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHN0YXR1c0No
ZWNrVGhyZXNob2xkID0gNTsKQEAgLTE2Niw3ICsxNjYsNyBAQCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dAogICAgIG1faXNGb3JXZWJHTDIgPSBhdHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3ND
b250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMjsKIAogICAgIG1fZGlzcGxheU9iaiA9IEluaXRp
YWxpemVFR0xEaXNwbGF5KGF0dHJzKTsKLSAgICBpZiAobV9kaXNwbGF5T2JqID09IEVHTF9OT19E
SVNQTEFZKQorICAgIGlmICghbV9kaXNwbGF5T2JqKQogICAgICAgICByZXR1cm47CiAKICAgICBi
b29sIHN1cHBvcnRzUG93ZXJQcmVmZXJlbmNlID0gZmFsc2U7CkBAIC02NDUsNiArNjQ1LDExIEBA
IFJlZlB0cjxJbWFnZURhdGE+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZWFkQ29tcG9zaXRl
ZFJlc3VsdHMoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCgpCit7CisgICAgU2NvcGVkRUdM
RGVmYXVsdERpc3BsYXk6OnJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCgpOworfQorCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5o
CmluZGV4IDgyNDFkNjJmNzZiM2IyMjFjMDc0YzgyMzM2MmU2NTBhYTViOWNhNDguLjVlMzMwNzc4
OWY5MGRiMWE2ZTI3MWU0YjMyYzQzZDExMTg0YWM2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1ZUFycmF5
Lmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTEFO
R0xFRUdMVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCiAjZW5kaWYKIApAQCAt
MTI0LDYgKzEyNSw5IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHN0YXRpYyBib29sIHJlbGVhc2VD
dXJyZW50Q29udGV4dChSZWxlYXNlQmVoYXZpb3IpOwogI2VuZGlmCisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgc3RhdGljIHZvaWQgcmVsZWFzZUFsbFJlc291cmNlc0lmVW51c2VkKCk7CisjZW5k
aWYKIAogICAgIC8vIFdpdGggbXVsdGlzYW1wbGluZyBvbiwgYmxpdCBmcm9tIG11bHRpc2FtcGxl
RkJPIHRvIHJlZ3VsYXIgRkJPLgogICAgIHZvaWQgcHJlcGFyZVRleHR1cmUoKTsKQEAgLTU2NSw4
ICs1NjksOCBAQCBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENo
YWluKiBtX3N3YXBDaGFpbiB7IG51bGxwdHIgfTsKICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBi
ZSByZW1vdmVkIG9uY2UgdGhlIGNvbnRleHQgZHJhd3MgdG8gYSBpbWFnZSBidWZmZXIuIFNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MTc5IC4KICAgICBSZXRh
aW5QdHI8V2ViR0xMYXllcj4gbV93ZWJHTExheWVyOworICAgIFNjb3BlZEVHTERlZmF1bHREaXNw
bGF5IG1fZGlzcGxheU9iajsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIG1fY29udGV4
dE9iaiB7IG51bGxwdHIgfTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBt
X2Rpc3BsYXlPYmogeyBudWxscHRyIH07CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENv
bmZpZyBtX2NvbmZpZ09iaiB7IG51bGxwdHIgfTsKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggYzYwOGQzMmE3YjYwM2IwZTM0MGVkMTI4
OWMyNmMzNjExZTM2MmEwMS4uMzQ4MmM3Zjk1MzRlODExMmZhYTY3YmZjMmU1NjkwZDhjOWNmNjYw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC01Miw2ICs1MiwxNSBAQCBzdGF0aWMg
SVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlJiByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0
cmVhbVdvcmtRdWV1ZSgpCiAgICAgcmV0dXJuIGluc3RhbmNlLmdldCgpOwogfQogCitzdGF0aWMg
Y29uc3RleHByIFNlY29uZHMgZGlzcGF0Y2hSZWxlYXNlQWxsUmVzb3VyY2VzSWZVbnVzZWRUaW1l
b3V0ID0gMC4yX3M7CitzdGF0aWMgdW5zaWduZWQgcmVtb3RlR3JhcGhpY3NDb250ZXh0Q291bnQ7
CitzdGF0aWMgdm9pZCBkaXNwYXRjaFJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCgpCit7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmVtb3RlR3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3Jr
UXVldWUoKS5kaXNwYXRjaChHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVsZWFzZUFsbFJlc291
cmNlc0lmVW51c2VkKTsKKyNlbmRpZgorfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogUmVmPFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVh
bSkKIHsKQEAgLTgwLDYgKzg5LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6On5SZW1vdGVH
cmFwaGljc0NvbnRleHRHTCgpCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjppbml0aWFs
aXplKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICArK3JlbW90ZUdyYXBoaWNzQ29udGV4dENvdW50
OwogICAgIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFtV29ya1F1ZXVlKCkuZGlzcGF0Y2go
W2F0dHJpYnV0ZXMgPSBXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldKCkgbXV0YWJsZSB7CiAgICAgICAgIHByb3RlY3RlZFRoaXMtPndvcmtRdWV1ZUlu
aXRpYWxpemUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CiAgICAgfSk7CkBAIC05Myw2ICsxMDMsOSBA
QCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpzdG9wTGlzdGVuaW5nRm9ySVBDKFJlZjxS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTD4mJgogICAgIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3Ry
ZWFtV29ya1F1ZXVlKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHJlZkZyb21D
b25uZWN0aW9uKV0oKSB7CiAgICAgICAgIHByb3RlY3RlZFRoaXMtPndvcmtRdWV1ZVVuaW5pdGlh
bGl6ZSgpOwogICAgIH0pOworICAgIC0tcmVtb3RlR3JhcGhpY3NDb250ZXh0Q291bnQ7CisgICAg
aWYgKCFyZW1vdGVHcmFwaGljc0NvbnRleHRDb3VudCkKKyAgICAgICAgUnVuTG9vcDo6Y3VycmVu
dCgpLmRpc3BhdGNoQWZ0ZXIoZGlzcGF0Y2hSZWxlYXNlQWxsUmVzb3VyY2VzSWZVbnVzZWRUaW1l
b3V0LCBkaXNwYXRjaFJlbGVhc2VBbGxSZXNvdXJjZXNJZlVudXNlZCk7CiB9CiAKICNpZiBQTEFU
Rk9STShNQUMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>