<?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>231804</bug_id>
          
          <creation_ts>2021-10-15 05:57:41 -0700</creation_ts>
          <short_desc>Cocoa GraphicsContextGLOpenGL should not use WebGLLayer</short_desc>
          <delta_ts>2021-10-18 07:58:41 -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>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231009</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1804776</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-15 05:57:41 -0700</bug_when>
    <thetext>Cocoa GraphicsContextGLOpenGL should not use WebGLLayer

When in GPU Process, GraphicsContextGLOpenGL does not need WebGLLayer.
Instead, GraphicsContextGLOpenGL should just use the &quot;swap chain&quot; directly, e.g. just hold the IOSurfaces for display buffer and drawing buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804880</commentid>
    <comment_count>1</comment_count>
      <attachid>441396</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-15 10:18:49 -0700</bug_when>
    <thetext>Created attachment 441396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804904</commentid>
    <comment_count>2</comment_count>
      <attachid>441402</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-15 10:54:05 -0700</bug_when>
    <thetext>Created attachment 441402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805245</commentid>
    <comment_count>3</comment_count>
      <attachid>441484</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-16 03:28:00 -0700</bug_when>
    <thetext>Created attachment 441484
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805373</commentid>
    <comment_count>4</comment_count>
      <attachid>441529</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-17 03:24:38 -0700</bug_when>
    <thetext>Created attachment 441529
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805375</commentid>
    <comment_count>5</comment_count>
      <attachid>441531</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-17 04:01:28 -0700</bug_when>
    <thetext>Created attachment 441531
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805474</commentid>
    <comment_count>6</comment_count>
      <attachid>441565</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-18 00:44:49 -0700</bug_when>
    <thetext>Created attachment 441565
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805570</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-18 07:57:30 -0700</bug_when>
    <thetext>Committed r284371 (243156@main): &lt;https://commits.webkit.org/243156@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441565.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805572</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-18 07:58:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/84370716&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441396</attachid>
            <date>2021-10-15 10:18:49 -0700</date>
            <delta_ts>2021-10-15 10:54:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231804-20211015201847.patch</filename>
            <type>text/plain</type>
            <size>50928</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJkZjgzNTNhN2ZiYzJi
MGU5ZDU4MWZlNTBhMTM4Nzk2MTcxYTVmNi4uZjQ2YTkwM2ExNjBjODllODE4M2QzYzBjMDY1NjRk
YmZjZWNmNzc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTEwLTE1ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29jb2EgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgc2hvdWxkIG5vdCB1c2UgV2ViR0xMYXllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgInN3YXAgY2hhaW4i
LCBlLmcuIHRoZSBkaXNwbGF5IGJ1ZmZlciBJT1N1cmZhY2UKKyAgICAgICAgZnJvbSBXZWJHTExh
eWVyIHRvIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLgorICAgICAgICBJbnN0YW50aWF0ZSBXZWJH
TExheWVyIG9ubHkgaW4gbmV3IGNsYXNzIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCwKKyAgICAgICAgd2hpY2ggaXMgdXNlZCB3aGVuIFdlYkdMIGlzIHJ1biBpbi1wcm9jZXNzIGlu
IFdlYkNvbnRlbnQgcHJvY2Vzcy4KKyAgICAgICAgU2ltcGx5IHNldCB0aGUgQ0FMYXllci5jb250
ZW50cyB3aGVuIG5ldyBkaXNwbGF5IGJ1ZmZlciBpcyByZWFkeSBhbmQKKyAgICAgICAgY2FsbCAi
c2V0TmVlZHNEaXNwbGF5IiBkaXJlY3RseS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGEgcmVm
YWN0b3IuCisKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2Vz
Q29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6On5HcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNWYWxpZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVzaGFwZURpc3BsYXlCdWZmZXJC
YWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwcmVw
YXJlRm9yRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6cmVhZENvbXBvc2l0ZWRSZXN1bHRzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGVGb3JHUFVQ
cm9jZXNzKTogRGVsZXRlZC4KKyAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgZm9yIEdQ
VVByb2Nlc3MgaXMgbm93IGEgbmV3IGNsYXNzLCBkZXNjcmliZWQKKyAgICAgICAgaW4gV2ViS2l0
IENoYW5nZUxvZy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwYWludENvbXBv
c2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Td2FwQ2hhaW4pOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tOgorICAgICAgICAoLVtXZWJHTExh
eWVyIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzpjb250ZW50c09wYXF1ZTpdKToKKyAgICAgICAg
KC1bV2ViR0xMYXllciBkaXNwbGF5XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgc3dhcENoYWlu
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYkdMTGF5ZXIgcHJlcGFyZUZvckRpc3BsYXldKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkdMTGF5ZXJTd2FwQ2hhaW46OnByZXNlbnQpOiBEZWxldGVk
LgorICAgICAgICBDQUxheWVyLmNvbnRlbnRzIGFuZCBzZXROZWVkc0Rpc3BsYXkgaXMgY2FsbGVk
IGRpcmVjdGx5IHdoZW4KKyAgICAgICAgYSBncmFwaGljcyBjb250ZXh0IGhhcyBuZXcgZGlzcGxh
eSBidWZmZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICBB
ZGQgYSBuZXcgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgdGhlIGNvbnN0cnVjdG9yIGV4aXRlZCBl
YXJseS4KKyAgICAgICAgQmVmb3JlLCBtX2NvbnRleHRPYmogd291bGQgYmUgY29uc3VsdGVkIGJ1
dCB0aGlzIGlzIG5vdCBwcm90ZWN0ZWQKKyAgICAgICAgc28gaXQncyBub3Qgc28gdXNlZnVsLiBB
bHNvIGl0IHdhc24ndCB2ZXJ5IGFjY3VyYXRlLCBhcyBzb21lIGNvbnN0cnVjdG9yCisgICAgICAg
IGVhcmx5IGV4aXN0cyByYW4gYWZ0ZXIgbV9jb250ZXh0T2JqIHdhcyBzZXQuIFVzZSBtX3RleHR1
cmUgdG8gZGV0ZWN0CisgICAgICAgIGZ1bGx5IGNvbnN0cnVjdGVkIG9iamVjdCBmb3Igbm93Lgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4
dEdMVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpjcmVhdGVGb3JHUFVQcm9jZXNzKTogRGVsZXRlZC4KKyAgICAgICAgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wgZm9yIEdQVVByb2Nlc3MgaXMgbm93IGEgbmV3IGNsYXNzLCBkZXNjcmliZWQK
KyAgICAgICAgaW4gV2ViS2l0IENoYW5nZUxvZy4gUmVtb3ZlIHRoZSBIb3N0V2luZG93IGFyZ3Vt
ZW50cyBmb3IKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wsIGl0J3Mgbm90IHVzZWQu
CisKIDIwMjEtMTAtMTUgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZlcnQgcjI4NDIzMCwgbXkgbGFzdCBmaXhlcyB0byB0aGUgd2F0Y2ggYnVpbGQg
bWFrZSBpdCBicmVhayB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxOTdiY2MxMWZiZTQxN2Q1YzE4MmE4ZmE3
NzQxYmNiMmQ0MjIwYTg0Li4xN2U1ZmI3MWNiOWMxMzA4ZGY4MGI0MWNiZDUxMDI0MjBlYjEwZGQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTEwLTE1ICBLaW1tbyBLaW5udW5lbiAg
PGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29jb2EgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wgc2hvdWxkIG5vdCB1c2UgV2ViR0xMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGNoYW5nZXMgc28gdGhhdCBHUFUgcHJv
Y2VzcyBzaWRlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLAorICAgICAgICB0aGUgbmV3IGNsYXNz
IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTCwgZG9lcyBub3QgdXNlCisgICAgICAgIFdlYkdM
TGF5ZXIuIEluc3RlYWQsIHRoZSBzd2FwIGNoYWluIGlzIGluIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMCisgICAgICAgIGFuZCB0aGUgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMIGV4cG9zZXMg
YSBmdW5jdGlvbiB0byBleHRyYWN0CisgICAgICAgIHRoZSBkaXNwbGF5IGJ1ZmZlciBvdXQgdG8g
YmUgc2VudCB0byBXZWJDb250ZW50IHByb2Nlc3MuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oOiBBZGRlZC4KKyAgICAgICAgQWRk
IGEgc2ltcGxlciBjbGFzcyBmb3IgR1BVUHJvY2VzcyBzaWRlIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMCisgICAgICAgIGluc3RhbmNlLCBvbmUgdGhhdCBjYW4gZ2V0IHRoZSBkaXNwbGF5IGJ1ZmZl
ciBmcm9tIHRoZSBpbnN0YW5jZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVH
cmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlz
cGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2lu
OjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUpOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6On5SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkpOgorICAgICAgICBNb3ZlIENvY29h
IGltcGxlbWVuYXRpb24gdG8gYW4gT2JqZWN0aXZlLUMrKyBmaWxlLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eTo6cHJlcGFyZUZvckRpc3BsYXkpOgorICAgICAgICBTZXQgdGhlIGRpc3BsYXkgYnVmZmVy
IGNvbnRlbnRzIGRpcmVjdGx5IHRvIHRoZSBXZWJHTExheWVyIGFmdGVyCisgICAgICAgIHByZXBh
cmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZU1v
ZGVsSG9zdGluZy5tbToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlTW9k
ZWxIb3N0aW5nOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMpOgorICAgICAgICBVbmlmaWVkIGJ1
aWxkIGZpeGVzLgorCiAyMDIxLTEwLTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIEFkQXR0cmlidXRpb25EYWVtb24gcGxpc3Qgb24g
aU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IGJjZmNlYjc5MzEzZWMwNWMzNTRjNWZl
ZmUzNGFiNTEwYWIzM2U3MTcuLjYxM2UxYjhkYmMzZGE3MGY2OGVmYzE2ZjFiMGZhZDE2NzRjNzk5
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMzIsNiArMzMyLDcgQEAgbGlzdChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
R0xMYXllci5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1BdWRpb1V0aWxpdGll
c0NvY29hLm1tCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMQ29jb2EubW0KIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0
L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQv
Rm9udENvcmVUZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYWJkMDRhMmEwNGRh
NmQyMmQwZDI2ODM0YTU5YjI5NWRjMzBiMWZmYS4uNWMyYzRhN2ZhYzE0YTVhNGQ3NDMzNTgwM2M3
OTk0YjdkMjIxYThkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zODgsNiArMzg4LDcg
QEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVn
YXRlLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCitwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvRHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGExMjM2ZWZlYjczMDhk
NTM5MGU1ZjhjZTBkMjc2OTRkYTQxMmQxOWUuLmI5YWVmMTkxNTQyMjgxODA0ZjliZWMzNjZhNGQ5
ZTBiZWEzOGFjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEwNzIyLDYgKzEwNzIyLDcgQEAKIAkJN0IxMDMzOUEyNTQ5NzIw
MDAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFO
R0xFLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhp
Y3NDb250ZXh0R0xDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMTYxOTEwMjcxOTg4MEUwMEM0MEVBQyAvKiBX
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QjY0QzBCNDI1NEMzQjE2MDAwNkI0QUYgLyogUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdCNkRDODE1MjU3MTJFOTEwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGlj
c0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjc2MTAsNiArMjc2MTEsNyBAQAogCQkJCTQ5RkZCRjNFMTFD
OTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tICovLAogCQkJCTA3RjVDRkY0MjU4MkE0Rjgw
MDY2MkVGNSAvKiBXZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5oICovLAogCQkJCTA3RjVDRkYyMjU4
MkE0RjgwMDY2MkVGNSAvKiBXZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbSAqLywKKwkJCQk3QjE2
MTkxMDI3MTk4ODBFMDBDNDBFQUMgLyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oCmluZGV4IGU5ZWNi
ODdjNzBhNTQzMDA4MmY3NDZkNjI2YTA1MWViZGM2NzI1MjUuLmQ5YzczM2I2YzM0ZTY3ZDNkNTNk
ODk2ZDE4M2YxNmVkMjk0YzUyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2UuaApAQCAtNDUsNiArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluOworY2xh
c3MgSU9TdXJmYWNlOwogI2VuZGlmCiAKIC8vIEEgYmFzZSBjbGFzcyBmb3IgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wgcHJveHkgc2lkZSBpbXBsZW1lbnRhdGlvbgpAQCAtOTEsMTUgKzkyLDEzIEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2FpdFVudGlsSW5pdGlhbGl6ZWQoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlNYXJrQ29udGV4dENoYW5nZWQoKSA9IDA7Ci0j
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hh
aW4mIHBsYXRmb3JtU3dhcENoYWluKCk7Ci0jZW5kaWYKIAotcHJpdmF0ZToKLSAgICB2b2lkIHBs
YXRmb3JtSW5pdGlhbGl6ZSgpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxX
ZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4g
bV9kaXNwbGF5QnVmZmVyOwogI2VuZGlmCitwcml2YXRlOgorICAgIHZvaWQgcGxhdGZvcm1Jbml0
aWFsaXplKCk7CiAKICAgICAvLyBHdWFyZGVkIGJ5IHdhaXRVbnRpbEluaXRpYWxpemVkKCkuCiAg
ICAgSGFzaFNldDxTdHJpbmc+IG1fYXZhaWxhYmxlRXh0ZW5zaW9uczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IGNjYmM0ZGQxMzJlYjU2MzlhMmFlNGM2
N2NlZDkxYWNkYTdjMjNjMWUuLmRiMGM5MDAyY2E5MGZkOTU5OWQwNGVhMDM3NjY0MzIzN2YzYzM1
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMzYs
NyArMzYsNiBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAj
aW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIK
LSNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENv
bnRleHQuaD4KICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L01ldGFsU1BJLmg+CkBAIC0xOTMsMjkgKzE5Miw3IEBAIHN0YXRpYyBib29sIG5lZWRzRUFHTE9u
TWFjKCkKIH0KICNlbmRpZgogCi1SZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0
dHJzLCBIb3N0V2luZG93KiBob3N0V2luZG93KQotewotICAgIC8vIE1ha2Ugc3BhY2UgZm9yIHRo
ZSBpbmNvbWluZyBjb250ZXh0IGlmIHdlJ3JlIGZ1bGwuCi0gICAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVjeWNsZUNvbnRleHRJZk5lY2Vzc2FyeSgp
OwotICAgIGlmIChHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIo
KS5oYXNUb29NYW55Q29udGV4dHMoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cnMsIGhvc3RXaW5kb3csIG51bGxwdHIpKTsKLQotICAg
IGlmICghY29udGV4dC0+bV9jb250ZXh0T2JqKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZENv
bnRleHQoY29udGV4dC5nZXQoKSk7Ci0KLSAgICByZXR1cm4gY29udGV4dDsKLX0KLQotUmVmPEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9y
R1BVUHJvY2Vzcyhjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJzLCBHcmFw
aGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiogc3dhcENoYWluKQotewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJzLCBudWxscHRyLCBz
d2FwQ2hhaW4pKTsKLX0KLQotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyos
IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKiBzd2FwQ2hhaW4pCitHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzIGF0dHJzKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cnMpCiB7CiAg
ICAgbV9pc0ZvcldlYkdMMiA9IGF0dHJzLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRH
TFdlYkdMVmVyc2lvbjo6V2ViR0wyOwpAQCAtMzUzLDE4ICszMzAsNiBAQCBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIGF0dAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogICAgIGF0dHJzID0gY29udGV4
dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9u
LgogCi0gICAgaWYgKHN3YXBDaGFpbikKLSAgICAgICAgbV9zd2FwQ2hhaW4gPSBzd2FwQ2hhaW47
Ci0gICAgZWxzZSB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgICAgIG1f
d2ViR0xMYXllciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBp
eGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1ZTohYXR0cnMuYWxw
aGFdKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIFttX3dlYkdMTGF5ZXIgc2V0TmFtZTpAIldl
YkdMIExheWVyIl07Ci0jZW5kaWYKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAg
ICAgIG1fc3dhcENoYWluID0gJlttX3dlYkdMTGF5ZXIgc3dhcENoYWluXTsKLSAgICB9Ci0KICAg
ICAvLyBDcmVhdGUgdGhlIHRleHR1cmUgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBmcmFtZWJ1
ZmZlci4KICAgICBHTGVudW0gdGV4dHVyZVRhcmdldCA9IGRyYXdpbmdCdWZmZXJUZXh0dXJlVGFy
Z2V0KCk7CiAKQEAgLTQzOSwxNCArNDA0LDEyIEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp+
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woKQogICAgIH0KICAgICBpZiAobV9kaXNwbGF5QnVmZmVy
UGJ1ZmZlcikKICAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxheU9iaiwgbV9kaXNw
bGF5QnVmZmVyUGJ1ZmZlcik7Ci0gICAgaWYgKG1fc3dhcENoYWluKSB7Ci0gICAgICAgIGF1dG8g
cmVjeWNsZWRCdWZmZXIgPSBtX3N3YXBDaGFpbi0+cmVjeWNsZUJ1ZmZlcigpOwotICAgICAgICBp
ZiAocmVjeWNsZWRCdWZmZXIuaGFuZGxlKQotICAgICAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNl
KG1fZGlzcGxheU9iaiwgcmVjeWNsZWRCdWZmZXIuaGFuZGxlKTsKLSAgICAgICAgYXV0byBjb250
ZW50c0hhbmRsZSA9IG1fc3dhcENoYWluLT5kZXRhY2hDbGllbnQoKTsKLSAgICAgICAgaWYgKGNv
bnRlbnRzSGFuZGxlKQotICAgICAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxheU9i
aiwgY29udGVudHNIYW5kbGUpOwotICAgIH0KKyAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9z
d2FwQ2hhaW4ucmVjeWNsZUJ1ZmZlcigpOworICAgIGlmIChyZWN5Y2xlZEJ1ZmZlci5oYW5kbGUp
CisgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIHJlY3ljbGVkQnVmZmVy
LmhhbmRsZSk7CisgICAgYXV0byBjb250ZW50c0hhbmRsZSA9IG1fc3dhcENoYWluLmRldGFjaENs
aWVudCgpOworICAgIGlmIChjb250ZW50c0hhbmRsZSkKKyAgICAgICAgRUdMX0Rlc3Ryb3lTdXJm
YWNlKG1fZGlzcGxheU9iaiwgY29udGVudHNIYW5kbGUpOwogICAgIGlmIChtX2NvbnRleHRPYmop
IHsKICAgICAgICAgbWFrZUN1cnJlbnQobV9kaXNwbGF5T2JqLCBFR0xfTk9fQ09OVEVYVCk7CiAg
ICAgICAgIEVHTF9EZXN0cm95Q29udGV4dChtX2Rpc3BsYXlPYmosIG1fY29udGV4dE9iaik7CkBA
IC00NTUsNiArNDE4LDE2IEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woKQogICAgIExPRyhXZWJHTCwgIkRlc3Ryb3llZCBhIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMICglcCkuIiwgdGhpcyk7CiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RleHR1cmU7Cit9CisKK1BsYXRm
b3JtTGF5ZXIqIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogR0NHTGVudW0gR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmRyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCkKIHsKICNpZiBQTEFURk9STShNQUND
QVRBTFlTVCkKQEAgLTU2NywxMiArNTQwLDEwIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFja2luZygpCiAgICAgICAgIG1fZGlzcGxheUJ1ZmZl
clBidWZmZXIgPSBFR0xfTk9fU1VSRkFDRTsKICAgICB9CiAgICAgLy8gUmVzZXQgdGhlIGZ1dHVy
ZSByZWN5Y2xlZCBidWZmZXIgbm93LCBiZWNhdXNlIGl0IG1vc3QgbGlrZWx5IHdpbGwgbm90IGJl
IHJldXNhYmxlIGF0IHRoZSB0aW1lIGl0IHdpbGwgYmUgcmV1c2VkLgotICAgIGlmIChtX3N3YXBD
aGFpbikgewotICAgICAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4tPnJlY3lj
bGVCdWZmZXIoKTsKLSAgICAgICAgaWYgKHJlY3ljbGVkQnVmZmVyLmhhbmRsZSkKLSAgICAgICAg
ICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIHJlY3ljbGVkQnVmZmVyLmhhbmRs
ZSk7Ci0gICAgICAgIHJlY3ljbGVkQnVmZmVyLnN1cmZhY2UucmVzZXQoKTsKLSAgICB9CisgICAg
YXV0byByZWN5Y2xlZEJ1ZmZlciA9IG1fc3dhcENoYWluLnJlY3ljbGVCdWZmZXIoKTsKKyAgICBp
ZiAocmVjeWNsZWRCdWZmZXIuaGFuZGxlKQorICAgICAgICBFR0xfRGVzdHJveVN1cmZhY2UobV9k
aXNwbGF5T2JqLCByZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpOworICAgIHJlY3ljbGVkQnVmZmVyLnN1
cmZhY2UucmVzZXQoKTsKICAgICByZXR1cm4gYWxsb2NhdGVBbmRCaW5kRGlzcGxheUJ1ZmZlckJh
Y2tpbmcoKTsKIH0KIApAQCAtNzI0LDEwICs2OTUsMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6cHJlcGFyZUZvckRpc3BsYXkoKQogICAgIC8vIFRoZSBJT1N1cmZhY2Ugd2lsbCBi
ZSB1c2VkIGZyb20gb3RoZXIgZ3JhcGhpY3Mgc3Vic3lzdGVtLCBzbyBmbHVzaCBHTCBjb21tYW5k
cy4KICAgICBnbDo6Rmx1c2goKTsKIAotICAgIGF1dG8gcmVjeWNsZWRCdWZmZXIgPSBtX3N3YXBD
aGFpbi0+cmVjeWNsZUJ1ZmZlcigpOworICAgIGF1dG8gcmVjeWNsZWRCdWZmZXIgPSBtX3N3YXBD
aGFpbi5yZWN5Y2xlQnVmZmVyKCk7CiAKICAgICBFR0xfUmVsZWFzZVRleEltYWdlKG1fZGlzcGxh
eU9iaiwgbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciwgRUdMX0JBQ0tfQlVGRkVSKTsKLSAgICBtX3N3
YXBDaGFpbi0+cHJlc2VudCh7IFdURk1vdmUobV9kaXNwbGF5QnVmZmVyQmFja2luZyksIG1fZGlz
cGxheUJ1ZmZlclBidWZmZXIgfSk7CisgICAgbV9zd2FwQ2hhaW4ucHJlc2VudCh7IFdURk1vdmUo
bV9kaXNwbGF5QnVmZmVyQmFja2luZyksIG1fZGlzcGxheUJ1ZmZlclBidWZmZXIgfSk7CiAgICAg
bV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciA9IEVHTF9OT19TVVJGQUNFOwogCiAgICAgYm9vbCBoYXNO
ZXdCYWNraW5nID0gZmFsc2U7CkBAIC03NjMsNyArNzM0LDcgQEAgR3JhcGhpY3NDb250ZXh0R0xD
ViogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFzQ1YoKQogCiBzdGQ6Om9wdGlvbmFsPFBpeGVs
QnVmZmVyPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVhZENvbXBvc2l0ZWRSZXN1bHRzKCkK
IHsKLSAgICBhdXRvJiBkaXNwbGF5QnVmZmVyID0gbV9zd2FwQ2hhaW4tPmRpc3BsYXlCdWZmZXIo
KTsKKyAgICBhdXRvJiBkaXNwbGF5QnVmZmVyID0gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigp
OwogICAgIGlmICghZGlzcGxheUJ1ZmZlci5zdXJmYWNlIHx8ICFkaXNwbGF5QnVmZmVyLmhhbmRs
ZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoZGlzcGxheUJ1ZmZlci5z
dXJmYWNlLT5zaXplKCkgIT0gZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSkKQEAgLTc5NSwx
MiArNzY2LDEyIEBAIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpyZWFkQ29tcG9zaXRlZFJlc3VsdHMoKQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiBSZWZQdHI8TWVkaWFTYW1wbGU+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwYWludENvbXBv
c2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpCiB7Ci0gICAgYXV0byAmZGlzcGxheUJ1ZmZlciA9
IG1fc3dhcENoYWluLT5kaXNwbGF5QnVmZmVyKCk7CisgICAgYXV0byAmZGlzcGxheUJ1ZmZlciA9
IG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKTsKICAgICBpZiAoIWRpc3BsYXlCdWZmZXIuc3Vy
ZmFjZSB8fCAhZGlzcGxheUJ1ZmZlci5oYW5kbGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGlmIChkaXNwbGF5QnVmZmVyLnN1cmZhY2UtPnNpemUoKSAhPSBnZXRJbnRlcm5hbEZyYW1l
YnVmZmVyU2l6ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBtX3N3YXBDaGFpbi0+
bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOworICAgIG1fc3dhcENoYWluLm1hcmtEaXNwbGF5QnVm
ZmVySW5Vc2UoKTsKICAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihk
aXNwbGF5QnVmZmVyLnN1cmZhY2UtPnN1cmZhY2UoKSk7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQppbmRleCAxOTM0ZWY1ZWYzMzY5YTIzNjk5NmIy
ZTZkZTBkNzYzOGIxOTE5ZmFkLi5iNzI1OGU4NjQ1ZjE0MDQ2MzJiYjAyODRlZDg5ZGY3OTA4M2Rl
MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlQ29jb2EubW0KQEAgLTQzLDkgKzQzLDkgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKICAgICBhdXRvIGF0dHJzID0gY29u
dGV4dEF0dHJpYnV0ZXMoKTsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICAg
ICAgbV93ZWJHTExheWVyID0gYWRvcHROUyhbW1dlYkdMTGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2
aWNlUGl4ZWxSYXRpbzphdHRycy5kZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOiFhdHRy
cy5hbHBoYV0pOworICAgIG1fd2ViR0xMYXllciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9j
XSBpbml0V2l0aERldmljZVBpeGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50
c09wYXF1ZTohYXR0cnMuYWxwaGFdKTsKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgIFttX3dlYkdM
TGF5ZXIgc2V0TmFtZTpAIldlYkdMIExheWVyIl07CisgICAgW21fd2ViR0xMYXllciBzZXROYW1l
OkAiV2ViR0wgTGF5ZXIiXTsKICNlbmRpZgogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IH0KQEAgLTYzLDIwICs2MywxMiBAQCBHcmFwaGljc0NvbnRleHRHTENWKiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5QmFzZTo6YXNDVigpCiB9CiAjZW5kaWYKIAotR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4mIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpw
bGF0Zm9ybVN3YXBDaGFpbigpCi17Ci0gICAgcmV0dXJuIFttX3dlYkdMTGF5ZXIgc3dhcENoYWlu
XTsKLX0KLQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiBSZWZQdHI8TWVkaWFTYW1wbGU+IFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9N
ZWRpYVNhbXBsZSgpCiB7Ci0gICAgYXV0byYgc2MgPSBwbGF0Zm9ybVN3YXBDaGFpbigpOwotICAg
IGF1dG8mIGRpc3BsYXlCdWZmZXIgPSBzYy5kaXNwbGF5QnVmZmVyKCk7Ci0gICAgaWYgKCFkaXNw
bGF5QnVmZmVyLnN1cmZhY2UpCisgICAgaWYgKCFtX2Rpc3BsYXlCdWZmZXIpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHNjLm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKLSAgICBhdXRv
IHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihkaXNwbGF5QnVmZmVyLnN1cmZhY2Ut
PnN1cmZhY2UoKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIo
bV9kaXNwbGF5QnVmZmVyLT5zdXJmYWNlKCkpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0
ZUltYWdlU2FtcGxlKFdURk1vdmUoKnBpeGVsQnVmZmVyKSwgTWVkaWFTYW1wbGVBVkZPYmpDOjpW
aWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAppbmRleCAxNDRjNWE0MjRhN2Ez
ZTQ2MzRiODY0YjNiZjIwNzAxNzI2NjI0NTVkLi4zYzIyZjVkNjRkODhjOTdmYmU0OGIyZmFmNGQ2
Y2Q0NWQ1N2JiNDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViR0xMYXllci5oCkBAIC0yMywyMSArMjMsMTUgQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIK
ICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgotI2ltcG9ydCA8bWVtb3J5PgotI2lt
cG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAKLS8vIEEgbGF5ZXIgY2xhc3MgaW1wbGVtZW50aW5nIGZyb250IGJ1ZmZlciBtYW5hZ2Vt
ZW50IG9mIGEgMy1idWZmZXJpbmcgc3dhcAotLy8gY2hhaW4gb2YgSU9TdXJmYWNlcy4KKy8vIEEg
bGF5ZXIgY2xhc3Mgc2hvd2luZyBvbmUgSU9TdXJmYWNlLgogQGludGVyZmFjZSBXZWJHTExheWVy
IDogQ0FMYXllcgogCiAtIChpZClpbml0V2l0aERldmljZVBpeGVsUmF0aW86KGZsb2F0KWRldmlj
ZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6KGJvb2wpY29udGVudHNPcGFxdWU7CiAKLS0gKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluJikgc3dhcENoYWluOwot
CiBAZW5kCiAKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KaW5kZXgg
YTZlOWNmZjUwM2EzZDJmYjY2NWNiNzAwMzQ1MWFmNTFkZjQ2Nzg5My4uZGU5MDMxNTU2OTExMTM2
YzMxZjVkNjhlZTI0M2Y2N2VmNjZkZThjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCkBAIC0zMSwyMyArMzEsOCBAQAog
I2ltcG9ydCAiR3JhcGhpY3NMYXllci5oIgogI2ltcG9ydCAiR3JhcGhpY3NMYXllckNBLmgiCiAj
aW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXIuaCIKLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgogCi1jbGFzcyBXZWJHTExheWVyU3dhcENoYWluIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIHsKLXB1YmxpYzoKLSAg
ICBleHBsaWNpdCBXZWJHTExheWVyU3dhcENoYWluKFdlYkdMTGF5ZXIqIGxheWVyKSAgOiBtX2xh
eWVyKGxheWVyKSB7IH07Ci0gICAgfldlYkdMTGF5ZXJTd2FwQ2hhaW4oKSBvdmVycmlkZSA9IGRl
ZmF1bHQ7Ci0gICAgdm9pZCBwcmVzZW50KEJ1ZmZlciYmKSBvdmVycmlkZTsKLQotICAgIFdlYkNv
cmU6OklPU3VyZmFjZSogZGlzcGxheVN1cmZhY2UoKSB7IHJldHVybiBtX2Rpc3BsYXlCdWZmZXIu
c3VyZmFjZS5nZXQoKTsgfQotcHJpdmF0ZToKLSAgICBXZWJHTExheWVyKiBjb25zdCBtX2xheWVy
OwotfTsKLQotQGltcGxlbWVudGF0aW9uIFdlYkdMTGF5ZXIgewotICAgIEJPT0wgX3ByZXBhcmVk
Rm9yRGlzcGxheTsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkdMTGF5ZXJTd2FwQ2hhaW4+IF9zd2Fw
Q2hhaW47Ci19CitAaW1wbGVtZW50YXRpb24gV2ViR0xMYXllcgogCiAtIChpZClpbml0V2l0aERl
dmljZVBpeGVsUmF0aW86KGZsb2F0KWRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6KGJv
b2wpY29udGVudHNPcGFxdWUKIHsKQEAgLTU1LDcgKzQwLDYgQEAgcHJpdmF0ZToKICAgICBzZWxm
LnRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RJZGVudGl0eTsKICAgICBzZWxmLmNvbnRlbnRzT3Bh
cXVlID0gY29udGVudHNPcGFxdWU7CiAgICAgc2VsZi5jb250ZW50c1NjYWxlID0gZGV2aWNlUGl4
ZWxSYXRpbzsKLSAgICBfc3dhcENoYWluLmVtcGxhY2Uoc2VsZik7CiAgICAgcmV0dXJuIHNlbGY7
CiB9CiAKQEAgLTc1LDM3ICs1OSwxNSBAQCBwcml2YXRlOgogICAgIFtzdXBlciBzZXRBbmNob3JQ
b2ludDpDR1BvaW50TWFrZShwLngsIDEuMCAtIHAueSldOwogfQogCi0tIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiYpIHN3YXBDaGFpbgotewotICAgIHJldHVy
biBfc3dhcENoYWluLnZhbHVlKCk7Ci19Ci0KLS0gKHZvaWQpcHJlcGFyZUZvckRpc3BsYXkKLXsK
LSAgICBbc2VsZiBzZXROZWVkc0Rpc3BsYXldOwotICAgIF9wcmVwYXJlZEZvckRpc3BsYXkgPSBZ
RVM7Ci19Ci0KIC0gKHZvaWQpZGlzcGxheQogewotICAgIGlmIChfc3dhcENoYWluLT5kaXNwbGF5
U3VyZmFjZSgpICYmIF9wcmVwYXJlZEZvckRpc3BsYXkpIHsKLSAgICAgICAgc2VsZi5jb250ZW50
cyA9IF9zd2FwQ2hhaW4tPmRpc3BsYXlTdXJmYWNlKCktPmFzTGF5ZXJDb250ZW50cygpOwotICAg
ICAgICBbc2VsZiByZWxvYWRWYWx1ZUZvcktleVBhdGg6QCJjb250ZW50cyJdOwotICAgIH0KKyAg
ICAvLyBTaG93IHRoZSBzZWxmLmNvbnRlbnRzIGFzIHRoZSBjb250ZW50cyBieSBub3QgZG9pbmcg
YW55dGhpbmcgaW4gdGhpcyBmdW5jdGlvbi4KICAgICBhdXRvIGxheWVyID0gV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9pZCopc2Vs
Zik7CiAgICAgaWYgKGxheWVyICYmIGxheWVyLT5vd25lcigpKQogICAgICAgICBsYXllci0+b3du
ZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyLmdldCgpKTsKIAotICAg
IF9wcmVwYXJlZEZvckRpc3BsYXkgPSBOTzsKIH0KIAogQGVuZAogCi12b2lkIFdlYkdMTGF5ZXJT
d2FwQ2hhaW46OnByZXNlbnQoQnVmZmVyJiYgYnVmZmVyKQotewotICAgIEFTU0VSVCghbV9zcGFy
ZUJ1ZmZlci5zdXJmYWNlKTsKLSAgICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFp
bjo6cHJlc2VudChXVEZNb3ZlKGJ1ZmZlcikpOwotICAgIFttX2xheWVyIHByZXBhcmVGb3JEaXNw
bGF5XTsKLX0KLQogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU2
MjVlZGJmZTI1NGUzNzVmZWYxNjk4MTY5ZjUyZWZkNGFhNzcyMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0wLDAgKzEsOTggQEAKKworLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisKKyNpZiBFTkFCTEUoV0VCR0wpCisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5o
IiAvLyBOT0xJTlQKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgor
I2ltcG9ydCAiV2ViR0xMYXllci5oIgorI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIHsKKworc3RhdGljIFJldGFpblB0
cjxXZWJHTExheWVyPiBjcmVhdGVXZWJHTExheWVyKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyYgYXR0cmlidXRlcykKK3sKKyAgICBSZXRhaW5QdHI8V2ViR0xMYXllcj4gbGF5ZXI7
CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgbGF5ZXIgPSBhZG9wdE5TKFtb
V2ViR0xMYXllciBhbGxvY10gaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmF0dHJpYnV0ZXMuZGV2
aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1ZTohYXR0cmlidXRlcy5hbHBoYV0pOworI2lmbmRl
ZiBOREVCVUcKKyAgICBbbGF5ZXIgc2V0TmFtZTpAIldlYkdMIExheWVyIl07CisjZW5kaWYKKyAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIGxheWVyOworfQorCisvLyBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCB0eXBlIHRoYXQgaXMgdXNlZCB3aGVuIFdlYkdMIGlzIHJ1
biBpbi1wcm9jZXNzIGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KK2NsYXNzIFdlYlByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCB7CitwdWJsaWM6CisgICAgfldlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTCgpID0g
ZGVmYXVsdDsKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6aXNWYWxpZCgpICYmIG1fd2ViR0xMYXllcjsgfQorICAgIC8vIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMIG92ZXJyaWRlcy4KKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxh
eWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVyKj4obV93
ZWJHTExheWVyLmdldCgpKTsgfQorICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsK
K3ByaXZhdGU6CisgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKGF0dHJpYnV0ZXMpCisgICAgICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdM
TGF5ZXIoYXR0cmlidXRlcykpCisgICAgeworICAgIH0KKyAgICBSZXRhaW5QdHI8V2ViR0xMYXll
cj4gbV93ZWJHTExheWVyOworCisgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOworfTsKKwordm9pZCBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnByZXBh
cmVGb3JEaXNwbGF5KCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFyZUZv
ckRpc3BsYXkoKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBtX3N3YXBDaGFpbi5kaXNwbGF5QnVmZmVy
KCkuc3VyZmFjZS5nZXQoKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybjsKKyAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBbbV93ZWJHTExheWVyIHNldENvbnRl
bnRzOnN1cmZhY2UtPmFzTGF5ZXJDb250ZW50cygpXTsKKyAgICBbbV93ZWJHTExheWVyIHNldE5l
ZWRzRGlzcGxheV07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworfQorCit9CisKK1Jl
ZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNy
ZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyop
Cit7CisgICAgLy8gTWFrZSBzcGFjZSBmb3IgdGhlIGluY29taW5nIGNvbnRleHQgaWYgd2UncmUg
ZnVsbC4KKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIo
KS5yZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCk7CisgICAgaWYgKEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmhhc1Rvb01hbnlDb250ZXh0cygpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgV2Vi
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpKTsKKyAg
ICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRkQ29udGV4
dChjb250ZXh0LmdldCgpKTsKKworICAgIHJldHVybiBjb250ZXh0OworfQorfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCmluZGV4IGQ0MjgxYWE3MDZmMjZm
NjVjZGZmMWQ3NTIyYmYwYmU1ZWI5MjFkYWEuLjNkZDc4ODAwZDFiNTc1YWExNTNiYjliM2RjNTNk
ZGJkMGYwNTg1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcApAQCAt
NDcsNiArNDcsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVBMQVRGT1JNKENP
Q09BKQorYm9vbCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNWYWxpZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6cmVzZXRCdWZmZXJzVG9BdXRvQ2xlYXIoKQogewogICAgIEdDR0x1aW50IGJ1ZmZlcnMgPSBH
cmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVGRkVSX0JJVDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMLmgKaW5kZXggMjI3N2IxN2NjNzA5ODg4NzY4MjZjMDg2MmY3YTcxODM5NzQyNWRm
YS4uOTk0ZWYxNTIxMzA1NWYwOTdhMDhmYzkyMGJlNWUyZjY5MTMwN2U1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDx3dGYv
VW5pcXVlUmVmLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgogI2Vu
ZGlmCiAKQEAgLTY3LDcgKzY4LDYgQEAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9CSkNfQ0xBU1Mg
V2ViR0xMYXllcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEdyYXBoaWNzQ29udGV4dEdM
SU9TdXJmYWNlU3dhcENoYWluOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFOwogfQog
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpAQCAtOTcsMjIgKzk3LDE4IEBAIGNsYXNzIFRleHR1
cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjsKIAogdHlwZWRlZiBXVEY6Okhhc2hNYXA8Q1N0cmlu
ZywgdWludDY0X3Q+IFNoYWRlck5hbWVIYXNoOwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTAorY2xh
c3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgOiBwdWJsaWMgR3JhcGhp
Y3NDb250ZXh0R0wKIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLCBIb3N0V2luZG93
Kik7CiAgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woKTsKLQogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIHN0YXRpYyBSZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0
ZUZvckdQVVByb2Nlc3MoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgR3JhcGhp
Y3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4qKTsKLQotICAgIENBTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiByZWludGVycHJldF9jYXN0PENBTGF5ZXIqPiht
X3dlYkdMTGF5ZXIuZ2V0KCkpOyB9CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xEaXNwbGF5IHBs
YXRmb3JtRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheU9iajsgfQogICAgIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBjb25zdCB7IHJldHVy
biBtX2NvbmZpZ09iajsgfQogICAgIHN0YXRpYyBHQ0dMZW51bSBkcmF3aW5nQnVmZmVyVGV4dHVy
ZVRhcmdldFF1ZXJ5KCk7CiAgICAgc3RhdGljIEdDR0xpbnQgRUdMRHJhd2luZ0J1ZmZlclRleHR1
cmVUYXJnZXQoKTsKICNlbHNlCi0gICAgc3RhdGljIFJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5H
TD4gY3JlYXRlRm9yR1BVUHJvY2Vzcyhjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMm
KTsKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWw7CiAjZW5k
aWYKICNpZiBVU0UoQU5HTEUpCkBAIC01MTgsNyArNTE0LDcgQEAgcHVibGljOgogCiAgICAgdW5z
aWduZWQgdGV4dHVyZVNlZWQoR0NHTHVpbnQgdGV4dHVyZSkgeyByZXR1cm4gbV9zdGF0ZS50ZXh0
dXJlU2VlZENvdW50LmNvdW50KHRleHR1cmUpOyB9CiAKLSAgICB2b2lkIHByZXBhcmVGb3JEaXNw
bGF5KCkgZmluYWw7CisgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIG92ZXJyaWRlOwogCiAj
aWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogICAgIEdyYXBoaWNzQ29udGV4
dEdMQ1YqIGFzQ1YoKSBmaW5hbDsKQEAgLTUzOCwxMyArNTM0LDEzIEBAIHB1YmxpYzoKICNlbmRp
ZgogI2VuZGlmCiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CisgICAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzKTsKKyAgICBib29sIGlzVmFsaWQoKSBj
b25zdDsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHRH
TElPU3VyZmFjZVN3YXBDaGFpbiogPSBudWxscHRyKTsKLSNlbHNlCi0gICAgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLCBIb3N0V2luZG93Kik7Cisg
ICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW47CiAjZW5k
aWYKLQorcHJpdmF0ZToKICAgICAvLyBDYWxsZWQgb25jZSBieSBhbGwgdGhlIHB1YmxpYyBlbnRy
eSBwb2ludHMgdGhhdCBldmVudHVhbGx5IGNhbGwgT3BlbkdMLgogICAgIC8vIENhbGxlZCBvbmNl
IGJ5IGFsbCB0aGUgcHVibGljIGVudHJ5IHBvaW50cyBvZiBFeHRlbnNpb25zR0wgdGhhdCBldmVu
dHVhbGx5IGNhbGwgT3BlbkdMLgogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgV0FSTl9V
TlVTRURfUkVUVVJOOwpAQCAtNTg2LDkgKzU4Miw3IEBAIHByaXZhdGU6CiAKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKiBtX3N3
YXBDaGFpbiB7IG51bGxwdHIgfTsKICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBiZSByZW1vdmVk
IG9uY2UgdGhlIGNvbnRleHQgZHJhd3MgdG8gYSBpbWFnZSBidWZmZXIuIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MTc5IC4KLSAgICBSZXRhaW5QdHI8V2Vi
R0xMYXllcj4gbV93ZWJHTExheWVyOwogICAgIEVHTERpc3BsYXkgbV9kaXNwbGF5T2JqIHsgbnVs
bHB0ciB9OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250ZXh0T2JqIHsgbnVs
bHB0ciB9OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgbV9jb25maWdPYmog
eyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBw
ZXIuY3BwCmluZGV4IDhkM2Q2NWMxN2Y5ZDM0ZTE1NmI1MGExOGU4NDU1OGNhMTFhNTJiYzUuLmQw
NzEzZWMwMGQ3YTI5MTAxNDFkNzkzNzA1YzNiNWJlOGUyOTg2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1
cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KikKIHsKICAgICBzdGF0aWMg
Ym9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwogICAgIHN0YXRpYyBib29sIHN1Y2Nlc3MgPSB0cnVl
OwpAQCAtODUsNyArODUsNyBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wg
b2JqZWN0IGZpcnN0IGluIG9yZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQgY29udGV4dCBvbiB0
aGlzIHRocmVhZC4KLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woYXR0cmlidXRlcywgaG9zdFdpbmRvdykpOworICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzKSk7CiAKICNp
ZiBVU0UoTElCRVBPWFkpICYmIFVTRShPUEVOR0xfRVMpICYmIEVOQUJMRShXRUJHTDIpCiAgICAg
Ly8gQmFpbCBpZiBHTEVTMyB3YXMgcmVxdWVzdGVkIGJ1dCBjYW5ub3QgYmUgcHJvdmlkZWQuCkBA
IC05OCwxMSArOTgsNiBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogICAgIHJldHVybiBjb250
ZXh0OwogfQogCi1SZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpjcmVhdGVGb3JHUFVQcm9jZXNzKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyYgYXR0cmlidXRlcykKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzLCBudWxscHRyKSk7Ci19Ci0KICNpZiBVU0UoQU5HTEUp
CiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqKQogICAgIDogR3Jh
cGhpY3NDb250ZXh0R0woYXR0cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZWVlMThkNjJmMDUwOWYwMDlmMzRjM2VkZTY4ZDM1ZTBkMDg5NjUzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKQorI2lu
Y2x1ZGUgPFdlYkNvcmUvRXh0ZW5zaW9uc0dMLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTC5oPgorCitjbGFzcyBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMpCisgICAgeworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAg
IGlmICghY29udGV4dC0+aXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IFdlYkNvcmU6OklPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpIHsgcmV0dXJuIG1fc3dhcENoYWlu
LmRpc3BsYXlCdWZmZXIoKS5zdXJmYWNlLmdldCgpOyB9CisgICAgdm9pZCBtYXJrRGlzcGxheUJ1
ZmZlckluVXNlKCkgeyByZXR1cm4gbV9zd2FwQ2hhaW4ubWFya0Rpc3BsYXlCdWZmZXJJblVzZSgp
OyB9CisjZW5kaWYKK3ByaXZhdGU6CisgICAgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAg
ICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpCisgICAgeworICAgIH0K
K307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCAyNTYwMzk3YTUzNzI3MTIw
NDY5MDgyN2I5NzAxNWU4YjczYmVlNzljLi5lZjQxZWE2MDgyYmFiM2YzYzI4ZmIzMjE3ZmExODY0
OTI4M2I2ZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtMjksMjIgKzI5LDE3IEBACiAK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlF1YWxpZmllZFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaCIKICNpbmNsdWRlICJTY29wZWRXZWJHTFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Qu
aCIKICNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTdHJlYW1T
ZXJ2ZXJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FeHRlbnNpb25zR0wuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRBc3NlcnRpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1
ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaD4KLSNlbmRp
ZgotCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0Rpc3BsYXlD
b25maWd1cmF0aW9uLmg+CiAjZW5kaWYKQEAgLTExNCw3ICsxMDksNyBAQCBwcml2YXRlOgogcHJv
dGVjdGVkOgogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlZlB0cjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKLSAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w+IG1fY29udGV4dCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc3RyZWFtVGhyZWFk
KTsKKyAgICBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBtX2NvbnRl
eHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7CiAgICAgR3JhcGhpY3NDb250
ZXh0R0xJZGVudGlmaWVyIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyOwogICAgIFJlZjxS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tlbmQ7CiAgICAgU2NvcGVkV2Vi
R0xSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAppbmRleCA5NzBkOGMyZTc5MDllOGY3
MWZhZDBjOWJkMmM2NDMxZmNkOTVhZDMyLi5iNDM3YTViZWVjZDVkNmFjNTgzY2E1OTdhOTVlMjc3
MTJmYWRkNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCkBAIC03Mywy
MCArNzMsMjIgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQcm8KIHZvaWQgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCiB7CiAgICAgYXNzZXJ0SXNDdXJy
ZW50KG1fc3RyZWFtVGhyZWFkKTsKLSAgICBtX2NvbnRleHQgPSBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6Y3JlYXRlRm9yR1BVUHJvY2VzcyhXVEZNb3ZlKGF0dHJpYnV0ZXMpLCAmbV9zd2FwQ2hh
aW4pOworICAgIG1fY29udGV4dCA9IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RG
OjpNYWNoU2VuZFJpZ2h0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGFzc2VydElz
Q3VycmVudChtX3N0cmVhbVRocmVhZCk7CiAgICAgbV9jb250ZXh0LT5wcmVwYXJlRm9yRGlzcGxh
eSgpOworICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlciA9IG1fY29udGV4dC0+ZGlzcGxheUJ1
ZmZlcigpOwogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0OwotICAgIGlmIChhdXRvKiBzdXJm
YWNlID0gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpLnN1cmZhY2UuZ2V0KCkpIHsKKyAgICBp
ZiAoZGlzcGxheUJ1ZmZlcikgeworICAgICAgICBtX2NvbnRleHQtPm1hcmtEaXNwbGF5QnVmZmVy
SW5Vc2UoKTsKICNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQogICAg
ICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3duZWQgYnkgdGhlIFdlYlByb2Nl
c3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRoZSBHUFVQcm9jZXNzIHNvIHRo
YXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4KLSAgICAgICAgc3VyZmFjZS0+
c2V0T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7CisgICAgICAg
IGRpc3BsYXlCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vzc0lkZW50aXR5
VG9rZW4pOwogI2VuZGlmCi0gICAgICAgIHNlbmRSaWdodCA9IHN1cmZhY2UtPmNyZWF0ZVNlbmRS
aWdodCgpOworICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVhdGVTZW5kUmln
aHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW4uY3BwCmluZGV4IDFjYWZiMzM5YmUzYWFmYjNk
ODhjNWIzNWI3MGM4ZTBiNGNlZWQ4YzYuLjcwZjBjNDY0MDMyYjkzM2M4ZjQ1OTE5Yzg2OGFjNjc2
ZGMxNzFkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2luLmNwcApAQCAtNTcsNyArNTcs
NyBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbjo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xX
aW4oR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMV2luOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKLSAgICBtX2NvbnRleHQgPSBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJvY2VzcyhXVEZNb3ZlKGF0dHJpYnV0ZXMp
KTsKKyAgICBtX2NvbnRleHQgPSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNy
ZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKIH0KIAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTDo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDFlZWE0YjBiNDEyYmUxZmQw
ZjJjOTNkZjcxYmE3NjQ2OGExYmQyZWYuLmYzYjk3N2QzZGQ3ZGY5NDU2NjQyM2MwNjQ3MzUxNjJh
MWM1NDY0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYyMyw2ICs2MjMsNyBAQCBXZWJQ
cm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5
UG9pbnQubW0KIAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1t
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcAogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYWUyMTQ3YjQw
N2RmZGZlNmYyYmUwNTFlMDZlMmUxYTMyOWE1NjA0Li5iMWM1ZGY0NzA5MGI2ODU3ZDM1ZDUxNTFh
NTZjY2JmMzc2NjA0OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQ4MDUsNiArNDgwNSw4IEBACiAJCTdBRkJEMzYyMjFFNTBGMzkw
MDVEQkFDQiAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg7IHBh
dGggPSBDbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZCRDM2RDIxRTU0NkUzMDA1REJBQ0IgLyogUGVyc2lz
dGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJzaXN0ZW5jeVV0aWxzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBRkJEMzZFMjFFNTQ2RTMwMDVEQkFDQiAvKiBQZXJzaXN0
ZW5jeVV0aWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjE2MTkxMjI3MTk4QUE5MDBDNDBFQUMgLyog
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3QjE2MTkxMzI3MTlBRTc2MDBDNDBFQUMgLyogR1BVUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjFEQjI2NTI1NjY4Q0UwMDAwRTI2
QkMgLyogQXJyYXlSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXJyYXlSZWZlcmVuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I0ODNGMUIy
NUNEREE5QjAwMTIwNDg2IC8qIE1lc3NhZ2VSZWNlaXZlUXVldWVNYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVRdWV1ZU1hcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjQ4M0YxQzI1Q0REQTlCMDAxMjA0ODYgLyogTWVzc2FnZVJl
Y2VpdmVRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNzYWdlUmVj
ZWl2ZVF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTkxLDYgKzkxOTMs
NyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRjQwOTRDQkMyNTUzMDRBRjAwM0Q3M0UzIC8qIERp
c3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcCAqLywKIAkJCQlGNDA5NENCQjI1NTMwNEFGMDAzRDcz
RTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuaCAqLywKKwkJCQk3QjE2MTkxMzI3MTlBRTc2
MDBDNDBFQUMgLyogR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmggKi8sCiAJCQkJNTVBRDA5
NDMyNDA4QTBFNjAwREU0RDJGIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLywKIAkJ
CQkxQ0M1NEFGRDI3MEY5NjU0MDA1QkY4QkUgLyogUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLmggKi8sCiAJCQkJMUNCRjkwMTIyNzEwMThCNTAwMEM0NTdEIC8qIFF1YWxpZmll
ZFJlc291cmNlSGVhcC5oICovLApAQCAtOTY2MCw2ICs5NjYzLDcgQEAKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMkQyNUYzMjkyNTc1OEU5MTAwMjMxQThCIC8qIElt
YWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8sCisJCQkJN0IxNjE5MTIy
NzE5OEFBOTAwQzQwRUFDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbSAq
LywKIAkJCQkyRDI1RjMyODI1NzU4RTkwMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmggKi8sCiAJCQkJNzI3QTdGMzQyNDA3ODU3RDAwNEQyOTMxIC8qIElt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8sCiAJCQkJNzI3
QTdGMzUyNDA3ODU3RjAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZC5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5j
cHAKaW5kZXggYzBiYWMzOGVlYzJlYjY0MDI2ODZjMzNkYzNkNDNjZDRiNmQ4ZGY2Zi4uMzFkNzlm
OWYxZDMwYzliNTIxNmJmNTY1NThiMWE2NDI5NTg4MDNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCkBAIC02Nyw5ICs2Nyw2IEBAIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHk6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkoR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24mCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojp+UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eSgpCiB7CiAgICAgZGlzY29ubmVjdEdwdVByb2Nlc3NJZk5lZWRlZCgpOwot
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBsYXRmb3JtU3dhcENoYWluKCkucmVjeWNsZUJ1ZmZl
cigpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cmVz
aGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCkBAIC04MywzMiArODAsMTkgQEAgdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkK
ICAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiB2
b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KCkKIHsK
ICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47Ci0jaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgTWFjaFNlbmRSaWdodCBkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0OwotICAgIGF1
dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6UHJlcGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
OjpQcmVwYXJlRm9yRGlzcGxheTo6UmVwbHkoZGlzcGxheUJ1ZmZlclNlbmRSaWdodCkpOwotICAg
IGlmICghc2VuZFJlc3VsdCkgewotICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICBhdXRvIGRpc3BsYXlCdWZmZXIgPSBJT1N1cmZhY2U6OmNyZWF0
ZUZyb21TZW5kUmlnaHQoV1RGTW92ZShkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0KSwgV2ViQ29yZTo6
RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwotICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7
Ci0gICAgICAgIGF1dG8mIHNjID0gcGxhdGZvcm1Td2FwQ2hhaW4oKTsKLSAgICAgICAgc2MucmVj
eWNsZUJ1ZmZlcigpOwotICAgICAgICBzYy5wcmVzZW50KHsgV1RGTW92ZShkaXNwbGF5QnVmZmVy
KSwgbnVsbHB0ciB9KTsKLSAgICB9Ci0jZWxzZQogICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRT
eW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFyZUZvckRpc3BsYXko
KSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheTo6
UmVwbHkoKSk7CiAgICAgaWYgKCFzZW5kUmVzdWx0KSB7CiAgICAgICAgIG1hcmtDb250ZXh0TG9z
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAgICAgbWFya0xheWVyQ29tcG9z
aXRlZCgpOwogfQorI2VuZGlmCiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6
ZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2UwZDIwM2EyNTg3YjQzNWY2YmE5ZDEzNWIzOWM1MzI3NTVlMzc5YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tCkBAIC0wLDAgKzEsNjMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdF
QkdMKQorI2ltcG9ydCAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oIgorI2ltcG9y
dCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25z
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3Zv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkoKQorewor
ICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBNYWNoU2VuZFJp
Z2h0IGRpc3BsYXlCdWZmZXJTZW5kUmlnaHQ7CisgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5
bmMoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheSgp
LCBNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlByZXBhcmVGb3JEaXNwbGF5OjpS
ZXBseShkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0KSk7CisgICAgaWYgKCFzZW5kUmVzdWx0KSB7Cisg
ICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlm
ICghZGlzcGxheUJ1ZmZlclNlbmRSaWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gZGlz
cGxheUJ1ZmZlciA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVNlbmRSaWdodChXVEZN
b3ZlKGRpc3BsYXlCdWZmZXJTZW5kUmlnaHQpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OlNSR0IoKSk7CisgICAgaWYgKCFkaXNwbGF5QnVmZmVyKSB7CisgICAgICAgIG1hcmtDb250
ZXh0TG9zdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fZGlzcGxheUJ1ZmZlciA9
IFdURk1vdmUoZGlzcGxheUJ1ZmZlcik7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CisgICAgW21fd2ViR0xMYXllciBzZXRDb250ZW50czptX2Rpc3BsYXlCdWZmZXItPmFzTGF5ZXJD
b250ZW50cygpXTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgbWFya0xheWVy
Q29tcG9zaXRlZCgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyLm1tCmluZGV4IGQxNjIzNDQ0MjMxZTZiZDQ0OWU1M2FlNDFhZTU2OWY3MTRiYTA3NjUuLmJj
OGVhYjk4NzliZTgwZDg1MWIwMDFjMjAwYzBmMTg1N2E2YzdhMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIubW0KQEAgLTYzLDYgKzYzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRN
TElucHV0RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgog
I2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29j
b2EuaD4KIAogQGludGVyZmFjZSBOU09iamVjdCAoV0tEZXByZWNhdGVkRGVsZWdhdGVNZXRob2Rz
KQogLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKilm
cmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW5QYXNzd29yZEZpZWxkLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpblBhc3N3b3JkRmllbGQubW0KaW5kZXggZGU3MzcxYmU5ZmNkODJiMTAw
ZDI2ZjE5MWRlMmIzNGU4NmFmZTEzNi4uZjYyZGM3YzgzN2YwMmY3MDEwYzgyZDk3OTBlMmJhYWYy
MTRlMWQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblBhc3N3b3JkRmllbGQubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpblBhc3N3b3JkRmllbGQubW0KQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbXBvcnQgIlBERkxheWVyQ29udHJvbGxlclNQSS5oIgogI2ltcG9ydCAiUERGUGx1Z2luLmgi
CiAjaW1wb3J0IDxRdWFydHovUXVhcnR6Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0FkZEV2ZW50TGlz
dGVuZXJPcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0V2ZW50TmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTEVsZW1lbnQuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhvc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxI
b3N0aW5nLm1tCmluZGV4IDhjMTA2MjIwNWM3N2FmZmQ3YmFkMTdjZjk3MjZmYzgwMjA3NjZjMmEu
LmNhM2RhNjliNDMwOTQzZGY2NjZlN2U4NDA4NDBkNTdmNmJjNzI4YmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVNb2RlbEhvc3RpbmcubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGlu
Zy5tbQpAQCAtNjYsOSArNjYsOSBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9z
dGluZzo6cG9wdWxhdGVDcmVhdGlvblByb3BlcnRpZXMoUmVtb3RlTGF5ZXJUcgogICAgIHByb3Bl
cnRpZXMubW9kZWwgPSBtX21vZGVsLnB0cigpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZU1vZGVsSG9zdGluZzo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRz
LCBPcHRpb25TZXQ8UGxhdGZvcm1MYXllclRyZWVBc1RleHRGbGFncz4gZmxhZ3MpCit2b2lkIFBs
YXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGluZzo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVz
KFRleHRTdHJlYW0mIHRzLCBPcHRpb25TZXQ8V2ViQ29yZTo6UGxhdGZvcm1MYXllclRyZWVBc1Rl
eHRGbGFncz4gZmxhZ3MpCiB7Ci0gICAgaWYgKGZsYWdzLmNvbnRhaW5zKFBsYXRmb3JtTGF5ZXJU
cmVlQXNUZXh0RmxhZ3M6OkluY2x1ZGVNb2RlbHMpKQorICAgIGlmIChmbGFncy5jb250YWlucyhX
ZWJDb3JlOjpQbGF0Zm9ybUxheWVyVHJlZUFzVGV4dEZsYWdzOjpJbmNsdWRlTW9kZWxzKSkKICAg
ICAgICAgdHMgPDwgaW5kZW50IDw8ICIobW9kZWwgZGF0YSBzaXplICIgPDwgbV9tb2RlbC0+ZGF0
YSgpLT5zaXplKCkgPDwgIilcbiI7CiB9CiAK
</data>
<flag name="commit-queue"
          id="465653"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441402</attachid>
            <date>2021-10-15 10:54:05 -0700</date>
            <delta_ts>2021-10-16 03:27:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231804-20211015205403.patch</filename>
            <type>text/plain</type>
            <size>51303</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJkZjgzNTNhN2ZiYzJi
MGU5ZDU4MWZlNTBhMTM4Nzk2MTcxYTVmNi4uY2ZmYzUxMzBhNjgxMmE1NDcxZjQxNzVhZTRjNTc2
MGYyOGM0Zjk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTEwLTE1ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29jb2EgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgc2hvdWxkIG5vdCB1c2UgV2ViR0xMYXllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIE1vdmUgdGhlICJzd2FwIGNoYWluIiwg
ZS5nLiB0aGUgZGlzcGxheSBidWZmZXIgSU9TdXJmYWNlCisgICAgICAgIGZyb20gV2ViR0xMYXll
ciB0byBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC4KKyAgICAgICAgSW5zdGFudGlhdGUgV2ViR0xM
YXllciBvbmx5IGluIG5ldyBjbGFzcyBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0ws
CisgICAgICAgIHdoaWNoIGlzIHVzZWQgd2hlbiBXZWJHTCBpcyBydW4gaW4tcHJvY2VzcyBpbiBX
ZWJDb250ZW50IHByb2Nlc3MuCisgICAgICAgIFNpbXBseSBzZXQgdGhlIENBTGF5ZXIuY29udGVu
dHMgd2hlbiBuZXcgZGlzcGxheSBidWZmZXIgaXMgcmVhZHkgYW5kCisgICAgICAgIGNhbGwgInNl
dE5lZWRzRGlzcGxheSIgZGlyZWN0bHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFj
dG9yLgorCisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OnJlYWRDb21wb3NpdGVkUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJv
Y2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZvciBHUFVQ
cm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisgICAgICAgIGluIFdlYktpdCBD
aGFuZ2VMb2cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3Np
dGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtU3dhcENoYWluKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBpbml0V2l0aERldmljZVBpeGVsUmF0aW86Y29udGVudHNPcGFxdWU6XSk6CisgICAgICAgICgt
W1dlYkdMTGF5ZXIgZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJHTExheWVyIHN3YXBDaGFpbl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXZWJHTExheWVyIHByZXBhcmVGb3JEaXNwbGF5XSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJHTExheWVyU3dhcENoYWluOjpwcmVzZW50KTogRGVsZXRlZC4K
KyAgICAgICAgQ0FMYXllci5jb250ZW50cyBhbmQgc2V0TmVlZHNEaXNwbGF5IGlzIGNhbGxlZCBk
aXJlY3RseSB3aGVuCisgICAgICAgIGEgZ3JhcGhpY3MgY29udGV4dCBoYXMgbmV3IGRpc3BsYXkg
YnVmZmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgQWRk
IGEgbmV3IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZSBjb25zdHJ1Y3RvciBleGl0ZWQgZWFy
bHkuCisgICAgICAgIEJlZm9yZSwgbV9jb250ZXh0T2JqIHdvdWxkIGJlIGNvbnN1bHRlZCBidXQg
dGhpcyBpcyBub3QgcHJvdGVjdGVkCisgICAgICAgIHNvIGl0J3Mgbm90IHNvIHVzZWZ1bC4gQWxz
byBpdCB3YXNuJ3QgdmVyeSBhY2N1cmF0ZSwgYXMgc29tZSBjb25zdHJ1Y3RvcgorICAgICAgICBl
YXJseSBleGlzdHMgcmFuIGFmdGVyIG1fY29udGV4dE9iaiB3YXMgc2V0LiBVc2UgbV90ZXh0dXJl
IHRvIGRldGVjdAorICAgICAgICBmdWxseSBjb25zdHJ1Y3RlZCBvYmplY3QgZm9yIG5vdy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlRm9yR1BVUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMIGZvciBHUFVQcm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisg
ICAgICAgIGluIFdlYktpdCBDaGFuZ2VMb2cuIFJlbW92ZSB0aGUgSG9zdFdpbmRvdyBhcmd1bWVu
dHMgZm9yCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLCBpdCdzIG5vdCB1c2VkLgor
CiAyMDIxLTEwLTE1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2ZXJ0IHIyODQyMzAsIG15IGxhc3QgZml4ZXMgdG8gdGhlIHdhdGNoIGJ1aWxkIG1h
a2UgaXQgYnJlYWsgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTk3YmNjMTFmYmU0MTdkNWMxODJhOGZhNzc0
MWJjYjJkNDIyMGE4NC4uZWI3NzAwZjBlYzVkN2MxYTllMWM0ZjRmOWI5N2Q1MDhkZjk3NmFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMS0xMC0xNSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIENvY29hIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIHNob3VsZCBub3QgdXNlIFdlYkdMTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwNAorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4g
SmFja3Nvbi4KKworICAgICAgICBJbXBsZW1lbnQgY2hhbmdlcyBzbyB0aGF0IEdQVSBwcm9jZXNz
IHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wsCisgICAgICAgIHRoZSBuZXcgY2xhc3MgR1BV
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLCBkb2VzIG5vdCB1c2UKKyAgICAgICAgV2ViR0xMYXll
ci4gSW5zdGVhZCwgdGhlIHN3YXAgY2hhaW4gaXMgaW4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgYW5kIHRoZSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wgZXhwb3NlcyBhIGZ1
bmN0aW9uIHRvIGV4dHJhY3QKKyAgICAgICAgdGhlIGRpc3BsYXkgYnVmZmVyIG91dCB0byBiZSBz
ZW50IHRvIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSBz
aW1wbGVyIGNsYXNzIGZvciBHUFVQcm9jZXNzIHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgaW5zdGFuY2UsIG9uZSB0aGF0IGNhbiBnZXQgdGhlIGRpc3BsYXkgYnVmZmVyIGZy
b20gdGhlIGluc3RhbmNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW46OnBs
YXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6flJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIE1vdmUgQ29jb2EgaW1w
bGVtZW5hdGlvbiB0byBhbiBPYmplY3RpdmUtQysrIGZpbGUuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eu
bW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIFNldCB0aGUgZGlzcGxheSBidWZmZXIgY29u
dGVudHMgZGlyZWN0bHkgdG8gdGhlIFdlYkdMTGF5ZXIgYWZ0ZXIKKyAgICAgICAgcHJlcGFyZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxI
b3N0aW5nLm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhv
c3Rpbmc6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyk6CisgICAgICAgIFVuaWZpZWQgYnVpbGQg
Zml4ZXMuCisKIDIwMjEtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBZGQgQWRBdHRyaWJ1dGlvbkRhZW1vbiBwbGlzdCBvbiBpT1MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYmNmY2ViNzkzMTNlYzA1YzM1NGM1ZmVmZTM0
YWI1MTBhYjMzZTcxNy4uNjEzZTFiOGRiYzNkYTcwZjY4ZWZjMTZmMWIwZmFkMTY3NGM3OTkxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTMzMiw2ICszMzIsNyBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24ubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29j
b2EubW0KKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9u
dENhc2NhZGVDb3JlVGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250
Q29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBhYmQwNGEyYTA0ZGE2ZDIy
ZDBkMjY4MzRhNTliMjk1ZGMzMGIxZmZhLi41YzJjNGE3ZmFjMTRhNWE0ZDc0MzM1ODAzYzc5OTRi
N2QyMjFhOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM4OCw2ICszODgsNyBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9j
b3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTEyMzZlZmViNzMwOGQ1Mzkw
ZTVmOGNlMGQyNzY5NGRhNDEyZDE5ZS4uYjlhZWYxOTE1NDIyODE4MDRmOWJlYzM2NmE0ZDllMGJl
YTM4YWNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTA3MjIsNiArMTA3MjIsNyBAQAogCQk3QjEwMzM5QTI1NDk3MjAwMDBD
OEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0Nv
bnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1YuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFDIC8qIFdlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCNjRDMEI0MjU0QzNCMTYwMDA2QjRBRiAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdM
SU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzYxMCw2ICsyNzYxMSw3IEBACiAJCQkJNDlGRkJGM0UxMUM5M0VF
MzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8sCiAJCQkJMDdGNUNGRjQyNTgyQTRGODAwNjYy
RUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLmggKi8sCiAJCQkJMDdGNUNGRjIyNTgyQTRG
ODAwNjYyRUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLm1tICovLAorCQkJCTdCMTYxOTEw
MjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgKaW5kZXggZTllY2I4N2M3
MGE1NDMwMDgyZjc0NmQ2MjZhMDUxZWJkYzY3MjUyNS4uMzFjZTdiOTRmZDlkZjQwODMxNjYwM2Ex
ZGRlMDA0Nzg3Y2U2ZWQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5o
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgogI2VuZGlmCiAKQEAgLTkxLDE1ICs5MiwxMyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCB2b2lkIHdhaXRVbnRpbEluaXRpYWxpemVkKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBlbnN1cmVFeHRlbnNpb25FbmFibGVkKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5TWFya0NvbnRleHRDaGFuZ2VkKCkgPSAwOwotI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluJiBwbGF0Zm9ybVN3
YXBDaGFpbigpOwotI2VuZGlmCiAKLXByaXZhdGU6Ci0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxp
emUoKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8V2ViR0xMYXllcj4gbV93
ZWJHTExheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IG1fZGlzcGxheUJ1ZmZl
cjsKICNlbmRpZgorcHJpdmF0ZToKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCiAg
ICAgLy8gR3VhcmRlZCBieSB3YWl0VW50aWxJbml0aWFsaXplZCgpLgogICAgIEhhc2hTZXQ8U3Ry
aW5nPiBtX2F2YWlsYWJsZUV4dGVuc2lvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbQppbmRleCBjY2JjNGRkMTMyZWI1NjM5YTJhZTRjNjdjZWQ5MWFjZGE3YzIz
YzFlLi5kYjBjOTAwMmNhOTBmZDk1OTlkMDRlYTAzNzY2NDMyMzdmM2MzNTU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTM2LDcgKzM2LDYgQEAKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW1wb3J0ICJXZWJH
TExheWVyLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1w
b3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRhbFNQSS5oPgpA
QCAtMTkzLDI5ICsxOTIsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygpCiB9CiAjZW5k
aWYKIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRv
dyogaG9zdFdpbmRvdykKLXsKLSAgICAvLyBNYWtlIHNwYWNlIGZvciB0aGUgaW5jb21pbmcgY29u
dGV4dCBpZiB3ZSdyZSBmdWxsLgotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6
c2hhcmVkTWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKLSAgICBpZiAoR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaGFzVG9vTWFueUNv
bnRleHRzKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgUmVmUHRyPEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKGF0dHJzLCBob3N0V2luZG93LCBudWxscHRyKSk7Ci0KLSAgICBpZiAoIWNvbnRleHQt
Pm1fY29udGV4dE9iaikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRDb250ZXh0KGNvbnRleHQu
Z2V0KCkpOwotCi0gICAgcmV0dXJuIGNvbnRleHQ7Ci19Ci0KLVJlZjxHcmFwaGljc0NvbnRleHRH
TE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZUZvckdQVVByb2Nlc3MoY29u
c3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRycywgR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4qIHN3YXBDaGFpbikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRycywgbnVsbHB0ciwgc3dhcENoYWluKSk7Ci19
Ci0KLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbiogc3dhcENoYWluKQorR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBh
dHRycykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzKQogewogICAgIG1faXNGb3JXZWJH
TDIgPSBhdHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246
OldlYkdMMjsKQEAgLTM1MywxOCArMzMwLDYgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAg
ICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKICAgICBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7
IC8vIFRoZXkgbWF5IGhhdmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAotICAgIGlmIChz
d2FwQ2hhaW4pCi0gICAgICAgIG1fc3dhcENoYWluID0gc3dhcENoYWluOwotICAgIGVsc2Ugewot
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgICAgICBtX3dlYkdMTGF5ZXIgPSBh
ZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmF0dHJz
LmRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6IWF0dHJzLmFscGhhXSk7Ci0jaWZuZGVm
IE5ERUJVRwotICAgICAgICBbbV93ZWJHTExheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOwot
I2VuZGlmCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgICAgICBtX3N3YXBDaGFp
biA9ICZbbV93ZWJHTExheWVyIHN3YXBDaGFpbl07Ci0gICAgfQotCiAgICAgLy8gQ3JlYXRlIHRo
ZSB0ZXh0dXJlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgZnJhbWVidWZmZXIuCiAgICAgR0xl
bnVtIHRleHR1cmVUYXJnZXQgPSBkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpOwogCkBAIC00
MzksMTQgKzQwNCwxMiBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6fkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKCkKICAgICB9CiAgICAgaWYgKG1fZGlzcGxheUJ1ZmZlclBidWZmZXIpCiAgICAg
ICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIG1fZGlzcGxheUJ1ZmZlclBidWZm
ZXIpOwotICAgIGlmIChtX3N3YXBDaGFpbikgewotICAgICAgICBhdXRvIHJlY3ljbGVkQnVmZmVy
ID0gbV9zd2FwQ2hhaW4tPnJlY3ljbGVCdWZmZXIoKTsKLSAgICAgICAgaWYgKHJlY3ljbGVkQnVm
ZmVyLmhhbmRsZSkKLSAgICAgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmos
IHJlY3ljbGVkQnVmZmVyLmhhbmRsZSk7Ci0gICAgICAgIGF1dG8gY29udGVudHNIYW5kbGUgPSBt
X3N3YXBDaGFpbi0+ZGV0YWNoQ2xpZW50KCk7Ci0gICAgICAgIGlmIChjb250ZW50c0hhbmRsZSkK
LSAgICAgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIGNvbnRlbnRzSGFu
ZGxlKTsKLSAgICB9CisgICAgYXV0byByZWN5Y2xlZEJ1ZmZlciA9IG1fc3dhcENoYWluLnJlY3lj
bGVCdWZmZXIoKTsKKyAgICBpZiAocmVjeWNsZWRCdWZmZXIuaGFuZGxlKQorICAgICAgICBFR0xf
RGVzdHJveVN1cmZhY2UobV9kaXNwbGF5T2JqLCByZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpOworICAg
IGF1dG8gY29udGVudHNIYW5kbGUgPSBtX3N3YXBDaGFpbi5kZXRhY2hDbGllbnQoKTsKKyAgICBp
ZiAoY29udGVudHNIYW5kbGUpCisgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlP
YmosIGNvbnRlbnRzSGFuZGxlKTsKICAgICBpZiAobV9jb250ZXh0T2JqKSB7CiAgICAgICAgIG1h
a2VDdXJyZW50KG1fZGlzcGxheU9iaiwgRUdMX05PX0NPTlRFWFQpOwogICAgICAgICBFR0xfRGVz
dHJveUNvbnRleHQobV9kaXNwbGF5T2JqLCBtX2NvbnRleHRPYmopOwpAQCAtNDU1LDYgKzQxOCwx
NiBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6fkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCkK
ICAgICBMT0coV2ViR0wsICJEZXN0cm95ZWQgYSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCAoJXAp
LiIsIHRoaXMpOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc1ZhbGlkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV90ZXh0dXJlOworfQorCitQbGF0Zm9ybUxheWVyKiBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKIEdDR0xlbnVtIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkcmF3aW5n
QnVmZmVyVGV4dHVyZVRhcmdldCgpCiB7CiAjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCkBAIC01
NjcsMTIgKzU0MCwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZXNoYXBlRGlz
cGxheUJ1ZmZlckJhY2tpbmcoKQogICAgICAgICBtX2Rpc3BsYXlCdWZmZXJQYnVmZmVyID0gRUdM
X05PX1NVUkZBQ0U7CiAgICAgfQogICAgIC8vIFJlc2V0IHRoZSBmdXR1cmUgcmVjeWNsZWQgYnVm
ZmVyIG5vdywgYmVjYXVzZSBpdCBtb3N0IGxpa2VseSB3aWxsIG5vdCBiZSByZXVzYWJsZSBhdCB0
aGUgdGltZSBpdCB3aWxsIGJlIHJldXNlZC4KLSAgICBpZiAobV9zd2FwQ2hhaW4pIHsKLSAgICAg
ICAgYXV0byByZWN5Y2xlZEJ1ZmZlciA9IG1fc3dhcENoYWluLT5yZWN5Y2xlQnVmZmVyKCk7Ci0g
ICAgICAgIGlmIChyZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpCi0gICAgICAgICAgICBFR0xfRGVzdHJv
eVN1cmZhY2UobV9kaXNwbGF5T2JqLCByZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpOwotICAgICAgICBy
ZWN5Y2xlZEJ1ZmZlci5zdXJmYWNlLnJlc2V0KCk7Ci0gICAgfQorICAgIGF1dG8gcmVjeWNsZWRC
dWZmZXIgPSBtX3N3YXBDaGFpbi5yZWN5Y2xlQnVmZmVyKCk7CisgICAgaWYgKHJlY3ljbGVkQnVm
ZmVyLmhhbmRsZSkKKyAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxheU9iaiwgcmVj
eWNsZWRCdWZmZXIuaGFuZGxlKTsKKyAgICByZWN5Y2xlZEJ1ZmZlci5zdXJmYWNlLnJlc2V0KCk7
CiAgICAgcmV0dXJuIGFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCk7CiB9CiAK
QEAgLTcyNCwxMCArNjk1LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnByZXBh
cmVGb3JEaXNwbGF5KCkKICAgICAvLyBUaGUgSU9TdXJmYWNlIHdpbGwgYmUgdXNlZCBmcm9tIG90
aGVyIGdyYXBoaWNzIHN1YnN5c3RlbSwgc28gZmx1c2ggR0wgY29tbWFuZHMuCiAgICAgZ2w6OkZs
dXNoKCk7CiAKLSAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4tPnJlY3ljbGVC
dWZmZXIoKTsKKyAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4ucmVjeWNsZUJ1
ZmZlcigpOwogCiAgICAgRUdMX1JlbGVhc2VUZXhJbWFnZShtX2Rpc3BsYXlPYmosIG1fZGlzcGxh
eUJ1ZmZlclBidWZmZXIsIEVHTF9CQUNLX0JVRkZFUik7Ci0gICAgbV9zd2FwQ2hhaW4tPnByZXNl
bnQoeyBXVEZNb3ZlKG1fZGlzcGxheUJ1ZmZlckJhY2tpbmcpLCBtX2Rpc3BsYXlCdWZmZXJQYnVm
ZmVyIH0pOworICAgIG1fc3dhcENoYWluLnByZXNlbnQoeyBXVEZNb3ZlKG1fZGlzcGxheUJ1ZmZl
ckJhY2tpbmcpLCBtX2Rpc3BsYXlCdWZmZXJQYnVmZmVyIH0pOwogICAgIG1fZGlzcGxheUJ1ZmZl
clBidWZmZXIgPSBFR0xfTk9fU1VSRkFDRTsKIAogICAgIGJvb2wgaGFzTmV3QmFja2luZyA9IGZh
bHNlOwpAQCAtNzYzLDcgKzczNCw3IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1YqIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjphc0NWKCkKIAogc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OnJlYWRDb21wb3NpdGVkUmVzdWx0cygpCiB7Ci0gICAgYXV0byYg
ZGlzcGxheUJ1ZmZlciA9IG1fc3dhcENoYWluLT5kaXNwbGF5QnVmZmVyKCk7CisgICAgYXV0byYg
ZGlzcGxheUJ1ZmZlciA9IG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKTsKICAgICBpZiAoIWRp
c3BsYXlCdWZmZXIuc3VyZmFjZSB8fCAhZGlzcGxheUJ1ZmZlci5oYW5kbGUpCiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKGRpc3BsYXlCdWZmZXIuc3VyZmFjZS0+c2l6ZSgp
ICE9IGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCkpCkBAIC03OTUsMTIgKzc2NiwxMiBAQCBz
dGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVhZENv
bXBvc2l0ZWRSZXN1bHRzKCkKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogUmVmUHRyPE1lZGlh
U2FtcGxlPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1Rv
TWVkaWFTYW1wbGUoKQogewotICAgIGF1dG8gJmRpc3BsYXlCdWZmZXIgPSBtX3N3YXBDaGFpbi0+
ZGlzcGxheUJ1ZmZlcigpOworICAgIGF1dG8gJmRpc3BsYXlCdWZmZXIgPSBtX3N3YXBDaGFpbi5k
aXNwbGF5QnVmZmVyKCk7CiAgICAgaWYgKCFkaXNwbGF5QnVmZmVyLnN1cmZhY2UgfHwgIWRpc3Bs
YXlCdWZmZXIuaGFuZGxlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoZGlzcGxh
eUJ1ZmZlci5zdXJmYWNlLT5zaXplKCkgIT0gZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgbV9zd2FwQ2hhaW4tPm1hcmtEaXNwbGF5QnVm
ZmVySW5Vc2UoKTsKKyAgICBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7CiAg
ICAgYXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoZGlzcGxheUJ1ZmZlci5z
dXJmYWNlLT5zdXJmYWNlKCkpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlQ29jb2EubW0KaW5kZXggMTkzNGVmNWVmMzM2OWEyMzY5OTZiMmU2ZGUwZDc2MzhiMTkx
OWZhZC4uYjcyNThlODY0NWYxNDA0NjMyYmIwMjg0ZWQ4OWRmNzkwODNkZTEyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tCkBA
IC00Myw5ICs0Myw5IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBs
YXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiAgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVz
KCk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgICAgIG1fd2ViR0xMYXll
ciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBpeGVsUmF0aW86
YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1ZTohYXR0cnMuYWxwaGFdKTsKKyAg
ICBtX3dlYkdMTGF5ZXIgPSBhZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5pdFdpdGhEZXZp
Y2VQaXhlbFJhdGlvOmF0dHJzLmRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6IWF0dHJz
LmFscGhhXSk7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBbbV93ZWJHTExheWVyIHNldE5hbWU6
QCJXZWJHTCBMYXllciJdOworICAgIFttX3dlYkdMTGF5ZXIgc2V0TmFtZTpAIldlYkdMIExheWVy
Il07CiAjZW5kaWYKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CkBAIC02MywyMCAr
NjMsMTIgQEAgR3JhcGhpY3NDb250ZXh0R0xDViogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2U6OmFzQ1YoKQogfQogI2VuZGlmCiAKLUdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluJiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Td2FwQ2hh
aW4oKQotewotICAgIHJldHVybiBbbV93ZWJHTExheWVyIHN3YXBDaGFpbl07Ci19Ci0KICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogUmVmUHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKQog
ewotICAgIGF1dG8mIHNjID0gcGxhdGZvcm1Td2FwQ2hhaW4oKTsKLSAgICBhdXRvJiBkaXNwbGF5
QnVmZmVyID0gc2MuZGlzcGxheUJ1ZmZlcigpOwotICAgIGlmICghZGlzcGxheUJ1ZmZlci5zdXJm
YWNlKQorICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICBzYy5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9
IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoZGlzcGxheUJ1ZmZlci5zdXJmYWNlLT5zdXJmYWNlKCkpOwor
ICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVhdGVDVlBpeGVsQnVmZmVyKG1fZGlzcGxheUJ1ZmZl
ci0+c3VyZmFjZSgpKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZShX
VEZNb3ZlKCpwaXhlbEJ1ZmZlciksIE1lZGlhU2FtcGxlQVZGT2JqQzo6VmlkZW9Sb3RhdGlvbjo6
VXBzaWRlRG93biwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJHTExheWVyLmgKaW5kZXggMTQ0YzVhNDI0YTdhM2U0NjM0Yjg2NGIzYmYy
MDcwMTcyNjYyNDU1ZC4uM2MyMmY1ZDY0ZDg4Yzk3ZmJlNDhiMmZhZjRkNmNkNDVkNTdiYjQ1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdM
TGF5ZXIuaApAQCAtMjMsMjEgKzIzLDE1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBv
cnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0IDxRdWFy
dHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNpbXBvcnQgPG1lbW9yeT4KLSNpbXBvcnQgPHd0Zi9OYWtl
ZFB0ci5oPgogCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCi0vLyBBIGxh
eWVyIGNsYXNzIGltcGxlbWVudGluZyBmcm9udCBidWZmZXIgbWFuYWdlbWVudCBvZiBhIDMtYnVm
ZmVyaW5nIHN3YXAKLS8vIGNoYWluIG9mIElPU3VyZmFjZXMuCisvLyBBIGxheWVyIGNsYXNzIHNo
b3dpbmcgb25lIElPU3VyZmFjZS4KIEBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIKIAog
LSAoaWQpaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOihmbG9hdClkZXZpY2VQaXhlbFJhdGlvIGNv
bnRlbnRzT3BhcXVlOihib29sKWNvbnRlbnRzT3BhcXVlOwogCi0tIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiYpIHN3YXBDaGFpbjsKLQogQGVuZAogCiBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IGE2ZTljZmY1MDNhM2Qy
ZmI2NjVjYjcwMDM0NTFhZjUxZGY0Njc4OTMuLmRlOTAzMTU1NjkxMTEzNmMzMWY1ZDY4ZWUyNDNm
NjdlZjY2ZGU4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViR0xMYXllci5tbQpAQCAtMzEsMjMgKzMxLDggQEAKICNpbXBvcnQgIkdyYXBo
aWNzTGF5ZXIuaCIKICNpbXBvcnQgIkdyYXBoaWNzTGF5ZXJDQS5oIgogI2ltcG9ydCAiUGxhdGZv
cm1DQUxheWVyLmgiCi0jaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KIAot
Y2xhc3MgV2ViR0xMYXllclN3YXBDaGFpbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgV2Vi
R0xMYXllclN3YXBDaGFpbihXZWJHTExheWVyKiBsYXllcikgIDogbV9sYXllcihsYXllcikgeyB9
OwotICAgIH5XZWJHTExheWVyU3dhcENoYWluKCkgb3ZlcnJpZGUgPSBkZWZhdWx0OwotICAgIHZv
aWQgcHJlc2VudChCdWZmZXImJikgb3ZlcnJpZGU7Ci0KLSAgICBXZWJDb3JlOjpJT1N1cmZhY2Uq
IGRpc3BsYXlTdXJmYWNlKCkgeyByZXR1cm4gbV9kaXNwbGF5QnVmZmVyLnN1cmZhY2UuZ2V0KCk7
IH0KLXByaXZhdGU6Ci0gICAgV2ViR0xMYXllciogY29uc3QgbV9sYXllcjsKLX07Ci0KLUBpbXBs
ZW1lbnRhdGlvbiBXZWJHTExheWVyIHsKLSAgICBCT09MIF9wcmVwYXJlZEZvckRpc3BsYXk7Ci0g
ICAgc3RkOjpvcHRpb25hbDxXZWJHTExheWVyU3dhcENoYWluPiBfc3dhcENoYWluOwotfQorQGlt
cGxlbWVudGF0aW9uIFdlYkdMTGF5ZXIKIAogLSAoaWQpaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlv
OihmbG9hdClkZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOihib29sKWNvbnRlbnRzT3Bh
cXVlCiB7CkBAIC01NSw3ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgc2VsZi50cmFuc2Zvcm0gPSBD
QVRyYW5zZm9ybTNESWRlbnRpdHk7CiAgICAgc2VsZi5jb250ZW50c09wYXF1ZSA9IGNvbnRlbnRz
T3BhcXVlOwogICAgIHNlbGYuY29udGVudHNTY2FsZSA9IGRldmljZVBpeGVsUmF0aW87Ci0gICAg
X3N3YXBDaGFpbi5lbXBsYWNlKHNlbGYpOwogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC03NSwz
NyArNTksMTUgQEAgcHJpdmF0ZToKICAgICBbc3VwZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1h
a2UocC54LCAxLjAgLSBwLnkpXTsKIH0KIAotLSAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4mKSBzd2FwQ2hhaW4KLXsKLSAgICByZXR1cm4gX3N3YXBDaGFpbi52
YWx1ZSgpOwotfQotCi0tICh2b2lkKXByZXBhcmVGb3JEaXNwbGF5Ci17Ci0gICAgW3NlbGYgc2V0
TmVlZHNEaXNwbGF5XTsKLSAgICBfcHJlcGFyZWRGb3JEaXNwbGF5ID0gWUVTOwotfQotCiAtICh2
b2lkKWRpc3BsYXkKIHsKLSAgICBpZiAoX3N3YXBDaGFpbi0+ZGlzcGxheVN1cmZhY2UoKSAmJiBf
cHJlcGFyZWRGb3JEaXNwbGF5KSB7Ci0gICAgICAgIHNlbGYuY29udGVudHMgPSBfc3dhcENoYWlu
LT5kaXNwbGF5U3VyZmFjZSgpLT5hc0xheWVyQ29udGVudHMoKTsKLSAgICAgICAgW3NlbGYgcmVs
b2FkVmFsdWVGb3JLZXlQYXRoOkAiY29udGVudHMiXTsKLSAgICB9CisgICAgLy8gU2hvdyB0aGUg
c2VsZi5jb250ZW50cyBhcyB0aGUgY29udGVudHMgYnkgbm90IGRvaW5nIGFueXRoaW5nIGluIHRo
aXMgZnVuY3Rpb24uCiAgICAgYXV0byBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6
cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwogICAgIGlmIChs
YXllciAmJiBsYXllci0+b3duZXIoKSkKICAgICAgICAgbGF5ZXItPm93bmVyKCktPnBsYXRmb3Jt
Q0FMYXllckxheWVyRGlkRGlzcGxheShsYXllci5nZXQoKSk7CiAKLSAgICBfcHJlcGFyZWRGb3JE
aXNwbGF5ID0gTk87CiB9CiAKIEBlbmQKIAotdm9pZCBXZWJHTExheWVyU3dhcENoYWluOjpwcmVz
ZW50KEJ1ZmZlciYmIGJ1ZmZlcikKLXsKLSAgICBBU1NFUlQoIW1fc3BhcmVCdWZmZXIuc3VyZmFj
ZSk7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW46OnByZXNlbnQoV1RG
TW92ZShidWZmZXIpKTsKLSAgICBbbV9sYXllciBwcmVwYXJlRm9yRGlzcGxheV07Ci19Ci0KICNl
bmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NjI1ZWRiZmUyNTRlMzc1
ZmVmMTY5ODE2OWY1MmVmZDRhYTc3MjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbQpAQCAtMCwwICsxLDk4IEBACisKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KFdFQkdMKQorI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCIgLy8gTk9MSU5UCisj
aW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKKyNpbXBvcnQgIldlYkdM
TGF5ZXIuaCIKKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK25hbWVzcGFjZSB7CisKK3N0YXRpYyBSZXRhaW5QdHI8V2ViR0xMYXllcj4g
Y3JlYXRlV2ViR0xMYXllcihjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJp
YnV0ZXMpCit7CisgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IGxheWVyOworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUworICAgIGxheWVyID0gYWRvcHROUyhbW1dlYkdMTGF5ZXIgYWxs
b2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRyaWJ1dGVzLmRldmljZVBpeGVsUmF0aW8g
Y29udGVudHNPcGFxdWU6IWF0dHJpYnV0ZXMuYWxwaGFdKTsKKyNpZm5kZWYgTkRFQlVHCisgICAg
W2xheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOworI2VuZGlmCisgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUworICAgIHJldHVybiBsYXllcjsKK30KKworLy8gR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wgdHlwZSB0aGF0IGlzIHVzZWQgd2hlbiBXZWJHTCBpcyBydW4gaW4tcHJvY2VzcyBp
biBXZWJDb250ZW50IHByb2Nlc3MuCitjbGFzcyBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgeworcHVibGljOgor
ICAgIH5XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woKSA9IGRlZmF1bHQ7CisgICAg
Ym9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Omlz
VmFsaWQoKSAmJiBtX3dlYkdMTGF5ZXI7IH0KKyAgICAvLyBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCBvdmVycmlkZXMuCisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1fd2ViR0xMYXllci5nZXQo
KSk7IH0KKyAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7Citwcml2YXRlOgorICAg
IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMgYXR0cmlidXRlcykKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRy
aWJ1dGVzKQorICAgICAgICAsIG1fd2ViR0xMYXllcihjcmVhdGVXZWJHTExheWVyKGF0dHJpYnV0
ZXMpKQorICAgIHsKKyAgICB9CisgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1fd2ViR0xMYXll
cjsKKworICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsKK307CisKK3Zv
aWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwcmVwYXJlRm9yRGlzcGxheSgp
Cit7CisgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnByZXBhcmVGb3JEaXNwbGF5KCk7Cisg
ICAgYXV0byBzdXJmYWNlID0gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpLnN1cmZhY2UuZ2V0
KCk7CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm47CisgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TCisgICAgW21fd2ViR0xMYXllciBzZXRDb250ZW50czpzdXJmYWNlLT5h
c0xheWVyQ29udGVudHMoKV07CisgICAgW21fd2ViR0xMYXllciBzZXROZWVkc0Rpc3BsYXldOwor
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKK30KKworfQorCitSZWZQdHI8R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqKQoreworICAgIC8vIE1h
a2Ugc3BhY2UgZm9yIHRoZSBpbmNvbWluZyBjb250ZXh0IGlmIHdlJ3JlIGZ1bGwuCisgICAgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVjeWNsZUNvbnRl
eHRJZk5lY2Vzc2FyeSgpOworICAgIGlmIChHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6
OnNoYXJlZE1hbmFnZXIoKS5oYXNUb29NYW55Q29udGV4dHMoKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IFdlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgaWYgKCFjb250ZXh0
LT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZENvbnRleHQoY29udGV4dC5nZXQo
KSk7CisKKyAgICByZXR1cm4gY29udGV4dDsKK30KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCBkNDI4MWFhNzA2ZjI2ZjY1Y2RmZjFkNzUyMmJm
MGJlNWViOTIxZGFhLi4zZGQ3ODgwMGQxYjU3NWFhMTUzYmI5YjNkYzUzZGRiZDBmMDU4NTFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTQ3LDYgKzQ3LDEzIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmICFQTEFURk9STShDT0NPQSkKK2Jvb2wgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiB0cnVl
OworfQorI2VuZGlmCisKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlc2V0QnVmZmVy
c1RvQXV0b0NsZWFyKCkKIHsKICAgICBHQ0dMdWludCBidWZmZXJzID0gR3JhcGhpY3NDb250ZXh0
R0w6OkNPTE9SX0JVRkZFUl9CSVQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCmlu
ZGV4IDIyNzdiMTdjYzcwOTg4ODc2ODI2YzA4NjJmN2E3MTgzOTc0MjVkZmEuLjk5NGVmMTUyMTMw
NTVmMDk3YTA4ZmM5MjBiZTVlMmY2OTEzMDdlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTC5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZh
Y2VTd2FwQ2hhaW4uaCIKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNlbmRpZgogCkBAIC02Nyw3
ICs2OCw2IEBACiBPQkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NMQVNTIFdlYkdMTGF5ZXI7CiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBD
aGFpbjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRTsKIH0KICNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkKQEAgLTk3LDIyICs5NywxOCBAQCBjbGFzcyBUZXh0dXJlTWFwcGVyR0NHTFBs
YXRmb3JtTGF5ZXI7CiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcsIHVpbnQ2NF90PiBT
aGFkZXJOYW1lSGFzaDsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0wKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMCiB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3Jl
YXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyopOwogICAgIHZpcnR1
YWwgfkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCk7Ci0KICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBzdGF0aWMgUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGVGb3JHUFVQcm9jZXNz
KGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYsIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluKik7Ci0KLSAgICBDQUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVyKj4obV93ZWJHTExheWVyLmdl
dCgpKTsgfQorICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBwbGF0Zm9ybURpc3BsYXko
KSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlPYmo7IH0KICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dEdMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWdPYmo7
IH0KICAgICBzdGF0aWMgR0NHTGVudW0gZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXRRdWVyeSgp
OwogICAgIHN0YXRpYyBHQ0dMaW50IEVHTERyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCk7CiAj
ZWxzZQotICAgIHN0YXRpYyBSZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZUZvckdQ
VVByb2Nlc3MoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJik7CiAgICAgUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAjaWYgVVNFKEFO
R0xFKQpAQCAtNTE4LDcgKzUxNCw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHRleHR1cmVT
ZWVkKEdDR0x1aW50IHRleHR1cmUpIHsgcmV0dXJuIG1fc3RhdGUudGV4dHVyZVNlZWRDb3VudC5j
b3VudCh0ZXh0dXJlKTsgfQogCi0gICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOwor
ICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShWSURF
TykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBHcmFwaGljc0NvbnRleHRHTENWKiBhc0NWKCkg
ZmluYWw7CkBAIC01MzgsMTMgKzUzNCwxMyBAQCBwdWJsaWM6CiAjZW5kaWYKICNlbmRpZgogCi1w
cml2YXRlOgorcHJvdGVjdGVkOgorICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyk7CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4qID0gbnVsbHB0cik7Ci0jZWxzZQotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyopOworICAgIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwogI2VuZGlmCi0KK3ByaXZhdGU6
CiAgICAgLy8gQ2FsbGVkIG9uY2UgYnkgYWxsIHRoZSBwdWJsaWMgZW50cnkgcG9pbnRzIHRoYXQg
ZXZlbnR1YWxseSBjYWxsIE9wZW5HTC4KICAgICAvLyBDYWxsZWQgb25jZSBieSBhbGwgdGhlIHB1
YmxpYyBlbnRyeSBwb2ludHMgb2YgRXh0ZW5zaW9uc0dMIHRoYXQgZXZlbnR1YWxseSBjYWxsIE9w
ZW5HTC4KICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpIFdBUk5fVU5VU0VEX1JFVFVSTjsK
QEAgLTU4Niw5ICs1ODIsNyBAQCBwcml2YXRlOgogCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiogbV9zd2FwQ2hhaW4geyBudWxs
cHRyIH07CiAgICAgLy8gVE9ETzogdGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIHRoZSBjb250
ZXh0IGRyYXdzIHRvIGEgaW1hZ2UgYnVmZmVyLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxODE3OSAuCi0gICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1fd2Vi
R0xMYXllcjsKICAgICBFR0xEaXNwbGF5IG1fZGlzcGxheU9iaiB7IG51bGxwdHIgfTsKICAgICBQ
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIG1fY29udGV4dE9iaiB7IG51bGxwdHIgfTsKICAgICBQ
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIG1fY29uZmlnT2JqIHsgbnVsbHB0ciB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAppbmRleCA4
ZDNkNjVjMTdmOWQzNGUxNTZiNTBhMThlODQ1NThjYTExYTUyYmM1Li45NDRmZDdlZjdiNWQzNDlh
MGIyZTY1M2Q3ODcyMTFhMzJhZmNhYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250
ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtNjYsNyArNjYsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywg
SG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyopCiB7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6
ZWQgPSBmYWxzZTsKICAgICBzdGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKQEAgLTg1LDcgKzg1
LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICAvLyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIG9iamVjdCBmaXJzdCBp
biBvcmRlciB0byBlc3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24gdGhpcyB0aHJlYWQuCi0g
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0
dHJpYnV0ZXMsIGhvc3RXaW5kb3cpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykpOwogCiAjaWYgVVNFKExJQkVQT1hZ
KSAmJiBVU0UoT1BFTkdMX0VTKSAmJiBFTkFCTEUoV0VCR0wyKQogICAgIC8vIEJhaWwgaWYgR0xF
UzMgd2FzIHJlcXVlc3RlZCBidXQgY2Fubm90IGJlIHByb3ZpZGVkLgpAQCAtOTgsMTMgKzk4LDgg
QEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICByZXR1cm4gY29udGV4dDsKIH0KIAotUmVm
PEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRl
Rm9yR1BVUHJvY2Vzcyhjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0
ZXMpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wo
YXR0cmlidXRlcywgbnVsbHB0cikpOwotfQotCiAjaWYgVVNFKEFOR0xFKQotR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KikKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0
cmlidXRlcykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMpCiB7CiAjaWYgRU5B
QkxFKFdFQkdMMikKQEAgLTE3Myw3ICsxNjgsNyBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dAog
ICAgIGdsOjpDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQogI2Vsc2UKLUdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyopCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRyaWJ1dGVzKQogewogI2lmIFVTRShO
SUNPU0lBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQ
VVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZWUxOGQ2
MmYwNTA5ZjAwOWYzNGMzZWRlNjhkMzVlMGQwODk2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpCisjaW5jbHVkZSA8V2ViQ29yZS9FeHRl
bnNpb25zR0wuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg+
CisKK2NsYXNzIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICB7CisgICAgICAg
IGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpKTsKKyAgICAgICAgaWYgKCFjb250ZXh0LT5pc1Zh
bGlkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGNvbnRl
eHQ7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6SU9TdXJmYWNl
KiBkaXNwbGF5QnVmZmVyKCkgeyByZXR1cm4gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpLnN1
cmZhY2UuZ2V0KCk7IH0KKyAgICB2b2lkIG1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKSB7IHJldHVy
biBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7IH0KKyNlbmRpZgorcHJpdmF0
ZToKKyAgICBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgICAgIDogR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woYXR0cmlidXRlcykKKyAgICB7CisgICAgfQorfTsKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5oCmluZGV4IDI1NjAzOTdhNTM3MjcxMjA0NjkwODI3Yjk3MDE1ZThiNzNi
ZWU3OWMuLmVmNDFlYTYwODJiYWIzZjNjMjhmYjMyMTdmYTE4NjQ5MjgzYjZkY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5oCkBAIC0yOSwyMiArMjksMTcgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAi
R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
R0xJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIgogI2luY2x1ZGUg
IlNjb3BlZFdlYkdMUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdC5oIgogI2luY2x1ZGUgIlN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlN0cmVhbVNlcnZlckNvbm5lY3Rpb24uaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnNHTC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oPgotI2VuZGlmCi0KICNpZiBQTEFURk9STShN
QUMpCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRGlzcGxheUNvbmZpZ3VyYXRpb24uaD4KICNl
bmRpZgpAQCAtMTE0LDcgKzEwOSw3IEBAIHByaXZhdGU6CiBwcm90ZWN0ZWQ6CiAgICAgV2Vha1B0
cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7
CiAgICAgUmVmUHRyPElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0
aW9uOwotICAgIFJlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gbV9jb250
ZXh0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJlYWQpOworICAgIFJlZlB0cjxHUFVQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IG1fY29udGV4dCBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fc3RyZWFtVGhyZWFkKTsKICAgICBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgbV9n
cmFwaGljc0NvbnRleHRHTElkZW50aWZpZXI7CiAgICAgUmVmPFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsKICAgICBTY29wZWRXZWJHTFJlbmRlcmluZ1Jlc291cmNl
c1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuY3BwCmluZGV4IDk3MGQ4YzJlNzkwOWU4ZjcxZmFkMGM5YmQyYzY0MzFmY2Q5
NWFkMzIuLmI0MzdhNWJlZWNkNWQ2YWM1ODNjYTU5N2E5NWUyNzcxMmZhZGQ2MjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKQEAgLTczLDIwICs3MywyMiBAQCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNv
bm5lY3Rpb25Ub1dlYlBybwogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0
Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQp
OwotICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGVGb3JHUFVQ
cm9jZXNzKFdURk1vdmUoYXR0cmlidXRlcyksICZtX3N3YXBDaGFpbik7CisgICAgbV9jb250ZXh0
ID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RGTW92ZShhdHRy
aWJ1dGVzKSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFy
ZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhy
ZWFkKTsKICAgICBtX2NvbnRleHQtPnByZXBhcmVGb3JEaXNwbGF5KCk7CisgICAgSU9TdXJmYWNl
KiBkaXNwbGF5QnVmZmVyID0gbV9jb250ZXh0LT5kaXNwbGF5QnVmZmVyKCk7CiAgICAgTWFjaFNl
bmRSaWdodCBzZW5kUmlnaHQ7Ci0gICAgaWYgKGF1dG8qIHN1cmZhY2UgPSBtX3N3YXBDaGFpbi5k
aXNwbGF5QnVmZmVyKCkuc3VyZmFjZS5nZXQoKSkgeworICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7
CisgICAgICAgIG1fY29udGV4dC0+bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwogI2lmIEhBVkUo
SU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCiAgICAgICAgIC8vIE1hcmsgdGhlIElP
U3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3
YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hp
Y2ggcHJvY2VzcyB0byBraWxsLgotICAgICAgICBzdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVudGl0
eShtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICAgICAgZGlzcGxheUJ1ZmZlci0+c2V0
T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7CiAjZW5kaWYKLSAg
ICAgICAgc2VuZFJpZ2h0ID0gc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAgIHNl
bmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNyZWF0ZVNlbmRSaWdodCgpOwogICAgIH0KICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlbmRSaWdodCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2lu
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFdpbi5jcHAKaW5kZXggMWNhZmIzMzliZTNhYWZiM2Q4OGM1YjM1YjcwYzhlMGI0Y2Vl
ZDhjNi4uNzBmMGM0NjQwMzJiOTMzYzhmNDU5MTljODY4YWM2NzZkYzE3MWQ2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xXaW4uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMV2luOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbihHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzCiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW46OnBsYXRmb3JtV29y
a1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBh
dHRyaWJ1dGVzKQogewotICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpj
cmVhdGVGb3JHUFVQcm9jZXNzKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1fY29udGV4dCA9
IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1vdmUoYXR0cmli
dXRlcykpOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwcmVwYXJlRm9yRGlz
cGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKaW5kZXggMWVlYTRiMGI0MTJiZTFmZDBmMmM5M2RmNzFiYTc2NDY4YTFi
ZDJlZi4uZjNiOTc3ZDNkZDdkZjk0NTY2NDIzYzA2NDczNTE2MmExYzU0NjRmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dApAQCAtNjIzLDYgKzYyMyw3IEBAIFdlYlByb2Nlc3MvRW50cnlQb2ludC9D
b2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCitXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNhZTIxNDdiNDA3ZGZkZmU2ZjJiZTA1MWUwNmUy
ZTFhMzI5YTU2MDQuLjJkZWI2NmU0MzY0ZDA1NzdiYTUzNWE4ZGU4YzcxZmI5NDUzMmE5ZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NDgwNSw2ICs0ODA1LDggQEAKIAkJN0FGQkQzNjIyMUU1MEYzOTAwNURCQUNCIC8qIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDsgcGF0aCA9IENsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdBRkJEMzZEMjFFNTQ2RTMwMDVEQkFDQiAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0FGQkQzNkUyMUU1NDZFMzAwNURCQUNCIC8qIFBlcnNpc3RlbmN5VXRpbHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGVyc2lzdGVuY3lVdGlscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdCMTYxOTEyMjcxOThBQTkwMEM0MEVBQyAvKiBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCMTYx
OTEzMjcxOUFFNzYwMEM0MEVBQyAvKiBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdCMURCMjY1MjU2NjhDRTAwMDBFMjZCQyAvKiBBcnJheVJlZmVyZW5j
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJheVJlZmVyZW5jZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjQ4M0YxQjI1Q0REQTlCMDAxMjA0ODYgLyog
TWVzc2FnZVJlY2VpdmVRdWV1ZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdCNDgzRjFDMjVDRERBOUIwMDEyMDQ4NiAvKiBNZXNzYWdlUmVjZWl2ZVF1ZXVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlUXVldWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxOTEsNiArOTE5Myw3IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQlGNDA5NENCQzI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5k
bGUuY3BwICovLAogCQkJCUY0MDk0Q0JCMjU1MzA0QUYwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFJl
YWRlckhhbmRsZS5oICovLAorCQkJCTdCMTYxOTEzMjcxOUFFNzYwMEM0MEVBQyAvKiBHUFVQcm9j
ZXNzR3JhcGhpY3NDb250ZXh0R0wuaCAqLywKIAkJCQk1NUFEMDk0MzI0MDhBMEU2MDBERTREMkYg
LyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oICovLAogCQkJCTFDQzU0QUZEMjcwRjk2NTQw
MDVCRjhCRSAvKiBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKIAkJ
CQkxQ0JGOTAxMjI3MTAxOEI1MDAwQzQ1N0QgLyogUXVhbGlmaWVkUmVzb3VyY2VIZWFwLmggKi8s
CkBAIC05NjYzLDYgKzk2NjYsNyBAQAogCQkJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLywKIAkJCQk3MjdBN0YzNDI0
MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kLmNwcCAqLywKIAkJCQk3MjdBN0YzNTI0MDc4NTdGMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJT
aGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggKi8sCisJCQkJN0IxNjE5MTIyNzE5OEFB
OTAwQzQwRUFDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbSAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKaW5kZXggYzBiYWMzOGVlYzJlYjY0
MDI2ODZjMzNkYzNkNDNjZDRiNmQ4ZGY2Zi4uMzFkNzlmOWYxZDMwYzliNTIxNmJmNTY1NThiMWE2
NDI5NTg4MDNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3Bw
CkBAIC02Nyw5ICs2Nyw2IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mCiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5Ojp+UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSgpCiB7CiAgICAg
ZGlzY29ubmVjdEdwdVByb2Nlc3NJZk5lZWRlZCgpOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IHBsYXRmb3JtU3dhcENoYWluKCkucmVjeWNsZUJ1ZmZlcigpOwotI2VuZGlmCiB9CiAKIHZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWln
aHQpCkBAIC04MywzMiArODAsMTkgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICAgICAgbWFya0NvbnRleHRMb3N0
KCk7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KCkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgp
KQogICAgICAgICByZXR1cm47Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgTWFjaFNlbmRSaWdo
dCBkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0OwotICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5j
KE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFyZUZvckRpc3BsYXkoKSwg
TWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheTo6UmVw
bHkoZGlzcGxheUJ1ZmZlclNlbmRSaWdodCkpOwotICAgIGlmICghc2VuZFJlc3VsdCkgewotICAg
ICAgICBtYXJrQ29udGV4dExvc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBhdXRv
IGRpc3BsYXlCdWZmZXIgPSBJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQoV1RGTW92ZShk
aXNwbGF5QnVmZmVyU2VuZFJpZ2h0KSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpT
UkdCKCkpOwotICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7Ci0gICAgICAgIGF1dG8mIHNjID0gcGxh
dGZvcm1Td2FwQ2hhaW4oKTsKLSAgICAgICAgc2MucmVjeWNsZUJ1ZmZlcigpOwotICAgICAgICBz
Yy5wcmVzZW50KHsgV1RGTW92ZShkaXNwbGF5QnVmZmVyKSwgbnVsbHB0ciB9KTsKLSAgICB9Ci0j
ZWxzZQogICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6UHJlcGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheTo6UmVwbHkoKSk7CiAgICAgaWYgKCFzZW5k
UmVzdWx0KSB7CiAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotI2VuZGlmCiAgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOwogfQorI2VuZGlmCiAKIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6ZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChj
b25zdCBTdHJpbmcmIGV4dGVuc2lvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UwZDIwM2EyNTg3
YjQzNWY2YmE5ZDEzNWIzOWM1MzI3NTVlMzc5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUNvY29hLm1tCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKQorI2ltcG9ydCAiUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4K
KyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkoKQoreworICAgIGlmIChpc0NvbnRleHRMb3N0KCkp
CisgICAgICAgIHJldHVybjsKKyAgICBNYWNoU2VuZFJpZ2h0IGRpc3BsYXlCdWZmZXJTZW5kUmln
aHQ7CisgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheSgpLCBNZXNzYWdlczo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OlByZXBhcmVGb3JEaXNwbGF5OjpSZXBseShkaXNwbGF5QnVmZmVyU2VuZFJp
Z2h0KSk7CisgICAgaWYgKCFzZW5kUmVzdWx0KSB7CisgICAgICAgIG1hcmtDb250ZXh0TG9zdCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghZGlzcGxheUJ1ZmZlclNlbmRSaWdo
dCkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gZGlzcGxheUJ1ZmZlciA9IFdlYkNvcmU6OklP
U3VyZmFjZTo6Y3JlYXRlRnJvbVNlbmRSaWdodChXVEZNb3ZlKGRpc3BsYXlCdWZmZXJTZW5kUmln
aHQpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7CisgICAgaWYgKCFk
aXNwbGF5QnVmZmVyKSB7CisgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIG1fZGlzcGxheUJ1ZmZlciA9IFdURk1vdmUoZGlzcGxheUJ1ZmZlcik7
CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgW21fd2ViR0xMYXllciBzZXRD
b250ZW50czptX2Rpc3BsYXlCdWZmZXItPmFzTGF5ZXJDb250ZW50cygpXTsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCisgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCmluZGV4IGQxNjIzNDQ0MjMx
ZTZiZDQ0OWU1M2FlNDFhZTU2OWY3MTRiYTA3NjUuLmJjOGVhYjk4NzliZTgwZDg1MWIwMDFjMjAw
YzBmMTg1N2E2YzdhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTYz
LDYgKzYzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTElucHV0RWxlbWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRy
Lmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KIAogQGludGVyZmFjZSBOU09i
amVjdCAoV0tEZXByZWNhdGVkRGVsZWdhdGVNZXRob2RzKQogLSAodm9pZCl3ZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JG
cmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKilmcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblBhc3N3b3Jk
RmllbGQubW0KaW5kZXggZGU3MzcxYmU5ZmNkODJiMTAwZDI2ZjE5MWRlMmIzNGU4NmFmZTEzNi4u
ZjYyZGM3YzgzN2YwMmY3MDEwYzgyZDk3OTBlMmJhYWYyMTRlMWQyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblBhc3N3b3JkRmllbGQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblBh
c3N3b3JkRmllbGQubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIlBERkxheWVyQ29udHJv
bGxlclNQSS5oIgogI2ltcG9ydCAiUERGUGx1Z2luLmgiCiAjaW1wb3J0IDxRdWFydHovUXVhcnR6
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0FkZEV2ZW50TGlzdGVuZXJPcHRpb25zLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0V2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSFRNTEVsZW1lbnQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2Rl
bEhvc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxIb3N0aW5nLm1tCmluZGV4IDhjMTA2MjIw
NWM3N2FmZmQ3YmFkMTdjZjk3MjZmYzgwMjA3NjZjMmEuLmNhM2RhNjliNDMwOTQzZGY2NjZlN2U4
NDA4NDBkNTdmNmJjNzI4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhvc3Rpbmcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1BsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGluZy5tbQpAQCAtNjYsOSArNjYsOSBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGluZzo6cG9wdWxhdGVDcmVhdGlvblBy
b3BlcnRpZXMoUmVtb3RlTGF5ZXJUcgogICAgIHByb3BlcnRpZXMubW9kZWwgPSBtX21vZGVsLnB0
cigpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGluZzo6ZHVtcEFk
ZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBPcHRpb25TZXQ8UGxhdGZvcm1MYXll
clRyZWVBc1RleHRGbGFncz4gZmxhZ3MpCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVs
SG9zdGluZzo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBPcHRpb25T
ZXQ8V2ViQ29yZTo6UGxhdGZvcm1MYXllclRyZWVBc1RleHRGbGFncz4gZmxhZ3MpCiB7Ci0gICAg
aWYgKGZsYWdzLmNvbnRhaW5zKFBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0RmxhZ3M6OkluY2x1ZGVN
b2RlbHMpKQorICAgIGlmIChmbGFncy5jb250YWlucyhXZWJDb3JlOjpQbGF0Zm9ybUxheWVyVHJl
ZUFzVGV4dEZsYWdzOjpJbmNsdWRlTW9kZWxzKSkKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIo
bW9kZWwgZGF0YSBzaXplICIgPDwgbV9tb2RlbC0+ZGF0YSgpLT5zaXplKCkgPDwgIilcbiI7CiB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441484</attachid>
            <date>2021-10-16 03:28:00 -0700</date>
            <delta_ts>2021-10-17 03:24:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231804-20211016132758.patch</filename>
            <type>text/plain</type>
            <size>52078</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJkZjgzNTNhN2ZiYzJi
MGU5ZDU4MWZlNTBhMTM4Nzk2MTcxYTVmNi4uY2ZmYzUxMzBhNjgxMmE1NDcxZjQxNzVhZTRjNTc2
MGYyOGM0Zjk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTEwLTE1ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29jb2EgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgc2hvdWxkIG5vdCB1c2UgV2ViR0xMYXllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIE1vdmUgdGhlICJzd2FwIGNoYWluIiwg
ZS5nLiB0aGUgZGlzcGxheSBidWZmZXIgSU9TdXJmYWNlCisgICAgICAgIGZyb20gV2ViR0xMYXll
ciB0byBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC4KKyAgICAgICAgSW5zdGFudGlhdGUgV2ViR0xM
YXllciBvbmx5IGluIG5ldyBjbGFzcyBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0ws
CisgICAgICAgIHdoaWNoIGlzIHVzZWQgd2hlbiBXZWJHTCBpcyBydW4gaW4tcHJvY2VzcyBpbiBX
ZWJDb250ZW50IHByb2Nlc3MuCisgICAgICAgIFNpbXBseSBzZXQgdGhlIENBTGF5ZXIuY29udGVu
dHMgd2hlbiBuZXcgZGlzcGxheSBidWZmZXIgaXMgcmVhZHkgYW5kCisgICAgICAgIGNhbGwgInNl
dE5lZWRzRGlzcGxheSIgZGlyZWN0bHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFj
dG9yLgorCisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OnJlYWRDb21wb3NpdGVkUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJv
Y2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZvciBHUFVQ
cm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisgICAgICAgIGluIFdlYktpdCBD
aGFuZ2VMb2cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3Np
dGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtU3dhcENoYWluKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBpbml0V2l0aERldmljZVBpeGVsUmF0aW86Y29udGVudHNPcGFxdWU6XSk6CisgICAgICAgICgt
W1dlYkdMTGF5ZXIgZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJHTExheWVyIHN3YXBDaGFpbl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXZWJHTExheWVyIHByZXBhcmVGb3JEaXNwbGF5XSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJHTExheWVyU3dhcENoYWluOjpwcmVzZW50KTogRGVsZXRlZC4K
KyAgICAgICAgQ0FMYXllci5jb250ZW50cyBhbmQgc2V0TmVlZHNEaXNwbGF5IGlzIGNhbGxlZCBk
aXJlY3RseSB3aGVuCisgICAgICAgIGEgZ3JhcGhpY3MgY29udGV4dCBoYXMgbmV3IGRpc3BsYXkg
YnVmZmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgQWRk
IGEgbmV3IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZSBjb25zdHJ1Y3RvciBleGl0ZWQgZWFy
bHkuCisgICAgICAgIEJlZm9yZSwgbV9jb250ZXh0T2JqIHdvdWxkIGJlIGNvbnN1bHRlZCBidXQg
dGhpcyBpcyBub3QgcHJvdGVjdGVkCisgICAgICAgIHNvIGl0J3Mgbm90IHNvIHVzZWZ1bC4gQWxz
byBpdCB3YXNuJ3QgdmVyeSBhY2N1cmF0ZSwgYXMgc29tZSBjb25zdHJ1Y3RvcgorICAgICAgICBl
YXJseSBleGlzdHMgcmFuIGFmdGVyIG1fY29udGV4dE9iaiB3YXMgc2V0LiBVc2UgbV90ZXh0dXJl
IHRvIGRldGVjdAorICAgICAgICBmdWxseSBjb25zdHJ1Y3RlZCBvYmplY3QgZm9yIG5vdy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlRm9yR1BVUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMIGZvciBHUFVQcm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisg
ICAgICAgIGluIFdlYktpdCBDaGFuZ2VMb2cuIFJlbW92ZSB0aGUgSG9zdFdpbmRvdyBhcmd1bWVu
dHMgZm9yCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLCBpdCdzIG5vdCB1c2VkLgor
CiAyMDIxLTEwLTE1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2ZXJ0IHIyODQyMzAsIG15IGxhc3QgZml4ZXMgdG8gdGhlIHdhdGNoIGJ1aWxkIG1h
a2UgaXQgYnJlYWsgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTk3YmNjMTFmYmU0MTdkNWMxODJhOGZhNzc0
MWJjYjJkNDIyMGE4NC4uZWI3NzAwZjBlYzVkN2MxYTllMWM0ZjRmOWI5N2Q1MDhkZjk3NmFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMS0xMC0xNSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIENvY29hIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIHNob3VsZCBub3QgdXNlIFdlYkdMTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwNAorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4g
SmFja3Nvbi4KKworICAgICAgICBJbXBsZW1lbnQgY2hhbmdlcyBzbyB0aGF0IEdQVSBwcm9jZXNz
IHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wsCisgICAgICAgIHRoZSBuZXcgY2xhc3MgR1BV
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLCBkb2VzIG5vdCB1c2UKKyAgICAgICAgV2ViR0xMYXll
ci4gSW5zdGVhZCwgdGhlIHN3YXAgY2hhaW4gaXMgaW4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgYW5kIHRoZSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wgZXhwb3NlcyBhIGZ1
bmN0aW9uIHRvIGV4dHJhY3QKKyAgICAgICAgdGhlIGRpc3BsYXkgYnVmZmVyIG91dCB0byBiZSBz
ZW50IHRvIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSBz
aW1wbGVyIGNsYXNzIGZvciBHUFVQcm9jZXNzIHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgaW5zdGFuY2UsIG9uZSB0aGF0IGNhbiBnZXQgdGhlIGRpc3BsYXkgYnVmZmVyIGZy
b20gdGhlIGluc3RhbmNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW46OnBs
YXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6flJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIE1vdmUgQ29jb2EgaW1w
bGVtZW5hdGlvbiB0byBhbiBPYmplY3RpdmUtQysrIGZpbGUuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eu
bW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIFNldCB0aGUgZGlzcGxheSBidWZmZXIgY29u
dGVudHMgZGlyZWN0bHkgdG8gdGhlIFdlYkdMTGF5ZXIgYWZ0ZXIKKyAgICAgICAgcHJlcGFyZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxI
b3N0aW5nLm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhv
c3Rpbmc6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyk6CisgICAgICAgIFVuaWZpZWQgYnVpbGQg
Zml4ZXMuCisKIDIwMjEtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBZGQgQWRBdHRyaWJ1dGlvbkRhZW1vbiBwbGlzdCBvbiBpT1MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYmNmY2ViNzkzMTNlYzA1YzM1NGM1ZmVmZTM0
YWI1MTBhYjMzZTcxNy4uNjEzZTFiOGRiYzNkYTcwZjY4ZWZjMTZmMWIwZmFkMTY3NGM3OTkxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTMzMiw2ICszMzIsNyBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24ubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29j
b2EubW0KKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9u
dENhc2NhZGVDb3JlVGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250
Q29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBhYmQwNGEyYTA0ZGE2ZDIy
ZDBkMjY4MzRhNTliMjk1ZGMzMGIxZmZhLi41YzJjNGE3ZmFjMTRhNWE0ZDc0MzM1ODAzYzc5OTRi
N2QyMjFhOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM4OCw2ICszODgsNyBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9j
b3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTEyMzZlZmViNzMwOGQ1Mzkw
ZTVmOGNlMGQyNzY5NGRhNDEyZDE5ZS4uYjlhZWYxOTE1NDIyODE4MDRmOWJlYzM2NmE0ZDllMGJl
YTM4YWNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTA3MjIsNiArMTA3MjIsNyBAQAogCQk3QjEwMzM5QTI1NDk3MjAwMDBD
OEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0Nv
bnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1YuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFDIC8qIFdlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCNjRDMEI0MjU0QzNCMTYwMDA2QjRBRiAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdM
SU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzYxMCw2ICsyNzYxMSw3IEBACiAJCQkJNDlGRkJGM0UxMUM5M0VF
MzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8sCiAJCQkJMDdGNUNGRjQyNTgyQTRGODAwNjYy
RUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLmggKi8sCiAJCQkJMDdGNUNGRjIyNTgyQTRG
ODAwNjYyRUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLm1tICovLAorCQkJCTdCMTYxOTEw
MjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwCmluZGV4IDdhZWUz
OGYzOWYzYjNkYWQ2MjQwODJkYmJiOTA4NDQ2M2JjMzJhNGIuLmM5MDUzZGI0Y2M0MDRhNjZkMjI3
NTg2ODA3N2QxMWExYTgzYTljNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5jcHAKQEAgLTI5LDYgKzI5LDExIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoV0VCR0wpCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAorI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgIklPU3VyZmFjZS5oIgorI2luY2x1ZGUgIldlYkdMTGF5ZXIuaCIK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHlCYXNlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZShjb25zdCBHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlLmgKaW5kZXggZTllY2I4N2M3MGE1NDMwMDgyZjc0NmQ2MjZhMDUxZWJkYzY3MjUyNS4u
ZDljNzMzYjZjMzRlNjdkM2Q1M2Q4OTZkMTgzZjE2ZWQyOTRjNTI2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZS5oCkBAIC00NSw2ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW47CitjbGFzcyBJT1N1cmZhY2U7CiAjZW5kaWYKIAogLy8gQSBiYXNlIGNs
YXNzIGZvciBSZW1vdGVHcmFwaGljc0NvbnRleHRHTCBwcm94eSBzaWRlIGltcGxlbWVudGF0aW9u
CkBAIC05MSwxNSArOTIsMTMgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3YWl0VW50
aWxJbml0aWFsaXplZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlRXh0ZW5zaW9uRW5h
YmxlZChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU1hcmtDb250
ZXh0Q2hhbmdlZCgpID0gMDsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBHcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbiYgcGxhdGZvcm1Td2FwQ2hhaW4oKTsKLSNlbmRpZgogCi1w
cml2YXRlOgotICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1fd2ViR0xMYXllcjsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiBtX2Rpc3BsYXlCdWZmZXI7CiAjZW5kaWYKK3ByaXZhdGU6Cisg
ICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIAogICAgIC8vIEd1YXJkZWQgYnkgd2FpdFVu
dGlsSW5pdGlhbGl6ZWQoKS4KICAgICBIYXNoU2V0PFN0cmluZz4gbV9hdmFpbGFibGVFeHRlbnNp
b25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggY2Ni
YzRkZDEzMmViNTYzOWEyYWU0YzY3Y2VkOTFhY2RhN2MyM2MxZS4uZGIwYzkwMDJjYTkwZmQ5NTk5
ZDA0ZWEwMzc2NjQzMjM3ZjNjMzU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTENvY29hLm1tCkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlJ1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5oIgotI2ltcG9ydCAiV2ViR0xMYXllci5oIgogI2ltcG9ydCA8Q29y
ZUdyYXBoaWNzL0NHQml0bWFwQ29udGV4dC5oPgogI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KICNp
bXBvcnQgPHBhbC9zcGkvY29jb2EvTWV0YWxTUEkuaD4KQEAgLTE5MywyOSArMTkyLDcgQEAgc3Rh
dGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCi17Ci0gICAg
Ly8gTWFrZSBzcGFjZSBmb3IgdGhlIGluY29taW5nIGNvbnRleHQgaWYgd2UncmUgZnVsbC4KLSAg
ICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZWN5Y2xl
Q29udGV4dElmTmVjZXNzYXJ5KCk7Ci0gICAgaWYgKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLmhhc1Rvb01hbnlDb250ZXh0cygpKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLQotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY29udGV4
dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRycywgaG9zdFdpbmRv
dywgbnVsbHB0cikpOwotCi0gICAgaWYgKCFjb250ZXh0LT5tX2NvbnRleHRPYmopCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCkuYWRkQ29udGV4dChjb250ZXh0LmdldCgpKTsKLQotICAgIHJldHVybiBj
b250ZXh0OwotfQotCi1SZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGVGb3JHUFVQcm9jZXNzKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyYgYXR0cnMsIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKiBzd2Fw
Q2hhaW4pCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woYXR0cnMsIG51bGxwdHIsIHN3YXBDaGFpbikpOwotfQotCi1HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dHJzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4q
IHN3YXBDaGFpbikKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cnMpCiAgICAgOiBHcmFwaGljc0Nv
bnRleHRHTChhdHRycykKIHsKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0cnMud2ViR0xWZXJzaW9u
ID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDI7CkBAIC0zNTMsMTggKzMz
MCw2IEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0CiAgICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7
CiAgICAgYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5n
ZWQgZHVyaW5nIHZhbGlkYXRpb24uCiAKLSAgICBpZiAoc3dhcENoYWluKQotICAgICAgICBtX3N3
YXBDaGFpbiA9IHN3YXBDaGFpbjsKLSAgICBlbHNlIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKLSAgICAgICAgbV93ZWJHTExheWVyID0gYWRvcHROUyhbW1dlYkdMTGF5ZXIgYWxs
b2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRycy5kZXZpY2VQaXhlbFJhdGlvIGNvbnRl
bnRzT3BhcXVlOiFhdHRycy5hbHBoYV0pOwotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgW21fd2Vi
R0xMYXllciBzZXROYW1lOkAiV2ViR0wgTGF5ZXIiXTsKLSNlbmRpZgotICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKLSAgICAgICAgbV9zd2FwQ2hhaW4gPSAmW21fd2ViR0xMYXllciBzd2Fw
Q2hhaW5dOwotICAgIH0KLQogICAgIC8vIENyZWF0ZSB0aGUgdGV4dHVyZSB0aGF0IHdpbGwgYmUg
dXNlZCBmb3IgdGhlIGZyYW1lYnVmZmVyLgogICAgIEdMZW51bSB0ZXh0dXJlVGFyZ2V0ID0gZHJh
d2luZ0J1ZmZlclRleHR1cmVUYXJnZXQoKTsKIApAQCAtNDM5LDE0ICs0MDQsMTIgQEAgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6On5HcmFwaGljc0NvbnRleHRHTE9wZW5HTCgpCiAgICAgfQogICAg
IGlmIChtX2Rpc3BsYXlCdWZmZXJQYnVmZmVyKQogICAgICAgICBFR0xfRGVzdHJveVN1cmZhY2Uo
bV9kaXNwbGF5T2JqLCBtX2Rpc3BsYXlCdWZmZXJQYnVmZmVyKTsKLSAgICBpZiAobV9zd2FwQ2hh
aW4pIHsKLSAgICAgICAgYXV0byByZWN5Y2xlZEJ1ZmZlciA9IG1fc3dhcENoYWluLT5yZWN5Y2xl
QnVmZmVyKCk7Ci0gICAgICAgIGlmIChyZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpCi0gICAgICAgICAg
ICBFR0xfRGVzdHJveVN1cmZhY2UobV9kaXNwbGF5T2JqLCByZWN5Y2xlZEJ1ZmZlci5oYW5kbGUp
OwotICAgICAgICBhdXRvIGNvbnRlbnRzSGFuZGxlID0gbV9zd2FwQ2hhaW4tPmRldGFjaENsaWVu
dCgpOwotICAgICAgICBpZiAoY29udGVudHNIYW5kbGUpCi0gICAgICAgICAgICBFR0xfRGVzdHJv
eVN1cmZhY2UobV9kaXNwbGF5T2JqLCBjb250ZW50c0hhbmRsZSk7Ci0gICAgfQorICAgIGF1dG8g
cmVjeWNsZWRCdWZmZXIgPSBtX3N3YXBDaGFpbi5yZWN5Y2xlQnVmZmVyKCk7CisgICAgaWYgKHJl
Y3ljbGVkQnVmZmVyLmhhbmRsZSkKKyAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxh
eU9iaiwgcmVjeWNsZWRCdWZmZXIuaGFuZGxlKTsKKyAgICBhdXRvIGNvbnRlbnRzSGFuZGxlID0g
bV9zd2FwQ2hhaW4uZGV0YWNoQ2xpZW50KCk7CisgICAgaWYgKGNvbnRlbnRzSGFuZGxlKQorICAg
ICAgICBFR0xfRGVzdHJveVN1cmZhY2UobV9kaXNwbGF5T2JqLCBjb250ZW50c0hhbmRsZSk7CiAg
ICAgaWYgKG1fY29udGV4dE9iaikgewogICAgICAgICBtYWtlQ3VycmVudChtX2Rpc3BsYXlPYmos
IEVHTF9OT19DT05URVhUKTsKICAgICAgICAgRUdMX0Rlc3Ryb3lDb250ZXh0KG1fZGlzcGxheU9i
aiwgbV9jb250ZXh0T2JqKTsKQEAgLTQ1NSw2ICs0MTgsMTYgQEAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6On5HcmFwaGljc0NvbnRleHRHTE9wZW5HTCgpCiAgICAgTE9HKFdlYkdMLCAiRGVzdHJv
eWVkIGEgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgKCVwKS4iLCB0aGlzKTsKIH0KIAorYm9vbCBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
dGV4dHVyZTsKK30KKworUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnBs
YXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiBHQ0dMZW51
bSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJnZXQoKQog
ewogI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpAQCAtNTY3LDEyICs1NDAsMTAgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVzaGFwZURpc3BsYXlCdWZmZXJCYWNraW5nKCkKICAg
ICAgICAgbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciA9IEVHTF9OT19TVVJGQUNFOwogICAgIH0KICAg
ICAvLyBSZXNldCB0aGUgZnV0dXJlIHJlY3ljbGVkIGJ1ZmZlciBub3csIGJlY2F1c2UgaXQgbW9z
dCBsaWtlbHkgd2lsbCBub3QgYmUgcmV1c2FibGUgYXQgdGhlIHRpbWUgaXQgd2lsbCBiZSByZXVz
ZWQuCi0gICAgaWYgKG1fc3dhcENoYWluKSB7Ci0gICAgICAgIGF1dG8gcmVjeWNsZWRCdWZmZXIg
PSBtX3N3YXBDaGFpbi0+cmVjeWNsZUJ1ZmZlcigpOwotICAgICAgICBpZiAocmVjeWNsZWRCdWZm
ZXIuaGFuZGxlKQotICAgICAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxheU9iaiwg
cmVjeWNsZWRCdWZmZXIuaGFuZGxlKTsKLSAgICAgICAgcmVjeWNsZWRCdWZmZXIuc3VyZmFjZS5y
ZXNldCgpOwotICAgIH0KKyAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4ucmVj
eWNsZUJ1ZmZlcigpOworICAgIGlmIChyZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpCisgICAgICAgIEVH
TF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIHJlY3ljbGVkQnVmZmVyLmhhbmRsZSk7Cisg
ICAgcmVjeWNsZWRCdWZmZXIuc3VyZmFjZS5yZXNldCgpOwogICAgIHJldHVybiBhbGxvY2F0ZUFu
ZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZygpOwogfQogCkBAIC03MjQsMTAgKzY5NSwxMCBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwcmVwYXJlRm9yRGlzcGxheSgpCiAgICAgLy8g
VGhlIElPU3VyZmFjZSB3aWxsIGJlIHVzZWQgZnJvbSBvdGhlciBncmFwaGljcyBzdWJzeXN0ZW0s
IHNvIGZsdXNoIEdMIGNvbW1hbmRzLgogICAgIGdsOjpGbHVzaCgpOwogCi0gICAgYXV0byByZWN5
Y2xlZEJ1ZmZlciA9IG1fc3dhcENoYWluLT5yZWN5Y2xlQnVmZmVyKCk7CisgICAgYXV0byByZWN5
Y2xlZEJ1ZmZlciA9IG1fc3dhcENoYWluLnJlY3ljbGVCdWZmZXIoKTsKIAogICAgIEVHTF9SZWxl
YXNlVGV4SW1hZ2UobV9kaXNwbGF5T2JqLCBtX2Rpc3BsYXlCdWZmZXJQYnVmZmVyLCBFR0xfQkFD
S19CVUZGRVIpOwotICAgIG1fc3dhcENoYWluLT5wcmVzZW50KHsgV1RGTW92ZShtX2Rpc3BsYXlC
dWZmZXJCYWNraW5nKSwgbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciB9KTsKKyAgICBtX3N3YXBDaGFp
bi5wcmVzZW50KHsgV1RGTW92ZShtX2Rpc3BsYXlCdWZmZXJCYWNraW5nKSwgbV9kaXNwbGF5QnVm
ZmVyUGJ1ZmZlciB9KTsKICAgICBtX2Rpc3BsYXlCdWZmZXJQYnVmZmVyID0gRUdMX05PX1NVUkZB
Q0U7CiAKICAgICBib29sIGhhc05ld0JhY2tpbmcgPSBmYWxzZTsKQEAgLTc2Myw3ICs3MzQsNyBA
QCBHcmFwaGljc0NvbnRleHRHTENWKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6YXNDVigpCiAK
IHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZWFk
Q29tcG9zaXRlZFJlc3VsdHMoKQogewotICAgIGF1dG8mIGRpc3BsYXlCdWZmZXIgPSBtX3N3YXBD
aGFpbi0+ZGlzcGxheUJ1ZmZlcigpOworICAgIGF1dG8mIGRpc3BsYXlCdWZmZXIgPSBtX3N3YXBD
aGFpbi5kaXNwbGF5QnVmZmVyKCk7CiAgICAgaWYgKCFkaXNwbGF5QnVmZmVyLnN1cmZhY2UgfHwg
IWRpc3BsYXlCdWZmZXIuaGFuZGxlKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IGlmIChkaXNwbGF5QnVmZmVyLnN1cmZhY2UtPnNpemUoKSAhPSBnZXRJbnRlcm5hbEZyYW1lYnVm
ZmVyU2l6ZSgpKQpAQCAtNzk1LDEyICs3NjYsMTIgQEAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZl
cj4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlYWRDb21wb3NpdGVkUmVzdWx0cygpCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIFJlZlB0cjxNZWRpYVNhbXBsZT4gR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkKIHsKLSAgICBh
dXRvICZkaXNwbGF5QnVmZmVyID0gbV9zd2FwQ2hhaW4tPmRpc3BsYXlCdWZmZXIoKTsKKyAgICBh
dXRvICZkaXNwbGF5QnVmZmVyID0gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpOwogICAgIGlm
ICghZGlzcGxheUJ1ZmZlci5zdXJmYWNlIHx8ICFkaXNwbGF5QnVmZmVyLmhhbmRsZSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKGRpc3BsYXlCdWZmZXIuc3VyZmFjZS0+c2l6ZSgp
ICE9IGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIG1fc3dhcENoYWluLT5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7CisgICAgbV9zd2Fw
Q2hhaW4ubWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwogICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBj
cmVhdGVDVlBpeGVsQnVmZmVyKGRpc3BsYXlCdWZmZXIuc3VyZmFjZS0+c3VyZmFjZSgpKTsKICAg
ICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlCYXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tCmluZGV4IDE5
MzRlZjVlZjMzNjlhMjM2OTk2YjJlNmRlMGQ3NjM4YjE5MTlmYWQuLmI3MjU4ZTg2NDVmMTQwNDYz
MmJiMDI4NGVkODlkZjc5MDgzZGUxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQpAQCAtNDMsOSArNDMsOSBAQCB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewog
ICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwotICAgICAgICBtX3dlYkdMTGF5ZXIgPSBhZG9wdE5TKFtbV2ViR0xMYXll
ciBhbGxvY10gaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmF0dHJzLmRldmljZVBpeGVsUmF0aW8g
Y29udGVudHNPcGFxdWU6IWF0dHJzLmFscGhhXSk7CisgICAgbV93ZWJHTExheWVyID0gYWRvcHRO
UyhbW1dlYkdMTGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRycy5kZXZp
Y2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOiFhdHRycy5hbHBoYV0pOwogI2lmbmRlZiBOREVC
VUcKLSAgICAgICAgW21fd2ViR0xMYXllciBzZXROYW1lOkAiV2ViR0wgTGF5ZXIiXTsKKyAgICBb
bV93ZWJHTExheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOwogI2VuZGlmCiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogfQpAQCAtNjMsMjAgKzYzLDEyIEBAIEdyYXBoaWNzQ29udGV4
dEdMQ1YqIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjphc0NWKCkKIH0KICNlbmRp
ZgogCi1HcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiYgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtU3dhcENoYWluKCkKLXsKLSAgICByZXR1cm4gW21f
d2ViR0xMYXllciBzd2FwQ2hhaW5dOwotfQotCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIFJl
ZlB0cjxNZWRpYVNhbXBsZT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBhaW50
Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkKIHsKLSAgICBhdXRvJiBzYyA9IHBsYXRm
b3JtU3dhcENoYWluKCk7Ci0gICAgYXV0byYgZGlzcGxheUJ1ZmZlciA9IHNjLmRpc3BsYXlCdWZm
ZXIoKTsKLSAgICBpZiAoIWRpc3BsYXlCdWZmZXIuc3VyZmFjZSkKKyAgICBpZiAoIW1fZGlzcGxh
eUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgc2MubWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSgpOwotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVhdGVDVlBpeGVsQnVmZmVyKGRp
c3BsYXlCdWZmZXIuc3VyZmFjZS0+c3VyZmFjZSgpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0g
Y3JlYXRlQ1ZQaXhlbEJ1ZmZlcihtX2Rpc3BsYXlCdWZmZXItPnN1cmZhY2UoKSk7CiAgICAgaWYg
KCFwaXhlbEJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIE1lZGlh
U2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUoV1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCBN
ZWRpYVNhbXBsZUFWRk9iakM6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd24sIHRydWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5o
CmluZGV4IDE0NGM1YTQyNGE3YTNlNDYzNGI4NjRiM2JmMjA3MDE3MjY2MjQ1NWQuLjNjMjJmNWQ2
NGQ4OGM5N2ZiZTQ4YjJmYWY0ZDZjZDQ1ZDU3YmI0NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTIzLDIxICsyMywx
NSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+Ci0j
aW1wb3J0IDxtZW1vcnk+Ci0jaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAotLy8gQSBsYXllciBjbGFzcyBpbXBsZW1lbnRpbmcg
ZnJvbnQgYnVmZmVyIG1hbmFnZW1lbnQgb2YgYSAzLWJ1ZmZlcmluZyBzd2FwCi0vLyBjaGFpbiBv
ZiBJT1N1cmZhY2VzLgorLy8gQSBsYXllciBjbGFzcyBzaG93aW5nIG9uZSBJT1N1cmZhY2UuCiBA
aW50ZXJmYWNlIFdlYkdMTGF5ZXIgOiBDQUxheWVyCiAKIC0gKGlkKWluaXRXaXRoRGV2aWNlUGl4
ZWxSYXRpbzooZmxvYXQpZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1ZTooYm9vbCljb250
ZW50c09wYXF1ZTsKIAotLSAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4mKSBzd2FwQ2hhaW47Ci0KIEBlbmQKIAogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJHTExheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViR0xMYXllci5tbQppbmRleCBhNmU5Y2ZmNTAzYTNkMmZiNjY1Y2I3MDAzNDUxYWY1MWRmNDY3
ODkzLi5kZTkwMzE1NTY5MTExMzZjMzFmNWQ2OGVlMjQzZjY3ZWY2NmRlOGM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0K
QEAgLTMxLDIzICszMSw4IEBACiAjaW1wb3J0ICJHcmFwaGljc0xheWVyLmgiCiAjaW1wb3J0ICJH
cmFwaGljc0xheWVyQ0EuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllci5oIgotI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAKLWNsYXNzIFdlYkdMTGF5ZXJTd2FwQ2hh
aW4gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4gewotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMTGF5ZXJTd2FwQ2hhaW4oV2ViR0xM
YXllciogbGF5ZXIpICA6IG1fbGF5ZXIobGF5ZXIpIHsgfTsKLSAgICB+V2ViR0xMYXllclN3YXBD
aGFpbigpIG92ZXJyaWRlID0gZGVmYXVsdDsKLSAgICB2b2lkIHByZXNlbnQoQnVmZmVyJiYpIG92
ZXJyaWRlOwotCi0gICAgV2ViQ29yZTo6SU9TdXJmYWNlKiBkaXNwbGF5U3VyZmFjZSgpIHsgcmV0
dXJuIG1fZGlzcGxheUJ1ZmZlci5zdXJmYWNlLmdldCgpOyB9Ci1wcml2YXRlOgotICAgIFdlYkdM
TGF5ZXIqIGNvbnN0IG1fbGF5ZXI7Ci19OwotCi1AaW1wbGVtZW50YXRpb24gV2ViR0xMYXllciB7
Ci0gICAgQk9PTCBfcHJlcGFyZWRGb3JEaXNwbGF5OwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViR0xM
YXllclN3YXBDaGFpbj4gX3N3YXBDaGFpbjsKLX0KK0BpbXBsZW1lbnRhdGlvbiBXZWJHTExheWVy
CiAKIC0gKGlkKWluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzooZmxvYXQpZGV2aWNlUGl4ZWxSYXRp
byBjb250ZW50c09wYXF1ZTooYm9vbCljb250ZW50c09wYXF1ZQogewpAQCAtNTUsNyArNDAsNiBA
QCBwcml2YXRlOgogICAgIHNlbGYudHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRElkZW50aXR5Owog
ICAgIHNlbGYuY29udGVudHNPcGFxdWUgPSBjb250ZW50c09wYXF1ZTsKICAgICBzZWxmLmNvbnRl
bnRzU2NhbGUgPSBkZXZpY2VQaXhlbFJhdGlvOwotICAgIF9zd2FwQ2hhaW4uZW1wbGFjZShzZWxm
KTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtNzUsMzcgKzU5LDE1IEBAIHByaXZhdGU6CiAg
ICAgW3N1cGVyIHNldEFuY2hvclBvaW50OkNHUG9pbnRNYWtlKHAueCwgMS4wIC0gcC55KV07CiB9
CiAKLS0gKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluJikgc3dh
cENoYWluCi17Ci0gICAgcmV0dXJuIF9zd2FwQ2hhaW4udmFsdWUoKTsKLX0KLQotLSAodm9pZClw
cmVwYXJlRm9yRGlzcGxheQotewotICAgIFtzZWxmIHNldE5lZWRzRGlzcGxheV07Ci0gICAgX3By
ZXBhcmVkRm9yRGlzcGxheSA9IFlFUzsKLX0KLQogLSAodm9pZClkaXNwbGF5CiB7Ci0gICAgaWYg
KF9zd2FwQ2hhaW4tPmRpc3BsYXlTdXJmYWNlKCkgJiYgX3ByZXBhcmVkRm9yRGlzcGxheSkgewot
ICAgICAgICBzZWxmLmNvbnRlbnRzID0gX3N3YXBDaGFpbi0+ZGlzcGxheVN1cmZhY2UoKS0+YXNM
YXllckNvbnRlbnRzKCk7Ci0gICAgICAgIFtzZWxmIHJlbG9hZFZhbHVlRm9yS2V5UGF0aDpAImNv
bnRlbnRzIl07Ci0gICAgfQorICAgIC8vIFNob3cgdGhlIHNlbGYuY29udGVudHMgYXMgdGhlIGNv
bnRlbnRzIGJ5IG5vdCBkb2luZyBhbnl0aGluZyBpbiB0aGlzIGZ1bmN0aW9uLgogICAgIGF1dG8g
bGF5ZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxheWVy
KChfX2JyaWRnZSB2b2lkKilzZWxmKTsKICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPm93bmVyKCkp
CiAgICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3BsYXko
bGF5ZXIuZ2V0KCkpOwogCi0gICAgX3ByZXBhcmVkRm9yRGlzcGxheSA9IE5POwogfQogCiBAZW5k
CiAKLXZvaWQgV2ViR0xMYXllclN3YXBDaGFpbjo6cHJlc2VudChCdWZmZXImJiBidWZmZXIpCi17
Ci0gICAgQVNTRVJUKCFtX3NwYXJlQnVmZmVyLnN1cmZhY2UpOwotICAgIEdyYXBoaWNzQ29udGV4
dEdMSU9TdXJmYWNlU3dhcENoYWluOjpwcmVzZW50KFdURk1vdmUoYnVmZmVyKSk7Ci0gICAgW21f
bGF5ZXIgcHJlcGFyZUZvckRpc3BsYXldOwotfQotCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNTYyNWVkYmZlMjU0ZTM3NWZlZjE2OTgxNjlmNTJlZmQ0YWE3NzIy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTAsMCArMSw5
OCBAQAorCisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJHTCkKKyNpbXBvcnQgIkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMLmgiIC8vIE5PTElOVAorI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xNYW5hZ2VyLmgiCisjaW1wb3J0ICJXZWJHTExheWVyLmgiCisjaW1wb3J0IDx3dGYv
QmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2Ug
eworCitzdGF0aWMgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IGNyZWF0ZVdlYkdMTGF5ZXIoY29uc3Qg
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKQoreworICAgIFJldGFpblB0
cjxXZWJHTExheWVyPiBsYXllcjsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAg
ICBsYXllciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBpeGVs
UmF0aW86YXR0cmlidXRlcy5kZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOiFhdHRyaWJ1
dGVzLmFscGhhXSk7CisjaWZuZGVmIE5ERUJVRworICAgIFtsYXllciBzZXROYW1lOkAiV2ViR0wg
TGF5ZXIiXTsKKyNlbmRpZgorICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICByZXR1
cm4gbGF5ZXI7Cit9CisKKy8vIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIHR5cGUgdGhhdCBpcyB1
c2VkIHdoZW4gV2ViR0wgaXMgcnVuIGluLXByb2Nlc3MgaW4gV2ViQ29udGVudCBwcm9jZXNzLgor
Y2xhc3MgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZpbmFsIDogcHVibGljIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMIHsKK3B1YmxpYzoKKyAgICB+V2ViUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKCkgPSBkZWZhdWx0OworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc1ZhbGlkKCkgJiYgbV93ZWJHTExheWVy
OyB9CisgICAgLy8gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgb3ZlcnJpZGVzLgorICAgIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiByZWludGVycHJl
dF9jYXN0PENBTGF5ZXIqPihtX3dlYkdMTGF5ZXIuZ2V0KCkpOyB9CisgICAgdm9pZCBwcmVwYXJl
Rm9yRGlzcGxheSgpIGZpbmFsOworcHJpdmF0ZToKKyAgICBXZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAg
ICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykKKyAgICAgICAgLCBtX3dl
YkdMTGF5ZXIoY3JlYXRlV2ViR0xMYXllcihhdHRyaWJ1dGVzKSkKKyAgICB7CisgICAgfQorICAg
IFJldGFpblB0cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7CisKKyAgICBmcmllbmQgY2xhc3Mg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w7Cit9OworCit2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6cHJlcGFyZUZvckRpc3BsYXkoKQoreworICAgIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpwcmVwYXJlRm9yRGlzcGxheSgpOworICAgIGF1dG8gc3VyZmFjZSA9IG1fc3dh
cENoYWluLmRpc3BsYXlCdWZmZXIoKS5zdXJmYWNlLmdldCgpOworICAgIGlmICghc3VyZmFjZSkK
KyAgICAgICAgcmV0dXJuOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIFtt
X3dlYkdMTGF5ZXIgc2V0Q29udGVudHM6c3VyZmFjZS0+YXNMYXllckNvbnRlbnRzKCldOworICAg
IFttX3dlYkdMTGF5ZXIgc2V0TmVlZHNEaXNwbGF5XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCit9CisKK30KKworUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRy
aWJ1dGVzLCBIb3N0V2luZG93KikKK3sKKyAgICAvLyBNYWtlIHNwYWNlIGZvciB0aGUgaW5jb21p
bmcgY29udGV4dCBpZiB3ZSdyZSBmdWxsLgorICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKKyAgICBp
ZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaGFzVG9v
TWFueUNvbnRleHRzKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0UmVmKG5ldyBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92
ZShhdHRyaWJ1dGVzKSkpOworICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5hZGRDb250ZXh0KGNvbnRleHQuZ2V0KCkpOworCisgICAgcmV0dXJuIGNvbnRl
eHQ7Cit9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAK
aW5kZXggZDQyODFhYTcwNmYyNmY2NWNkZmYxZDc1MjJiZjBiZTVlYjkyMWRhYS4uM2RkNzg4MDBk
MWI1NzVhYTE1M2JiOWIzZGM1M2RkYmQwZjA1ODUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wuY3BwCkBAIC00Nyw2ICs0NywxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCitib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpp
c1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZXNldEJ1ZmZlcnNUb0F1dG9DbGVhcigpCiB7CiAgICAg
R0NHTHVpbnQgYnVmZmVycyA9IEdyYXBoaWNzQ29udGV4dEdMOjpDT0xPUl9CVUZGRVJfQklUOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCAyMjc3YjE3Y2M3MDk4ODg3Njgy
NmMwODYyZjdhNzE4Mzk3NDI1ZGZhLi45OTRlZjE1MjEzMDU1ZjA5N2EwOGZjOTIwYmU1ZTJmNjkx
MzA3ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW5jbHVk
ZSAiSU9TdXJmYWNlLmgiCiAjZW5kaWYKIApAQCAtNjcsNyArNjgsNiBAQAogT0JKQ19DTEFTUyBD
QUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xh
c3MgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW47CiBjbGFzcyBHcmFwaGljc0Nv
bnRleHRHTENWQU5HTEU7CiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCkBAIC05NywyMiAr
OTcsMTggQEAgY2xhc3MgVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyOwogCiB0eXBlZGVm
IFdURjo6SGFzaE1hcDxDU3RyaW5nLCB1aW50NjRfdD4gU2hhZGVyTmFtZUhhc2g7CiAKLWNsYXNz
IFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZpbmFsIDogcHVibGljIEdy
YXBoaWNzQ29udGV4dEdMCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTAogewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMsIEhvc3RXaW5kb3cqKTsKICAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCgpOwotCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3RhdGljIFJlZjxHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTD4gY3JlYXRlRm9yR1BVUHJvY2Vzcyhjb25zdCBHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMmLCBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiopOwotCi0g
ICAgQ0FMYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8Q0FMYXllcio+KG1fd2ViR0xMYXllci5nZXQoKSk7IH0KKyAgICBQbGF0Zm9ybUxh
eWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5T2JqOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTENvbmZpZyBwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlnT2JqOyB9CiAgICAgc3RhdGljIEdDR0xlbnVt
IGRyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0UXVlcnkoKTsKICAgICBzdGF0aWMgR0NHTGludCBF
R0xEcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpOwogI2Vsc2UKLSAgICBzdGF0aWMgUmVmPEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGVGb3JHUFVQcm9jZXNzKGNvbnN0IEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYpOwogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIo
KSBjb25zdCBmaW5hbDsKICNlbmRpZgogI2lmIFVTRShBTkdMRSkKQEAgLTUxOCw3ICs1MTQsNyBA
QCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCB0ZXh0dXJlU2VlZChHQ0dMdWludCB0ZXh0dXJlKSB7
IHJldHVybiBtX3N0YXRlLnRleHR1cmVTZWVkQ291bnQuY291bnQodGV4dHVyZSk7IH0KIAotICAg
IHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsKKyAgICB2b2lkIHByZXBhcmVGb3JEaXNw
bGF5KCkgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04p
CiAgICAgR3JhcGhpY3NDb250ZXh0R0xDViogYXNDVigpIGZpbmFsOwpAQCAtNTM4LDEzICs1MzQs
MTMgQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKKyAg
ICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMpOwor
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRv
dyosIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKiA9IG51bGxwdHIpOwotI2Vs
c2UKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMsIEhvc3RXaW5kb3cqKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFp
biBtX3N3YXBDaGFpbjsKICNlbmRpZgotCitwcml2YXRlOgogICAgIC8vIENhbGxlZCBvbmNlIGJ5
IGFsbCB0aGUgcHVibGljIGVudHJ5IHBvaW50cyB0aGF0IGV2ZW50dWFsbHkgY2FsbCBPcGVuR0wu
CiAgICAgLy8gQ2FsbGVkIG9uY2UgYnkgYWxsIHRoZSBwdWJsaWMgZW50cnkgcG9pbnRzIG9mIEV4
dGVuc2lvbnNHTCB0aGF0IGV2ZW50dWFsbHkgY2FsbCBPcGVuR0wuCiAgICAgYm9vbCBtYWtlQ29u
dGV4dEN1cnJlbnQoKSBXQVJOX1VOVVNFRF9SRVRVUk47CkBAIC01ODYsOSArNTgyLDcgQEAgcHJp
dmF0ZToKIAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4qIG1fc3dhcENoYWluIHsgbnVsbHB0ciB9OwogICAgIC8vIFRPRE86IHRo
aXMgc2hvdWxkIGJlIHJlbW92ZWQgb25jZSB0aGUgY29udGV4dCBkcmF3cyB0byBhIGltYWdlIGJ1
ZmZlci4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgxNzkg
LgotICAgIFJldGFpblB0cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7CiAgICAgRUdMRGlzcGxh
eSBtX2Rpc3BsYXlPYmogeyBudWxscHRyIH07CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRH
TCBtX2NvbnRleHRPYmogeyBudWxscHRyIH07CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRH
TENvbmZpZyBtX2NvbmZpZ09iaiB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBw
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
Q29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggOGQzZDY1YzE3ZjlkMzRlMTU2YjUwYTE4
ZTg0NTU4Y2ExMWE1MmJjNS4uOTQ0ZmQ3ZWY3YjVkMzQ5YTBiMmU2NTNkNzg3MjExYTMyYWZjYWI0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAK
QEAgLTY2LDcgKzY2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWZQdHI8R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cp
CitSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5k
b3cqKQogewogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgc3RhdGlj
IGJvb2wgc3VjY2VzcyA9IHRydWU7CkBAIC04NSw3ICs4NSw3IEBAIFJlZlB0cjxHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0Nv
bnRleHRHCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gQ3JlYXRlIHRoZSBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCBvYmplY3QgZmlyc3QgaW4gb3JkZXIgdG8gZXN0YWJsaXN0IGEg
Y3VycmVudCBjb250ZXh0IG9uIHRoaXMgdGhyZWFkLgotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0
UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzLCBob3N0V2luZG93KSk7
CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KGF0dHJpYnV0ZXMpKTsKIAogI2lmIFVTRShMSUJFUE9YWSkgJiYgVVNFKE9QRU5HTF9FUykgJiYg
RU5BQkxFKFdFQkdMMikKICAgICAvLyBCYWlsIGlmIEdMRVMzIHdhcyByZXF1ZXN0ZWQgYnV0IGNh
bm5vdCBiZSBwcm92aWRlZC4KQEAgLTk4LDEzICs5OCw4IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRl
eHRHCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLVJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5H
TD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZUZvckdQVVByb2Nlc3MoY29uc3QgR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKQotewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMsIG51bGxwdHIpKTsK
LX0KLQogI2lmIFVTRShBTkdMRSkKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9z
dFdpbmRvdyopCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBHcmFwaGlj
c0NvbnRleHRHTChhdHRyaWJ1dGVzKQogewogI2lmIEVOQUJMRShXRUJHTDIpCkBAIC0xNzMsNyAr
MTY4LDcgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICBnbDo6Q2xlYXJDb2xvcigwLCAw
LCAwLCAwKTsKIH0KICNlbHNlCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RX
aW5kb3cqKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogR3JhcGhpY3ND
b250ZXh0R0woYXR0cmlidXRlcykKIHsKICNpZiBVU0UoTklDT1NJQSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0wuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWVlMThkNjJmMDUwOWYwMDlmMzRjM2VkZTY4ZDM1
ZTBkMDg5NjUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5B
QkxFKFdFQkdMKQorI2luY2x1ZGUgPFdlYkNvcmUvRXh0ZW5zaW9uc0dMLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oPgorCitjbGFzcyBHUFVQcm9jZXNzR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wgeworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgeworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJl
ZigqbmV3IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0
ZXMpKSk7CisgICAgICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIFdlYkNvcmU6OklPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpIHsgcmV0
dXJuIG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKS5zdXJmYWNlLmdldCgpOyB9CisgICAgdm9p
ZCBtYXJrRGlzcGxheUJ1ZmZlckluVXNlKCkgeyByZXR1cm4gbV9zd2FwQ2hhaW4ubWFya0Rpc3Bs
YXlCdWZmZXJJblVzZSgpOyB9CisjZW5kaWYKK3ByaXZhdGU6CisgICAgR1BVUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBh
dHRyaWJ1dGVzKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMp
CisgICAgeworICAgIH0KK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCAy
NTYwMzk3YTUzNzI3MTIwNDY5MDgyN2I5NzAxNWU4YjczYmVlNzljLi5lZjQxZWE2MDgyYmFiM2Yz
YzI4ZmIzMjE3ZmExODY0OTI4M2I2ZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtMjks
MjIgKzI5LDE3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkdQVVByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIlF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuaCIKICNpbmNsdWRlICJTY29wZWRXZWJHTFJlbmRlcmluZ1Jl
c291cmNlc1JlcXVlc3QuaCIKICNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKICNp
bmNsdWRlICJTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FeHRl
bnNpb25zR0wuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRBc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAotI2lmIFBMQVRGT1JN
KENPQ09BKQotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaD4KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPENvcmVHcmFw
aGljcy9DR0Rpc3BsYXlDb25maWd1cmF0aW9uLmg+CiAjZW5kaWYKQEAgLTExNCw3ICsxMDksNyBA
QCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlZlB0cjxJUEM6OlN0cmVh
bVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IG1fY29udGV4dCBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fc3RyZWFtVGhyZWFkKTsKKyAgICBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMPiBtX2NvbnRleHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7CiAg
ICAgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlm
aWVyOwogICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tlbmQ7
CiAgICAgU2NvcGVkV2ViR0xSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVz
b3VyY2VzUmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAppbmRleCA5
NzBkOGMyZTc5MDllOGY3MWZhZDBjOWJkMmM2NDMxZmNkOTVhZDMyLi5iNDM3YTViZWVjZDVkNmFj
NTgzY2E1OTdhOTVlMjc3MTJmYWRkNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29j
b2EuY3BwCkBAIC03MywyMCArNzMsMjIgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQcm8KIHZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXpl
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCiB7CiAg
ICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSAgICBtX2NvbnRleHQgPSBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJvY2VzcyhXVEZNb3ZlKGF0dHJpYnV0
ZXMpLCAmbV9zd2FwQ2hhaW4pOworICAgIG1fY29udGV4dCA9IEdQVVByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOwogfQogCiB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7CiAgICAgbV9jb250ZXh0LT5w
cmVwYXJlRm9yRGlzcGxheSgpOworICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlciA9IG1fY29u
dGV4dC0+ZGlzcGxheUJ1ZmZlcigpOwogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0OwotICAg
IGlmIChhdXRvKiBzdXJmYWNlID0gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpLnN1cmZhY2Uu
Z2V0KCkpIHsKKyAgICBpZiAoZGlzcGxheUJ1ZmZlcikgeworICAgICAgICBtX2NvbnRleHQtPm1h
cmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKICNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQ
X0lERU5USVRZKQogICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3duZWQg
YnkgdGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRoZSBH
UFVQcm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4KLSAg
ICAgICAgc3VyZmFjZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbik7CisgICAgICAgIGRpc3BsYXlCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4pOwogI2VuZGlmCi0gICAgICAgIHNlbmRSaWdodCA9IHN1cmZh
Y2UtPmNyZWF0ZVNlbmRSaWdodCgpOworICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVy
LT5jcmVhdGVTZW5kUmlnaHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShzZW5kUmlnaHQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW4uY3BwCmluZGV4IDFj
YWZiMzM5YmUzYWFmYjNkODhjNWIzNWI3MGM4ZTBiNGNlZWQ4YzYuLjcwZjBjNDY0MDMyYjkzM2M4
ZjQ1OTE5Yzg2OGFjNjc2ZGMxNzFkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2luLmNw
cApAQCAtNTcsNyArNTcsNyBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbjo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xXaW4oR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogCiB2b2lkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMV2luOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKLSAgICBtX2Nv
bnRleHQgPSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJvY2VzcyhXVEZN
b3ZlKGF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbnRleHQgPSBHUFVQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKIH0KIAogdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTDo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDFl
ZWE0YjBiNDEyYmUxZmQwZjJjOTNkZjcxYmE3NjQ2OGExYmQyZWYuLmYzYjk3N2QzZGQ3ZGY5NDU2
NjQyM2MwNjQ3MzUxNjJhMWM1NDY0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYyMyw2
ICs2MjMsNyBAQCBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250
ZW50U2VydmljZUVudHJ5UG9pbnQubW0KIAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
LmNwcAorV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUNvY29hLm1tCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzYWUyMTQ3YjQwN2RmZGZlNmYyYmUwNTFlMDZlMmUxYTMyOWE1NjA0Li4yZGViNjZlNDM2
NGQwNTc3YmE1MzVhOGRlOGM3MWZiOTQ1MzJhOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4MDUsNiArNDgwNSw4IEBACiAJCTdB
RkJEMzYyMjFFNTBGMzkwMDVEQkFDQiAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmg7IHBhdGggPSBDbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZCRDM2RDIxRTU0NkUzMDA1
REJBQ0IgLyogUGVyc2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJzaXN0ZW5jeVV0
aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBRkJEMzZFMjFFNTQ2RTMwMDVE
QkFDQiAvKiBQZXJzaXN0ZW5jeVV0aWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3Rl
bmN5VXRpbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjE2MTkxMjI3MTk4
QUE5MDBDNDBFQUMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjE2MTkxMzI3MTlBRTc2MDBDNDBFQUMgLyog
R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjFEQjI2
NTI1NjY4Q0UwMDAwRTI2QkMgLyogQXJyYXlSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXJyYXlSZWZlcmVuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0I0ODNGMUIyNUNEREE5QjAwMTIwNDg2IC8qIE1lc3NhZ2VSZWNlaXZlUXVldWVNYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVRdWV1ZU1h
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjQ4M0YxQzI1Q0REQTlCMDAxMjA0
ODYgLyogTWVzc2FnZVJlY2VpdmVRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZXNzYWdlUmVjZWl2ZVF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC05MTkxLDYgKzkxOTMsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRjQwOTRDQkMyNTUzMDRB
RjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcCAqLywKIAkJCQlGNDA5NENC
QjI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuaCAqLywKKwkJCQk3
QjE2MTkxMzI3MTlBRTc2MDBDNDBFQUMgLyogR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgg
Ki8sCiAJCQkJNTVBRDA5NDMyNDA4QTBFNjAwREU0RDJGIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VC
dWZmZXIuaCAqLywKIAkJCQkxQ0M1NEFGRDI3MEY5NjU0MDA1QkY4QkUgLyogUXVhbGlmaWVkUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggKi8sCiAJCQkJMUNCRjkwMTIyNzEwMThCNTAwMEM0
NTdEIC8qIFF1YWxpZmllZFJlc291cmNlSGVhcC5oICovLApAQCAtOTY2Myw2ICs5NjY2LDcgQEAK
IAkJCQkyRDI1RjMyODI1NzU4RTkwMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kLmggKi8sCiAJCQkJNzI3QTdGMzQyNDA3ODU3RDAwNEQyOTMxIC8qIEltYWdl
QnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8sCiAJCQkJNzI3QTdG
MzUyNDA3ODU3RjAwNEQyOTMxIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNl
QmFja2VuZC5oICovLAorCQkJCTdCMTYxOTEyMjcxOThBQTkwMEM0MEVBQyAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHkuY3BwCmluZGV4IGMwYmFjMzhlZWMyZWI2NDAyNjg2YzMzZGMzZDQzY2Q0YjZkOGRm
NmYuLjMxZDc5ZjlmMWQzMGM5YjUyMTZiZjU2NTU4YjFhNjQyOTU4ODAzZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcApAQCAtNjcsOSArNjcsNiBAQCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5KEdQ
VVByb2Nlc3NDb25uZWN0aW9uJgogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6flJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkoKQogewogICAgIGRpc2Nvbm5lY3RHcHVQcm9jZXNzSWZO
ZWVkZWQoKTsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBwbGF0Zm9ybVN3YXBDaGFpbigpLnJl
Y3ljbGVCdWZmZXIoKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHk6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQpAQCAtODMsMzIgKzgwLDE5IEBA
IHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cmVzaGFwZShpbnQgd2lkdGgsIGlu
dCBoZWlnaHQpCiAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogfQogCisjaWYgIVBMQVRGT1JN
KENPQ09BKQogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlz
cGxheSgpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwotI2lm
IFBMQVRGT1JNKENPQ09BKQotICAgIE1hY2hTZW5kUmlnaHQgZGlzcGxheUJ1ZmZlclNlbmRSaWdo
dDsKLSAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OlByZXBhcmVGb3JEaXNwbGF5KCksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTDo6UHJlcGFyZUZvckRpc3BsYXk6OlJlcGx5KGRpc3BsYXlCdWZmZXJTZW5kUmln
aHQpKTsKLSAgICBpZiAoIXNlbmRSZXN1bHQpIHsKLSAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgYXV0byBkaXNwbGF5QnVmZmVyID0gSU9TdXJm
YWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KFdURk1vdmUoZGlzcGxheUJ1ZmZlclNlbmRSaWdodCks
IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKLSAgICBpZiAoZGlzcGxh
eUJ1ZmZlcikgewotICAgICAgICBhdXRvJiBzYyA9IHBsYXRmb3JtU3dhcENoYWluKCk7Ci0gICAg
ICAgIHNjLnJlY3ljbGVCdWZmZXIoKTsKLSAgICAgICAgc2MucHJlc2VudCh7IFdURk1vdmUoZGlz
cGxheUJ1ZmZlciksIG51bGxwdHIgfSk7Ci0gICAgfQotI2Vsc2UKICAgICBhdXRvIHNlbmRSZXN1
bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlByZXBhcmVG
b3JEaXNwbGF5KCksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFyZUZv
ckRpc3BsYXk6OlJlcGx5KCkpOwogICAgIGlmICghc2VuZFJlc3VsdCkgewogICAgICAgICBtYXJr
Q29udGV4dExvc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogICAgIG1hcmtM
YXllckNvbXBvc2l0ZWQoKTsKIH0KKyNlbmRpZgogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OmVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoY29uc3QgU3RyaW5nJiBleHRlbnNpb24p
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlMGQyMDNhMjU4N2I0MzVmNmJhOWQxMzViMzljNTMyNzU1
ZTM3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbQpAQCAtMCww
ICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShXRUJHTCkKKyNpbXBvcnQgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZXMu
aCIKKyNpbXBvcnQgPFdlYkNvcmUvSU9TdXJmYWNlLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tPYmpD
RXhjZXB0aW9ucy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnByZXBhcmVGb3JEaXNw
bGF5KCkKK3sKKyAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQorICAgICAgICByZXR1cm47CisgICAg
TWFjaFNlbmRSaWdodCBkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0OworICAgIGF1dG8gc2VuZFJlc3Vs
dCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFyZUZv
ckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9y
RGlzcGxheTo6UmVwbHkoZGlzcGxheUJ1ZmZlclNlbmRSaWdodCkpOworICAgIGlmICghc2VuZFJl
c3VsdCkgeworICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpZiAoIWRpc3BsYXlCdWZmZXJTZW5kUmlnaHQpCisgICAgICAgIHJldHVybjsKKyAg
ICBhdXRvIGRpc3BsYXlCdWZmZXIgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5k
UmlnaHQoV1RGTW92ZShkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0KSwgV2ViQ29yZTo6RGVzdGluYXRp
b25Db2xvclNwYWNlOjpTUkdCKCkpOworICAgIGlmICghZGlzcGxheUJ1ZmZlcikgeworICAgICAg
ICBtYXJrQ29udGV4dExvc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX2Rpc3Bs
YXlCdWZmZXIgPSBXVEZNb3ZlKGRpc3BsYXlCdWZmZXIpOworICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUworICAgIFttX3dlYkdMTGF5ZXIgc2V0Q29udGVudHM6bV9kaXNwbGF5QnVmZmVy
LT5hc0xheWVyQ29udGVudHMoKV07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAg
IG1hcmtMYXllckNvbXBvc2l0ZWQoKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250
ZXh0Q29udHJvbGxlci5tbQppbmRleCBkMTYyMzQ0NDIzMWU2YmQ0NDllNTNhZTQxYWU1NjlmNzE0
YmEwNzY1Li5iYzhlYWI5ODc5YmU4MGQ4NTFiMDAxYzIwMGMwZjE4NTdhNmM3YTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCkBAIC02Myw2ICs2Myw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0hUTUxJbnB1dEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgorI2ltcG9ydCA8d3RmL2NvY29h
L1ZlY3RvckNvY29hLmg+CiAKIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdLRGVwcmVjYXRlZERlbGVn
YXRlTWV0aG9kcykKIC0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJv
bGxlciBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lICopZnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tCmluZGV4IGRlNzM3MWJl
OWZjZDgyYjEwMGQyNmYxOTFkZTJiMzRlODZhZmUxMzYuLmY2MmRjN2M4MzdmMDJmNzAxMGM4MmQ5
NzkwZTJiYWFmMjE0ZTFkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tCkBAIC0zMSw2
ICszMSw3IEBACiAjaW1wb3J0ICJQREZMYXllckNvbnRyb2xsZXJTUEkuaCIKICNpbXBvcnQgIlBE
RlBsdWdpbi5oIgogI2ltcG9ydCA8UXVhcnR6L1F1YXJ0ei5oPgorI2ltcG9ydCA8V2ViQ29yZS9B
ZGRFdmVudExpc3RlbmVyT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxFbGVtZW50
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxIb3N0aW5nLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJl
bW90ZU1vZGVsSG9zdGluZy5tbQppbmRleCA4YzEwNjIyMDVjNzdhZmZkN2JhZDE3Y2Y5NzI2ZmM4
MDIwNzY2YzJhLi5jYTNkYTY5YjQzMDk0M2RmNjY2ZTdlODQwODQwZDU3ZjZiYzcyOGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxIb3N0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVN
b2RlbEhvc3RpbmcubW0KQEAgLTY2LDkgKzY2LDkgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVNb2RlbEhvc3Rpbmc6OnBvcHVsYXRlQ3JlYXRpb25Qcm9wZXJ0aWVzKFJlbW90ZUxheWVyVHIK
ICAgICBwcm9wZXJ0aWVzLm1vZGVsID0gbV9tb2RlbC5wdHIoKTsKIH0KIAotdm9pZCBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVNb2RlbEhvc3Rpbmc6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0
U3RyZWFtJiB0cywgT3B0aW9uU2V0PFBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0RmxhZ3M+IGZsYWdz
KQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhvc3Rpbmc6OmR1bXBBZGRpdGlvbmFs
UHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXRmb3JtTGF5
ZXJUcmVlQXNUZXh0RmxhZ3M+IGZsYWdzKQogewotICAgIGlmIChmbGFncy5jb250YWlucyhQbGF0
Zm9ybUxheWVyVHJlZUFzVGV4dEZsYWdzOjpJbmNsdWRlTW9kZWxzKSkKKyAgICBpZiAoZmxhZ3Mu
Y29udGFpbnMoV2ViQ29yZTo6UGxhdGZvcm1MYXllclRyZWVBc1RleHRGbGFnczo6SW5jbHVkZU1v
ZGVscykpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKG1vZGVsIGRhdGEgc2l6ZSAiIDw8IG1f
bW9kZWwtPmRhdGEoKS0+c2l6ZSgpIDw8ICIpXG4iOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441529</attachid>
            <date>2021-10-17 03:24:38 -0700</date>
            <delta_ts>2021-10-17 04:08:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231804-20211017132436.patch</filename>
            <type>text/plain</type>
            <size>52053</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJkZjgzNTNhN2ZiYzJi
MGU5ZDU4MWZlNTBhMTM4Nzk2MTcxYTVmNi4uY2ZmYzUxMzBhNjgxMmE1NDcxZjQxNzVhZTRjNTc2
MGYyOGM0Zjk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTEwLTE1ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29jb2EgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgc2hvdWxkIG5vdCB1c2UgV2ViR0xMYXllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIE1vdmUgdGhlICJzd2FwIGNoYWluIiwg
ZS5nLiB0aGUgZGlzcGxheSBidWZmZXIgSU9TdXJmYWNlCisgICAgICAgIGZyb20gV2ViR0xMYXll
ciB0byBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC4KKyAgICAgICAgSW5zdGFudGlhdGUgV2ViR0xM
YXllciBvbmx5IGluIG5ldyBjbGFzcyBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0ws
CisgICAgICAgIHdoaWNoIGlzIHVzZWQgd2hlbiBXZWJHTCBpcyBydW4gaW4tcHJvY2VzcyBpbiBX
ZWJDb250ZW50IHByb2Nlc3MuCisgICAgICAgIFNpbXBseSBzZXQgdGhlIENBTGF5ZXIuY29udGVu
dHMgd2hlbiBuZXcgZGlzcGxheSBidWZmZXIgaXMgcmVhZHkgYW5kCisgICAgICAgIGNhbGwgInNl
dE5lZWRzRGlzcGxheSIgZGlyZWN0bHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFj
dG9yLgorCisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OnJlYWRDb21wb3NpdGVkUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJv
Y2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZvciBHUFVQ
cm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisgICAgICAgIGluIFdlYktpdCBD
aGFuZ2VMb2cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3Np
dGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtU3dhcENoYWluKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBpbml0V2l0aERldmljZVBpeGVsUmF0aW86Y29udGVudHNPcGFxdWU6XSk6CisgICAgICAgICgt
W1dlYkdMTGF5ZXIgZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJHTExheWVyIHN3YXBDaGFpbl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXZWJHTExheWVyIHByZXBhcmVGb3JEaXNwbGF5XSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJHTExheWVyU3dhcENoYWluOjpwcmVzZW50KTogRGVsZXRlZC4K
KyAgICAgICAgQ0FMYXllci5jb250ZW50cyBhbmQgc2V0TmVlZHNEaXNwbGF5IGlzIGNhbGxlZCBk
aXJlY3RseSB3aGVuCisgICAgICAgIGEgZ3JhcGhpY3MgY29udGV4dCBoYXMgbmV3IGRpc3BsYXkg
YnVmZmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgQWRk
IGEgbmV3IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZSBjb25zdHJ1Y3RvciBleGl0ZWQgZWFy
bHkuCisgICAgICAgIEJlZm9yZSwgbV9jb250ZXh0T2JqIHdvdWxkIGJlIGNvbnN1bHRlZCBidXQg
dGhpcyBpcyBub3QgcHJvdGVjdGVkCisgICAgICAgIHNvIGl0J3Mgbm90IHNvIHVzZWZ1bC4gQWxz
byBpdCB3YXNuJ3QgdmVyeSBhY2N1cmF0ZSwgYXMgc29tZSBjb25zdHJ1Y3RvcgorICAgICAgICBl
YXJseSBleGlzdHMgcmFuIGFmdGVyIG1fY29udGV4dE9iaiB3YXMgc2V0LiBVc2UgbV90ZXh0dXJl
IHRvIGRldGVjdAorICAgICAgICBmdWxseSBjb25zdHJ1Y3RlZCBvYmplY3QgZm9yIG5vdy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlRm9yR1BVUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMIGZvciBHUFVQcm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisg
ICAgICAgIGluIFdlYktpdCBDaGFuZ2VMb2cuIFJlbW92ZSB0aGUgSG9zdFdpbmRvdyBhcmd1bWVu
dHMgZm9yCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLCBpdCdzIG5vdCB1c2VkLgor
CiAyMDIxLTEwLTE1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2ZXJ0IHIyODQyMzAsIG15IGxhc3QgZml4ZXMgdG8gdGhlIHdhdGNoIGJ1aWxkIG1h
a2UgaXQgYnJlYWsgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTk3YmNjMTFmYmU0MTdkNWMxODJhOGZhNzc0
MWJjYjJkNDIyMGE4NC4uZWI3NzAwZjBlYzVkN2MxYTllMWM0ZjRmOWI5N2Q1MDhkZjk3NmFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMS0xMC0xNSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIENvY29hIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIHNob3VsZCBub3QgdXNlIFdlYkdMTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwNAorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4g
SmFja3Nvbi4KKworICAgICAgICBJbXBsZW1lbnQgY2hhbmdlcyBzbyB0aGF0IEdQVSBwcm9jZXNz
IHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wsCisgICAgICAgIHRoZSBuZXcgY2xhc3MgR1BV
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLCBkb2VzIG5vdCB1c2UKKyAgICAgICAgV2ViR0xMYXll
ci4gSW5zdGVhZCwgdGhlIHN3YXAgY2hhaW4gaXMgaW4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgYW5kIHRoZSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wgZXhwb3NlcyBhIGZ1
bmN0aW9uIHRvIGV4dHJhY3QKKyAgICAgICAgdGhlIGRpc3BsYXkgYnVmZmVyIG91dCB0byBiZSBz
ZW50IHRvIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSBz
aW1wbGVyIGNsYXNzIGZvciBHUFVQcm9jZXNzIHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgaW5zdGFuY2UsIG9uZSB0aGF0IGNhbiBnZXQgdGhlIGRpc3BsYXkgYnVmZmVyIGZy
b20gdGhlIGluc3RhbmNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW46OnBs
YXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6flJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIE1vdmUgQ29jb2EgaW1w
bGVtZW5hdGlvbiB0byBhbiBPYmplY3RpdmUtQysrIGZpbGUuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eu
bW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIFNldCB0aGUgZGlzcGxheSBidWZmZXIgY29u
dGVudHMgZGlyZWN0bHkgdG8gdGhlIFdlYkdMTGF5ZXIgYWZ0ZXIKKyAgICAgICAgcHJlcGFyZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxI
b3N0aW5nLm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhv
c3Rpbmc6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyk6CisgICAgICAgIFVuaWZpZWQgYnVpbGQg
Zml4ZXMuCisKIDIwMjEtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBZGQgQWRBdHRyaWJ1dGlvbkRhZW1vbiBwbGlzdCBvbiBpT1MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYmNmY2ViNzkzMTNlYzA1YzM1NGM1ZmVmZTM0
YWI1MTBhYjMzZTcxNy4uNjEzZTFiOGRiYzNkYTcwZjY4ZWZjMTZmMWIwZmFkMTY3NGM3OTkxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTMzMiw2ICszMzIsNyBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24ubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29j
b2EubW0KKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9u
dENhc2NhZGVDb3JlVGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250
Q29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBhYmQwNGEyYTA0ZGE2ZDIy
ZDBkMjY4MzRhNTliMjk1ZGMzMGIxZmZhLi41YzJjNGE3ZmFjMTRhNWE0ZDc0MzM1ODAzYzc5OTRi
N2QyMjFhOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM4OCw2ICszODgsNyBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9j
b3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTEyMzZlZmViNzMwOGQ1Mzkw
ZTVmOGNlMGQyNzY5NGRhNDEyZDE5ZS4uYjlhZWYxOTE1NDIyODE4MDRmOWJlYzM2NmE0ZDllMGJl
YTM4YWNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTA3MjIsNiArMTA3MjIsNyBAQAogCQk3QjEwMzM5QTI1NDk3MjAwMDBD
OEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0Nv
bnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1YuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFDIC8qIFdlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCNjRDMEI0MjU0QzNCMTYwMDA2QjRBRiAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdM
SU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzYxMCw2ICsyNzYxMSw3IEBACiAJCQkJNDlGRkJGM0UxMUM5M0VF
MzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8sCiAJCQkJMDdGNUNGRjQyNTgyQTRGODAwNjYy
RUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLmggKi8sCiAJCQkJMDdGNUNGRjIyNTgyQTRG
ODAwNjYyRUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLm1tICovLAorCQkJCTdCMTYxOTEw
MjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwCmluZGV4IDdhZWUz
OGYzOWYzYjNkYWQ2MjQwODJkYmJiOTA4NDQ2M2JjMzJhNGIuLmYwYzhlNGU0NTRkM2UyZDM4NDE5
YjRiY2ZlOGE1NThkOTVmOThhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5jcHAKQEAgLTI5LDYgKzI5LDEwIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoV0VCR0wpCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAorI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgIklPU3VyZmFjZS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0
cnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaAppbmRleCBlOWVjYjg3Yzcw
YTU0MzAwODJmNzQ2ZDYyNmEwNTFlYmRjNjcyNTI1Li5kOWM3MzNiNmMzNGU2N2QzZDUzZDg5NmQx
ODNmMTZlZDI5NGM1MjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgK
QEAgLTQ1LDYgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiBjbGFzcyBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbjsKK2NsYXNzIElP
U3VyZmFjZTsKICNlbmRpZgogCiAvLyBBIGJhc2UgY2xhc3MgZm9yIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMIHByb3h5IHNpZGUgaW1wbGVtZW50YXRpb24KQEAgLTkxLDE1ICs5MiwxMyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdhaXRVbnRpbEluaXRpYWxpemVkKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBlbnN1cmVFeHRlbnNpb25FbmFibGVkKGNvbnN0IFN0cmluZyYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TWFya0NvbnRleHRDaGFuZ2VkKCkgPSAwOwotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluJiBw
bGF0Zm9ybVN3YXBDaGFpbigpOwotI2VuZGlmCiAKLXByaXZhdGU6Ci0gICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemUoKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8V2ViR0xM
YXllcj4gbV93ZWJHTExheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IG1fZGlz
cGxheUJ1ZmZlcjsKICNlbmRpZgorcHJpdmF0ZToKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZSgpOwogCiAgICAgLy8gR3VhcmRlZCBieSB3YWl0VW50aWxJbml0aWFsaXplZCgpLgogICAgIEhh
c2hTZXQ8U3RyaW5nPiBtX2F2YWlsYWJsZUV4dGVuc2lvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCBjY2JjNGRkMTMyZWI1NjM5YTJhZTRjNjdjZWQ5
MWFjZGE3YzIzYzFlLi5kYjBjOTAwMmNhOTBmZDk1OTlkMDRlYTAzNzY2NDMyMzdmM2MzNTU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTM2LDcgKzM2
LDYgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW1w
b3J0ICJXZWJHTExheWVyLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0
Lmg+CiAjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRh
bFNQSS5oPgpAQCAtMTkzLDI5ICsxOTIsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygp
CiB9CiAjZW5kaWYKIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywg
SG9zdFdpbmRvdyogaG9zdFdpbmRvdykKLXsKLSAgICAvLyBNYWtlIHNwYWNlIGZvciB0aGUgaW5j
b21pbmcgY29udGV4dCBpZiB3ZSdyZSBmdWxsLgotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKLSAg
ICBpZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaGFz
VG9vTWFueUNvbnRleHRzKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgUmVmUHRy
PEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKGF0dHJzLCBob3N0V2luZG93LCBudWxscHRyKSk7Ci0KLSAgICBpZiAo
IWNvbnRleHQtPm1fY29udGV4dE9iaikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRDb250ZXh0
KGNvbnRleHQuZ2V0KCkpOwotCi0gICAgcmV0dXJuIGNvbnRleHQ7Ci19Ci0KLVJlZjxHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZUZvckdQVVBy
b2Nlc3MoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRycywgR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4qIHN3YXBDaGFpbikKLXsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRycywgbnVsbHB0ciwgc3dhcENo
YWluKSk7Ci19Ci0KLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqLCBHcmFw
aGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiogc3dhcENoYWluKQorR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRycykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzKQogewogICAgIG1f
aXNGb3JXZWJHTDIgPSBhdHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJH
TFZlcnNpb246OldlYkdMMjsKQEAgLTM1MywxOCArMzMwLDYgQEAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyBhdHQKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKICAgICBhdHRycyA9IGNvbnRleHRBdHRy
aWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhhdmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAot
ICAgIGlmIChzd2FwQ2hhaW4pCi0gICAgICAgIG1fc3dhcENoYWluID0gc3dhcENoYWluOwotICAg
IGVsc2UgewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgICAgICBtX3dlYkdM
TGF5ZXIgPSBhZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5pdFdpdGhEZXZpY2VQaXhlbFJh
dGlvOmF0dHJzLmRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6IWF0dHJzLmFscGhhXSk7
Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBbbV93ZWJHTExheWVyIHNldE5hbWU6QCJXZWJHTCBM
YXllciJdOwotI2VuZGlmCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgICAgICBt
X3N3YXBDaGFpbiA9ICZbbV93ZWJHTExheWVyIHN3YXBDaGFpbl07Ci0gICAgfQotCiAgICAgLy8g
Q3JlYXRlIHRoZSB0ZXh0dXJlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgZnJhbWVidWZmZXIu
CiAgICAgR0xlbnVtIHRleHR1cmVUYXJnZXQgPSBkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgp
OwogCkBAIC00MzksMTQgKzQwNCwxMiBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6fkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKCkKICAgICB9CiAgICAgaWYgKG1fZGlzcGxheUJ1ZmZlclBidWZm
ZXIpCiAgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIG1fZGlzcGxheUJ1
ZmZlclBidWZmZXIpOwotICAgIGlmIChtX3N3YXBDaGFpbikgewotICAgICAgICBhdXRvIHJlY3lj
bGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4tPnJlY3ljbGVCdWZmZXIoKTsKLSAgICAgICAgaWYgKHJl
Y3ljbGVkQnVmZmVyLmhhbmRsZSkKLSAgICAgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rp
c3BsYXlPYmosIHJlY3ljbGVkQnVmZmVyLmhhbmRsZSk7Ci0gICAgICAgIGF1dG8gY29udGVudHNI
YW5kbGUgPSBtX3N3YXBDaGFpbi0+ZGV0YWNoQ2xpZW50KCk7Ci0gICAgICAgIGlmIChjb250ZW50
c0hhbmRsZSkKLSAgICAgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIGNv
bnRlbnRzSGFuZGxlKTsKLSAgICB9CisgICAgYXV0byByZWN5Y2xlZEJ1ZmZlciA9IG1fc3dhcENo
YWluLnJlY3ljbGVCdWZmZXIoKTsKKyAgICBpZiAocmVjeWNsZWRCdWZmZXIuaGFuZGxlKQorICAg
ICAgICBFR0xfRGVzdHJveVN1cmZhY2UobV9kaXNwbGF5T2JqLCByZWN5Y2xlZEJ1ZmZlci5oYW5k
bGUpOworICAgIGF1dG8gY29udGVudHNIYW5kbGUgPSBtX3N3YXBDaGFpbi5kZXRhY2hDbGllbnQo
KTsKKyAgICBpZiAoY29udGVudHNIYW5kbGUpCisgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZSht
X2Rpc3BsYXlPYmosIGNvbnRlbnRzSGFuZGxlKTsKICAgICBpZiAobV9jb250ZXh0T2JqKSB7CiAg
ICAgICAgIG1ha2VDdXJyZW50KG1fZGlzcGxheU9iaiwgRUdMX05PX0NPTlRFWFQpOwogICAgICAg
ICBFR0xfRGVzdHJveUNvbnRleHQobV9kaXNwbGF5T2JqLCBtX2NvbnRleHRPYmopOwpAQCAtNDU1
LDYgKzQxOCwxNiBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6fkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKCkKICAgICBMT0coV2ViR0wsICJEZXN0cm95ZWQgYSBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCAoJXApLiIsIHRoaXMpOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpp
c1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90ZXh0dXJlOworfQorCitQbGF0Zm9ybUxh
eWVyKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEdDR0xlbnVtIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpCiB7CiAjaWYgUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCkBAIC01NjcsMTIgKzU0MCwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpy
ZXNoYXBlRGlzcGxheUJ1ZmZlckJhY2tpbmcoKQogICAgICAgICBtX2Rpc3BsYXlCdWZmZXJQYnVm
ZmVyID0gRUdMX05PX1NVUkZBQ0U7CiAgICAgfQogICAgIC8vIFJlc2V0IHRoZSBmdXR1cmUgcmVj
eWNsZWQgYnVmZmVyIG5vdywgYmVjYXVzZSBpdCBtb3N0IGxpa2VseSB3aWxsIG5vdCBiZSByZXVz
YWJsZSBhdCB0aGUgdGltZSBpdCB3aWxsIGJlIHJldXNlZC4KLSAgICBpZiAobV9zd2FwQ2hhaW4p
IHsKLSAgICAgICAgYXV0byByZWN5Y2xlZEJ1ZmZlciA9IG1fc3dhcENoYWluLT5yZWN5Y2xlQnVm
ZmVyKCk7Ci0gICAgICAgIGlmIChyZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpCi0gICAgICAgICAgICBF
R0xfRGVzdHJveVN1cmZhY2UobV9kaXNwbGF5T2JqLCByZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpOwot
ICAgICAgICByZWN5Y2xlZEJ1ZmZlci5zdXJmYWNlLnJlc2V0KCk7Ci0gICAgfQorICAgIGF1dG8g
cmVjeWNsZWRCdWZmZXIgPSBtX3N3YXBDaGFpbi5yZWN5Y2xlQnVmZmVyKCk7CisgICAgaWYgKHJl
Y3ljbGVkQnVmZmVyLmhhbmRsZSkKKyAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxh
eU9iaiwgcmVjeWNsZWRCdWZmZXIuaGFuZGxlKTsKKyAgICByZWN5Y2xlZEJ1ZmZlci5zdXJmYWNl
LnJlc2V0KCk7CiAgICAgcmV0dXJuIGFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5n
KCk7CiB9CiAKQEAgLTcyNCwxMCArNjk1LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OnByZXBhcmVGb3JEaXNwbGF5KCkKICAgICAvLyBUaGUgSU9TdXJmYWNlIHdpbGwgYmUgdXNl
ZCBmcm9tIG90aGVyIGdyYXBoaWNzIHN1YnN5c3RlbSwgc28gZmx1c2ggR0wgY29tbWFuZHMuCiAg
ICAgZ2w6OkZsdXNoKCk7CiAKLSAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4t
PnJlY3ljbGVCdWZmZXIoKTsKKyAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4u
cmVjeWNsZUJ1ZmZlcigpOwogCiAgICAgRUdMX1JlbGVhc2VUZXhJbWFnZShtX2Rpc3BsYXlPYmos
IG1fZGlzcGxheUJ1ZmZlclBidWZmZXIsIEVHTF9CQUNLX0JVRkZFUik7Ci0gICAgbV9zd2FwQ2hh
aW4tPnByZXNlbnQoeyBXVEZNb3ZlKG1fZGlzcGxheUJ1ZmZlckJhY2tpbmcpLCBtX2Rpc3BsYXlC
dWZmZXJQYnVmZmVyIH0pOworICAgIG1fc3dhcENoYWluLnByZXNlbnQoeyBXVEZNb3ZlKG1fZGlz
cGxheUJ1ZmZlckJhY2tpbmcpLCBtX2Rpc3BsYXlCdWZmZXJQYnVmZmVyIH0pOwogICAgIG1fZGlz
cGxheUJ1ZmZlclBidWZmZXIgPSBFR0xfTk9fU1VSRkFDRTsKIAogICAgIGJvb2wgaGFzTmV3QmFj
a2luZyA9IGZhbHNlOwpAQCAtNzYzLDcgKzczNCw3IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1YqIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjphc0NWKCkKIAogc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZl
cj4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlYWRDb21wb3NpdGVkUmVzdWx0cygpCiB7Ci0g
ICAgYXV0byYgZGlzcGxheUJ1ZmZlciA9IG1fc3dhcENoYWluLT5kaXNwbGF5QnVmZmVyKCk7Cisg
ICAgYXV0byYgZGlzcGxheUJ1ZmZlciA9IG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKTsKICAg
ICBpZiAoIWRpc3BsYXlCdWZmZXIuc3VyZmFjZSB8fCAhZGlzcGxheUJ1ZmZlci5oYW5kbGUpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKGRpc3BsYXlCdWZmZXIuc3VyZmFj
ZS0+c2l6ZSgpICE9IGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCkpCkBAIC03OTUsMTIgKzc2
NiwxMiBAQCBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6cmVhZENvbXBvc2l0ZWRSZXN1bHRzKCkKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogUmVm
UHRyPE1lZGlhU2FtcGxlPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGFpbnRDb21wb3NpdGVk
UmVzdWx0c1RvTWVkaWFTYW1wbGUoKQogewotICAgIGF1dG8gJmRpc3BsYXlCdWZmZXIgPSBtX3N3
YXBDaGFpbi0+ZGlzcGxheUJ1ZmZlcigpOworICAgIGF1dG8gJmRpc3BsYXlCdWZmZXIgPSBtX3N3
YXBDaGFpbi5kaXNwbGF5QnVmZmVyKCk7CiAgICAgaWYgKCFkaXNwbGF5QnVmZmVyLnN1cmZhY2Ug
fHwgIWRpc3BsYXlCdWZmZXIuaGFuZGxlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBp
ZiAoZGlzcGxheUJ1ZmZlci5zdXJmYWNlLT5zaXplKCkgIT0gZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZl
clNpemUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgbV9zd2FwQ2hhaW4tPm1hcmtE
aXNwbGF5QnVmZmVySW5Vc2UoKTsKKyAgICBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1ZmZlcklu
VXNlKCk7CiAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoZGlzcGxh
eUJ1ZmZlci5zdXJmYWNlLT5zdXJmYWNlKCkpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlCYXNlQ29jb2EubW0KaW5kZXggMTkzNGVmNWVmMzM2OWEyMzY5OTZiMmU2ZGUw
ZDc2MzhiMTkxOWZhZC4uYjcyNThlODY0NWYxNDA0NjMyYmIwMjg0ZWQ4OWRmNzkwODNkZTEyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNv
Y29hLm1tCkBAIC00Myw5ICs0Myw5IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiAgICAgYXV0byBhdHRycyA9IGNvbnRleHRB
dHRyaWJ1dGVzKCk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgICAgIG1f
d2ViR0xMYXllciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBp
eGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1ZTohYXR0cnMuYWxw
aGFdKTsKKyAgICBtX3dlYkdMTGF5ZXIgPSBhZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5p
dFdpdGhEZXZpY2VQaXhlbFJhdGlvOmF0dHJzLmRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFx
dWU6IWF0dHJzLmFscGhhXSk7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBbbV93ZWJHTExheWVy
IHNldE5hbWU6QCJXZWJHTCBMYXllciJdOworICAgIFttX3dlYkdMTGF5ZXIgc2V0TmFtZTpAIldl
YkdMIExheWVyIl07CiAjZW5kaWYKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CkBA
IC02MywyMCArNjMsMTIgQEAgR3JhcGhpY3NDb250ZXh0R0xDViogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2U6OmFzQ1YoKQogfQogI2VuZGlmCiAKLUdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluJiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZv
cm1Td2FwQ2hhaW4oKQotewotICAgIHJldHVybiBbbV93ZWJHTExheWVyIHN3YXBDaGFpbl07Ci19
Ci0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogUmVmUHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFT
YW1wbGUoKQogewotICAgIGF1dG8mIHNjID0gcGxhdGZvcm1Td2FwQ2hhaW4oKTsKLSAgICBhdXRv
JiBkaXNwbGF5QnVmZmVyID0gc2MuZGlzcGxheUJ1ZmZlcigpOwotICAgIGlmICghZGlzcGxheUJ1
ZmZlci5zdXJmYWNlKQorICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICBzYy5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7Ci0gICAgYXV0byBwaXhl
bEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoZGlzcGxheUJ1ZmZlci5zdXJmYWNlLT5zdXJm
YWNlKCkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVhdGVDVlBpeGVsQnVmZmVyKG1fZGlz
cGxheUJ1ZmZlci0+c3VyZmFjZSgpKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFn
ZVNhbXBsZShXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksIE1lZGlhU2FtcGxlQVZGT2JqQzo6VmlkZW9S
b3RhdGlvbjo6VXBzaWRlRG93biwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKaW5kZXggMTQ0YzVhNDI0YTdhM2U0NjM0
Yjg2NGIzYmYyMDcwMTcyNjYyNDU1ZC4uM2MyMmY1ZDY0ZDg4Yzk3ZmJlNDhiMmZhZjRkNmNkNDVk
NTdiYjQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkdMTGF5ZXIuaApAQCAtMjMsMjEgKzIzLDE1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1w
b3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNpbXBvcnQgPG1lbW9yeT4KLSNpbXBvcnQg
PHd0Zi9OYWtlZFB0ci5oPgogCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
Ci0vLyBBIGxheWVyIGNsYXNzIGltcGxlbWVudGluZyBmcm9udCBidWZmZXIgbWFuYWdlbWVudCBv
ZiBhIDMtYnVmZmVyaW5nIHN3YXAKLS8vIGNoYWluIG9mIElPU3VyZmFjZXMuCisvLyBBIGxheWVy
IGNsYXNzIHNob3dpbmcgb25lIElPU3VyZmFjZS4KIEBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENB
TGF5ZXIKIAogLSAoaWQpaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOihmbG9hdClkZXZpY2VQaXhl
bFJhdGlvIGNvbnRlbnRzT3BhcXVlOihib29sKWNvbnRlbnRzT3BhcXVlOwogCi0tIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiYpIHN3YXBDaGFpbjsKLQogQGVu
ZAogCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IGE2ZTlj
ZmY1MDNhM2QyZmI2NjVjYjcwMDM0NTFhZjUxZGY0Njc4OTMuLmRlOTAzMTU1NjkxMTEzNmMzMWY1
ZDY4ZWUyNDNmNjdlZjY2ZGU4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQpAQCAtMzEsMjMgKzMxLDggQEAKICNpbXBv
cnQgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbXBvcnQgIkdyYXBoaWNzTGF5ZXJDQS5oIgogI2ltcG9y
dCAiUGxhdGZvcm1DQUxheWVyLmgiCi0jaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVT
UEkuaD4KIAotY2xhc3MgV2ViR0xMYXllclN3YXBDaGFpbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiB7Ci1wdWJsaWM6Ci0gICAgZXhw
bGljaXQgV2ViR0xMYXllclN3YXBDaGFpbihXZWJHTExheWVyKiBsYXllcikgIDogbV9sYXllcihs
YXllcikgeyB9OwotICAgIH5XZWJHTExheWVyU3dhcENoYWluKCkgb3ZlcnJpZGUgPSBkZWZhdWx0
OwotICAgIHZvaWQgcHJlc2VudChCdWZmZXImJikgb3ZlcnJpZGU7Ci0KLSAgICBXZWJDb3JlOjpJ
T1N1cmZhY2UqIGRpc3BsYXlTdXJmYWNlKCkgeyByZXR1cm4gbV9kaXNwbGF5QnVmZmVyLnN1cmZh
Y2UuZ2V0KCk7IH0KLXByaXZhdGU6Ci0gICAgV2ViR0xMYXllciogY29uc3QgbV9sYXllcjsKLX07
Ci0KLUBpbXBsZW1lbnRhdGlvbiBXZWJHTExheWVyIHsKLSAgICBCT09MIF9wcmVwYXJlZEZvckRp
c3BsYXk7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJHTExheWVyU3dhcENoYWluPiBfc3dhcENoYWlu
OwotfQorQGltcGxlbWVudGF0aW9uIFdlYkdMTGF5ZXIKIAogLSAoaWQpaW5pdFdpdGhEZXZpY2VQ
aXhlbFJhdGlvOihmbG9hdClkZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOihib29sKWNv
bnRlbnRzT3BhcXVlCiB7CkBAIC01NSw3ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgc2VsZi50cmFu
c2Zvcm0gPSBDQVRyYW5zZm9ybTNESWRlbnRpdHk7CiAgICAgc2VsZi5jb250ZW50c09wYXF1ZSA9
IGNvbnRlbnRzT3BhcXVlOwogICAgIHNlbGYuY29udGVudHNTY2FsZSA9IGRldmljZVBpeGVsUmF0
aW87Ci0gICAgX3N3YXBDaGFpbi5lbXBsYWNlKHNlbGYpOwogICAgIHJldHVybiBzZWxmOwogfQog
CkBAIC03NSwzNyArNTksMTUgQEAgcHJpdmF0ZToKICAgICBbc3VwZXIgc2V0QW5jaG9yUG9pbnQ6
Q0dQb2ludE1ha2UocC54LCAxLjAgLSBwLnkpXTsKIH0KIAotLSAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4mKSBzd2FwQ2hhaW4KLXsKLSAgICByZXR1cm4gX3N3
YXBDaGFpbi52YWx1ZSgpOwotfQotCi0tICh2b2lkKXByZXBhcmVGb3JEaXNwbGF5Ci17Ci0gICAg
W3NlbGYgc2V0TmVlZHNEaXNwbGF5XTsKLSAgICBfcHJlcGFyZWRGb3JEaXNwbGF5ID0gWUVTOwot
fQotCiAtICh2b2lkKWRpc3BsYXkKIHsKLSAgICBpZiAoX3N3YXBDaGFpbi0+ZGlzcGxheVN1cmZh
Y2UoKSAmJiBfcHJlcGFyZWRGb3JEaXNwbGF5KSB7Ci0gICAgICAgIHNlbGYuY29udGVudHMgPSBf
c3dhcENoYWluLT5kaXNwbGF5U3VyZmFjZSgpLT5hc0xheWVyQ29udGVudHMoKTsKLSAgICAgICAg
W3NlbGYgcmVsb2FkVmFsdWVGb3JLZXlQYXRoOkAiY29udGVudHMiXTsKLSAgICB9CisgICAgLy8g
U2hvdyB0aGUgc2VsZi5jb250ZW50cyBhcyB0aGUgY29udGVudHMgYnkgbm90IGRvaW5nIGFueXRo
aW5nIGluIHRoaXMgZnVuY3Rpb24uCiAgICAgYXV0byBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwog
ICAgIGlmIChsYXllciAmJiBsYXllci0+b3duZXIoKSkKICAgICAgICAgbGF5ZXItPm93bmVyKCkt
PnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllci5nZXQoKSk7CiAKLSAgICBfcHJl
cGFyZWRGb3JEaXNwbGF5ID0gTk87CiB9CiAKIEBlbmQKIAotdm9pZCBXZWJHTExheWVyU3dhcENo
YWluOjpwcmVzZW50KEJ1ZmZlciYmIGJ1ZmZlcikKLXsKLSAgICBBU1NFUlQoIW1fc3BhcmVCdWZm
ZXIuc3VyZmFjZSk7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW46OnBy
ZXNlbnQoV1RGTW92ZShidWZmZXIpKTsKLSAgICBbbV9sYXllciBwcmVwYXJlRm9yRGlzcGxheV07
Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NjI1ZWRi
ZmUyNTRlMzc1ZmVmMTY5ODE2OWY1MmVmZDRhYTc3MjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMCwwICsxLDk4IEBACisKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKFdFQkdMKQorI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCIgLy8g
Tk9MSU5UCisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKKyNpbXBv
cnQgIldlYkdMTGF5ZXIuaCIKKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSB7CisKK3N0YXRpYyBSZXRhaW5QdHI8V2Vi
R0xMYXllcj4gY3JlYXRlV2ViR0xMYXllcihjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmIGF0dHJpYnV0ZXMpCit7CisgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IGxheWVyOworICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIGxheWVyID0gYWRvcHROUyhbW1dlYkdM
TGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRyaWJ1dGVzLmRldmljZVBp
eGVsUmF0aW8gY29udGVudHNPcGFxdWU6IWF0dHJpYnV0ZXMuYWxwaGFdKTsKKyNpZm5kZWYgTkRF
QlVHCisgICAgW2xheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOworI2VuZGlmCisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIHJldHVybiBsYXllcjsKK30KKworLy8gR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgdHlwZSB0aGF0IGlzIHVzZWQgd2hlbiBXZWJHTCBpcyBydW4gaW4t
cHJvY2VzcyBpbiBXZWJDb250ZW50IHByb2Nlc3MuCitjbGFzcyBXZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgewor
cHVibGljOgorICAgIH5XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woKSA9IGRlZmF1
bHQ7CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmlzVmFsaWQoKSAmJiBtX3dlYkdMTGF5ZXI7IH0KKyAgICAvLyBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCBvdmVycmlkZXMuCisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1fd2ViR0xM
YXllci5nZXQoKSk7IH0KKyAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7Citwcml2
YXRlOgorICAgIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChhdHRyaWJ1dGVzKQorICAgICAgICAsIG1fd2ViR0xMYXllcihjcmVhdGVXZWJHTExheWVy
KGF0dHJpYnV0ZXMpKQorICAgIHsKKyAgICB9CisgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1f
d2ViR0xMYXllcjsKKworICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsK
K307CisKK3ZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwcmVwYXJlRm9y
RGlzcGxheSgpCit7CisgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnByZXBhcmVGb3JEaXNw
bGF5KCk7CisgICAgYXV0byBzdXJmYWNlID0gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpLnN1
cmZhY2UuZ2V0KCk7CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm47CisgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgW21fd2ViR0xMYXllciBzZXRDb250ZW50czpz
dXJmYWNlLT5hc0xheWVyQ29udGVudHMoKV07CisgICAgW21fd2ViR0xMYXllciBzZXROZWVkc0Rp
c3BsYXldOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKK30KKworfQorCitSZWZQdHI8
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUo
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqKQorewor
ICAgIC8vIE1ha2Ugc3BhY2UgZm9yIHRoZSBpbmNvbWluZyBjb250ZXh0IGlmIHdlJ3JlIGZ1bGwu
CisgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVj
eWNsZUNvbnRleHRJZk5lY2Vzc2FyeSgpOworICAgIGlmIChHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5oYXNUb29NYW55Q29udGV4dHMoKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IFdlYlByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgaWYg
KCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZENvbnRleHQoY29u
dGV4dC5nZXQoKSk7CisKKyAgICByZXR1cm4gY29udGV4dDsKK30KK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCBkNDI4MWFhNzA2ZjI2ZjY1Y2Rm
ZjFkNzUyMmJmMGJlNWViOTIxZGFhLi4zZGQ3ODgwMGQxYjU3NWFhMTUzYmI5YjNkYzUzZGRiZDBm
MDU4NTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTQ3LDYg
KzQ3LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmICFQTEFURk9STShDT0NPQSkK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJl
dHVybiB0cnVlOworfQorI2VuZGlmCisKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJl
c2V0QnVmZmVyc1RvQXV0b0NsZWFyKCkKIHsKICAgICBHQ0dMdWludCBidWZmZXJzID0gR3JhcGhp
Y3NDb250ZXh0R0w6OkNPTE9SX0JVRkZFUl9CSVQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5oCmluZGV4IDIyNzdiMTdjYzcwOTg4ODc2ODI2YzA4NjJmN2E3MTgzOTc0MjVkZmEuLjk5
NGVmMTUyMTMwNTVmMDk3YTA4ZmM5MjBiZTVlMmY2OTEzMDdlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTC5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1
ZVJlZi5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNlbmRpZgog
CkBAIC02Nyw3ICs2OCw2IEBACiBPQkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NMQVNTIFdlYkdM
TGF5ZXI7CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRTsKIH0KICNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKQEAgLTk3LDIyICs5NywxOCBAQCBjbGFzcyBUZXh0dXJlTWFw
cGVyR0NHTFBsYXRmb3JtTGF5ZXI7CiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcsIHVp
bnQ2NF90PiBTaGFkZXJOYW1lSGFzaDsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0wKK2NsYXNzIFdF
QkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIDogcHVibGljIEdyYXBoaWNzQ29u
dGV4dEdMCiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyopOwog
ICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCk7Ci0KICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBzdGF0aWMgUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGVGb3JH
UFVQcm9jZXNzKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYsIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKik7Ci0KLSAgICBDQUxheWVyKiBwbGF0Zm9ybUxheWVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVyKj4obV93ZWJH
TExheWVyLmdldCgpKTsgfQorICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25z
dCBvdmVycmlkZTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBwbGF0Zm9y
bURpc3BsYXkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlPYmo7IH0KICAgICBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3QgeyByZXR1cm4gbV9j
b25maWdPYmo7IH0KICAgICBzdGF0aWMgR0NHTGVudW0gZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJn
ZXRRdWVyeSgpOwogICAgIHN0YXRpYyBHQ0dMaW50IEVHTERyYXdpbmdCdWZmZXJUZXh0dXJlVGFy
Z2V0KCk7CiAjZWxzZQotICAgIHN0YXRpYyBSZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNy
ZWF0ZUZvckdQVVByb2Nlc3MoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJik7CiAg
ICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAj
aWYgVVNFKEFOR0xFKQpAQCAtNTE4LDcgKzUxNCw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVk
IHRleHR1cmVTZWVkKEdDR0x1aW50IHRleHR1cmUpIHsgcmV0dXJuIG1fc3RhdGUudGV4dHVyZVNl
ZWRDb3VudC5jb3VudCh0ZXh0dXJlKTsgfQogCi0gICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgp
IGZpbmFsOworICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBvdmVycmlkZTsKIAogI2lmIEVO
QUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBHcmFwaGljc0NvbnRleHRHTENW
KiBhc0NWKCkgZmluYWw7CkBAIC01MzgsMTMgKzUzNCwxMyBAQCBwdWJsaWM6CiAjZW5kaWYKICNl
bmRpZgogCi1wcml2YXRlOgorcHJvdGVjdGVkOgorICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4qID0gbnVsbHB0cik7Ci0jZWxzZQotICAgIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyopOworICAgIEdy
YXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwogI2VuZGlmCi0K
K3ByaXZhdGU6CiAgICAgLy8gQ2FsbGVkIG9uY2UgYnkgYWxsIHRoZSBwdWJsaWMgZW50cnkgcG9p
bnRzIHRoYXQgZXZlbnR1YWxseSBjYWxsIE9wZW5HTC4KICAgICAvLyBDYWxsZWQgb25jZSBieSBh
bGwgdGhlIHB1YmxpYyBlbnRyeSBwb2ludHMgb2YgRXh0ZW5zaW9uc0dMIHRoYXQgZXZlbnR1YWxs
eSBjYWxsIE9wZW5HTC4KICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpIFdBUk5fVU5VU0VE
X1JFVFVSTjsKQEAgLTU4Niw5ICs1ODIsNyBAQCBwcml2YXRlOgogCiAKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiogbV9zd2FwQ2hh
aW4geyBudWxscHRyIH07CiAgICAgLy8gVE9ETzogdGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvbmNl
IHRoZSBjb250ZXh0IGRyYXdzIHRvIGEgaW1hZ2UgYnVmZmVyLiBTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODE3OSAuCi0gICAgUmV0YWluUHRyPFdlYkdMTGF5
ZXI+IG1fd2ViR0xMYXllcjsKICAgICBFR0xEaXNwbGF5IG1fZGlzcGxheU9iaiB7IG51bGxwdHIg
fTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIG1fY29udGV4dE9iaiB7IG51bGxwdHIg
fTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIG1fY29uZmlnT2JqIHsgbnVs
bHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNw
cAppbmRleCA4ZDNkNjVjMTdmOWQzNGUxNTZiNTBhMThlODQ1NThjYTExYTUyYmM1Li45NDRmZDdl
ZjdiNWQzNDlhMGIyZTY1M2Q3ODcyMTFhMzJhZmNhYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFw
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtNjYsNyArNjYsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0
cmlidXRlcywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRH
TE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyopCiB7CiAgICAgc3RhdGljIGJvb2wg
aW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBzdGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKQEAg
LTg1LDcgKzg1LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAvLyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIG9iamVj
dCBmaXJzdCBpbiBvcmRlciB0byBlc3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24gdGhpcyB0
aHJlYWQuCi0gICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3cpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykpOwogCiAjaWYgVVNF
KExJQkVQT1hZKSAmJiBVU0UoT1BFTkdMX0VTKSAmJiBFTkFCTEUoV0VCR0wyKQogICAgIC8vIEJh
aWwgaWYgR0xFUzMgd2FzIHJlcXVlc3RlZCBidXQgY2Fubm90IGJlIHByb3ZpZGVkLgpAQCAtOTgs
MTMgKzk4LDggQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICByZXR1cm4gY29udGV4dDsK
IH0KIAotUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlRm9yR1BVUHJvY2Vzcyhjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMm
IGF0dHJpYnV0ZXMpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woYXR0cmlidXRlcywgbnVsbHB0cikpOwotfQotCiAjaWYgVVNFKEFOR0xFKQotR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KikKK0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMgYXR0cmlidXRlcykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMpCiB7
CiAjaWYgRU5BQkxFKFdFQkdMMikKQEAgLTE3Myw3ICsxNjgsNyBAQCBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzIGF0dAogICAgIGdsOjpDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQogI2Vsc2UKLUdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyopCitHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRyaWJ1dGVzKQogewog
I2lmIFVTRShOSUNPU0lBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFlZWUxOGQ2MmYwNTA5ZjAwOWYzNGMzZWRlNjhkMzVlMGQwODk2NTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpCisjaW5jbHVkZSA8V2Vi
Q29yZS9FeHRlbnNpb25zR0wuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMLmg+CisKK2NsYXNzIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0
ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICB7
CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR1BVUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpKTsKKyAgICAgICAgaWYgKCFjb250
ZXh0LT5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIGNvbnRleHQ7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6
SU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyKCkgeyByZXR1cm4gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1
ZmZlcigpLnN1cmZhY2UuZ2V0KCk7IH0KKyAgICB2b2lkIG1hcmtEaXNwbGF5QnVmZmVySW5Vc2Uo
KSB7IHJldHVybiBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7IH0KKyNlbmRp
ZgorcHJpdmF0ZToKKyAgICBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgICAgIDogR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykKKyAgICB7CisgICAgfQorfTsKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDI1NjAzOTdhNTM3MjcxMjA0NjkwODI3Yjk3
MDE1ZThiNzNiZWU3OWMuLmVmNDFlYTYwODJiYWIzZjNjMjhmYjMyMTdmYTE4NjQ5MjgzYjZkY2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCkBAIC0yOSwyMiArMjksMTcgQEAKIAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSAiR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0R0xJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIgog
I2luY2x1ZGUgIlNjb3BlZFdlYkdMUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdC5oIgogI2luY2x1
ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnNHTC5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oPgotI2VuZGlmCi0KICNpZiBQ
TEFURk9STShNQUMpCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRGlzcGxheUNvbmZpZ3VyYXRp
b24uaD4KICNlbmRpZgpAQCAtMTE0LDcgKzEwOSw3IEBAIHByaXZhdGU6CiBwcm90ZWN0ZWQ6CiAg
ICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M7CiAgICAgUmVmUHRyPElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbj4gbV9zdHJl
YW1Db25uZWN0aW9uOwotICAgIFJlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TD4gbV9jb250ZXh0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJlYWQpOworICAgIFJl
ZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IG1fY29udGV4dCBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fc3RyZWFtVGhyZWFkKTsKICAgICBHcmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIgbV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXI7CiAgICAgUmVmPFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsKICAgICBTY29wZWRXZWJHTFJlbmRlcmlu
Z1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCmluZGV4IDk3MGQ4YzJlNzkwOWU4ZjcxZmFkMGM5YmQy
YzY0MzFmY2Q5NWFkMzIuLmI0MzdhNWJlZWNkNWQ2YWM1ODNjYTU5N2E5NWUyNzcxMmZhZGQ2MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKQEAgLTczLDIwICs3MywyMiBA
QCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJl
YW1UaHJlYWQpOwotICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVh
dGVGb3JHUFVQcm9jZXNzKFdURk1vdmUoYXR0cmlidXRlcyksICZtX3N3YXBDaGFpbik7CisgICAg
bV9jb250ZXh0ID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RG
TW92ZShhdHRyaWJ1dGVzKSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5k
UmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1f
c3RyZWFtVGhyZWFkKTsKICAgICBtX2NvbnRleHQtPnByZXBhcmVGb3JEaXNwbGF5KCk7CisgICAg
SU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyID0gbV9jb250ZXh0LT5kaXNwbGF5QnVmZmVyKCk7CiAg
ICAgTWFjaFNlbmRSaWdodCBzZW5kUmlnaHQ7Ci0gICAgaWYgKGF1dG8qIHN1cmZhY2UgPSBtX3N3
YXBDaGFpbi5kaXNwbGF5QnVmZmVyKCkuc3VyZmFjZS5nZXQoKSkgeworICAgIGlmIChkaXNwbGF5
QnVmZmVyKSB7CisgICAgICAgIG1fY29udGV4dC0+bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwog
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCiAgICAgICAgIC8vIE1h
cmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRo
b3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0g
a25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAgICBzdXJmYWNlLT5zZXRPd25lcnNo
aXBJZGVudGl0eShtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICAgICAgZGlzcGxheUJ1
ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7CiAj
ZW5kaWYKLSAgICAgICAgc2VuZFJpZ2h0ID0gc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7Cisg
ICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNyZWF0ZVNlbmRSaWdodCgpOwogICAg
IH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlbmRSaWdodCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFdpbi5jcHAKaW5kZXggMWNhZmIzMzliZTNhYWZiM2Q4OGM1YjM1Yjcw
YzhlMGI0Y2VlZDhjNi4uNzBmMGM0NjQwMzJiOTMzYzhmNDU5MTljODY4YWM2NzZkYzE3MWQ2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW4uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMV2luOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbihHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzCiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW46OnBs
YXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJiBhdHRyaWJ1dGVzKQogewotICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpjcmVhdGVGb3JHUFVQcm9jZXNzKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1f
Y29udGV4dCA9IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1v
dmUoYXR0cmlidXRlcykpOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwcmVw
YXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMWVlYTRiMGI0MTJiZTFmZDBmMmM5M2RmNzFi
YTc2NDY4YTFiZDJlZi4uZjNiOTc3ZDNkZDdkZjk0NTY2NDIzYzA2NDczNTE2MmExYzU0NjRmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjIzLDYgKzYyMyw3IEBAIFdlYlByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQog
CiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCitXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNhZTIxNDdiNDA3ZGZkZmU2ZjJi
ZTA1MWUwNmUyZTFhMzI5YTU2MDQuLjJkZWI2NmU0MzY0ZDA1NzdiYTUzNWE4ZGU4YzcxZmI5NDUz
MmE5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDgwNSw2ICs0ODA1LDggQEAKIAkJN0FGQkQzNjIyMUU1MEYzOTAwNURCQUNCIC8q
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDsgcGF0aCA9IENsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdBRkJEMzZEMjFFNTQ2RTMwMDVEQkFDQiAvKiBQZXJzaXN0ZW5jeVV0aWxz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0FGQkQzNkUyMUU1NDZFMzAwNURCQUNCIC8qIFBlcnNpc3RlbmN5VXRpbHMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVyc2lzdGVuY3lVdGlscy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTdCMTYxOTEyMjcxOThBQTkwMEM0MEVBQyAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTdCMTYxOTEzMjcxOUFFNzYwMEM0MEVBQyAvKiBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMURCMjY1MjU2NjhDRTAwMDBFMjZCQyAvKiBBcnJh
eVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJheVJlZmVy
ZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjQ4M0YxQjI1Q0REQTlCMDAx
MjA0ODYgLyogTWVzc2FnZVJlY2VpdmVRdWV1ZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCNDgzRjFDMjVDRERBOUIwMDEyMDQ4NiAvKiBNZXNzYWdlUmVjZWl2ZVF1ZXVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlUXVldWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxOTEsNiArOTE5Myw3IEBACiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQlGNDA5NENCQzI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RS
ZWFkZXJIYW5kbGUuY3BwICovLAogCQkJCUY0MDk0Q0JCMjU1MzA0QUYwMDNENzNFMyAvKiBEaXNw
bGF5TGlzdFJlYWRlckhhbmRsZS5oICovLAorCQkJCTdCMTYxOTEzMjcxOUFFNzYwMEM0MEVBQyAv
KiBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaCAqLywKIAkJCQk1NUFEMDk0MzI0MDhBMEU2
MDBERTREMkYgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oICovLAogCQkJCTFDQzU0QUZE
MjcwRjk2NTQwMDVCRjhCRSAvKiBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIu
aCAqLywKIAkJCQkxQ0JGOTAxMjI3MTAxOEI1MDAwQzQ1N0QgLyogUXVhbGlmaWVkUmVzb3VyY2VI
ZWFwLmggKi8sCkBAIC05NjYzLDYgKzk2NjYsNyBAQAogCQkJCTJEMjVGMzI4MjU3NThFOTAwMDIz
MUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLywKIAkJCQk3
MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1
cmZhY2VCYWNrZW5kLmNwcCAqLywKIAkJCQk3MjdBN0YzNTI0MDc4NTdGMDA0RDI5MzEgLyogSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggKi8sCisJCQkJN0IxNjE5
MTIyNzE5OEFBOTAwQzQwRUFDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5t
bSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKaW5kZXggYzBiYWMz
OGVlYzJlYjY0MDI2ODZjMzNkYzNkNDNjZDRiNmQ4ZGY2Zi4uMzFkNzlmOWYxZDMwYzliNTIxNmJm
NTY1NThiMWE2NDI5NTg4MDNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHkuY3BwCkBAIC02Nyw5ICs2Nyw2IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mCiBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojp+UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSgp
CiB7CiAgICAgZGlzY29ubmVjdEdwdVByb2Nlc3NJZk5lZWRlZCgpOwotI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHBsYXRmb3JtU3dhcENoYWluKCkucmVjeWNsZUJ1ZmZlcigpOwotI2VuZGlmCiB9
CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cmVzaGFwZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpCkBAIC04MywzMiArODAsMTkgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5OjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICAgICAgbWFya0Nv
bnRleHRMb3N0KCk7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KCkKIHsKICAgICBpZiAoaXNDb250
ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgTWFj
aFNlbmRSaWdodCBkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0OwotICAgIGF1dG8gc2VuZFJlc3VsdCA9
IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFyZUZvckRp
c3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlz
cGxheTo6UmVwbHkoZGlzcGxheUJ1ZmZlclNlbmRSaWdodCkpOwotICAgIGlmICghc2VuZFJlc3Vs
dCkgewotICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBhdXRvIGRpc3BsYXlCdWZmZXIgPSBJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQo
V1RGTW92ZShkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0KSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlOjpTUkdCKCkpOwotICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7Ci0gICAgICAgIGF1dG8m
IHNjID0gcGxhdGZvcm1Td2FwQ2hhaW4oKTsKLSAgICAgICAgc2MucmVjeWNsZUJ1ZmZlcigpOwot
ICAgICAgICBzYy5wcmVzZW50KHsgV1RGTW92ZShkaXNwbGF5QnVmZmVyKSwgbnVsbHB0ciB9KTsK
LSAgICB9Ci0jZWxzZQogICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheTo6UmVwbHkoKSk7CiAgICAg
aWYgKCFzZW5kUmVzdWx0KSB7CiAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotI2VuZGlmCiAgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOwogfQorI2Vu
ZGlmCiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6ZW5zdXJlRXh0ZW5zaW9u
RW5hYmxlZChjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Uw
ZDIwM2EyNTg3YjQzNWY2YmE5ZDEzNWIzOWM1MzI3NTVlMzc5YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUNvY29hLm1tCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKQorI2ltcG9ydCAi
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9JT1N1
cmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3ZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkoKQoreworICAgIGlmIChpc0NvbnRl
eHRMb3N0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBNYWNoU2VuZFJpZ2h0IGRpc3BsYXlCdWZm
ZXJTZW5kUmlnaHQ7CisgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5bmMoTWVzc2FnZXM6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheSgpLCBNZXNzYWdlczo6UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0w6OlByZXBhcmVGb3JEaXNwbGF5OjpSZXBseShkaXNwbGF5QnVm
ZmVyU2VuZFJpZ2h0KSk7CisgICAgaWYgKCFzZW5kUmVzdWx0KSB7CisgICAgICAgIG1hcmtDb250
ZXh0TG9zdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghZGlzcGxheUJ1ZmZl
clNlbmRSaWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gZGlzcGxheUJ1ZmZlciA9IFdl
YkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVNlbmRSaWdodChXVEZNb3ZlKGRpc3BsYXlCdWZm
ZXJTZW5kUmlnaHQpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7Cisg
ICAgaWYgKCFkaXNwbGF5QnVmZmVyKSB7CisgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIG1fZGlzcGxheUJ1ZmZlciA9IFdURk1vdmUoZGlzcGxh
eUJ1ZmZlcik7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgW21fd2ViR0xM
YXllciBzZXRDb250ZW50czptX2Rpc3BsYXlCdWZmZXItPmFzTGF5ZXJDb250ZW50cygpXTsKKyAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCmluZGV4IGQx
NjIzNDQ0MjMxZTZiZDQ0OWU1M2FlNDFhZTU2OWY3MTRiYTA3NjUuLmJjOGVhYjk4NzliZTgwZDg1
MWIwMDFjMjAwYzBmMTg1N2E2YzdhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250
ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIu
bW0KQEAgLTYzLDYgKzYzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTElucHV0RWxlbWVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1dl
YWtPYmpDUHRyLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KIAogQGludGVy
ZmFjZSBOU09iamVjdCAoV0tEZXByZWNhdGVkRGVsZWdhdGVNZXRob2RzKQogLSAodm9pZCl3ZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb25Gb3JGcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKilmcmFtZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29y
ZEZpZWxkLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
blBhc3N3b3JkRmllbGQubW0KaW5kZXggZGU3MzcxYmU5ZmNkODJiMTAwZDI2ZjE5MWRlMmIzNGU4
NmFmZTEzNi4uZjYyZGM3YzgzN2YwMmY3MDEwYzgyZDk3OTBlMmJhYWYyMTRlMWQyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblBhc3N3
b3JkRmllbGQubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpblBhc3N3b3JkRmllbGQubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIlBERkxh
eWVyQ29udHJvbGxlclNQSS5oIgogI2ltcG9ydCAiUERGUGx1Z2luLmgiCiAjaW1wb3J0IDxRdWFy
dHovUXVhcnR6Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0FkZEV2ZW50TGlzdGVuZXJPcHRpb25zLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50TmFtZXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTEVsZW1lbnQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVNb2RlbEhvc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxIb3N0aW5nLm1tCmluZGV4
IDhjMTA2MjIwNWM3N2FmZmQ3YmFkMTdjZjk3MjZmYzgwMjA3NjZjMmEuLmNhM2RhNjliNDMwOTQz
ZGY2NjZlN2U4NDA4NDBkNTdmNmJjNzI4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2Rl
bEhvc3RpbmcubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGluZy5tbQpAQCAtNjYsOSAr
NjYsOSBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGluZzo6cG9wdWxhdGVD
cmVhdGlvblByb3BlcnRpZXMoUmVtb3RlTGF5ZXJUcgogICAgIHByb3BlcnRpZXMubW9kZWwgPSBt
X21vZGVsLnB0cigpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGlu
Zzo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBPcHRpb25TZXQ8UGxh
dGZvcm1MYXllclRyZWVBc1RleHRGbGFncz4gZmxhZ3MpCit2b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZU1vZGVsSG9zdGluZzo6ZHVtcEFkZGl0aW9uYWxQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRz
LCBPcHRpb25TZXQ8V2ViQ29yZTo6UGxhdGZvcm1MYXllclRyZWVBc1RleHRGbGFncz4gZmxhZ3Mp
CiB7Ci0gICAgaWYgKGZsYWdzLmNvbnRhaW5zKFBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0RmxhZ3M6
OkluY2x1ZGVNb2RlbHMpKQorICAgIGlmIChmbGFncy5jb250YWlucyhXZWJDb3JlOjpQbGF0Zm9y
bUxheWVyVHJlZUFzVGV4dEZsYWdzOjpJbmNsdWRlTW9kZWxzKSkKICAgICAgICAgdHMgPDwgaW5k
ZW50IDw8ICIobW9kZWwgZGF0YSBzaXplICIgPDwgbV9tb2RlbC0+ZGF0YSgpLT5zaXplKCkgPDwg
IilcbiI7CiB9CiAK
</data>
<flag name="commit-queue"
          id="465818"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441531</attachid>
            <date>2021-10-17 04:01:28 -0700</date>
            <delta_ts>2021-10-18 00:44:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231804-20211017140126.patch</filename>
            <type>text/plain</type>
            <size>52085</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJkZjgzNTNhN2ZiYzJi
MGU5ZDU4MWZlNTBhMTM4Nzk2MTcxYTVmNi4uY2ZmYzUxMzBhNjgxMmE1NDcxZjQxNzVhZTRjNTc2
MGYyOGM0Zjk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTEwLTE1ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29jb2EgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgc2hvdWxkIG5vdCB1c2UgV2ViR0xMYXllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIE1vdmUgdGhlICJzd2FwIGNoYWluIiwg
ZS5nLiB0aGUgZGlzcGxheSBidWZmZXIgSU9TdXJmYWNlCisgICAgICAgIGZyb20gV2ViR0xMYXll
ciB0byBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC4KKyAgICAgICAgSW5zdGFudGlhdGUgV2ViR0xM
YXllciBvbmx5IGluIG5ldyBjbGFzcyBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0ws
CisgICAgICAgIHdoaWNoIGlzIHVzZWQgd2hlbiBXZWJHTCBpcyBydW4gaW4tcHJvY2VzcyBpbiBX
ZWJDb250ZW50IHByb2Nlc3MuCisgICAgICAgIFNpbXBseSBzZXQgdGhlIENBTGF5ZXIuY29udGVu
dHMgd2hlbiBuZXcgZGlzcGxheSBidWZmZXIgaXMgcmVhZHkgYW5kCisgICAgICAgIGNhbGwgInNl
dE5lZWRzRGlzcGxheSIgZGlyZWN0bHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFj
dG9yLgorCisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OnJlYWRDb21wb3NpdGVkUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJv
Y2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZvciBHUFVQ
cm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisgICAgICAgIGluIFdlYktpdCBD
aGFuZ2VMb2cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3Np
dGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtU3dhcENoYWluKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBpbml0V2l0aERldmljZVBpeGVsUmF0aW86Y29udGVudHNPcGFxdWU6XSk6CisgICAgICAgICgt
W1dlYkdMTGF5ZXIgZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJHTExheWVyIHN3YXBDaGFpbl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXZWJHTExheWVyIHByZXBhcmVGb3JEaXNwbGF5XSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJHTExheWVyU3dhcENoYWluOjpwcmVzZW50KTogRGVsZXRlZC4K
KyAgICAgICAgQ0FMYXllci5jb250ZW50cyBhbmQgc2V0TmVlZHNEaXNwbGF5IGlzIGNhbGxlZCBk
aXJlY3RseSB3aGVuCisgICAgICAgIGEgZ3JhcGhpY3MgY29udGV4dCBoYXMgbmV3IGRpc3BsYXkg
YnVmZmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgQWRk
IGEgbmV3IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZSBjb25zdHJ1Y3RvciBleGl0ZWQgZWFy
bHkuCisgICAgICAgIEJlZm9yZSwgbV9jb250ZXh0T2JqIHdvdWxkIGJlIGNvbnN1bHRlZCBidXQg
dGhpcyBpcyBub3QgcHJvdGVjdGVkCisgICAgICAgIHNvIGl0J3Mgbm90IHNvIHVzZWZ1bC4gQWxz
byBpdCB3YXNuJ3QgdmVyeSBhY2N1cmF0ZSwgYXMgc29tZSBjb25zdHJ1Y3RvcgorICAgICAgICBl
YXJseSBleGlzdHMgcmFuIGFmdGVyIG1fY29udGV4dE9iaiB3YXMgc2V0LiBVc2UgbV90ZXh0dXJl
IHRvIGRldGVjdAorICAgICAgICBmdWxseSBjb25zdHJ1Y3RlZCBvYmplY3QgZm9yIG5vdy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlRm9yR1BVUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMIGZvciBHUFVQcm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisg
ICAgICAgIGluIFdlYktpdCBDaGFuZ2VMb2cuIFJlbW92ZSB0aGUgSG9zdFdpbmRvdyBhcmd1bWVu
dHMgZm9yCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLCBpdCdzIG5vdCB1c2VkLgor
CiAyMDIxLTEwLTE1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2ZXJ0IHIyODQyMzAsIG15IGxhc3QgZml4ZXMgdG8gdGhlIHdhdGNoIGJ1aWxkIG1h
a2UgaXQgYnJlYWsgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTk3YmNjMTFmYmU0MTdkNWMxODJhOGZhNzc0
MWJjYjJkNDIyMGE4NC4uZWI3NzAwZjBlYzVkN2MxYTllMWM0ZjRmOWI5N2Q1MDhkZjk3NmFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMS0xMC0xNSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIENvY29hIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIHNob3VsZCBub3QgdXNlIFdlYkdMTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwNAorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4g
SmFja3Nvbi4KKworICAgICAgICBJbXBsZW1lbnQgY2hhbmdlcyBzbyB0aGF0IEdQVSBwcm9jZXNz
IHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wsCisgICAgICAgIHRoZSBuZXcgY2xhc3MgR1BV
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLCBkb2VzIG5vdCB1c2UKKyAgICAgICAgV2ViR0xMYXll
ci4gSW5zdGVhZCwgdGhlIHN3YXAgY2hhaW4gaXMgaW4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgYW5kIHRoZSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wgZXhwb3NlcyBhIGZ1
bmN0aW9uIHRvIGV4dHJhY3QKKyAgICAgICAgdGhlIGRpc3BsYXkgYnVmZmVyIG91dCB0byBiZSBz
ZW50IHRvIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSBz
aW1wbGVyIGNsYXNzIGZvciBHUFVQcm9jZXNzIHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgaW5zdGFuY2UsIG9uZSB0aGF0IGNhbiBnZXQgdGhlIGRpc3BsYXkgYnVmZmVyIGZy
b20gdGhlIGluc3RhbmNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW46OnBs
YXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6flJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIE1vdmUgQ29jb2EgaW1w
bGVtZW5hdGlvbiB0byBhbiBPYmplY3RpdmUtQysrIGZpbGUuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eu
bW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIFNldCB0aGUgZGlzcGxheSBidWZmZXIgY29u
dGVudHMgZGlyZWN0bHkgdG8gdGhlIFdlYkdMTGF5ZXIgYWZ0ZXIKKyAgICAgICAgcHJlcGFyZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxI
b3N0aW5nLm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhv
c3Rpbmc6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyk6CisgICAgICAgIFVuaWZpZWQgYnVpbGQg
Zml4ZXMuCisKIDIwMjEtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBZGQgQWRBdHRyaWJ1dGlvbkRhZW1vbiBwbGlzdCBvbiBpT1MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYmNmY2ViNzkzMTNlYzA1YzM1NGM1ZmVmZTM0
YWI1MTBhYjMzZTcxNy4uNjEzZTFiOGRiYzNkYTcwZjY4ZWZjMTZmMWIwZmFkMTY3NGM3OTkxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTMzMiw2ICszMzIsNyBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24ubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29j
b2EubW0KKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9u
dENhc2NhZGVDb3JlVGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250
Q29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBhYmQwNGEyYTA0ZGE2ZDIy
ZDBkMjY4MzRhNTliMjk1ZGMzMGIxZmZhLi41YzJjNGE3ZmFjMTRhNWE0ZDc0MzM1ODAzYzc5OTRi
N2QyMjFhOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM4OCw2ICszODgsNyBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9j
b3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTEyMzZlZmViNzMwOGQ1Mzkw
ZTVmOGNlMGQyNzY5NGRhNDEyZDE5ZS4uYjlhZWYxOTE1NDIyODE4MDRmOWJlYzM2NmE0ZDllMGJl
YTM4YWNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTA3MjIsNiArMTA3MjIsNyBAQAogCQk3QjEwMzM5QTI1NDk3MjAwMDBD
OEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0Nv
bnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1YuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFDIC8qIFdlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCNjRDMEI0MjU0QzNCMTYwMDA2QjRBRiAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdM
SU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzYxMCw2ICsyNzYxMSw3IEBACiAJCQkJNDlGRkJGM0UxMUM5M0VF
MzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8sCiAJCQkJMDdGNUNGRjQyNTgyQTRGODAwNjYy
RUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLmggKi8sCiAJCQkJMDdGNUNGRjIyNTgyQTRG
ODAwNjYyRUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLm1tICovLAorCQkJCTdCMTYxOTEw
MjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwCmluZGV4IDdhZWUz
OGYzOWYzYjNkYWQ2MjQwODJkYmJiOTA4NDQ2M2JjMzJhNGIuLmYwYzhlNGU0NTRkM2UyZDM4NDE5
YjRiY2ZlOGE1NThkOTVmOThhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5jcHAKQEAgLTI5LDYgKzI5LDEwIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoV0VCR0wpCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAorI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgIklPU3VyZmFjZS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OlJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0
cnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaAppbmRleCBlOWVjYjg3Yzcw
YTU0MzAwODJmNzQ2ZDYyNmEwNTFlYmRjNjcyNTI1Li5kOWM3MzNiNmMzNGU2N2QzZDUzZDg5NmQx
ODNmMTZlZDI5NGM1MjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgK
QEAgLTQ1LDYgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiBjbGFzcyBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbjsKK2NsYXNzIElP
U3VyZmFjZTsKICNlbmRpZgogCiAvLyBBIGJhc2UgY2xhc3MgZm9yIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMIHByb3h5IHNpZGUgaW1wbGVtZW50YXRpb24KQEAgLTkxLDE1ICs5MiwxMyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdhaXRVbnRpbEluaXRpYWxpemVkKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBlbnN1cmVFeHRlbnNpb25FbmFibGVkKGNvbnN0IFN0cmluZyYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TWFya0NvbnRleHRDaGFuZ2VkKCkgPSAwOwotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluJiBw
bGF0Zm9ybVN3YXBDaGFpbigpOwotI2VuZGlmCiAKLXByaXZhdGU6Ci0gICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemUoKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8V2ViR0xM
YXllcj4gbV93ZWJHTExheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IG1fZGlz
cGxheUJ1ZmZlcjsKICNlbmRpZgorcHJpdmF0ZToKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZSgpOwogCiAgICAgLy8gR3VhcmRlZCBieSB3YWl0VW50aWxJbml0aWFsaXplZCgpLgogICAgIEhh
c2hTZXQ8U3RyaW5nPiBtX2F2YWlsYWJsZUV4dGVuc2lvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCBjY2JjNGRkMTMyZWI1NjM5YTJhZTRjNjdjZWQ5
MWFjZGE3YzIzYzFlLi5kYjBjOTAwMmNhOTBmZDk1OTlkMDRlYTAzNzY2NDMyMzdmM2MzNTU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTM2LDcgKzM2
LDYgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW1w
b3J0ICJXZWJHTExheWVyLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0
Lmg+CiAjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRh
bFNQSS5oPgpAQCAtMTkzLDI5ICsxOTIsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygp
CiB9CiAjZW5kaWYKIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywg
SG9zdFdpbmRvdyogaG9zdFdpbmRvdykKLXsKLSAgICAvLyBNYWtlIHNwYWNlIGZvciB0aGUgaW5j
b21pbmcgY29udGV4dCBpZiB3ZSdyZSBmdWxsLgotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKLSAg
ICBpZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaGFz
VG9vTWFueUNvbnRleHRzKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgUmVmUHRy
PEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKGF0dHJzLCBob3N0V2luZG93LCBudWxscHRyKSk7Ci0KLSAgICBpZiAo
IWNvbnRleHQtPm1fY29udGV4dE9iaikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRDb250ZXh0
KGNvbnRleHQuZ2V0KCkpOwotCi0gICAgcmV0dXJuIGNvbnRleHQ7Ci19Ci0KLVJlZjxHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZUZvckdQVVBy
b2Nlc3MoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRycywgR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4qIHN3YXBDaGFpbikKLXsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRycywgbnVsbHB0ciwgc3dhcENo
YWluKSk7Ci19Ci0KLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqLCBHcmFw
aGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiogc3dhcENoYWluKQorR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRycykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzKQogewogICAgIG1f
aXNGb3JXZWJHTDIgPSBhdHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJH
TFZlcnNpb246OldlYkdMMjsKQEAgLTM1MywxOCArMzMwLDYgQEAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyBhdHQKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKICAgICBhdHRycyA9IGNvbnRleHRBdHRy
aWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhhdmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAot
ICAgIGlmIChzd2FwQ2hhaW4pCi0gICAgICAgIG1fc3dhcENoYWluID0gc3dhcENoYWluOwotICAg
IGVsc2UgewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgICAgICBtX3dlYkdM
TGF5ZXIgPSBhZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5pdFdpdGhEZXZpY2VQaXhlbFJh
dGlvOmF0dHJzLmRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6IWF0dHJzLmFscGhhXSk7
Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBbbV93ZWJHTExheWVyIHNldE5hbWU6QCJXZWJHTCBM
YXllciJdOwotI2VuZGlmCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgICAgICBt
X3N3YXBDaGFpbiA9ICZbbV93ZWJHTExheWVyIHN3YXBDaGFpbl07Ci0gICAgfQotCiAgICAgLy8g
Q3JlYXRlIHRoZSB0ZXh0dXJlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgZnJhbWVidWZmZXIu
CiAgICAgR0xlbnVtIHRleHR1cmVUYXJnZXQgPSBkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgp
OwogCkBAIC00MzksMTQgKzQwNCwxMiBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6fkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKCkKICAgICB9CiAgICAgaWYgKG1fZGlzcGxheUJ1ZmZlclBidWZm
ZXIpCiAgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIG1fZGlzcGxheUJ1
ZmZlclBidWZmZXIpOwotICAgIGlmIChtX3N3YXBDaGFpbikgewotICAgICAgICBhdXRvIHJlY3lj
bGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4tPnJlY3ljbGVCdWZmZXIoKTsKLSAgICAgICAgaWYgKHJl
Y3ljbGVkQnVmZmVyLmhhbmRsZSkKLSAgICAgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rp
c3BsYXlPYmosIHJlY3ljbGVkQnVmZmVyLmhhbmRsZSk7Ci0gICAgICAgIGF1dG8gY29udGVudHNI
YW5kbGUgPSBtX3N3YXBDaGFpbi0+ZGV0YWNoQ2xpZW50KCk7Ci0gICAgICAgIGlmIChjb250ZW50
c0hhbmRsZSkKLSAgICAgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIGNv
bnRlbnRzSGFuZGxlKTsKLSAgICB9CisgICAgYXV0byByZWN5Y2xlZEJ1ZmZlciA9IG1fc3dhcENo
YWluLnJlY3ljbGVCdWZmZXIoKTsKKyAgICBpZiAocmVjeWNsZWRCdWZmZXIuaGFuZGxlKQorICAg
ICAgICBFR0xfRGVzdHJveVN1cmZhY2UobV9kaXNwbGF5T2JqLCByZWN5Y2xlZEJ1ZmZlci5oYW5k
bGUpOworICAgIGF1dG8gY29udGVudHNIYW5kbGUgPSBtX3N3YXBDaGFpbi5kZXRhY2hDbGllbnQo
KTsKKyAgICBpZiAoY29udGVudHNIYW5kbGUpCisgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZSht
X2Rpc3BsYXlPYmosIGNvbnRlbnRzSGFuZGxlKTsKICAgICBpZiAobV9jb250ZXh0T2JqKSB7CiAg
ICAgICAgIG1ha2VDdXJyZW50KG1fZGlzcGxheU9iaiwgRUdMX05PX0NPTlRFWFQpOwogICAgICAg
ICBFR0xfRGVzdHJveUNvbnRleHQobV9kaXNwbGF5T2JqLCBtX2NvbnRleHRPYmopOwpAQCAtNDU1
LDYgKzQxOCwxNiBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6fkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKCkKICAgICBMT0coV2ViR0wsICJEZXN0cm95ZWQgYSBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCAoJXApLiIsIHRoaXMpOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpp
c1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90ZXh0dXJlOworfQorCitQbGF0Zm9ybUxh
eWVyKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEdDR0xlbnVtIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpkcmF3aW5nQnVmZmVyVGV4dHVyZVRhcmdldCgpCiB7CiAjaWYgUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCkBAIC01NjcsMTIgKzU0MCwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpy
ZXNoYXBlRGlzcGxheUJ1ZmZlckJhY2tpbmcoKQogICAgICAgICBtX2Rpc3BsYXlCdWZmZXJQYnVm
ZmVyID0gRUdMX05PX1NVUkZBQ0U7CiAgICAgfQogICAgIC8vIFJlc2V0IHRoZSBmdXR1cmUgcmVj
eWNsZWQgYnVmZmVyIG5vdywgYmVjYXVzZSBpdCBtb3N0IGxpa2VseSB3aWxsIG5vdCBiZSByZXVz
YWJsZSBhdCB0aGUgdGltZSBpdCB3aWxsIGJlIHJldXNlZC4KLSAgICBpZiAobV9zd2FwQ2hhaW4p
IHsKLSAgICAgICAgYXV0byByZWN5Y2xlZEJ1ZmZlciA9IG1fc3dhcENoYWluLT5yZWN5Y2xlQnVm
ZmVyKCk7Ci0gICAgICAgIGlmIChyZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpCi0gICAgICAgICAgICBF
R0xfRGVzdHJveVN1cmZhY2UobV9kaXNwbGF5T2JqLCByZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpOwot
ICAgICAgICByZWN5Y2xlZEJ1ZmZlci5zdXJmYWNlLnJlc2V0KCk7Ci0gICAgfQorICAgIGF1dG8g
cmVjeWNsZWRCdWZmZXIgPSBtX3N3YXBDaGFpbi5yZWN5Y2xlQnVmZmVyKCk7CisgICAgaWYgKHJl
Y3ljbGVkQnVmZmVyLmhhbmRsZSkKKyAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxh
eU9iaiwgcmVjeWNsZWRCdWZmZXIuaGFuZGxlKTsKKyAgICByZWN5Y2xlZEJ1ZmZlci5zdXJmYWNl
LnJlc2V0KCk7CiAgICAgcmV0dXJuIGFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5n
KCk7CiB9CiAKQEAgLTcyNCwxMCArNjk1LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OnByZXBhcmVGb3JEaXNwbGF5KCkKICAgICAvLyBUaGUgSU9TdXJmYWNlIHdpbGwgYmUgdXNl
ZCBmcm9tIG90aGVyIGdyYXBoaWNzIHN1YnN5c3RlbSwgc28gZmx1c2ggR0wgY29tbWFuZHMuCiAg
ICAgZ2w6OkZsdXNoKCk7CiAKLSAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4t
PnJlY3ljbGVCdWZmZXIoKTsKKyAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9zd2FwQ2hhaW4u
cmVjeWNsZUJ1ZmZlcigpOwogCiAgICAgRUdMX1JlbGVhc2VUZXhJbWFnZShtX2Rpc3BsYXlPYmos
IG1fZGlzcGxheUJ1ZmZlclBidWZmZXIsIEVHTF9CQUNLX0JVRkZFUik7Ci0gICAgbV9zd2FwQ2hh
aW4tPnByZXNlbnQoeyBXVEZNb3ZlKG1fZGlzcGxheUJ1ZmZlckJhY2tpbmcpLCBtX2Rpc3BsYXlC
dWZmZXJQYnVmZmVyIH0pOworICAgIG1fc3dhcENoYWluLnByZXNlbnQoeyBXVEZNb3ZlKG1fZGlz
cGxheUJ1ZmZlckJhY2tpbmcpLCBtX2Rpc3BsYXlCdWZmZXJQYnVmZmVyIH0pOwogICAgIG1fZGlz
cGxheUJ1ZmZlclBidWZmZXIgPSBFR0xfTk9fU1VSRkFDRTsKIAogICAgIGJvb2wgaGFzTmV3QmFj
a2luZyA9IGZhbHNlOwpAQCAtNzYzLDcgKzczNCw3IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1YqIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjphc0NWKCkKIAogc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZl
cj4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlYWRDb21wb3NpdGVkUmVzdWx0cygpCiB7Ci0g
ICAgYXV0byYgZGlzcGxheUJ1ZmZlciA9IG1fc3dhcENoYWluLT5kaXNwbGF5QnVmZmVyKCk7Cisg
ICAgYXV0byYgZGlzcGxheUJ1ZmZlciA9IG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKTsKICAg
ICBpZiAoIWRpc3BsYXlCdWZmZXIuc3VyZmFjZSB8fCAhZGlzcGxheUJ1ZmZlci5oYW5kbGUpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKGRpc3BsYXlCdWZmZXIuc3VyZmFj
ZS0+c2l6ZSgpICE9IGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCkpCkBAIC03OTUsMTIgKzc2
NiwxMiBAQCBzdGQ6Om9wdGlvbmFsPFBpeGVsQnVmZmVyPiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6cmVhZENvbXBvc2l0ZWRSZXN1bHRzKCkKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogUmVm
UHRyPE1lZGlhU2FtcGxlPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cGFpbnRDb21wb3NpdGVk
UmVzdWx0c1RvTWVkaWFTYW1wbGUoKQogewotICAgIGF1dG8gJmRpc3BsYXlCdWZmZXIgPSBtX3N3
YXBDaGFpbi0+ZGlzcGxheUJ1ZmZlcigpOworICAgIGF1dG8gJmRpc3BsYXlCdWZmZXIgPSBtX3N3
YXBDaGFpbi5kaXNwbGF5QnVmZmVyKCk7CiAgICAgaWYgKCFkaXNwbGF5QnVmZmVyLnN1cmZhY2Ug
fHwgIWRpc3BsYXlCdWZmZXIuaGFuZGxlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBp
ZiAoZGlzcGxheUJ1ZmZlci5zdXJmYWNlLT5zaXplKCkgIT0gZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZl
clNpemUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgbV9zd2FwQ2hhaW4tPm1hcmtE
aXNwbGF5QnVmZmVySW5Vc2UoKTsKKyAgICBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1ZmZlcklu
VXNlKCk7CiAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoZGlzcGxh
eUJ1ZmZlci5zdXJmYWNlLT5zdXJmYWNlKCkpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlCYXNlQ29jb2EubW0KaW5kZXggMTkzNGVmNWVmMzM2OWEyMzY5OTZiMmU2ZGUw
ZDc2MzhiMTkxOWZhZC4uYjcyNThlODY0NWYxNDA0NjMyYmIwMjg0ZWQ4OWRmNzkwODNkZTEyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNv
Y29hLm1tCkBAIC00Myw5ICs0Myw5IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eUJhc2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiAgICAgYXV0byBhdHRycyA9IGNvbnRleHRB
dHRyaWJ1dGVzKCk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgICAgIG1f
d2ViR0xMYXllciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBp
eGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1ZTohYXR0cnMuYWxw
aGFdKTsKKyAgICBtX3dlYkdMTGF5ZXIgPSBhZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5p
dFdpdGhEZXZpY2VQaXhlbFJhdGlvOmF0dHJzLmRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFx
dWU6IWF0dHJzLmFscGhhXSk7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBbbV93ZWJHTExheWVy
IHNldE5hbWU6QCJXZWJHTCBMYXllciJdOworICAgIFttX3dlYkdMTGF5ZXIgc2V0TmFtZTpAIldl
YkdMIExheWVyIl07CiAjZW5kaWYKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CkBA
IC02MywyMCArNjMsMTIgQEAgR3JhcGhpY3NDb250ZXh0R0xDViogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2U6OmFzQ1YoKQogfQogI2VuZGlmCiAKLUdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluJiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZv
cm1Td2FwQ2hhaW4oKQotewotICAgIHJldHVybiBbbV93ZWJHTExheWVyIHN3YXBDaGFpbl07Ci19
Ci0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogUmVmUHRyPE1lZGlhU2FtcGxlPiBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFT
YW1wbGUoKQogewotICAgIGF1dG8mIHNjID0gcGxhdGZvcm1Td2FwQ2hhaW4oKTsKLSAgICBhdXRv
JiBkaXNwbGF5QnVmZmVyID0gc2MuZGlzcGxheUJ1ZmZlcigpOwotICAgIGlmICghZGlzcGxheUJ1
ZmZlci5zdXJmYWNlKQorICAgIGlmICghbV9kaXNwbGF5QnVmZmVyKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICBzYy5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7Ci0gICAgYXV0byBwaXhl
bEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoZGlzcGxheUJ1ZmZlci5zdXJmYWNlLT5zdXJm
YWNlKCkpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVhdGVDVlBpeGVsQnVmZmVyKG1fZGlz
cGxheUJ1ZmZlci0+c3VyZmFjZSgpKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFn
ZVNhbXBsZShXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksIE1lZGlhU2FtcGxlQVZGT2JqQzo6VmlkZW9S
b3RhdGlvbjo6VXBzaWRlRG93biwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKaW5kZXggMTQ0YzVhNDI0YTdhM2U0NjM0
Yjg2NGIzYmYyMDcwMTcyNjYyNDU1ZC4uM2MyMmY1ZDY0ZDg4Yzk3ZmJlNDhiMmZhZjRkNmNkNDVk
NTdiYjQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkdMTGF5ZXIuaApAQCAtMjMsMjEgKzIzLDE1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1w
b3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNpbXBvcnQgPG1lbW9yeT4KLSNpbXBvcnQg
PHd0Zi9OYWtlZFB0ci5oPgogCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
Ci0vLyBBIGxheWVyIGNsYXNzIGltcGxlbWVudGluZyBmcm9udCBidWZmZXIgbWFuYWdlbWVudCBv
ZiBhIDMtYnVmZmVyaW5nIHN3YXAKLS8vIGNoYWluIG9mIElPU3VyZmFjZXMuCisvLyBBIGxheWVy
IGNsYXNzIHNob3dpbmcgb25lIElPU3VyZmFjZS4KIEBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENB
TGF5ZXIKIAogLSAoaWQpaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOihmbG9hdClkZXZpY2VQaXhl
bFJhdGlvIGNvbnRlbnRzT3BhcXVlOihib29sKWNvbnRlbnRzT3BhcXVlOwogCi0tIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiYpIHN3YXBDaGFpbjsKLQogQGVu
ZAogCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IGE2ZTlj
ZmY1MDNhM2QyZmI2NjVjYjcwMDM0NTFhZjUxZGY0Njc4OTMuLmRlOTAzMTU1NjkxMTEzNmMzMWY1
ZDY4ZWUyNDNmNjdlZjY2ZGU4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQpAQCAtMzEsMjMgKzMxLDggQEAKICNpbXBv
cnQgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbXBvcnQgIkdyYXBoaWNzTGF5ZXJDQS5oIgogI2ltcG9y
dCAiUGxhdGZvcm1DQUxheWVyLmgiCi0jaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVT
UEkuaD4KIAotY2xhc3MgV2ViR0xMYXllclN3YXBDaGFpbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiB7Ci1wdWJsaWM6Ci0gICAgZXhw
bGljaXQgV2ViR0xMYXllclN3YXBDaGFpbihXZWJHTExheWVyKiBsYXllcikgIDogbV9sYXllcihs
YXllcikgeyB9OwotICAgIH5XZWJHTExheWVyU3dhcENoYWluKCkgb3ZlcnJpZGUgPSBkZWZhdWx0
OwotICAgIHZvaWQgcHJlc2VudChCdWZmZXImJikgb3ZlcnJpZGU7Ci0KLSAgICBXZWJDb3JlOjpJ
T1N1cmZhY2UqIGRpc3BsYXlTdXJmYWNlKCkgeyByZXR1cm4gbV9kaXNwbGF5QnVmZmVyLnN1cmZh
Y2UuZ2V0KCk7IH0KLXByaXZhdGU6Ci0gICAgV2ViR0xMYXllciogY29uc3QgbV9sYXllcjsKLX07
Ci0KLUBpbXBsZW1lbnRhdGlvbiBXZWJHTExheWVyIHsKLSAgICBCT09MIF9wcmVwYXJlZEZvckRp
c3BsYXk7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJHTExheWVyU3dhcENoYWluPiBfc3dhcENoYWlu
OwotfQorQGltcGxlbWVudGF0aW9uIFdlYkdMTGF5ZXIKIAogLSAoaWQpaW5pdFdpdGhEZXZpY2VQ
aXhlbFJhdGlvOihmbG9hdClkZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRzT3BhcXVlOihib29sKWNv
bnRlbnRzT3BhcXVlCiB7CkBAIC01NSw3ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgc2VsZi50cmFu
c2Zvcm0gPSBDQVRyYW5zZm9ybTNESWRlbnRpdHk7CiAgICAgc2VsZi5jb250ZW50c09wYXF1ZSA9
IGNvbnRlbnRzT3BhcXVlOwogICAgIHNlbGYuY29udGVudHNTY2FsZSA9IGRldmljZVBpeGVsUmF0
aW87Ci0gICAgX3N3YXBDaGFpbi5lbXBsYWNlKHNlbGYpOwogICAgIHJldHVybiBzZWxmOwogfQog
CkBAIC03NSwzNyArNTksMTUgQEAgcHJpdmF0ZToKICAgICBbc3VwZXIgc2V0QW5jaG9yUG9pbnQ6
Q0dQb2ludE1ha2UocC54LCAxLjAgLSBwLnkpXTsKIH0KIAotLSAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4mKSBzd2FwQ2hhaW4KLXsKLSAgICByZXR1cm4gX3N3
YXBDaGFpbi52YWx1ZSgpOwotfQotCi0tICh2b2lkKXByZXBhcmVGb3JEaXNwbGF5Ci17Ci0gICAg
W3NlbGYgc2V0TmVlZHNEaXNwbGF5XTsKLSAgICBfcHJlcGFyZWRGb3JEaXNwbGF5ID0gWUVTOwot
fQotCiAtICh2b2lkKWRpc3BsYXkKIHsKLSAgICBpZiAoX3N3YXBDaGFpbi0+ZGlzcGxheVN1cmZh
Y2UoKSAmJiBfcHJlcGFyZWRGb3JEaXNwbGF5KSB7Ci0gICAgICAgIHNlbGYuY29udGVudHMgPSBf
c3dhcENoYWluLT5kaXNwbGF5U3VyZmFjZSgpLT5hc0xheWVyQ29udGVudHMoKTsKLSAgICAgICAg
W3NlbGYgcmVsb2FkVmFsdWVGb3JLZXlQYXRoOkAiY29udGVudHMiXTsKLSAgICB9CisgICAgLy8g
U2hvdyB0aGUgc2VsZi5jb250ZW50cyBhcyB0aGUgY29udGVudHMgYnkgbm90IGRvaW5nIGFueXRo
aW5nIGluIHRoaXMgZnVuY3Rpb24uCiAgICAgYXV0byBsYXllciA9IFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdlIHZvaWQqKXNlbGYpOwog
ICAgIGlmIChsYXllciAmJiBsYXllci0+b3duZXIoKSkKICAgICAgICAgbGF5ZXItPm93bmVyKCkt
PnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllci5nZXQoKSk7CiAKLSAgICBfcHJl
cGFyZWRGb3JEaXNwbGF5ID0gTk87CiB9CiAKIEBlbmQKIAotdm9pZCBXZWJHTExheWVyU3dhcENo
YWluOjpwcmVzZW50KEJ1ZmZlciYmIGJ1ZmZlcikKLXsKLSAgICBBU1NFUlQoIW1fc3BhcmVCdWZm
ZXIuc3VyZmFjZSk7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW46OnBy
ZXNlbnQoV1RGTW92ZShidWZmZXIpKTsKLSAgICBbbV9sYXllciBwcmVwYXJlRm9yRGlzcGxheV07
Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NjI1ZWRi
ZmUyNTRlMzc1ZmVmMTY5ODE2OWY1MmVmZDRhYTc3MjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMCwwICsxLDk4IEBACisKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKFdFQkdMKQorI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCIgLy8g
Tk9MSU5UCisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKKyNpbXBv
cnQgIldlYkdMTGF5ZXIuaCIKKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSB7CisKK3N0YXRpYyBSZXRhaW5QdHI8V2Vi
R0xMYXllcj4gY3JlYXRlV2ViR0xMYXllcihjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmIGF0dHJpYnV0ZXMpCit7CisgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IGxheWVyOworICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIGxheWVyID0gYWRvcHROUyhbW1dlYkdM
TGF5ZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRyaWJ1dGVzLmRldmljZVBp
eGVsUmF0aW8gY29udGVudHNPcGFxdWU6IWF0dHJpYnV0ZXMuYWxwaGFdKTsKKyNpZm5kZWYgTkRF
QlVHCisgICAgW2xheWVyIHNldE5hbWU6QCJXZWJHTCBMYXllciJdOworI2VuZGlmCisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIHJldHVybiBsYXllcjsKK30KKworLy8gR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgdHlwZSB0aGF0IGlzIHVzZWQgd2hlbiBXZWJHTCBpcyBydW4gaW4t
cHJvY2VzcyBpbiBXZWJDb250ZW50IHByb2Nlc3MuCitjbGFzcyBXZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgewor
cHVibGljOgorICAgIH5XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woKSA9IGRlZmF1
bHQ7CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmlzVmFsaWQoKSAmJiBtX3dlYkdMTGF5ZXI7IH0KKyAgICAvLyBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCBvdmVycmlkZXMuCisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1fd2ViR0xM
YXllci5nZXQoKSk7IH0KKyAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7Citwcml2
YXRlOgorICAgIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChhdHRyaWJ1dGVzKQorICAgICAgICAsIG1fd2ViR0xMYXllcihjcmVhdGVXZWJHTExheWVy
KGF0dHJpYnV0ZXMpKQorICAgIHsKKyAgICB9CisgICAgUmV0YWluUHRyPFdlYkdMTGF5ZXI+IG1f
d2ViR0xMYXllcjsKKworICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsK
K307CisKK3ZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwcmVwYXJlRm9y
RGlzcGxheSgpCit7CisgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnByZXBhcmVGb3JEaXNw
bGF5KCk7CisgICAgYXV0byBzdXJmYWNlID0gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1ZmZlcigpLnN1
cmZhY2UuZ2V0KCk7CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm47CisgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgW21fd2ViR0xMYXllciBzZXRDb250ZW50czpz
dXJmYWNlLT5hc0xheWVyQ29udGVudHMoKV07CisgICAgW21fd2ViR0xMYXllciBzZXROZWVkc0Rp
c3BsYXldOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKK30KKworfQorCitSZWZQdHI8
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUo
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqKQorewor
ICAgIC8vIE1ha2Ugc3BhY2UgZm9yIHRoZSBpbmNvbWluZyBjb250ZXh0IGlmIHdlJ3JlIGZ1bGwu
CisgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVj
eWNsZUNvbnRleHRJZk5lY2Vzc2FyeSgpOworICAgIGlmIChHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5oYXNUb29NYW55Q29udGV4dHMoKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IFdlYlByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgaWYg
KCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZENvbnRleHQoY29u
dGV4dC5nZXQoKSk7CisKKyAgICByZXR1cm4gY29udGV4dDsKK30KK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCBkNDI4MWFhNzA2ZjI2ZjY1Y2Rm
ZjFkNzUyMmJmMGJlNWViOTIxZGFhLi4zZGQ3ODgwMGQxYjU3NWFhMTUzYmI5YjNkYzUzZGRiZDBm
MDU4NTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTQ3LDYg
KzQ3LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmICFQTEFURk9STShDT0NPQSkK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJl
dHVybiB0cnVlOworfQorI2VuZGlmCisKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJl
c2V0QnVmZmVyc1RvQXV0b0NsZWFyKCkKIHsKICAgICBHQ0dMdWludCBidWZmZXJzID0gR3JhcGhp
Y3NDb250ZXh0R0w6OkNPTE9SX0JVRkZFUl9CSVQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5oCmluZGV4IDIyNzdiMTdjYzcwOTg4ODc2ODI2YzA4NjJmN2E3MTgzOTc0MjVkZmEuLjk5
NGVmMTUyMTMwNTVmMDk3YTA4ZmM5MjBiZTVlMmY2OTEzMDdlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTC5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL1VuaXF1
ZVJlZi5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNlbmRpZgog
CkBAIC02Nyw3ICs2OCw2IEBACiBPQkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NMQVNTIFdlYkdM
TGF5ZXI7CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRTsKIH0KICNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKQEAgLTk3LDIyICs5NywxOCBAQCBjbGFzcyBUZXh0dXJlTWFw
cGVyR0NHTFBsYXRmb3JtTGF5ZXI7CiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcsIHVp
bnQ2NF90PiBTaGFkZXJOYW1lSGFzaDsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0wKK2NsYXNzIFdF
QkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIDogcHVibGljIEdyYXBoaWNzQ29u
dGV4dEdMCiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyopOwog
ICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCk7Ci0KICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBzdGF0aWMgUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGVGb3JH
UFVQcm9jZXNzKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYsIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKik7Ci0KLSAgICBDQUxheWVyKiBwbGF0Zm9ybUxheWVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVyKj4obV93ZWJH
TExheWVyLmdldCgpKTsgfQorICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25z
dCBvdmVycmlkZTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMRGlzcGxheSBwbGF0Zm9y
bURpc3BsYXkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlPYmo7IH0KICAgICBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dEdMQ29uZmlnIHBsYXRmb3JtQ29uZmlnKCkgY29uc3QgeyByZXR1cm4gbV9j
b25maWdPYmo7IH0KICAgICBzdGF0aWMgR0NHTGVudW0gZHJhd2luZ0J1ZmZlclRleHR1cmVUYXJn
ZXRRdWVyeSgpOwogICAgIHN0YXRpYyBHQ0dMaW50IEVHTERyYXdpbmdCdWZmZXJUZXh0dXJlVGFy
Z2V0KCk7CiAjZWxzZQotICAgIHN0YXRpYyBSZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNy
ZWF0ZUZvckdQVVByb2Nlc3MoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJik7CiAg
ICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAj
aWYgVVNFKEFOR0xFKQpAQCAtNTE4LDcgKzUxNCw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVk
IHRleHR1cmVTZWVkKEdDR0x1aW50IHRleHR1cmUpIHsgcmV0dXJuIG1fc3RhdGUudGV4dHVyZVNl
ZWRDb3VudC5jb3VudCh0ZXh0dXJlKTsgfQogCi0gICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgp
IGZpbmFsOworICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoKSBvdmVycmlkZTsKIAogI2lmIEVO
QUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBHcmFwaGljc0NvbnRleHRHTENW
KiBhc0NWKCkgZmluYWw7CkBAIC01MzgsMTMgKzUzNCwxMyBAQCBwdWJsaWM6CiAjZW5kaWYKICNl
bmRpZgogCi1wcml2YXRlOgorcHJvdGVjdGVkOgorICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4qID0gbnVsbHB0cik7Ci0jZWxzZQotICAgIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcywgSG9zdFdpbmRvdyopOworICAgIEdy
YXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwogI2VuZGlmCi0K
K3ByaXZhdGU6CiAgICAgLy8gQ2FsbGVkIG9uY2UgYnkgYWxsIHRoZSBwdWJsaWMgZW50cnkgcG9p
bnRzIHRoYXQgZXZlbnR1YWxseSBjYWxsIE9wZW5HTC4KICAgICAvLyBDYWxsZWQgb25jZSBieSBh
bGwgdGhlIHB1YmxpYyBlbnRyeSBwb2ludHMgb2YgRXh0ZW5zaW9uc0dMIHRoYXQgZXZlbnR1YWxs
eSBjYWxsIE9wZW5HTC4KICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpIFdBUk5fVU5VU0VE
X1JFVFVSTjsKQEAgLTU4Niw5ICs1ODIsNyBAQCBwcml2YXRlOgogCiAKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiogbV9zd2FwQ2hh
aW4geyBudWxscHRyIH07CiAgICAgLy8gVE9ETzogdGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvbmNl
IHRoZSBjb250ZXh0IGRyYXdzIHRvIGEgaW1hZ2UgYnVmZmVyLiBTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODE3OSAuCi0gICAgUmV0YWluUHRyPFdlYkdMTGF5
ZXI+IG1fd2ViR0xMYXllcjsKICAgICBFR0xEaXNwbGF5IG1fZGlzcGxheU9iaiB7IG51bGxwdHIg
fTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMIG1fY29udGV4dE9iaiB7IG51bGxwdHIg
fTsKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dEdMQ29uZmlnIG1fY29uZmlnT2JqIHsgbnVs
bHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNw
cAppbmRleCA4ZDNkNjVjMTdmOWQzNGUxNTZiNTBhMThlODQ1NThjYTExYTUyYmM1Li45NDRmZDdl
ZjdiNWQzNDlhMGIyZTY1M2Q3ODcyMTFhMzJhZmNhYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFw
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtNjYsNyArNjYsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0
cmlidXRlcywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRH
TE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyopCiB7CiAgICAgc3RhdGljIGJvb2wg
aW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBzdGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKQEAg
LTg1LDcgKzg1LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAvLyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIG9iamVj
dCBmaXJzdCBpbiBvcmRlciB0byBlc3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24gdGhpcyB0
aHJlYWQuCi0gICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3cpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykpOwogCiAjaWYgVVNF
KExJQkVQT1hZKSAmJiBVU0UoT1BFTkdMX0VTKSAmJiBFTkFCTEUoV0VCR0wyKQogICAgIC8vIEJh
aWwgaWYgR0xFUzMgd2FzIHJlcXVlc3RlZCBidXQgY2Fubm90IGJlIHByb3ZpZGVkLgpAQCAtOTgs
MTMgKzk4LDggQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICByZXR1cm4gY29udGV4dDsK
IH0KIAotUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlRm9yR1BVUHJvY2Vzcyhjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMm
IGF0dHJpYnV0ZXMpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woYXR0cmlidXRlcywgbnVsbHB0cikpOwotfQotCiAjaWYgVVNFKEFOR0xFKQotR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KikKK0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMgYXR0cmlidXRlcykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMpCiB7
CiAjaWYgRU5BQkxFKFdFQkdMMikKQEAgLTE3Myw3ICsxNjgsNyBAQCBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzIGF0dAogICAgIGdsOjpDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQogI2Vsc2UKLUdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyopCitHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRyaWJ1dGVzKQogewog
I2lmIFVTRShOSUNPU0lBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFlZWUxOGQ2MmYwNTA5ZjAwOWYzNGMzZWRlNjhkMzVlMGQwODk2NTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpCisjaW5jbHVkZSA8V2Vi
Q29yZS9FeHRlbnNpb25zR0wuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMLmg+CisKK2NsYXNzIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0
ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICB7
CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR1BVUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpKTsKKyAgICAgICAgaWYgKCFjb250
ZXh0LT5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIGNvbnRleHQ7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6
SU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyKCkgeyByZXR1cm4gbV9zd2FwQ2hhaW4uZGlzcGxheUJ1
ZmZlcigpLnN1cmZhY2UuZ2V0KCk7IH0KKyAgICB2b2lkIG1hcmtEaXNwbGF5QnVmZmVySW5Vc2Uo
KSB7IHJldHVybiBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7IH0KKyNlbmRp
ZgorcHJpdmF0ZToKKyAgICBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgICAgIDogR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykKKyAgICB7CisgICAgfQorfTsKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDI1NjAzOTdhNTM3MjcxMjA0NjkwODI3Yjk3
MDE1ZThiNzNiZWU3OWMuLmVmNDFlYTYwODJiYWIzZjNjMjhmYjMyMTdmYTE4NjQ5MjgzYjZkY2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCkBAIC0yOSwyMiArMjksMTcgQEAKIAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSAiR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0R0xJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIgog
I2luY2x1ZGUgIlNjb3BlZFdlYkdMUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdC5oIgogI2luY2x1
ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnNHTC5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oPgotI2VuZGlmCi0KICNpZiBQ
TEFURk9STShNQUMpCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHRGlzcGxheUNvbmZpZ3VyYXRp
b24uaD4KICNlbmRpZgpAQCAtMTE0LDcgKzEwOSw3IEBAIHByaXZhdGU6CiBwcm90ZWN0ZWQ6CiAg
ICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M7CiAgICAgUmVmUHRyPElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbj4gbV9zdHJl
YW1Db25uZWN0aW9uOwotICAgIFJlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TD4gbV9jb250ZXh0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJlYWQpOworICAgIFJl
ZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IG1fY29udGV4dCBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fc3RyZWFtVGhyZWFkKTsKICAgICBHcmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIgbV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXI7CiAgICAgUmVmPFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsKICAgICBTY29wZWRXZWJHTFJlbmRlcmlu
Z1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCmluZGV4IDk3MGQ4YzJlNzkwOWU4ZjcxZmFkMGM5YmQy
YzY0MzFmY2Q5NWFkMzIuLmI0MzdhNWJlZWNkNWQ2YWM1ODNjYTU5N2E5NWUyNzcxMmZhZGQ2MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKQEAgLTczLDIwICs3MywyMiBA
QCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJl
YW1UaHJlYWQpOwotICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVh
dGVGb3JHUFVQcm9jZXNzKFdURk1vdmUoYXR0cmlidXRlcyksICZtX3N3YXBDaGFpbik7CisgICAg
bV9jb250ZXh0ID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RG
TW92ZShhdHRyaWJ1dGVzKSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5k
UmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1f
c3RyZWFtVGhyZWFkKTsKICAgICBtX2NvbnRleHQtPnByZXBhcmVGb3JEaXNwbGF5KCk7CisgICAg
SU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyID0gbV9jb250ZXh0LT5kaXNwbGF5QnVmZmVyKCk7CiAg
ICAgTWFjaFNlbmRSaWdodCBzZW5kUmlnaHQ7Ci0gICAgaWYgKGF1dG8qIHN1cmZhY2UgPSBtX3N3
YXBDaGFpbi5kaXNwbGF5QnVmZmVyKCkuc3VyZmFjZS5nZXQoKSkgeworICAgIGlmIChkaXNwbGF5
QnVmZmVyKSB7CisgICAgICAgIG1fY29udGV4dC0+bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwog
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCiAgICAgICAgIC8vIE1h
cmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRo
b3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0g
a25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAgICBzdXJmYWNlLT5zZXRPd25lcnNo
aXBJZGVudGl0eShtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICAgICAgZGlzcGxheUJ1
ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7CiAj
ZW5kaWYKLSAgICAgICAgc2VuZFJpZ2h0ID0gc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7Cisg
ICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNyZWF0ZVNlbmRSaWdodCgpOwogICAg
IH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlbmRSaWdodCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFdpbi5jcHAKaW5kZXggMWNhZmIzMzliZTNhYWZiM2Q4OGM1YjM1Yjcw
YzhlMGI0Y2VlZDhjNi4uNzBmMGM0NjQwMzJiOTMzYzhmNDU5MTljODY4YWM2NzZkYzE3MWQ2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW4uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMV2luOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbihHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzCiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW46OnBs
YXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJiBhdHRyaWJ1dGVzKQogewotICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpjcmVhdGVGb3JHUFVQcm9jZXNzKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1f
Y29udGV4dCA9IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1v
dmUoYXR0cmlidXRlcykpOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwcmVw
YXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMWVlYTRiMGI0MTJiZTFmZDBmMmM5M2RmNzFi
YTc2NDY4YTFiZDJlZi4uZjNiOTc3ZDNkZDdkZjk0NTY2NDIzYzA2NDczNTE2MmExYzU0NjRmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjIzLDYgKzYyMyw3IEBAIFdlYlByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQog
CiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3Vy
ZmFjZUJhY2tlbmQuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCitXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNhZTIxNDdiNDA3ZGZkZmU2ZjJi
ZTA1MWUwNmUyZTFhMzI5YTU2MDQuLjJkZWI2NmU0MzY0ZDA1NzdiYTUzNWE4ZGU4YzcxZmI5NDUz
MmE5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDgwNSw2ICs0ODA1LDggQEAKIAkJN0FGQkQzNjIyMUU1MEYzOTAwNURCQUNCIC8q
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDsgcGF0aCA9IENsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdBRkJEMzZEMjFFNTQ2RTMwMDVEQkFDQiAvKiBQZXJzaXN0ZW5jeVV0aWxz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0FGQkQzNkUyMUU1NDZFMzAwNURCQUNCIC8qIFBlcnNpc3RlbmN5VXRpbHMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVyc2lzdGVuY3lVdGlscy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTdCMTYxOTEyMjcxOThBQTkwMEM0MEVBQyAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTdCMTYxOTEzMjcxOUFFNzYwMEM0MEVBQyAvKiBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMURCMjY1MjU2NjhDRTAwMDBFMjZCQyAvKiBBcnJh
eVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJheVJlZmVy
ZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjQ4M0YxQjI1Q0REQTlCMDAx
MjA0ODYgLyogTWVzc2FnZVJlY2VpdmVRdWV1ZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCNDgzRjFDMjVDRERBOUIwMDEyMDQ4NiAvKiBNZXNzYWdlUmVjZWl2ZVF1ZXVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlUXVldWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxOTEsNiArOTE5Myw3IEBACiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQlGNDA5NENCQzI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RS
ZWFkZXJIYW5kbGUuY3BwICovLAogCQkJCUY0MDk0Q0JCMjU1MzA0QUYwMDNENzNFMyAvKiBEaXNw
bGF5TGlzdFJlYWRlckhhbmRsZS5oICovLAorCQkJCTdCMTYxOTEzMjcxOUFFNzYwMEM0MEVBQyAv
KiBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaCAqLywKIAkJCQk1NUFEMDk0MzI0MDhBMEU2
MDBERTREMkYgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oICovLAogCQkJCTFDQzU0QUZE
MjcwRjk2NTQwMDVCRjhCRSAvKiBRdWFsaWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIu
aCAqLywKIAkJCQkxQ0JGOTAxMjI3MTAxOEI1MDAwQzQ1N0QgLyogUXVhbGlmaWVkUmVzb3VyY2VI
ZWFwLmggKi8sCkBAIC05NjYzLDYgKzk2NjYsNyBAQAogCQkJCTJEMjVGMzI4MjU3NThFOTAwMDIz
MUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLywKIAkJCQk3
MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1
cmZhY2VCYWNrZW5kLmNwcCAqLywKIAkJCQk3MjdBN0YzNTI0MDc4NTdGMDA0RDI5MzEgLyogSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggKi8sCisJCQkJN0IxNjE5
MTIyNzE5OEFBOTAwQzQwRUFDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5t
bSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKaW5kZXggYzBiYWMz
OGVlYzJlYjY0MDI2ODZjMzNkYzNkNDNjZDRiNmQ4ZGY2Zi4uMzFkNzlmOWYxZDMwYzliNTIxNmJm
NTY1NThiMWE2NDI5NTg4MDNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHkuY3BwCkBAIC02Nyw5ICs2Nyw2IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mCiBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojp+UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSgp
CiB7CiAgICAgZGlzY29ubmVjdEdwdVByb2Nlc3NJZk5lZWRlZCgpOwotI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHBsYXRmb3JtU3dhcENoYWluKCkucmVjeWNsZUJ1ZmZlcigpOwotI2VuZGlmCiB9
CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cmVzaGFwZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpCkBAIC04MywzMiArODAsMTkgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5OjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICAgICAgbWFya0Nv
bnRleHRMb3N0KCk7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KCkKIHsKICAgICBpZiAoaXNDb250
ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgTWFj
aFNlbmRSaWdodCBkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0OwotICAgIGF1dG8gc2VuZFJlc3VsdCA9
IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFyZUZvckRp
c3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlz
cGxheTo6UmVwbHkoZGlzcGxheUJ1ZmZlclNlbmRSaWdodCkpOwotICAgIGlmICghc2VuZFJlc3Vs
dCkgewotICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBhdXRvIGRpc3BsYXlCdWZmZXIgPSBJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQo
V1RGTW92ZShkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0KSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlOjpTUkdCKCkpOwotICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7Ci0gICAgICAgIGF1dG8m
IHNjID0gcGxhdGZvcm1Td2FwQ2hhaW4oKTsKLSAgICAgICAgc2MucmVjeWNsZUJ1ZmZlcigpOwot
ICAgICAgICBzYy5wcmVzZW50KHsgV1RGTW92ZShkaXNwbGF5QnVmZmVyKSwgbnVsbHB0ciB9KTsK
LSAgICB9Ci0jZWxzZQogICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheTo6UmVwbHkoKSk7CiAgICAg
aWYgKCFzZW5kUmVzdWx0KSB7CiAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotI2VuZGlmCiAgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOwogfQorI2Vu
ZGlmCiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6ZW5zdXJlRXh0ZW5zaW9u
RW5hYmxlZChjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ5
M2ZmZTBjNzQzZDlkYzE3NGE1NmJmYzZmMTQ5OGNkOTA5MWU3NQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUNvY29hLm1tCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKQorI2ltcG9ydCAi
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9JT1N1
cmZhY2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViR0xMYXllci5oPgorI2ltcG9ydCA8d3RmL0Js
b2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKwordm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwcmVwYXJl
Rm9yRGlzcGxheSgpCit7CisgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIE1hY2hTZW5kUmlnaHQgZGlzcGxheUJ1ZmZlclNlbmRSaWdodDsKKyAgICBhdXRvIHNl
bmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlBy
ZXBhcmVGb3JEaXNwbGF5KCksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJl
cGFyZUZvckRpc3BsYXk6OlJlcGx5KGRpc3BsYXlCdWZmZXJTZW5kUmlnaHQpKTsKKyAgICBpZiAo
IXNlbmRSZXN1bHQpIHsKKyAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKCFkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0KQorICAgICAgICByZXR1
cm47CisgICAgYXV0byBkaXNwbGF5QnVmZmVyID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVG
cm9tU2VuZFJpZ2h0KFdURk1vdmUoZGlzcGxheUJ1ZmZlclNlbmRSaWdodCksIFdlYkNvcmU6OkRl
c3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKKyAgICBpZiAoIWRpc3BsYXlCdWZmZXIpIHsK
KyAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
bV9kaXNwbGF5QnVmZmVyID0gV1RGTW92ZShkaXNwbGF5QnVmZmVyKTsKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKKyAgICBbbV93ZWJHTExheWVyIHNldENvbnRlbnRzOm1fZGlzcGxh
eUJ1ZmZlci0+YXNMYXllckNvbnRlbnRzKCldOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKKyAgICBtYXJrTGF5ZXJDb21wb3NpdGVkKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggZDE2MjM0NDQyMzFlNmJkNDQ5ZTUzYWU0MWFl
NTY5ZjcxNGJhMDc2NS4uYmM4ZWFiOTg3OWJlODBkODUxYjAwMWMyMDBjMGYxODU3YTZjN2EyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQpAQCAtNjMsNiArNjMsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9IVE1MSW5wdXRFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNv
cmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KKyNpbXBvcnQgPHd0
Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogCiBAaW50ZXJmYWNlIE5TT2JqZWN0IChXS0RlcHJlY2F0
ZWREZWxlZ2F0ZU1ldGhvZHMpCiAtICh2b2lkKXdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAq
KWNvbnRyb2xsZXIgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOihXS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZSAqKWZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblBhc3N3b3JkRmllbGQubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbQppbmRleCBk
ZTczNzFiZTlmY2Q4MmIxMDBkMjZmMTkxZGUyYjM0ZTg2YWZlMTM2Li5mNjJkYzdjODM3ZjAyZjcw
MTBjODJkOTc5MGUyYmFhZjIxNGUxZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbQpA
QCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiUERGTGF5ZXJDb250cm9sbGVyU1BJLmgiCiAjaW1w
b3J0ICJQREZQbHVnaW4uaCIKICNpbXBvcnQgPFF1YXJ0ei9RdWFydHouaD4KKyNpbXBvcnQgPFdl
YkNvcmUvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1M
RWxlbWVudC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGluZy5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVNb2RlbEhvc3RpbmcubW0KaW5kZXggOGMxMDYyMjA1Yzc3YWZmZDdiYWQxN2Nm
OTcyNmZjODAyMDc2NmMyYS4uY2EzZGE2OWI0MzA5NDNkZjY2NmU3ZTg0MDg0MGQ1N2Y2YmM3Mjhi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGluZy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVy
UmVtb3RlTW9kZWxIb3N0aW5nLm1tCkBAIC02Niw5ICs2Niw5IEBAIHZvaWQgUGxhdGZvcm1DQUxh
eWVyUmVtb3RlTW9kZWxIb3N0aW5nOjpwb3B1bGF0ZUNyZWF0aW9uUHJvcGVydGllcyhSZW1vdGVM
YXllclRyCiAgICAgcHJvcGVydGllcy5tb2RlbCA9IG1fbW9kZWwucHRyKCk7CiB9CiAKLXZvaWQg
UGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxIb3N0aW5nOjpkdW1wQWRkaXRpb25hbFByb3BlcnRp
ZXMoVGV4dFN0cmVhbSYgdHMsIE9wdGlvblNldDxQbGF0Zm9ybUxheWVyVHJlZUFzVGV4dEZsYWdz
PiBmbGFncykKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxIb3N0aW5nOjpkdW1wQWRk
aXRpb25hbFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIE9wdGlvblNldDxXZWJDb3JlOjpQbGF0
Zm9ybUxheWVyVHJlZUFzVGV4dEZsYWdzPiBmbGFncykKIHsKLSAgICBpZiAoZmxhZ3MuY29udGFp
bnMoUGxhdGZvcm1MYXllclRyZWVBc1RleHRGbGFnczo6SW5jbHVkZU1vZGVscykpCisgICAgaWYg
KGZsYWdzLmNvbnRhaW5zKFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0RmxhZ3M6Oklu
Y2x1ZGVNb2RlbHMpKQogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihtb2RlbCBkYXRhIHNpemUg
IiA8PCBtX21vZGVsLT5kYXRhKCktPnNpemUoKSA8PCAiKVxuIjsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441565</attachid>
            <date>2021-10-18 00:44:49 -0700</date>
            <delta_ts>2021-10-18 07:57:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231804-20211018104446.patch</filename>
            <type>text/plain</type>
            <size>53584</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJkZjgzNTNhN2ZiYzJi
MGU5ZDU4MWZlNTBhMTM4Nzk2MTcxYTVmNi4uY2ZmYzUxMzBhNjgxMmE1NDcxZjQxNzVhZTRjNTc2
MGYyOGM0Zjk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTEwLTE1ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29jb2EgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgc2hvdWxkIG5vdCB1c2UgV2ViR0xMYXllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIE1vdmUgdGhlICJzd2FwIGNoYWluIiwg
ZS5nLiB0aGUgZGlzcGxheSBidWZmZXIgSU9TdXJmYWNlCisgICAgICAgIGZyb20gV2ViR0xMYXll
ciB0byBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC4KKyAgICAgICAgSW5zdGFudGlhdGUgV2ViR0xM
YXllciBvbmx5IGluIG5ldyBjbGFzcyBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0ws
CisgICAgICAgIHdoaWNoIGlzIHVzZWQgd2hlbiBXZWJHTCBpcyBydW4gaW4tcHJvY2VzcyBpbiBX
ZWJDb250ZW50IHByb2Nlc3MuCisgICAgICAgIFNpbXBseSBzZXQgdGhlIENBTGF5ZXIuY29udGVu
dHMgd2hlbiBuZXcgZGlzcGxheSBidWZmZXIgaXMgcmVhZHkgYW5kCisgICAgICAgIGNhbGwgInNl
dE5lZWRzRGlzcGxheSIgZGlyZWN0bHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFj
dG9yLgorCisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OnJlYWRDb21wb3NpdGVkUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlRm9yR1BVUHJv
Y2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZvciBHUFVQ
cm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisgICAgICAgIGluIFdlYktpdCBD
aGFuZ2VMb2cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGFpbnRDb21wb3Np
dGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUJhc2U6OnBsYXRmb3JtU3dhcENoYWluKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBpbml0V2l0aERldmljZVBpeGVsUmF0aW86Y29udGVudHNPcGFxdWU6XSk6CisgICAgICAgICgt
W1dlYkdMTGF5ZXIgZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJHTExheWVyIHN3YXBDaGFpbl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXZWJHTExheWVyIHByZXBhcmVGb3JEaXNwbGF5XSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJHTExheWVyU3dhcENoYWluOjpwcmVzZW50KTogRGVsZXRlZC4K
KyAgICAgICAgQ0FMYXllci5jb250ZW50cyBhbmQgc2V0TmVlZHNEaXNwbGF5IGlzIGNhbGxlZCBk
aXJlY3RseSB3aGVuCisgICAgICAgIGEgZ3JhcGhpY3MgY29udGV4dCBoYXMgbmV3IGRpc3BsYXkg
YnVmZmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgQWRk
IGEgbmV3IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZSBjb25zdHJ1Y3RvciBleGl0ZWQgZWFy
bHkuCisgICAgICAgIEJlZm9yZSwgbV9jb250ZXh0T2JqIHdvdWxkIGJlIGNvbnN1bHRlZCBidXQg
dGhpcyBpcyBub3QgcHJvdGVjdGVkCisgICAgICAgIHNvIGl0J3Mgbm90IHNvIHVzZWZ1bC4gQWxz
byBpdCB3YXNuJ3QgdmVyeSBhY2N1cmF0ZSwgYXMgc29tZSBjb25zdHJ1Y3RvcgorICAgICAgICBl
YXJseSBleGlzdHMgcmFuIGFmdGVyIG1fY29udGV4dE9iaiB3YXMgc2V0LiBVc2UgbV90ZXh0dXJl
IHRvIGRldGVjdAorICAgICAgICBmdWxseSBjb25zdHJ1Y3RlZCBvYmplY3QgZm9yIG5vdy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlRm9yR1BVUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMIGZvciBHUFVQcm9jZXNzIGlzIG5vdyBhIG5ldyBjbGFzcywgZGVzY3JpYmVkCisg
ICAgICAgIGluIFdlYktpdCBDaGFuZ2VMb2cuIFJlbW92ZSB0aGUgSG9zdFdpbmRvdyBhcmd1bWVu
dHMgZm9yCisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLCBpdCdzIG5vdCB1c2VkLgor
CiAyMDIxLTEwLTE1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2ZXJ0IHIyODQyMzAsIG15IGxhc3QgZml4ZXMgdG8gdGhlIHdhdGNoIGJ1aWxkIG1h
a2UgaXQgYnJlYWsgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTk3YmNjMTFmYmU0MTdkNWMxODJhOGZhNzc0
MWJjYjJkNDIyMGE4NC4uZWI3NzAwZjBlYzVkN2MxYTllMWM0ZjRmOWI5N2Q1MDhkZjk3NmFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMS0xMC0xNSAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIENvY29hIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIHNob3VsZCBub3QgdXNlIFdlYkdMTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwNAorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4g
SmFja3Nvbi4KKworICAgICAgICBJbXBsZW1lbnQgY2hhbmdlcyBzbyB0aGF0IEdQVSBwcm9jZXNz
IHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wsCisgICAgICAgIHRoZSBuZXcgY2xhc3MgR1BV
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLCBkb2VzIG5vdCB1c2UKKyAgICAgICAgV2ViR0xMYXll
ci4gSW5zdGVhZCwgdGhlIHN3YXAgY2hhaW4gaXMgaW4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgYW5kIHRoZSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wgZXhwb3NlcyBhIGZ1
bmN0aW9uIHRvIGV4dHJhY3QKKyAgICAgICAgdGhlIGRpc3BsYXkgYnVmZmVyIG91dCB0byBiZSBz
ZW50IHRvIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSBz
aW1wbGVyIGNsYXNzIGZvciBHUFVQcm9jZXNzIHNpZGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wK
KyAgICAgICAgaW5zdGFuY2UsIG9uZSB0aGF0IGNhbiBnZXQgdGhlIGRpc3BsYXkgYnVmZmVyIGZy
b20gdGhlIGluc3RhbmNlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW46OnBs
YXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6flJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIE1vdmUgQ29jb2EgaW1w
bGVtZW5hdGlvbiB0byBhbiBPYmplY3RpdmUtQysrIGZpbGUuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2Eu
bW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIFNldCB0aGUgZGlzcGxheSBidWZmZXIgY29u
dGVudHMgZGlyZWN0bHkgdG8gdGhlIFdlYkdMTGF5ZXIgYWZ0ZXIKKyAgICAgICAgcHJlcGFyZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxI
b3N0aW5nLm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhv
c3Rpbmc6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyk6CisgICAgICAgIFVuaWZpZWQgYnVpbGQg
Zml4ZXMuCisKIDIwMjEtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBZGQgQWRBdHRyaWJ1dGlvbkRhZW1vbiBwbGlzdCBvbiBpT1MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYmNmY2ViNzkzMTNlYzA1YzM1NGM1ZmVmZTM0
YWI1MTBhYjMzZTcxNy4uNjEzZTFiOGRiYzNkYTcwZjY4ZWZjMTZmMWIwZmFkMTY3NGM3OTkxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTMzMiw2ICszMzIsNyBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVj
b21wcmVzc2lvblNlc3Npb24ubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29j
b2EubW0KKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9u
dENhc2NhZGVDb3JlVGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250
Q29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBhYmQwNGEyYTA0ZGE2ZDIy
ZDBkMjY4MzRhNTliMjk1ZGMzMGIxZmZhLi41YzJjNGE3ZmFjMTRhNWE0ZDc0MzM1ODAzYzc5OTRi
N2QyMjFhOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM4OCw2ICszODgsNyBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9j
b3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTEyMzZlZmViNzMwOGQ1Mzkw
ZTVmOGNlMGQyNzY5NGRhNDEyZDE5ZS4uMjlmYzUzODY5ZGVhZDIyMmIzNWU1Yjg3NjUzZTM3Mjhj
NTJlN2NjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTQzMiw3ICsxNDMyLDcgQEAKIAkJNDlFQ0VCNzAxNDk5NzkwRDAwQ0RE
M0E0IC8qIEZpbHRlck9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5RUNFQjY2MTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRp
b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NDlFRUQxNDUxMDUxOTY5NDAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFRDEzRjEw
NTE5Njk0MDAwOTlGQUIgLyogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCAqLzsgfTsKIAkJ
NDlFRUQxNDcxMDUxOTY5NDAwMDk5RkFCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFRDE0MTEwNTE5
Njk0MDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCAqLzsgfTsKLQkJNDlGRkJG
M0YxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RkZCRjNEMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJH
TExheWVyLmggKi87IH07CisJCTQ5RkZCRjNGMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUZGQkYz
RDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRBMERBMkZGMTI5QjI0MTkwMEFCNjFFMSAvKiBG
b3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRBMERBMkZEMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0QTBGRkE5RTFBQUY1RTdFMDA2MjgwM0IgLyogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMEZG
QTlDMUFBRjVFNkMwMDYyODAzQiAvKiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRBMEZGQUEy
MUFBRjVFQTIwMDYyODAzQiAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTBGRkFBMDFBQUY1RUEyMDA2
MjgwM0IgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDcyMiw2ICsxMDcyMiw3IEBACiAJCTdC
MTAzMzlBMjU0OTcyMDAwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNz
Q29udGV4dEdMQ1ZBTkdMRS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQU5H
TEUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhD
MUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjE2MTkxMDI3MTk4ODBF
MDBDNDBFQUMgLyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2NEMwQjQyNTRDM0IxNjAwMDZC
NEFGIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBD
NzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NjEwLDYgKzI3NjExLDcgQEAKIAkJ
CQk0OUZGQkYzRTExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSAqLywKIAkJCQkwN0Y1
Q0ZGNDI1ODJBNEY4MDA2NjJFRjUgLyogV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCAqLywKIAkJ
CQkwN0Y1Q0ZGMjI1ODJBNEY4MDA2NjJFRjUgLyogV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EubW0g
Ki8sCisJCQkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFDIC8qIFdlYlByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTENvY29hLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZS5jcHAKaW5kZXggN2FlZTM4ZjM5ZjNiM2RhZDYyNDA4MmRiYmI5MDg0NDYzYmMzMmE0Yi4uZjBj
OGU0ZTQ1NGQzZTJkMzg0MTliNGJjZmU4YTU1OGQ5NWY5OGFkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcApAQCAtMjksNiArMjksMTAgQEAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UoY29uc3QgR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiBhdHRycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5o
CmluZGV4IGU5ZWNiODdjNzBhNTQzMDA4MmY3NDZkNjI2YTA1MWViZGM2NzI1MjUuLmQ5YzczM2I2
YzM0ZTY3ZDNkNTNkODk2ZDE4M2YxNmVkMjk0YzUyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaApAQCAtNDUsNiArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluOworY2xhc3MgSU9TdXJmYWNlOwogI2VuZGlmCiAKIC8vIEEgYmFzZSBjbGFzcyBmb3Ig
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgcHJveHkgc2lkZSBpbXBsZW1lbnRhdGlvbgpAQCAtOTEs
MTUgKzkyLDEzIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2FpdFVudGlsSW5pdGlh
bGl6ZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoY29u
c3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlNYXJrQ29udGV4dENoYW5n
ZWQoKSA9IDA7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4mIHBsYXRmb3JtU3dhcENoYWluKCk7Ci0jZW5kaWYKIAotcHJpdmF0ZToK
LSAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IFJldGFpblB0cjxXZWJHTExheWVyPiBtX3dlYkdMTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRy
PElPU3VyZmFjZT4gbV9kaXNwbGF5QnVmZmVyOwogI2VuZGlmCitwcml2YXRlOgorICAgIHZvaWQg
cGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKICAgICAvLyBHdWFyZGVkIGJ5IHdhaXRVbnRpbEluaXRp
YWxpemVkKCkuCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fYXZhaWxhYmxlRXh0ZW5zaW9uczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IGNjYmM0ZGQxMzJl
YjU2MzlhMmFlNGM2N2NlZDkxYWNkYTdjMjNjMWUuLmRiMGM5MDAyY2E5MGZkOTU5OWQwNGVhMDM3
NjY0MzIzN2YzYzM1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQpAQCAtMzYsNyArMzYsNiBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xN
YW5hZ2VyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaCIKLSNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKICNpbXBvcnQgPENvcmVHcmFwaGlj
cy9DR0JpdG1hcENvbnRleHQuaD4KICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL01ldGFsU1BJLmg+CkBAIC0xOTMsMjkgKzE5Miw3IEBAIHN0YXRpYyBib29s
IG5lZWRzRUFHTE9uTWFjKCkKIH0KICNlbmRpZgogCi1SZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiBob3N0V2luZG93KQotewotICAgIC8vIE1ha2Ug
c3BhY2UgZm9yIHRoZSBpbmNvbWluZyBjb250ZXh0IGlmIHdlJ3JlIGZ1bGwuCi0gICAgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVjeWNsZUNvbnRleHRJ
Zk5lY2Vzc2FyeSgpOwotICAgIGlmIChHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNo
YXJlZE1hbmFnZXIoKS5oYXNUb29NYW55Q29udGV4dHMoKSkKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0KLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNvbnRleHQgPSBhZG9w
dFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cnMsIGhvc3RXaW5kb3csIG51bGxw
dHIpKTsKLQotICAgIGlmICghY29udGV4dC0+bV9jb250ZXh0T2JqKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpLmFkZENvbnRleHQoY29udGV4dC5nZXQoKSk7Ci0KLSAgICByZXR1cm4gY29udGV4dDsK
LX0KLQotUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlRm9yR1BVUHJvY2Vzcyhjb25zdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMm
IGF0dHJzLCBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiogc3dhcENoYWluKQot
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJz
LCBudWxscHRyLCBzd2FwQ2hhaW4pKTsKLX0KLQotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycywg
SG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluKiBzd2FwQ2hh
aW4pCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0wo
YXR0cnMpCiB7CiAgICAgbV9pc0ZvcldlYkdMMiA9IGF0dHJzLndlYkdMVmVyc2lvbiA9PSBHcmFw
aGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyOwpAQCAtMzUzLDE4ICszMzAsNiBAQCBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzIGF0dAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogICAgIGF0
dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmlu
ZyB2YWxpZGF0aW9uLgogCi0gICAgaWYgKHN3YXBDaGFpbikKLSAgICAgICAgbV9zd2FwQ2hhaW4g
PSBzd2FwQ2hhaW47Ci0gICAgZWxzZSB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
Ci0gICAgICAgIG1fd2ViR0xMYXllciA9IGFkb3B0TlMoW1tXZWJHTExheWVyIGFsbG9jXSBpbml0
V2l0aERldmljZVBpeGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1
ZTohYXR0cnMuYWxwaGFdKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIFttX3dlYkdMTGF5ZXIg
c2V0TmFtZTpAIldlYkdMIExheWVyIl07Ci0jZW5kaWYKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCi0gICAgICAgIG1fc3dhcENoYWluID0gJlttX3dlYkdMTGF5ZXIgc3dhcENoYWluXTsK
LSAgICB9Ci0KICAgICAvLyBDcmVhdGUgdGhlIHRleHR1cmUgdGhhdCB3aWxsIGJlIHVzZWQgZm9y
IHRoZSBmcmFtZWJ1ZmZlci4KICAgICBHTGVudW0gdGV4dHVyZVRhcmdldCA9IGRyYXdpbmdCdWZm
ZXJUZXh0dXJlVGFyZ2V0KCk7CiAKQEAgLTQzOSwxNCArNDA0LDEyIEBAIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjp+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woKQogICAgIH0KICAgICBpZiAobV9k
aXNwbGF5QnVmZmVyUGJ1ZmZlcikKICAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxh
eU9iaiwgbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlcik7Ci0gICAgaWYgKG1fc3dhcENoYWluKSB7Ci0g
ICAgICAgIGF1dG8gcmVjeWNsZWRCdWZmZXIgPSBtX3N3YXBDaGFpbi0+cmVjeWNsZUJ1ZmZlcigp
OwotICAgICAgICBpZiAocmVjeWNsZWRCdWZmZXIuaGFuZGxlKQotICAgICAgICAgICAgRUdMX0Rl
c3Ryb3lTdXJmYWNlKG1fZGlzcGxheU9iaiwgcmVjeWNsZWRCdWZmZXIuaGFuZGxlKTsKLSAgICAg
ICAgYXV0byBjb250ZW50c0hhbmRsZSA9IG1fc3dhcENoYWluLT5kZXRhY2hDbGllbnQoKTsKLSAg
ICAgICAgaWYgKGNvbnRlbnRzSGFuZGxlKQotICAgICAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNl
KG1fZGlzcGxheU9iaiwgY29udGVudHNIYW5kbGUpOwotICAgIH0KKyAgICBhdXRvIHJlY3ljbGVk
QnVmZmVyID0gbV9zd2FwQ2hhaW4ucmVjeWNsZUJ1ZmZlcigpOworICAgIGlmIChyZWN5Y2xlZEJ1
ZmZlci5oYW5kbGUpCisgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIHJl
Y3ljbGVkQnVmZmVyLmhhbmRsZSk7CisgICAgYXV0byBjb250ZW50c0hhbmRsZSA9IG1fc3dhcENo
YWluLmRldGFjaENsaWVudCgpOworICAgIGlmIChjb250ZW50c0hhbmRsZSkKKyAgICAgICAgRUdM
X0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxheU9iaiwgY29udGVudHNIYW5kbGUpOwogICAgIGlmICht
X2NvbnRleHRPYmopIHsKICAgICAgICAgbWFrZUN1cnJlbnQobV9kaXNwbGF5T2JqLCBFR0xfTk9f
Q09OVEVYVCk7CiAgICAgICAgIEVHTF9EZXN0cm95Q29udGV4dChtX2Rpc3BsYXlPYmosIG1fY29u
dGV4dE9iaik7CkBAIC00NTUsNiArNDE4LDE2IEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp+
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woKQogICAgIExPRyhXZWJHTCwgIkRlc3Ryb3llZCBhIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMICglcCkuIiwgdGhpcyk7CiB9CiAKK2Jvb2wgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmlzVmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RleHR1cmU7
Cit9CisKK1BsYXRmb3JtTGF5ZXIqIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwbGF0Zm9ybUxh
eWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogR0NHTGVudW0gR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OmRyYXdpbmdCdWZmZXJUZXh0dXJlVGFyZ2V0KCkKIHsKICNpZiBQ
TEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTU2NywxMiArNTQwLDEwIEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFja2luZygpCiAgICAgICAgIG1f
ZGlzcGxheUJ1ZmZlclBidWZmZXIgPSBFR0xfTk9fU1VSRkFDRTsKICAgICB9CiAgICAgLy8gUmVz
ZXQgdGhlIGZ1dHVyZSByZWN5Y2xlZCBidWZmZXIgbm93LCBiZWNhdXNlIGl0IG1vc3QgbGlrZWx5
IHdpbGwgbm90IGJlIHJldXNhYmxlIGF0IHRoZSB0aW1lIGl0IHdpbGwgYmUgcmV1c2VkLgotICAg
IGlmIChtX3N3YXBDaGFpbikgewotICAgICAgICBhdXRvIHJlY3ljbGVkQnVmZmVyID0gbV9zd2Fw
Q2hhaW4tPnJlY3ljbGVCdWZmZXIoKTsKLSAgICAgICAgaWYgKHJlY3ljbGVkQnVmZmVyLmhhbmRs
ZSkKLSAgICAgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Rpc3BsYXlPYmosIHJlY3ljbGVk
QnVmZmVyLmhhbmRsZSk7Ci0gICAgICAgIHJlY3ljbGVkQnVmZmVyLnN1cmZhY2UucmVzZXQoKTsK
LSAgICB9CisgICAgYXV0byByZWN5Y2xlZEJ1ZmZlciA9IG1fc3dhcENoYWluLnJlY3ljbGVCdWZm
ZXIoKTsKKyAgICBpZiAocmVjeWNsZWRCdWZmZXIuaGFuZGxlKQorICAgICAgICBFR0xfRGVzdHJv
eVN1cmZhY2UobV9kaXNwbGF5T2JqLCByZWN5Y2xlZEJ1ZmZlci5oYW5kbGUpOworICAgIHJlY3lj
bGVkQnVmZmVyLnN1cmZhY2UucmVzZXQoKTsKICAgICByZXR1cm4gYWxsb2NhdGVBbmRCaW5kRGlz
cGxheUJ1ZmZlckJhY2tpbmcoKTsKIH0KIApAQCAtNzI0LDEwICs2OTUsMTAgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6cHJlcGFyZUZvckRpc3BsYXkoKQogICAgIC8vIFRoZSBJT1N1
cmZhY2Ugd2lsbCBiZSB1c2VkIGZyb20gb3RoZXIgZ3JhcGhpY3Mgc3Vic3lzdGVtLCBzbyBmbHVz
aCBHTCBjb21tYW5kcy4KICAgICBnbDo6Rmx1c2goKTsKIAotICAgIGF1dG8gcmVjeWNsZWRCdWZm
ZXIgPSBtX3N3YXBDaGFpbi0+cmVjeWNsZUJ1ZmZlcigpOworICAgIGF1dG8gcmVjeWNsZWRCdWZm
ZXIgPSBtX3N3YXBDaGFpbi5yZWN5Y2xlQnVmZmVyKCk7CiAKICAgICBFR0xfUmVsZWFzZVRleElt
YWdlKG1fZGlzcGxheU9iaiwgbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciwgRUdMX0JBQ0tfQlVGRkVS
KTsKLSAgICBtX3N3YXBDaGFpbi0+cHJlc2VudCh7IFdURk1vdmUobV9kaXNwbGF5QnVmZmVyQmFj
a2luZyksIG1fZGlzcGxheUJ1ZmZlclBidWZmZXIgfSk7CisgICAgbV9zd2FwQ2hhaW4ucHJlc2Vu
dCh7IFdURk1vdmUobV9kaXNwbGF5QnVmZmVyQmFja2luZyksIG1fZGlzcGxheUJ1ZmZlclBidWZm
ZXIgfSk7CiAgICAgbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciA9IEVHTF9OT19TVVJGQUNFOwogCiAg
ICAgYm9vbCBoYXNOZXdCYWNraW5nID0gZmFsc2U7CkBAIC03NjMsNyArNzM0LDcgQEAgR3JhcGhp
Y3NDb250ZXh0R0xDViogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFzQ1YoKQogCiBzdGQ6Om9w
dGlvbmFsPFBpeGVsQnVmZmVyPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6cmVhZENvbXBvc2l0
ZWRSZXN1bHRzKCkKIHsKLSAgICBhdXRvJiBkaXNwbGF5QnVmZmVyID0gbV9zd2FwQ2hhaW4tPmRp
c3BsYXlCdWZmZXIoKTsKKyAgICBhdXRvJiBkaXNwbGF5QnVmZmVyID0gbV9zd2FwQ2hhaW4uZGlz
cGxheUJ1ZmZlcigpOwogICAgIGlmICghZGlzcGxheUJ1ZmZlci5zdXJmYWNlIHx8ICFkaXNwbGF5
QnVmZmVyLmhhbmRsZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoZGlz
cGxheUJ1ZmZlci5zdXJmYWNlLT5zaXplKCkgIT0gZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUo
KSkKQEAgLTc5NSwxMiArNzY2LDEyIEBAIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpyZWFkQ29tcG9zaXRlZFJlc3VsdHMoKQogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiBSZWZQdHI8TWVkaWFTYW1wbGU+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpCiB7Ci0gICAgYXV0byAmZGlz
cGxheUJ1ZmZlciA9IG1fc3dhcENoYWluLT5kaXNwbGF5QnVmZmVyKCk7CisgICAgYXV0byAmZGlz
cGxheUJ1ZmZlciA9IG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKTsKICAgICBpZiAoIWRpc3Bs
YXlCdWZmZXIuc3VyZmFjZSB8fCAhZGlzcGxheUJ1ZmZlci5oYW5kbGUpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGlmIChkaXNwbGF5QnVmZmVyLnN1cmZhY2UtPnNpemUoKSAhPSBnZXRJ
bnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBt
X3N3YXBDaGFpbi0+bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOworICAgIG1fc3dhcENoYWluLm1h
cmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKICAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQ
aXhlbEJ1ZmZlcihkaXNwbGF5QnVmZmVyLnN1cmZhY2UtPnN1cmZhY2UoKSk7CiAgICAgaWYgKCFw
aXhlbEJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2VDb2NvYS5tbQppbmRleCAxOTM0ZWY1ZWYz
MzY5YTIzNjk5NmIyZTZkZTBkNzYzOGIxOTE5ZmFkLi5iNzI1OGU4NjQ1ZjE0MDQ2MzJiYjAyODRl
ZDg5ZGY3OTA4M2RlMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlCYXNlQ29jb2EubW0KQEAgLTQzLDkgKzQzLDkgQEAgdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKICAgICBhdXRv
IGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKLSAgICAgICAgbV93ZWJHTExheWVyID0gYWRvcHROUyhbW1dlYkdMTGF5ZXIgYWxsb2Nd
IGluaXRXaXRoRGV2aWNlUGl4ZWxSYXRpbzphdHRycy5kZXZpY2VQaXhlbFJhdGlvIGNvbnRlbnRz
T3BhcXVlOiFhdHRycy5hbHBoYV0pOworICAgIG1fd2ViR0xMYXllciA9IGFkb3B0TlMoW1tXZWJH
TExheWVyIGFsbG9jXSBpbml0V2l0aERldmljZVBpeGVsUmF0aW86YXR0cnMuZGV2aWNlUGl4ZWxS
YXRpbyBjb250ZW50c09wYXF1ZTohYXR0cnMuYWxwaGFdKTsKICNpZm5kZWYgTkRFQlVHCi0gICAg
ICAgIFttX3dlYkdMTGF5ZXIgc2V0TmFtZTpAIldlYkdMIExheWVyIl07CisgICAgW21fd2ViR0xM
YXllciBzZXROYW1lOkAiV2ViR0wgTGF5ZXIiXTsKICNlbmRpZgogICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKIH0KQEAgLTYzLDIwICs2MywxMiBAQCBHcmFwaGljc0NvbnRleHRHTENWKiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZTo6YXNDVigpCiB9CiAjZW5kaWYKIAotR3Jh
cGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4mIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHlCYXNlOjpwbGF0Zm9ybVN3YXBDaGFpbigpCi17Ci0gICAgcmV0dXJuIFttX3dlYkdMTGF5
ZXIgc3dhcENoYWluXTsKLX0KLQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiBSZWZQdHI8TWVk
aWFTYW1wbGU+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlOjpwYWludENvbXBvc2l0
ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpCiB7Ci0gICAgYXV0byYgc2MgPSBwbGF0Zm9ybVN3YXBD
aGFpbigpOwotICAgIGF1dG8mIGRpc3BsYXlCdWZmZXIgPSBzYy5kaXNwbGF5QnVmZmVyKCk7Ci0g
ICAgaWYgKCFkaXNwbGF5QnVmZmVyLnN1cmZhY2UpCisgICAgaWYgKCFtX2Rpc3BsYXlCdWZmZXIp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHNjLm1hcmtEaXNwbGF5QnVmZmVySW5Vc2Uo
KTsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihkaXNwbGF5QnVm
ZmVyLnN1cmZhY2UtPnN1cmZhY2UoKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNW
UGl4ZWxCdWZmZXIobV9kaXNwbGF5QnVmZmVyLT5zdXJmYWNlKCkpOwogICAgIGlmICghcGl4ZWxC
dWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBNZWRpYVNhbXBsZUFW
Rk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlKFdURk1vdmUoKnBpeGVsQnVmZmVyKSwgTWVkaWFTYW1w
bGVBVkZPYmpDOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duLCB0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAppbmRleCAx
NDRjNWE0MjRhN2EzZTQ2MzRiODY0YjNiZjIwNzAxNzI2NjI0NTVkLi4zYzIyZjVkNjRkODhjOTdm
YmU0OGIyZmFmNGQ2Y2Q0NWQ1N2JiNDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCkBAIC0yMywyMSArMjMsMTUgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgotI2ltcG9ydCA8
bWVtb3J5PgotI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAKLS8vIEEgbGF5ZXIgY2xhc3MgaW1wbGVtZW50aW5nIGZyb250IGJ1
ZmZlciBtYW5hZ2VtZW50IG9mIGEgMy1idWZmZXJpbmcgc3dhcAotLy8gY2hhaW4gb2YgSU9TdXJm
YWNlcy4KKy8vIEEgbGF5ZXIgY2xhc3Mgc2hvd2luZyBvbmUgSU9TdXJmYWNlLgogQGludGVyZmFj
ZSBXZWJHTExheWVyIDogQ0FMYXllcgogCiAtIChpZClpbml0V2l0aERldmljZVBpeGVsUmF0aW86
KGZsb2F0KWRldmljZVBpeGVsUmF0aW8gY29udGVudHNPcGFxdWU6KGJvb2wpY29udGVudHNPcGFx
dWU7CiAKLS0gKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluJikg
c3dhcENoYWluOwotCiBAZW5kCiAKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIubW0KaW5kZXggYTZlOWNmZjUwM2EzZDJmYjY2NWNiNzAwMzQ1MWFmNTFkZjQ2Nzg5My4uZGU5
MDMxNTU2OTExMTM2YzMxZjVkNjhlZTI0M2Y2N2VmNjZkZThjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCkBAIC0zMSwy
MyArMzEsOCBAQAogI2ltcG9ydCAiR3JhcGhpY3NMYXllci5oIgogI2ltcG9ydCAiR3JhcGhpY3NM
YXllckNBLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXIuaCIKLSNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvUXVhcnR6Q29yZVNQSS5oPgogCi1jbGFzcyBXZWJHTExheWVyU3dhcENoYWluIGZpbmFs
IDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIHsK
LXB1YmxpYzoKLSAgICBleHBsaWNpdCBXZWJHTExheWVyU3dhcENoYWluKFdlYkdMTGF5ZXIqIGxh
eWVyKSAgOiBtX2xheWVyKGxheWVyKSB7IH07Ci0gICAgfldlYkdMTGF5ZXJTd2FwQ2hhaW4oKSBv
dmVycmlkZSA9IGRlZmF1bHQ7Ci0gICAgdm9pZCBwcmVzZW50KEJ1ZmZlciYmKSBvdmVycmlkZTsK
LQotICAgIFdlYkNvcmU6OklPU3VyZmFjZSogZGlzcGxheVN1cmZhY2UoKSB7IHJldHVybiBtX2Rp
c3BsYXlCdWZmZXIuc3VyZmFjZS5nZXQoKTsgfQotcHJpdmF0ZToKLSAgICBXZWJHTExheWVyKiBj
b25zdCBtX2xheWVyOwotfTsKLQotQGltcGxlbWVudGF0aW9uIFdlYkdMTGF5ZXIgewotICAgIEJP
T0wgX3ByZXBhcmVkRm9yRGlzcGxheTsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkdMTGF5ZXJTd2Fw
Q2hhaW4+IF9zd2FwQ2hhaW47Ci19CitAaW1wbGVtZW50YXRpb24gV2ViR0xMYXllcgogCiAtIChp
ZClpbml0V2l0aERldmljZVBpeGVsUmF0aW86KGZsb2F0KWRldmljZVBpeGVsUmF0aW8gY29udGVu
dHNPcGFxdWU6KGJvb2wpY29udGVudHNPcGFxdWUKIHsKQEAgLTU1LDcgKzQwLDYgQEAgcHJpdmF0
ZToKICAgICBzZWxmLnRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RJZGVudGl0eTsKICAgICBzZWxm
LmNvbnRlbnRzT3BhcXVlID0gY29udGVudHNPcGFxdWU7CiAgICAgc2VsZi5jb250ZW50c1NjYWxl
ID0gZGV2aWNlUGl4ZWxSYXRpbzsKLSAgICBfc3dhcENoYWluLmVtcGxhY2Uoc2VsZik7CiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKQEAgLTc1LDM3ICs1OSwxNSBAQCBwcml2YXRlOgogICAgIFtzdXBl
ciBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZShwLngsIDEuMCAtIHAueSldOwogfQogCi0tIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiYpIHN3YXBDaGFpbgot
ewotICAgIHJldHVybiBfc3dhcENoYWluLnZhbHVlKCk7Ci19Ci0KLS0gKHZvaWQpcHJlcGFyZUZv
ckRpc3BsYXkKLXsKLSAgICBbc2VsZiBzZXROZWVkc0Rpc3BsYXldOwotICAgIF9wcmVwYXJlZEZv
ckRpc3BsYXkgPSBZRVM7Ci19Ci0KIC0gKHZvaWQpZGlzcGxheQogewotICAgIGlmIChfc3dhcENo
YWluLT5kaXNwbGF5U3VyZmFjZSgpICYmIF9wcmVwYXJlZEZvckRpc3BsYXkpIHsKLSAgICAgICAg
c2VsZi5jb250ZW50cyA9IF9zd2FwQ2hhaW4tPmRpc3BsYXlTdXJmYWNlKCktPmFzTGF5ZXJDb250
ZW50cygpOwotICAgICAgICBbc2VsZiByZWxvYWRWYWx1ZUZvcktleVBhdGg6QCJjb250ZW50cyJd
OwotICAgIH0KKyAgICAvLyBTaG93IHRoZSBzZWxmLmNvbnRlbnRzIGFzIHRoZSBjb250ZW50cyBi
eSBub3QgZG9pbmcgYW55dGhpbmcgaW4gdGhpcyBmdW5jdGlvbi4KICAgICBhdXRvIGxheWVyID0g
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlk
Z2Ugdm9pZCopc2VsZik7CiAgICAgaWYgKGxheWVyICYmIGxheWVyLT5vd25lcigpKQogICAgICAg
ICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyLmdl
dCgpKTsKIAotICAgIF9wcmVwYXJlZEZvckRpc3BsYXkgPSBOTzsKIH0KIAogQGVuZAogCi12b2lk
IFdlYkdMTGF5ZXJTd2FwQ2hhaW46OnByZXNlbnQoQnVmZmVyJiYgYnVmZmVyKQotewotICAgIEFT
U0VSVCghbV9zcGFyZUJ1ZmZlci5zdXJmYWNlKTsKLSAgICBHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbjo6cHJlc2VudChXVEZNb3ZlKGJ1ZmZlcikpOwotICAgIFttX2xheWVyIHBy
ZXBhcmVGb3JEaXNwbGF5XTsKLX0KLQogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjU2MjVlZGJmZTI1NGUzNzVmZWYxNjk4MTY5ZjUyZWZkNGFhNzcyMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0wLDAgKzEsOTggQEAKKwor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisjaW1wb3J0ICJHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTC5oIiAvLyBOT0xJTlQKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlci5oIgorI2ltcG9ydCAiV2ViR0xMYXllci5oIgorI2ltcG9ydCA8d3RmL0Jsb2NrT2Jq
Q0V4Y2VwdGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIHsKKworc3Rh
dGljIFJldGFpblB0cjxXZWJHTExheWVyPiBjcmVhdGVXZWJHTExheWVyKGNvbnN0IEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcykKK3sKKyAgICBSZXRhaW5QdHI8V2ViR0xM
YXllcj4gbGF5ZXI7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgbGF5ZXIg
PSBhZG9wdE5TKFtbV2ViR0xMYXllciBhbGxvY10gaW5pdFdpdGhEZXZpY2VQaXhlbFJhdGlvOmF0
dHJpYnV0ZXMuZGV2aWNlUGl4ZWxSYXRpbyBjb250ZW50c09wYXF1ZTohYXR0cmlidXRlcy5hbHBo
YV0pOworI2lmbmRlZiBOREVCVUcKKyAgICBbbGF5ZXIgc2V0TmFtZTpAIldlYkdMIExheWVyIl07
CisjZW5kaWYKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgcmV0dXJuIGxheWVy
OworfQorCisvLyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB0eXBlIHRoYXQgaXMgdXNlZCB3aGVu
IFdlYkdMIGlzIHJ1biBpbi1wcm9jZXNzIGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KK2NsYXNzIFdl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCB7CitwdWJsaWM6CisgICAgfldlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TE9wZW5HTCgpID0gZGVmYXVsdDsKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNWYWxpZCgpICYmIG1fd2ViR0xMYXllcjsgfQorICAg
IC8vIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIG92ZXJyaWRlcy4KKyAgICBQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxD
QUxheWVyKj4obV93ZWJHTExheWVyLmdldCgpKTsgfQorICAgIHZvaWQgcHJlcGFyZUZvckRpc3Bs
YXkoKSBmaW5hbDsKK3ByaXZhdGU6CisgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgICAgICA6IEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpCisgICAgICAgICwgbV93ZWJHTExheWVy
KGNyZWF0ZVdlYkdMTGF5ZXIoYXR0cmlidXRlcykpCisgICAgeworICAgIH0KKyAgICBSZXRhaW5Q
dHI8V2ViR0xMYXllcj4gbV93ZWJHTExheWVyOworCisgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOworfTsKKwordm9pZCBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OnByZXBhcmVGb3JEaXNwbGF5KCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6cHJlcGFyZUZvckRpc3BsYXkoKTsKKyAgICBhdXRvIHN1cmZhY2UgPSBtX3N3YXBDaGFpbi5k
aXNwbGF5QnVmZmVyKCkuc3VyZmFjZS5nZXQoKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAg
IHJldHVybjsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKyAgICBbbV93ZWJHTExh
eWVyIHNldENvbnRlbnRzOnN1cmZhY2UtPmFzTGF5ZXJDb250ZW50cygpXTsKKyAgICBbbV93ZWJH
TExheWVyIHNldE5lZWRzRGlzcGxheV07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwor
fQorCit9CisKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywg
SG9zdFdpbmRvdyopCit7CisgICAgLy8gTWFrZSBzcGFjZSBmb3IgdGhlIGluY29taW5nIGNvbnRl
eHQgaWYgd2UncmUgZnVsbC4KKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNo
YXJlZE1hbmFnZXIoKS5yZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCk7CisgICAgaWYgKEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmhhc1Rvb01hbnlDb250
ZXh0cygpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dFJlZihuZXcgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmli
dXRlcykpKTsKKyAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2Vy
KCkuYWRkQ29udGV4dChjb250ZXh0LmdldCgpKTsKKworICAgIHJldHVybiBjb250ZXh0OworfQor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCmluZGV4IGQ0
MjgxYWE3MDZmMjZmNjVjZGZmMWQ3NTIyYmYwYmU1ZWI5MjFkYWEuLjNkZDc4ODAwZDFiNTc1YWEx
NTNiYjliM2RjNTNkZGJkMGYwNTg1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmNwcApAQCAtNDcsNiArNDcsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYg
IVBMQVRGT1JNKENPQ09BKQorYm9vbCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6aXNWYWxpZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwogdm9pZCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6cmVzZXRCdWZmZXJzVG9BdXRvQ2xlYXIoKQogewogICAgIEdDR0x1aW50
IGJ1ZmZlcnMgPSBHcmFwaGljc0NvbnRleHRHTDo6Q09MT1JfQlVGRkVSX0JJVDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKaW5kZXggMjI3N2IxN2NjNzA5ODg4NzY4MjZjMDg2MmY3
YTcxODM5NzQyNWRmYS4uOTk0ZWYxNTIxMzA1NWYwOTdhMDhmYzkyMGJlNWUyZjY5MTMwN2U1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgogI2luY2x1ZGUgIklPU3Vy
ZmFjZS5oIgogI2VuZGlmCiAKQEAgLTY3LDcgKzY4LDYgQEAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsK
IE9CSkNfQ0xBU1MgV2ViR0xMYXllcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xD
VkFOR0xFOwogfQogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpAQCAtOTcsMjIgKzk3LDE4IEBA
IGNsYXNzIFRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllcjsKIAogdHlwZWRlZiBXVEY6Okhh
c2hNYXA8Q1N0cmluZywgdWludDY0X3Q+IFNoYWRlck5hbWVIYXNoOwogCi1jbGFzcyBXRUJDT1JF
X0VYUE9SVCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0Nv
bnRleHRHTAorY2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgOiBw
dWJsaWMgR3JhcGhpY3NDb250ZXh0R0wKIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
LCBIb3N0V2luZG93Kik7CiAgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woKTsK
LQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRpYyBSZWY8R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w+IGNyZWF0ZUZvckdQVVByb2Nlc3MoY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzJiwgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4qKTsKLQotICAgIENBTGF5
ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiByZWludGVycHJldF9jYXN0
PENBTGF5ZXIqPihtX3dlYkdMTGF5ZXIuZ2V0KCkpOyB9CisgICAgUGxhdGZvcm1MYXllciogcGxh
dGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
R0xEaXNwbGF5IHBsYXRmb3JtRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheU9iajsg
fQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcgcGxhdGZvcm1Db25maWcoKSBj
b25zdCB7IHJldHVybiBtX2NvbmZpZ09iajsgfQogICAgIHN0YXRpYyBHQ0dMZW51bSBkcmF3aW5n
QnVmZmVyVGV4dHVyZVRhcmdldFF1ZXJ5KCk7CiAgICAgc3RhdGljIEdDR0xpbnQgRUdMRHJhd2lu
Z0J1ZmZlclRleHR1cmVUYXJnZXQoKTsKICNlbHNlCi0gICAgc3RhdGljIFJlZjxHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTD4gY3JlYXRlRm9yR1BVUHJvY2Vzcyhjb25zdCBHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMmKTsKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qg
ZmluYWw7CiAjZW5kaWYKICNpZiBVU0UoQU5HTEUpCkBAIC01MTgsNyArNTE0LDcgQEAgcHVibGlj
OgogCiAgICAgdW5zaWduZWQgdGV4dHVyZVNlZWQoR0NHTHVpbnQgdGV4dHVyZSkgeyByZXR1cm4g
bV9zdGF0ZS50ZXh0dXJlU2VlZENvdW50LmNvdW50KHRleHR1cmUpOyB9CiAKLSAgICB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7CisgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIG92
ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogICAgIEdy
YXBoaWNzQ29udGV4dEdMQ1YqIGFzQ1YoKSBmaW5hbDsKQEAgLTUzOCwxMyArNTM0LDEzIEBAIHB1
YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CisgICAgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzKTsKKyAgICBib29s
IGlzVmFsaWQoKSBjb25zdDsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFw
aGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiogPSBudWxscHRyKTsKLSNlbHNlCi0gICAg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLCBIb3N0
V2luZG93Kik7CisgICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4gbV9zd2Fw
Q2hhaW47CiAjZW5kaWYKLQorcHJpdmF0ZToKICAgICAvLyBDYWxsZWQgb25jZSBieSBhbGwgdGhl
IHB1YmxpYyBlbnRyeSBwb2ludHMgdGhhdCBldmVudHVhbGx5IGNhbGwgT3BlbkdMLgogICAgIC8v
IENhbGxlZCBvbmNlIGJ5IGFsbCB0aGUgcHVibGljIGVudHJ5IHBvaW50cyBvZiBFeHRlbnNpb25z
R0wgdGhhdCBldmVudHVhbGx5IGNhbGwgT3BlbkdMLgogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJy
ZW50KCkgV0FSTl9VTlVTRURfUkVUVVJOOwpAQCAtNTg2LDkgKzU4Miw3IEBAIHByaXZhdGU6CiAK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluKiBtX3N3YXBDaGFpbiB7IG51bGxwdHIgfTsKICAgICAvLyBUT0RPOiB0aGlzIHNob3Vs
ZCBiZSByZW1vdmVkIG9uY2UgdGhlIGNvbnRleHQgZHJhd3MgdG8gYSBpbWFnZSBidWZmZXIuIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MTc5IC4KLSAgICBS
ZXRhaW5QdHI8V2ViR0xMYXllcj4gbV93ZWJHTExheWVyOwogICAgIEVHTERpc3BsYXkgbV9kaXNw
bGF5T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250
ZXh0T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0xDb25maWcg
bV9jb25maWdPYmogeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDhkM2Q2NWMxN2Y5ZDM0ZTE1NmI1MGExOGU4NDU1OGNh
MTFhNTJiYzUuLjk0NGZkN2VmN2I1ZDM0OWEwYjJlNjUzZDc4NzIxMWEzMmFmY2FiNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0Nv
bnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCkBAIC02Niw3
ICs2Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVmUHRy
PEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRl
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KikKIHsK
ICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwogICAgIHN0YXRpYyBib29sIHN1
Y2Nlc3MgPSB0cnVlOwpAQCAtODUsNyArODUsNyBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0Rwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wgb2JqZWN0IGZpcnN0IGluIG9yZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQg
Y29udGV4dCBvbiB0aGlzIHRocmVhZC4KLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcywgaG9zdFdpbmRvdykpOworICAgIGF1
dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1
dGVzKSk7CiAKICNpZiBVU0UoTElCRVBPWFkpICYmIFVTRShPUEVOR0xfRVMpICYmIEVOQUJMRShX
RUJHTDIpCiAgICAgLy8gQmFpbCBpZiBHTEVTMyB3YXMgcmVxdWVzdGVkIGJ1dCBjYW5ub3QgYmUg
cHJvdmlkZWQuCkBAIC05OCwxMyArOTgsOCBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogICAg
IHJldHVybiBjb250ZXh0OwogfQogCi1SZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGVGb3JHUFVQcm9jZXNzKGNvbnN0IEdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcykKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzLCBudWxscHRyKSk7Ci19Ci0KICNp
ZiBVU0UoQU5HTEUpCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cq
KQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogR3JhcGhpY3NDb250ZXh0
R0woYXR0cmlidXRlcykKIHsKICNpZiBFTkFCTEUoV0VCR0wyKQpAQCAtMTczLDcgKzE2OCw3IEBA
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0CiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7
CiB9CiAjZWxzZQotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KikK
K0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IEdyYXBoaWNzQ29udGV4dEdM
KGF0dHJpYnV0ZXMpCiB7CiAjaWYgVVNFKE5JQ09TSUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWVlZTE4ZDYyZjA1MDlmMDA5ZjM0YzNlZGU2OGQzNWUwZDA4OTY1
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9H
UFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJH
TCkKKyNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnNHTC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaD4KKworY2xhc3MgR1BVUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEdQVVByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTD4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBh
dHRyaWJ1dGVzKQorICAgIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBH
UFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkpOwor
ICAgICAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICByZXR1cm4gY29udGV4dDsKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIoKSB7IHJldHVybiBtX3N3
YXBDaGFpbi5kaXNwbGF5QnVmZmVyKCkuc3VyZmFjZS5nZXQoKTsgfQorICAgIHZvaWQgbWFya0Rp
c3BsYXlCdWZmZXJJblVzZSgpIHsgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNwbGF5QnVmZmVy
SW5Vc2UoKTsgfQorI2VuZGlmCitwcml2YXRlOgorICAgIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRl
cykKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzKQorICAgIHsK
KyAgICB9Cit9OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggMjU2MDM5N2E1
MzcyNzEyMDQ2OTA4MjdiOTcwMTVlOGI3M2JlZTc5Yy4uZWY0MWVhNjA4MmJhYjNmM2MyOGZiMzIx
N2ZhMTg2NDkyODNiNmRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTI5LDIyICsyOSwx
NyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJRdWFs
aWZpZWRSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkV2ViR0xSZW5kZXJpbmdSZXNvdXJjZXNS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAi
U3RyZWFtU2VydmVyQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXh0ZW5zaW9uc0dM
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkQXNzZXJ0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLSNpZiBQTEFURk9STShDT0NPQSkK
LSNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg+
Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dE
aXNwbGF5Q29uZmlndXJhdGlvbi5oPgogI2VuZGlmCkBAIC0xMTQsNyArMTA5LDcgQEAgcHJpdmF0
ZToKIHByb3RlY3RlZDoKICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBSZWZQdHI8SVBDOjpTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rpb247Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMPiBtX2NvbnRleHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVh
bVRocmVhZCk7CisgICAgUmVmUHRyPEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4g
bV9jb250ZXh0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJlYWQpOwogICAgIEdyYXBo
aWNzQ29udGV4dEdMSWRlbnRpZmllciBtX2dyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcjsKICAg
ICBSZWY8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW5kZXJpbmdCYWNrZW5kOwogICAgIFNj
b3BlZFdlYkdMUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1Jl
cXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKaW5kZXggOTcwZDhjMmU3
OTA5ZThmNzFmYWQwYzliZDJjNjQzMWZjZDk1YWQzMi4uYjQzN2E1YmVlY2Q1ZDZhYzU4M2NhNTk3
YTk1ZTI3NzEyZmFkZDYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcApA
QCAtNzMsMjAgKzczLDIyIEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2Vy
dElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmNyZWF0ZUZvckdQVVByb2Nlc3MoV1RGTW92ZShhdHRyaWJ1dGVzKSwgJm1f
c3dhcENoYWluKTsKKyAgICBtX2NvbnRleHQgPSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKIH0KIAogdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBh
c3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwogICAgIG1fY29udGV4dC0+cHJlcGFyZUZv
ckRpc3BsYXkoKTsKKyAgICBJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIgPSBtX2NvbnRleHQtPmRp
c3BsYXlCdWZmZXIoKTsKICAgICBNYWNoU2VuZFJpZ2h0IHNlbmRSaWdodDsKLSAgICBpZiAoYXV0
byogc3VyZmFjZSA9IG1fc3dhcENoYWluLmRpc3BsYXlCdWZmZXIoKS5zdXJmYWNlLmdldCgpKSB7
CisgICAgaWYgKGRpc3BsYXlCdWZmZXIpIHsKKyAgICAgICAgbV9jb250ZXh0LT5tYXJrRGlzcGxh
eUJ1ZmZlckluVXNlKCk7CiAjaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElU
WSkKICAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRoZSBX
ZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJvY2Vz
cyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAgIHN1
cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOwor
ICAgICAgICBkaXNwbGF5QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKTsKICNlbmRpZgotICAgICAgICBzZW5kUmlnaHQgPSBzdXJmYWNlLT5jcmVh
dGVTZW5kUmlnaHQoKTsKKyAgICAgICAgc2VuZFJpZ2h0ID0gZGlzcGxheUJ1ZmZlci0+Y3JlYXRl
U2VuZFJpZ2h0KCk7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc2VuZFJp
Z2h0KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW4uY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2luLmNwcAppbmRleCAxY2FmYjMzOWJl
M2FhZmIzZDg4YzViMzViNzBjOGUwYjRjZWVkOGM2Li43MGYwYzQ2NDAzMmI5MzNjOGY0NTkxOWM4
NjhhYzY3NmRjMTcxZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbi5jcHAKQEAgLTU3
LDcgKzU3LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW46OlJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMV2luKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKIAogdm9pZCBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFdpbjo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCiB7Ci0gICAgbV9jb250ZXh0ID0g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZUZvckdQVVByb2Nlc3MoV1RGTW92ZShhdHRy
aWJ1dGVzKSk7CisgICAgbV9jb250ZXh0ID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAxZWVhNGIwYjQx
MmJlMWZkMGYyYzkzZGY3MWJhNzY0NjhhMWJkMmVmLi5mM2I5NzdkM2RkN2RmOTQ1NjY0MjNjMDY0
NzM1MTYyYTFjNTQ2NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02MjMsNiArNjIzLDcg
QEAgV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZp
Y2VFbnRyeVBvaW50Lm1tCiAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKK1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlD
b2NvYS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5j
cHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2Vy
LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2Fl
MjE0N2I0MDdkZmRmZTZmMmJlMDUxZTA2ZTJlMWEzMjlhNTYwNC4uMmRlYjY2ZTQzNjRkMDU3N2Jh
NTM1YThkZThjNzFmYjk0NTMyYTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODA1LDYgKzQ4MDUsOCBAQAogCQk3QUZCRDM2MjIx
RTUwRjM5MDA1REJBQ0IgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oOyBwYXRoID0gQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0FGQkQzNkQyMUU1NDZFMzAwNURCQUNCIC8q
IFBlcnNpc3RlbmN5VXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyc2lzdGVuY3lVdGlscy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZCRDM2RTIxRTU0NkUzMDA1REJBQ0IgLyog
UGVyc2lzdGVuY3lVdGlscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJzaXN0ZW5jeVV0aWxz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IxNjE5MTIyNzE5OEFBOTAwQzQw
RUFDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0IxNjE5MTMyNzE5QUU3NjAwQzQwRUFDIC8qIEdQVVByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxREIyNjUyNTY2OENF
MDAwMEUyNkJDIC8qIEFycmF5UmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFycmF5UmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdC
NDgzRjFCMjVDRERBOUIwMDEyMDQ4NiAvKiBNZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VSZWNlaXZlUXVldWVNYXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I0ODNGMUMyNUNEREE5QjAwMTIwNDg2IC8qIE1l
c3NhZ2VSZWNlaXZlUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVz
c2FnZVJlY2VpdmVRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTE5MSw2
ICs5MTkzLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUY0MDk0Q0JDMjU1MzA0QUYwMDNENzNF
MyAvKiBEaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5jcHAgKi8sCiAJCQkJRjQwOTRDQkIyNTUzMDRB
RjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmggKi8sCisJCQkJN0IxNjE5MTMy
NzE5QUU3NjAwQzQwRUFDIC8qIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oICovLAogCQkJ
CTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmgg
Ki8sCiAJCQkJMUNDNTRBRkQyNzBGOTY1NDAwNUJGOEJFIC8qIFF1YWxpZmllZFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllci5oICovLAogCQkJCTFDQkY5MDEyMjcxMDE4QjUwMDBDNDU3RCAvKiBR
dWFsaWZpZWRSZXNvdXJjZUhlYXAuaCAqLywKQEAgLTk2NjMsNiArOTY2Niw3IEBACiAJCQkJMkQy
NUYzMjgyNTc1OEU5MDAwMjMxQThCIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZC5oICovLAogCQkJCTcyN0E3RjM0MjQwNzg1N0QwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNo
YXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwICovLAogCQkJCTcyN0E3RjM1MjQwNzg1
N0YwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQu
aCAqLywKKwkJCQk3QjE2MTkxMjI3MTk4QUE5MDBDNDBFQUMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUNvY29hLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
LmNwcAppbmRleCBjMGJhYzM4ZWVjMmViNjQwMjY4NmMzM2RjM2Q0M2NkNGI2ZDhkZjZmLi4zMWQ3
OWY5ZjFkMzBjOWI1MjE2YmY1NjU1OGIxYTY0Mjk1ODgwM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKQEAgLTY3LDkgKzY3LDYgQEAgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eShHUFVQcm9jZXNz
Q29ubmVjdGlvbiYKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6On5SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5KCkKIHsKICAgICBkaXNjb25uZWN0R3B1UHJvY2Vzc0lmTmVlZGVkKCk7
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGxhdGZvcm1Td2FwQ2hhaW4oKS5yZWN5Y2xlQnVm
ZmVyKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojpy
ZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKQEAgLTgzLDMyICs4MCwxOSBAQCB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0
KQogICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkK
IHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cHJlcGFyZUZvckRpc3BsYXkoKQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKLSNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICBNYWNoU2VuZFJpZ2h0IGRpc3BsYXlCdWZmZXJTZW5kUmlnaHQ7Ci0gICAg
YXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMOjpQcmVwYXJlRm9yRGlzcGxheSgpLCBNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OlByZXBhcmVGb3JEaXNwbGF5OjpSZXBseShkaXNwbGF5QnVmZmVyU2VuZFJpZ2h0KSk7Ci0g
ICAgaWYgKCFzZW5kUmVzdWx0KSB7Ci0gICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIGF1dG8gZGlzcGxheUJ1ZmZlciA9IElPU3VyZmFjZTo6Y3Jl
YXRlRnJvbVNlbmRSaWdodChXVEZNb3ZlKGRpc3BsYXlCdWZmZXJTZW5kUmlnaHQpLCBXZWJDb3Jl
OjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7Ci0gICAgaWYgKGRpc3BsYXlCdWZmZXIp
IHsKLSAgICAgICAgYXV0byYgc2MgPSBwbGF0Zm9ybVN3YXBDaGFpbigpOwotICAgICAgICBzYy5y
ZWN5Y2xlQnVmZmVyKCk7Ci0gICAgICAgIHNjLnByZXNlbnQoeyBXVEZNb3ZlKGRpc3BsYXlCdWZm
ZXIpLCBudWxscHRyIH0pOwotICAgIH0KLSNlbHNlCiAgICAgYXV0byBzZW5kUmVzdWx0ID0gc2Vu
ZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxh
eSgpLCBNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlByZXBhcmVGb3JEaXNwbGF5
OjpSZXBseSgpKTsKICAgICBpZiAoIXNlbmRSZXN1bHQpIHsKICAgICAgICAgbWFya0NvbnRleHRM
b3N0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKICAgICBtYXJrTGF5ZXJDb21w
b3NpdGVkKCk7CiB9CisjZW5kaWYKIAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjplbnN1cmVFeHRlbnNpb25FbmFibGVkKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NDkzZmZlMGM3NDNkOWRjMTc0YTU2YmZjNmYxNDk4Y2Q5MDkxZTc1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29jb2EubW0KQEAgLTAsMCArMSw2NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUo
V0VCR0wpCisjaW1wb3J0ICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzLmgiCisjaW1w
b3J0IDxXZWJDb3JlL0lPU3VyZmFjZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJHTExheWVyLmg+
CisjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OnByZXBhcmVGb3JEaXNwbGF5KCkKK3sKKyAgICBpZiAoaXNDb250ZXh0TG9zdCgp
KQorICAgICAgICByZXR1cm47CisgICAgTWFjaFNlbmRSaWdodCBkaXNwbGF5QnVmZmVyU2VuZFJp
Z2h0OworICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6UHJlcGFyZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxheTo6UmVwbHkoZGlzcGxheUJ1ZmZlclNlbmRS
aWdodCkpOworICAgIGlmICghc2VuZFJlc3VsdCkgeworICAgICAgICBtYXJrQ29udGV4dExvc3Qo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIWRpc3BsYXlCdWZmZXJTZW5kUmln
aHQpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRpc3BsYXlCdWZmZXIgPSBXZWJDb3JlOjpJ
T1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQoV1RGTW92ZShkaXNwbGF5QnVmZmVyU2VuZFJp
Z2h0KSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOworICAgIGlmICgh
ZGlzcGxheUJ1ZmZlcikgeworICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBtX2Rpc3BsYXlCdWZmZXIgPSBXVEZNb3ZlKGRpc3BsYXlCdWZmZXIp
OworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIFttX3dlYkdMTGF5ZXIgc2V0
Q29udGVudHM6bV9kaXNwbGF5QnVmZmVyLT5hc0xheWVyQ29udGVudHMoKV07CisgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUworICAgIG1hcmtMYXllckNvbXBvc2l0ZWQoKTsKK30KKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCBkMTYyMzQ0NDIz
MWU2YmQ0NDllNTNhZTQxYWU1NjlmNzE0YmEwNzY1Li5iYzhlYWI5ODc5YmU4MGQ4NTFiMDAxYzIw
MGMwZjE4NTdhNmM3YTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCkBAIC02
Myw2ICs2Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxJbnB1dEVsZW1lbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0
ci5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CiAKIEBpbnRlcmZhY2UgTlNP
YmplY3QgKFdLRGVwcmVjYXRlZERlbGVnYXRlTWV0aG9kcykKIC0gKHZvaWQpd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyICopY29udHJvbGxlciBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9y
RnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29y
ZEZpZWxkLm1tCmluZGV4IGRlNzM3MWJlOWZjZDgyYjEwMGQyNmYxOTFkZTJiMzRlODZhZmUxMzYu
LmY2MmRjN2M4MzdmMDJmNzAxMGM4MmQ5NzkwZTJiYWFmMjE0ZTFkMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxk
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Q
YXNzd29yZEZpZWxkLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJQREZMYXllckNvbnRy
b2xsZXJTUEkuaCIKICNpbXBvcnQgIlBERlBsdWdpbi5oIgogI2ltcG9ydCA8UXVhcnR6L1F1YXJ0
ei5oPgorI2ltcG9ydCA8V2ViQ29yZS9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9FdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0hUTUxFbGVtZW50Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9k
ZWxIb3N0aW5nLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZU1vZGVsSG9zdGluZy5tbQppbmRleCA4YzEwNjIy
MDVjNzdhZmZkN2JhZDE3Y2Y5NzI2ZmM4MDIwNzY2YzJhLi5jYTNkYTY5YjQzMDk0M2RmNjY2ZTdl
ODQwODQwZDU3ZjZiYzcyOGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlTW9kZWxIb3N0aW5n
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhvc3RpbmcubW0KQEAgLTY2LDkgKzY2LDkgQEAg
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhvc3Rpbmc6OnBvcHVsYXRlQ3JlYXRpb25Q
cm9wZXJ0aWVzKFJlbW90ZUxheWVyVHIKICAgICBwcm9wZXJ0aWVzLm1vZGVsID0gbV9tb2RlbC5w
dHIoKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2RlbEhvc3Rpbmc6OmR1bXBB
ZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgT3B0aW9uU2V0PFBsYXRmb3JtTGF5
ZXJUcmVlQXNUZXh0RmxhZ3M+IGZsYWdzKQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVNb2Rl
bEhvc3Rpbmc6OmR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgT3B0aW9u
U2V0PFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0RmxhZ3M+IGZsYWdzKQogewotICAg
IGlmIChmbGFncy5jb250YWlucyhQbGF0Zm9ybUxheWVyVHJlZUFzVGV4dEZsYWdzOjpJbmNsdWRl
TW9kZWxzKSkKKyAgICBpZiAoZmxhZ3MuY29udGFpbnMoV2ViQ29yZTo6UGxhdGZvcm1MYXllclRy
ZWVBc1RleHRGbGFnczo6SW5jbHVkZU1vZGVscykpCiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAi
KG1vZGVsIGRhdGEgc2l6ZSAiIDw8IG1fbW9kZWwtPmRhdGEoKS0+c2l6ZSgpIDw8ICIpXG4iOwog
fQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>