<?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>128007</bug_id>
          
          <creation_ts>2014-01-31 12:14:23 -0800</creation_ts>
          <short_desc>Convert OwnPtr and PassOwnPtr uses to std::unique_ptr</short_desc>
          <delta_ts>2015-04-24 09:39:39 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>122960</dependson>
    
    <dependson>123804</dependson>
    
    <dependson>127276</dependson>
    
    <dependson>127278</dependson>
    
    <dependson>127330</dependson>
    
    <dependson>128116</dependson>
    
    <dependson>128117</dependson>
    
    <dependson>128118</dependson>
    
    <dependson>128466</dependson>
    
    <dependson>128467</dependson>
    
    <dependson>128468</dependson>
    
    <dependson>128471</dependson>
    
    <dependson>128681</dependson>
    
    <dependson>128962</dependson>
    
    <dependson>128964</dependson>
    
    <dependson>128967</dependson>
    
    <dependson>129058</dependson>
    
    <dependson>129061</dependson>
    
    <dependson>129062</dependson>
    
    <dependson>129063</dependson>
    
    <dependson>129078</dependson>
    
    <dependson>129664</dependson>
    
    <dependson>129665</dependson>
    
    <dependson>129666</dependson>
    
    <dependson>129667</dependson>
    
    <dependson>129668</dependson>
    
    <dependson>129669</dependson>
    
    <dependson>129670</dependson>
    
    <dependson>129672</dependson>
    
    <dependson>129675</dependson>
    
    <dependson>129853</dependson>
    
    <dependson>131276</dependson>
    
    <dependson>132165</dependson>
    
    <dependson>132401</dependson>
    
    <dependson>132467</dependson>
    
    <dependson>132544</dependson>
    
    <dependson>132605</dependson>
    
    <dependson>137173</dependson>
    
    <dependson>137736</dependson>
    
    <dependson>137738</dependson>
    
    <dependson>137765</dependson>
    
    <dependson>137769</dependson>
    
    <dependson>137808</dependson>
    
    <dependson>137809</dependson>
    
    <dependson>137877</dependson>
    
    <dependson>137905</dependson>
    
    <dependson>138238</dependson>
    
    <dependson>138242</dependson>
    
    <dependson>138280</dependson>
    
    <dependson>138395</dependson>
    
    <dependson>138402</dependson>
    
    <dependson>138489</dependson>
    
    <dependson>138558</dependson>
    
    <dependson>138560</dependson>
    
    <dependson>138642</dependson>
    
    <dependson>138646</dependson>
    
    <dependson>138649</dependson>
    
    <dependson>139009</dependson>
    
    <dependson>139018</dependson>
    
    <dependson>139019</dependson>
    
    <dependson>139063</dependson>
    
    <dependson>139169</dependson>
    
    <dependson>139351</dependson>
    
    <dependson>139395</dependson>
    
    <dependson>139532</dependson>
    
    <dependson>139621</dependson>
    
    <dependson>139637</dependson>
    
    <dependson>139641</dependson>
    
    <dependson>139668</dependson>
    
    <dependson>140172</dependson>
    
    <dependson>141888</dependson>
    
    <dependson>141950</dependson>
    
    <dependson>142349</dependson>
    
    <dependson>143056</dependson>
    
    <dependson>143941</dependson>
    
    <dependson>143943</dependson>
    
    <dependson>143944</dependson>
    
    <dependson>143949</dependson>
    
    <dependson>144033</dependson>
    
    <dependson>144090</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hw1008.kim</cc>
    
    <cc>kling</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>974412</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-31 12:14:23 -0800</bug_when>
    <thetext>std::unique_ptr should replace OwnPtr throughout the project, eventually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088186</commentid>
    <comment_count>1</comment_count>
      <attachid>251539</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-23 22:38:43 -0700</bug_when>
    <thetext>Created attachment 251539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088187</commentid>
    <comment_count>2</comment_count>
      <attachid>251540</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-23 22:42:44 -0700</bug_when>
    <thetext>Created attachment 251540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088192</commentid>
    <comment_count>3</comment_count>
      <attachid>251542</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-23 23:21:29 -0700</bug_when>
    <thetext>Created attachment 251542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088227</commentid>
    <comment_count>4</comment_count>
      <attachid>251551</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-24 08:47:48 -0700</bug_when>
    <thetext>Created attachment 251551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088233</commentid>
    <comment_count>5</comment_count>
      <attachid>251554</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-24 09:21:29 -0700</bug_when>
    <thetext>Created attachment 251554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088237</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-24 09:39:39 -0700</bug_when>
    <thetext>Committed r183265: &lt;http://trac.webkit.org/changeset/183265&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251539</attachid>
            <date>2015-04-23 22:38:43 -0700</date>
            <delta_ts>2015-04-23 22:42:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128007-20150423223738.patch</filename>
            <type>text/plain</type>
            <size>89320</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY3YTVhY2QxMjhhZmZmYTEwZjI0OTU4
OGZmYjRlMGZkNjYzN2E1OGYuLmMxZGMzMTM2ZjBhOTFkZjhlN2Y5NDY5ZTE1ZmJkYzA3OGNkNzc2
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDQtMjMgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIENvbnZlcnQgT3duUHRyIGFuZCBQYXNzT3duUHRyIHVzZXMg
dG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjgwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qOiBSZW1vdmVkIE93blB0ciBzb3Vy
Y2UgZmlsZXMuCisgICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVyczogRGl0
dG8uCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAg
ICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogRGl0dG8uCisKKyAgICAgICAgKiB3dGYvRm9yd2Fy
ZC5oOiBSZW1vdmVkIE93blB0ciBhbmQgUGFzc093blB0ci4KKyAgICAgICAgKiB3dGYvSGFzaFRy
YWl0cy5oOiBEaXR0by4KKworICAgICAgICAqIHd0Zi9Pd25QdHIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3dGYvT3duUHRyQ29tbW9uLmg6IFJlbW92ZWQuCisgICAgICAgICogd3RmL1Bhc3NPd25Q
dHIuaDogUmVtb3ZlZC4KKworICAgICAgICAqIHd0Zi9TaXplTGltaXRzLmNwcDogUmVtb3ZlZCBP
d25QdHIuCisgICAgICAgICogd3RmL1ZlY3RvclRyYWl0cy5oOiBSZW1vdmVkIE93blB0ciBzcGVj
aWFsaXphdGlvbi4KKwogMjAxNS0wNC0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBXZWJLaXQgc2VydmljZXMgc2hvdWxkIGluaGVyaXQgZW52
aXJvbm1lbnQgdmFyaWFibGVzIGZvciBob21lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA3YzJkZjE1MjNjN2Vh
NTEwYzQ2ZWE0MDg1Njc1ZTU2NmE0MzhjOS4uZmUxNjE4M2UxNTIzYjQ3ZDVjYmRmZWI3YzhlY2Zk
MjQ4ZDM1OGM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE1LTA0LTIzICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IE93blB0ciBhbmQg
UGFzc093blB0ciB1c2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogUmVtb3ZlZCBP
d25QdHJDYWlybyBzb3VyY2UgZmlsZXMuCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERp
dHRvLgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8uY21ha2U6IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHA6IFJlbW92ZWQgT3duUHRyIHNwZWNpYWxpemF0
aW9uLgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmg6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcDogUmVtb3ZlZCB1bm5lZWRl
ZCBpbmNsdWRlLgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmg6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0
aW9uQ0YuaDogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QVZGV3JhcHBlcjo6cHJvY2Vzc05vdGlmaWNhdGlvbik6IFVzZSB1bmlxdWVfcHRyLgor
ICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bm90aWZpY2F0aW9uQ2FsbGJhY2spOiBVc2Ug
bWFrZV91bmlxdWUuCisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpwbGF0Zm9ybUxheWVy
KTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxp
dGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRQYXRoVG9DYWlyb0NvbnRleHQpOiBV
c2UgY2Fpcm9fcGF0aF9kZXN0cm95IGRpcmVjdGx5CisgICAgICAgIGluc3RlYWQgb2YgYSBzbWFy
dCBwb2ludGVyOyB0aGUgY29kZSBwYXRoIGlzIHNpbXBsZSBlbm91Z2ggdGhhdCBpdCBpcworICAg
ICAgICBjbGVhciB0aGlzIHdheS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKTogVXNlIG1ha2VfdW5pcXVlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmg6IFVzZSB1bmlxdWVfcHRyLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmg6IFJlbW92ZWQuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGF0aDo6UGF0aCk6IFVzZSBjYWlyb19wYXRoX2Rlc3Ryb3kgZGlyZWN0bHkg
aW5zdGVhZCBvZiBhCisgICAgICAgIHNtYXJ0IHBvaW50ZXI7IHRoZSBjb2RlIHBhdGggaXMgc2lt
cGxlIGVub3VnaCB0aGF0IGl0IGlzIGNsZWFyIHRoaXMgd2F5LgorICAgICAgICAoV2ViQ29yZTo6
UGF0aDo6b3BlcmF0b3I9KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphZGRQYXRo
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphcHBseSk6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxp
bmcpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRD
YWNoZUZyZWVUeXBlLmNwcDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwOiBEaXR0by4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVHTE9mZlNjcmVlblN1cmZhY2U6OkVHTE9mZlNjcmVlblN1cmZhY2UpOiBVc2Ug
bWFrZV91bmlxdWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYQ29uZmlnU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9y
OjpmaW5kTWF0Y2hpbmdDb25maWcpOiBVc2UgdW5pcXVlX3B0ciB3aXRoIFgxMURlbGV0ZXIuCisg
ICAgICAgIChXZWJDb3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6ZmluZE1hdGNoaW5nQ29uZmlnV2l0
aFZpc3VhbElkKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xYVHJhbnNwb3J0U3VyZmFj
ZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R0xYT2Zm
U2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oOiBSZW1vdmVkLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyk6IFVzZSB1bmlxdWVfcHRy
IHdpdGggWDExRGVsZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OlgxMUhlbHBlcjo6Y3JlYXRlUGl4
bWFwKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
WDExSGVscGVyLmg6IEFkZGVkIFgxMURlbGV0ZXIsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2Vk
IHdpdGggdW5pcXVlX3B0ciB0byBtYWtlIGl0IGNhbGwgWEZyZWUgaW5zdGVhZCBvZiBkZWxldGUu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIu
Y3BwOiBVc2UgdW5pcXVlX3B0ci4KKyAgICAgICAgKEZ1bGxTY3JlZW5Db250cm9sbGVyOjpGdWxs
U2NyZWVuQ29udHJvbGxlcik6IFVzZSBtYWtlX3VuaXF1ZS4KKyAgICAgICAgKEZ1bGxTY3JlZW5D
b250cm9sbGVyOjplbnRlckZ1bGxTY3JlZW4pOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0M0RXaW4uY3BwOiBS
ZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1dLQ0FJbWFnZVF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FJbWFnZVF1ZXVl
OjpXS0NBSW1hZ2VRdWV1ZSk6IFVzZSBtYWtlX3VuaXF1ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwOiBSZW1vdmVk
IHVubmVlZGVkIGluY2x1ZGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11bHRp
cGFydEhhbmRsZTo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmg6IERlbGV0ZWQgdGhlIGNyZWF0ZSBmdW5jdGlvbi4KKwor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aGVhZGVyQ2FsbGJhY2spOiBVc2UgbWFrZV91bmlxdWUuCisK
IDIwMTUtMDQtMjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCB0aGUgaU9TIGJ1aWxkIGFmdGVyIHIxODMyMzQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJv
agppbmRleCAyM2E4MWU4Y2MyODQ3ODUyZjNiYTRmNjY4MGQxZGVlZGJjNDYxYzBhLi42YWE0NzNk
ZmU2N2FkNGQyOTVhYjM4N2JmN2QxYmM0ZGJkMWJkOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RG
LnZjeHByb2oKQEAgLTIzNyw4ICsyMzcsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXE5vbmNvcHlhYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTnVt
YmVyT2ZDb3Jlcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXE9TUmFuZG9t
U291cmNlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcT3duUHRyLmgiIC8+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcT3duUHRyQ29tbW9uLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFja2VkSW50VmVjdG9yLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFnZUFsbG9jYXRpb24uaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYWdlQmxvY2suaCIgLz4KQEAgLTI0Nyw3ICsyNDUsNiBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhcmFsbGVsSm9ic0dlbmVyaWMuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhcmFsbGVsSm9ic09wZW5NUC5o
IiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhc3NPd25QdHIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYXNzUmVmUHRyLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcUGxhdGZvcm0uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHd0ZlxQcmludFN0cmVhbS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
dmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYu
dmN4cHJvai5maWx0ZXJzCmluZGV4IGQ0ZmVjMmY3MTNiY2ZmOGM3NTA0NWNjZWFjNzIwZGMxYzVj
YWQ2YjEuLmZhZTEwNjkyNjNhZTc4MmY1YjU4NTNkNWIxMzIxNzM5ZDIzNWEzZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKQEAgLTUyOCwxMiArNTI4LDYg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxPU1JhbmRvbVNvdXJjZS5oIj4KICAg
ICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3dGZcT3duUHRyLmgiPgotICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4K
LSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxPd25QdHJD
b21tb24uaCI+Ci0gICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhY2tlZEludFZlY3Rvci5oIj4KICAgICAg
IDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC01NTgsOSArNTUyLDYg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYXJhbGxlbEpvYnNPcGVuTVAuaCI+
CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhc3NPd25QdHIuaCI+Ci0gICAgICA8RmlsdGVyPnd0Zjwv
RmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XFBhc3NSZWZQdHIuaCI+CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTQwNWQ2
ZGE0YWM1ZmVmMTRmMTVlN2Q0MzEzODU5MWVjNmYzMmJjOS4uYTAzODc4M2RmMjYwODM3Zjc0YzY5
YTIwZDY3MjMzNWU1MmRkMzgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xODUsOCArMTg1LDYgQEAKIAkJQThBNDczRjcxNTFBODI1QjAwNDEyM0ZGIC8q
IE9TQWxsb2NhdG9yUG9zaXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDcyRDgxNTFBODI1QjAwNDEyM0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXgu
Y3BwICovOyB9OwogCQlBOEE0NzNGOTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcy
REExNTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLzsgfTsKIAkJQThBNDcz
RkExNTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJEQjE1MUE4MjVCMDA0MTIzRkYgLyog
T1NSYW5kb21Tb3VyY2UuaCAqLzsgfTsKLQkJQThBNDczRkMxNTFBODI1QjAwNDEyM0ZGIC8qIE93
blB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDcyREQxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ci5oICovOyB9OwotCQlBOEE0NzNGRDE1MUE4
MjVCMDA0MTIzRkYgLyogT3duUHRyQ29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJERTE1MUE4MjVCMDA0MTIzRkYgLyogT3duUHRyQ29t
bW9uLmggKi87IH07CiAJCUE4QTQ3M0ZFMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3
MkRGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0b3IuaCAqLzsgfTsKIAkJQThBNDcz
RkYxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VBbGxvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJFMDE1MUE4MjVCMDA0MTIzRkYgLyog
UGFnZUFsbG9jYXRpb24uaCAqLzsgfTsKIAkJQThBNDc0MDIxNTFBODI1QjAwNDEyM0ZGIC8qIFBh
Z2VCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEE0NzJFMzE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUJsb2NrLmNwcCAqLzsgfTsKQEAgLTE5
NCw3ICsxOTIsNiBAQAogCQlBOEE0NzQwNDE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZVJlc2VydmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0
NzJFNTE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZVJlc2VydmF0aW9uLmggKi87IH07CiAJCUE4QTQ3
NDA1MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkU2MTUxQTgyNUIwMDQxMjNGRiAvKiBQ
YXJhbGxlbEpvYnMuaCAqLzsgfTsKIAkJQThBNDc0MDgxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFs
bGVsSm9ic0xpYmRpc3BhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEE0NzJFOTE1MUE4MjVCMDA0MTIzRkYgLyogUGFyYWxsZWxKb2JzTGliZGlz
cGF0Y2guaCAqLzsgfTsKLQkJQThBNDc0MEIxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NPd25QdHIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkVD
MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzT3duUHRyLmggKi87IH07CiAJCUE4QTQ3NDBDMTUxQTgy
NUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJFRDE1MUE4MjVCMDA0MTIzRkYgLyogUGFzc1JlZlB0ci5o
ICovOyB9OwogCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkZCMTUx
QTgyNUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuY3BwICovOyB9OwogCQlBOEE0NzQxNTE1MUE4
MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJGQzE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVt
YmVyLmggKi87IH07CkBAIC00NzYsOCArNDczLDYgQEAKIAkJQThBNDcyRDgxNTFBODI1QjAwNDEy
M0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gT1NBbGxvY2F0b3JQb3NpeC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4QTQ3MkRBMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPU1JhbmRvbVNvdXJjZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkRCMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1Jh
bmRvbVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPU1JhbmRvbVNv
dXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJERDE1MUE4MjVCMDA0
MTIzRkYgLyogT3duUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE93blB0
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJERTE1MUE4MjVCMDA0MTIz
RkYgLyogT3duUHRyQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE93
blB0ckNvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJERjE1MUE4
MjVCMDA0MTIzRkYgLyogUGFja2VkSW50VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhY2tlZEludFZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE0NzJFMDE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUFsbG9jYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUFsbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VCbG9jay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQmxvY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg1LDcgKzQ4MCw2IEBACiAJCUE4QTQ3MkU1MTUx
QTgyNUIwMDQxMjNGRiAvKiBQYWdlUmVzZXJ2YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFnZVJlc2VydmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4QTQ3MkU2MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyYWxsZWxKb2JzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4QTQ3MkU5MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnNMaWJk
aXNwYXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJhbGxlbEpvYnNM
aWJkaXNwYXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJFQzE1MUE4
MjVCMDA0MTIzRkYgLyogUGFzc093blB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXNzT3duUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkVE
MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhc3NSZWZQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThB
NDcyRkIxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5kb21OdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBOEE0NzJGQzE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmRvbU51bWJlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzk1LDggKzc4OSw2IEBACiAJCQkJQThBNDcyREExNTFB
ODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLywKIAkJCQlBOEE0NzJEQjE1MUE4
MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2UuaCAqLywKIAkJCQkxQUZERTY1MjE5NTNCMjNE
MDBDNDhGRkEgLyogT3B0aW9uYWwuaCAqLywKLQkJCQlBOEE0NzJERDE1MUE4MjVCMDA0MTIzRkYg
LyogT3duUHRyLmggKi8sCi0JCQkJQThBNDcyREUxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ckNv
bW1vbi5oICovLAogCQkJCUE4QTQ3MkRGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0
b3IuaCAqLywKIAkJCQlBOEE0NzJFMDE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUFsbG9jYXRpb24u
aCAqLywKIAkJCQlBOEE0NzJFMzE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUJsb2NrLmNwcCAqLywK
QEAgLTgwNCw3ICs3OTYsNiBAQAogCQkJCUE4QTQ3MkU1MTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdl
UmVzZXJ2YXRpb24uaCAqLywKIAkJCQlBOEE0NzJFNjE1MUE4MjVCMDA0MTIzRkYgLyogUGFyYWxs
ZWxKb2JzLmggKi8sCiAJCQkJQThBNDcyRTkxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9i
c0xpYmRpc3BhdGNoLmggKi8sCi0JCQkJQThBNDcyRUMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NP
d25QdHIuaCAqLywKIAkJCQlBOEE0NzJFRDE1MUE4MjVCMDA0MTIzRkYgLyogUGFzc1JlZlB0ci5o
ICovLAogCQkJCUE4NzZEQkQ3MTUxODE2RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oICovLAogCQkJ
CTBGOUQzMzVEMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgKi8sCkBAIC0xMTMx
LDggKzExMjIsNiBAQAogCQkJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGlt
ZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRjYxNTFBODI1QjAwNDEyM0ZGIC8q
IE9TQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNGQTE1MUE4MjVCMDA0MTIz
RkYgLyogT1NSYW5kb21Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3M0ZDMTUxQTgy
NUIwMDQxMjNGRiAvKiBPd25QdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3M0ZEMTUxQTgy
NUIwMDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE0RTFC
MTgxMEUxREMwMDlCNkI0RCAvKiBCYWdUb0hhc2hNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3M0ZFMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3M0ZGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQWxsb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMTQwLDcgKzExMjksNiBAQAogCQkJCUE4QTQ3NDA0MTUxQTgyNUIwMDQx
MjNGRiAvKiBQYWdlUmVzZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDA1MTUx
QTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3
NDA4MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQThBNDc0MEIxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NPd25QdHIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QTQ3NDBDMTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODc2REJEODE1MTgxNkU1MDBEQURCOTUgLyogUGxhdGZvcm0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE0RTE5MTgwRkEyMTgwMDlCNkI0RCAvKiBCYWcuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCBjN2I0Mjg1MjgxZGM5ZTI0MDNk
MTVmNGQxMTBlMzM0ZTE0ODlkOWFkLi44NjIzYmFjYTBjYWQ0NjI3NWUwZjkzNzZhZTAwN2ZmMWQ0
MzA5NTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNTUsOCArNTUsNiBAQCBzZXQoV1RGX0hF
QURFUlMKICAgICBOdW1iZXJPZkNvcmVzLmgKICAgICBPU0FsbG9jYXRvci5oCiAgICAgT1NSYW5k
b21Tb3VyY2UuaAotICAgIE93blB0ci5oCi0gICAgT3duUHRyQ29tbW9uLmgKICAgICBQYWdlQWxs
b2NhdGlvbi5oCiAgICAgUGFnZUJsb2NrLmgKICAgICBQYWdlUmVzZXJ2YXRpb24uaApAQCAtNjQs
NyArNjIsNiBAQCBzZXQoV1RGX0hFQURFUlMKICAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmgKICAg
ICBQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5oCiAgICAgUGFyYWxsZWxKb2JzT3Blbk1QLmgKLSAg
ICBQYXNzT3duUHRyLmgKICAgICBQYXNzUmVmUHRyLmgKICAgICBQbGF0Zm9ybS5oCiAgICAgUHJp
bnRTdHJlYW0uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDZhZWZhMWRlZjJjZGYwODk0MjNjZTBkMTJmY2YyZGQ1
NTY4NzllMTguLjM5NTIwYWFmNGExNjY0NjBjN2RkYThhYWNkODk4ZDgxMzM1MjlhZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmgKQEAgLTI4LDggKzI4LDYgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBjbGFzcyBGdW5jdGlvbjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZl
ckRlc3Ryb3llZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkOwot
dGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwotdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Y2xhc3MgUGFzc093blB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NSZWZQdHI7
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZQdHI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBSZWY7CkBAIC02NSw4ICs2Myw2IEBAIHVzaW5nIFdURjo6RnVuY3Rpb25EaXNwYXRj
aGVyOwogdXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Ok5ldmVyRGVz
dHJveWVkOwogdXNpbmcgV1RGOjpPcmRpbmFsTnVtYmVyOwotdXNpbmcgV1RGOjpPd25QdHI7Ci11
c2luZyBXVEY6OlBhc3NPd25QdHI7CiB1c2luZyBXVEY6OlBhc3NSZWZQdHI7CiB1c2luZyBXVEY6
OlByaW50U3RyZWFtOwogdXNpbmcgV1RGOjpSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9IYXNoVHJhaXRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVHJhaXRzLmgKaW5kZXggZTQ3YWE4
YjVmODZiNGJmZGVlOWU5MjMyY2MyMGRmNWE5ZTgxZjNjZC4uZmNhMzVmMzk5ZGZkMGExZGRkZjNi
YjgzOGQ3MzA4ODYzZDc1ZTFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRyYWl0
cy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaApAQCAtMzAsOCArMzAsNiBAQCBu
YW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgU3RyaW5nOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBPd25QdHI7Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwog
CiB0ZW1wbGF0ZTxib29sIGlzSW50ZWdlciwgdHlwZW5hbWUgVD4gc3RydWN0IEdlbmVyaWNIYXNo
VHJhaXRzQmFzZTsKQEAgLTEyMCwxNyArMTE4LDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgRGVsZXRlcj4gc3RydWN0IEhhc2hUcmFpdHM8c3RkOjp1bmlxdWVfcHRyPFQsIERlbGUK
ICAgICBzdGF0aWMgVCogcGVlayhzdGQ6Om51bGxwdHJfdCkgeyByZXR1cm4gbnVsbHB0cjsgfQog
fTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFpdHM8T3duUHRyPFQ+PiA6
IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxPd25QdHI8VD4+IHsKLSAgICB0eXBlZGVmIHN0ZDo6bnVs
bHB0cl90IEVtcHR5VmFsdWVUeXBlOwotICAgIHN0YXRpYyBFbXB0eVZhbHVlVHlwZSBlbXB0eVZh
bHVlKCkgeyByZXR1cm4gbnVsbHB0cjsgfQotCi0gICAgdHlwZWRlZiBUKiBQZWVrVHlwZTsKLSAg
ICBzdGF0aWMgVCogcGVlayhjb25zdCBPd25QdHI8VD4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5n
ZXQoKTsgfQotICAgIHN0YXRpYyBUKiBwZWVrKHN0ZDo6bnVsbHB0cl90KSB7IHJldHVybiBudWxs
cHRyOyB9Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1Y3QgSGFzaFRyYWl0czxSZWZQ
dHI8UD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFJlZlB0cjxQPj4gewotICAgIHN0YXRpYyBQ
KiBlbXB0eVZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBQKiBlbXB0eVZhbHVlKCkg
eyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgdHlwZWRlZiBQKiBQZWVrVHlwZTsKICAgICBzdGF0
aWMgUGVla1R5cGUgcGVlayhjb25zdCBSZWZQdHI8UD4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3duUHRyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Pd25QdHIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE3MDFhNDhiNWI3
NTNiOTIwOWJhNmQ5YWQwZDllNmFlNWY0MDdjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHIuaAorKysgL2Rldi9udWxs
CkBAIC0xLDIzMCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotCi0jaWZuZGVmIFdURl9Pd25QdHJfaAotI2RlZmluZSBXVEZfT3duUHRyX2gKLQot
I2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxjc3RkZGVmPgotI2luY2x1ZGUgPG1lbW9y
eT4KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+
Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+Ci0j
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ckNvbW1vbi5o
PgotCi1uYW1lc3BhY2UgV1RGIHsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBh
c3NPd25QdHI7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUGFzc093blB0cjxUPiBhZG9wdFB0
cihUKik7Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPd25QdHIgewotICAgIHB1
YmxpYzoKLSAgICAgICAgdHlwZWRlZiBUIFZhbHVlVHlwZTsKLSAgICAgICAgdHlwZWRlZiBWYWx1
ZVR5cGUqIFB0clR5cGU7Ci0KLSAgICAgICAgT3duUHRyKCkgOiBtX3B0cigwKSB7IH0KLSAgICAg
ICAgT3duUHRyKHN0ZDo6bnVsbHB0cl90KSA6IG1fcHRyKDApIHsgfQotCi0gICAgICAgIC8vIFNl
ZSBjb21tZW50IGluIFBhc3NPd25QdHIuaCBmb3Igd2h5IHRoaXMgdGFrZXMgYSBjb25zdCByZWZl
cmVuY2UuCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE93blB0cihjb25zdCBQYXNzT3du
UHRyPFU+JiBvKTsKLQotICAgICAgICB+T3duUHRyKCkgeyBkZWxldGVPd25lZFB0cihtX3B0cik7
IH0KLQotICAgICAgICBQdHJUeXBlIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0KLSAg
ICAgICAgdm9pZCBjbGVhcigpOwotICAgICAgICBQYXNzT3duUHRyPFQ+IHJlbGVhc2UoKTsKLSAg
ICAgICAgUHRyVHlwZSBsZWFrUHRyKCkgV0FSTl9VTlVTRURfUkVUVVJOOwotCi0gICAgICAgIFZh
bHVlVHlwZSYgb3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gKm1fcHRy
OyB9Ci0gICAgICAgIFB0clR5cGUgb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNTRVJUKG1fcHRyKTsg
cmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVy
biAhbV9wdHI7IH0KLQotICAgICAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxsb3dz
IGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIgdHlw
ZXMuCi0gICAgICAgIHR5cGVkZWYgUHRyVHlwZSBPd25QdHI6OipVbnNwZWNpZmllZEJvb2xUeXBl
OwotICAgICAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1cm4g
bV9wdHIgPyAmT3duUHRyOjptX3B0ciA6IDA7IH0KLQotICAgICAgICBPd25QdHImIG9wZXJhdG9y
PShjb25zdCBQYXNzT3duUHRyPFQ+Jik7Ci0gICAgICAgIE93blB0ciYgb3BlcmF0b3I9KHN0ZDo6
bnVsbHB0cl90KSB7IGNsZWFyKCk7IHJldHVybiAqdGhpczsgfQotICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBPd25QdHImIG9wZXJhdG9yPShjb25zdCBQYXNzT3duUHRyPFU+Jik7Ci0KLSAg
ICAgICAgT3duUHRyKE93blB0ciYmKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gT3du
UHRyKE93blB0cjxVPiYmKTsKLQotICAgICAgICBPd25QdHImIG9wZXJhdG9yPShPd25QdHImJik7
Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE93blB0ciYgb3BlcmF0b3I9KE93blB0cjxV
PiYmKTsKLQotICAgICAgICAvLyBIYXNoIHRhYmxlIGRlbGV0ZWQgdmFsdWVzLCB3aGljaCBhcmUg
b25seSBjb25zdHJ1Y3RlZCBhbmQgbmV2ZXIgY29waWVkIG9yIGRlc3Ryb3llZC4KLSAgICAgICAg
T3duUHRyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9wdHIoaGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkpIHsgfQotICAgICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9wdHIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KLQotICAgICAg
ICB2b2lkIHN3YXAoT3duUHRyJiBvKSB7IHN0ZDo6c3dhcChtX3B0ciwgby5tX3B0cik7IH0KLSAg
ICAgICAgCi0gICAgICAgIC8vIENvbnN0cnVjdCBhbiBvYmplY3QgdG8gc3RvcmUgaW50byB0aGlz
IE93blB0ciwgYnV0IG9ubHkgc28gbG9uZyBhcyB0aGlzIE93blB0cgotICAgICAgICAvLyBkb2Vz
bid0IGFscmVhZHkgcG9pbnQgdG8gYW4gb2JqZWN0LiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgYWZ0
ZXIgeW91IGNhbGwgdGhpcywKLSAgICAgICAgLy8gdGhlIE93blB0ciB3aWxsIHBvaW50IHRvIGFu
IGluc3RhbmNlIG9mIFQsIGV2ZW4gaWYgY2FsbGVkIGNvbmN1cnJlbnRseS4gVGhpcwotICAgICAg
ICAvLyBpbnN0YW5jZSBtYXkgb3IgbWF5IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCBieSB0aGlzIGNh
bGwuIE1vcmVvdmVyLCB0aGlzIGNhbGwgdXNlcwotICAgICAgICAvLyBhbiBvcHBvcnR1bmlzdGlj
IHRyYW5zYWN0aW9uLCBpbiB0aGF0IHdlIG1heSBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVCBhbmQg
dGhlbgotICAgICAgICAvLyBpbW1lZGlhdGVseSB0aHJvdyBpdCBhd2F5LCBpZiBpbiB0aGUgcHJv
Y2VzcyBvZiBjcmVhdGluZyB0aGF0IGluc3RhbmNlIHNvbWUKLSAgICAgICAgLy8gb3RoZXIgdGhy
ZWFkIHdhcyBkb2luZyB0aGUgc2FtZSB0aGluZyBhbmQgc3RvcmVkIGl0cyBpbnN0YW5jZSBpbnRv
IHRoaXMgcG9pbnRlcgotICAgICAgICAvLyBiZWZvcmUgd2UgaGFkIGEgY2hhbmNlIHRvIGRvIHNv
LgotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgotICAgICAgICB2b2lkIGNyZWF0
ZVRyYW5zYWN0aW9uYWxseShBcmdzLi4uKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxp
Y2l0IE93blB0cihQdHJUeXBlIHB0cikgOiBtX3B0cihwdHIpIHsgfQotCi0gICAgICAgIHN0YXRp
YyBQdHJUeXBlIGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8UHRyVHlwZT4oLTEpOyB9Ci0KLSAgICAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgdHdv
IE93blB0cnMgZm9yIHRoZSBzYW1lIHVuZGVybHlpbmcgb2JqZWN0IChvdGhlcndpc2Ugd2UnbGwg
Z2V0Ci0gICAgICAgIC8vIGRvdWJsZS1kZXN0cnVjdGlvbiksIHNvIHRoZXNlIGVxdWFsaXR5IG9w
ZXJhdG9ycyBzaG91bGQgbmV2ZXIgYmUgbmVlZGVkLgotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBib29sIG9wZXJhdG9yPT0oY29uc3QgT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCgh
c2l6ZW9mKFUqKSwgT3duUHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7
IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0IE93
blB0cjxVPiYpIHsgQ09NUElMRV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25l
dmVyX2JlX2VxdWFsKTsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VS
VCghc2l6ZW9mKFUqKSwgT3duUHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFs
c2U7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFBhc3NPd25QdHI8VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25QdHJzX3No
b3VsZF9uZXZlcl9iZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotCi0gICAgICAgIFB0clR5cGUg
bV9wdHI7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVu
YW1lIFU+IGlubGluZSBPd25QdHI8VD46Ok93blB0cihjb25zdCBQYXNzT3duUHRyPFU+JiBvKQot
ICAgICAgICA6IG1fcHRyKG8ubGVha1B0cigpKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBPd25QdHI8VD46OmNsZWFyKCkKLSAgICB7Ci0gICAg
ICAgIGRlbGV0ZU93bmVkUHRyKHN0ZDo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpKTsKLSAgICB9
Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUGFzc093blB0cjxUPiBPd25QdHI8
VD46OnJlbGVhc2UoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKHN0ZDo6ZXhjaGFu
Z2UobV9wdHIsIG51bGxwdHIpKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBp
bmxpbmUgdHlwZW5hbWUgT3duUHRyPFQ+OjpQdHJUeXBlIE93blB0cjxUPjo6bGVha1B0cigpCi0g
ICAgewotICAgICAgICByZXR1cm4gc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cik7Ci0gICAg
fQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIE93blB0cjxUPiYgT3duUHRyPFQ+
OjpvcGVyYXRvcj0oY29uc3QgUGFzc093blB0cjxUPiYgbykKLSAgICB7Ci0gICAgICAgIFB0clR5
cGUgcHRyID0gc3RkOjpleGNoYW5nZShtX3B0ciwgby5sZWFrUHRyKCkpOwotICAgICAgICBBU1NF
UlQoIXB0ciB8fCBtX3B0ciAhPSBwdHIpOwotICAgICAgICBkZWxldGVPd25lZFB0cihwdHIpOwot
ICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
dGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIE93blB0cjxUPiYgT3duUHRyPFQ+OjpvcGVyYXRv
cj0oY29uc3QgUGFzc093blB0cjxVPiYgbykKLSAgICB7Ci0gICAgICAgIFB0clR5cGUgcHRyID0g
c3RkOjpleGNoYW5nZShtX3B0ciwgby5sZWFrUHRyKCkpOwotICAgICAgICBBU1NFUlQoIXB0ciB8
fCBtX3B0ciAhPSBwdHIpOwotICAgICAgICBkZWxldGVPd25lZFB0cihwdHIpOwotICAgICAgICBy
ZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIE93
blB0cjxUPjo6T3duUHRyKE93blB0cjxUPiYmIG8pCi0gICAgICAgIDogbV9wdHIoby5sZWFrUHRy
KCkpCi0gICAgewotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5
cGVuYW1lIFU+IGlubGluZSBPd25QdHI8VD46Ok93blB0cihPd25QdHI8VT4mJiBvKQotICAgICAg
ICA6IG1fcHRyKG8ubGVha1B0cigpKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBpbmxpbmUgYXV0byBPd25QdHI8VD46Om9wZXJhdG9yPShPd25QdHImJiBvKSAtPiBP
d25QdHImCi0gICAgewotICAgICAgICBBU1NFUlQoIW8gfHwgbyAhPSBtX3B0cik7Ci0gICAgICAg
IE93blB0ciBwdHIgPSBXVEY6Om1vdmUobyk7Ci0gICAgICAgIHN3YXAocHRyKTsKLSAgICAgICAg
cmV0dXJuICp0aGlzOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRl
PHR5cGVuYW1lIFU+IGlubGluZSBhdXRvIE93blB0cjxUPjo6b3BlcmF0b3I9KE93blB0cjxVPiYm
IG8pIC0+IE93blB0ciYKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbyB8fCBvICE9IG1fcHRyKTsK
LSAgICAgICAgT3duUHRyIHB0ciA9IFdURjo6bW92ZShvKTsKLSAgICAgICAgc3dhcChwdHIpOwot
ICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIHZvaWQgc3dhcChPd25QdHI8VD4mIGEsIE93blB0cjxUPiYgYikKLSAgICB7Ci0gICAg
ICAgIGEuc3dhcChiKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE93blB0cjxUPiYgYSwgVSogYikKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGI7IAotICAgIH0KLQotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oVCogYSwgY29u
c3QgT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhID09IGIuZ2V0KCk7IAot
ICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29s
IG9wZXJhdG9yIT0oY29uc3QgT3duUHRyPFQ+JiBhLCBVKiBiKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGEuZ2V0KCkgIT0gYjsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShUKiBhLCBjb25zdCBPd25QdHI8VT4mIGIp
Ci0gICAgewotICAgICAgICByZXR1cm4gYSAhPSBiLmdldCgpOyAKLSAgICB9Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBpbmxpbmUgdm9pZCBP
d25QdHI8VD46OmNyZWF0ZVRyYW5zYWN0aW9uYWxseShBcmdzLi4uIGFyZ3MpCi0gICAgewotICAg
ICAgICBpZiAobV9wdHIpIHsKLSAgICAgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBUKiBuZXdPYmpl
Y3QgPSBuZXcgVChhcmdzLi4uKTsKLSAgICAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKLSNp
ZiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKLSAgICAgICAgZG8gewotICAgICAgICAgICAgaWYg
KG1fcHRyKSB7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIG5ld09iamVjdDsKLSAgICAgICAgICAg
ICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0gd2hpbGUgKCFXVEY6OndlYWtDb21wYXJlQW5kU3dhcChiaXR3
aXNlX2Nhc3Q8dm9pZCp2b2xhdGlsZSo+KCZtX3B0ciksIG51bGxwdHIsIG5ld09iamVjdCkpOwot
I2Vsc2UKLSAgICAgICAgbV9wdHIgPSBuZXdPYmplY3Q7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IElzU21hcnRQdHI8T3duUHRyPFQ+PiB7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsKLSAgICB9OwotCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgUD4gc3RydWN0IERlZmF1bHRIYXNoPE93blB0cjxQPj4gewotICAgICAgICB0
eXBlZGVmIFB0ckhhc2g8T3duUHRyPFA+PiBIYXNoOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdURgotCi11c2luZyBXVEY6Ok93blB0cjsKLQotI2VuZGlmIC8vIFdURl9Pd25QdHJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9P
d25QdHJDb21tb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJiMDg3NWViNTli
MDg3ZGFjN2QzZTMyODEwYjFiOGZjMDAxNzg5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHJDb21tb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRv
cmNoIE1vYmlsZSwgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDEwIENvbXBhbnkgMTAwIEluYy4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgV1RG
X093blB0ckNvbW1vbl9oCi0jZGVmaW5lIFdURl9Pd25QdHJDb21tb25faAotCi1uYW1lc3BhY2Ug
V1RGIHsKLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBkZWxldGVPd25l
ZFB0cihUKiBwdHIpCi0gICAgewotICAgICAgICB0eXBlZGVmIGNoYXIga25vd25bc2l6ZW9mKFQp
ID8gMSA6IC0xXTsKLSAgICAgICAgaWYgKHNpemVvZihrbm93bikpCi0gICAgICAgICAgICBkZWxl
dGUgcHRyOwotICAgIH0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRpZiAvLyBXVEZfT3du
UHRyQ29tbW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bhc3NPd25QdHIuaCBiL1Nv
dXJjZS9XVEYvd3RmL1Bhc3NPd25QdHIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2M1ZWZiNjk5MmNjOTExNGRlZWQxNGRlZjA4ODBjMDk3YTdhMmVhYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXNzT3duUHRy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFdURl9QYXNzT3duUHRyX2gK
LSNkZWZpbmUgV1RGX1Bhc3NPd25QdHJfaAotCi0jaW5jbHVkZSA8Y3N0ZGRlZj4KLSNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvT3duUHRyQ29tbW9uLmg+Ci0jaW5jbHVkZSA8dHlwZV90cmFpdHM+Ci0KLW5hbWVzcGFjZSBX
VEYgewotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25QdHI7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gUGFzc093blB0cjxUPiBhZG9wdFB0cihUKik7Ci0KLSAgICBjbGFzcyBSZWZDb3VudGVkQmFz
ZTsKLSAgICBjbGFzcyBUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2U7Ci0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBjbGFzcyBQYXNzT3duUHRyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVk
ZWYgVCBWYWx1ZVR5cGU7Ci0gICAgICAgIHR5cGVkZWYgVmFsdWVUeXBlKiBQdHJUeXBlOwotCi0g
ICAgICAgIFBhc3NPd25QdHIoKSA6IG1fcHRyKDApIHsgfQotICAgICAgICBQYXNzT3duUHRyKHN0
ZDo6bnVsbHB0cl90KSA6IG1fcHRyKDApIHsgfQotCi0gICAgICAgIC8vIEl0IHNvbWV3aGF0IGJy
ZWFrcyB0aGUgdHlwZSBzeXN0ZW0gdG8gYWxsb3cgdHJhbnNmZXIgb2Ygb3duZXJzaGlwIG91dCBv
ZgotICAgICAgICAvLyBhIGNvbnN0IFBhc3NPd25QdHIuIEhvd2V2ZXIsIGl0IG1ha2VzIGl0IG11
Y2ggZWFzaWVyIHRvIHdvcmsgd2l0aCBQYXNzT3duUHRyCi0gICAgICAgIC8vIHRlbXBvcmFyaWVz
LCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIG5lZWQgdG8gdXNlIHJlYWwgY29uc3QgUGFzc093blB0cnMg
YW55d2F5LgotICAgICAgICBQYXNzT3duUHRyKGNvbnN0IFBhc3NPd25QdHImIG8pIDogbV9wdHIo
by5sZWFrUHRyKCkpIHsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBQYXNzT3duUHRy
KGNvbnN0IFBhc3NPd25QdHI8VT4mIG8pIDogbV9wdHIoby5sZWFrUHRyKCkpIHsgfQotCi0gICAg
ICAgIH5QYXNzT3duUHRyKCkgeyBkZWxldGVPd25lZFB0cihtX3B0cik7IH0KLQotICAgICAgICBQ
dHJUeXBlIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgUHRyVHlwZSBs
ZWFrUHRyKCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJOOwotCi0gICAgICAgIFZhbHVlVHlwZSYg
b3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gKm1fcHRyOyB9Ci0gICAg
ICAgIFB0clR5cGUgb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNTRVJUKG1fcHRyKTsgcmV0dXJuIG1f
cHRyOyB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9wdHI7
IH0KLQotICAgICAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxsb3dzIGltcGxpY2l0
IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIgdHlwZXMuCi0gICAg
ICAgIHR5cGVkZWYgUHRyVHlwZSBQYXNzT3duUHRyOjoqVW5zcGVjaWZpZWRCb29sVHlwZTsKLSAg
ICAgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRy
ID8gJlBhc3NPd25QdHI6Om1fcHRyIDogMDsgfQotCi0gICAgICAgIFBhc3NPd25QdHImIG9wZXJh
dG9yPShjb25zdCBQYXNzT3duUHRyJikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFQqKSwgUGFz
c093blB0cl9zaG91bGRfbmV2ZXJfYmVfYXNzaWduZWRfdG8pOyByZXR1cm4gKnRoaXM7IH0KLQot
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgUGFzc093blB0cjxVPiBhZG9wdFB0
cihVKik7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBQYXNzT3duUHRyKFB0clR5
cGUgcHRyKSA6IG1fcHRyKHB0cikgeyB9Ci0KLSAgICAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhh
dmUgdHdvIE93blB0cnMgZm9yIHRoZSBzYW1lIHVuZGVybHlpbmcgb2JqZWN0IChvdGhlcndpc2Ug
d2UnbGwgZ2V0Ci0gICAgICAgIC8vIGRvdWJsZS1kZXN0cnVjdGlvbiksIHNvIHRoZXNlIGVxdWFs
aXR5IG9wZXJhdG9ycyBzaG91bGQgbmV2ZXIgYmUgbmVlZGVkLgotICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBib29sIG9wZXJhdG9yPT0oY29uc3QgUGFzc093blB0cjxVPiYpIHsgQ09NUElM
RV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBQYXNzT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFUqKSwgT3du
UHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvcj09KGNvbnN0IE93blB0cjxVPiYpIHsgQ09N
UElMRV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0
b3IhPShjb25zdCBPd25QdHI8VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25Q
dHJzX3Nob3VsZF9uZXZlcl9iZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotCi0gICAgICAgIG11
dGFibGUgUHRyVHlwZSBtX3B0cjsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIHR5cGVuYW1lIFBhc3NPd25QdHI8VD46OlB0clR5cGUgUGFzc093blB0cjxUPjo6bGVh
a1B0cigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gc3RkOjpleGNoYW5nZShtX3B0ciwg
bnVsbHB0cik7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4g
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzT3duUHRyPFQ+JiBhLCBjb25zdCBQYXNz
T3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7
IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBi
b29sIG9wZXJhdG9yPT0oY29uc3QgUGFzc093blB0cjxUPiYgYSwgY29uc3QgT3duUHRyPFU+JiBi
KSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7IAotICAgIH0KLSAg
ICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IE93blB0cjxUPiYgYSwgY29uc3QgUGFzc093blB0cjxVPiYgYikgCi0gICAg
ewotICAgICAgICByZXR1cm4gYS5nZXQoKSA9PSBiLmdldCgpOyAKLSAgICB9Ci0gICAgCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBQYXNzT3duUHRyPFQ+JiBhLCBVKiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdl
dCgpID09IGI7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KFQqIGEsIGNvbnN0IFBhc3NPd25QdHI8VT4mIGIp
IAotICAgIHsKLSAgICAgICAgcmV0dXJuIGEgPT0gYi5nZXQoKTsgCi0gICAgfQotICAgIAotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0o
Y29uc3QgUGFzc093blB0cjxUPiYgYSwgY29uc3QgUGFzc093blB0cjxVPiYgYikgCi0gICAgewot
ICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgpOyAKLSAgICB9Ci0gICAgCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBQYXNzT3duUHRyPFQ+JiBhLCBjb25zdCBPd25QdHI8VT4mIGIpIAotICAgIHsKLSAgICAgICAg
cmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsgCi0gICAgfQotICAgIAotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgT3duUHRy
PFQ+JiBhLCBjb25zdCBQYXNzT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
LmdldCgpICE9IGIuZ2V0KCk7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NPd25QdHI8VD4m
IGEsIFUqIGIpCi0gICAgewotICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiOyAKLSAgICB9Ci0g
ICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3Bl
cmF0b3IhPShUKiBhLCBjb25zdCBQYXNzT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhICE9IGIuZ2V0KCk7IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBQYXNzT3duUHRyPFQ+IGFkb3B0UHRyKFQqIHB0cikKLSAgICB7Ci0gICAgICAgIHN0YXRp
Y19hc3NlcnQoIXN0ZDo6aXNfY29udmVydGlibGU8VCosIFJlZkNvdW50ZWRCYXNlKj46OnZhbHVl
LCAiRG8gbm90IHVzZSBhZG9wdFB0ciB3aXRoIFJlZkNvdW50ZWQsIHVzZSBhZG9wdFJlZiEiKTsK
LSAgICAgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19jb252ZXJ0aWJsZTxUKiwgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWRCYXNlKj46OnZhbHVlLCAiRG8gbm90IHVzZSBhZG9wdFB0ciB3aXRoIFRocmVh
ZFNhZmVSZWZDb3VudGVkLCB1c2UgYWRvcHRSZWYhIik7Ci0KLSAgICAgICAgcmV0dXJuIFBhc3NP
d25QdHI8VD4ocHRyKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgUGFzc093blB0cjxUPiBzdGF0aWNfcG9pbnRlcl9jYXN0KGNvbnN0IFBhc3NP
d25QdHI8VT4mIHApIAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKHN0YXRpY19jYXN0
PFQqPihwLmxlYWtQdHIoKSkpOwotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBz
dHJ1Y3QgSXNTbWFydFB0cjxQYXNzT3duUHRyPFQ+PiB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gdHJ1ZTsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcg
V1RGOjpQYXNzT3duUHRyOwotdXNpbmcgV1RGOjphZG9wdFB0cjsKLXVzaW5nIFdURjo6c3RhdGlj
X3BvaW50ZXJfY2FzdDsKLQotI2VuZGlmIC8vIFdURl9QYXNzT3duUHRyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1NpemVMaW1pdHMuY3BwIGIvU291cmNlL1dURi93dGYvU2l6ZUxpbWl0
cy5jcHAKaW5kZXggNzYxNGVjMjYzMjg3YWRjYjAwNzY1NzFiYTM3NmZhMWYwNWE0YjJiYS4uYTgy
ZDBjNDhiYzkxNGFlZTcyZTdhZmFmNTQ5NWU2MTVkMDcyYjNlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvU2l6ZUxpbWl0cy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvU2l6ZUxpbWl0cy5j
cHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNpbmNsdWRlIDx1
dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01NSw3ICs1NCw2IEBAIHN0cnVjdCBT
YW1lU2l6ZUFzUmVmQ291bnRlZCB7CiB9OwogI2VuZGlmCiAKLXN0YXRpY19hc3NlcnQoc2l6ZW9m
KE93blB0cjxpbnQ+KSA9PSBzaXplb2YoaW50KiksICJPd25QdHIgc2hvdWxkIHN0YXkgc21hbGwh
Iik7CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihQYXNzUmVmUHRyPFJlZkNvdW50ZWQ8aW50Pj4pID09
IHNpemVvZihpbnQqKSwgIlBhc3NSZWZQdHIgc2hvdWxkIHN0YXkgc21hbGwhIik7CiBzdGF0aWNf
YXNzZXJ0KHNpemVvZihSZWZDb3VudGVkPGludD4pID09IHNpemVvZihTYW1lU2l6ZUFzUmVmQ291
bnRlZCksICJSZWZDb3VudGVkIHNob3VsZCBzdGF5IHNtYWxsISIpOwogc3RhdGljX2Fzc2VydChz
aXplb2YoUmVmUHRyPFJlZkNvdW50ZWQ8aW50Pj4pID09IHNpemVvZihpbnQqKSwgIlJlZlB0ciBz
aG91bGQgc3RheSBzbWFsbCEiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3RvclRy
YWl0cy5oIGIvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmgKaW5kZXggYTgzMGU0NGEwYmM5
MDk3YjNhNjQ4ZjVlYzgzMmJhODA4YzJkNzRmMC4uOTRkYjhjYWI3ZDlmZDA2OGRiMWZiNDg0NTE0
MmIxYzFlMzRjZWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmgK
KysrIGIvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmgKQEAgLTIxLDcgKzIxLDYgQEAKICNp
Zm5kZWYgV1RGX1ZlY3RvclRyYWl0c19oCiAjZGVmaW5lIFdURl9WZWN0b3JUcmFpdHNfaAogCi0j
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8dXRpbGl0eT4KQEAgLTY2LDIyICs2NSwxMyBAQCBuYW1l
c3BhY2UgV1RGIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1j
bXAgPSB0cnVlOwogICAgIH07CiAKLSAgICAvLyBXZSBrbm93IE93blB0ciBhbmQgUmVmUHRyIGFy
ZSBzaW1wbGUgZW5vdWdoIHRoYXQgaW5pdGlhbGl6aW5nIHRvIDAgYW5kIG1vdmluZyB3aXRoIG1l
bWNweQotICAgIC8vIChhbmQgdGhlbiBub3QgZGVzdHJ1Y3RpbmcgdGhlIG9yaWdpbmFsKSB3aWxs
IHRvdGFsbHkgd29yawotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFA+Ci0gICAgc3RydWN0IFZlY3Rv
clRyYWl0czxSZWZQdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgeyB9OworICAgIC8v
IFdlIGtub3cgc21hcnQgcG9pbnRlcnMgYXJlIHNpbXBsZSBlbm91Z2ggdGhhdCBpbml0aWFsaXpp
bmcgdG8gMCBhbmQgbW92aW5nIHdpdGggbWVtY3B5CisgICAgLy8gKGFuZCB0aGVuIG5vdCBkZXN0
cnVjdGluZyB0aGUgb3JpZ2luYWwpIHdpbGwgd29yay4KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFA+Ci0gICAgc3RydWN0IFZlY3RvclRyYWl0czxPd25QdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0
b3JUcmFpdHMgeyB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4KLSAgICBzdHJ1Y3QgVmVj
dG9yVHJhaXRzPHN0ZDo6dW5pcXVlX3B0cjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7
IH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQPgotICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8
UmVmPFA+PiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKLQotICAgIHRlbXBsYXRlPD4K
LSAgICBzdHJ1Y3QgVmVjdG9yVHJhaXRzPEF0b21pY1N0cmluZz4gOiBTaW1wbGVDbGFzc1ZlY3Rv
clRyYWl0cyB7IH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IFZlY3RvclRyYWl0
czxSZWZQdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgeyB9OworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFA+IHN0cnVjdCBWZWN0b3JUcmFpdHM8c3RkOjp1bmlxdWVfcHRyPFA+PiA6IFNp
bXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1
Y3QgVmVjdG9yVHJhaXRzPFJlZjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7IH07Cisg
ICAgdGVtcGxhdGU8PiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPEF0b21pY1N0cmluZz4gOiBTaW1wbGVD
bGFzc1ZlY3RvclRyYWl0cyB7IH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGaXJzdCwgdHlw
ZW5hbWUgU2Vjb25kPgogICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8c3RkOjpwYWlyPEZpcnN0LCBT
ZWNvbmQ+PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmNzFlYjYwNTIwZDUwN2FmYjkz
ZjZhZWViOGFhNzUzY2U1YjllYjY1Li5jZjdkNzE4M2M2Y2VjY2YxYjJhODk3NjUzNDI2NjNmYWUz
ZWUzNWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTE5LDcgKzExOSw2IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWly
by5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwCi0gICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1Bh
dHRlcm5DYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRl
eHRDYWlyby5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjgxYzlkNTcyYjM1ZTZi
MzdkODNlZjZmNjMwNzQwNjMyYWE5MTUyNC4uZDhiNmQ2NWU4ZmFhNzlkMDhjMTI4YzM3ZGZmODkx
NmYzZmRhNWQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTc4LDcgKzc4LDYgQEAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNh
aXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKLSAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGF0dGVybkNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29u
dGV4dENhaXJvLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWly
by5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXggNDU5
M2QxZWE5ZWIyZGE2NDJmNjhjZjFhNDgyYTc1YWRiOTY2NDY1YS4uNzhiYjAxYTBiMDQxZjk5ZjEw
YTc3NDI1YTgyMDQzN2JhZjA4ZGUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNt
YWtlCkBAIC01MCw3ICs1MCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbnRSZWN0Q2Fpcm8uY3BwCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fp
cm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGFjODE1MzgzOTdkMDcxYTgwZjk4
ZWQzNTM3MjU5MTYyNTBmOWE0NDkuLjM2OWY1MmI4ZDFhZWEzN2UyYTY0OWJmYzg2MWI1ZDAxZjYy
YmU4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagpAQCAtODU4MiwxNiArODU4Miw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cT3duUHRyQ2Fpcm8uY3BwIj4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGF0aENhaXJv
LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0y
MDExOCwxNiArMjAxMDgsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVp
bGRTdGVwIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXE93blB0ckNhaXJvLmgi
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DdXN0b21CdWlsZFN0
ZXA+CiAgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YWlyb1xQbGF0Zm9ybVBhdGhDYWlyby5oIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA5NWMzMWU4MTY5YTRkNjljMWM2ZDkzMWJh
NjM4ZGNkNTcwN2EzZmFhLi5hMDMxODA4NWM1YTg1NTA2MDNmN2MwZTgyMmJjNDYxODBmOWU4NWE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCkBAIC0xNTg0LDkgKzE1ODQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cSW50UmVjdENhaXJvLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xP
d25QdHJDYWlyby5jcHAiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljc1xjYWlybzwv
RmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGF0aENhaXJvLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRm
b3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xNTM3MSw5
ICsxNTM2OCw2IEBACiAgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xjYWlyb1xHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oIj4KICAg
ICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm88L0ZpbHRlcj4KICAgICA8L0N1c3Rv
bUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXGNhaXJvXE93blB0ckNhaXJvLmgiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFw
aGljc1xjYWlybzwvRmlsdGVyPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgogICAgIDxDdXN0b21C
dWlsZFN0ZXAgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGxhdGZvcm1QYXRo
Q2Fpcm8uaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+
CiAgICAgPC9DdXN0b21CdWlsZFN0ZXA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9z
c1RocmVhZENvcGllci5jcHAKaW5kZXggMWIxYWMxM2VjNjUyYThiYjgxN2EyNTlkNThkMDQ1ZmM3
ZTQzYWViYy4uMmFhOTNlYzZkOWIyYTU0MjE4OWM5MWU0NzE1OWZiYWU1N2EzMDhkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMTc5LDE4
ICsxNzksNCBAQCBDT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAogICAgICAgICAgICAgICAg
ICAgPjo6dmFsdWUpLAogICAgICAgICAgICAgICAgUmF3UG9pbnRlclJlZkNvdW50ZWRUZXN0KTsK
IAotLy8gVmVyaWZ5IHRoYXQgUGFzc093blB0ciBnZXRzIHBhc3NlZCB0aHJvdWdoLgotQ09NUElM
RV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTwKLSAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8Zmxv
YXQ+LAotICAgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UGFzc093blB0cjxmbG9h
dD4+OjpUeXBlCi0gICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCi0gICAgICAgICAgICAgICBQ
YXNzT3duUHRyVGVzdCk7Ci0KLS8vIFZlcmlmeSB0aGF0IFBhc3NPd25QdHIgZG9lcyBub3QgZ2V0
IHBhc3NlZCB0aHJvdWdoLgotQ09NUElMRV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTwKLSAgICAgICAg
ICAgICAgICAgIGludCwKLSAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPE93blB0
cjxmbG9hdD4+OjpUeXBlCi0gICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCi0gICAgICAgICAg
ICAgICBPd25QdHJUZXN0KTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKaW5kZXggNzBmOTI0MzE3ZDA4Yjk4ZmM2
YmE4NjRjM2ZmZGE1ODM1ZmRmMGY5Yi4uZDc1MDU5YzE3NjhlZDdjOWMyNWMyYTcxOGU3MTE0MDlh
M2U3NWZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5o
CkBAIC0zMyw3ICszMyw2IEBACiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CkBAIC0xMTAsMTQgKzEwOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgfQogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUGFzc093blB0cjxUPj4gewotICAgICAg
ICB0eXBlZGVmIFBhc3NPd25QdHI8VD4gVHlwZTsKLSAgICAgICAgc3RhdGljIFR5cGUgY29weShU
eXBlIG93blB0cikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG93blB0cjsKLSAgICAg
ICAgfQotICAgIH07Ci0KICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJh
c2U8ZmFsc2UsIGZhbHNlLCBVUkw+IHsKICAgICAgICAgdHlwZWRlZiBVUkwgVHlwZTsKICAgICAg
ICAgc3RhdGljIFR5cGUgY29weShjb25zdCBVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCmluZGV4IGQyOTVkNDk4MDM4NWZiYjc1ZDc4MmU3
Y2EzMTFiNWFjMGY3Y2VmZDguLjAyM2E3ODIwYjY1YzA0MDNjMDE2ZDFhZDlmZTY4ZDkyNDgzODcw
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNw
cApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKaW5kZXggNzZkNGIxMjhmZTZmZWVjNTVi
NjBjZTg4NzIwMDZkYzhiOWI3MjcyMi4uNjNiYzVhYmY0OGVkYTY0ZjRkMzhmNzcyZTg1ZjcyYTgw
YWMzMDZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFs
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5j
cHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIKICNpbmNsdWRl
ICJUaHJlYWRUaW1lcnMuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRhLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKaW5kZXggMTg5NmZjMjlh
OTEzYmYwMjY4Mjc2NTgxM2NkNDU3NmE2ZTYwOTcyZi4uNTcwNjY2YjI5OTNkZDljMWRhNjhkMmI3
NGRiNDJkNjQ5NTA5NjQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhy
ZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2Jh
bERhdGEuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAj
aW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlv
bkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmgKaW5kZXggZmU5NGQwYzhjYTM1ZGVhMDY4NmJiY2Yy
YWMyODVmZjk4MWYyZDZjZi4uODFlZDA1MjFhMmYzYTA0M2JkY2EwN2M4NDYzYjBhM2QzYmU3YTcx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Yu
aApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0ZfaAog
CiAjaW5jbHVkZSAiQ0RNU2Vzc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVS
X0RFTEVHQVRFKSAmJiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAK
aW5kZXggY2JhMjdhNTRjNjA0ZmJjYzBkNzM5NDk0NDlmZDFjMWRlYzBlMjU3My4uNDA3NmVjMWRj
ZmYyZmQyMjVlZmMwNWRjNTdkYjQ3NTBlNDZhOTc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0x
ODksNyArMTg5LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJldGFpblB0cjxDQUNGTGF5ZXJS
ZWY+IG1fY2FWaWRlb0xheWVyOwogICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IG1fdmlkZW9M
YXllcldyYXBwZXI7CiAKLSAgICBPd25QdHI8TGF5ZXJDbGllbnQ+IG1fbGF5ZXJDbGllbnQ7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPExheWVyQ2xpZW50PiBtX2xheWVyQ2xpZW50OwogICAgIENPTVB0
cjxJRGlyZWN0M0REZXZpY2U5RXg+IG1fZDNkRGV2aWNlOwogCiAgICAgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRiogbV9jdXJyZW50VGV4dFRyYWNrOwpAQCAtMTYyMyw3ICsxNjIzLDcgQEAgdm9p
ZCBBVkZXcmFwcGVyOjpwcm9jZXNzTm90aWZpY2F0aW9uKHZvaWQqIGNvbnRleHQpCiAgICAgaWYg
KCFjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBPd25QdHI8Tm90aWZpY2F0aW9uQ2Fs
bGJhY2tEYXRhPiBub3RpZmljYXRpb25EYXRhID0gYWRvcHRQdHIocmVpbnRlcnByZXRfY2FzdDxO
b3RpZmljYXRpb25DYWxsYmFja0RhdGEqPihjb250ZXh0KSk7CisgICAgc3RkOjp1bmlxdWVfcHRy
PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YT4gbm90aWZpY2F0aW9uRGF0YSA9IHN0YXRpY19jYXN0
PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YSo+KGNvbnRleHQpOwogCiAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JD
YWxsYmFja0NvbnRleHQobm90aWZpY2F0aW9uRGF0YS0+bV9jb250ZXh0KTsKQEAgLTE2NzMsOSAr
MTY3Myw5IEBAIHZvaWQgQVZGV3JhcHBlcjo6bm90aWZpY2F0aW9uQ2FsbGJhY2soQ0ZOb3RpZmlj
YXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDCiAgICAgTE9HKE1lZGlhLCAiQVZGV3Jh
cHBlcjo6bm90aWZpY2F0aW9uQ2FsbGJhY2soaWY9JWQpICVzIiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KG9ic2VydmVyKSwgbm90aWZpY2F0aW9uTmFtZSk7CiAjZW5kaWYKIAotICAgIE93
blB0cjxOb3RpZmljYXRpb25DYWxsYmFja0RhdGE+IG5vdGlmaWNhdGlvbkRhdGEgPSBhZG9wdFB0
cihuZXcgTm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhKHByb3BlcnR5TmFtZSwgb2JzZXJ2ZXIpKTsK
KyAgICBhdXRvIG5vdGlmaWNhdGlvbkRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPE5vdGlmaWNhdGlv
bkNhbGxiYWNrRGF0YT4ocHJvcGVydHlOYW1lLCBvYnNlcnZlcik7CiAKLSAgICBkaXNwYXRjaF9h
c3luY19mKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIG5vdGlmaWNhdGlvbkRhdGEubGVha1B0
cigpLCBwcm9jZXNzTm90aWZpY2F0aW9uKTsKKyAgICBkaXNwYXRjaF9hc3luY19mKGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCksIG5vdGlmaWNhdGlvbkRhdGEucmVsZWFzZSgpLCBwcm9jZXNzTm90
aWZpY2F0aW9uKTsKIH0KIAogdm9pZCBBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVDb21wbGV0aW9u
Q2FsbGJhY2soQVZDRkFzc2V0UmVmLCB2b2lkKiBjb250ZXh0KQpAQCAtMTkxNyw3ICsxOTE3LDcg
QEAgUGxhdGZvcm1MYXllciogQVZGV3JhcHBlcjo6cGxhdGZvcm1MYXllcigpCiAgICAgICAgIHJl
dHVybiAwOwogCiAgICAgLy8gQ3JlYXRlIGEgUGxhdGZvcm1DQUxheWVyIHNvIHdlIGNhbiByZXNp
emUgdGhlIHZpZGVvIGxheWVyIHRvIG1hdGNoIHRoZSBlbGVtZW50IHNpemUuCi0gICAgbV9sYXll
ckNsaWVudCA9IGFkb3B0UHRyKG5ldyBMYXllckNsaWVudCh0aGlzKSk7CisgICAgbV9sYXllckNs
aWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8TGF5ZXJDbGllbnQ+KHRoaXMpOwogICAgIGlmICghbV9s
YXllckNsaWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAppbmRleCAy
ZWE0MmYxYzI5NjM4NDg0NGE0Y2JhMWZiZmU1OWMxMmZkYjljMGIxLi5iZTk3MDEwYjg2ZjMwOGEx
ZWJlYWM3MTMwZTFlM2EwYjVkZGJiM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCkBAIC0zNCw3ICsz
NCw2IEBACiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgog
I2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJPd25QdHJDYWlyby5oIgogI2luY2x1ZGUg
IlBhdGguaCIKICNpbmNsdWRlICJQbGF0Zm9ybVBhdGhDYWlyby5oIgogI2luY2x1ZGUgIlJlZlB0
ckNhaXJvLmgiCkBAIC03Myw4ICs3Miw5IEBAIHZvaWQgc2V0U291cmNlUkdCQUZyb21Db2xvcihj
YWlyb190KiBjb250ZXh0LCBjb25zdCBDb2xvciYgY29sb3IpCiAKIHZvaWQgYXBwZW5kUGF0aFRv
Q2Fpcm9Db250ZXh0KGNhaXJvX3QqIHRvLCBjYWlyb190KiBmcm9tKQogewotICAgIE93blB0cjxj
YWlyb19wYXRoX3Q+IGNhaXJvUGF0aCA9IGFkb3B0UHRyKGNhaXJvX2NvcHlfcGF0aChmcm9tKSk7
Ci0gICAgY2Fpcm9fYXBwZW5kX3BhdGgodG8sIGNhaXJvUGF0aC5nZXQoKSk7CisgICAgYXV0byBj
YWlyb1BhdGggPSBjYWlyb19jb3B5X3BhdGgoZnJvbSk7CisgICAgY2Fpcm9fYXBwZW5kX3BhdGgo
dG8sIGNhaXJvUGF0aCk7CisgICAgY2Fpcm9fcGF0aF9kZXN0cm95KGNhaXJvUGF0aCk7CiB9CiAK
IHZvaWQgc2V0UGF0aE9uQ2Fpcm9Db250ZXh0KGNhaXJvX3QqIHRvLCBjYWlyb190KiBmcm9tKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvLmNwcAppbmRleCBkMjJjNGNhZTJiMTk2ZDc3ZTdmZjNiNGQyOWY3OTA3
ZjFjM2E4OGYyLi5hMzM1YjA1Y2FiNWU4ZTliMDc3MTllZjM3MTkyNDU4N2VhMjgwZDVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZl
ckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgPGNhaXJvLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9UeXBl
ZEFycmF5SW5saW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTE5LDcgKzExOCw3IEBAIEltYWdlQnVmZmVyOjpJbWFn
ZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAq
LywgQ29sCiAKICAgICBSZWZQdHI8Y2Fpcm9fdD4gY3IgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUo
bV9kYXRhLm1fc3VyZmFjZS5nZXQoKSkpOwogICAgIG1fZGF0YS5tX3BsYXRmb3JtQ29udGV4dC5z
ZXRDcihjci5nZXQoKSk7Ci0gICAgbV9kYXRhLm1fY29udGV4dCA9IGFkb3B0UHRyKG5ldyBHcmFw
aGljc0NvbnRleHQoJm1fZGF0YS5tX3BsYXRmb3JtQ29udGV4dCkpOworICAgIG1fZGF0YS5tX2Nv
bnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzQ29udGV4dD4oJm1fZGF0YS5tX3BsYXRm
b3JtQ29udGV4dCk7CiAgICAgc3VjY2VzcyA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckRhdGFD
YWlyby5oCmluZGV4IGNiODljNzkwYmM5NTY5ZTg2ZmVkOTc4NmI5NTE5ZjA1NzA4NDU5NGMuLmQ2
MmY0NzA1MTVlM2U4MmRjYTlkOTc2MzQ0N2E2N2UyZmM0ZDA2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJE
YXRhQ2Fpcm8uaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBtX3N1cmZhY2U7CiAgICAgUGxhdGZvcm1Db250ZXh0Q2Fpcm8gbV9wbGF0Zm9y
bUNvbnRleHQ7Ci0gICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gbV9jb250ZXh0OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4dDsKICAgICBJbnRTaXplIG1f
c2l6ZTsKIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMjhhZmI2ZDE3ZDdiN2QzZTdlNDU0MjFjN2Nk
YmRhMDJlOTMxYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBDb2xsYWJvcmEgTHRkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
LSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlCi0gKiAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk93blB0ckNhaXJvLmgiCi0KLSNpZiBVU0UoQ0FJ
Uk8pCi0KLSNpZiBVU0UoRlJFRVRZUEUpCi0jaW5jbHVkZSA8Y2Fpcm8tZnQuaD4KLSNpbmNsdWRl
IDxmb250Y29uZmlnL2ZjZnJlZXR5cGUuaD4KLSNlbmRpZgotCi0jaW5jbHVkZSA8Y2Fpcm8uaD4K
LQotbmFtZXNwYWNlIFdURiB7Ci0KLSNpZiBVU0UoRlJFRVRZUEUpCi10ZW1wbGF0ZSA8PiB2b2lk
IGRlbGV0ZU93bmVkUHRyPEZjT2JqZWN0U2V0PihGY09iamVjdFNldCogcHRyKQotewotICAgIGlm
IChwdHIpCi0gICAgICAgIEZjT2JqZWN0U2V0RGVzdHJveShwdHIpOwotfQotCi10ZW1wbGF0ZSA8
PiB2b2lkIGRlbGV0ZU93bmVkUHRyPEZjRm9udFNldD4oRmNGb250U2V0KiBwdHIpCi17Ci0gICAg
aWYgKHB0cikKLSAgICAgICAgRmNGb250U2V0RGVzdHJveShwdHIpOwotfQotI2VuZGlmCi0KLX0g
Ly8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYgLy8gVVNFKENBSVJPKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmNjAxM2JiYTU4ZWIyZWFhZDQ5Nzk0Mjg3YzExNDI2MDE3
ZmU4OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaAorKysgL2Rl
di9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29sbGFi
b3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQot
ICogIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQotICovCi0KLSNpZm5kZWYgT3du
UHRyQ2Fpcm9faAotI2RlZmluZSBPd25QdHJDYWlyb19oCi0KLSNpZiBVU0UoQ0FJUk8pCi0KLSNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotI2lm
IFVTRShGUkVFVFlQRSkKLXR5cGVkZWYgc3RydWN0IF9GY09iamVjdFNldCBGY09iamVjdFNldDsK
LXR5cGVkZWYgc3RydWN0IF9GY0ZvbnRTZXQgRmNGb250U2V0OwotI2VuZGlmCi0KLXR5cGVkZWYg
c3RydWN0IGNhaXJvX3BhdGggY2Fpcm9fcGF0aF90OwotCi1uYW1lc3BhY2UgV1RGIHsKLQotI2lm
IFVTRShGUkVFVFlQRSkKLXRlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8RmNPYmplY3RT
ZXQ+KEZjT2JqZWN0U2V0Kik7Ci10ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPEZjRm9u
dFNldD4oRmNGb250U2V0Kik7Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRp
ZiAvLyBVU0UoQ0FJUk8pCi0KLSNlbmRpZiAvLyBPd25QdHJDYWlyb19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAppbmRleCBk
Y2MyZWYxNjBiMDg3M2FiZGY2MjkzOTVjYzE4NDE0MGUwMWU1M2RjLi41NDZhZGE2Y2MyYjFiYmQy
ZWU5NWYwOWY1OWVhODYxZmI2NTRkMDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNp
bmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJPd25QdHJDYWlyby5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtUGF0aENhaXJvLmgiCiAjaW5jbHVkZSAiU3Ryb2tlU3R5bGVBcHBsaWVyLmgi
CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KQEAgLTU5LDggKzU4LDkgQEAgUGF0aDo6UGF0aChjb25zdCBQ
YXRoJiBvdGhlcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2Fpcm9fdCogY3IgPSBlbnN1cmVQ
bGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpOwotICAgIE93blB0cjxjYWlyb19wYXRoX3Q+IHBhdGhD
b3B5ID0gYWRvcHRQdHIoY2Fpcm9fY29weV9wYXRoKG90aGVyLnBsYXRmb3JtUGF0aCgpLT5jb250
ZXh0KCkpKTsKLSAgICBjYWlyb19hcHBlbmRfcGF0aChjciwgcGF0aENvcHkuZ2V0KCkpOworICAg
IGF1dG8gcGF0aENvcHkgPSBjYWlyb19jb3B5X3BhdGgob3RoZXIucGxhdGZvcm1QYXRoKCktPmNv
bnRleHQoKSk7CisgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY3IsIHBhdGhDb3B5KTsKKyAgICBjYWly
b19wYXRoX2Rlc3Ryb3kocGF0aENvcHkpOwogfQogCiBQbGF0Zm9ybVBhdGhQdHIgUGF0aDo6ZW5z
dXJlUGxhdGZvcm1QYXRoKCkKQEAgLTgzLDggKzgzLDkgQEAgUGF0aCYgUGF0aDo6b3BlcmF0b3I9
KGNvbnN0IFBhdGgmIG90aGVyKQogICAgIH0gZWxzZSB7CiAgICAgICAgIGNsZWFyKCk7CiAgICAg
ICAgIGNhaXJvX3QqIGNyID0gZW5zdXJlUGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKTsKLSAgICAg
ICAgT3duUHRyPGNhaXJvX3BhdGhfdD4gcGF0aENvcHkgPSBhZG9wdFB0cihjYWlyb19jb3B5X3Bh
dGgob3RoZXIucGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSkpOwotICAgICAgICBjYWlyb19hcHBl
bmRfcGF0aChjciwgcGF0aENvcHkuZ2V0KCkpOworICAgICAgICBhdXRvIHBhdGhDb3B5ID0gY2Fp
cm9fY29weV9wYXRoKG90aGVyLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCkpOworICAgICAgICBj
YWlyb19hcHBlbmRfcGF0aChjciwgcGF0aENvcHkpOworICAgICAgICBjYWlyb19wYXRoX2Rlc3Ry
b3kocGF0aENvcHkpOwogICAgIH0KIAogICAgIHJldHVybiAqdGhpczsKQEAgLTMyMywxMSArMzI0
LDEwIEBAIHZvaWQgUGF0aDo6YWRkUGF0aChjb25zdCBQYXRoJiBwYXRoLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHRyYW5zZm9ybSkKICAgICBjYWlyb190KiBjciA9IHBhdGgucGxhdGZvcm1QYXRo
KCktPmNvbnRleHQoKTsKICAgICBjYWlyb19zYXZlKGNyKTsKICAgICBjYWlyb190cmFuc2Zvcm0o
Y3IsICZtYXRyaXgpOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxjYWlyb19wYXRoX3QsIHZvaWQoKiko
Y2Fpcm9fcGF0aF90Kik+IHBhdGhDb3B5KGNhaXJvX2NvcHlfcGF0aChjciksIFtdKGNhaXJvX3Bh
dGhfdCogcGF0aCkgewotICAgICAgICBjYWlyb19wYXRoX2Rlc3Ryb3kocGF0aCk7Ci0gICAgfSk7
CisgICAgYXV0byBwYXRoQ29weSA9IGNhaXJvX2NvcHlfcGF0aChjcik7CiAgICAgY2Fpcm9fcmVz
dG9yZShjcik7Ci0gICAgY2Fpcm9fYXBwZW5kX3BhdGgoZW5zdXJlUGxhdGZvcm1QYXRoKCktPmNv
bnRleHQoKSwgcGF0aENvcHkuZ2V0KCkpOworICAgIGNhaXJvX2FwcGVuZF9wYXRoKGVuc3VyZVBs
YXRmb3JtUGF0aCgpLT5jb250ZXh0KCksIHBhdGhDb3B5KTsKKyAgICBjYWlyb19wYXRoX2Rlc3Ry
b3kocGF0aENvcHkpOwogfQogCiB2b2lkIFBhdGg6OmNsb3NlU3VicGF0aCgpCkBAIC0zOTYsNyAr
Mzk2LDcgQEAgdm9pZCBQYXRoOjphcHBseSh2b2lkKiBpbmZvLCBQYXRoQXBwbGllckZ1bmN0aW9u
IGZ1bmN0aW9uKSBjb25zdAogICAgICAgICByZXR1cm47CiAKICAgICBjYWlyb190KiBjciA9IHBs
YXRmb3JtUGF0aCgpLT5jb250ZXh0KCk7Ci0gICAgT3duUHRyPGNhaXJvX3BhdGhfdD4gcGF0aENv
cHkgPSBhZG9wdFB0cihjYWlyb19jb3B5X3BhdGgoY3IpKTsKKyAgICBhdXRvIHBhdGhDb3B5ID0g
Y2Fpcm9fY29weV9wYXRoKGNyKTsKICAgICBjYWlyb19wYXRoX2RhdGFfdCogZGF0YTsKICAgICBQ
YXRoRWxlbWVudCBwZWxlbWVudDsKICAgICBGbG9hdFBvaW50IHBvaW50c1szXTsKQEAgLTQyOCw2
ICs0MjgsNyBAQCB2b2lkIFBhdGg6OmFwcGx5KHZvaWQqIGluZm8sIFBhdGhBcHBsaWVyRnVuY3Rp
b24gZnVuY3Rpb24pIGNvbnN0CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
KyAgICBjYWlyb19wYXRoX2Rlc3Ryb3kocGF0aENvcHkpOwogfQogCiB2b2lkIFBhdGg6OnRyYW5z
Zm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fp
cm8uY3BwCmluZGV4IGIxMGNhMGIwYWY1YjFmYjA5ZjFmMzM0YjA3MjgyYmMwMzVlYmRmYzYuLjBj
ZDI1YzkzNzYwNjQ1MTJlOTE3NjQ2Njc0ZWNlYjJmYmJhMDg3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNv
bnRleHRDYWlyby5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJDYWlyb1V0aWxpdGll
cy5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
Ci0jaW5jbHVkZSAiT3duUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAjaW5jbHVk
ZSA8Y2Fpcm8uaD4KIApAQCAtMzA2LDcgKzMwNSw3IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fp
cm86OmNsaXBGb3JQYXR0ZXJuRmlsbGluZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3Rh
CiAgICAgQVNTRVJUKHN0YXRlLmZpbGxQYXR0ZXJuKTsKIAogICAgIC8vIEhvbGQgY3VycmVudCBj
YWlybyBwYXRoIGluIGEgdmFyaWFibGUgZm9yIHJlc3RvcmluZyBpdCBhZnRlciBjb25maWd1cmlu
ZyB0aGUgcGF0dGVybiBjbGlwIHJlY3RhbmdsZS4KLSAgICBPd25QdHI8Y2Fpcm9fcGF0aF90PiBj
dXJyZW50UGF0aCA9IGFkb3B0UHRyKGNhaXJvX2NvcHlfcGF0aChtX2NyLmdldCgpKSk7CisgICAg
YXV0byBjdXJyZW50UGF0aCA9IGNhaXJvX2NvcHlfcGF0aChtX2NyLmdldCgpKTsKICAgICBjYWly
b19uZXdfcGF0aChtX2NyLmdldCgpKTsKIAogICAgIC8vIEluaXRpYWxpemUgY2xpcHBpbmcgZXh0
ZW50IGZyb20gY3VycmVudCBjYWlybyBjbGlwIGV4dGVudHMsIHRoZW4gc2hyaW5rIGlmIG5lZWRl
ZCBhY2NvcmRpbmcgdG8gcGF0dGVybi4KQEAgLTMzNyw3ICszMzYsOCBAQCB2b2lkIFBsYXRmb3Jt
Q29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcoY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGUmIHN0YQogICAgIH0KIAogICAgIC8vIFJlc3RvcmluZyBjYWlybyBwYXRoLgotICAgIGNh
aXJvX2FwcGVuZF9wYXRoKG1fY3IuZ2V0KCksIGN1cnJlbnRQYXRoLmdldCgpKTsKKyAgICBjYWly
b19hcHBlbmRfcGF0aChtX2NyLmdldCgpLCBjdXJyZW50UGF0aCk7CisgICAgY2Fpcm9fcGF0aF9k
ZXN0cm95KGN1cnJlbnRQYXRoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUv
Rm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IGU0ODM4NDg1ZDdhYzA1YzAyNjNhYjY0YWMwZWY4
ZmUwZWIxZjEyZWQuLmIyMzI3MTY3OGRjMWU4NTIyZmRlYTFjMzVjMGU5OWM4YzE2NTk4NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRD
YWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
cmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTIzLDcgKzIzLDYgQEAKICNpbmNsdWRl
ICJGb250Q2FjaGUuaCIKIAogI2luY2x1ZGUgIkZvbnQuaCIKLSNpbmNsdWRlICJPd25QdHJDYWly
by5oIgogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSAiVVRGMTZVQ2hhcjMySXRl
cmF0b3IuaCIKICNpbmNsdWRlIDxjYWlyby1mdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcAppbmRleCA3ODkwZDhkYTgz
MjY5YzMwNTVjYWNhNDM2NmRlYWNiMzJiZDFhMzY1Li43OWM0YTEwMTM5MjViNGVjZjVlMTE5YjQ0
MmVjYTNiZTJmYzNmMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUg
Ik9wZW5HTFNoaW1zLmgiCiAjaW5jbHVkZSA8R0wvZ2x4Lmg+CiAjaW5jbHVkZSA8Y2Fpcm8uaD4K
LSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FO
VkFTKQogI2luY2x1ZGUgPGNhaXJvLWdsLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKaW5kZXgg
ZWFlMzBjZGY0NWM4NDcwZmI4MDAwOGFmNjY1Y2MyNGNkZjg4YzdjNy4uNmM2OTUwMmZjZDAxMmEw
MGRiNDZmZGVmNGI1ZWJhYjhiODYxOTM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcApAQCAt
MTMwLDcgKzEzMCw3IEBAIEVHTE9mZlNjcmVlblN1cmZhY2U6OkVHTE9mZlNjcmVlblN1cmZhY2Uo
U3VyZmFjZUF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0ZXMpCiAgICAgaWYgKG1fc2hhcmVkRGlz
cGxheSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb25maWdT
ZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBFR0xDb25maWdTZWxlY3RvcihzdXJmYWNlQXR0cmlidXRl
cykpOworICAgIG1fY29uZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEVHTENvbmZpZ1Nl
bGVjdG9yPihzdXJmYWNlQXR0cmlidXRlcyk7CiB9CiAKIEVHTE9mZlNjcmVlblN1cmZhY2U6On5F
R0xPZmZTY3JlZW5TdXJmYWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmgKaW5k
ZXggOGE2MTA5YTJmYzRlMTA1M2YyZmVhZDFjOGVmMTlhY2ViMDZmMzgxZC4uOGZmN2E5YmMyYWFi
MGIxMWJmZTk0ZjY0YTY2ZDdjYjNjNjE2YzYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1Nl
bGVjdG9yLmgKQEAgLTE0MCwxNCArMTQwLDEzIEBAIHByaXZhdGU6CiAgICAgR0xYRkJDb25maWcg
ZmluZE1hdGNoaW5nQ29uZmlnKGNvbnN0IGludCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMy
KQogICAgIHsKICAgICAgICAgaW50IG51bUF2YWlsYWJsZUNvbmZpZ3M7Ci0gICAgICAgIE93blB0
clgxMTxHTFhGQkNvbmZpZz4gdGVtcChnbFhDaG9vc2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2
ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0
dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25maWdzKSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxHTFhGQkNvbmZpZywgWDExRGVsZXRlcj4gdGVtcChnbFhDaG9vc2VGQkNvbmZpZyhYMTFIZWxw
ZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihYMTFIZWxwZXI6Om5hdGl2ZURpc3Bs
YXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25maWdzKSk7CiAKICAgICAgICAgaWYg
KCFudW1BdmFpbGFibGVDb25maWdzIHx8ICF0ZW1wLmdldCgpKQogICAgICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICAgICAgT3duUHRyWDExPFhWaXN1YWxJbmZvPiBzY29wZWRWaXN1YWxJbmZvOwog
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF2YWlsYWJsZUNvbmZpZ3M7ICsraSkgewot
ICAgICAgICAgICAgc2NvcGVkVmlzdWFsSW5mbyA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhY
MTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgdGVtcFtpXSk7CisgICAgICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURlbGV0ZXI+IHNjb3BlZFZpc3VhbEluZm8gPSBnbFhH
ZXRWaXN1YWxGcm9tRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIHRlbXBbaV0p
OwogICAgICAgICAgICAgaWYgKCFzY29wZWRWaXN1YWxJbmZvLmdldCgpKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCkBAIC0xNjksNyArMTY4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQog
CiAgICAgICAgIC8vIERpZCBub3QgZmluZCBhbnkgdmlzdWFsIHN1cHBvcnRpbmcgYWxwaGEsIHNl
bGVjdCB0aGUgZmlyc3QgYXZhaWxhYmxlIGNvbmZpZy4KLSAgICAgICAgc2NvcGVkVmlzdWFsSW5m
byA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwg
dGVtcFswXSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRl
cj4gc2NvcGVkVmlzdWFsSW5mbyA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhYMTFIZWxwZXI6
Om5hdGl2ZURpc3BsYXkoKSwgdGVtcFswXSk7CiAKICAgICAgICAgaWYgKChtX2F0dHJpYnV0ZXMg
JiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSAmJiAoc2NvcGVkVmlzdWFsSW5mby0+
ZGVwdGggIT0gMzIpKQogICAgICAgICAgICAgbV9hdHRyaWJ1dGVzICY9IH5HTFBsYXRmb3JtU3Vy
ZmFjZTo6U3VwcG9ydEFscGhhOwpAQCAtMTgwLDE0ICsxNzksMTMgQEAgcHJpdmF0ZToKICAgICBH
TFhGQkNvbmZpZyBmaW5kTWF0Y2hpbmdDb25maWdXaXRoVmlzdWFsSWQoY29uc3QgaW50IGF0dHJp
YnV0ZXNbXSwgaW50IGRlcHRoLCBWaXN1YWxJRCBpZCkKICAgICB7CiAgICAgICAgIGludCBudW1B
dmFpbGFibGVDb25maWdzOwotICAgICAgICBPd25QdHJYMTE8R0xYRkJDb25maWc+IHRlbXAoZ2xY
Q2hvb3NlRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIERlZmF1bHRTY3JlZW4o
WDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCkpLCBhdHRyaWJ1dGVzLCAmbnVtQXZhaWxhYmxlQ29u
ZmlncykpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R0xYRkJDb25maWcsIFgxMURlbGV0ZXI+
IHRlbXAoZ2xYQ2hvb3NlRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIERlZmF1
bHRTY3JlZW4oWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCkpLCBhdHRyaWJ1dGVzLCAmbnVtQXZh
aWxhYmxlQ29uZmlncykpOwogCiAgICAgICAgIGlmICghbnVtQXZhaWxhYmxlQ29uZmlncyB8fCAh
dGVtcC5nZXQoKSkKICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIE93blB0clgxMTxY
VmlzdWFsSW5mbz4gc2NvcGVkVmlzdWFsSW5mbzsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBudW1BdmFpbGFibGVDb25maWdzOyArK2kpIHsKLSAgICAgICAgICAgIHNjb3BlZFZpc3VhbElu
Zm8gPSBnbFhHZXRWaXN1YWxGcm9tRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCks
IHRlbXBbaV0pOworICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFE
ZWxldGVyPiBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhl
bHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wW2ldKTsKICAgICAgICAgICAgIGlmICghc2NvcGVk
VmlzdWFsSW5mby5nZXQoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZh
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dM
WFN1cmZhY2UuY3BwCmluZGV4IDJiMzUzMDJlN2U4ZWFhMjU1MDI0ZDE1YzUyMGQ2YTkxODc3MGE3
YmEuLjE2YThlMDMxZjMxMjY0MGIzMWI0MjVkNmNjNDk1MmI0MzQ5ZDBmYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYU3VyZmFjZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgR0xYVHJhbnNwb3J0U3VyZmFjZTo6R0xY
VHJhbnNwb3J0U3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXplLCBTdXJmYWNlQXR0cmlidXRlcwog
ICAgIG1fc2hhcmVkRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpOwogICAgIGF0
dHJpYnV0ZXMgfD0gR0xQbGF0Zm9ybVN1cmZhY2U6OkRvdWJsZUJ1ZmZlcmVkOwogICAgIG1fY29u
ZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWENvbmZpZ1NlbGVjdG9yPihhdHRyaWJ1
dGVzKTsKLSAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IHZpc0luZm8obV9jb25maWdTZWxlY3Rv
ci0+dmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT5zdXJmYWNlQ29udGV4dENvbmZpZygpKSk7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFEZWxldGVyPiB2aXNJbmZvKG1f
Y29uZmlnU2VsZWN0b3ItPnZpc3VhbEluZm8obV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNvbnRl
eHRDb25maWcoKSkpOwogCiAgICAgaWYgKCF2aXNJbmZvLmdldCgpKSB7CiAgICAgICAgIGRlc3Ry
b3koKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEdMWE9mZlNjcmVlblN1cmZhY2U6OmluaXRp
YWxpemUoU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcykKIAogICAgIG1fY29uZmlnU2VsZWN0
b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWENvbmZpZ1NlbGVjdG9yPihhdHRyaWJ1dGVzKTsKIAot
ICAgIE93blB0clgxMTxYVmlzdWFsSW5mbz4gdmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52
aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnBpeG1hcENvbnRleHRDb25maWcoKSkpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRlcj4gdmlzdWFsSW5mbyhtX2Nv
bmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnBpeG1hcENvbnRleHRD
b25maWcoKSkpOwogICAgIFgxMUhlbHBlcjo6Y3JlYXRlUGl4bWFwKCZtX3BpeG1hcCwgKnZpc3Vh
bEluZm8uZ2V0KCkpOwogCiAgICAgaWYgKCFtX3BpeG1hcCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODc3NjEwYWJlZTJlZTdjNDFmMDE2NjVjNGI5
MGRkNTZkM2FlZGI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9Pd25QdHJY
MTEuaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgT3duUHRyWDExX2gKLSNkZWZpbmUgT3duUHRyWDExX2gKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RydWN0IE93blB0clgxMSB7Ci0KLSAg
ICBPd25QdHJYMTEoKSA6IG1feFJlc291cmNlKDApIHsgfQotICAgIE93blB0clgxMShUKiB4UmVz
b3VyY2UpIDogbV94UmVzb3VyY2UoeFJlc291cmNlKSB7IH0KLQotICAgIH5Pd25QdHJYMTEoKQot
ICAgIHsKLSAgICAgICAgaWYgKG1feFJlc291cmNlKQotICAgICAgICAgICAgWEZyZWUobV94UmVz
b3VyY2UpOwotICAgIH0KLQotICAgIE93blB0clgxMSYgb3BlcmF0b3I9KFQqIHhSZXNvdXJjZSkK
LSAgICB7Ci0gICAgICAgIGlmIChtX3hSZXNvdXJjZSkKLSAgICAgICAgICAgIFhGcmVlKG1feFJl
c291cmNlKTsKLQotICAgICAgICBtX3hSZXNvdXJjZSA9IHhSZXNvdXJjZTsKLSAgICAgICAgcmV0
dXJuICp0aGlzOwotICAgIH0KLQotICAgIG9wZXJhdG9yIFQqKCkgY29uc3QgeyByZXR1cm4gbV94
UmVzb3VyY2U7IH0KLSAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gbV94UmVzb3Vy
Y2U7IH0KLSAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3hSZXNvdXJjZTsgfQotCi1wcml2
YXRlOgotICAgIE93blB0clgxMShjb25zdCBPd25QdHJYMTEmKTsKLSAgICBPd25QdHJYMTEmIG9w
ZXJhdG9yPShjb25zdCBPd25QdHJYMTEmKTsKLSAgICBzdGF0aWMgdm9pZCogb3BlcmF0b3IgbmV3
IChzaXplX3QpOwotICAgIHN0YXRpYyB2b2lkIG9wZXJhdG9yIGRlbGV0ZSAodm9pZCopOwotICAg
IFQqIG1feFJlc291cmNlOwotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAK
aW5kZXggNDA5YTQ3ZjQwMWYyMzY1NmEzNzQ0YWIzYWM0ZGYxOGY1MmFiZTc0OS4uNGJlNjJiYjRm
ODIyMGQ4ODJhMzkzMDIwMWIxN2UzY2E0YmViMTEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAK
QEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIFgxMUhlbHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93
KHVpbnQzMl90KiBoYW5kbGVJZCwgY29uc3QgRUdMaW50IGlkLCBib29sCiAgICAgbWVtc2V0KCZ2
aXN1YWxJbmZvVGVtcGxhdGUsIDAsIHNpemVvZihYVmlzdWFsSW5mbykpOwogICAgIHZpc3VhbElu
Zm9UZW1wbGF0ZS52aXN1YWxpZCA9IHZpc3VhbElkOwogICAgIGludCBtYXRjaGluZ0NvdW50ID0g
MDsKLSAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IG1hdGNoaW5nVmlzdWFscyhYR2V0VmlzdWFs
SW5mbyhuYXRpdmVEaXNwbGF5KCksIFZpc3VhbElETWFzaywgJnZpc3VhbEluZm9UZW1wbGF0ZSwg
Jm1hdGNoaW5nQ291bnQpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURl
bGV0ZXI+IG1hdGNoaW5nVmlzdWFscyhYR2V0VmlzdWFsSW5mbyhuYXRpdmVEaXNwbGF5KCksIFZp
c3VhbElETWFzaywgJnZpc3VhbEluZm9UZW1wbGF0ZSwgJm1hdGNoaW5nQ291bnQpKTsKICAgICBY
VmlzdWFsSW5mbyogZm91bmRWaXN1YWwgPSAwOwogCiAgICAgaWYgKG1hdGNoaW5nVmlzdWFscykg
ewpAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgWDExSGVscGVyOjpjcmVhdGVQaXhtYXAoUGl4bWFw
KiBoYW5kbGVJZCwgY29uc3QgRUdMaW50IGlkLCBib29sIGhhc0FscGhhLCBjCiAgICAgbWVtc2V0
KCZ2aXN1YWxJbmZvVGVtcGxhdGUsIDAsIHNpemVvZihYVmlzdWFsSW5mbykpOwogICAgIHZpc3Vh
bEluZm9UZW1wbGF0ZS52aXN1YWxpZCA9IHZpc3VhbElkOwogICAgIGludCBtYXRjaGluZ0NvdW50
ID0gMDsKLSAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IG1hdGNoaW5nVmlzdWFscyhYR2V0Vmlz
dWFsSW5mbyhuYXRpdmVEaXNwbGF5KCksIFZpc3VhbElETWFzaywgJnZpc3VhbEluZm9UZW1wbGF0
ZSwgJm1hdGNoaW5nQ291bnQpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgx
MURlbGV0ZXI+IG1hdGNoaW5nVmlzdWFscyhYR2V0VmlzdWFsSW5mbyhuYXRpdmVEaXNwbGF5KCks
IFZpc3VhbElETWFzaywgJnZpc3VhbEluZm9UZW1wbGF0ZSwgJm1hdGNoaW5nQ291bnQpKTsKICAg
ICBYVmlzdWFsSW5mbyogZm91bmRWaXN1YWwgPSAwOwogICAgIGludCByZXF1aXJlZERlcHRoID0g
aGFzQWxwaGEgPyAzMiA6IDI0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmgKaW5kZXggYTdhZWI3MGRhMjEz
MjZjMjM5MjBmNGU3OTU5NGM1Yzg1Y2Y2MmM4ZS4uMTAzZjAwMTM1ZTIzZThmMDFkNTQ1ODVlMzA2
ODljMDRkNzBlMTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuaApAQCAtMjcsNyArMjcsNiBAQAogI2Rl
ZmluZSBYMTFIZWxwZXJfaAogCiAjaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIk93blB0
clgxMS5oIgogCiAjaWYgVVNFKEVHTCkKICNpbmNsdWRlIDxvcGVuZ2wvR0xEZWZzLmg+CkBAIC00
Myw4ICs0MiwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFgxMUhlbHBlciB7
CitjbGFzcyBYMTFEZWxldGVyIHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2
b2lkIG9wZXJhdG9yKCkoVCogcmVzb3VyY2UpCisgICAgeworICAgICAgICBpZiAocmVzb3VyY2Up
CisgICAgICAgICAgICBYRnJlZShyZXNvdXJjZSk7CisgICAgfQorfTsKIAorY2xhc3MgWDExSGVs
cGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVQaXhtYXAoUGl4bWFwKiwgY29u
c3QgWFZpc3VhbEluZm8mLCBjb25zdCBJbnRTaXplJiA9IEludFNpemUoMSwgMSkpOwogICAgIHN0
YXRpYyB2b2lkIGNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJfdCosIGNvbnN0IFhWaXN1YWxJ
bmZvJiwgY29uc3QgSW50U2l6ZSYgPSBJbnRTaXplKDEsIDEpKTsKQEAgLTYxLDcgKzY4LDYgQEAg
cHVibGljOgogfTsKIAogY2xhc3MgU2NvcGVkWFBpeG1hcENyZWF0aW9uRXJyb3JIYW5kbGVyIHsK
LQogcHVibGljOgogICAgIFNjb3BlZFhQaXhtYXBDcmVhdGlvbkVycm9ySGFuZGxlcigpOwogICAg
IH5TY29wZWRYUGl4bWFwQ3JlYXRpb25FcnJvckhhbmRsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xs
ZXIuY3BwCmluZGV4IGM5ZTkzOGMyN2QyNDU4NzU4NjQ1ZDIyZGM1MjBkN2QyYzAzNGMyNmQuLjY4
MDFjMTZhY2JkMzVlZjM1ZjNjNWE5Mzk3OTI1MGJkMzg4MGY1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250
cm9sbGVyLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZUZ1bGxzY3JlZW5XaW5kb3cuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldlYkNv
cmVJbnN0YW5jZUhhbmRsZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTYwLDggKzU5
LDggQEAgcHVibGljOgogICAgIAogICAgIEZ1bGxTY3JlZW5Db250cm9sbGVyKiBtX2NvbnRyb2xs
ZXI7CiAgICAgRnVsbFNjcmVlbkNvbnRyb2xsZXJDbGllbnQqIG1fY2xpZW50OwotICAgIE93blB0
cjxNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93PiBtX2Z1bGxTY3JlZW5XaW5kb3c7
Ci0gICAgT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c+IG1fYmFja2dy
b3VuZFdpbmRvdzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNj
cmVlbldpbmRvdz4gbV9mdWxsU2NyZWVuV2luZG93OworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93PiBtX2JhY2tncm91bmRXaW5kb3c7CiAgICAg
SW50UmVjdCBtX2Z1bGxTY3JlZW5GcmFtZTsKICAgICBJbnRSZWN0IG1fb3JpZ2luYWxGcmFtZTsK
ICAgICBIV05EIG1fb3JpZ2luYWxIb3N0OwpAQCAtMTA0LDcgKzEwMyw3IEBAIExSRVNVTFQgRnVs
bFNjcmVlbkNvbnRyb2xsZXI6OlByaXZhdGU6OmZ1bGxzY3JlZW5DbGllbnRXbmRQcm9jKEhXTkQg
aHduZCwgVUlOVCBtCiB9CiAKIEZ1bGxTY3JlZW5Db250cm9sbGVyOjpGdWxsU2NyZWVuQ29udHJv
bGxlcihGdWxsU2NyZWVuQ29udHJvbGxlckNsaWVudCogY2xpZW50KQotICAgIDogbV9wcml2YXRl
KGFkb3B0UHRyKG5ldyBGdWxsU2NyZWVuQ29udHJvbGxlcjo6UHJpdmF0ZSh0aGlzLCBjbGllbnQp
KSkKKyAgICA6IG1fcHJpdmF0ZShzdGQ6Om1ha2VfdW5pcXVlPFByaXZhdGU+KHRoaXMsIGNsaWVu
dCkpCiB7CiAgICAgQVNTRVJUX0FSRyhjbGllbnQsIGNsaWVudCk7CiB9CkBAIC0xMzQsMTMgKzEz
MywxMyBAQCB2b2lkIEZ1bGxTY3JlZW5Db250cm9sbGVyOjplbnRlckZ1bGxTY3JlZW4oKQogICAg
IG1fcHJpdmF0ZS0+bV9vcmlnaW5hbEZyYW1lID0gb3JpZ2luYWxGcmFtZTsKIAogICAgIEFTU0VS
VCghbV9wcml2YXRlLT5tX2JhY2tncm91bmRXaW5kb3cpOwotICAgIG1fcHJpdmF0ZS0+bV9iYWNr
Z3JvdW5kV2luZG93ID0gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5X
aW5kb3cobV9wcml2YXRlLmdldCgpKSk7CisgICAgbV9wcml2YXRlLT5tX2JhY2tncm91bmRXaW5k
b3cgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c+
KG1fcHJpdmF0ZS5nZXQoKSk7CiAgICAgbV9wcml2YXRlLT5tX2JhY2tncm91bmRXaW5kb3ctPmNy
ZWF0ZVdpbmRvdygwKTsKICAgICA6OkFuaW1hdGVXaW5kb3cobV9wcml2YXRlLT5tX2JhY2tncm91
bmRXaW5kb3ctPmh3bmQoKSwga0Z1bGxTY3JlZW5BbmltYXRpb25EdXJhdGlvbiwgQVdfQkxFTkQg
fCBBV19BQ1RJVkFURSk7CiAKICAgICBtX3ByaXZhdGUtPm1fY2xpZW50LT5mdWxsU2NyZWVuQ2xp
ZW50V2lsbEVudGVyRnVsbFNjcmVlbigpOwogICAgIEFTU0VSVCghbV9wcml2YXRlLT5tX2Z1bGxT
Y3JlZW5XaW5kb3cpOwotICAgIG1fcHJpdmF0ZS0+bV9mdWxsU2NyZWVuV2luZG93ID0gYWRvcHRQ
dHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cobV9wcml2YXRlLmdldCgp
KSk7CisgICAgbV9wcml2YXRlLT5tX2Z1bGxTY3JlZW5XaW5kb3cgPSBzdGQ6Om1ha2VfdW5pcXVl
PE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c+KG1fcHJpdmF0ZS5nZXQoKSk7CiAg
ICAgQVNTRVJUKG1fcHJpdmF0ZS0+bV9mdWxsU2NyZWVuV2luZG93KTsKICAgICBtX3ByaXZhdGUt
Pm1fZnVsbFNjcmVlbldpbmRvdy0+Y3JlYXRlV2luZG93KDApOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxl
ci5oCmluZGV4IDc2YTg4MGRhNzk3MjFmZjZlYjc2NDE0MmE2M2Y2N2VhZTNmN2RiMjUuLjMxNzdk
OWVhODcwMjk5N2ZiODg3OTdhNTRjYWU1OTQ5MjUxZDgyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxl
ci5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLSNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8bWVtb3J5PgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTU0LDcgKzU0LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgY2xhc3MgUHJpdmF0
ZTsKICAgICBmcmllbmQgY2xhc3MgUHJpdmF0ZTsKLSAgICBPd25QdHI8RnVsbFNjcmVlbkNvbnRy
b2xsZXI6OlByaXZhdGU+IG1fcHJpdmF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RnVsbFNjcmVl
bkNvbnRyb2xsZXI6OlByaXZhdGU+IG1fcHJpdmF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0
M0RXaW4uY3BwCmluZGV4IDY5ZGZjN2Y2NWUyOTk4Njg2MDA0NjZjYjViNWQ5YmU3YzY5NDNiMzEu
LjdhNWQ3YmEwOGI2YWFjYmQyYmZlYWMzNDZlZWFhMWRlNTIwOTkyM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29u
dGV4dDNEV2luLmNwcApAQCAtMjksOCArMjksNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXJXaW4uaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogI2lmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRl
IDxHTFNMQU5HL1NoYWRlckxhbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuY3BwCmluZGV4IDYyMmEzNjQyZmU5ZGJj
ZGQ1ZGQ4ODJkYWQzZTEwNjBhY2M5NDliMDIuLjJkMjA1ODcxY2ZkZWU1Zjc4ODMxNzk2YzczNzYw
ZWMxNDAyOTdkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9XS0NBSW1hZ2VRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVk
ZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KICNpbmNsdWRlIDxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTUyLDEzICs1MSwxMyBAQCBzdGF0aWMgdm9pZCBXS0NBSW1hZ2VRdWV1ZVJlbGVhc2Uo
Q0FJbWFnZVF1ZXVlUmVmIGlxKQogfQogCiBXS0NBSW1hZ2VRdWV1ZTo6V0tDQUltYWdlUXVldWUo
dWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwgdWludDMyX3QgY2FwYWNpdHkpCi0gICAg
OiBtX3ByaXZhdGUoYWRvcHRQdHIobmV3IFdLQ0FJbWFnZVF1ZXVlUHJpdmF0ZSgpKSkKKyAgICA6
IG1fcHJpdmF0ZShzdGQ6Om1ha2VfdW5pcXVlPFdLQ0FJbWFnZVF1ZXVlUHJpdmF0ZT4oKSkKIHsK
ICAgICBtX3ByaXZhdGUtPm1faW1hZ2VRdWV1ZSA9IGFkb3B0Q0Yod2tDQUltYWdlUXVldWVDcmVh
dGUod2lkdGgsIGhlaWdodCwgY2FwYWNpdHkpKTsKIH0KIAogV0tDQUltYWdlUXVldWU6OldLQ0FJ
bWFnZVF1ZXVlKGNvbnN0IFdLQ0FJbWFnZVF1ZXVlJiBvKQotICAgIDogbV9wcml2YXRlKGFkb3B0
UHRyKG5ldyBXS0NBSW1hZ2VRdWV1ZVByaXZhdGUoKSkpCisgICAgOiBtX3ByaXZhdGUoc3RkOjpt
YWtlX3VuaXF1ZTxXS0NBSW1hZ2VRdWV1ZVByaXZhdGU+KCkpCiB7CiAgICAgbV9wcml2YXRlLT5t
X2ltYWdlUXVldWUgPSBvLm1fcHJpdmF0ZS0+bV9pbWFnZVF1ZXVlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaAppbmRl
eCAyNTYwNzY1MGZmZDJlMzMyZmMxNDJhYjBiZGE1NDBhZjdmNTAwMjRiLi4yNzYwZDYxMTY1YWJl
MDUxNTQwY2VlNzVlOTg0MTI3MjAyOTQxZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaApAQCAtMjksOCArMjksOCBA
QAogdHlwZWRlZiBjb25zdCB2b2lkICogQ0ZUeXBlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
X19DRkRpY3Rpb25hcnkgKiBDRkRpY3Rpb25hcnlSZWY7CiAKKyNpbmNsdWRlIDxtZW1vcnk+CiAj
aW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXS0NB
SW1hZ2VRdWV1ZShjb25zdCBXS0NBSW1hZ2VRdWV1ZSYpOwogICAgIFdLQ0FJbWFnZVF1ZXVlJiBv
cGVyYXRvcj0oY29uc3QgV0tDQUltYWdlUXVldWUmKTsKLSAgICBPd25QdHI8V0tDQUltYWdlUXVl
dWVQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdLQ0FJbWFnZVF1ZXVl
UHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKaW5k
ZXggYzdmMGI0Mzk4ZjFhMGZiOWVhYmYzODZkMDkwZDc3YWM0NDhjMzM4OS4uZDA0OTI5NDA0MGJj
M2M5OGZlYjExZWQyNjk3YWI1MWIwMjc4Yjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3Bw
CkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAK
ICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCA3NzI0NjZk
YWI5MTMzYTJhZTFlOWNjODRiOTYzMzQxOGVmODBkNjY0Li5iMGUwMzU5NjcwYzFhNjlhMzA0MDBm
YWQ3NDU5NDhkZDE0ZDJiZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAK
ICNpZiBVU0UoQ0ZORVRXT1JLKQogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGUuaCIKQEAgLTE2Myw3ICsxNjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHVuc2lnbmVkIG1fc3NsRXJyb3JzOwogICAgICAgICBWZWN0b3I8Y2hhcj4gbV9wb3N0
Qnl0ZXM7CiAKLSAgICAgICAgT3duUHRyPE11bHRpcGFydEhhbmRsZT4gbV9tdWx0aXBhcnRIYW5k
bGU7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNdWx0aXBhcnRIYW5kbGU+IG1fbXVsdGlwYXJ0
SGFuZGxlOwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAgIEdSZWZQdHI8U291cE1lc3Nh
Z2U+IG1fc291cE1lc3NhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuY3BwCmluZGV4IGU3ODA1MGZlMjk5YjdhYTlk
YjgwZTA1ZjQzMjQ4NWM1Y2JiOWMzMjEuLjg5N2Y5NWMxOTBhNTQxNjViZDk1NDc5YzQ1NGUzOTQ2
YmVlZjBjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9NdWx0aXBhcnRIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuY3BwCkBAIC0zNywxMSArMzcsNiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8TXVsdGlwYXJ0SGFuZGxlPiBNdWx0aXBhcnRIYW5k
bGU6OmNyZWF0ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5
KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTXVsdGlwYXJ0SGFuZGxlKGhhbmRsZSwgYm91
bmRhcnkpKTsKLX0KLQogYm9vbCBNdWx0aXBhcnRIYW5kbGU6OmV4dHJhY3RCb3VuZGFyeShjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBTdHJpbmcmIGJvdW5kYXJ5KQogewogICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgbGVuZ3RoID0gc3RybGVuKCJib3VuZGFyeT0iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuaAppbmRl
eCA5YWI4NTYyNDU4NzMxZGFhNTU4ZWM3MjY0ZmZlYmRmY2E3NDNlOWQwLi5iYjBmMGY2Y2YzMzk2
YWFhMDE1Y2E5NmMwZmExMmVhMzU4ZDJlY2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5oCkBAIC0yOCwxNyArMjgs
MTMgQEAKIAogI2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZS5oIgotCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBNdWx0aXBhcnRIYW5kbGUgewotCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NP
d25QdHI8TXVsdGlwYXJ0SGFuZGxlPiBjcmVhdGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgU3RyaW5nJiBib3VuZGFyeSk7CiAgICAgc3RhdGljIGJvb2wgZXh0cmFjdEJvdW5kYXJ5KGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0cmluZyYgYm91bmRhcnkpOwogCiAgICAgTXVsdGlw
YXJ0SGFuZGxlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFN0cmluZyYgYm91bmRhcnkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCmluZGV4IDMzYWI4N2I0MGVmMjA5NDhiNWVhNmM1
MjQ0OTI0Zjc5MTY4MDVmMDcuLmZkOGY1OGU4ODI1OTM3MmZkMjAyYmI2Mjk3YTU5ZGM2MjllYmRm
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCkBAIC01MTUsNyArNTE1LDcgQEAgc3Rh
dGljIHNpemVfdCBoZWFkZXJDYWxsYmFjayhjaGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qg
bm1lbWIsIHZvaWQqIGRhdGEpCiAgICAgICAgICAgICBTdHJpbmcgYm91bmRhcnk7CiAgICAgICAg
ICAgICBib29sIHBhcnNlZCA9IE11bHRpcGFydEhhbmRsZTo6ZXh0cmFjdEJvdW5kYXJ5KGQtPm1f
cmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSksIGJv
dW5kYXJ5KTsKICAgICAgICAgICAgIGlmIChwYXJzZWQpCi0gICAgICAgICAgICAgICAgZC0+bV9t
dWx0aXBhcnRIYW5kbGUgPSBNdWx0aXBhcnRIYW5kbGU6OmNyZWF0ZShqb2IsIGJvdW5kYXJ5KTsK
KyAgICAgICAgICAgICAgICBkLT5tX211bHRpcGFydEhhbmRsZSA9IHN0ZDo6bWFrZV91bmlxdWU8
TXVsdGlwYXJ0SGFuZGxlPihqb2IsIGJvdW5kYXJ5KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxF
KFdFQl9USU1JTkcpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggNTU5NTVmODBjNWI0M2ViNDhkZmY2ODFhMmM0ODliNWVjYzY0NjA3ZC4uZjU1Y2I0
MjU5MDY5OTU5NDNlN2Y0YzI4YmEzOWI5NWQwOWI3N2YyOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE1LTA0LTIz
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBDb252ZXJ0IE93blB0
ciBhbmQgUGFzc093blB0ciB1c2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vSGlz
dG9yeURlbGVnYXRlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZS4KKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5oOiBEaXR0by4KKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC93aW4vV2ViVmlld0Rlc3RydWN0aW9uLmNwcDogRGl0dG8uCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwOiBVc2Ug
dW5pcXVlX3B0ci4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdDJVc2VyTWVzc2FnZVJv
dW5kVHJpcFRlc3Q6OlNldFVwKTogVXNlIG1ha2VfdW5pcXVlLgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsTG9hZC5jcHA6IERpdHRvLgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6V2ViS2l0MldpbGxMb2FkVGVzdDo6U2V0VXApOiBEaXR0by4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NRE9NV2luZG93VGVzdC5jcHA6CisgICAg
ICAgIChXZWJLaXRET01ET01XaW5kb3dUZXN0OjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6CisgICAg
ICAgIChkb2N1bWVudExvYWRlZENhbGxiYWNrKTogVXNlIGEgcXVldWUgb2YgRGVsYXllZFNpZ25h
bCBvYmplY3RzIGluc3RlYWQKKyAgICAgICAgb2Ygc21hcnQgcG9pbnRlcnMgdG8gRGVsYXllZFNJ
Z25hbCBvYmplY3RzLgorICAgICAgICAodXJpQ2hhbmdlZENhbGxiYWNrKTogRGl0dG8uCisKKzIw
MTUtMDQtMjMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCiAgICAgICAgIEFub3Ro
ZXIgcm91bmQgb2YgcmVtb3ZpbmcgdXNlIG9mIE93blB0ciwgUGFzc093blB0ciwgYW5kIGRlbGV0
ZU93bmVkUHRyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDQwOTAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0hpc3RvcnlE
ZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0hpc3RvcnlEZWxlZ2F0ZS5oCmlu
ZGV4IDIzNmVkZDM2ZjBiMTRiMTkwZGI1NzU4ZWQyNTZmZjE1Y2ViMjQ5MDEuLmM4NTRhZTAwMTdl
ZTQ0YWQyYmZkMDVlMjBmNjdjNTVmMGRlZTMwMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9IaXN0b3J5RGVsZWdhdGUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vSGlzdG9yeURlbGVnYXRlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgSGlzdG9yeURl
bGVnYXRlX2gKIAogI2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4KLSNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAKIGNsYXNzIEhpc3RvcnlEZWxlZ2F0ZSA6IHB1YmxpYyBJV2ViSGlzdG9yeURlbGVn
YXRlIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURl
bGVnYXRlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5oCmluZGV4IDdm
NGY5M2RhNGRiYmQwNGZjYzhlMmM4NWQ3OTM4ZDEyMjFkMDQ3YWYuLjZlMGZkNGE3N2U4NzdhZTli
YjZjODk3MDIwOTg2NzJhM2U2ZTE4NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9VSURlbGVnYXRlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdh
dGUuaApAQCAtMzEsNyArMzEsNiBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KICNp
bmNsdWRlIDxXZWJLaXQvV2ViS2l0Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHdpbmRlZi5oPgogCiBjbGFzcyBEUlRVbmRvTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L3dpbi9XZWJWaWV3RGVzdHJ1Y3Rpb24uY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvd2luL1dlYlZpZXdEZXN0cnVjdGlvbi5j
cHAKaW5kZXggYjU5YTg0Y2I0N2ExNWI3NzY4NTUwMGQ0ZDBhM2NlYTNmYjc4M2QwOC4uY2NkYmM2
MTA2NGUxYWEzODgzNGUzODRhZWQwYzNlNWMwZTFkODRmNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvd2luL1dlYlZpZXdEZXN0cnVjdGlvbi5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvd2luL1dlYlZpZXdEZXN0cnVjdGlvbi5j
cHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NPTVB0ci5oPgogI2luY2x1
ZGUgPFdlYktpdC9XZWJLaXQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lc3Nh
Z2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlLmNw
cAppbmRleCA0ZjAwMWE3NjcyODIxMTRkNmY3YTg2MjA2YzE0ZGRiYmM4Yzg3N2U3Li4xZTQ1MjUw
NDk1YzM1YjQ5ZDZkODZmOGMwMzEwNmE1OWMxODlmMzUxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZS5jcHAKQEAgLTMxLDggKzMxLDYgQEAK
IAogI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJW
aWV3LmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApAQCAtNDUsNyArNDMsNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0OwotICAg
IE93blB0cjxQbGF0Zm9ybVdlYlZpZXc+IHdlYlZpZXc7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtV2ViVmlldz4gd2ViVmlldzsKIAogICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gcmVj
aWV2ZWRCb2R5OwogCkBAIC05NSw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICAgICAgY29udGV4dCA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiVXNlck1l
c3NhZ2VUZXN0IikpOwogICAgICAgICBzZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0Lmdl
dCgpLCB0aGlzKTsKIAotICAgICAgICB3ZWJWaWV3ID0gYWRvcHRQdHIobmV3IFBsYXRmb3JtV2Vi
Vmlldyhjb250ZXh0LmdldCgpKSk7CisgICAgICAgIHdlYlZpZXcgPSBzdGQ6Om1ha2VfdW5pcXVl
PFBsYXRmb3JtV2ViVmlldz4oY29udGV4dC5nZXQoKSk7CiAgICAgICAgIHNldFBhZ2VMb2FkZXJD
bGllbnQod2ViVmlldy0+cGFnZSgpLCB0aGlzKTsKIAogICAgICAgICBkaWRGaW5pc2hMb2FkID0g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ls
bExvYWQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxMb2FkLmNw
cAppbmRleCA3NGIyMzkxMWUwMGNhNjZkZWY1MDhmOTcwMzAzMzE4MjNjODE3N2E4Li44M2Q2M2Fi
MThiY2NhMTEzOWNiMWUxOWQyOTkxOWM2ZmIyMjhmNGUwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbExvYWQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsTG9hZC5jcHAKQEAgLTMxLDggKzMxLDYgQEAKIAogI2lu
Y2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3Lmgi
Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApAQCAtNDQsNyArNDIsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0OwotICAgIE93blB0
cjxQbGF0Zm9ybVdlYlZpZXc+IHdlYlZpZXc7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
V2ViVmlldz4gd2ViVmlldzsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
TmFtZTsKICAgICBXS1JldGFpblB0cjxXS1R5cGVSZWY+IG1lc3NhZ2VCb2R5OwpAQCAtNzQsNyAr
NzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIldpbGxMb2FkVGVzdCIpKTsKICAgICAgICAgc2V0
SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dC5nZXQoKSwgdGhpcyk7CiAKLSAgICAgICAgd2Vi
VmlldyA9IGFkb3B0UHRyKG5ldyBQbGF0Zm9ybVdlYlZpZXcoY29udGV4dC5nZXQoKSkpOworICAg
ICAgICB3ZWJWaWV3ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KGNvbnRleHQu
Z2V0KCkpOwogCiAgICAgICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTURPTVdpbmRv
d1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTURPTVdp
bmRvd1Rlc3QuY3BwCmluZGV4IDI1ODRjMjBmZTQ1NzNkMTJkMGQ1MTgyMTI1NGJmMGU2YjM0Y2I1
M2YuLmZjOGNlZmI1MjlkMTM3ZTY1NmRlZWMyNzk1YTcxY2NjNGI0Mjg3NzUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01ET01XaW5kb3dUZXN0LmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NRE9NV2luZG93
VGVzdC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAgc3RhdGljIGdib29sZWFuIGNsaWNrZWRDYWxsYmFj
ayhXZWJLaXRET01ET01XaW5kb3cqLCBXZWJLaXRET01FdmVudCosIFdlYktpdERPTUQKIAogY2xh
c3MgV2ViS2l0RE9NRE9NV2luZG93VGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UHRyKG5ldyBXZWJLaXRET01ET01XaW5kb3dUZXN0KCkpOyB9CisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJLaXRET01ET01XaW5kb3dUZXN0PigpOyB9CiAKIHByaXZhdGU6CiAgICAg
Z3VpbnQ2NCB3ZWJQYWdlRnJvbUFyZ3MoR1ZhcmlhbnQqIGFyZ3MpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAK
aW5kZXggMDZjNGU1ZWE0NjhmMGIwYzM0ZjM0YzFlNjFhMjk4MzEwMGE5ZDk5Yi4uNTY2N2ZhOGIz
ODQwOWM4YjBiZmMwYjRmNjkyODM4NGNkZTc4ZTQ5MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcApAQCAt
MjYsOCArMjYsNiBAQAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Vi
a2l0LXdlYi1leHRlbnNpb24uaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
UHJvY2Vzc0lELmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KQEAgLTgzLDcgKzgxLDcgQEAgc3RydWN0IERlbGF5
ZWRTaWduYWwgewogICAgIENTdHJpbmcgdXJpOwogfTsKIAotRGVxdWU8T3duUHRyPERlbGF5ZWRT
aWduYWw+PiBkZWxheWVkU2lnbmFsc1F1ZXVlOworRGVxdWU8RGVsYXllZFNpZ25hbD4gZGVsYXll
ZFNpZ25hbHNRdWV1ZTsKIAogc3RhdGljIHZvaWQgZW1pdERvY3VtZW50TG9hZGVkKEdEQnVzQ29u
bmVjdGlvbiogY29ubmVjdGlvbikKIHsKQEAgLTExNSw3ICsxMTMsNyBAQCBzdGF0aWMgdm9pZCBk
b2N1bWVudExvYWRlZENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdFdlYkV4
dGVuc2lvbiogZQogICAgIGlmIChkYXRhKQogICAgICAgICBlbWl0RG9jdW1lbnRMb2FkZWQoR19E
QlVTX0NPTk5FQ1RJT04oZGF0YSkpOwogICAgIGVsc2UKLSAgICAgICAgZGVsYXllZFNpZ25hbHNR
dWV1ZS5hcHBlbmQoYWRvcHRQdHIobmV3IERlbGF5ZWRTaWduYWwoRG9jdW1lbnRMb2FkZWRTaWdu
YWwpKSk7CisgICAgICAgIGRlbGF5ZWRTaWduYWxzUXVldWUuYXBwZW5kKERlbGF5ZWRTaWduYWwo
RG9jdW1lbnRMb2FkZWRTaWduYWwpKTsKIH0KIAogc3RhdGljIHZvaWQgZW1pdFVSSUNoYW5nZWQo
R0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiB1cmkpCkBAIC0xMzcsNyAr
MTM1LDcgQEAgc3RhdGljIHZvaWQgdXJpQ2hhbmdlZENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdl
YlBhZ2UsIEdQYXJhbVNwZWMqIHBzcGVjLCBXZWJLaXQKICAgICBpZiAoZGF0YSkKICAgICAgICAg
ZW1pdFVSSUNoYW5nZWQoR19EQlVTX0NPTk5FQ1RJT04oZGF0YSksIHdlYmtpdF93ZWJfcGFnZV9n
ZXRfdXJpKHdlYlBhZ2UpKTsKICAgICBlbHNlCi0gICAgICAgIGRlbGF5ZWRTaWduYWxzUXVldWUu
YXBwZW5kKGFkb3B0UHRyKG5ldyBEZWxheWVkU2lnbmFsKFVSSUNoYW5nZWRTaWduYWwsIHdlYmtp
dF93ZWJfcGFnZV9nZXRfdXJpKHdlYlBhZ2UpKSkpOworICAgICAgICBkZWxheWVkU2lnbmFsc1F1
ZXVlLmFwcGVuZChEZWxheWVkU2lnbmFsKFVSSUNoYW5nZWRTaWduYWwsIHdlYmtpdF93ZWJfcGFn
ZV9nZXRfdXJpKHdlYlBhZ2UpKSk7CiB9CiAKIHN0YXRpYyBnYm9vbGVhbiBzZW5kUmVxdWVzdENh
bGxiYWNrKFdlYktpdFdlYlBhZ2UqLCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXRV
UklSZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSwgZ3BvaW50ZXIpCkBAIC0zMzAsMTMgKzMyOCwx
MyBAQCBzdGF0aWMgdm9pZCBidXNBY3F1aXJlZENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29u
bmVjdGlvbiwgY29uc3QgY2hhciogbmFtZSwgZwogCiAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19P
QkpFQ1QodXNlckRhdGEpLCAiZGJ1cy1jb25uZWN0aW9uIiwgY29ubmVjdGlvbik7CiAgICAgd2hp
bGUgKGRlbGF5ZWRTaWduYWxzUXVldWUuc2l6ZSgpKSB7Ci0gICAgICAgIE93blB0cjxEZWxheWVk
U2lnbmFsPiBkZWxheWVkU2lnbmFsID0gZGVsYXllZFNpZ25hbHNRdWV1ZS50YWtlRmlyc3QoKTsK
LSAgICAgICAgc3dpdGNoIChkZWxheWVkU2lnbmFsLT50eXBlKSB7CisgICAgICAgIERlbGF5ZWRT
aWduYWwgZGVsYXllZFNpZ25hbCA9IGRlbGF5ZWRTaWduYWxzUXVldWUudGFrZUZpcnN0KCk7Cisg
ICAgICAgIHN3aXRjaCAoZGVsYXllZFNpZ25hbC50eXBlKSB7CiAgICAgICAgIGNhc2UgRG9jdW1l
bnRMb2FkZWRTaWduYWw6CiAgICAgICAgICAgICBlbWl0RG9jdW1lbnRMb2FkZWQoY29ubmVjdGlv
bik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBVUklDaGFuZ2VkU2lnbmFsOgot
ICAgICAgICAgICAgZW1pdFVSSUNoYW5nZWQoY29ubmVjdGlvbiwgZGVsYXllZFNpZ25hbC0+dXJp
LmRhdGEoKSk7CisgICAgICAgICAgICBlbWl0VVJJQ2hhbmdlZChjb25uZWN0aW9uLCBkZWxheWVk
U2lnbmFsLnVyaS5kYXRhKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251540</attachid>
            <date>2015-04-23 22:42:44 -0700</date>
            <delta_ts>2015-04-23 23:21:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128007-20150423224139.patch</filename>
            <type>text/plain</type>
            <size>96364</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY3YTVhY2QxMjhhZmZmYTEwZjI0OTU4
OGZmYjRlMGZkNjYzN2E1OGYuLmMxZGMzMTM2ZjBhOTFkZjhlN2Y5NDY5ZTE1ZmJkYzA3OGNkNzc2
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDQtMjMgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIENvbnZlcnQgT3duUHRyIGFuZCBQYXNzT3duUHRyIHVzZXMg
dG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjgwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qOiBSZW1vdmVkIE93blB0ciBzb3Vy
Y2UgZmlsZXMuCisgICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVyczogRGl0
dG8uCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAg
ICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogRGl0dG8uCisKKyAgICAgICAgKiB3dGYvRm9yd2Fy
ZC5oOiBSZW1vdmVkIE93blB0ciBhbmQgUGFzc093blB0ci4KKyAgICAgICAgKiB3dGYvSGFzaFRy
YWl0cy5oOiBEaXR0by4KKworICAgICAgICAqIHd0Zi9Pd25QdHIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3dGYvT3duUHRyQ29tbW9uLmg6IFJlbW92ZWQuCisgICAgICAgICogd3RmL1Bhc3NPd25Q
dHIuaDogUmVtb3ZlZC4KKworICAgICAgICAqIHd0Zi9TaXplTGltaXRzLmNwcDogUmVtb3ZlZCBP
d25QdHIuCisgICAgICAgICogd3RmL1ZlY3RvclRyYWl0cy5oOiBSZW1vdmVkIE93blB0ciBzcGVj
aWFsaXphdGlvbi4KKwogMjAxNS0wNC0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBXZWJLaXQgc2VydmljZXMgc2hvdWxkIGluaGVyaXQgZW52
aXJvbm1lbnQgdmFyaWFibGVzIGZvciBob21lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA3YzJkZjE1MjNjN2Vh
NTEwYzQ2ZWE0MDg1Njc1ZTU2NmE0MzhjOS4uZmUxNjE4M2UxNTIzYjQ3ZDVjYmRmZWI3YzhlY2Zk
MjQ4ZDM1OGM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE1LTA0LTIzICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IE93blB0ciBhbmQg
UGFzc093blB0ciB1c2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogUmVtb3ZlZCBP
d25QdHJDYWlybyBzb3VyY2UgZmlsZXMuCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERp
dHRvLgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8uY21ha2U6IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHA6IFJlbW92ZWQgT3duUHRyIHNwZWNpYWxpemF0
aW9uLgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmg6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcDogUmVtb3ZlZCB1bm5lZWRl
ZCBpbmNsdWRlLgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmg6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0
aW9uQ0YuaDogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QVZGV3JhcHBlcjo6cHJvY2Vzc05vdGlmaWNhdGlvbik6IFVzZSB1bmlxdWVfcHRyLgor
ICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bm90aWZpY2F0aW9uQ2FsbGJhY2spOiBVc2Ug
bWFrZV91bmlxdWUuCisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpwbGF0Zm9ybUxheWVy
KTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxp
dGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRQYXRoVG9DYWlyb0NvbnRleHQpOiBV
c2UgY2Fpcm9fcGF0aF9kZXN0cm95IGRpcmVjdGx5CisgICAgICAgIGluc3RlYWQgb2YgYSBzbWFy
dCBwb2ludGVyOyB0aGUgY29kZSBwYXRoIGlzIHNpbXBsZSBlbm91Z2ggdGhhdCBpdCBpcworICAg
ICAgICBjbGVhciB0aGlzIHdheS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKTogVXNlIG1ha2VfdW5pcXVlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmg6IFVzZSB1bmlxdWVfcHRyLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmg6IFJlbW92ZWQuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGF0aDo6UGF0aCk6IFVzZSBjYWlyb19wYXRoX2Rlc3Ryb3kgZGlyZWN0bHkg
aW5zdGVhZCBvZiBhCisgICAgICAgIHNtYXJ0IHBvaW50ZXI7IHRoZSBjb2RlIHBhdGggaXMgc2lt
cGxlIGVub3VnaCB0aGF0IGl0IGlzIGNsZWFyIHRoaXMgd2F5LgorICAgICAgICAoV2ViQ29yZTo6
UGF0aDo6b3BlcmF0b3I9KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphZGRQYXRo
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphcHBseSk6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxp
bmcpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRD
YWNoZUZyZWVUeXBlLmNwcDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwOiBEaXR0by4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVHTE9mZlNjcmVlblN1cmZhY2U6OkVHTE9mZlNjcmVlblN1cmZhY2UpOiBVc2Ug
bWFrZV91bmlxdWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYQ29uZmlnU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9y
OjpmaW5kTWF0Y2hpbmdDb25maWcpOiBVc2UgdW5pcXVlX3B0ciB3aXRoIFgxMURlbGV0ZXIuCisg
ICAgICAgIChXZWJDb3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6ZmluZE1hdGNoaW5nQ29uZmlnV2l0
aFZpc3VhbElkKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xYVHJhbnNwb3J0U3VyZmFj
ZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R0xYT2Zm
U2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oOiBSZW1vdmVkLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyk6IFVzZSB1bmlxdWVfcHRy
IHdpdGggWDExRGVsZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OlgxMUhlbHBlcjo6Y3JlYXRlUGl4
bWFwKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
WDExSGVscGVyLmg6IEFkZGVkIFgxMURlbGV0ZXIsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2Vk
IHdpdGggdW5pcXVlX3B0ciB0byBtYWtlIGl0IGNhbGwgWEZyZWUgaW5zdGVhZCBvZiBkZWxldGUu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIu
Y3BwOiBVc2UgdW5pcXVlX3B0ci4KKyAgICAgICAgKEZ1bGxTY3JlZW5Db250cm9sbGVyOjpGdWxs
U2NyZWVuQ29udHJvbGxlcik6IFVzZSBtYWtlX3VuaXF1ZS4KKyAgICAgICAgKEZ1bGxTY3JlZW5D
b250cm9sbGVyOjplbnRlckZ1bGxTY3JlZW4pOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0M0RXaW4uY3BwOiBS
ZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1dLQ0FJbWFnZVF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FJbWFnZVF1ZXVl
OjpXS0NBSW1hZ2VRdWV1ZSk6IFVzZSBtYWtlX3VuaXF1ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwOiBSZW1vdmVk
IHVubmVlZGVkIGluY2x1ZGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11bHRp
cGFydEhhbmRsZTo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmg6IERlbGV0ZWQgdGhlIGNyZWF0ZSBmdW5jdGlvbi4KKwor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aGVhZGVyQ2FsbGJhY2spOiBVc2UgbWFrZV91bmlxdWUuCisK
IDIwMTUtMDQtMjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCB0aGUgaU9TIGJ1aWxkIGFmdGVyIHIxODMyMzQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJv
agppbmRleCAyM2E4MWU4Y2MyODQ3ODUyZjNiYTRmNjY4MGQxZGVlZGJjNDYxYzBhLi42YWE0NzNk
ZmU2N2FkNGQyOTVhYjM4N2JmN2QxYmM0ZGJkMWJkOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RG
LnZjeHByb2oKQEAgLTIzNyw4ICsyMzcsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXE5vbmNvcHlhYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTnVt
YmVyT2ZDb3Jlcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXE9TUmFuZG9t
U291cmNlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcT3duUHRyLmgiIC8+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcT3duUHRyQ29tbW9uLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFja2VkSW50VmVjdG9yLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFnZUFsbG9jYXRpb24uaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYWdlQmxvY2suaCIgLz4KQEAgLTI0Nyw3ICsyNDUsNiBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhcmFsbGVsSm9ic0dlbmVyaWMuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhcmFsbGVsSm9ic09wZW5NUC5o
IiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhc3NPd25QdHIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYXNzUmVmUHRyLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcUGxhdGZvcm0uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHd0ZlxQcmludFN0cmVhbS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
dmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYu
dmN4cHJvai5maWx0ZXJzCmluZGV4IGQ0ZmVjMmY3MTNiY2ZmOGM3NTA0NWNjZWFjNzIwZGMxYzVj
YWQ2YjEuLmZhZTEwNjkyNjNhZTc4MmY1YjU4NTNkNWIxMzIxNzM5ZDIzNWEzZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKQEAgLTUyOCwxMiArNTI4LDYg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxPU1JhbmRvbVNvdXJjZS5oIj4KICAg
ICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3dGZcT3duUHRyLmgiPgotICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4K
LSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxPd25QdHJD
b21tb24uaCI+Ci0gICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhY2tlZEludFZlY3Rvci5oIj4KICAgICAg
IDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC01NTgsOSArNTUyLDYg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYXJhbGxlbEpvYnNPcGVuTVAuaCI+
CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhc3NPd25QdHIuaCI+Ci0gICAgICA8RmlsdGVyPnd0Zjwv
RmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XFBhc3NSZWZQdHIuaCI+CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTQwNWQ2
ZGE0YWM1ZmVmMTRmMTVlN2Q0MzEzODU5MWVjNmYzMmJjOS4uYTAzODc4M2RmMjYwODM3Zjc0YzY5
YTIwZDY3MjMzNWU1MmRkMzgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xODUsOCArMTg1LDYgQEAKIAkJQThBNDczRjcxNTFBODI1QjAwNDEyM0ZGIC8q
IE9TQWxsb2NhdG9yUG9zaXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDcyRDgxNTFBODI1QjAwNDEyM0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXgu
Y3BwICovOyB9OwogCQlBOEE0NzNGOTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcy
REExNTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLzsgfTsKIAkJQThBNDcz
RkExNTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJEQjE1MUE4MjVCMDA0MTIzRkYgLyog
T1NSYW5kb21Tb3VyY2UuaCAqLzsgfTsKLQkJQThBNDczRkMxNTFBODI1QjAwNDEyM0ZGIC8qIE93
blB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDcyREQxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ci5oICovOyB9OwotCQlBOEE0NzNGRDE1MUE4
MjVCMDA0MTIzRkYgLyogT3duUHRyQ29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJERTE1MUE4MjVCMDA0MTIzRkYgLyogT3duUHRyQ29t
bW9uLmggKi87IH07CiAJCUE4QTQ3M0ZFMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3
MkRGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0b3IuaCAqLzsgfTsKIAkJQThBNDcz
RkYxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VBbGxvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJFMDE1MUE4MjVCMDA0MTIzRkYgLyog
UGFnZUFsbG9jYXRpb24uaCAqLzsgfTsKIAkJQThBNDc0MDIxNTFBODI1QjAwNDEyM0ZGIC8qIFBh
Z2VCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEE0NzJFMzE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUJsb2NrLmNwcCAqLzsgfTsKQEAgLTE5
NCw3ICsxOTIsNiBAQAogCQlBOEE0NzQwNDE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZVJlc2VydmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0
NzJFNTE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZVJlc2VydmF0aW9uLmggKi87IH07CiAJCUE4QTQ3
NDA1MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkU2MTUxQTgyNUIwMDQxMjNGRiAvKiBQ
YXJhbGxlbEpvYnMuaCAqLzsgfTsKIAkJQThBNDc0MDgxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFs
bGVsSm9ic0xpYmRpc3BhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEE0NzJFOTE1MUE4MjVCMDA0MTIzRkYgLyogUGFyYWxsZWxKb2JzTGliZGlz
cGF0Y2guaCAqLzsgfTsKLQkJQThBNDc0MEIxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NPd25QdHIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkVD
MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzT3duUHRyLmggKi87IH07CiAJCUE4QTQ3NDBDMTUxQTgy
NUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJFRDE1MUE4MjVCMDA0MTIzRkYgLyogUGFzc1JlZlB0ci5o
ICovOyB9OwogCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkZCMTUx
QTgyNUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuY3BwICovOyB9OwogCQlBOEE0NzQxNTE1MUE4
MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJGQzE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVt
YmVyLmggKi87IH07CkBAIC00NzYsOCArNDczLDYgQEAKIAkJQThBNDcyRDgxNTFBODI1QjAwNDEy
M0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gT1NBbGxvY2F0b3JQb3NpeC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4QTQ3MkRBMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPU1JhbmRvbVNvdXJjZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkRCMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1Jh
bmRvbVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPU1JhbmRvbVNv
dXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJERDE1MUE4MjVCMDA0
MTIzRkYgLyogT3duUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE93blB0
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJERTE1MUE4MjVCMDA0MTIz
RkYgLyogT3duUHRyQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE93
blB0ckNvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJERjE1MUE4
MjVCMDA0MTIzRkYgLyogUGFja2VkSW50VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhY2tlZEludFZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE0NzJFMDE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUFsbG9jYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUFsbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VCbG9jay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQmxvY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg1LDcgKzQ4MCw2IEBACiAJCUE4QTQ3MkU1MTUx
QTgyNUIwMDQxMjNGRiAvKiBQYWdlUmVzZXJ2YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFnZVJlc2VydmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4QTQ3MkU2MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyYWxsZWxKb2JzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4QTQ3MkU5MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnNMaWJk
aXNwYXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJhbGxlbEpvYnNM
aWJkaXNwYXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJFQzE1MUE4
MjVCMDA0MTIzRkYgLyogUGFzc093blB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXNzT3duUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkVE
MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhc3NSZWZQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThB
NDcyRkIxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5kb21OdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBOEE0NzJGQzE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmRvbU51bWJlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzk1LDggKzc4OSw2IEBACiAJCQkJQThBNDcyREExNTFB
ODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLywKIAkJCQlBOEE0NzJEQjE1MUE4
MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2UuaCAqLywKIAkJCQkxQUZERTY1MjE5NTNCMjNE
MDBDNDhGRkEgLyogT3B0aW9uYWwuaCAqLywKLQkJCQlBOEE0NzJERDE1MUE4MjVCMDA0MTIzRkYg
LyogT3duUHRyLmggKi8sCi0JCQkJQThBNDcyREUxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ckNv
bW1vbi5oICovLAogCQkJCUE4QTQ3MkRGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0
b3IuaCAqLywKIAkJCQlBOEE0NzJFMDE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUFsbG9jYXRpb24u
aCAqLywKIAkJCQlBOEE0NzJFMzE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUJsb2NrLmNwcCAqLywK
QEAgLTgwNCw3ICs3OTYsNiBAQAogCQkJCUE4QTQ3MkU1MTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdl
UmVzZXJ2YXRpb24uaCAqLywKIAkJCQlBOEE0NzJFNjE1MUE4MjVCMDA0MTIzRkYgLyogUGFyYWxs
ZWxKb2JzLmggKi8sCiAJCQkJQThBNDcyRTkxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9i
c0xpYmRpc3BhdGNoLmggKi8sCi0JCQkJQThBNDcyRUMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NP
d25QdHIuaCAqLywKIAkJCQlBOEE0NzJFRDE1MUE4MjVCMDA0MTIzRkYgLyogUGFzc1JlZlB0ci5o
ICovLAogCQkJCUE4NzZEQkQ3MTUxODE2RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oICovLAogCQkJ
CTBGOUQzMzVEMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgKi8sCkBAIC0xMTMx
LDggKzExMjIsNiBAQAogCQkJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGlt
ZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRjYxNTFBODI1QjAwNDEyM0ZGIC8q
IE9TQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNGQTE1MUE4MjVCMDA0MTIz
RkYgLyogT1NSYW5kb21Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3M0ZDMTUxQTgy
NUIwMDQxMjNGRiAvKiBPd25QdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3M0ZEMTUxQTgy
NUIwMDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE0RTFC
MTgxMEUxREMwMDlCNkI0RCAvKiBCYWdUb0hhc2hNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3M0ZFMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3M0ZGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQWxsb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMTQwLDcgKzExMjksNiBAQAogCQkJCUE4QTQ3NDA0MTUxQTgyNUIwMDQx
MjNGRiAvKiBQYWdlUmVzZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDA1MTUx
QTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3
NDA4MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQThBNDc0MEIxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NPd25QdHIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QTQ3NDBDMTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODc2REJEODE1MTgxNkU1MDBEQURCOTUgLyogUGxhdGZvcm0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE0RTE5MTgwRkEyMTgwMDlCNkI0RCAvKiBCYWcuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCBjN2I0Mjg1MjgxZGM5ZTI0MDNk
MTVmNGQxMTBlMzM0ZTE0ODlkOWFkLi44NjIzYmFjYTBjYWQ0NjI3NWUwZjkzNzZhZTAwN2ZmMWQ0
MzA5NTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNTUsOCArNTUsNiBAQCBzZXQoV1RGX0hF
QURFUlMKICAgICBOdW1iZXJPZkNvcmVzLmgKICAgICBPU0FsbG9jYXRvci5oCiAgICAgT1NSYW5k
b21Tb3VyY2UuaAotICAgIE93blB0ci5oCi0gICAgT3duUHRyQ29tbW9uLmgKICAgICBQYWdlQWxs
b2NhdGlvbi5oCiAgICAgUGFnZUJsb2NrLmgKICAgICBQYWdlUmVzZXJ2YXRpb24uaApAQCAtNjQs
NyArNjIsNiBAQCBzZXQoV1RGX0hFQURFUlMKICAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmgKICAg
ICBQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5oCiAgICAgUGFyYWxsZWxKb2JzT3Blbk1QLmgKLSAg
ICBQYXNzT3duUHRyLmgKICAgICBQYXNzUmVmUHRyLmgKICAgICBQbGF0Zm9ybS5oCiAgICAgUHJp
bnRTdHJlYW0uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDZhZWZhMWRlZjJjZGYwODk0MjNjZTBkMTJmY2YyZGQ1
NTY4NzllMTguLjM5NTIwYWFmNGExNjY0NjBjN2RkYThhYWNkODk4ZDgxMzM1MjlhZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmgKQEAgLTI4LDggKzI4LDYgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBjbGFzcyBGdW5jdGlvbjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZl
ckRlc3Ryb3llZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkOwot
dGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwotdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Y2xhc3MgUGFzc093blB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NSZWZQdHI7
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZQdHI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBSZWY7CkBAIC02NSw4ICs2Myw2IEBAIHVzaW5nIFdURjo6RnVuY3Rpb25EaXNwYXRj
aGVyOwogdXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Ok5ldmVyRGVz
dHJveWVkOwogdXNpbmcgV1RGOjpPcmRpbmFsTnVtYmVyOwotdXNpbmcgV1RGOjpPd25QdHI7Ci11
c2luZyBXVEY6OlBhc3NPd25QdHI7CiB1c2luZyBXVEY6OlBhc3NSZWZQdHI7CiB1c2luZyBXVEY6
OlByaW50U3RyZWFtOwogdXNpbmcgV1RGOjpSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9IYXNoVHJhaXRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVHJhaXRzLmgKaW5kZXggZTQ3YWE4
YjVmODZiNGJmZGVlOWU5MjMyY2MyMGRmNWE5ZTgxZjNjZC4uZmNhMzVmMzk5ZGZkMGExZGRkZjNi
YjgzOGQ3MzA4ODYzZDc1ZTFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRyYWl0
cy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaApAQCAtMzAsOCArMzAsNiBAQCBu
YW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgU3RyaW5nOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBPd25QdHI7Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwog
CiB0ZW1wbGF0ZTxib29sIGlzSW50ZWdlciwgdHlwZW5hbWUgVD4gc3RydWN0IEdlbmVyaWNIYXNo
VHJhaXRzQmFzZTsKQEAgLTEyMCwxNyArMTE4LDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgRGVsZXRlcj4gc3RydWN0IEhhc2hUcmFpdHM8c3RkOjp1bmlxdWVfcHRyPFQsIERlbGUK
ICAgICBzdGF0aWMgVCogcGVlayhzdGQ6Om51bGxwdHJfdCkgeyByZXR1cm4gbnVsbHB0cjsgfQog
fTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFpdHM8T3duUHRyPFQ+PiA6
IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxPd25QdHI8VD4+IHsKLSAgICB0eXBlZGVmIHN0ZDo6bnVs
bHB0cl90IEVtcHR5VmFsdWVUeXBlOwotICAgIHN0YXRpYyBFbXB0eVZhbHVlVHlwZSBlbXB0eVZh
bHVlKCkgeyByZXR1cm4gbnVsbHB0cjsgfQotCi0gICAgdHlwZWRlZiBUKiBQZWVrVHlwZTsKLSAg
ICBzdGF0aWMgVCogcGVlayhjb25zdCBPd25QdHI8VD4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5n
ZXQoKTsgfQotICAgIHN0YXRpYyBUKiBwZWVrKHN0ZDo6bnVsbHB0cl90KSB7IHJldHVybiBudWxs
cHRyOyB9Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1Y3QgSGFzaFRyYWl0czxSZWZQ
dHI8UD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFJlZlB0cjxQPj4gewotICAgIHN0YXRpYyBQ
KiBlbXB0eVZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBQKiBlbXB0eVZhbHVlKCkg
eyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgdHlwZWRlZiBQKiBQZWVrVHlwZTsKICAgICBzdGF0
aWMgUGVla1R5cGUgcGVlayhjb25zdCBSZWZQdHI8UD4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3duUHRyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Pd25QdHIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE3MDFhNDhiNWI3
NTNiOTIwOWJhNmQ5YWQwZDllNmFlNWY0MDdjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHIuaAorKysgL2Rldi9udWxs
CkBAIC0xLDIzMCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotCi0jaWZuZGVmIFdURl9Pd25QdHJfaAotI2RlZmluZSBXVEZfT3duUHRyX2gKLQot
I2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxjc3RkZGVmPgotI2luY2x1ZGUgPG1lbW9y
eT4KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+
Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+Ci0j
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ckNvbW1vbi5o
PgotCi1uYW1lc3BhY2UgV1RGIHsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBh
c3NPd25QdHI7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUGFzc093blB0cjxUPiBhZG9wdFB0
cihUKik7Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPd25QdHIgewotICAgIHB1
YmxpYzoKLSAgICAgICAgdHlwZWRlZiBUIFZhbHVlVHlwZTsKLSAgICAgICAgdHlwZWRlZiBWYWx1
ZVR5cGUqIFB0clR5cGU7Ci0KLSAgICAgICAgT3duUHRyKCkgOiBtX3B0cigwKSB7IH0KLSAgICAg
ICAgT3duUHRyKHN0ZDo6bnVsbHB0cl90KSA6IG1fcHRyKDApIHsgfQotCi0gICAgICAgIC8vIFNl
ZSBjb21tZW50IGluIFBhc3NPd25QdHIuaCBmb3Igd2h5IHRoaXMgdGFrZXMgYSBjb25zdCByZWZl
cmVuY2UuCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE93blB0cihjb25zdCBQYXNzT3du
UHRyPFU+JiBvKTsKLQotICAgICAgICB+T3duUHRyKCkgeyBkZWxldGVPd25lZFB0cihtX3B0cik7
IH0KLQotICAgICAgICBQdHJUeXBlIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0KLSAg
ICAgICAgdm9pZCBjbGVhcigpOwotICAgICAgICBQYXNzT3duUHRyPFQ+IHJlbGVhc2UoKTsKLSAg
ICAgICAgUHRyVHlwZSBsZWFrUHRyKCkgV0FSTl9VTlVTRURfUkVUVVJOOwotCi0gICAgICAgIFZh
bHVlVHlwZSYgb3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gKm1fcHRy
OyB9Ci0gICAgICAgIFB0clR5cGUgb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNTRVJUKG1fcHRyKTsg
cmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVy
biAhbV9wdHI7IH0KLQotICAgICAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxsb3dz
IGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIgdHlw
ZXMuCi0gICAgICAgIHR5cGVkZWYgUHRyVHlwZSBPd25QdHI6OipVbnNwZWNpZmllZEJvb2xUeXBl
OwotICAgICAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1cm4g
bV9wdHIgPyAmT3duUHRyOjptX3B0ciA6IDA7IH0KLQotICAgICAgICBPd25QdHImIG9wZXJhdG9y
PShjb25zdCBQYXNzT3duUHRyPFQ+Jik7Ci0gICAgICAgIE93blB0ciYgb3BlcmF0b3I9KHN0ZDo6
bnVsbHB0cl90KSB7IGNsZWFyKCk7IHJldHVybiAqdGhpczsgfQotICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBPd25QdHImIG9wZXJhdG9yPShjb25zdCBQYXNzT3duUHRyPFU+Jik7Ci0KLSAg
ICAgICAgT3duUHRyKE93blB0ciYmKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gT3du
UHRyKE93blB0cjxVPiYmKTsKLQotICAgICAgICBPd25QdHImIG9wZXJhdG9yPShPd25QdHImJik7
Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE93blB0ciYgb3BlcmF0b3I9KE93blB0cjxV
PiYmKTsKLQotICAgICAgICAvLyBIYXNoIHRhYmxlIGRlbGV0ZWQgdmFsdWVzLCB3aGljaCBhcmUg
b25seSBjb25zdHJ1Y3RlZCBhbmQgbmV2ZXIgY29waWVkIG9yIGRlc3Ryb3llZC4KLSAgICAgICAg
T3duUHRyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9wdHIoaGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkpIHsgfQotICAgICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9wdHIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KLQotICAgICAg
ICB2b2lkIHN3YXAoT3duUHRyJiBvKSB7IHN0ZDo6c3dhcChtX3B0ciwgby5tX3B0cik7IH0KLSAg
ICAgICAgCi0gICAgICAgIC8vIENvbnN0cnVjdCBhbiBvYmplY3QgdG8gc3RvcmUgaW50byB0aGlz
IE93blB0ciwgYnV0IG9ubHkgc28gbG9uZyBhcyB0aGlzIE93blB0cgotICAgICAgICAvLyBkb2Vz
bid0IGFscmVhZHkgcG9pbnQgdG8gYW4gb2JqZWN0LiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgYWZ0
ZXIgeW91IGNhbGwgdGhpcywKLSAgICAgICAgLy8gdGhlIE93blB0ciB3aWxsIHBvaW50IHRvIGFu
IGluc3RhbmNlIG9mIFQsIGV2ZW4gaWYgY2FsbGVkIGNvbmN1cnJlbnRseS4gVGhpcwotICAgICAg
ICAvLyBpbnN0YW5jZSBtYXkgb3IgbWF5IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCBieSB0aGlzIGNh
bGwuIE1vcmVvdmVyLCB0aGlzIGNhbGwgdXNlcwotICAgICAgICAvLyBhbiBvcHBvcnR1bmlzdGlj
IHRyYW5zYWN0aW9uLCBpbiB0aGF0IHdlIG1heSBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVCBhbmQg
dGhlbgotICAgICAgICAvLyBpbW1lZGlhdGVseSB0aHJvdyBpdCBhd2F5LCBpZiBpbiB0aGUgcHJv
Y2VzcyBvZiBjcmVhdGluZyB0aGF0IGluc3RhbmNlIHNvbWUKLSAgICAgICAgLy8gb3RoZXIgdGhy
ZWFkIHdhcyBkb2luZyB0aGUgc2FtZSB0aGluZyBhbmQgc3RvcmVkIGl0cyBpbnN0YW5jZSBpbnRv
IHRoaXMgcG9pbnRlcgotICAgICAgICAvLyBiZWZvcmUgd2UgaGFkIGEgY2hhbmNlIHRvIGRvIHNv
LgotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgotICAgICAgICB2b2lkIGNyZWF0
ZVRyYW5zYWN0aW9uYWxseShBcmdzLi4uKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxp
Y2l0IE93blB0cihQdHJUeXBlIHB0cikgOiBtX3B0cihwdHIpIHsgfQotCi0gICAgICAgIHN0YXRp
YyBQdHJUeXBlIGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8UHRyVHlwZT4oLTEpOyB9Ci0KLSAgICAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgdHdv
IE93blB0cnMgZm9yIHRoZSBzYW1lIHVuZGVybHlpbmcgb2JqZWN0IChvdGhlcndpc2Ugd2UnbGwg
Z2V0Ci0gICAgICAgIC8vIGRvdWJsZS1kZXN0cnVjdGlvbiksIHNvIHRoZXNlIGVxdWFsaXR5IG9w
ZXJhdG9ycyBzaG91bGQgbmV2ZXIgYmUgbmVlZGVkLgotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBib29sIG9wZXJhdG9yPT0oY29uc3QgT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCgh
c2l6ZW9mKFUqKSwgT3duUHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7
IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0IE93
blB0cjxVPiYpIHsgQ09NUElMRV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25l
dmVyX2JlX2VxdWFsKTsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VS
VCghc2l6ZW9mKFUqKSwgT3duUHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFs
c2U7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFBhc3NPd25QdHI8VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25QdHJzX3No
b3VsZF9uZXZlcl9iZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotCi0gICAgICAgIFB0clR5cGUg
bV9wdHI7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVu
YW1lIFU+IGlubGluZSBPd25QdHI8VD46Ok93blB0cihjb25zdCBQYXNzT3duUHRyPFU+JiBvKQot
ICAgICAgICA6IG1fcHRyKG8ubGVha1B0cigpKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBPd25QdHI8VD46OmNsZWFyKCkKLSAgICB7Ci0gICAg
ICAgIGRlbGV0ZU93bmVkUHRyKHN0ZDo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpKTsKLSAgICB9
Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUGFzc093blB0cjxUPiBPd25QdHI8
VD46OnJlbGVhc2UoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKHN0ZDo6ZXhjaGFu
Z2UobV9wdHIsIG51bGxwdHIpKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBp
bmxpbmUgdHlwZW5hbWUgT3duUHRyPFQ+OjpQdHJUeXBlIE93blB0cjxUPjo6bGVha1B0cigpCi0g
ICAgewotICAgICAgICByZXR1cm4gc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cik7Ci0gICAg
fQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIE93blB0cjxUPiYgT3duUHRyPFQ+
OjpvcGVyYXRvcj0oY29uc3QgUGFzc093blB0cjxUPiYgbykKLSAgICB7Ci0gICAgICAgIFB0clR5
cGUgcHRyID0gc3RkOjpleGNoYW5nZShtX3B0ciwgby5sZWFrUHRyKCkpOwotICAgICAgICBBU1NF
UlQoIXB0ciB8fCBtX3B0ciAhPSBwdHIpOwotICAgICAgICBkZWxldGVPd25lZFB0cihwdHIpOwot
ICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
dGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIE93blB0cjxUPiYgT3duUHRyPFQ+OjpvcGVyYXRv
cj0oY29uc3QgUGFzc093blB0cjxVPiYgbykKLSAgICB7Ci0gICAgICAgIFB0clR5cGUgcHRyID0g
c3RkOjpleGNoYW5nZShtX3B0ciwgby5sZWFrUHRyKCkpOwotICAgICAgICBBU1NFUlQoIXB0ciB8
fCBtX3B0ciAhPSBwdHIpOwotICAgICAgICBkZWxldGVPd25lZFB0cihwdHIpOwotICAgICAgICBy
ZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIE93
blB0cjxUPjo6T3duUHRyKE93blB0cjxUPiYmIG8pCi0gICAgICAgIDogbV9wdHIoby5sZWFrUHRy
KCkpCi0gICAgewotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5
cGVuYW1lIFU+IGlubGluZSBPd25QdHI8VD46Ok93blB0cihPd25QdHI8VT4mJiBvKQotICAgICAg
ICA6IG1fcHRyKG8ubGVha1B0cigpKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBpbmxpbmUgYXV0byBPd25QdHI8VD46Om9wZXJhdG9yPShPd25QdHImJiBvKSAtPiBP
d25QdHImCi0gICAgewotICAgICAgICBBU1NFUlQoIW8gfHwgbyAhPSBtX3B0cik7Ci0gICAgICAg
IE93blB0ciBwdHIgPSBXVEY6Om1vdmUobyk7Ci0gICAgICAgIHN3YXAocHRyKTsKLSAgICAgICAg
cmV0dXJuICp0aGlzOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRl
PHR5cGVuYW1lIFU+IGlubGluZSBhdXRvIE93blB0cjxUPjo6b3BlcmF0b3I9KE93blB0cjxVPiYm
IG8pIC0+IE93blB0ciYKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbyB8fCBvICE9IG1fcHRyKTsK
LSAgICAgICAgT3duUHRyIHB0ciA9IFdURjo6bW92ZShvKTsKLSAgICAgICAgc3dhcChwdHIpOwot
ICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIHZvaWQgc3dhcChPd25QdHI8VD4mIGEsIE93blB0cjxUPiYgYikKLSAgICB7Ci0gICAg
ICAgIGEuc3dhcChiKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE93blB0cjxUPiYgYSwgVSogYikKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGI7IAotICAgIH0KLQotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oVCogYSwgY29u
c3QgT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhID09IGIuZ2V0KCk7IAot
ICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29s
IG9wZXJhdG9yIT0oY29uc3QgT3duUHRyPFQ+JiBhLCBVKiBiKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGEuZ2V0KCkgIT0gYjsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShUKiBhLCBjb25zdCBPd25QdHI8VT4mIGIp
Ci0gICAgewotICAgICAgICByZXR1cm4gYSAhPSBiLmdldCgpOyAKLSAgICB9Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBpbmxpbmUgdm9pZCBP
d25QdHI8VD46OmNyZWF0ZVRyYW5zYWN0aW9uYWxseShBcmdzLi4uIGFyZ3MpCi0gICAgewotICAg
ICAgICBpZiAobV9wdHIpIHsKLSAgICAgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBUKiBuZXdPYmpl
Y3QgPSBuZXcgVChhcmdzLi4uKTsKLSAgICAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKLSNp
ZiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKLSAgICAgICAgZG8gewotICAgICAgICAgICAgaWYg
KG1fcHRyKSB7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIG5ld09iamVjdDsKLSAgICAgICAgICAg
ICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0gd2hpbGUgKCFXVEY6OndlYWtDb21wYXJlQW5kU3dhcChiaXR3
aXNlX2Nhc3Q8dm9pZCp2b2xhdGlsZSo+KCZtX3B0ciksIG51bGxwdHIsIG5ld09iamVjdCkpOwot
I2Vsc2UKLSAgICAgICAgbV9wdHIgPSBuZXdPYmplY3Q7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IElzU21hcnRQdHI8T3duUHRyPFQ+PiB7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsKLSAgICB9OwotCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgUD4gc3RydWN0IERlZmF1bHRIYXNoPE93blB0cjxQPj4gewotICAgICAgICB0
eXBlZGVmIFB0ckhhc2g8T3duUHRyPFA+PiBIYXNoOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdURgotCi11c2luZyBXVEY6Ok93blB0cjsKLQotI2VuZGlmIC8vIFdURl9Pd25QdHJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9P
d25QdHJDb21tb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJiMDg3NWViNTli
MDg3ZGFjN2QzZTMyODEwYjFiOGZjMDAxNzg5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHJDb21tb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRv
cmNoIE1vYmlsZSwgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDEwIENvbXBhbnkgMTAwIEluYy4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgV1RG
X093blB0ckNvbW1vbl9oCi0jZGVmaW5lIFdURl9Pd25QdHJDb21tb25faAotCi1uYW1lc3BhY2Ug
V1RGIHsKLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBkZWxldGVPd25l
ZFB0cihUKiBwdHIpCi0gICAgewotICAgICAgICB0eXBlZGVmIGNoYXIga25vd25bc2l6ZW9mKFQp
ID8gMSA6IC0xXTsKLSAgICAgICAgaWYgKHNpemVvZihrbm93bikpCi0gICAgICAgICAgICBkZWxl
dGUgcHRyOwotICAgIH0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRpZiAvLyBXVEZfT3du
UHRyQ29tbW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bhc3NPd25QdHIuaCBiL1Nv
dXJjZS9XVEYvd3RmL1Bhc3NPd25QdHIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2M1ZWZiNjk5MmNjOTExNGRlZWQxNGRlZjA4ODBjMDk3YTdhMmVhYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXNzT3duUHRy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFdURl9QYXNzT3duUHRyX2gK
LSNkZWZpbmUgV1RGX1Bhc3NPd25QdHJfaAotCi0jaW5jbHVkZSA8Y3N0ZGRlZj4KLSNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvT3duUHRyQ29tbW9uLmg+Ci0jaW5jbHVkZSA8dHlwZV90cmFpdHM+Ci0KLW5hbWVzcGFjZSBX
VEYgewotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25QdHI7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gUGFzc093blB0cjxUPiBhZG9wdFB0cihUKik7Ci0KLSAgICBjbGFzcyBSZWZDb3VudGVkQmFz
ZTsKLSAgICBjbGFzcyBUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2U7Ci0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBjbGFzcyBQYXNzT3duUHRyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVk
ZWYgVCBWYWx1ZVR5cGU7Ci0gICAgICAgIHR5cGVkZWYgVmFsdWVUeXBlKiBQdHJUeXBlOwotCi0g
ICAgICAgIFBhc3NPd25QdHIoKSA6IG1fcHRyKDApIHsgfQotICAgICAgICBQYXNzT3duUHRyKHN0
ZDo6bnVsbHB0cl90KSA6IG1fcHRyKDApIHsgfQotCi0gICAgICAgIC8vIEl0IHNvbWV3aGF0IGJy
ZWFrcyB0aGUgdHlwZSBzeXN0ZW0gdG8gYWxsb3cgdHJhbnNmZXIgb2Ygb3duZXJzaGlwIG91dCBv
ZgotICAgICAgICAvLyBhIGNvbnN0IFBhc3NPd25QdHIuIEhvd2V2ZXIsIGl0IG1ha2VzIGl0IG11
Y2ggZWFzaWVyIHRvIHdvcmsgd2l0aCBQYXNzT3duUHRyCi0gICAgICAgIC8vIHRlbXBvcmFyaWVz
LCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIG5lZWQgdG8gdXNlIHJlYWwgY29uc3QgUGFzc093blB0cnMg
YW55d2F5LgotICAgICAgICBQYXNzT3duUHRyKGNvbnN0IFBhc3NPd25QdHImIG8pIDogbV9wdHIo
by5sZWFrUHRyKCkpIHsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBQYXNzT3duUHRy
KGNvbnN0IFBhc3NPd25QdHI8VT4mIG8pIDogbV9wdHIoby5sZWFrUHRyKCkpIHsgfQotCi0gICAg
ICAgIH5QYXNzT3duUHRyKCkgeyBkZWxldGVPd25lZFB0cihtX3B0cik7IH0KLQotICAgICAgICBQ
dHJUeXBlIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgUHRyVHlwZSBs
ZWFrUHRyKCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJOOwotCi0gICAgICAgIFZhbHVlVHlwZSYg
b3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gKm1fcHRyOyB9Ci0gICAg
ICAgIFB0clR5cGUgb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNTRVJUKG1fcHRyKTsgcmV0dXJuIG1f
cHRyOyB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9wdHI7
IH0KLQotICAgICAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxsb3dzIGltcGxpY2l0
IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIgdHlwZXMuCi0gICAg
ICAgIHR5cGVkZWYgUHRyVHlwZSBQYXNzT3duUHRyOjoqVW5zcGVjaWZpZWRCb29sVHlwZTsKLSAg
ICAgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRy
ID8gJlBhc3NPd25QdHI6Om1fcHRyIDogMDsgfQotCi0gICAgICAgIFBhc3NPd25QdHImIG9wZXJh
dG9yPShjb25zdCBQYXNzT3duUHRyJikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFQqKSwgUGFz
c093blB0cl9zaG91bGRfbmV2ZXJfYmVfYXNzaWduZWRfdG8pOyByZXR1cm4gKnRoaXM7IH0KLQot
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgUGFzc093blB0cjxVPiBhZG9wdFB0
cihVKik7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBQYXNzT3duUHRyKFB0clR5
cGUgcHRyKSA6IG1fcHRyKHB0cikgeyB9Ci0KLSAgICAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhh
dmUgdHdvIE93blB0cnMgZm9yIHRoZSBzYW1lIHVuZGVybHlpbmcgb2JqZWN0IChvdGhlcndpc2Ug
d2UnbGwgZ2V0Ci0gICAgICAgIC8vIGRvdWJsZS1kZXN0cnVjdGlvbiksIHNvIHRoZXNlIGVxdWFs
aXR5IG9wZXJhdG9ycyBzaG91bGQgbmV2ZXIgYmUgbmVlZGVkLgotICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBib29sIG9wZXJhdG9yPT0oY29uc3QgUGFzc093blB0cjxVPiYpIHsgQ09NUElM
RV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBQYXNzT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFUqKSwgT3du
UHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvcj09KGNvbnN0IE93blB0cjxVPiYpIHsgQ09N
UElMRV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0
b3IhPShjb25zdCBPd25QdHI8VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25Q
dHJzX3Nob3VsZF9uZXZlcl9iZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotCi0gICAgICAgIG11
dGFibGUgUHRyVHlwZSBtX3B0cjsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIHR5cGVuYW1lIFBhc3NPd25QdHI8VD46OlB0clR5cGUgUGFzc093blB0cjxUPjo6bGVh
a1B0cigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gc3RkOjpleGNoYW5nZShtX3B0ciwg
bnVsbHB0cik7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4g
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzT3duUHRyPFQ+JiBhLCBjb25zdCBQYXNz
T3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7
IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBi
b29sIG9wZXJhdG9yPT0oY29uc3QgUGFzc093blB0cjxUPiYgYSwgY29uc3QgT3duUHRyPFU+JiBi
KSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7IAotICAgIH0KLSAg
ICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IE93blB0cjxUPiYgYSwgY29uc3QgUGFzc093blB0cjxVPiYgYikgCi0gICAg
ewotICAgICAgICByZXR1cm4gYS5nZXQoKSA9PSBiLmdldCgpOyAKLSAgICB9Ci0gICAgCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBQYXNzT3duUHRyPFQ+JiBhLCBVKiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdl
dCgpID09IGI7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KFQqIGEsIGNvbnN0IFBhc3NPd25QdHI8VT4mIGIp
IAotICAgIHsKLSAgICAgICAgcmV0dXJuIGEgPT0gYi5nZXQoKTsgCi0gICAgfQotICAgIAotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0o
Y29uc3QgUGFzc093blB0cjxUPiYgYSwgY29uc3QgUGFzc093blB0cjxVPiYgYikgCi0gICAgewot
ICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgpOyAKLSAgICB9Ci0gICAgCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBQYXNzT3duUHRyPFQ+JiBhLCBjb25zdCBPd25QdHI8VT4mIGIpIAotICAgIHsKLSAgICAgICAg
cmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsgCi0gICAgfQotICAgIAotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgT3duUHRy
PFQ+JiBhLCBjb25zdCBQYXNzT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
LmdldCgpICE9IGIuZ2V0KCk7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NPd25QdHI8VD4m
IGEsIFUqIGIpCi0gICAgewotICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiOyAKLSAgICB9Ci0g
ICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3Bl
cmF0b3IhPShUKiBhLCBjb25zdCBQYXNzT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhICE9IGIuZ2V0KCk7IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBQYXNzT3duUHRyPFQ+IGFkb3B0UHRyKFQqIHB0cikKLSAgICB7Ci0gICAgICAgIHN0YXRp
Y19hc3NlcnQoIXN0ZDo6aXNfY29udmVydGlibGU8VCosIFJlZkNvdW50ZWRCYXNlKj46OnZhbHVl
LCAiRG8gbm90IHVzZSBhZG9wdFB0ciB3aXRoIFJlZkNvdW50ZWQsIHVzZSBhZG9wdFJlZiEiKTsK
LSAgICAgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19jb252ZXJ0aWJsZTxUKiwgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWRCYXNlKj46OnZhbHVlLCAiRG8gbm90IHVzZSBhZG9wdFB0ciB3aXRoIFRocmVh
ZFNhZmVSZWZDb3VudGVkLCB1c2UgYWRvcHRSZWYhIik7Ci0KLSAgICAgICAgcmV0dXJuIFBhc3NP
d25QdHI8VD4ocHRyKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgUGFzc093blB0cjxUPiBzdGF0aWNfcG9pbnRlcl9jYXN0KGNvbnN0IFBhc3NP
d25QdHI8VT4mIHApIAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKHN0YXRpY19jYXN0
PFQqPihwLmxlYWtQdHIoKSkpOwotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBz
dHJ1Y3QgSXNTbWFydFB0cjxQYXNzT3duUHRyPFQ+PiB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gdHJ1ZTsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcg
V1RGOjpQYXNzT3duUHRyOwotdXNpbmcgV1RGOjphZG9wdFB0cjsKLXVzaW5nIFdURjo6c3RhdGlj
X3BvaW50ZXJfY2FzdDsKLQotI2VuZGlmIC8vIFdURl9QYXNzT3duUHRyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1NpemVMaW1pdHMuY3BwIGIvU291cmNlL1dURi93dGYvU2l6ZUxpbWl0
cy5jcHAKaW5kZXggNzYxNGVjMjYzMjg3YWRjYjAwNzY1NzFiYTM3NmZhMWYwNWE0YjJiYS4uYTgy
ZDBjNDhiYzkxNGFlZTcyZTdhZmFmNTQ5NWU2MTVkMDcyYjNlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvU2l6ZUxpbWl0cy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvU2l6ZUxpbWl0cy5j
cHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNpbmNsdWRlIDx1
dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01NSw3ICs1NCw2IEBAIHN0cnVjdCBT
YW1lU2l6ZUFzUmVmQ291bnRlZCB7CiB9OwogI2VuZGlmCiAKLXN0YXRpY19hc3NlcnQoc2l6ZW9m
KE93blB0cjxpbnQ+KSA9PSBzaXplb2YoaW50KiksICJPd25QdHIgc2hvdWxkIHN0YXkgc21hbGwh
Iik7CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihQYXNzUmVmUHRyPFJlZkNvdW50ZWQ8aW50Pj4pID09
IHNpemVvZihpbnQqKSwgIlBhc3NSZWZQdHIgc2hvdWxkIHN0YXkgc21hbGwhIik7CiBzdGF0aWNf
YXNzZXJ0KHNpemVvZihSZWZDb3VudGVkPGludD4pID09IHNpemVvZihTYW1lU2l6ZUFzUmVmQ291
bnRlZCksICJSZWZDb3VudGVkIHNob3VsZCBzdGF5IHNtYWxsISIpOwogc3RhdGljX2Fzc2VydChz
aXplb2YoUmVmUHRyPFJlZkNvdW50ZWQ8aW50Pj4pID09IHNpemVvZihpbnQqKSwgIlJlZlB0ciBz
aG91bGQgc3RheSBzbWFsbCEiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3RvclRy
YWl0cy5oIGIvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmgKaW5kZXggYTgzMGU0NGEwYmM5
MDk3YjNhNjQ4ZjVlYzgzMmJhODA4YzJkNzRmMC4uOTRkYjhjYWI3ZDlmZDA2OGRiMWZiNDg0NTE0
MmIxYzFlMzRjZWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmgK
KysrIGIvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmgKQEAgLTIxLDcgKzIxLDYgQEAKICNp
Zm5kZWYgV1RGX1ZlY3RvclRyYWl0c19oCiAjZGVmaW5lIFdURl9WZWN0b3JUcmFpdHNfaAogCi0j
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8dXRpbGl0eT4KQEAgLTY2LDIyICs2NSwxMyBAQCBuYW1l
c3BhY2UgV1RGIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1j
bXAgPSB0cnVlOwogICAgIH07CiAKLSAgICAvLyBXZSBrbm93IE93blB0ciBhbmQgUmVmUHRyIGFy
ZSBzaW1wbGUgZW5vdWdoIHRoYXQgaW5pdGlhbGl6aW5nIHRvIDAgYW5kIG1vdmluZyB3aXRoIG1l
bWNweQotICAgIC8vIChhbmQgdGhlbiBub3QgZGVzdHJ1Y3RpbmcgdGhlIG9yaWdpbmFsKSB3aWxs
IHRvdGFsbHkgd29yawotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFA+Ci0gICAgc3RydWN0IFZlY3Rv
clRyYWl0czxSZWZQdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgeyB9OworICAgIC8v
IFdlIGtub3cgc21hcnQgcG9pbnRlcnMgYXJlIHNpbXBsZSBlbm91Z2ggdGhhdCBpbml0aWFsaXpp
bmcgdG8gMCBhbmQgbW92aW5nIHdpdGggbWVtY3B5CisgICAgLy8gKGFuZCB0aGVuIG5vdCBkZXN0
cnVjdGluZyB0aGUgb3JpZ2luYWwpIHdpbGwgd29yay4KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFA+Ci0gICAgc3RydWN0IFZlY3RvclRyYWl0czxPd25QdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0
b3JUcmFpdHMgeyB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4KLSAgICBzdHJ1Y3QgVmVj
dG9yVHJhaXRzPHN0ZDo6dW5pcXVlX3B0cjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7
IH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQPgotICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8
UmVmPFA+PiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKLQotICAgIHRlbXBsYXRlPD4K
LSAgICBzdHJ1Y3QgVmVjdG9yVHJhaXRzPEF0b21pY1N0cmluZz4gOiBTaW1wbGVDbGFzc1ZlY3Rv
clRyYWl0cyB7IH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IFZlY3RvclRyYWl0
czxSZWZQdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgeyB9OworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFA+IHN0cnVjdCBWZWN0b3JUcmFpdHM8c3RkOjp1bmlxdWVfcHRyPFA+PiA6IFNp
bXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1
Y3QgVmVjdG9yVHJhaXRzPFJlZjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7IH07Cisg
ICAgdGVtcGxhdGU8PiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPEF0b21pY1N0cmluZz4gOiBTaW1wbGVD
bGFzc1ZlY3RvclRyYWl0cyB7IH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGaXJzdCwgdHlw
ZW5hbWUgU2Vjb25kPgogICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8c3RkOjpwYWlyPEZpcnN0LCBT
ZWNvbmQ+PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmNzFlYjYwNTIwZDUwN2FmYjkz
ZjZhZWViOGFhNzUzY2U1YjllYjY1Li5jZjdkNzE4M2M2Y2VjY2YxYjJhODk3NjUzNDI2NjNmYWUz
ZWUzNWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTE5LDcgKzExOSw2IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWly
by5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwCi0gICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1Bh
dHRlcm5DYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRl
eHRDYWlyby5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjgxYzlkNTcyYjM1ZTZi
MzdkODNlZjZmNjMwNzQwNjMyYWE5MTUyNC4uZDhiNmQ2NWU4ZmFhNzlkMDhjMTI4YzM3ZGZmODkx
NmYzZmRhNWQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTc4LDcgKzc4LDYgQEAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNh
aXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKLSAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGF0dGVybkNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29u
dGV4dENhaXJvLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWly
by5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXggNDU5
M2QxZWE5ZWIyZGE2NDJmNjhjZjFhNDgyYTc1YWRiOTY2NDY1YS4uNzhiYjAxYTBiMDQxZjk5ZjEw
YTc3NDI1YTgyMDQzN2JhZjA4ZGUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNt
YWtlCkBAIC01MCw3ICs1MCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbnRSZWN0Q2Fpcm8uY3BwCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fp
cm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGFjODE1MzgzOTdkMDcxYTgwZjk4
ZWQzNTM3MjU5MTYyNTBmOWE0NDkuLjM2OWY1MmI4ZDFhZWEzN2UyYTY0OWJmYzg2MWI1ZDAxZjYy
YmU4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagpAQCAtODU4MiwxNiArODU4Miw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cT3duUHRyQ2Fpcm8uY3BwIj4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGF0aENhaXJv
LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0y
MDExOCwxNiArMjAxMDgsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVp
bGRTdGVwIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXE93blB0ckNhaXJvLmgi
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DdXN0b21CdWlsZFN0
ZXA+CiAgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YWlyb1xQbGF0Zm9ybVBhdGhDYWlyby5oIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA5NWMzMWU4MTY5YTRkNjljMWM2ZDkzMWJh
NjM4ZGNkNTcwN2EzZmFhLi5hMDMxODA4NWM1YTg1NTA2MDNmN2MwZTgyMmJjNDYxODBmOWU4NWE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCkBAIC0xNTg0LDkgKzE1ODQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cSW50UmVjdENhaXJvLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xP
d25QdHJDYWlyby5jcHAiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljc1xjYWlybzwv
RmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGF0aENhaXJvLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRm
b3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xNTM3MSw5
ICsxNTM2OCw2IEBACiAgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xjYWlyb1xHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oIj4KICAg
ICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm88L0ZpbHRlcj4KICAgICA8L0N1c3Rv
bUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXGNhaXJvXE93blB0ckNhaXJvLmgiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFw
aGljc1xjYWlybzwvRmlsdGVyPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgogICAgIDxDdXN0b21C
dWlsZFN0ZXAgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGxhdGZvcm1QYXRo
Q2Fpcm8uaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+
CiAgICAgPC9DdXN0b21CdWlsZFN0ZXA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9z
c1RocmVhZENvcGllci5jcHAKaW5kZXggMWIxYWMxM2VjNjUyYThiYjgxN2EyNTlkNThkMDQ1ZmM3
ZTQzYWViYy4uMmFhOTNlYzZkOWIyYTU0MjE4OWM5MWU0NzE1OWZiYWU1N2EzMDhkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMTc5LDE4
ICsxNzksNCBAQCBDT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAogICAgICAgICAgICAgICAg
ICAgPjo6dmFsdWUpLAogICAgICAgICAgICAgICAgUmF3UG9pbnRlclJlZkNvdW50ZWRUZXN0KTsK
IAotLy8gVmVyaWZ5IHRoYXQgUGFzc093blB0ciBnZXRzIHBhc3NlZCB0aHJvdWdoLgotQ09NUElM
RV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTwKLSAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8Zmxv
YXQ+LAotICAgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UGFzc093blB0cjxmbG9h
dD4+OjpUeXBlCi0gICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCi0gICAgICAgICAgICAgICBQ
YXNzT3duUHRyVGVzdCk7Ci0KLS8vIFZlcmlmeSB0aGF0IFBhc3NPd25QdHIgZG9lcyBub3QgZ2V0
IHBhc3NlZCB0aHJvdWdoLgotQ09NUElMRV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTwKLSAgICAgICAg
ICAgICAgICAgIGludCwKLSAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPE93blB0
cjxmbG9hdD4+OjpUeXBlCi0gICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCi0gICAgICAgICAg
ICAgICBPd25QdHJUZXN0KTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKaW5kZXggNzBmOTI0MzE3ZDA4Yjk4ZmM2
YmE4NjRjM2ZmZGE1ODM1ZmRmMGY5Yi4uZDc1MDU5YzE3NjhlZDdjOWMyNWMyYTcxOGU3MTE0MDlh
M2U3NWZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5o
CkBAIC0zMyw3ICszMyw2IEBACiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CkBAIC0xMTAsMTQgKzEwOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgfQogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUGFzc093blB0cjxUPj4gewotICAgICAg
ICB0eXBlZGVmIFBhc3NPd25QdHI8VD4gVHlwZTsKLSAgICAgICAgc3RhdGljIFR5cGUgY29weShU
eXBlIG93blB0cikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG93blB0cjsKLSAgICAg
ICAgfQotICAgIH07Ci0KICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJh
c2U8ZmFsc2UsIGZhbHNlLCBVUkw+IHsKICAgICAgICAgdHlwZWRlZiBVUkwgVHlwZTsKICAgICAg
ICAgc3RhdGljIFR5cGUgY29weShjb25zdCBVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCmluZGV4IGQyOTVkNDk4MDM4NWZiYjc1ZDc4MmU3
Y2EzMTFiNWFjMGY3Y2VmZDguLjAyM2E3ODIwYjY1YzA0MDNjMDE2ZDFhZDlmZTY4ZDkyNDgzODcw
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNw
cApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKaW5kZXggNzZkNGIxMjhmZTZmZWVjNTVi
NjBjZTg4NzIwMDZkYzhiOWI3MjcyMi4uNjNiYzVhYmY0OGVkYTY0ZjRkMzhmNzcyZTg1ZjcyYTgw
YWMzMDZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFs
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5j
cHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIKICNpbmNsdWRl
ICJUaHJlYWRUaW1lcnMuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRhLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKaW5kZXggMTg5NmZjMjlh
OTEzYmYwMjY4Mjc2NTgxM2NkNDU3NmE2ZTYwOTcyZi4uNTcwNjY2YjI5OTNkZDljMWRhNjhkMmI3
NGRiNDJkNjQ5NTA5NjQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhy
ZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2Jh
bERhdGEuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAj
aW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlv
bkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmgKaW5kZXggZmU5NGQwYzhjYTM1ZGVhMDY4NmJiY2Yy
YWMyODVmZjk4MWYyZDZjZi4uODFlZDA1MjFhMmYzYTA0M2JkY2EwN2M4NDYzYjBhM2QzYmU3YTcx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Yu
aApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0ZfaAog
CiAjaW5jbHVkZSAiQ0RNU2Vzc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVS
X0RFTEVHQVRFKSAmJiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAK
aW5kZXggY2JhMjdhNTRjNjA0ZmJjYzBkNzM5NDk0NDlmZDFjMWRlYzBlMjU3My4uNDA3NmVjMWRj
ZmYyZmQyMjVlZmMwNWRjNTdkYjQ3NTBlNDZhOTc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0x
ODksNyArMTg5LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJldGFpblB0cjxDQUNGTGF5ZXJS
ZWY+IG1fY2FWaWRlb0xheWVyOwogICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IG1fdmlkZW9M
YXllcldyYXBwZXI7CiAKLSAgICBPd25QdHI8TGF5ZXJDbGllbnQ+IG1fbGF5ZXJDbGllbnQ7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPExheWVyQ2xpZW50PiBtX2xheWVyQ2xpZW50OwogICAgIENPTVB0
cjxJRGlyZWN0M0REZXZpY2U5RXg+IG1fZDNkRGV2aWNlOwogCiAgICAgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRiogbV9jdXJyZW50VGV4dFRyYWNrOwpAQCAtMTYyMyw3ICsxNjIzLDcgQEAgdm9p
ZCBBVkZXcmFwcGVyOjpwcm9jZXNzTm90aWZpY2F0aW9uKHZvaWQqIGNvbnRleHQpCiAgICAgaWYg
KCFjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBPd25QdHI8Tm90aWZpY2F0aW9uQ2Fs
bGJhY2tEYXRhPiBub3RpZmljYXRpb25EYXRhID0gYWRvcHRQdHIocmVpbnRlcnByZXRfY2FzdDxO
b3RpZmljYXRpb25DYWxsYmFja0RhdGEqPihjb250ZXh0KSk7CisgICAgc3RkOjp1bmlxdWVfcHRy
PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YT4gbm90aWZpY2F0aW9uRGF0YSA9IHN0YXRpY19jYXN0
PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YSo+KGNvbnRleHQpOwogCiAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1hcExvY2soKSk7CiAgICAgQVZGV3JhcHBlciogc2VsZiA9IGF2ZldyYXBwZXJGb3JD
YWxsYmFja0NvbnRleHQobm90aWZpY2F0aW9uRGF0YS0+bV9jb250ZXh0KTsKQEAgLTE2NzMsOSAr
MTY3Myw5IEBAIHZvaWQgQVZGV3JhcHBlcjo6bm90aWZpY2F0aW9uQ2FsbGJhY2soQ0ZOb3RpZmlj
YXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDCiAgICAgTE9HKE1lZGlhLCAiQVZGV3Jh
cHBlcjo6bm90aWZpY2F0aW9uQ2FsbGJhY2soaWY9JWQpICVzIiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KG9ic2VydmVyKSwgbm90aWZpY2F0aW9uTmFtZSk7CiAjZW5kaWYKIAotICAgIE93
blB0cjxOb3RpZmljYXRpb25DYWxsYmFja0RhdGE+IG5vdGlmaWNhdGlvbkRhdGEgPSBhZG9wdFB0
cihuZXcgTm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhKHByb3BlcnR5TmFtZSwgb2JzZXJ2ZXIpKTsK
KyAgICBhdXRvIG5vdGlmaWNhdGlvbkRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPE5vdGlmaWNhdGlv
bkNhbGxiYWNrRGF0YT4ocHJvcGVydHlOYW1lLCBvYnNlcnZlcik7CiAKLSAgICBkaXNwYXRjaF9h
c3luY19mKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIG5vdGlmaWNhdGlvbkRhdGEubGVha1B0
cigpLCBwcm9jZXNzTm90aWZpY2F0aW9uKTsKKyAgICBkaXNwYXRjaF9hc3luY19mKGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCksIG5vdGlmaWNhdGlvbkRhdGEucmVsZWFzZSgpLCBwcm9jZXNzTm90
aWZpY2F0aW9uKTsKIH0KIAogdm9pZCBBVkZXcmFwcGVyOjpsb2FkUGxheWFibGVDb21wbGV0aW9u
Q2FsbGJhY2soQVZDRkFzc2V0UmVmLCB2b2lkKiBjb250ZXh0KQpAQCAtMTkxNyw3ICsxOTE3LDcg
QEAgUGxhdGZvcm1MYXllciogQVZGV3JhcHBlcjo6cGxhdGZvcm1MYXllcigpCiAgICAgICAgIHJl
dHVybiAwOwogCiAgICAgLy8gQ3JlYXRlIGEgUGxhdGZvcm1DQUxheWVyIHNvIHdlIGNhbiByZXNp
emUgdGhlIHZpZGVvIGxheWVyIHRvIG1hdGNoIHRoZSBlbGVtZW50IHNpemUuCi0gICAgbV9sYXll
ckNsaWVudCA9IGFkb3B0UHRyKG5ldyBMYXllckNsaWVudCh0aGlzKSk7CisgICAgbV9sYXllckNs
aWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8TGF5ZXJDbGllbnQ+KHRoaXMpOwogICAgIGlmICghbV9s
YXllckNsaWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAppbmRleCAy
ZWE0MmYxYzI5NjM4NDg0NGE0Y2JhMWZiZmU1OWMxMmZkYjljMGIxLi5iZTk3MDEwYjg2ZjMwOGEx
ZWJlYWM3MTMwZTFlM2EwYjVkZGJiM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCkBAIC0zNCw3ICsz
NCw2IEBACiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgog
I2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJPd25QdHJDYWlyby5oIgogI2luY2x1ZGUg
IlBhdGguaCIKICNpbmNsdWRlICJQbGF0Zm9ybVBhdGhDYWlyby5oIgogI2luY2x1ZGUgIlJlZlB0
ckNhaXJvLmgiCkBAIC03Myw4ICs3Miw5IEBAIHZvaWQgc2V0U291cmNlUkdCQUZyb21Db2xvcihj
YWlyb190KiBjb250ZXh0LCBjb25zdCBDb2xvciYgY29sb3IpCiAKIHZvaWQgYXBwZW5kUGF0aFRv
Q2Fpcm9Db250ZXh0KGNhaXJvX3QqIHRvLCBjYWlyb190KiBmcm9tKQogewotICAgIE93blB0cjxj
YWlyb19wYXRoX3Q+IGNhaXJvUGF0aCA9IGFkb3B0UHRyKGNhaXJvX2NvcHlfcGF0aChmcm9tKSk7
Ci0gICAgY2Fpcm9fYXBwZW5kX3BhdGgodG8sIGNhaXJvUGF0aC5nZXQoKSk7CisgICAgYXV0byBj
YWlyb1BhdGggPSBjYWlyb19jb3B5X3BhdGgoZnJvbSk7CisgICAgY2Fpcm9fYXBwZW5kX3BhdGgo
dG8sIGNhaXJvUGF0aCk7CisgICAgY2Fpcm9fcGF0aF9kZXN0cm95KGNhaXJvUGF0aCk7CiB9CiAK
IHZvaWQgc2V0UGF0aE9uQ2Fpcm9Db250ZXh0KGNhaXJvX3QqIHRvLCBjYWlyb190KiBmcm9tKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvLmNwcAppbmRleCBkMjJjNGNhZTJiMTk2ZDc3ZTdmZjNiNGQyOWY3OTA3
ZjFjM2E4OGYyLi5hMzM1YjA1Y2FiNWU4ZTliMDc3MTllZjM3MTkyNDU4N2VhMjgwZDVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZl
ckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgPGNhaXJvLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9UeXBl
ZEFycmF5SW5saW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTE5LDcgKzExOCw3IEBAIEltYWdlQnVmZmVyOjpJbWFn
ZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAq
LywgQ29sCiAKICAgICBSZWZQdHI8Y2Fpcm9fdD4gY3IgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUo
bV9kYXRhLm1fc3VyZmFjZS5nZXQoKSkpOwogICAgIG1fZGF0YS5tX3BsYXRmb3JtQ29udGV4dC5z
ZXRDcihjci5nZXQoKSk7Ci0gICAgbV9kYXRhLm1fY29udGV4dCA9IGFkb3B0UHRyKG5ldyBHcmFw
aGljc0NvbnRleHQoJm1fZGF0YS5tX3BsYXRmb3JtQ29udGV4dCkpOworICAgIG1fZGF0YS5tX2Nv
bnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzQ29udGV4dD4oJm1fZGF0YS5tX3BsYXRm
b3JtQ29udGV4dCk7CiAgICAgc3VjY2VzcyA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckRhdGFD
YWlyby5oCmluZGV4IGNiODljNzkwYmM5NTY5ZTg2ZmVkOTc4NmI5NTE5ZjA1NzA4NDU5NGMuLmQ2
MmY0NzA1MTVlM2U4MmRjYTlkOTc2MzQ0N2E2N2UyZmM0ZDA2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJE
YXRhQ2Fpcm8uaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBtX3N1cmZhY2U7CiAgICAgUGxhdGZvcm1Db250ZXh0Q2Fpcm8gbV9wbGF0Zm9y
bUNvbnRleHQ7Ci0gICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gbV9jb250ZXh0OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4dDsKICAgICBJbnRTaXplIG1f
c2l6ZTsKIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMjhhZmI2ZDE3ZDdiN2QzZTdlNDU0MjFjN2Nk
YmRhMDJlOTMxYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBDb2xsYWJvcmEgTHRkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
LSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlCi0gKiAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk93blB0ckNhaXJvLmgiCi0KLSNpZiBVU0UoQ0FJ
Uk8pCi0KLSNpZiBVU0UoRlJFRVRZUEUpCi0jaW5jbHVkZSA8Y2Fpcm8tZnQuaD4KLSNpbmNsdWRl
IDxmb250Y29uZmlnL2ZjZnJlZXR5cGUuaD4KLSNlbmRpZgotCi0jaW5jbHVkZSA8Y2Fpcm8uaD4K
LQotbmFtZXNwYWNlIFdURiB7Ci0KLSNpZiBVU0UoRlJFRVRZUEUpCi10ZW1wbGF0ZSA8PiB2b2lk
IGRlbGV0ZU93bmVkUHRyPEZjT2JqZWN0U2V0PihGY09iamVjdFNldCogcHRyKQotewotICAgIGlm
IChwdHIpCi0gICAgICAgIEZjT2JqZWN0U2V0RGVzdHJveShwdHIpOwotfQotCi10ZW1wbGF0ZSA8
PiB2b2lkIGRlbGV0ZU93bmVkUHRyPEZjRm9udFNldD4oRmNGb250U2V0KiBwdHIpCi17Ci0gICAg
aWYgKHB0cikKLSAgICAgICAgRmNGb250U2V0RGVzdHJveShwdHIpOwotfQotI2VuZGlmCi0KLX0g
Ly8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYgLy8gVVNFKENBSVJPKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmNjAxM2JiYTU4ZWIyZWFhZDQ5Nzk0Mjg3YzExNDI2MDE3
ZmU4OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaAorKysgL2Rl
di9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29sbGFi
b3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQot
ICogIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQotICovCi0KLSNpZm5kZWYgT3du
UHRyQ2Fpcm9faAotI2RlZmluZSBPd25QdHJDYWlyb19oCi0KLSNpZiBVU0UoQ0FJUk8pCi0KLSNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotI2lm
IFVTRShGUkVFVFlQRSkKLXR5cGVkZWYgc3RydWN0IF9GY09iamVjdFNldCBGY09iamVjdFNldDsK
LXR5cGVkZWYgc3RydWN0IF9GY0ZvbnRTZXQgRmNGb250U2V0OwotI2VuZGlmCi0KLXR5cGVkZWYg
c3RydWN0IGNhaXJvX3BhdGggY2Fpcm9fcGF0aF90OwotCi1uYW1lc3BhY2UgV1RGIHsKLQotI2lm
IFVTRShGUkVFVFlQRSkKLXRlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8RmNPYmplY3RT
ZXQ+KEZjT2JqZWN0U2V0Kik7Ci10ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPEZjRm9u
dFNldD4oRmNGb250U2V0Kik7Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRp
ZiAvLyBVU0UoQ0FJUk8pCi0KLSNlbmRpZiAvLyBPd25QdHJDYWlyb19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAppbmRleCBk
Y2MyZWYxNjBiMDg3M2FiZGY2MjkzOTVjYzE4NDE0MGUwMWU1M2RjLi41NDZhZGE2Y2MyYjFiYmQy
ZWU5NWYwOWY1OWVhODYxZmI2NTRkMDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNp
bmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJPd25QdHJDYWlyby5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtUGF0aENhaXJvLmgiCiAjaW5jbHVkZSAiU3Ryb2tlU3R5bGVBcHBsaWVyLmgi
CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KQEAgLTU5LDggKzU4LDkgQEAgUGF0aDo6UGF0aChjb25zdCBQ
YXRoJiBvdGhlcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2Fpcm9fdCogY3IgPSBlbnN1cmVQ
bGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpOwotICAgIE93blB0cjxjYWlyb19wYXRoX3Q+IHBhdGhD
b3B5ID0gYWRvcHRQdHIoY2Fpcm9fY29weV9wYXRoKG90aGVyLnBsYXRmb3JtUGF0aCgpLT5jb250
ZXh0KCkpKTsKLSAgICBjYWlyb19hcHBlbmRfcGF0aChjciwgcGF0aENvcHkuZ2V0KCkpOworICAg
IGF1dG8gcGF0aENvcHkgPSBjYWlyb19jb3B5X3BhdGgob3RoZXIucGxhdGZvcm1QYXRoKCktPmNv
bnRleHQoKSk7CisgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY3IsIHBhdGhDb3B5KTsKKyAgICBjYWly
b19wYXRoX2Rlc3Ryb3kocGF0aENvcHkpOwogfQogCiBQbGF0Zm9ybVBhdGhQdHIgUGF0aDo6ZW5z
dXJlUGxhdGZvcm1QYXRoKCkKQEAgLTgzLDggKzgzLDkgQEAgUGF0aCYgUGF0aDo6b3BlcmF0b3I9
KGNvbnN0IFBhdGgmIG90aGVyKQogICAgIH0gZWxzZSB7CiAgICAgICAgIGNsZWFyKCk7CiAgICAg
ICAgIGNhaXJvX3QqIGNyID0gZW5zdXJlUGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKTsKLSAgICAg
ICAgT3duUHRyPGNhaXJvX3BhdGhfdD4gcGF0aENvcHkgPSBhZG9wdFB0cihjYWlyb19jb3B5X3Bh
dGgob3RoZXIucGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSkpOwotICAgICAgICBjYWlyb19hcHBl
bmRfcGF0aChjciwgcGF0aENvcHkuZ2V0KCkpOworICAgICAgICBhdXRvIHBhdGhDb3B5ID0gY2Fp
cm9fY29weV9wYXRoKG90aGVyLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCkpOworICAgICAgICBj
YWlyb19hcHBlbmRfcGF0aChjciwgcGF0aENvcHkpOworICAgICAgICBjYWlyb19wYXRoX2Rlc3Ry
b3kocGF0aENvcHkpOwogICAgIH0KIAogICAgIHJldHVybiAqdGhpczsKQEAgLTMyMywxMSArMzI0
LDEwIEBAIHZvaWQgUGF0aDo6YWRkUGF0aChjb25zdCBQYXRoJiBwYXRoLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHRyYW5zZm9ybSkKICAgICBjYWlyb190KiBjciA9IHBhdGgucGxhdGZvcm1QYXRo
KCktPmNvbnRleHQoKTsKICAgICBjYWlyb19zYXZlKGNyKTsKICAgICBjYWlyb190cmFuc2Zvcm0o
Y3IsICZtYXRyaXgpOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxjYWlyb19wYXRoX3QsIHZvaWQoKiko
Y2Fpcm9fcGF0aF90Kik+IHBhdGhDb3B5KGNhaXJvX2NvcHlfcGF0aChjciksIFtdKGNhaXJvX3Bh
dGhfdCogcGF0aCkgewotICAgICAgICBjYWlyb19wYXRoX2Rlc3Ryb3kocGF0aCk7Ci0gICAgfSk7
CisgICAgYXV0byBwYXRoQ29weSA9IGNhaXJvX2NvcHlfcGF0aChjcik7CiAgICAgY2Fpcm9fcmVz
dG9yZShjcik7Ci0gICAgY2Fpcm9fYXBwZW5kX3BhdGgoZW5zdXJlUGxhdGZvcm1QYXRoKCktPmNv
bnRleHQoKSwgcGF0aENvcHkuZ2V0KCkpOworICAgIGNhaXJvX2FwcGVuZF9wYXRoKGVuc3VyZVBs
YXRmb3JtUGF0aCgpLT5jb250ZXh0KCksIHBhdGhDb3B5KTsKKyAgICBjYWlyb19wYXRoX2Rlc3Ry
b3kocGF0aENvcHkpOwogfQogCiB2b2lkIFBhdGg6OmNsb3NlU3VicGF0aCgpCkBAIC0zOTYsNyAr
Mzk2LDcgQEAgdm9pZCBQYXRoOjphcHBseSh2b2lkKiBpbmZvLCBQYXRoQXBwbGllckZ1bmN0aW9u
IGZ1bmN0aW9uKSBjb25zdAogICAgICAgICByZXR1cm47CiAKICAgICBjYWlyb190KiBjciA9IHBs
YXRmb3JtUGF0aCgpLT5jb250ZXh0KCk7Ci0gICAgT3duUHRyPGNhaXJvX3BhdGhfdD4gcGF0aENv
cHkgPSBhZG9wdFB0cihjYWlyb19jb3B5X3BhdGgoY3IpKTsKKyAgICBhdXRvIHBhdGhDb3B5ID0g
Y2Fpcm9fY29weV9wYXRoKGNyKTsKICAgICBjYWlyb19wYXRoX2RhdGFfdCogZGF0YTsKICAgICBQ
YXRoRWxlbWVudCBwZWxlbWVudDsKICAgICBGbG9hdFBvaW50IHBvaW50c1szXTsKQEAgLTQyOCw2
ICs0MjgsNyBAQCB2b2lkIFBhdGg6OmFwcGx5KHZvaWQqIGluZm8sIFBhdGhBcHBsaWVyRnVuY3Rp
b24gZnVuY3Rpb24pIGNvbnN0CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
KyAgICBjYWlyb19wYXRoX2Rlc3Ryb3kocGF0aENvcHkpOwogfQogCiB2b2lkIFBhdGg6OnRyYW5z
Zm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fp
cm8uY3BwCmluZGV4IGIxMGNhMGIwYWY1YjFmYjA5ZjFmMzM0YjA3MjgyYmMwMzVlYmRmYzYuLjBj
ZDI1YzkzNzYwNjQ1MTJlOTE3NjQ2Njc0ZWNlYjJmYmJhMDg3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNv
bnRleHRDYWlyby5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJDYWlyb1V0aWxpdGll
cy5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
Ci0jaW5jbHVkZSAiT3duUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAjaW5jbHVk
ZSA8Y2Fpcm8uaD4KIApAQCAtMzA2LDcgKzMwNSw3IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fp
cm86OmNsaXBGb3JQYXR0ZXJuRmlsbGluZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3Rh
CiAgICAgQVNTRVJUKHN0YXRlLmZpbGxQYXR0ZXJuKTsKIAogICAgIC8vIEhvbGQgY3VycmVudCBj
YWlybyBwYXRoIGluIGEgdmFyaWFibGUgZm9yIHJlc3RvcmluZyBpdCBhZnRlciBjb25maWd1cmlu
ZyB0aGUgcGF0dGVybiBjbGlwIHJlY3RhbmdsZS4KLSAgICBPd25QdHI8Y2Fpcm9fcGF0aF90PiBj
dXJyZW50UGF0aCA9IGFkb3B0UHRyKGNhaXJvX2NvcHlfcGF0aChtX2NyLmdldCgpKSk7CisgICAg
YXV0byBjdXJyZW50UGF0aCA9IGNhaXJvX2NvcHlfcGF0aChtX2NyLmdldCgpKTsKICAgICBjYWly
b19uZXdfcGF0aChtX2NyLmdldCgpKTsKIAogICAgIC8vIEluaXRpYWxpemUgY2xpcHBpbmcgZXh0
ZW50IGZyb20gY3VycmVudCBjYWlybyBjbGlwIGV4dGVudHMsIHRoZW4gc2hyaW5rIGlmIG5lZWRl
ZCBhY2NvcmRpbmcgdG8gcGF0dGVybi4KQEAgLTMzNyw3ICszMzYsOCBAQCB2b2lkIFBsYXRmb3Jt
Q29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcoY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGUmIHN0YQogICAgIH0KIAogICAgIC8vIFJlc3RvcmluZyBjYWlybyBwYXRoLgotICAgIGNh
aXJvX2FwcGVuZF9wYXRoKG1fY3IuZ2V0KCksIGN1cnJlbnRQYXRoLmdldCgpKTsKKyAgICBjYWly
b19hcHBlbmRfcGF0aChtX2NyLmdldCgpLCBjdXJyZW50UGF0aCk7CisgICAgY2Fpcm9fcGF0aF9k
ZXN0cm95KGN1cnJlbnRQYXRoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUv
Rm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IGU0ODM4NDg1ZDdhYzA1YzAyNjNhYjY0YWMwZWY4
ZmUwZWIxZjEyZWQuLmIyMzI3MTY3OGRjMWU4NTIyZmRlYTFjMzVjMGU5OWM4YzE2NTk4NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRD
YWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
cmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTIzLDcgKzIzLDYgQEAKICNpbmNsdWRl
ICJGb250Q2FjaGUuaCIKIAogI2luY2x1ZGUgIkZvbnQuaCIKLSNpbmNsdWRlICJPd25QdHJDYWly
by5oIgogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSAiVVRGMTZVQ2hhcjMySXRl
cmF0b3IuaCIKICNpbmNsdWRlIDxjYWlyby1mdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcAppbmRleCA3ODkwZDhkYTgz
MjY5YzMwNTVjYWNhNDM2NmRlYWNiMzJiZDFhMzY1Li43OWM0YTEwMTM5MjViNGVjZjVlMTE5YjQ0
MmVjYTNiZTJmYzNmMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUg
Ik9wZW5HTFNoaW1zLmgiCiAjaW5jbHVkZSA8R0wvZ2x4Lmg+CiAjaW5jbHVkZSA8Y2Fpcm8uaD4K
LSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FO
VkFTKQogI2luY2x1ZGUgPGNhaXJvLWdsLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKaW5kZXgg
ZWFlMzBjZGY0NWM4NDcwZmI4MDAwOGFmNjY1Y2MyNGNkZjg4YzdjNy4uNmM2OTUwMmZjZDAxMmEw
MGRiNDZmZGVmNGI1ZWJhYjhiODYxOTM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcApAQCAt
MTMwLDcgKzEzMCw3IEBAIEVHTE9mZlNjcmVlblN1cmZhY2U6OkVHTE9mZlNjcmVlblN1cmZhY2Uo
U3VyZmFjZUF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJpYnV0ZXMpCiAgICAgaWYgKG1fc2hhcmVkRGlz
cGxheSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb25maWdT
ZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBFR0xDb25maWdTZWxlY3RvcihzdXJmYWNlQXR0cmlidXRl
cykpOworICAgIG1fY29uZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEVHTENvbmZpZ1Nl
bGVjdG9yPihzdXJmYWNlQXR0cmlidXRlcyk7CiB9CiAKIEVHTE9mZlNjcmVlblN1cmZhY2U6On5F
R0xPZmZTY3JlZW5TdXJmYWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmgKaW5k
ZXggOGE2MTA5YTJmYzRlMTA1M2YyZmVhZDFjOGVmMTlhY2ViMDZmMzgxZC4uOGZmN2E5YmMyYWFi
MGIxMWJmZTk0ZjY0YTY2ZDdjYjNjNjE2YzYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1Nl
bGVjdG9yLmgKQEAgLTE0MCwxNCArMTQwLDEzIEBAIHByaXZhdGU6CiAgICAgR0xYRkJDb25maWcg
ZmluZE1hdGNoaW5nQ29uZmlnKGNvbnN0IGludCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCA9IDMy
KQogICAgIHsKICAgICAgICAgaW50IG51bUF2YWlsYWJsZUNvbmZpZ3M7Ci0gICAgICAgIE93blB0
clgxMTxHTFhGQkNvbmZpZz4gdGVtcChnbFhDaG9vc2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2
ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0
dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25maWdzKSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxHTFhGQkNvbmZpZywgWDExRGVsZXRlcj4gdGVtcChnbFhDaG9vc2VGQkNvbmZpZyhYMTFIZWxw
ZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihYMTFIZWxwZXI6Om5hdGl2ZURpc3Bs
YXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25maWdzKSk7CiAKICAgICAgICAgaWYg
KCFudW1BdmFpbGFibGVDb25maWdzIHx8ICF0ZW1wLmdldCgpKQogICAgICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICAgICAgT3duUHRyWDExPFhWaXN1YWxJbmZvPiBzY29wZWRWaXN1YWxJbmZvOwog
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF2YWlsYWJsZUNvbmZpZ3M7ICsraSkgewot
ICAgICAgICAgICAgc2NvcGVkVmlzdWFsSW5mbyA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhY
MTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgdGVtcFtpXSk7CisgICAgICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURlbGV0ZXI+IHNjb3BlZFZpc3VhbEluZm8gPSBnbFhH
ZXRWaXN1YWxGcm9tRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIHRlbXBbaV0p
OwogICAgICAgICAgICAgaWYgKCFzY29wZWRWaXN1YWxJbmZvLmdldCgpKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCkBAIC0xNjksNyArMTY4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQog
CiAgICAgICAgIC8vIERpZCBub3QgZmluZCBhbnkgdmlzdWFsIHN1cHBvcnRpbmcgYWxwaGEsIHNl
bGVjdCB0aGUgZmlyc3QgYXZhaWxhYmxlIGNvbmZpZy4KLSAgICAgICAgc2NvcGVkVmlzdWFsSW5m
byA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwg
dGVtcFswXSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRl
cj4gc2NvcGVkVmlzdWFsSW5mbyA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhYMTFIZWxwZXI6
Om5hdGl2ZURpc3BsYXkoKSwgdGVtcFswXSk7CiAKICAgICAgICAgaWYgKChtX2F0dHJpYnV0ZXMg
JiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhKSAmJiAoc2NvcGVkVmlzdWFsSW5mby0+
ZGVwdGggIT0gMzIpKQogICAgICAgICAgICAgbV9hdHRyaWJ1dGVzICY9IH5HTFBsYXRmb3JtU3Vy
ZmFjZTo6U3VwcG9ydEFscGhhOwpAQCAtMTgwLDE0ICsxNzksMTMgQEAgcHJpdmF0ZToKICAgICBH
TFhGQkNvbmZpZyBmaW5kTWF0Y2hpbmdDb25maWdXaXRoVmlzdWFsSWQoY29uc3QgaW50IGF0dHJp
YnV0ZXNbXSwgaW50IGRlcHRoLCBWaXN1YWxJRCBpZCkKICAgICB7CiAgICAgICAgIGludCBudW1B
dmFpbGFibGVDb25maWdzOwotICAgICAgICBPd25QdHJYMTE8R0xYRkJDb25maWc+IHRlbXAoZ2xY
Q2hvb3NlRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIERlZmF1bHRTY3JlZW4o
WDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCkpLCBhdHRyaWJ1dGVzLCAmbnVtQXZhaWxhYmxlQ29u
ZmlncykpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R0xYRkJDb25maWcsIFgxMURlbGV0ZXI+
IHRlbXAoZ2xYQ2hvb3NlRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIERlZmF1
bHRTY3JlZW4oWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCkpLCBhdHRyaWJ1dGVzLCAmbnVtQXZh
aWxhYmxlQ29uZmlncykpOwogCiAgICAgICAgIGlmICghbnVtQXZhaWxhYmxlQ29uZmlncyB8fCAh
dGVtcC5nZXQoKSkKICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIE93blB0clgxMTxY
VmlzdWFsSW5mbz4gc2NvcGVkVmlzdWFsSW5mbzsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBudW1BdmFpbGFibGVDb25maWdzOyArK2kpIHsKLSAgICAgICAgICAgIHNjb3BlZFZpc3VhbElu
Zm8gPSBnbFhHZXRWaXN1YWxGcm9tRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCks
IHRlbXBbaV0pOworICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFE
ZWxldGVyPiBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhl
bHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wW2ldKTsKICAgICAgICAgICAgIGlmICghc2NvcGVk
VmlzdWFsSW5mby5nZXQoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZh
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dM
WFN1cmZhY2UuY3BwCmluZGV4IDJiMzUzMDJlN2U4ZWFhMjU1MDI0ZDE1YzUyMGQ2YTkxODc3MGE3
YmEuLjE2YThlMDMxZjMxMjY0MGIzMWI0MjVkNmNjNDk1MmI0MzQ5ZDBmYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYU3VyZmFjZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgR0xYVHJhbnNwb3J0U3VyZmFjZTo6R0xY
VHJhbnNwb3J0U3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXplLCBTdXJmYWNlQXR0cmlidXRlcwog
ICAgIG1fc2hhcmVkRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpOwogICAgIGF0
dHJpYnV0ZXMgfD0gR0xQbGF0Zm9ybVN1cmZhY2U6OkRvdWJsZUJ1ZmZlcmVkOwogICAgIG1fY29u
ZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWENvbmZpZ1NlbGVjdG9yPihhdHRyaWJ1
dGVzKTsKLSAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IHZpc0luZm8obV9jb25maWdTZWxlY3Rv
ci0+dmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT5zdXJmYWNlQ29udGV4dENvbmZpZygpKSk7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFEZWxldGVyPiB2aXNJbmZvKG1f
Y29uZmlnU2VsZWN0b3ItPnZpc3VhbEluZm8obV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNvbnRl
eHRDb25maWcoKSkpOwogCiAgICAgaWYgKCF2aXNJbmZvLmdldCgpKSB7CiAgICAgICAgIGRlc3Ry
b3koKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEdMWE9mZlNjcmVlblN1cmZhY2U6OmluaXRp
YWxpemUoU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcykKIAogICAgIG1fY29uZmlnU2VsZWN0
b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWENvbmZpZ1NlbGVjdG9yPihhdHRyaWJ1dGVzKTsKIAot
ICAgIE93blB0clgxMTxYVmlzdWFsSW5mbz4gdmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52
aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnBpeG1hcENvbnRleHRDb25maWcoKSkpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRlcj4gdmlzdWFsSW5mbyhtX2Nv
bmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnBpeG1hcENvbnRleHRD
b25maWcoKSkpOwogICAgIFgxMUhlbHBlcjo6Y3JlYXRlUGl4bWFwKCZtX3BpeG1hcCwgKnZpc3Vh
bEluZm8uZ2V0KCkpOwogCiAgICAgaWYgKCFtX3BpeG1hcCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODc3NjEwYWJlZTJlZTdjNDFmMDE2NjVjNGI5
MGRkNTZkM2FlZGI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9Pd25QdHJY
MTEuaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgT3duUHRyWDExX2gKLSNkZWZpbmUgT3duUHRyWDExX2gKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RydWN0IE93blB0clgxMSB7Ci0KLSAg
ICBPd25QdHJYMTEoKSA6IG1feFJlc291cmNlKDApIHsgfQotICAgIE93blB0clgxMShUKiB4UmVz
b3VyY2UpIDogbV94UmVzb3VyY2UoeFJlc291cmNlKSB7IH0KLQotICAgIH5Pd25QdHJYMTEoKQot
ICAgIHsKLSAgICAgICAgaWYgKG1feFJlc291cmNlKQotICAgICAgICAgICAgWEZyZWUobV94UmVz
b3VyY2UpOwotICAgIH0KLQotICAgIE93blB0clgxMSYgb3BlcmF0b3I9KFQqIHhSZXNvdXJjZSkK
LSAgICB7Ci0gICAgICAgIGlmIChtX3hSZXNvdXJjZSkKLSAgICAgICAgICAgIFhGcmVlKG1feFJl
c291cmNlKTsKLQotICAgICAgICBtX3hSZXNvdXJjZSA9IHhSZXNvdXJjZTsKLSAgICAgICAgcmV0
dXJuICp0aGlzOwotICAgIH0KLQotICAgIG9wZXJhdG9yIFQqKCkgY29uc3QgeyByZXR1cm4gbV94
UmVzb3VyY2U7IH0KLSAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gbV94UmVzb3Vy
Y2U7IH0KLSAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3hSZXNvdXJjZTsgfQotCi1wcml2
YXRlOgotICAgIE93blB0clgxMShjb25zdCBPd25QdHJYMTEmKTsKLSAgICBPd25QdHJYMTEmIG9w
ZXJhdG9yPShjb25zdCBPd25QdHJYMTEmKTsKLSAgICBzdGF0aWMgdm9pZCogb3BlcmF0b3IgbmV3
IChzaXplX3QpOwotICAgIHN0YXRpYyB2b2lkIG9wZXJhdG9yIGRlbGV0ZSAodm9pZCopOwotICAg
IFQqIG1feFJlc291cmNlOwotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAK
aW5kZXggNDA5YTQ3ZjQwMWYyMzY1NmEzNzQ0YWIzYWM0ZGYxOGY1MmFiZTc0OS4uNGJlNjJiYjRm
ODIyMGQ4ODJhMzkzMDIwMWIxN2UzY2E0YmViMTEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAK
QEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIFgxMUhlbHBlcjo6Y3JlYXRlT2ZmU2NyZWVuV2luZG93
KHVpbnQzMl90KiBoYW5kbGVJZCwgY29uc3QgRUdMaW50IGlkLCBib29sCiAgICAgbWVtc2V0KCZ2
aXN1YWxJbmZvVGVtcGxhdGUsIDAsIHNpemVvZihYVmlzdWFsSW5mbykpOwogICAgIHZpc3VhbElu
Zm9UZW1wbGF0ZS52aXN1YWxpZCA9IHZpc3VhbElkOwogICAgIGludCBtYXRjaGluZ0NvdW50ID0g
MDsKLSAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IG1hdGNoaW5nVmlzdWFscyhYR2V0VmlzdWFs
SW5mbyhuYXRpdmVEaXNwbGF5KCksIFZpc3VhbElETWFzaywgJnZpc3VhbEluZm9UZW1wbGF0ZSwg
Jm1hdGNoaW5nQ291bnQpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURl
bGV0ZXI+IG1hdGNoaW5nVmlzdWFscyhYR2V0VmlzdWFsSW5mbyhuYXRpdmVEaXNwbGF5KCksIFZp
c3VhbElETWFzaywgJnZpc3VhbEluZm9UZW1wbGF0ZSwgJm1hdGNoaW5nQ291bnQpKTsKICAgICBY
VmlzdWFsSW5mbyogZm91bmRWaXN1YWwgPSAwOwogCiAgICAgaWYgKG1hdGNoaW5nVmlzdWFscykg
ewpAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgWDExSGVscGVyOjpjcmVhdGVQaXhtYXAoUGl4bWFw
KiBoYW5kbGVJZCwgY29uc3QgRUdMaW50IGlkLCBib29sIGhhc0FscGhhLCBjCiAgICAgbWVtc2V0
KCZ2aXN1YWxJbmZvVGVtcGxhdGUsIDAsIHNpemVvZihYVmlzdWFsSW5mbykpOwogICAgIHZpc3Vh
bEluZm9UZW1wbGF0ZS52aXN1YWxpZCA9IHZpc3VhbElkOwogICAgIGludCBtYXRjaGluZ0NvdW50
ID0gMDsKLSAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IG1hdGNoaW5nVmlzdWFscyhYR2V0Vmlz
dWFsSW5mbyhuYXRpdmVEaXNwbGF5KCksIFZpc3VhbElETWFzaywgJnZpc3VhbEluZm9UZW1wbGF0
ZSwgJm1hdGNoaW5nQ291bnQpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgx
MURlbGV0ZXI+IG1hdGNoaW5nVmlzdWFscyhYR2V0VmlzdWFsSW5mbyhuYXRpdmVEaXNwbGF5KCks
IFZpc3VhbElETWFzaywgJnZpc3VhbEluZm9UZW1wbGF0ZSwgJm1hdGNoaW5nQ291bnQpKTsKICAg
ICBYVmlzdWFsSW5mbyogZm91bmRWaXN1YWwgPSAwOwogICAgIGludCByZXF1aXJlZERlcHRoID0g
aGFzQWxwaGEgPyAzMiA6IDI0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmgKaW5kZXggYTdhZWI3MGRhMjEz
MjZjMjM5MjBmNGU3OTU5NGM1Yzg1Y2Y2MmM4ZS4uMTAzZjAwMTM1ZTIzZThmMDFkNTQ1ODVlMzA2
ODljMDRkNzBlMTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuaApAQCAtMjcsNyArMjcsNiBAQAogI2Rl
ZmluZSBYMTFIZWxwZXJfaAogCiAjaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIk93blB0
clgxMS5oIgogCiAjaWYgVVNFKEVHTCkKICNpbmNsdWRlIDxvcGVuZ2wvR0xEZWZzLmg+CkBAIC00
Myw4ICs0MiwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFgxMUhlbHBlciB7
CitjbGFzcyBYMTFEZWxldGVyIHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2
b2lkIG9wZXJhdG9yKCkoVCogcmVzb3VyY2UpCisgICAgeworICAgICAgICBpZiAocmVzb3VyY2Up
CisgICAgICAgICAgICBYRnJlZShyZXNvdXJjZSk7CisgICAgfQorfTsKIAorY2xhc3MgWDExSGVs
cGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVQaXhtYXAoUGl4bWFwKiwgY29u
c3QgWFZpc3VhbEluZm8mLCBjb25zdCBJbnRTaXplJiA9IEludFNpemUoMSwgMSkpOwogICAgIHN0
YXRpYyB2b2lkIGNyZWF0ZU9mZlNjcmVlbldpbmRvdyh1aW50MzJfdCosIGNvbnN0IFhWaXN1YWxJ
bmZvJiwgY29uc3QgSW50U2l6ZSYgPSBJbnRTaXplKDEsIDEpKTsKQEAgLTYxLDcgKzY4LDYgQEAg
cHVibGljOgogfTsKIAogY2xhc3MgU2NvcGVkWFBpeG1hcENyZWF0aW9uRXJyb3JIYW5kbGVyIHsK
LQogcHVibGljOgogICAgIFNjb3BlZFhQaXhtYXBDcmVhdGlvbkVycm9ySGFuZGxlcigpOwogICAg
IH5TY29wZWRYUGl4bWFwQ3JlYXRpb25FcnJvckhhbmRsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xs
ZXIuY3BwCmluZGV4IGM5ZTkzOGMyN2QyNDU4NzU4NjQ1ZDIyZGM1MjBkN2QyYzAzNGMyNmQuLjY4
MDFjMTZhY2JkMzVlZjM1ZjNjNWE5Mzk3OTI1MGJkMzg4MGY1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250
cm9sbGVyLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZUZ1bGxzY3JlZW5XaW5kb3cuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIldlYkNv
cmVJbnN0YW5jZUhhbmRsZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTYwLDggKzU5
LDggQEAgcHVibGljOgogICAgIAogICAgIEZ1bGxTY3JlZW5Db250cm9sbGVyKiBtX2NvbnRyb2xs
ZXI7CiAgICAgRnVsbFNjcmVlbkNvbnRyb2xsZXJDbGllbnQqIG1fY2xpZW50OwotICAgIE93blB0
cjxNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93PiBtX2Z1bGxTY3JlZW5XaW5kb3c7
Ci0gICAgT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c+IG1fYmFja2dy
b3VuZFdpbmRvdzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNj
cmVlbldpbmRvdz4gbV9mdWxsU2NyZWVuV2luZG93OworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93PiBtX2JhY2tncm91bmRXaW5kb3c7CiAgICAg
SW50UmVjdCBtX2Z1bGxTY3JlZW5GcmFtZTsKICAgICBJbnRSZWN0IG1fb3JpZ2luYWxGcmFtZTsK
ICAgICBIV05EIG1fb3JpZ2luYWxIb3N0OwpAQCAtMTA0LDcgKzEwMyw3IEBAIExSRVNVTFQgRnVs
bFNjcmVlbkNvbnRyb2xsZXI6OlByaXZhdGU6OmZ1bGxzY3JlZW5DbGllbnRXbmRQcm9jKEhXTkQg
aHduZCwgVUlOVCBtCiB9CiAKIEZ1bGxTY3JlZW5Db250cm9sbGVyOjpGdWxsU2NyZWVuQ29udHJv
bGxlcihGdWxsU2NyZWVuQ29udHJvbGxlckNsaWVudCogY2xpZW50KQotICAgIDogbV9wcml2YXRl
KGFkb3B0UHRyKG5ldyBGdWxsU2NyZWVuQ29udHJvbGxlcjo6UHJpdmF0ZSh0aGlzLCBjbGllbnQp
KSkKKyAgICA6IG1fcHJpdmF0ZShzdGQ6Om1ha2VfdW5pcXVlPFByaXZhdGU+KHRoaXMsIGNsaWVu
dCkpCiB7CiAgICAgQVNTRVJUX0FSRyhjbGllbnQsIGNsaWVudCk7CiB9CkBAIC0xMzQsMTMgKzEz
MywxMyBAQCB2b2lkIEZ1bGxTY3JlZW5Db250cm9sbGVyOjplbnRlckZ1bGxTY3JlZW4oKQogICAg
IG1fcHJpdmF0ZS0+bV9vcmlnaW5hbEZyYW1lID0gb3JpZ2luYWxGcmFtZTsKIAogICAgIEFTU0VS
VCghbV9wcml2YXRlLT5tX2JhY2tncm91bmRXaW5kb3cpOwotICAgIG1fcHJpdmF0ZS0+bV9iYWNr
Z3JvdW5kV2luZG93ID0gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5X
aW5kb3cobV9wcml2YXRlLmdldCgpKSk7CisgICAgbV9wcml2YXRlLT5tX2JhY2tncm91bmRXaW5k
b3cgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c+
KG1fcHJpdmF0ZS5nZXQoKSk7CiAgICAgbV9wcml2YXRlLT5tX2JhY2tncm91bmRXaW5kb3ctPmNy
ZWF0ZVdpbmRvdygwKTsKICAgICA6OkFuaW1hdGVXaW5kb3cobV9wcml2YXRlLT5tX2JhY2tncm91
bmRXaW5kb3ctPmh3bmQoKSwga0Z1bGxTY3JlZW5BbmltYXRpb25EdXJhdGlvbiwgQVdfQkxFTkQg
fCBBV19BQ1RJVkFURSk7CiAKICAgICBtX3ByaXZhdGUtPm1fY2xpZW50LT5mdWxsU2NyZWVuQ2xp
ZW50V2lsbEVudGVyRnVsbFNjcmVlbigpOwogICAgIEFTU0VSVCghbV9wcml2YXRlLT5tX2Z1bGxT
Y3JlZW5XaW5kb3cpOwotICAgIG1fcHJpdmF0ZS0+bV9mdWxsU2NyZWVuV2luZG93ID0gYWRvcHRQ
dHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cobV9wcml2YXRlLmdldCgp
KSk7CisgICAgbV9wcml2YXRlLT5tX2Z1bGxTY3JlZW5XaW5kb3cgPSBzdGQ6Om1ha2VfdW5pcXVl
PE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c+KG1fcHJpdmF0ZS5nZXQoKSk7CiAg
ICAgQVNTRVJUKG1fcHJpdmF0ZS0+bV9mdWxsU2NyZWVuV2luZG93KTsKICAgICBtX3ByaXZhdGUt
Pm1fZnVsbFNjcmVlbldpbmRvdy0+Y3JlYXRlV2luZG93KDApOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxl
ci5oCmluZGV4IDc2YTg4MGRhNzk3MjFmZjZlYjc2NDE0MmE2M2Y2N2VhZTNmN2RiMjUuLjMxNzdk
OWVhODcwMjk5N2ZiODg3OTdhNTRjYWU1OTQ5MjUxZDgyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxl
ci5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLSNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8bWVtb3J5PgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTU0LDcgKzU0LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgY2xhc3MgUHJpdmF0
ZTsKICAgICBmcmllbmQgY2xhc3MgUHJpdmF0ZTsKLSAgICBPd25QdHI8RnVsbFNjcmVlbkNvbnRy
b2xsZXI6OlByaXZhdGU+IG1fcHJpdmF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RnVsbFNjcmVl
bkNvbnRyb2xsZXI6OlByaXZhdGU+IG1fcHJpdmF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0
M0RXaW4uY3BwCmluZGV4IDY5ZGZjN2Y2NWUyOTk4Njg2MDA0NjZjYjViNWQ5YmU3YzY5NDNiMzEu
LjdhNWQ3YmEwOGI2YWFjYmQyYmZlYWMzNDZlZWFhMWRlNTIwOTkyM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29u
dGV4dDNEV2luLmNwcApAQCAtMjksOCArMjksNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXJXaW4uaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogI2lmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRl
IDxHTFNMQU5HL1NoYWRlckxhbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuY3BwCmluZGV4IDYyMmEzNjQyZmU5ZGJj
ZGQ1ZGQ4ODJkYWQzZTEwNjBhY2M5NDliMDIuLjJkMjA1ODcxY2ZkZWU1Zjc4ODMxNzk2YzczNzYw
ZWMxNDAyOTdkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9XS0NBSW1hZ2VRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVk
ZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KICNpbmNsdWRlIDxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTUyLDEzICs1MSwxMyBAQCBzdGF0aWMgdm9pZCBXS0NBSW1hZ2VRdWV1ZVJlbGVhc2Uo
Q0FJbWFnZVF1ZXVlUmVmIGlxKQogfQogCiBXS0NBSW1hZ2VRdWV1ZTo6V0tDQUltYWdlUXVldWUo
dWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwgdWludDMyX3QgY2FwYWNpdHkpCi0gICAg
OiBtX3ByaXZhdGUoYWRvcHRQdHIobmV3IFdLQ0FJbWFnZVF1ZXVlUHJpdmF0ZSgpKSkKKyAgICA6
IG1fcHJpdmF0ZShzdGQ6Om1ha2VfdW5pcXVlPFdLQ0FJbWFnZVF1ZXVlUHJpdmF0ZT4oKSkKIHsK
ICAgICBtX3ByaXZhdGUtPm1faW1hZ2VRdWV1ZSA9IGFkb3B0Q0Yod2tDQUltYWdlUXVldWVDcmVh
dGUod2lkdGgsIGhlaWdodCwgY2FwYWNpdHkpKTsKIH0KIAogV0tDQUltYWdlUXVldWU6OldLQ0FJ
bWFnZVF1ZXVlKGNvbnN0IFdLQ0FJbWFnZVF1ZXVlJiBvKQotICAgIDogbV9wcml2YXRlKGFkb3B0
UHRyKG5ldyBXS0NBSW1hZ2VRdWV1ZVByaXZhdGUoKSkpCisgICAgOiBtX3ByaXZhdGUoc3RkOjpt
YWtlX3VuaXF1ZTxXS0NBSW1hZ2VRdWV1ZVByaXZhdGU+KCkpCiB7CiAgICAgbV9wcml2YXRlLT5t
X2ltYWdlUXVldWUgPSBvLm1fcHJpdmF0ZS0+bV9pbWFnZVF1ZXVlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaAppbmRl
eCAyNTYwNzY1MGZmZDJlMzMyZmMxNDJhYjBiZGE1NDBhZjdmNTAwMjRiLi4yNzYwZDYxMTY1YWJl
MDUxNTQwY2VlNzVlOTg0MTI3MjAyOTQxZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaApAQCAtMjksOCArMjksOCBA
QAogdHlwZWRlZiBjb25zdCB2b2lkICogQ0ZUeXBlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
X19DRkRpY3Rpb25hcnkgKiBDRkRpY3Rpb25hcnlSZWY7CiAKKyNpbmNsdWRlIDxtZW1vcnk+CiAj
aW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXS0NB
SW1hZ2VRdWV1ZShjb25zdCBXS0NBSW1hZ2VRdWV1ZSYpOwogICAgIFdLQ0FJbWFnZVF1ZXVlJiBv
cGVyYXRvcj0oY29uc3QgV0tDQUltYWdlUXVldWUmKTsKLSAgICBPd25QdHI8V0tDQUltYWdlUXVl
dWVQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdLQ0FJbWFnZVF1ZXVl
UHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKaW5k
ZXggYzdmMGI0Mzk4ZjFhMGZiOWVhYmYzODZkMDkwZDc3YWM0NDhjMzM4OS4uZDA0OTI5NDA0MGJj
M2M5OGZlYjExZWQyNjk3YWI1MWIwMjc4Yjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3Bw
CkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAK
ICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCA3NzI0NjZk
YWI5MTMzYTJhZTFlOWNjODRiOTYzMzQxOGVmODBkNjY0Li5iMGUwMzU5NjcwYzFhNjlhMzA0MDBm
YWQ3NDU5NDhkZDE0ZDJiZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAK
ICNpZiBVU0UoQ0ZORVRXT1JLKQogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGUuaCIKQEAgLTE2Myw3ICsxNjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHVuc2lnbmVkIG1fc3NsRXJyb3JzOwogICAgICAgICBWZWN0b3I8Y2hhcj4gbV9wb3N0
Qnl0ZXM7CiAKLSAgICAgICAgT3duUHRyPE11bHRpcGFydEhhbmRsZT4gbV9tdWx0aXBhcnRIYW5k
bGU7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNdWx0aXBhcnRIYW5kbGU+IG1fbXVsdGlwYXJ0
SGFuZGxlOwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAgIEdSZWZQdHI8U291cE1lc3Nh
Z2U+IG1fc291cE1lc3NhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuY3BwCmluZGV4IGU3ODA1MGZlMjk5YjdhYTlk
YjgwZTA1ZjQzMjQ4NWM1Y2JiOWMzMjEuLjg5N2Y5NWMxOTBhNTQxNjViZDk1NDc5YzQ1NGUzOTQ2
YmVlZjBjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9NdWx0aXBhcnRIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuY3BwCkBAIC0zNywxMSArMzcsNiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8TXVsdGlwYXJ0SGFuZGxlPiBNdWx0aXBhcnRIYW5k
bGU6OmNyZWF0ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5
KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTXVsdGlwYXJ0SGFuZGxlKGhhbmRsZSwgYm91
bmRhcnkpKTsKLX0KLQogYm9vbCBNdWx0aXBhcnRIYW5kbGU6OmV4dHJhY3RCb3VuZGFyeShjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBTdHJpbmcmIGJvdW5kYXJ5KQogewogICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgbGVuZ3RoID0gc3RybGVuKCJib3VuZGFyeT0iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuaAppbmRl
eCA5YWI4NTYyNDU4NzMxZGFhNTU4ZWM3MjY0ZmZlYmRmY2E3NDNlOWQwLi5iYjBmMGY2Y2YzMzk2
YWFhMDE1Y2E5NmMwZmExMmVhMzU4ZDJlY2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5oCkBAIC0yOCwxNyArMjgs
MTMgQEAKIAogI2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZS5oIgotCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBNdWx0aXBhcnRIYW5kbGUgewotCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NP
d25QdHI8TXVsdGlwYXJ0SGFuZGxlPiBjcmVhdGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgU3RyaW5nJiBib3VuZGFyeSk7CiAgICAgc3RhdGljIGJvb2wgZXh0cmFjdEJvdW5kYXJ5KGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0cmluZyYgYm91bmRhcnkpOwogCiAgICAgTXVsdGlw
YXJ0SGFuZGxlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFN0cmluZyYgYm91bmRhcnkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCmluZGV4IDMzYWI4N2I0MGVmMjA5NDhiNWVhNmM1
MjQ0OTI0Zjc5MTY4MDVmMDcuLmZkOGY1OGU4ODI1OTM3MmZkMjAyYmI2Mjk3YTU5ZGM2MjllYmRm
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCkBAIC01MTUsNyArNTE1LDcgQEAgc3Rh
dGljIHNpemVfdCBoZWFkZXJDYWxsYmFjayhjaGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qg
bm1lbWIsIHZvaWQqIGRhdGEpCiAgICAgICAgICAgICBTdHJpbmcgYm91bmRhcnk7CiAgICAgICAg
ICAgICBib29sIHBhcnNlZCA9IE11bHRpcGFydEhhbmRsZTo6ZXh0cmFjdEJvdW5kYXJ5KGQtPm1f
cmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSksIGJv
dW5kYXJ5KTsKICAgICAgICAgICAgIGlmIChwYXJzZWQpCi0gICAgICAgICAgICAgICAgZC0+bV9t
dWx0aXBhcnRIYW5kbGUgPSBNdWx0aXBhcnRIYW5kbGU6OmNyZWF0ZShqb2IsIGJvdW5kYXJ5KTsK
KyAgICAgICAgICAgICAgICBkLT5tX211bHRpcGFydEhhbmRsZSA9IHN0ZDo6bWFrZV91bmlxdWU8
TXVsdGlwYXJ0SGFuZGxlPihqb2IsIGJvdW5kYXJ5KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxF
KFdFQl9USU1JTkcpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggNTU5NTVmODBjNWI0M2ViNDhkZmY2ODFhMmM0ODliNWVjYzY0NjA3ZC4uZDZlMTFj
MWEyMDgwYjc0ZDgwMDEwZTU5ZTE1M2YwMDEzMjkxNzA3MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE1LTA0LTIz
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBDb252ZXJ0IE93blB0
ciBhbmQgUGFzc093blB0ciB1c2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vSGlz
dG9yeURlbGVnYXRlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZS4KKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5oOiBEaXR0by4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwOiBSZW1vdmVkIE93blB0ci1zcGVjaWZpYyB0ZXN0
IGNhc2VzLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwOiBE
aXR0by4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L3dpbi9XZWJWaWV3
RGVzdHJ1Y3Rpb24uY3BwOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGUuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwOiBVc2UgdW5pcXVlX3B0
ci4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdDJVc2VyTWVzc2FnZVJvdW5kVHJpcFRl
c3Q6OlNldFVwKTogVXNlIG1ha2VfdW5pcXVlLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9XaWxsTG9hZC5jcHA6IERpdHRvLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
V2ViS2l0MldpbGxMb2FkVGVzdDo6U2V0VXApOiBEaXR0by4KKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NRE9NV2luZG93VGVzdC5jcHA6CisgICAgICAgIChXZWJL
aXRET01ET01XaW5kb3dUZXN0OjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6CisgICAgICAgIChkb2N1
bWVudExvYWRlZENhbGxiYWNrKTogVXNlIGEgcXVldWUgb2YgRGVsYXllZFNpZ25hbCBvYmplY3Rz
IGluc3RlYWQKKyAgICAgICAgb2Ygc21hcnQgcG9pbnRlcnMgdG8gRGVsYXllZFNJZ25hbCBvYmpl
Y3RzLgorICAgICAgICAodXJpQ2hhbmdlZENhbGxiYWNrKTogRGl0dG8uCisKKzIwMTUtMDQtMjMg
IERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCiAgICAgICAgIEFub3RoZXIgcm91bmQg
b2YgcmVtb3ZpbmcgdXNlIG9mIE93blB0ciwgUGFzc093blB0ciwgYW5kIGRlbGV0ZU93bmVkUHRy
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwOTAK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0hpc3RvcnlEZWxlZ2F0ZS5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0hpc3RvcnlEZWxlZ2F0ZS5oCmluZGV4IDIzNmVk
ZDM2ZjBiMTRiMTkwZGI1NzU4ZWQyNTZmZjE1Y2ViMjQ5MDEuLmM4NTRhZTAwMTdlZTQ0YWQyYmZk
MDVlMjBmNjdjNTVmMGRlZTMwMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9IaXN0b3J5RGVsZWdhdGUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vSGlzdG9y
eURlbGVnYXRlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgSGlzdG9yeURlbGVnYXRlX2gK
IAogI2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAK
IGNsYXNzIEhpc3RvcnlEZWxlZ2F0ZSA6IHB1YmxpYyBJV2ViSGlzdG9yeURlbGVnYXRlIHsKIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5oCmluZGV4IDdmNGY5M2RhNGRi
YmQwNGZjYzhlMmM4NWQ3OTM4ZDEyMjFkMDQ3YWYuLjZlMGZkNGE3N2U4NzdhZTliYjZjODk3MDIw
OTg2NzJhM2U2ZTE4NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURl
bGVnYXRlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUuaApAQCAt
MzEsNyArMzEsNiBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KICNpbmNsdWRlIDxX
ZWJLaXQvV2ViS2l0Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHdpbmRl
Zi5oPgogCiBjbGFzcyBEUlRVbmRvTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGFzaE1hcC5jcHAKaW5kZXggMjM2ZTQ2OTk1ZDE4YTRkNjc1NTdlMDJiNzQzZDE1ZTFkOTA1
MjljNi4uYTI4MWYyMzBhN2VjZDgxYjU1MzQ2NTA4NTQyZDAyNTZkNmQ2Y2RkYiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAKQEAgLTMwLDggKzMwLDYgQEAKICNp
bmNsdWRlICJSZWZMb2dnZXIuaCIKICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKQEAgLTE3NCwxMDEgKzE3Miw2IEBAIFRFU1QoV1RGX0hhc2hNYXAsIEVmZmlj
aWVudEdldHRlcikKICAgICB9CiB9CiAKLVRFU1QoV1RGX0hhc2hNYXAsIE93blB0cktleSkKLXsK
LSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpUZXN0aW5nU2NvcGUgc2NvcGU7Ci0K
LSAgICBIYXNoTWFwPE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyPiwgaW50PiBt
YXA7Ci0KLSAgICBPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcj4gb3duUHRyID0g
YWRvcHRQdHIobmV3IENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXIpOwotICAgIG1hcC5hZGQo
V1RGOjptb3ZlKG93blB0ciksIDIpOwotCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRl
c3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDB1LCBD
b25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLQotICAgIG1h
cC5jbGVhcigpOwotICAgIAotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9y
Q291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0
b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci19Ci0KLVRFU1QoV1RGX0hh
c2hNYXAsIE93blB0cktleV9GaW5kVXNpbmdSYXdQb2ludGVyKQotewotICAgIEhhc2hNYXA8T3du
UHRyPGludD4sIGludD4gbWFwOwotCi0gICAgT3duUHRyPGludD4gb3duUHRyID0gYWRvcHRQdHIo
bmV3IGludCg1KSk7Ci0gICAgaW50KiBwdHIgPSBvd25QdHIuZ2V0KCk7Ci0gICAgbWFwLmFkZChX
VEY6Om1vdmUob3duUHRyKSwgMik7Ci0KLSAgICBhdXRvIGl0ID0gbWFwLmZpbmQocHRyKTsKLSAg
ICBBU1NFUlRfVFJVRShpdCAhPSBtYXAuZW5kKCkpOwotICAgIEVYUEVDVF9FUShwdHIsIGl0LT5r
ZXkuZ2V0KCkpOwotICAgIEVYUEVDVF9FUSgyLCBpdC0+dmFsdWUpOwotfQotCi1URVNUKFdURl9I
YXNoTWFwLCBPd25QdHJLZXlfQ29udGFpbnNVc2luZ1Jhd1BvaW50ZXIpCi17Ci0gICAgSGFzaE1h
cDxPd25QdHI8aW50PiwgaW50PiBtYXA7Ci0KLSAgICBPd25QdHI8aW50PiBvd25QdHIgPSBhZG9w
dFB0cihuZXcgaW50KDUpKTsKLSAgICBpbnQqIHB0ciA9IG93blB0ci5nZXQoKTsKLSAgICBtYXAu
YWRkKFdURjo6bW92ZShvd25QdHIpLCAyKTsKLQotICAgIEVYUEVDVF9FUSh0cnVlLCBtYXAuY29u
dGFpbnMocHRyKSk7Ci19Ci0KLVRFU1QoV1RGX0hhc2hNYXAsIE93blB0cktleV9HZXRVc2luZ1Jh
d1BvaW50ZXIpCi17Ci0gICAgSGFzaE1hcDxPd25QdHI8aW50PiwgaW50PiBtYXA7Ci0KLSAgICBP
d25QdHI8aW50PiBvd25QdHIgPSBhZG9wdFB0cihuZXcgaW50KDUpKTsKLSAgICBpbnQqIHB0ciA9
IG93blB0ci5nZXQoKTsKLSAgICBtYXAuYWRkKFdURjo6bW92ZShvd25QdHIpLCAyKTsKLQotICAg
IGludCB2YWx1ZSA9IG1hcC5nZXQocHRyKTsKLSAgICBFWFBFQ1RfRVEoMiwgdmFsdWUpOwotfQot
Ci1URVNUKFdURl9IYXNoTWFwLCBPd25QdHJLZXlfUmVtb3ZlVXNpbmdSYXdQb2ludGVyKQotewot
ICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OlRlc3RpbmdTY29wZSBzY29wZTsKLQot
ICAgIEhhc2hNYXA8T3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI+LCBpbnQ+IG1h
cDsKLQotICAgIE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyPiBvd25QdHIgPSBh
ZG9wdFB0cihuZXcgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcik7Ci0gICAgQ29uc3RydWN0
b3JEZXN0cnVjdG9yQ291bnRlciogcHRyID0gb3duUHRyLmdldCgpOwotICAgIG1hcC5hZGQoV1RG
Ojptb3ZlKG93blB0ciksIDIpOwotCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3Ry
dWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDB1LCBDb25z
dHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLQotICAgIGJvb2wg
cmVzdWx0ID0gbWFwLnJlbW92ZShwdHIpOwotICAgIEVYUEVDVF9FUSh0cnVlLCByZXN1bHQpOwot
Ci0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1
Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3Vu
dGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLX0KLQotVEVTVChXVEZfSGFzaE1hcCwgT3duUHRyS2V5
X1Rha2VVc2luZ1Jhd1BvaW50ZXIpCi17Ci0gICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRl
cjo6VGVzdGluZ1Njb3BlIHNjb3BlOwotCi0gICAgSGFzaE1hcDxPd25QdHI8Q29uc3RydWN0b3JE
ZXN0cnVjdG9yQ291bnRlcj4sIGludD4gbWFwOwotCi0gICAgT3duUHRyPENvbnN0cnVjdG9yRGVz
dHJ1Y3RvckNvdW50ZXI+IG93blB0ciA9IGFkb3B0UHRyKG5ldyBDb25zdHJ1Y3RvckRlc3RydWN0
b3JDb3VudGVyKTsKLSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKiBwdHIgPSBvd25Q
dHIuZ2V0KCk7Ci0gICAgbWFwLmFkZChXVEY6Om1vdmUob3duUHRyKSwgMik7Ci0KLSAgICBFWFBF
Q1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50
KTsKLSAgICBFWFBFQ1RfRVEoMHUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3Ry
dWN0aW9uQ291bnQpOwotCi0gICAgaW50IHJlc3VsdCA9IG1hcC50YWtlKHB0cik7Ci0gICAgRVhQ
RUNUX0VRKDIsIHJlc3VsdCk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1
Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0
cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotfQotCiBURVNUKFdU
Rl9IYXNoTWFwLCBVbmlxdWVQdHJLZXkpCiB7CiAgICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291
bnRlcjo6VGVzdGluZ1Njb3BlIHNjb3BlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvSGFzaFNldC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
YXNoU2V0LmNwcAppbmRleCAzMTU1YmMwN2EyMjNiYWI0ZWE3ZDM2MTRmZmEzMTRiNzdjOGVlMjU5
Li5kZGIxNzhjNzI1ODRmZmNiOGZiMzE0ZDg4ZThiMTU5NGZiYTExZGNkIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcApAQCAtMjgsOCArMjgsNiBAQAogI2luY2x1
ZGUgIkNvdW50ZXJzLmgiCiAjaW5jbHVkZSAiTW92ZU9ubHkuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKQEAgLTExOSw5MyArMTE3LDYgQEAg
VEVTVChXVEZfSGFzaFNldCwgTW92ZU9ubHkpCiAgICAgICAgIEVYUEVDVF9UUlVFKHNlY29uZFNl
dC5jb250YWlucyhNb3ZlT25seShpICsgMSkpKTsKIH0KIAotVEVTVChXVEZfSGFzaFNldCwgT3du
UHRyS2V5KQotewotICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OlRlc3RpbmdTY29w
ZSBzY29wZTsKLQotICAgIEhhc2hTZXQ8T3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50
ZXI+PiBzZXQ7Ci0KLSAgICBPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcj4gb3du
UHRyID0gYWRvcHRQdHIobmV3IENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXIpOwotICAgIHNl
dC5hZGQoV1RGOjptb3ZlKG93blB0cikpOwotCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3Rv
ckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDB1
LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLQotICAg
IHNldC5jbGVhcigpOwotICAgIAotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVj
dG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3Ry
dWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci19Ci0KLVRFU1QoV1RG
X0hhc2hTZXQsIE93blB0cktleV9GaW5kVXNpbmdSYXdQb2ludGVyKQotewotICAgIEhhc2hTZXQ8
T3duUHRyPGludD4+IHNldDsKLQotICAgIE93blB0cjxpbnQ+IG93blB0ciA9IGFkb3B0UHRyKG5l
dyBpbnQoNSkpOwotICAgIGludCogcHRyID0gb3duUHRyLmdldCgpOwotICAgIHNldC5hZGQoV1RG
Ojptb3ZlKG93blB0cikpOwotCi0gICAgYXV0byBpdCA9IHNldC5maW5kKHB0cik7Ci0gICAgQVNT
RVJUX1RSVUUoaXQgIT0gc2V0LmVuZCgpKTsKLSAgICBFWFBFQ1RfRVEocHRyLCBpdC0+Z2V0KCkp
OwotICAgIEVYUEVDVF9FUSg1LCAqaXQtPmdldCgpKTsKLX0KLQotVEVTVChXVEZfSGFzaFNldCwg
T3duUHRyS2V5X0NvbnRhaW5zVXNpbmdSYXdQb2ludGVyKQotewotICAgIEhhc2hTZXQ8T3duUHRy
PGludD4+IHNldDsKLQotICAgIE93blB0cjxpbnQ+IG93blB0ciA9IGFkb3B0UHRyKG5ldyBpbnQo
NSkpOwotICAgIGludCogcHRyID0gb3duUHRyLmdldCgpOwotICAgIHNldC5hZGQoV1RGOjptb3Zl
KG93blB0cikpOwotCi0gICAgRVhQRUNUX0VRKHRydWUsIHNldC5jb250YWlucyhwdHIpKTsKLX0K
LQotVEVTVChXVEZfSGFzaFNldCwgT3duUHRyS2V5X1JlbW92ZVVzaW5nUmF3UG9pbnRlcikKLXsK
LSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpUZXN0aW5nU2NvcGUgc2NvcGU7Ci0K
LSAgICBIYXNoU2V0PE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyPj4gc2V0Owot
Ci0gICAgT3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI+IG93blB0ciA9IGFkb3B0
UHRyKG5ldyBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKTsKLSAgICBDb25zdHJ1Y3RvckRl
c3RydWN0b3JDb3VudGVyKiBwdHIgPSBvd25QdHIuZ2V0KCk7Ci0gICAgc2V0LmFkZChXVEY6Om1v
dmUob3duUHRyKSk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNv
dW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEoMHUsIENvbnN0cnVjdG9y
RGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotCi0gICAgYm9vbCByZXN1bHQg
PSBzZXQucmVtb3ZlKHB0cik7Ci0gICAgRVhQRUNUX0VRKHRydWUsIHJlc3VsdCk7Ci0KLSAgICBF
WFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNv
dW50KTsKLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRl
c3RydWN0aW9uQ291bnQpOwotfQotCi1URVNUKFdURl9IYXNoU2V0LCBPd25QdHJLZXlfVGFrZVVz
aW5nUmF3UG9pbnRlcikKLXsKLSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpUZXN0
aW5nU2NvcGUgc2NvcGU7Ci0KLSAgICBIYXNoU2V0PE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0
b3JDb3VudGVyPj4gc2V0OwotCi0gICAgT3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50
ZXI+IG93blB0ciA9IGFkb3B0UHRyKG5ldyBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKTsK
LSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKiBwdHIgPSBvd25QdHIuZ2V0KCk7Ci0g
ICAgc2V0LmFkZChXVEY6Om1vdmUob3duUHRyKSk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0
cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1Rf
RVEoMHUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwot
Ci0gICAgYXV0byByZXN1bHQgPSBzZXQudGFrZShwdHIpOwotICAgIEVYUEVDVF9FUShwdHIsIHJl
c3VsdC5nZXQoKSk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNv
dW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEoMHUsIENvbnN0cnVjdG9y
RGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotCi0gICAgcmVzdWx0ID0gbnVs
bHB0cjsKLQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6
Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVj
dG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci19CiAKIFRFU1QoV1RGX0hhc2hTZXQsIFVu
aXF1ZVB0cktleSkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L3dpbi9XZWJWaWV3RGVzdHJ1Y3Rpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvd2luL1dlYlZpZXdEZXN0cnVjdGlvbi5jcHAKaW5kZXggYjU5YTg0Y2I0N2ExNWI3
NzY4NTUwMGQ0ZDBhM2NlYTNmYjc4M2QwOC4uY2NkYmM2MTA2NGUxYWEzODgzNGUzODRhZWQwYzNl
NWMwZTFkODRmNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
d2luL1dlYlZpZXdEZXN0cnVjdGlvbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvd2luL1dlYlZpZXdEZXN0cnVjdGlvbi5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0NPTVB0ci5oPgogI2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4KICNp
bmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlLmNwcAppbmRleCA0ZjAwMWE3NjcyODIxMTRk
NmY3YTg2MjA2YzE0ZGRiYmM4Yzg3N2U3Li4xZTQ1MjUwNDk1YzM1YjQ5ZDZkODZmOGMwMzEwNmE1
OWMxODlmMzUxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
VXNlck1lc3NhZ2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9V
c2VyTWVzc2FnZS5jcHAKQEAgLTMxLDggKzMxLDYgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCi0jaW5jbHVkZSA8d3RmL093
blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKIApAQCAtNDUsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0OwotICAgIE93blB0cjxQbGF0Zm9ybVdlYlZpZXc+
IHdlYlZpZXc7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gd2ViVmlldzsK
IAogICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gcmVjaWV2ZWRCb2R5OwogCkBAIC05NSw3ICs5
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29u
dGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiVXNlck1lc3NhZ2VUZXN0IikpOwogICAgICAgICBz
ZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCB0aGlzKTsKIAotICAgICAgICB3
ZWJWaWV3ID0gYWRvcHRQdHIobmV3IFBsYXRmb3JtV2ViVmlldyhjb250ZXh0LmdldCgpKSk7Cisg
ICAgICAgIHdlYlZpZXcgPSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtV2ViVmlldz4oY29udGV4
dC5nZXQoKSk7CiAgICAgICAgIHNldFBhZ2VMb2FkZXJDbGllbnQod2ViVmlldy0+cGFnZSgpLCB0
aGlzKTsKIAogICAgICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbExvYWQuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxMb2FkLmNwcAppbmRleCA3NGIyMzkxMWUwMGNhNjZk
ZWY1MDhmOTcwMzAzMzE4MjNjODE3N2E4Li44M2Q2M2FiMThiY2NhMTEzOWNiMWUxOWQyOTkxOWM2
ZmIyMjhmNGUwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
V2lsbExvYWQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxs
TG9hZC5jcHAKQEAgLTMxLDggKzMxLDYgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKIApAQCAtNDQsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0OwotICAgIE93blB0cjxQbGF0Zm9ybVdlYlZpZXc+IHdlYlZp
ZXc7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gd2ViVmlldzsKIAogICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZTsKICAgICBXS1JldGFpblB0cjxX
S1R5cGVSZWY+IG1lc3NhZ2VCb2R5OwpAQCAtNzQsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRl
c3QoIldpbGxMb2FkVGVzdCIpKTsKICAgICAgICAgc2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29u
dGV4dC5nZXQoKSwgdGhpcyk7CiAKLSAgICAgICAgd2ViVmlldyA9IGFkb3B0UHRyKG5ldyBQbGF0
Zm9ybVdlYlZpZXcoY29udGV4dC5nZXQoKSkpOworICAgICAgICB3ZWJWaWV3ID0gc3RkOjptYWtl
X3VuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgICAgIGRpZFJl
Y2VpdmVNZXNzYWdlID0gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTURPTVdpbmRvd1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTURPTVdpbmRvd1Rlc3QuY3BwCmluZGV4IDI1ODRj
MjBmZTQ1NzNkMTJkMGQ1MTgyMTI1NGJmMGU2YjM0Y2I1M2YuLmZjOGNlZmI1MjlkMTM3ZTY1NmRl
ZWMyNzk1YTcxY2NjNGI0Mjg3NzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9ET01ET01XaW5kb3dUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NRE9NV2luZG93VGVzdC5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAgc3RhdGljIGdib29sZWFuIGNsaWNrZWRDYWxsYmFjayhXZWJLaXRET01ET01XaW5kb3cqLCBX
ZWJLaXRET01FdmVudCosIFdlYktpdERPTUQKIAogY2xhc3MgV2ViS2l0RE9NRE9NV2luZG93VGVz
dCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJLaXRE
T01ET01XaW5kb3dUZXN0KCkpOyB9CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9j
ZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXRET01ET01X
aW5kb3dUZXN0PigpOyB9CiAKIHByaXZhdGU6CiAgICAgZ3VpbnQ2NCB3ZWJQYWdlRnJvbUFyZ3Mo
R1ZhcmlhbnQqIGFyZ3MpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKaW5kZXggMDZjNGU1ZWE0NjhmMGIwYzM0
ZjM0YzFlNjFhMjk4MzEwMGE5ZDk5Yi4uNTY2N2ZhOGIzODQwOWM4YjBiZmMwYjRmNjkyODM4NGNk
ZTc4ZTQ5MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1dlYkV4dGVuc2lvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUg
PHN0cmluZy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4KICNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAjaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIu
aD4KQEAgLTgzLDcgKzgxLDcgQEAgc3RydWN0IERlbGF5ZWRTaWduYWwgewogICAgIENTdHJpbmcg
dXJpOwogfTsKIAotRGVxdWU8T3duUHRyPERlbGF5ZWRTaWduYWw+PiBkZWxheWVkU2lnbmFsc1F1
ZXVlOworRGVxdWU8RGVsYXllZFNpZ25hbD4gZGVsYXllZFNpZ25hbHNRdWV1ZTsKIAogc3RhdGlj
IHZvaWQgZW1pdERvY3VtZW50TG9hZGVkKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsK
QEAgLTExNSw3ICsxMTMsNyBAQCBzdGF0aWMgdm9pZCBkb2N1bWVudExvYWRlZENhbGxiYWNrKFdl
YktpdFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdFdlYkV4dGVuc2lvbiogZQogICAgIGlmIChkYXRh
KQogICAgICAgICBlbWl0RG9jdW1lbnRMb2FkZWQoR19EQlVTX0NPTk5FQ1RJT04oZGF0YSkpOwog
ICAgIGVsc2UKLSAgICAgICAgZGVsYXllZFNpZ25hbHNRdWV1ZS5hcHBlbmQoYWRvcHRQdHIobmV3
IERlbGF5ZWRTaWduYWwoRG9jdW1lbnRMb2FkZWRTaWduYWwpKSk7CisgICAgICAgIGRlbGF5ZWRT
aWduYWxzUXVldWUuYXBwZW5kKERlbGF5ZWRTaWduYWwoRG9jdW1lbnRMb2FkZWRTaWduYWwpKTsK
IH0KIAogc3RhdGljIHZvaWQgZW1pdFVSSUNoYW5nZWQoR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBjb25zdCBjaGFyKiB1cmkpCkBAIC0xMzcsNyArMTM1LDcgQEAgc3RhdGljIHZvaWQgdXJp
Q2hhbmdlZENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIEdQYXJhbVNwZWMqIHBzcGVj
LCBXZWJLaXQKICAgICBpZiAoZGF0YSkKICAgICAgICAgZW1pdFVSSUNoYW5nZWQoR19EQlVTX0NP
Tk5FQ1RJT04oZGF0YSksIHdlYmtpdF93ZWJfcGFnZV9nZXRfdXJpKHdlYlBhZ2UpKTsKICAgICBl
bHNlCi0gICAgICAgIGRlbGF5ZWRTaWduYWxzUXVldWUuYXBwZW5kKGFkb3B0UHRyKG5ldyBEZWxh
eWVkU2lnbmFsKFVSSUNoYW5nZWRTaWduYWwsIHdlYmtpdF93ZWJfcGFnZV9nZXRfdXJpKHdlYlBh
Z2UpKSkpOworICAgICAgICBkZWxheWVkU2lnbmFsc1F1ZXVlLmFwcGVuZChEZWxheWVkU2lnbmFs
KFVSSUNoYW5nZWRTaWduYWwsIHdlYmtpdF93ZWJfcGFnZV9nZXRfdXJpKHdlYlBhZ2UpKSk7CiB9
CiAKIHN0YXRpYyBnYm9vbGVhbiBzZW5kUmVxdWVzdENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqLCBX
ZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXRVUklSZXNwb25zZSogcmVkaXJlY3RSZXNw
b25zZSwgZ3BvaW50ZXIpCkBAIC0zMzAsMTMgKzMyOCwxMyBAQCBzdGF0aWMgdm9pZCBidXNBY3F1
aXJlZENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgY2hhciogbmFt
ZSwgZwogCiAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QodXNlckRhdGEpLCAiZGJ1cy1j
b25uZWN0aW9uIiwgY29ubmVjdGlvbik7CiAgICAgd2hpbGUgKGRlbGF5ZWRTaWduYWxzUXVldWUu
c2l6ZSgpKSB7Ci0gICAgICAgIE93blB0cjxEZWxheWVkU2lnbmFsPiBkZWxheWVkU2lnbmFsID0g
ZGVsYXllZFNpZ25hbHNRdWV1ZS50YWtlRmlyc3QoKTsKLSAgICAgICAgc3dpdGNoIChkZWxheWVk
U2lnbmFsLT50eXBlKSB7CisgICAgICAgIERlbGF5ZWRTaWduYWwgZGVsYXllZFNpZ25hbCA9IGRl
bGF5ZWRTaWduYWxzUXVldWUudGFrZUZpcnN0KCk7CisgICAgICAgIHN3aXRjaCAoZGVsYXllZFNp
Z25hbC50eXBlKSB7CiAgICAgICAgIGNhc2UgRG9jdW1lbnRMb2FkZWRTaWduYWw6CiAgICAgICAg
ICAgICBlbWl0RG9jdW1lbnRMb2FkZWQoY29ubmVjdGlvbik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBVUklDaGFuZ2VkU2lnbmFsOgotICAgICAgICAgICAgZW1pdFVSSUNoYW5n
ZWQoY29ubmVjdGlvbiwgZGVsYXllZFNpZ25hbC0+dXJpLmRhdGEoKSk7CisgICAgICAgICAgICBl
bWl0VVJJQ2hhbmdlZChjb25uZWN0aW9uLCBkZWxheWVkU2lnbmFsLnVyaS5kYXRhKCkpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251542</attachid>
            <date>2015-04-23 23:21:29 -0700</date>
            <delta_ts>2015-04-24 08:47:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128007-20150423232024.patch</filename>
            <type>text/plain</type>
            <size>96892</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY3YTVhY2QxMjhhZmZmYTEwZjI0OTU4
OGZmYjRlMGZkNjYzN2E1OGYuLmMxZGMzMTM2ZjBhOTFkZjhlN2Y5NDY5ZTE1ZmJkYzA3OGNkNzc2
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDQtMjMgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIENvbnZlcnQgT3duUHRyIGFuZCBQYXNzT3duUHRyIHVzZXMg
dG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjgwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qOiBSZW1vdmVkIE93blB0ciBzb3Vy
Y2UgZmlsZXMuCisgICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVyczogRGl0
dG8uCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAg
ICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogRGl0dG8uCisKKyAgICAgICAgKiB3dGYvRm9yd2Fy
ZC5oOiBSZW1vdmVkIE93blB0ciBhbmQgUGFzc093blB0ci4KKyAgICAgICAgKiB3dGYvSGFzaFRy
YWl0cy5oOiBEaXR0by4KKworICAgICAgICAqIHd0Zi9Pd25QdHIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3dGYvT3duUHRyQ29tbW9uLmg6IFJlbW92ZWQuCisgICAgICAgICogd3RmL1Bhc3NPd25Q
dHIuaDogUmVtb3ZlZC4KKworICAgICAgICAqIHd0Zi9TaXplTGltaXRzLmNwcDogUmVtb3ZlZCBP
d25QdHIuCisgICAgICAgICogd3RmL1ZlY3RvclRyYWl0cy5oOiBSZW1vdmVkIE93blB0ciBzcGVj
aWFsaXphdGlvbi4KKwogMjAxNS0wNC0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBXZWJLaXQgc2VydmljZXMgc2hvdWxkIGluaGVyaXQgZW52
aXJvbm1lbnQgdmFyaWFibGVzIGZvciBob21lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA3YzJkZjE1MjNjN2Vh
NTEwYzQ2ZWE0MDg1Njc1ZTU2NmE0MzhjOS4uZmUxNjE4M2UxNTIzYjQ3ZDVjYmRmZWI3YzhlY2Zk
MjQ4ZDM1OGM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE1LTA0LTIzICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IE93blB0ciBhbmQg
UGFzc093blB0ciB1c2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogUmVtb3ZlZCBP
d25QdHJDYWlybyBzb3VyY2UgZmlsZXMuCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERp
dHRvLgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8uY21ha2U6IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHA6IFJlbW92ZWQgT3duUHRyIHNwZWNpYWxpemF0
aW9uLgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmg6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcDogUmVtb3ZlZCB1bm5lZWRl
ZCBpbmNsdWRlLgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmg6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0
aW9uQ0YuaDogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QVZGV3JhcHBlcjo6cHJvY2Vzc05vdGlmaWNhdGlvbik6IFVzZSB1bmlxdWVfcHRyLgor
ICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bm90aWZpY2F0aW9uQ2FsbGJhY2spOiBVc2Ug
bWFrZV91bmlxdWUuCisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFwcGVyOjpwbGF0Zm9ybUxheWVy
KTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxp
dGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRQYXRoVG9DYWlyb0NvbnRleHQpOiBV
c2UgY2Fpcm9fcGF0aF9kZXN0cm95IGRpcmVjdGx5CisgICAgICAgIGluc3RlYWQgb2YgYSBzbWFy
dCBwb2ludGVyOyB0aGUgY29kZSBwYXRoIGlzIHNpbXBsZSBlbm91Z2ggdGhhdCBpdCBpcworICAg
ICAgICBjbGVhciB0aGlzIHdheS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKTogVXNlIG1ha2VfdW5pcXVlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmg6IFVzZSB1bmlxdWVfcHRyLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmg6IFJlbW92ZWQuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGF0aDo6UGF0aCk6IFVzZSBjYWlyb19wYXRoX2Rlc3Ryb3kgZGlyZWN0bHkg
aW5zdGVhZCBvZiBhCisgICAgICAgIHNtYXJ0IHBvaW50ZXI7IHRoZSBjb2RlIHBhdGggaXMgc2lt
cGxlIGVub3VnaCB0aGF0IGl0IGlzIGNsZWFyIHRoaXMgd2F5LgorICAgICAgICAoV2ViQ29yZTo6
UGF0aDo6b3BlcmF0b3I9KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphZGRQYXRo
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphcHBseSk6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxp
bmcpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRD
YWNoZUZyZWVUeXBlLmNwcDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwOiBEaXR0by4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVHTE9mZlNjcmVlblN1cmZhY2U6OkVHTE9mZlNjcmVlblN1cmZhY2UpOiBVc2Ug
bWFrZV91bmlxdWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYQ29uZmlnU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdMWENvbmZpZ1NlbGVjdG9y
OjpmaW5kTWF0Y2hpbmdDb25maWcpOiBVc2UgdW5pcXVlX3B0ciB3aXRoIFgxMURlbGV0ZXIuCisg
ICAgICAgIChXZWJDb3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6ZmluZE1hdGNoaW5nQ29uZmlnV2l0
aFZpc3VhbElkKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xYVHJhbnNwb3J0U3VyZmFj
ZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R0xYT2Zm
U2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oOiBSZW1vdmVkLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRvdyk6IFVzZSB1bmlxdWVfcHRy
IHdpdGggWDExRGVsZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OlgxMUhlbHBlcjo6Y3JlYXRlUGl4
bWFwKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
WDExSGVscGVyLmg6IEFkZGVkIFgxMURlbGV0ZXIsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2Vk
IHdpdGggdW5pcXVlX3B0ciB0byBtYWtlIGl0IGNhbGwgWEZyZWUgaW5zdGVhZCBvZiBkZWxldGUu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIu
Y3BwOiBVc2UgdW5pcXVlX3B0ci4KKyAgICAgICAgKEZ1bGxTY3JlZW5Db250cm9sbGVyOjpGdWxs
U2NyZWVuQ29udHJvbGxlcik6IFVzZSBtYWtlX3VuaXF1ZS4KKyAgICAgICAgKEZ1bGxTY3JlZW5D
b250cm9sbGVyOjplbnRlckZ1bGxTY3JlZW4pOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0M0RXaW4uY3BwOiBS
ZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1dLQ0FJbWFnZVF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldLQ0FJbWFnZVF1ZXVl
OjpXS0NBSW1hZ2VRdWV1ZSk6IFVzZSBtYWtlX3VuaXF1ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwOiBSZW1vdmVk
IHVubmVlZGVkIGluY2x1ZGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11bHRp
cGFydEhhbmRsZTo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmg6IERlbGV0ZWQgdGhlIGNyZWF0ZSBmdW5jdGlvbi4KKwor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aGVhZGVyQ2FsbGJhY2spOiBVc2UgbWFrZV91bmlxdWUuCisK
IDIwMTUtMDQtMjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCB0aGUgaU9TIGJ1aWxkIGFmdGVyIHIxODMyMzQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJv
agppbmRleCAyM2E4MWU4Y2MyODQ3ODUyZjNiYTRmNjY4MGQxZGVlZGJjNDYxYzBhLi42YWE0NzNk
ZmU2N2FkNGQyOTVhYjM4N2JmN2QxYmM0ZGJkMWJkOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RG
LnZjeHByb2oKQEAgLTIzNyw4ICsyMzcsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXE5vbmNvcHlhYmxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTnVt
YmVyT2ZDb3Jlcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXE9TUmFuZG9t
U291cmNlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcT3duUHRyLmgiIC8+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcT3duUHRyQ29tbW9uLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFja2VkSW50VmVjdG9yLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFnZUFsbG9jYXRpb24uaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYWdlQmxvY2suaCIgLz4KQEAgLTI0Nyw3ICsyNDUsNiBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhcmFsbGVsSm9ic0dlbmVyaWMuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhcmFsbGVsSm9ic09wZW5NUC5o
IiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhc3NPd25QdHIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYXNzUmVmUHRyLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcUGxhdGZvcm0uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHd0ZlxQcmludFN0cmVhbS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
dmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYu
dmN4cHJvai5maWx0ZXJzCmluZGV4IGQ0ZmVjMmY3MTNiY2ZmOGM3NTA0NWNjZWFjNzIwZGMxYzVj
YWQ2YjEuLmZhZTEwNjkyNjNhZTc4MmY1YjU4NTNkNWIxMzIxNzM5ZDIzNWEzZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKQEAgLTUyOCwxMiArNTI4LDYg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxPU1JhbmRvbVNvdXJjZS5oIj4KICAg
ICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3dGZcT3duUHRyLmgiPgotICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4K
LSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxPd25QdHJD
b21tb24uaCI+Ci0gICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhY2tlZEludFZlY3Rvci5oIj4KICAgICAg
IDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC01NTgsOSArNTUyLDYg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYXJhbGxlbEpvYnNPcGVuTVAuaCI+
CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhc3NPd25QdHIuaCI+Ci0gICAgICA8RmlsdGVyPnd0Zjwv
RmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XFBhc3NSZWZQdHIuaCI+CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTQwNWQ2
ZGE0YWM1ZmVmMTRmMTVlN2Q0MzEzODU5MWVjNmYzMmJjOS4uYTAzODc4M2RmMjYwODM3Zjc0YzY5
YTIwZDY3MjMzNWU1MmRkMzgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xODUsOCArMTg1LDYgQEAKIAkJQThBNDczRjcxNTFBODI1QjAwNDEyM0ZGIC8q
IE9TQWxsb2NhdG9yUG9zaXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDcyRDgxNTFBODI1QjAwNDEyM0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXgu
Y3BwICovOyB9OwogCQlBOEE0NzNGOTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcy
REExNTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLzsgfTsKIAkJQThBNDcz
RkExNTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJEQjE1MUE4MjVCMDA0MTIzRkYgLyog
T1NSYW5kb21Tb3VyY2UuaCAqLzsgfTsKLQkJQThBNDczRkMxNTFBODI1QjAwNDEyM0ZGIC8qIE93
blB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDcyREQxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ci5oICovOyB9OwotCQlBOEE0NzNGRDE1MUE4
MjVCMDA0MTIzRkYgLyogT3duUHRyQ29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJERTE1MUE4MjVCMDA0MTIzRkYgLyogT3duUHRyQ29t
bW9uLmggKi87IH07CiAJCUE4QTQ3M0ZFMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3
MkRGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0b3IuaCAqLzsgfTsKIAkJQThBNDcz
RkYxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VBbGxvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJFMDE1MUE4MjVCMDA0MTIzRkYgLyog
UGFnZUFsbG9jYXRpb24uaCAqLzsgfTsKIAkJQThBNDc0MDIxNTFBODI1QjAwNDEyM0ZGIC8qIFBh
Z2VCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEE0NzJFMzE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUJsb2NrLmNwcCAqLzsgfTsKQEAgLTE5
NCw3ICsxOTIsNiBAQAogCQlBOEE0NzQwNDE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZVJlc2VydmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0
NzJFNTE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZVJlc2VydmF0aW9uLmggKi87IH07CiAJCUE4QTQ3
NDA1MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkU2MTUxQTgyNUIwMDQxMjNGRiAvKiBQ
YXJhbGxlbEpvYnMuaCAqLzsgfTsKIAkJQThBNDc0MDgxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFs
bGVsSm9ic0xpYmRpc3BhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEE0NzJFOTE1MUE4MjVCMDA0MTIzRkYgLyogUGFyYWxsZWxKb2JzTGliZGlz
cGF0Y2guaCAqLzsgfTsKLQkJQThBNDc0MEIxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NPd25QdHIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkVD
MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzT3duUHRyLmggKi87IH07CiAJCUE4QTQ3NDBDMTUxQTgy
NUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJFRDE1MUE4MjVCMDA0MTIzRkYgLyogUGFzc1JlZlB0ci5o
ICovOyB9OwogCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkZCMTUx
QTgyNUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuY3BwICovOyB9OwogCQlBOEE0NzQxNTE1MUE4
MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJGQzE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVt
YmVyLmggKi87IH07CkBAIC00NzYsOCArNDczLDYgQEAKIAkJQThBNDcyRDgxNTFBODI1QjAwNDEy
M0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gT1NBbGxvY2F0b3JQb3NpeC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4QTQ3MkRBMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPU1JhbmRvbVNvdXJjZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkRCMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1Jh
bmRvbVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPU1JhbmRvbVNv
dXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJERDE1MUE4MjVCMDA0
MTIzRkYgLyogT3duUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE93blB0
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJERTE1MUE4MjVCMDA0MTIz
RkYgLyogT3duUHRyQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE93
blB0ckNvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJERjE1MUE4
MjVCMDA0MTIzRkYgLyogUGFja2VkSW50VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhY2tlZEludFZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE0NzJFMDE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUFsbG9jYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUFsbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VCbG9jay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQmxvY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg1LDcgKzQ4MCw2IEBACiAJCUE4QTQ3MkU1MTUx
QTgyNUIwMDQxMjNGRiAvKiBQYWdlUmVzZXJ2YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFnZVJlc2VydmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4QTQ3MkU2MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyYWxsZWxKb2JzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4QTQ3MkU5MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnNMaWJk
aXNwYXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJhbGxlbEpvYnNM
aWJkaXNwYXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzJFQzE1MUE4
MjVCMDA0MTIzRkYgLyogUGFzc093blB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXNzT3duUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkVE
MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhc3NSZWZQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThB
NDcyRkIxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5kb21OdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBOEE0NzJGQzE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmRvbU51bWJlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzk1LDggKzc4OSw2IEBACiAJCQkJQThBNDcyREExNTFB
ODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLywKIAkJCQlBOEE0NzJEQjE1MUE4
MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2UuaCAqLywKIAkJCQkxQUZERTY1MjE5NTNCMjNE
MDBDNDhGRkEgLyogT3B0aW9uYWwuaCAqLywKLQkJCQlBOEE0NzJERDE1MUE4MjVCMDA0MTIzRkYg
LyogT3duUHRyLmggKi8sCi0JCQkJQThBNDcyREUxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ckNv
bW1vbi5oICovLAogCQkJCUE4QTQ3MkRGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0
b3IuaCAqLywKIAkJCQlBOEE0NzJFMDE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUFsbG9jYXRpb24u
aCAqLywKIAkJCQlBOEE0NzJFMzE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUJsb2NrLmNwcCAqLywK
QEAgLTgwNCw3ICs3OTYsNiBAQAogCQkJCUE4QTQ3MkU1MTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdl
UmVzZXJ2YXRpb24uaCAqLywKIAkJCQlBOEE0NzJFNjE1MUE4MjVCMDA0MTIzRkYgLyogUGFyYWxs
ZWxKb2JzLmggKi8sCiAJCQkJQThBNDcyRTkxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9i
c0xpYmRpc3BhdGNoLmggKi8sCi0JCQkJQThBNDcyRUMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NP
d25QdHIuaCAqLywKIAkJCQlBOEE0NzJFRDE1MUE4MjVCMDA0MTIzRkYgLyogUGFzc1JlZlB0ci5o
ICovLAogCQkJCUE4NzZEQkQ3MTUxODE2RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oICovLAogCQkJ
CTBGOUQzMzVEMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgKi8sCkBAIC0xMTMx
LDggKzExMjIsNiBAQAogCQkJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGlt
ZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRjYxNTFBODI1QjAwNDEyM0ZGIC8q
IE9TQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNGQTE1MUE4MjVCMDA0MTIz
RkYgLyogT1NSYW5kb21Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3M0ZDMTUxQTgy
NUIwMDQxMjNGRiAvKiBPd25QdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3M0ZEMTUxQTgy
NUIwMDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE0RTFC
MTgxMEUxREMwMDlCNkI0RCAvKiBCYWdUb0hhc2hNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3M0ZFMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3M0ZGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQWxsb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMTQwLDcgKzExMjksNiBAQAogCQkJCUE4QTQ3NDA0MTUxQTgyNUIwMDQx
MjNGRiAvKiBQYWdlUmVzZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDA1MTUx
QTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3
NDA4MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQThBNDc0MEIxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NPd25QdHIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QTQ3NDBDMTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODc2REJEODE1MTgxNkU1MDBEQURCOTUgLyogUGxhdGZvcm0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE0RTE5MTgwRkEyMTgwMDlCNkI0RCAvKiBCYWcuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCBjN2I0Mjg1MjgxZGM5ZTI0MDNk
MTVmNGQxMTBlMzM0ZTE0ODlkOWFkLi44NjIzYmFjYTBjYWQ0NjI3NWUwZjkzNzZhZTAwN2ZmMWQ0
MzA5NTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNTUsOCArNTUsNiBAQCBzZXQoV1RGX0hF
QURFUlMKICAgICBOdW1iZXJPZkNvcmVzLmgKICAgICBPU0FsbG9jYXRvci5oCiAgICAgT1NSYW5k
b21Tb3VyY2UuaAotICAgIE93blB0ci5oCi0gICAgT3duUHRyQ29tbW9uLmgKICAgICBQYWdlQWxs
b2NhdGlvbi5oCiAgICAgUGFnZUJsb2NrLmgKICAgICBQYWdlUmVzZXJ2YXRpb24uaApAQCAtNjQs
NyArNjIsNiBAQCBzZXQoV1RGX0hFQURFUlMKICAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmgKICAg
ICBQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5oCiAgICAgUGFyYWxsZWxKb2JzT3Blbk1QLmgKLSAg
ICBQYXNzT3duUHRyLmgKICAgICBQYXNzUmVmUHRyLmgKICAgICBQbGF0Zm9ybS5oCiAgICAgUHJp
bnRTdHJlYW0uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDZhZWZhMWRlZjJjZGYwODk0MjNjZTBkMTJmY2YyZGQ1
NTY4NzllMTguLjM5NTIwYWFmNGExNjY0NjBjN2RkYThhYWNkODk4ZDgxMzM1MjlhZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmgKQEAgLTI4LDggKzI4LDYgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBjbGFzcyBGdW5jdGlvbjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZl
ckRlc3Ryb3llZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkOwot
dGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwotdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Y2xhc3MgUGFzc093blB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NSZWZQdHI7
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZQdHI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBSZWY7CkBAIC02NSw4ICs2Myw2IEBAIHVzaW5nIFdURjo6RnVuY3Rpb25EaXNwYXRj
aGVyOwogdXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Ok5ldmVyRGVz
dHJveWVkOwogdXNpbmcgV1RGOjpPcmRpbmFsTnVtYmVyOwotdXNpbmcgV1RGOjpPd25QdHI7Ci11
c2luZyBXVEY6OlBhc3NPd25QdHI7CiB1c2luZyBXVEY6OlBhc3NSZWZQdHI7CiB1c2luZyBXVEY6
OlByaW50U3RyZWFtOwogdXNpbmcgV1RGOjpSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9IYXNoVHJhaXRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVHJhaXRzLmgKaW5kZXggZTQ3YWE4
YjVmODZiNGJmZGVlOWU5MjMyY2MyMGRmNWE5ZTgxZjNjZC4uZmNhMzVmMzk5ZGZkMGExZGRkZjNi
YjgzOGQ3MzA4ODYzZDc1ZTFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRyYWl0
cy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaApAQCAtMzAsOCArMzAsNiBAQCBu
YW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgU3RyaW5nOwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBPd25QdHI7Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwog
CiB0ZW1wbGF0ZTxib29sIGlzSW50ZWdlciwgdHlwZW5hbWUgVD4gc3RydWN0IEdlbmVyaWNIYXNo
VHJhaXRzQmFzZTsKQEAgLTEyMCwxNyArMTE4LDggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgRGVsZXRlcj4gc3RydWN0IEhhc2hUcmFpdHM8c3RkOjp1bmlxdWVfcHRyPFQsIERlbGUK
ICAgICBzdGF0aWMgVCogcGVlayhzdGQ6Om51bGxwdHJfdCkgeyByZXR1cm4gbnVsbHB0cjsgfQog
fTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFpdHM8T3duUHRyPFQ+PiA6
IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxPd25QdHI8VD4+IHsKLSAgICB0eXBlZGVmIHN0ZDo6bnVs
bHB0cl90IEVtcHR5VmFsdWVUeXBlOwotICAgIHN0YXRpYyBFbXB0eVZhbHVlVHlwZSBlbXB0eVZh
bHVlKCkgeyByZXR1cm4gbnVsbHB0cjsgfQotCi0gICAgdHlwZWRlZiBUKiBQZWVrVHlwZTsKLSAg
ICBzdGF0aWMgVCogcGVlayhjb25zdCBPd25QdHI8VD4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5n
ZXQoKTsgfQotICAgIHN0YXRpYyBUKiBwZWVrKHN0ZDo6bnVsbHB0cl90KSB7IHJldHVybiBudWxs
cHRyOyB9Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1Y3QgSGFzaFRyYWl0czxSZWZQ
dHI8UD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFJlZlB0cjxQPj4gewotICAgIHN0YXRpYyBQ
KiBlbXB0eVZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBQKiBlbXB0eVZhbHVlKCkg
eyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgdHlwZWRlZiBQKiBQZWVrVHlwZTsKICAgICBzdGF0
aWMgUGVla1R5cGUgcGVlayhjb25zdCBSZWZQdHI8UD4mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3duUHRyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Pd25QdHIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE3MDFhNDhiNWI3
NTNiOTIwOWJhNmQ5YWQwZDllNmFlNWY0MDdjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHIuaAorKysgL2Rldi9udWxs
CkBAIC0xLDIzMCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotCi0jaWZuZGVmIFdURl9Pd25QdHJfaAotI2RlZmluZSBXVEZfT3duUHRyX2gKLQot
I2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxjc3RkZGVmPgotI2luY2x1ZGUgPG1lbW9y
eT4KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+
Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+Ci0j
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ckNvbW1vbi5o
PgotCi1uYW1lc3BhY2UgV1RGIHsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBh
c3NPd25QdHI7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUGFzc093blB0cjxUPiBhZG9wdFB0
cihUKik7Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPd25QdHIgewotICAgIHB1
YmxpYzoKLSAgICAgICAgdHlwZWRlZiBUIFZhbHVlVHlwZTsKLSAgICAgICAgdHlwZWRlZiBWYWx1
ZVR5cGUqIFB0clR5cGU7Ci0KLSAgICAgICAgT3duUHRyKCkgOiBtX3B0cigwKSB7IH0KLSAgICAg
ICAgT3duUHRyKHN0ZDo6bnVsbHB0cl90KSA6IG1fcHRyKDApIHsgfQotCi0gICAgICAgIC8vIFNl
ZSBjb21tZW50IGluIFBhc3NPd25QdHIuaCBmb3Igd2h5IHRoaXMgdGFrZXMgYSBjb25zdCByZWZl
cmVuY2UuCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE93blB0cihjb25zdCBQYXNzT3du
UHRyPFU+JiBvKTsKLQotICAgICAgICB+T3duUHRyKCkgeyBkZWxldGVPd25lZFB0cihtX3B0cik7
IH0KLQotICAgICAgICBQdHJUeXBlIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0KLSAg
ICAgICAgdm9pZCBjbGVhcigpOwotICAgICAgICBQYXNzT3duUHRyPFQ+IHJlbGVhc2UoKTsKLSAg
ICAgICAgUHRyVHlwZSBsZWFrUHRyKCkgV0FSTl9VTlVTRURfUkVUVVJOOwotCi0gICAgICAgIFZh
bHVlVHlwZSYgb3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gKm1fcHRy
OyB9Ci0gICAgICAgIFB0clR5cGUgb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNTRVJUKG1fcHRyKTsg
cmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVy
biAhbV9wdHI7IH0KLQotICAgICAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxsb3dz
IGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIgdHlw
ZXMuCi0gICAgICAgIHR5cGVkZWYgUHRyVHlwZSBPd25QdHI6OipVbnNwZWNpZmllZEJvb2xUeXBl
OwotICAgICAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1cm4g
bV9wdHIgPyAmT3duUHRyOjptX3B0ciA6IDA7IH0KLQotICAgICAgICBPd25QdHImIG9wZXJhdG9y
PShjb25zdCBQYXNzT3duUHRyPFQ+Jik7Ci0gICAgICAgIE93blB0ciYgb3BlcmF0b3I9KHN0ZDo6
bnVsbHB0cl90KSB7IGNsZWFyKCk7IHJldHVybiAqdGhpczsgfQotICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBPd25QdHImIG9wZXJhdG9yPShjb25zdCBQYXNzT3duUHRyPFU+Jik7Ci0KLSAg
ICAgICAgT3duUHRyKE93blB0ciYmKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gT3du
UHRyKE93blB0cjxVPiYmKTsKLQotICAgICAgICBPd25QdHImIG9wZXJhdG9yPShPd25QdHImJik7
Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE93blB0ciYgb3BlcmF0b3I9KE93blB0cjxV
PiYmKTsKLQotICAgICAgICAvLyBIYXNoIHRhYmxlIGRlbGV0ZWQgdmFsdWVzLCB3aGljaCBhcmUg
b25seSBjb25zdHJ1Y3RlZCBhbmQgbmV2ZXIgY29waWVkIG9yIGRlc3Ryb3llZC4KLSAgICAgICAg
T3duUHRyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9wdHIoaGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkpIHsgfQotICAgICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9wdHIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KLQotICAgICAg
ICB2b2lkIHN3YXAoT3duUHRyJiBvKSB7IHN0ZDo6c3dhcChtX3B0ciwgby5tX3B0cik7IH0KLSAg
ICAgICAgCi0gICAgICAgIC8vIENvbnN0cnVjdCBhbiBvYmplY3QgdG8gc3RvcmUgaW50byB0aGlz
IE93blB0ciwgYnV0IG9ubHkgc28gbG9uZyBhcyB0aGlzIE93blB0cgotICAgICAgICAvLyBkb2Vz
bid0IGFscmVhZHkgcG9pbnQgdG8gYW4gb2JqZWN0LiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgYWZ0
ZXIgeW91IGNhbGwgdGhpcywKLSAgICAgICAgLy8gdGhlIE93blB0ciB3aWxsIHBvaW50IHRvIGFu
IGluc3RhbmNlIG9mIFQsIGV2ZW4gaWYgY2FsbGVkIGNvbmN1cnJlbnRseS4gVGhpcwotICAgICAg
ICAvLyBpbnN0YW5jZSBtYXkgb3IgbWF5IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCBieSB0aGlzIGNh
bGwuIE1vcmVvdmVyLCB0aGlzIGNhbGwgdXNlcwotICAgICAgICAvLyBhbiBvcHBvcnR1bmlzdGlj
IHRyYW5zYWN0aW9uLCBpbiB0aGF0IHdlIG1heSBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVCBhbmQg
dGhlbgotICAgICAgICAvLyBpbW1lZGlhdGVseSB0aHJvdyBpdCBhd2F5LCBpZiBpbiB0aGUgcHJv
Y2VzcyBvZiBjcmVhdGluZyB0aGF0IGluc3RhbmNlIHNvbWUKLSAgICAgICAgLy8gb3RoZXIgdGhy
ZWFkIHdhcyBkb2luZyB0aGUgc2FtZSB0aGluZyBhbmQgc3RvcmVkIGl0cyBpbnN0YW5jZSBpbnRv
IHRoaXMgcG9pbnRlcgotICAgICAgICAvLyBiZWZvcmUgd2UgaGFkIGEgY2hhbmNlIHRvIGRvIHNv
LgotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgotICAgICAgICB2b2lkIGNyZWF0
ZVRyYW5zYWN0aW9uYWxseShBcmdzLi4uKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxp
Y2l0IE93blB0cihQdHJUeXBlIHB0cikgOiBtX3B0cihwdHIpIHsgfQotCi0gICAgICAgIHN0YXRp
YyBQdHJUeXBlIGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8UHRyVHlwZT4oLTEpOyB9Ci0KLSAgICAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgdHdv
IE93blB0cnMgZm9yIHRoZSBzYW1lIHVuZGVybHlpbmcgb2JqZWN0IChvdGhlcndpc2Ugd2UnbGwg
Z2V0Ci0gICAgICAgIC8vIGRvdWJsZS1kZXN0cnVjdGlvbiksIHNvIHRoZXNlIGVxdWFsaXR5IG9w
ZXJhdG9ycyBzaG91bGQgbmV2ZXIgYmUgbmVlZGVkLgotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBib29sIG9wZXJhdG9yPT0oY29uc3QgT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCgh
c2l6ZW9mKFUqKSwgT3duUHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7
IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0IE93
blB0cjxVPiYpIHsgQ09NUElMRV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25l
dmVyX2JlX2VxdWFsKTsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VS
VCghc2l6ZW9mKFUqKSwgT3duUHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFs
c2U7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFBhc3NPd25QdHI8VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25QdHJzX3No
b3VsZF9uZXZlcl9iZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotCi0gICAgICAgIFB0clR5cGUg
bV9wdHI7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVu
YW1lIFU+IGlubGluZSBPd25QdHI8VD46Ok93blB0cihjb25zdCBQYXNzT3duUHRyPFU+JiBvKQot
ICAgICAgICA6IG1fcHRyKG8ubGVha1B0cigpKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBPd25QdHI8VD46OmNsZWFyKCkKLSAgICB7Ci0gICAg
ICAgIGRlbGV0ZU93bmVkUHRyKHN0ZDo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpKTsKLSAgICB9
Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUGFzc093blB0cjxUPiBPd25QdHI8
VD46OnJlbGVhc2UoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKHN0ZDo6ZXhjaGFu
Z2UobV9wdHIsIG51bGxwdHIpKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBp
bmxpbmUgdHlwZW5hbWUgT3duUHRyPFQ+OjpQdHJUeXBlIE93blB0cjxUPjo6bGVha1B0cigpCi0g
ICAgewotICAgICAgICByZXR1cm4gc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cik7Ci0gICAg
fQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIE93blB0cjxUPiYgT3duUHRyPFQ+
OjpvcGVyYXRvcj0oY29uc3QgUGFzc093blB0cjxUPiYgbykKLSAgICB7Ci0gICAgICAgIFB0clR5
cGUgcHRyID0gc3RkOjpleGNoYW5nZShtX3B0ciwgby5sZWFrUHRyKCkpOwotICAgICAgICBBU1NF
UlQoIXB0ciB8fCBtX3B0ciAhPSBwdHIpOwotICAgICAgICBkZWxldGVPd25lZFB0cihwdHIpOwot
ICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
dGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIE93blB0cjxUPiYgT3duUHRyPFQ+OjpvcGVyYXRv
cj0oY29uc3QgUGFzc093blB0cjxVPiYgbykKLSAgICB7Ci0gICAgICAgIFB0clR5cGUgcHRyID0g
c3RkOjpleGNoYW5nZShtX3B0ciwgby5sZWFrUHRyKCkpOwotICAgICAgICBBU1NFUlQoIXB0ciB8
fCBtX3B0ciAhPSBwdHIpOwotICAgICAgICBkZWxldGVPd25lZFB0cihwdHIpOwotICAgICAgICBy
ZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIE93
blB0cjxUPjo6T3duUHRyKE93blB0cjxUPiYmIG8pCi0gICAgICAgIDogbV9wdHIoby5sZWFrUHRy
KCkpCi0gICAgewotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5
cGVuYW1lIFU+IGlubGluZSBPd25QdHI8VD46Ok93blB0cihPd25QdHI8VT4mJiBvKQotICAgICAg
ICA6IG1fcHRyKG8ubGVha1B0cigpKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBpbmxpbmUgYXV0byBPd25QdHI8VD46Om9wZXJhdG9yPShPd25QdHImJiBvKSAtPiBP
d25QdHImCi0gICAgewotICAgICAgICBBU1NFUlQoIW8gfHwgbyAhPSBtX3B0cik7Ci0gICAgICAg
IE93blB0ciBwdHIgPSBXVEY6Om1vdmUobyk7Ci0gICAgICAgIHN3YXAocHRyKTsKLSAgICAgICAg
cmV0dXJuICp0aGlzOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRl
PHR5cGVuYW1lIFU+IGlubGluZSBhdXRvIE93blB0cjxUPjo6b3BlcmF0b3I9KE93blB0cjxVPiYm
IG8pIC0+IE93blB0ciYKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbyB8fCBvICE9IG1fcHRyKTsK
LSAgICAgICAgT3duUHRyIHB0ciA9IFdURjo6bW92ZShvKTsKLSAgICAgICAgc3dhcChwdHIpOwot
ICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIHZvaWQgc3dhcChPd25QdHI8VD4mIGEsIE93blB0cjxUPiYgYikKLSAgICB7Ci0gICAg
ICAgIGEuc3dhcChiKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE93blB0cjxUPiYgYSwgVSogYikKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGI7IAotICAgIH0KLQotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oVCogYSwgY29u
c3QgT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhID09IGIuZ2V0KCk7IAot
ICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29s
IG9wZXJhdG9yIT0oY29uc3QgT3duUHRyPFQ+JiBhLCBVKiBiKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGEuZ2V0KCkgIT0gYjsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShUKiBhLCBjb25zdCBPd25QdHI8VT4mIGIp
Ci0gICAgewotICAgICAgICByZXR1cm4gYSAhPSBiLmdldCgpOyAKLSAgICB9Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBpbmxpbmUgdm9pZCBP
d25QdHI8VD46OmNyZWF0ZVRyYW5zYWN0aW9uYWxseShBcmdzLi4uIGFyZ3MpCi0gICAgewotICAg
ICAgICBpZiAobV9wdHIpIHsKLSAgICAgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBUKiBuZXdPYmpl
Y3QgPSBuZXcgVChhcmdzLi4uKTsKLSAgICAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKLSNp
ZiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKLSAgICAgICAgZG8gewotICAgICAgICAgICAgaWYg
KG1fcHRyKSB7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIG5ld09iamVjdDsKLSAgICAgICAgICAg
ICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0gd2hpbGUgKCFXVEY6OndlYWtDb21wYXJlQW5kU3dhcChiaXR3
aXNlX2Nhc3Q8dm9pZCp2b2xhdGlsZSo+KCZtX3B0ciksIG51bGxwdHIsIG5ld09iamVjdCkpOwot
I2Vsc2UKLSAgICAgICAgbV9wdHIgPSBuZXdPYmplY3Q7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IElzU21hcnRQdHI8T3duUHRyPFQ+PiB7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsKLSAgICB9OwotCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgUD4gc3RydWN0IERlZmF1bHRIYXNoPE93blB0cjxQPj4gewotICAgICAgICB0
eXBlZGVmIFB0ckhhc2g8T3duUHRyPFA+PiBIYXNoOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdURgotCi11c2luZyBXVEY6Ok93blB0cjsKLQotI2VuZGlmIC8vIFdURl9Pd25QdHJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9P
d25QdHJDb21tb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJiMDg3NWViNTli
MDg3ZGFjN2QzZTMyODEwYjFiOGZjMDAxNzg5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHJDb21tb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRv
cmNoIE1vYmlsZSwgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDEwIENvbXBhbnkgMTAwIEluYy4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgV1RG
X093blB0ckNvbW1vbl9oCi0jZGVmaW5lIFdURl9Pd25QdHJDb21tb25faAotCi1uYW1lc3BhY2Ug
V1RGIHsKLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBkZWxldGVPd25l
ZFB0cihUKiBwdHIpCi0gICAgewotICAgICAgICB0eXBlZGVmIGNoYXIga25vd25bc2l6ZW9mKFQp
ID8gMSA6IC0xXTsKLSAgICAgICAgaWYgKHNpemVvZihrbm93bikpCi0gICAgICAgICAgICBkZWxl
dGUgcHRyOwotICAgIH0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRpZiAvLyBXVEZfT3du
UHRyQ29tbW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bhc3NPd25QdHIuaCBiL1Nv
dXJjZS9XVEYvd3RmL1Bhc3NPd25QdHIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2M1ZWZiNjk5MmNjOTExNGRlZWQxNGRlZjA4ODBjMDk3YTdhMmVhYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXNzT3duUHRy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFdURl9QYXNzT3duUHRyX2gK
LSNkZWZpbmUgV1RGX1Bhc3NPd25QdHJfaAotCi0jaW5jbHVkZSA8Y3N0ZGRlZj4KLSNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvT3duUHRyQ29tbW9uLmg+Ci0jaW5jbHVkZSA8dHlwZV90cmFpdHM+Ci0KLW5hbWVzcGFjZSBX
VEYgewotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25QdHI7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gUGFzc093blB0cjxUPiBhZG9wdFB0cihUKik7Ci0KLSAgICBjbGFzcyBSZWZDb3VudGVkQmFz
ZTsKLSAgICBjbGFzcyBUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2U7Ci0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBjbGFzcyBQYXNzT3duUHRyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVk
ZWYgVCBWYWx1ZVR5cGU7Ci0gICAgICAgIHR5cGVkZWYgVmFsdWVUeXBlKiBQdHJUeXBlOwotCi0g
ICAgICAgIFBhc3NPd25QdHIoKSA6IG1fcHRyKDApIHsgfQotICAgICAgICBQYXNzT3duUHRyKHN0
ZDo6bnVsbHB0cl90KSA6IG1fcHRyKDApIHsgfQotCi0gICAgICAgIC8vIEl0IHNvbWV3aGF0IGJy
ZWFrcyB0aGUgdHlwZSBzeXN0ZW0gdG8gYWxsb3cgdHJhbnNmZXIgb2Ygb3duZXJzaGlwIG91dCBv
ZgotICAgICAgICAvLyBhIGNvbnN0IFBhc3NPd25QdHIuIEhvd2V2ZXIsIGl0IG1ha2VzIGl0IG11
Y2ggZWFzaWVyIHRvIHdvcmsgd2l0aCBQYXNzT3duUHRyCi0gICAgICAgIC8vIHRlbXBvcmFyaWVz
LCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIG5lZWQgdG8gdXNlIHJlYWwgY29uc3QgUGFzc093blB0cnMg
YW55d2F5LgotICAgICAgICBQYXNzT3duUHRyKGNvbnN0IFBhc3NPd25QdHImIG8pIDogbV9wdHIo
by5sZWFrUHRyKCkpIHsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBQYXNzT3duUHRy
KGNvbnN0IFBhc3NPd25QdHI8VT4mIG8pIDogbV9wdHIoby5sZWFrUHRyKCkpIHsgfQotCi0gICAg
ICAgIH5QYXNzT3duUHRyKCkgeyBkZWxldGVPd25lZFB0cihtX3B0cik7IH0KLQotICAgICAgICBQ
dHJUeXBlIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgUHRyVHlwZSBs
ZWFrUHRyKCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJOOwotCi0gICAgICAgIFZhbHVlVHlwZSYg
b3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gKm1fcHRyOyB9Ci0gICAg
ICAgIFB0clR5cGUgb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNTRVJUKG1fcHRyKTsgcmV0dXJuIG1f
cHRyOyB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9wdHI7
IH0KLQotICAgICAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxsb3dzIGltcGxpY2l0
IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIgdHlwZXMuCi0gICAg
ICAgIHR5cGVkZWYgUHRyVHlwZSBQYXNzT3duUHRyOjoqVW5zcGVjaWZpZWRCb29sVHlwZTsKLSAg
ICAgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRy
ID8gJlBhc3NPd25QdHI6Om1fcHRyIDogMDsgfQotCi0gICAgICAgIFBhc3NPd25QdHImIG9wZXJh
dG9yPShjb25zdCBQYXNzT3duUHRyJikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFQqKSwgUGFz
c093blB0cl9zaG91bGRfbmV2ZXJfYmVfYXNzaWduZWRfdG8pOyByZXR1cm4gKnRoaXM7IH0KLQot
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgUGFzc093blB0cjxVPiBhZG9wdFB0
cihVKik7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBQYXNzT3duUHRyKFB0clR5
cGUgcHRyKSA6IG1fcHRyKHB0cikgeyB9Ci0KLSAgICAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhh
dmUgdHdvIE93blB0cnMgZm9yIHRoZSBzYW1lIHVuZGVybHlpbmcgb2JqZWN0IChvdGhlcndpc2Ug
d2UnbGwgZ2V0Ci0gICAgICAgIC8vIGRvdWJsZS1kZXN0cnVjdGlvbiksIHNvIHRoZXNlIGVxdWFs
aXR5IG9wZXJhdG9ycyBzaG91bGQgbmV2ZXIgYmUgbmVlZGVkLgotICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBib29sIG9wZXJhdG9yPT0oY29uc3QgUGFzc093blB0cjxVPiYpIHsgQ09NUElM
RV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBQYXNzT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFUqKSwgT3du
UHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvcj09KGNvbnN0IE93blB0cjxVPiYpIHsgQ09N
UElMRV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0
b3IhPShjb25zdCBPd25QdHI8VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25Q
dHJzX3Nob3VsZF9uZXZlcl9iZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotCi0gICAgICAgIG11
dGFibGUgUHRyVHlwZSBtX3B0cjsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIHR5cGVuYW1lIFBhc3NPd25QdHI8VD46OlB0clR5cGUgUGFzc093blB0cjxUPjo6bGVh
a1B0cigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gc3RkOjpleGNoYW5nZShtX3B0ciwg
bnVsbHB0cik7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4g
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzT3duUHRyPFQ+JiBhLCBjb25zdCBQYXNz
T3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7
IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBi
b29sIG9wZXJhdG9yPT0oY29uc3QgUGFzc093blB0cjxUPiYgYSwgY29uc3QgT3duUHRyPFU+JiBi
KSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7IAotICAgIH0KLSAg
ICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IE93blB0cjxUPiYgYSwgY29uc3QgUGFzc093blB0cjxVPiYgYikgCi0gICAg
ewotICAgICAgICByZXR1cm4gYS5nZXQoKSA9PSBiLmdldCgpOyAKLSAgICB9Ci0gICAgCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBQYXNzT3duUHRyPFQ+JiBhLCBVKiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdl
dCgpID09IGI7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KFQqIGEsIGNvbnN0IFBhc3NPd25QdHI8VT4mIGIp
IAotICAgIHsKLSAgICAgICAgcmV0dXJuIGEgPT0gYi5nZXQoKTsgCi0gICAgfQotICAgIAotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0o
Y29uc3QgUGFzc093blB0cjxUPiYgYSwgY29uc3QgUGFzc093blB0cjxVPiYgYikgCi0gICAgewot
ICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgpOyAKLSAgICB9Ci0gICAgCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBQYXNzT3duUHRyPFQ+JiBhLCBjb25zdCBPd25QdHI8VT4mIGIpIAotICAgIHsKLSAgICAgICAg
cmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsgCi0gICAgfQotICAgIAotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgT3duUHRy
PFQ+JiBhLCBjb25zdCBQYXNzT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
LmdldCgpICE9IGIuZ2V0KCk7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NPd25QdHI8VD4m
IGEsIFUqIGIpCi0gICAgewotICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiOyAKLSAgICB9Ci0g
ICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3Bl
cmF0b3IhPShUKiBhLCBjb25zdCBQYXNzT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhICE9IGIuZ2V0KCk7IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBQYXNzT3duUHRyPFQ+IGFkb3B0UHRyKFQqIHB0cikKLSAgICB7Ci0gICAgICAgIHN0YXRp
Y19hc3NlcnQoIXN0ZDo6aXNfY29udmVydGlibGU8VCosIFJlZkNvdW50ZWRCYXNlKj46OnZhbHVl
LCAiRG8gbm90IHVzZSBhZG9wdFB0ciB3aXRoIFJlZkNvdW50ZWQsIHVzZSBhZG9wdFJlZiEiKTsK
LSAgICAgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19jb252ZXJ0aWJsZTxUKiwgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWRCYXNlKj46OnZhbHVlLCAiRG8gbm90IHVzZSBhZG9wdFB0ciB3aXRoIFRocmVh
ZFNhZmVSZWZDb3VudGVkLCB1c2UgYWRvcHRSZWYhIik7Ci0KLSAgICAgICAgcmV0dXJuIFBhc3NP
d25QdHI8VD4ocHRyKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgUGFzc093blB0cjxUPiBzdGF0aWNfcG9pbnRlcl9jYXN0KGNvbnN0IFBhc3NP
d25QdHI8VT4mIHApIAotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKHN0YXRpY19jYXN0
PFQqPihwLmxlYWtQdHIoKSkpOwotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBz
dHJ1Y3QgSXNTbWFydFB0cjxQYXNzT3duUHRyPFQ+PiB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gdHJ1ZTsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcg
V1RGOjpQYXNzT3duUHRyOwotdXNpbmcgV1RGOjphZG9wdFB0cjsKLXVzaW5nIFdURjo6c3RhdGlj
X3BvaW50ZXJfY2FzdDsKLQotI2VuZGlmIC8vIFdURl9QYXNzT3duUHRyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1NpemVMaW1pdHMuY3BwIGIvU291cmNlL1dURi93dGYvU2l6ZUxpbWl0
cy5jcHAKaW5kZXggNzYxNGVjMjYzMjg3YWRjYjAwNzY1NzFiYTM3NmZhMWYwNWE0YjJiYS4uYTgy
ZDBjNDhiYzkxNGFlZTcyZTdhZmFmNTQ5NWU2MTVkMDcyYjNlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvU2l6ZUxpbWl0cy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvU2l6ZUxpbWl0cy5j
cHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNpbmNsdWRlIDx1
dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01NSw3ICs1NCw2IEBAIHN0cnVjdCBT
YW1lU2l6ZUFzUmVmQ291bnRlZCB7CiB9OwogI2VuZGlmCiAKLXN0YXRpY19hc3NlcnQoc2l6ZW9m
KE93blB0cjxpbnQ+KSA9PSBzaXplb2YoaW50KiksICJPd25QdHIgc2hvdWxkIHN0YXkgc21hbGwh
Iik7CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihQYXNzUmVmUHRyPFJlZkNvdW50ZWQ8aW50Pj4pID09
IHNpemVvZihpbnQqKSwgIlBhc3NSZWZQdHIgc2hvdWxkIHN0YXkgc21hbGwhIik7CiBzdGF0aWNf
YXNzZXJ0KHNpemVvZihSZWZDb3VudGVkPGludD4pID09IHNpemVvZihTYW1lU2l6ZUFzUmVmQ291
bnRlZCksICJSZWZDb3VudGVkIHNob3VsZCBzdGF5IHNtYWxsISIpOwogc3RhdGljX2Fzc2VydChz
aXplb2YoUmVmUHRyPFJlZkNvdW50ZWQ8aW50Pj4pID09IHNpemVvZihpbnQqKSwgIlJlZlB0ciBz
aG91bGQgc3RheSBzbWFsbCEiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3RvclRy
YWl0cy5oIGIvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmgKaW5kZXggYTgzMGU0NGEwYmM5
MDk3YjNhNjQ4ZjVlYzgzMmJhODA4YzJkNzRmMC4uOTRkYjhjYWI3ZDlmZDA2OGRiMWZiNDg0NTE0
MmIxYzFlMzRjZWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmgK
KysrIGIvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmgKQEAgLTIxLDcgKzIxLDYgQEAKICNp
Zm5kZWYgV1RGX1ZlY3RvclRyYWl0c19oCiAjZGVmaW5lIFdURl9WZWN0b3JUcmFpdHNfaAogCi0j
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8dXRpbGl0eT4KQEAgLTY2LDIyICs2NSwxMyBAQCBuYW1l
c3BhY2UgV1RGIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1j
bXAgPSB0cnVlOwogICAgIH07CiAKLSAgICAvLyBXZSBrbm93IE93blB0ciBhbmQgUmVmUHRyIGFy
ZSBzaW1wbGUgZW5vdWdoIHRoYXQgaW5pdGlhbGl6aW5nIHRvIDAgYW5kIG1vdmluZyB3aXRoIG1l
bWNweQotICAgIC8vIChhbmQgdGhlbiBub3QgZGVzdHJ1Y3RpbmcgdGhlIG9yaWdpbmFsKSB3aWxs
IHRvdGFsbHkgd29yawotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFA+Ci0gICAgc3RydWN0IFZlY3Rv
clRyYWl0czxSZWZQdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgeyB9OworICAgIC8v
IFdlIGtub3cgc21hcnQgcG9pbnRlcnMgYXJlIHNpbXBsZSBlbm91Z2ggdGhhdCBpbml0aWFsaXpp
bmcgdG8gMCBhbmQgbW92aW5nIHdpdGggbWVtY3B5CisgICAgLy8gKGFuZCB0aGVuIG5vdCBkZXN0
cnVjdGluZyB0aGUgb3JpZ2luYWwpIHdpbGwgd29yay4KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFA+Ci0gICAgc3RydWN0IFZlY3RvclRyYWl0czxPd25QdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0
b3JUcmFpdHMgeyB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4KLSAgICBzdHJ1Y3QgVmVj
dG9yVHJhaXRzPHN0ZDo6dW5pcXVlX3B0cjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7
IH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQPgotICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8
UmVmPFA+PiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKLQotICAgIHRlbXBsYXRlPD4K
LSAgICBzdHJ1Y3QgVmVjdG9yVHJhaXRzPEF0b21pY1N0cmluZz4gOiBTaW1wbGVDbGFzc1ZlY3Rv
clRyYWl0cyB7IH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IFZlY3RvclRyYWl0
czxSZWZQdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgeyB9OworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFA+IHN0cnVjdCBWZWN0b3JUcmFpdHM8c3RkOjp1bmlxdWVfcHRyPFA+PiA6IFNp
bXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1
Y3QgVmVjdG9yVHJhaXRzPFJlZjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7IH07Cisg
ICAgdGVtcGxhdGU8PiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPEF0b21pY1N0cmluZz4gOiBTaW1wbGVD
bGFzc1ZlY3RvclRyYWl0cyB7IH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGaXJzdCwgdHlw
ZW5hbWUgU2Vjb25kPgogICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8c3RkOjpwYWlyPEZpcnN0LCBT
ZWNvbmQ+PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBmNzFlYjYwNTIwZDUwN2FmYjkz
ZjZhZWViOGFhNzUzY2U1YjllYjY1Li5jZjdkNzE4M2M2Y2VjY2YxYjJhODk3NjUzNDI2NjNmYWUz
ZWUzNWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTE5LDcgKzExOSw2IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWly
by5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwCi0gICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1Bh
dHRlcm5DYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRl
eHRDYWlyby5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjgxYzlkNTcyYjM1ZTZi
MzdkODNlZjZmNjMwNzQwNjMyYWE5MTUyNC4uZDhiNmQ2NWU4ZmFhNzlkMDhjMTI4YzM3ZGZmODkx
NmYzZmRhNWQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTc4LDcgKzc4LDYgQEAg
bGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNh
aXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKLSAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGF0dGVybkNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29u
dGV4dENhaXJvLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWly
by5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXggNDU5
M2QxZWE5ZWIyZGE2NDJmNjhjZjFhNDgyYTc1YWRiOTY2NDY1YS4uNzhiYjAxYTBiMDQxZjk5ZjEw
YTc3NDI1YTgyMDQzN2JhZjA4ZGUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XaW5DYWlyby5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNt
YWtlCkBAIC01MCw3ICs1MCw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbnRSZWN0Q2Fpcm8uY3BwCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fp
cm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGFjODE1MzgzOTdkMDcxYTgwZjk4
ZWQzNTM3MjU5MTYyNTBmOWE0NDkuLjM2OWY1MmI4ZDFhZWEzN2UyYTY0OWJmYzg2MWI1ZDAxZjYy
YmU4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagpAQCAtODU4MiwxNiArODU4Miw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cT3duUHRyQ2Fpcm8uY3BwIj4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGF0aENhaXJv
LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0y
MDExOCwxNiArMjAxMDgsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVp
bGRTdGVwIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXE93blB0ckNhaXJvLmgi
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DdXN0b21CdWlsZFN0
ZXA+CiAgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YWlyb1xQbGF0Zm9ybVBhdGhDYWlyby5oIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA5NWMzMWU4MTY5YTRkNjljMWM2ZDkzMWJh
NjM4ZGNkNTcwN2EzZmFhLi5hMDMxODA4NWM1YTg1NTA2MDNmN2MwZTgyMmJjNDYxODBmOWU4NWE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCkBAIC0xNTg0LDkgKzE1ODQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cSW50UmVjdENhaXJvLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xP
d25QdHJDYWlyby5jcHAiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljc1xjYWlybzwv
RmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGF0aENhaXJvLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRm
b3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xNTM3MSw5
ICsxNTM2OCw2IEBACiAgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xjYWlyb1xHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oIj4KICAg
ICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm88L0ZpbHRlcj4KICAgICA8L0N1c3Rv
bUJ1aWxkU3RlcD4KLSAgICA8Q3VzdG9tQnVpbGRTdGVwIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXGNhaXJvXE93blB0ckNhaXJvLmgiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFw
aGljc1xjYWlybzwvRmlsdGVyPgotICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgogICAgIDxDdXN0b21C
dWlsZFN0ZXAgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cUGxhdGZvcm1QYXRo
Q2Fpcm8uaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+
CiAgICAgPC9DdXN0b21CdWlsZFN0ZXA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9z
c1RocmVhZENvcGllci5jcHAKaW5kZXggMWIxYWMxM2VjNjUyYThiYjgxN2EyNTlkNThkMDQ1ZmM3
ZTQzYWViYy4uMmFhOTNlYzZkOWIyYTU0MjE4OWM5MWU0NzE1OWZiYWU1N2EzMDhkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMTc5LDE4
ICsxNzksNCBAQCBDT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAogICAgICAgICAgICAgICAg
ICAgPjo6dmFsdWUpLAogICAgICAgICAgICAgICAgUmF3UG9pbnRlclJlZkNvdW50ZWRUZXN0KTsK
IAotLy8gVmVyaWZ5IHRoYXQgUGFzc093blB0ciBnZXRzIHBhc3NlZCB0aHJvdWdoLgotQ09NUElM
RV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTwKLSAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8Zmxv
YXQ+LAotICAgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UGFzc093blB0cjxmbG9h
dD4+OjpUeXBlCi0gICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCi0gICAgICAgICAgICAgICBQ
YXNzT3duUHRyVGVzdCk7Ci0KLS8vIFZlcmlmeSB0aGF0IFBhc3NPd25QdHIgZG9lcyBub3QgZ2V0
IHBhc3NlZCB0aHJvdWdoLgotQ09NUElMRV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTwKLSAgICAgICAg
ICAgICAgICAgIGludCwKLSAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPE93blB0
cjxmbG9hdD4+OjpUeXBlCi0gICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCi0gICAgICAgICAg
ICAgICBPd25QdHJUZXN0KTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKaW5kZXggNzBmOTI0MzE3ZDA4Yjk4ZmM2
YmE4NjRjM2ZmZGE1ODM1ZmRmMGY5Yi4uZDc1MDU5YzE3NjhlZDdjOWMyNWMyYTcxOGU3MTE0MDlh
M2U3NWZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRD
b3BpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5o
CkBAIC0zMyw3ICszMyw2IEBACiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CkBAIC0xMTAsMTQgKzEwOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgfQogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jv
c3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUGFzc093blB0cjxUPj4gewotICAgICAg
ICB0eXBlZGVmIFBhc3NPd25QdHI8VD4gVHlwZTsKLSAgICAgICAgc3RhdGljIFR5cGUgY29weShU
eXBlIG93blB0cikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG93blB0cjsKLSAgICAg
ICAgfQotICAgIH07Ci0KICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJh
c2U8ZmFsc2UsIGZhbHNlLCBVUkw+IHsKICAgICAgICAgdHlwZWRlZiBVUkwgVHlwZTsKICAgICAg
ICAgc3RhdGljIFR5cGUgY29weShjb25zdCBVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCmluZGV4IGQyOTVkNDk4MDM4NWZiYjc1ZDc4MmU3
Y2EzMTFiNWFjMGY3Y2VmZDguLjAyM2E3ODIwYjY1YzA0MDNjMDE2ZDFhZDlmZTY4ZDkyNDgzODcw
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNw
cApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCiAjaW5jbHVk
ZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKaW5kZXggNzZkNGIxMjhmZTZmZWVjNTVi
NjBjZTg4NzIwMDZkYzhiOWI3MjcyMi4uNjNiYzVhYmY0OGVkYTY0ZjRkMzhmNzcyZTg1ZjcyYTgw
YWMzMDZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFs
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5j
cHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIKICNpbmNsdWRl
ICJUaHJlYWRUaW1lcnMuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRhLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKaW5kZXggMTg5NmZjMjlh
OTEzYmYwMjY4Mjc2NTgxM2NkNDU3NmE2ZTYwOTcyZi4uNTcwNjY2YjI5OTNkZDljMWRhNjhkMmI3
NGRiNDJkNjQ5NTA5NjQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhy
ZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2Jh
bERhdGEuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAj
aW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlv
bkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmgKaW5kZXggZmU5NGQwYzhjYTM1ZGVhMDY4NmJiY2Yy
YWMyODVmZjk4MWYyZDZjZi4uODFlZDA1MjFhMmYzYTA0M2JkY2EwN2M4NDYzYjBhM2QzYmU3YTcx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Yu
aApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0ZfaAog
CiAjaW5jbHVkZSAiQ0RNU2Vzc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVS
X0RFTEVHQVRFKSAmJiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAK
aW5kZXggY2JhMjdhNTRjNjA0ZmJjYzBkNzM5NDk0NDlmZDFjMWRlYzBlMjU3My4uZTRhZGRjZTc0
N2I1NTI4ZWIxZTQ3YzhmNGE3NTRhODBiMzRhZGEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0x
ODksNyArMTg5LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJldGFpblB0cjxDQUNGTGF5ZXJS
ZWY+IG1fY2FWaWRlb0xheWVyOwogICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IG1fdmlkZW9M
YXllcldyYXBwZXI7CiAKLSAgICBPd25QdHI8TGF5ZXJDbGllbnQ+IG1fbGF5ZXJDbGllbnQ7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPExheWVyQ2xpZW50PiBtX2xheWVyQ2xpZW50OwogICAgIENPTVB0
cjxJRGlyZWN0M0REZXZpY2U5RXg+IG1fZDNkRGV2aWNlOwogCiAgICAgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRiogbV9jdXJyZW50VGV4dFRyYWNrOwpAQCAtMTYyMyw3ICsxNjIzLDcgQEAgdm9p
ZCBBVkZXcmFwcGVyOjpwcm9jZXNzTm90aWZpY2F0aW9uKHZvaWQqIGNvbnRleHQpCiAgICAgaWYg
KCFjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBPd25QdHI8Tm90aWZpY2F0aW9uQ2Fs
bGJhY2tEYXRhPiBub3RpZmljYXRpb25EYXRhID0gYWRvcHRQdHIocmVpbnRlcnByZXRfY2FzdDxO
b3RpZmljYXRpb25DYWxsYmFja0RhdGEqPihjb250ZXh0KSk7CisgICAgc3RkOjp1bmlxdWVfcHRy
PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YT4gbm90aWZpY2F0aW9uRGF0YSB7IHN0YXRpY19jYXN0
PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YSo+KGNvbnRleHQpIH07CiAKICAgICBNdXRleExvY2tl
ciBsb2NrZXIobWFwTG9jaygpKTsKICAgICBBVkZXcmFwcGVyKiBzZWxmID0gYXZmV3JhcHBlckZv
ckNhbGxiYWNrQ29udGV4dChub3RpZmljYXRpb25EYXRhLT5tX2NvbnRleHQpOwpAQCAtMTY3Myw5
ICsxNjczLDkgQEAgdm9pZCBBVkZXcmFwcGVyOjpub3RpZmljYXRpb25DYWxsYmFjayhDRk5vdGlm
aWNhdGlvbkNlbnRlclJlZiwgdm9pZCogb2JzZXJ2ZXIsIEMKICAgICBMT0coTWVkaWEsICJBVkZX
cmFwcGVyOjpub3RpZmljYXRpb25DYWxsYmFjayhpZj0lZCkgJXMiLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4ob2JzZXJ2ZXIpLCBub3RpZmljYXRpb25OYW1lKTsKICNlbmRpZgogCi0gICAg
T3duUHRyPE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YT4gbm90aWZpY2F0aW9uRGF0YSA9IGFkb3B0
UHRyKG5ldyBOb3RpZmljYXRpb25DYWxsYmFja0RhdGEocHJvcGVydHlOYW1lLCBvYnNlcnZlcikp
OworICAgIGF1dG8gbm90aWZpY2F0aW9uRGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8Tm90aWZpY2F0
aW9uQ2FsbGJhY2tEYXRhPihwcm9wZXJ0eU5hbWUsIG9ic2VydmVyKTsKIAotICAgIGRpc3BhdGNo
X2FzeW5jX2YoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgbm90aWZpY2F0aW9uRGF0YS5sZWFr
UHRyKCksIHByb2Nlc3NOb3RpZmljYXRpb24pOworICAgIGRpc3BhdGNoX2FzeW5jX2YoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgbm90aWZpY2F0aW9uRGF0YS5yZWxlYXNlKCksIHByb2Nlc3NO
b3RpZmljYXRpb24pOwogfQogCiB2b2lkIEFWRldyYXBwZXI6OmxvYWRQbGF5YWJsZUNvbXBsZXRp
b25DYWxsYmFjayhBVkNGQXNzZXRSZWYsIHZvaWQqIGNvbnRleHQpCkBAIC0xOTE3LDcgKzE5MTcs
NyBAQCBQbGF0Zm9ybUxheWVyKiBBVkZXcmFwcGVyOjpwbGF0Zm9ybUxheWVyKCkKICAgICAgICAg
cmV0dXJuIDA7CiAKICAgICAvLyBDcmVhdGUgYSBQbGF0Zm9ybUNBTGF5ZXIgc28gd2UgY2FuIHJl
c2l6ZSB0aGUgdmlkZW8gbGF5ZXIgdG8gbWF0Y2ggdGhlIGVsZW1lbnQgc2l6ZS4KLSAgICBtX2xh
eWVyQ2xpZW50ID0gYWRvcHRQdHIobmV3IExheWVyQ2xpZW50KHRoaXMpKTsKKyAgICBtX2xheWVy
Q2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxMYXllckNsaWVudD4odGhpcyk7CiAgICAgaWYgKCFt
X2xheWVyQ2xpZW50KQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCmluZGV4
IDJlYTQyZjFjMjk2Mzg0ODQ0YTRjYmExZmJmZTU5YzEyZmRiOWMwYjEuLmJlOTcwMTBiODZmMzA4
YTFlYmVhYzcxMzBlMWUzYTBiNWRkYmIzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKQEAgLTM0LDcg
KzM0LDYgQEAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0Lmgi
CiAjaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIk93blB0ckNhaXJvLmgiCiAjaW5jbHVk
ZSAiUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtUGF0aENhaXJvLmgiCiAjaW5jbHVkZSAiUmVm
UHRyQ2Fpcm8uaCIKQEAgLTczLDggKzcyLDkgQEAgdm9pZCBzZXRTb3VyY2VSR0JBRnJvbUNvbG9y
KGNhaXJvX3QqIGNvbnRleHQsIGNvbnN0IENvbG9yJiBjb2xvcikKIAogdm9pZCBhcHBlbmRQYXRo
VG9DYWlyb0NvbnRleHQoY2Fpcm9fdCogdG8sIGNhaXJvX3QqIGZyb20pCiB7Ci0gICAgT3duUHRy
PGNhaXJvX3BhdGhfdD4gY2Fpcm9QYXRoID0gYWRvcHRQdHIoY2Fpcm9fY29weV9wYXRoKGZyb20p
KTsKLSAgICBjYWlyb19hcHBlbmRfcGF0aCh0bywgY2Fpcm9QYXRoLmdldCgpKTsKKyAgICBhdXRv
IGNhaXJvUGF0aCA9IGNhaXJvX2NvcHlfcGF0aChmcm9tKTsKKyAgICBjYWlyb19hcHBlbmRfcGF0
aCh0bywgY2Fpcm9QYXRoKTsKKyAgICBjYWlyb19wYXRoX2Rlc3Ryb3koY2Fpcm9QYXRoKTsKIH0K
IAogdm9pZCBzZXRQYXRoT25DYWlyb0NvbnRleHQoY2Fpcm9fdCogdG8sIGNhaXJvX3QqIGZyb20p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFn
ZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IGQyMmM0Y2FlMmIxOTZkNzdlN2ZmM2I0ZDI5Zjc5
MDdmMWMzYTg4ZjIuLmEzMzViMDVjYWI1ZThlOWIwNzcxOWVmMzcxOTI0NTg3ZWEyODBkNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVkZSA8Y2Fpcm8u
aD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1R5
cGVkQXJyYXlJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMTksNyArMTE4LDcgQEAgSW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxl
ICovLCBDb2wKIAogICAgIFJlZlB0cjxjYWlyb190PiBjciA9IGFkb3B0UmVmKGNhaXJvX2NyZWF0
ZShtX2RhdGEubV9zdXJmYWNlLmdldCgpKSk7CiAgICAgbV9kYXRhLm1fcGxhdGZvcm1Db250ZXh0
LnNldENyKGNyLmdldCgpKTsKLSAgICBtX2RhdGEubV9jb250ZXh0ID0gYWRvcHRQdHIobmV3IEdy
YXBoaWNzQ29udGV4dCgmbV9kYXRhLm1fcGxhdGZvcm1Db250ZXh0KSk7CisgICAgbV9kYXRhLm1f
Y29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NDb250ZXh0PigmbV9kYXRhLm1fcGxh
dGZvcm1Db250ZXh0KTsKICAgICBzdWNjZXNzID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJEYXRhQ2Fpcm8u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0
YUNhaXJvLmgKaW5kZXggY2I4OWM3OTBiYzk1NjllODZmZWQ5Nzg2Yjk1MTlmMDU3MDg0NTk0Yy4u
ZDYyZjQ3MDUxNWUzZTgyZGNhOWQ5NzYzNDQ3YTY3ZTJmYzRkMDYzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJEYXRhQ2Fpcm8u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZl
ckRhdGFDYWlyby5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxjYWly
b19zdXJmYWNlX3Q+IG1fc3VyZmFjZTsKICAgICBQbGF0Zm9ybUNvbnRleHRDYWlybyBtX3BsYXRm
b3JtQ29udGV4dDsKLSAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dD4gbV9jb250ZXh0OwogICAgIEludFNpemUg
bV9zaXplOwogCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTEyOGFmYjZkMTdkN2I3ZDNlN2U0NTQyMWM3
Y2RiZGEwMmU5MzFhOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIENvbGxhYm9yYSBMdGQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2Vy
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUKLSAqICBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiT3duUHRyQ2Fpcm8uaCIKLQotI2lmIFVTRShD
QUlSTykKLQotI2lmIFVTRShGUkVFVFlQRSkKLSNpbmNsdWRlIDxjYWlyby1mdC5oPgotI2luY2x1
ZGUgPGZvbnRjb25maWcvZmNmcmVldHlwZS5oPgotI2VuZGlmCi0KLSNpbmNsdWRlIDxjYWlyby5o
PgotCi1uYW1lc3BhY2UgV1RGIHsKLQotI2lmIFVTRShGUkVFVFlQRSkKLXRlbXBsYXRlIDw+IHZv
aWQgZGVsZXRlT3duZWRQdHI8RmNPYmplY3RTZXQ+KEZjT2JqZWN0U2V0KiBwdHIpCi17Ci0gICAg
aWYgKHB0cikKLSAgICAgICAgRmNPYmplY3RTZXREZXN0cm95KHB0cik7Ci19Ci0KLXRlbXBsYXRl
IDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8RmNGb250U2V0PihGY0ZvbnRTZXQqIHB0cikKLXsKLSAg
ICBpZiAocHRyKQotICAgICAgICBGY0ZvbnRTZXREZXN0cm95KHB0cik7Ci19Ci0jZW5kaWYKLQot
fSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRpZiAvLyBVU0UoQ0FJUk8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY2MDEzYmJhNThlYjJlYWFkNDk3OTQyODdjMTE0MjYw
MTdmZTg5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBDb2xs
YWJvcmEgTHRkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
Ci0gKiAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCi0gKi8KLQotI2lmbmRlZiBP
d25QdHJDYWlyb19oCi0jZGVmaW5lIE93blB0ckNhaXJvX2gKLQotI2lmIFVTRShDQUlSTykKLQot
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi0j
aWYgVVNFKEZSRUVUWVBFKQotdHlwZWRlZiBzdHJ1Y3QgX0ZjT2JqZWN0U2V0IEZjT2JqZWN0U2V0
OwotdHlwZWRlZiBzdHJ1Y3QgX0ZjRm9udFNldCBGY0ZvbnRTZXQ7Ci0jZW5kaWYKLQotdHlwZWRl
ZiBzdHJ1Y3QgY2Fpcm9fcGF0aCBjYWlyb19wYXRoX3Q7Ci0KLW5hbWVzcGFjZSBXVEYgewotCi0j
aWYgVVNFKEZSRUVUWVBFKQotdGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxGY09iamVj
dFNldD4oRmNPYmplY3RTZXQqKTsKLXRlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8RmNG
b250U2V0PihGY0ZvbnRTZXQqKTsKLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotI2Vu
ZGlmIC8vIFVTRShDQUlSTykKLQotI2VuZGlmIC8vIE93blB0ckNhaXJvX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCmluZGV4
IGRjYzJlZjE2MGIwODczYWJkZjYyOTM5NWNjMTg0MTQwZTAxZTUzZGMuLjU0NmFkYTZjYzJiMWJi
ZDJlZTk1ZjA5ZjU5ZWE4NjFmYjY1NGQwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcApAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIk93blB0ckNhaXJvLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1QYXRoQ2Fpcm8uaCIKICNpbmNsdWRlICJTdHJva2VTdHlsZUFwcGxpZXIu
aCIKICNpbmNsdWRlIDxjYWlyby5oPgpAQCAtNTksOCArNTgsOSBAQCBQYXRoOjpQYXRoKGNvbnN0
IFBhdGgmIG90aGVyKQogICAgICAgICByZXR1cm47CiAKICAgICBjYWlyb190KiBjciA9IGVuc3Vy
ZVBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCk7Ci0gICAgT3duUHRyPGNhaXJvX3BhdGhfdD4gcGF0
aENvcHkgPSBhZG9wdFB0cihjYWlyb19jb3B5X3BhdGgob3RoZXIucGxhdGZvcm1QYXRoKCktPmNv
bnRleHQoKSkpOwotICAgIGNhaXJvX2FwcGVuZF9wYXRoKGNyLCBwYXRoQ29weS5nZXQoKSk7Cisg
ICAgYXV0byBwYXRoQ29weSA9IGNhaXJvX2NvcHlfcGF0aChvdGhlci5wbGF0Zm9ybVBhdGgoKS0+
Y29udGV4dCgpKTsKKyAgICBjYWlyb19hcHBlbmRfcGF0aChjciwgcGF0aENvcHkpOworICAgIGNh
aXJvX3BhdGhfZGVzdHJveShwYXRoQ29weSk7CiB9CiAKIFBsYXRmb3JtUGF0aFB0ciBQYXRoOjpl
bnN1cmVQbGF0Zm9ybVBhdGgoKQpAQCAtODMsOCArODMsOSBAQCBQYXRoJiBQYXRoOjpvcGVyYXRv
cj0oY29uc3QgUGF0aCYgb3RoZXIpCiAgICAgfSBlbHNlIHsKICAgICAgICAgY2xlYXIoKTsKICAg
ICAgICAgY2Fpcm9fdCogY3IgPSBlbnN1cmVQbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpOwotICAg
ICAgICBPd25QdHI8Y2Fpcm9fcGF0aF90PiBwYXRoQ29weSA9IGFkb3B0UHRyKGNhaXJvX2NvcHlf
cGF0aChvdGhlci5wbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpKSk7Ci0gICAgICAgIGNhaXJvX2Fw
cGVuZF9wYXRoKGNyLCBwYXRoQ29weS5nZXQoKSk7CisgICAgICAgIGF1dG8gcGF0aENvcHkgPSBj
YWlyb19jb3B5X3BhdGgob3RoZXIucGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSk7CisgICAgICAg
IGNhaXJvX2FwcGVuZF9wYXRoKGNyLCBwYXRoQ29weSk7CisgICAgICAgIGNhaXJvX3BhdGhfZGVz
dHJveShwYXRoQ29weSk7CiAgICAgfQogCiAgICAgcmV0dXJuICp0aGlzOwpAQCAtMzIzLDExICsz
MjQsMTAgQEAgdm9pZCBQYXRoOjphZGRQYXRoKGNvbnN0IFBhdGgmIHBhdGgsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQogICAgIGNhaXJvX3QqIGNyID0gcGF0aC5wbGF0Zm9ybVBh
dGgoKS0+Y29udGV4dCgpOwogICAgIGNhaXJvX3NhdmUoY3IpOwogICAgIGNhaXJvX3RyYW5zZm9y
bShjciwgJm1hdHJpeCk7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPGNhaXJvX3BhdGhfdCwgdm9pZCgq
KShjYWlyb19wYXRoX3QqKT4gcGF0aENvcHkoY2Fpcm9fY29weV9wYXRoKGNyKSwgW10oY2Fpcm9f
cGF0aF90KiBwYXRoKSB7Ci0gICAgICAgIGNhaXJvX3BhdGhfZGVzdHJveShwYXRoKTsKLSAgICB9
KTsKKyAgICBhdXRvIHBhdGhDb3B5ID0gY2Fpcm9fY29weV9wYXRoKGNyKTsKICAgICBjYWlyb19y
ZXN0b3JlKGNyKTsKLSAgICBjYWlyb19hcHBlbmRfcGF0aChlbnN1cmVQbGF0Zm9ybVBhdGgoKS0+
Y29udGV4dCgpLCBwYXRoQ29weS5nZXQoKSk7CisgICAgY2Fpcm9fYXBwZW5kX3BhdGgoZW5zdXJl
UGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSwgcGF0aENvcHkpOworICAgIGNhaXJvX3BhdGhfZGVz
dHJveShwYXRoQ29weSk7CiB9CiAKIHZvaWQgUGF0aDo6Y2xvc2VTdWJwYXRoKCkKQEAgLTM5Niw3
ICszOTYsNyBAQCB2b2lkIFBhdGg6OmFwcGx5KHZvaWQqIGluZm8sIFBhdGhBcHBsaWVyRnVuY3Rp
b24gZnVuY3Rpb24pIGNvbnN0CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhaXJvX3QqIGNyID0g
cGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKTsKLSAgICBPd25QdHI8Y2Fpcm9fcGF0aF90PiBwYXRo
Q29weSA9IGFkb3B0UHRyKGNhaXJvX2NvcHlfcGF0aChjcikpOworICAgIGF1dG8gcGF0aENvcHkg
PSBjYWlyb19jb3B5X3BhdGgoY3IpOwogICAgIGNhaXJvX3BhdGhfZGF0YV90KiBkYXRhOwogICAg
IFBhdGhFbGVtZW50IHBlbGVtZW50OwogICAgIEZsb2F0UG9pbnQgcG9pbnRzWzNdOwpAQCAtNDI4
LDYgKzQyOCw3IEBAIHZvaWQgUGF0aDo6YXBwbHkodm9pZCogaW5mbywgUGF0aEFwcGxpZXJGdW5j
dGlvbiBmdW5jdGlvbikgY29uc3QKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
fQorICAgIGNhaXJvX3BhdGhfZGVzdHJveShwYXRoQ29weSk7CiB9CiAKIHZvaWQgUGF0aDo6dHJh
bnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRD
YWlyby5jcHAKaW5kZXggYjEwY2EwYjBhZjViMWZiMDlmMWYzMzRiMDcyODJiYzAzNWViZGZjNi4u
MGNkMjVjOTM3NjA2NDUxMmU5MTc2NDY2NzRlY2ViMmZiYmEwODc2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3Jt
Q29udGV4dENhaXJvLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkNhaXJvVXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKLSNpbmNsdWRlICJPd25QdHJDYWlyby5oIgogI2luY2x1ZGUgIlBhdHRlcm4uaCIKICNpbmNs
dWRlIDxjYWlyby5oPgogCkBAIC0zMDYsNyArMzA1LDcgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRD
YWlybzo6Y2xpcEZvclBhdHRlcm5GaWxsaW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBz
dGEKICAgICBBU1NFUlQoc3RhdGUuZmlsbFBhdHRlcm4pOwogCiAgICAgLy8gSG9sZCBjdXJyZW50
IGNhaXJvIHBhdGggaW4gYSB2YXJpYWJsZSBmb3IgcmVzdG9yaW5nIGl0IGFmdGVyIGNvbmZpZ3Vy
aW5nIHRoZSBwYXR0ZXJuIGNsaXAgcmVjdGFuZ2xlLgotICAgIE93blB0cjxjYWlyb19wYXRoX3Q+
IGN1cnJlbnRQYXRoID0gYWRvcHRQdHIoY2Fpcm9fY29weV9wYXRoKG1fY3IuZ2V0KCkpKTsKKyAg
ICBhdXRvIGN1cnJlbnRQYXRoID0gY2Fpcm9fY29weV9wYXRoKG1fY3IuZ2V0KCkpOwogICAgIGNh
aXJvX25ld19wYXRoKG1fY3IuZ2V0KCkpOwogCiAgICAgLy8gSW5pdGlhbGl6ZSBjbGlwcGluZyBl
eHRlbnQgZnJvbSBjdXJyZW50IGNhaXJvIGNsaXAgZXh0ZW50cywgdGhlbiBzaHJpbmsgaWYgbmVl
ZGVkIGFjY29yZGluZyB0byBwYXR0ZXJuLgpAQCAtMzM3LDcgKzMzNiw4IEBAIHZvaWQgUGxhdGZv
cm1Db250ZXh0Q2Fpcm86OmNsaXBGb3JQYXR0ZXJuRmlsbGluZyhjb25zdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZSYgc3RhCiAgICAgfQogCiAgICAgLy8gUmVzdG9yaW5nIGNhaXJvIHBhdGguCi0gICAg
Y2Fpcm9fYXBwZW5kX3BhdGgobV9jci5nZXQoKSwgY3VycmVudFBhdGguZ2V0KCkpOworICAgIGNh
aXJvX2FwcGVuZF9wYXRoKG1fY3IuZ2V0KCksIGN1cnJlbnRQYXRoKTsKKyAgICBjYWlyb19wYXRo
X2Rlc3Ryb3koY3VycmVudFBhdGgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2Fj
aGVGcmVlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlw
ZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKaW5kZXggZTQ4Mzg0ODVkN2FjMDVjMDI2M2FiNjRhYzBl
ZjhmZTBlYjFmMTJlZC4uYjIzMjcxNjc4ZGMxZTg1MjJmZGVhMWMzNWMwZTk5YzhjMTY1OTg1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dENhY2hlRnJlZVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcApAQCAtMjMsNyArMjMsNiBAQAogI2luY2x1
ZGUgIkZvbnRDYWNoZS5oIgogCiAjaW5jbHVkZSAiRm9udC5oIgotI2luY2x1ZGUgIk93blB0ckNh
aXJvLmgiCiAjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJVVEYxNlVDaGFyMzJJ
dGVyYXRvci5oIgogI2luY2x1ZGUgPGNhaXJvLWZ0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwCmluZGV4IDc4OTBkOGRh
ODMyNjljMzA1NWNhY2E0MzY2ZGVhY2IzMmJkMWEzNjUuLjc5YzRhMTAxMzkyNWI0ZWNmNWUxMTli
NDQyZWNhM2JlMmZjM2YzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVk
ZSAiT3BlbkdMU2hpbXMuaCIKICNpbmNsdWRlIDxHTC9nbHguaD4KICNpbmNsdWRlIDxjYWlyby5o
PgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpCiAjaW5jbHVkZSA8Y2Fpcm8tZ2wuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAppbmRl
eCBlYWUzMGNkZjQ1Yzg0NzBmYjgwMDA4YWY2NjVjYzI0Y2RmODhjN2M3Li42YzY5NTAyZmNkMDEy
YTAwZGI0NmZkZWY0YjVlYmFiOGI4NjE5MzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCkBA
IC0xMzAsNyArMTMwLDcgQEAgRUdMT2ZmU2NyZWVuU3VyZmFjZTo6RUdMT2ZmU2NyZWVuU3VyZmFj
ZShTdXJmYWNlQXR0cmlidXRlcyBzdXJmYWNlQXR0cmlidXRlcykKICAgICBpZiAobV9zaGFyZWRE
aXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NvbmZp
Z1NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEVHTENvbmZpZ1NlbGVjdG9yKHN1cmZhY2VBdHRyaWJ1
dGVzKSk7CisgICAgbV9jb25maWdTZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8RUdMQ29uZmln
U2VsZWN0b3I+KHN1cmZhY2VBdHRyaWJ1dGVzKTsKIH0KIAogRUdMT2ZmU2NyZWVuU3VyZmFjZTo6
fkVHTE9mZlNjcmVlblN1cmZhY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29uZmlnU2VsZWN0b3IuaApp
bmRleCA4YTYxMDlhMmZjNGUxMDUzZjJmZWFkMWM4ZWYxOWFjZWIwNmYzODFkLi44ZmY3YTliYzJh
YWIwYjExYmZlOTRmNjRhNjZkN2NiM2M2MTZjNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29uZmlnU2VsZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29uZmln
U2VsZWN0b3IuaApAQCAtMTQwLDE0ICsxNDAsMTMgQEAgcHJpdmF0ZToKICAgICBHTFhGQkNvbmZp
ZyBmaW5kTWF0Y2hpbmdDb25maWcoY29uc3QgaW50IGF0dHJpYnV0ZXNbXSwgaW50IGRlcHRoID0g
MzIpCiAgICAgewogICAgICAgICBpbnQgbnVtQXZhaWxhYmxlQ29uZmlnczsKLSAgICAgICAgT3du
UHRyWDExPEdMWEZCQ29uZmlnPiB0ZW1wKGdsWENob29zZUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0
aXZlRGlzcGxheSgpLCBEZWZhdWx0U2NyZWVuKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpKSwg
YXR0cmlidXRlcywgJm51bUF2YWlsYWJsZUNvbmZpZ3MpKTsKKyAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPEdMWEZCQ29uZmlnLCBYMTFEZWxldGVyPiB0ZW1wKGdsWENob29zZUZCQ29uZmlnKFgxMUhl
bHBlcjo6bmF0aXZlRGlzcGxheSgpLCBEZWZhdWx0U2NyZWVuKFgxMUhlbHBlcjo6bmF0aXZlRGlz
cGxheSgpKSwgYXR0cmlidXRlcywgJm51bUF2YWlsYWJsZUNvbmZpZ3MpKTsKIAogICAgICAgICBp
ZiAoIW51bUF2YWlsYWJsZUNvbmZpZ3MgfHwgIXRlbXAuZ2V0KCkpCiAgICAgICAgICAgICByZXR1
cm4gMDsKIAotICAgICAgICBPd25QdHJYMTE8WFZpc3VhbEluZm8+IHNjb3BlZFZpc3VhbEluZm87
CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQXZhaWxhYmxlQ29uZmlnczsgKytpKSB7
Ci0gICAgICAgICAgICBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmln
KFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wW2ldKTsKKyAgICAgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRlcj4gc2NvcGVkVmlzdWFsSW5mbyA9IGds
WEdldFZpc3VhbEZyb21GQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgdGVtcFtp
XSk7CiAgICAgICAgICAgICBpZiAoIXNjb3BlZFZpc3VhbEluZm8uZ2V0KCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAKQEAgLTE2OSw3ICsxNjgsNyBAQCBwcml2YXRlOgogICAgICAgICB9
CiAKICAgICAgICAgLy8gRGlkIG5vdCBmaW5kIGFueSB2aXN1YWwgc3VwcG9ydGluZyBhbHBoYSwg
c2VsZWN0IHRoZSBmaXJzdCBhdmFpbGFibGUgY29uZmlnLgotICAgICAgICBzY29wZWRWaXN1YWxJ
bmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgp
LCB0ZW1wWzBdKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFEZWxl
dGVyPiBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBl
cjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wWzBdKTsKIAogICAgICAgICBpZiAoKG1fYXR0cmlidXRl
cyAmIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXBwb3J0QWxwaGEpICYmIChzY29wZWRWaXN1YWxJbmZv
LT5kZXB0aCAhPSAzMikpCiAgICAgICAgICAgICBtX2F0dHJpYnV0ZXMgJj0gfkdMUGxhdGZvcm1T
dXJmYWNlOjpTdXBwb3J0QWxwaGE7CkBAIC0xODAsMTQgKzE3OSwxMyBAQCBwcml2YXRlOgogICAg
IEdMWEZCQ29uZmlnIGZpbmRNYXRjaGluZ0NvbmZpZ1dpdGhWaXN1YWxJZChjb25zdCBpbnQgYXR0
cmlidXRlc1tdLCBpbnQgZGVwdGgsIFZpc3VhbElEIGlkKQogICAgIHsKICAgICAgICAgaW50IG51
bUF2YWlsYWJsZUNvbmZpZ3M7Ci0gICAgICAgIE93blB0clgxMTxHTFhGQkNvbmZpZz4gdGVtcChn
bFhDaG9vc2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVl
bihYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFpbGFibGVD
b25maWdzKSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHTFhGQkNvbmZpZywgWDExRGVsZXRl
cj4gdGVtcChnbFhDaG9vc2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVm
YXVsdFNjcmVlbihYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0dHJpYnV0ZXMsICZudW1B
dmFpbGFibGVDb25maWdzKSk7CiAKICAgICAgICAgaWYgKCFudW1BdmFpbGFibGVDb25maWdzIHx8
ICF0ZW1wLmdldCgpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgT3duUHRyWDEx
PFhWaXN1YWxJbmZvPiBzY29wZWRWaXN1YWxJbmZvOwogICAgICAgICBmb3IgKGludCBpID0gMDsg
aSA8IG51bUF2YWlsYWJsZUNvbmZpZ3M7ICsraSkgewotICAgICAgICAgICAgc2NvcGVkVmlzdWFs
SW5mbyA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXko
KSwgdGVtcFtpXSk7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgx
MURlbGV0ZXI+IHNjb3BlZFZpc3VhbEluZm8gPSBnbFhHZXRWaXN1YWxGcm9tRkJDb25maWcoWDEx
SGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIHRlbXBbaV0pOwogICAgICAgICAgICAgaWYgKCFzY29w
ZWRWaXN1YWxJbmZvLmdldCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3Vy
ZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYU3VyZmFjZS5jcHAKaW5kZXggMmIzNTMwMmU3ZThlYWEyNTUwMjRkMTVjNTIwZDZhOTE4Nzcw
YTdiYS4uMTZhOGUwMzFmMzEyNjQwYjMxYjQyNWQ2Y2M0OTUyYjQzNDlkMGZiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9HTFhTdXJmYWNlLmNwcApAQCAtNjcsNyArNjcsNyBAQCBHTFhUcmFuc3BvcnRTdXJmYWNlOjpH
TFhUcmFuc3BvcnRTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVz
CiAgICAgbV9zaGFyZWREaXNwbGF5ID0gWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCk7CiAgICAg
YXR0cmlidXRlcyB8PSBHTFBsYXRmb3JtU3VyZmFjZTo6RG91YmxlQnVmZmVyZWQ7CiAgICAgbV9j
b25maWdTZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYQ29uZmlnU2VsZWN0b3I+KGF0dHJp
YnV0ZXMpOwotICAgIE93blB0clgxMTxYVmlzdWFsSW5mbz4gdmlzSW5mbyhtX2NvbmZpZ1NlbGVj
dG9yLT52aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnN1cmZhY2VDb250ZXh0Q29uZmlnKCkp
KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURlbGV0ZXI+IHZpc0luZm8o
bV9jb25maWdTZWxlY3Rvci0+dmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT5zdXJmYWNlQ29u
dGV4dENvbmZpZygpKSk7CiAKICAgICBpZiAoIXZpc0luZm8uZ2V0KCkpIHsKICAgICAgICAgZGVz
dHJveSgpOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgR0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5p
dGlhbGl6ZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogCiAgICAgbV9jb25maWdTZWxl
Y3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYQ29uZmlnU2VsZWN0b3I+KGF0dHJpYnV0ZXMpOwog
Ci0gICAgT3duUHRyWDExPFhWaXN1YWxJbmZvPiB2aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3It
PnZpc3VhbEluZm8obV9jb25maWdTZWxlY3Rvci0+cGl4bWFwQ29udGV4dENvbmZpZygpKSk7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFEZWxldGVyPiB2aXN1YWxJbmZvKG1f
Y29uZmlnU2VsZWN0b3ItPnZpc3VhbEluZm8obV9jb25maWdTZWxlY3Rvci0+cGl4bWFwQ29udGV4
dENvbmZpZygpKSk7CiAgICAgWDExSGVscGVyOjpjcmVhdGVQaXhtYXAoJm1fcGl4bWFwLCAqdmlz
dWFsSW5mby5nZXQoKSk7CiAKICAgICBpZiAoIW1fcGl4bWFwKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvT3duUHRyWDExLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvT3duUHRyWDExLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4Nzc2MTBhYmVlMmVlN2M0MWYwMTY2NWM0
YjkwZGQ1NmQzYWVkYjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0
clgxMS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBPd25QdHJYMTFfaAotI2RlZmluZSBPd25QdHJYMTFfaAotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgT3duUHRyWDExIHsKLQot
ICAgIE93blB0clgxMSgpIDogbV94UmVzb3VyY2UoMCkgeyB9Ci0gICAgT3duUHRyWDExKFQqIHhS
ZXNvdXJjZSkgOiBtX3hSZXNvdXJjZSh4UmVzb3VyY2UpIHsgfQotCi0gICAgfk93blB0clgxMSgp
Ci0gICAgewotICAgICAgICBpZiAobV94UmVzb3VyY2UpCi0gICAgICAgICAgICBYRnJlZShtX3hS
ZXNvdXJjZSk7Ci0gICAgfQotCi0gICAgT3duUHRyWDExJiBvcGVyYXRvcj0oVCogeFJlc291cmNl
KQotICAgIHsKLSAgICAgICAgaWYgKG1feFJlc291cmNlKQotICAgICAgICAgICAgWEZyZWUobV94
UmVzb3VyY2UpOwotCi0gICAgICAgIG1feFJlc291cmNlID0geFJlc291cmNlOwotICAgICAgICBy
ZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgb3BlcmF0b3IgVCooKSBjb25zdCB7IHJldHVybiBt
X3hSZXNvdXJjZTsgfQotICAgIFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBtX3hSZXNv
dXJjZTsgfQotICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1feFJlc291cmNlOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgT3duUHRyWDExKGNvbnN0IE93blB0clgxMSYpOwotICAgIE93blB0clgxMSYg
b3BlcmF0b3I9KGNvbnN0IE93blB0clgxMSYpOwotICAgIHN0YXRpYyB2b2lkKiBvcGVyYXRvciBu
ZXcgKHNpemVfdCk7Ci0gICAgc3RhdGljIHZvaWQgb3BlcmF0b3IgZGVsZXRlICh2b2lkKik7Ci0g
ICAgVCogbV94UmVzb3VyY2U7Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNw
cAppbmRleCA0MDlhNDdmNDAxZjIzNjU2YTM3NDRhYjNhYzRkZjE4ZjUyYWJlNzQ5Li40YmU2MmJi
NGY4MjIwZDg4MmEzOTMwMjAxYjE3ZTNjYTRiZWIxMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNw
cApAQCAtMjQwLDcgKzI0MCw3IEBAIHZvaWQgWDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5k
b3codWludDMyX3QqIGhhbmRsZUlkLCBjb25zdCBFR0xpbnQgaWQsIGJvb2wKICAgICBtZW1zZXQo
JnZpc3VhbEluZm9UZW1wbGF0ZSwgMCwgc2l6ZW9mKFhWaXN1YWxJbmZvKSk7CiAgICAgdmlzdWFs
SW5mb1RlbXBsYXRlLnZpc3VhbGlkID0gdmlzdWFsSWQ7CiAgICAgaW50IG1hdGNoaW5nQ291bnQg
PSAwOwotICAgIE93blB0clgxMTxYVmlzdWFsSW5mbz4gbWF0Y2hpbmdWaXN1YWxzKFhHZXRWaXN1
YWxJbmZvKG5hdGl2ZURpc3BsYXkoKSwgVmlzdWFsSURNYXNrLCAmdmlzdWFsSW5mb1RlbXBsYXRl
LCAmbWF0Y2hpbmdDb3VudCkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDEx
RGVsZXRlcj4gbWF0Y2hpbmdWaXN1YWxzKFhHZXRWaXN1YWxJbmZvKG5hdGl2ZURpc3BsYXkoKSwg
VmlzdWFsSURNYXNrLCAmdmlzdWFsSW5mb1RlbXBsYXRlLCAmbWF0Y2hpbmdDb3VudCkpOwogICAg
IFhWaXN1YWxJbmZvKiBmb3VuZFZpc3VhbCA9IDA7CiAKICAgICBpZiAobWF0Y2hpbmdWaXN1YWxz
KSB7CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBYMTFIZWxwZXI6OmNyZWF0ZVBpeG1hcChQaXht
YXAqIGhhbmRsZUlkLCBjb25zdCBFR0xpbnQgaWQsIGJvb2wgaGFzQWxwaGEsIGMKICAgICBtZW1z
ZXQoJnZpc3VhbEluZm9UZW1wbGF0ZSwgMCwgc2l6ZW9mKFhWaXN1YWxJbmZvKSk7CiAgICAgdmlz
dWFsSW5mb1RlbXBsYXRlLnZpc3VhbGlkID0gdmlzdWFsSWQ7CiAgICAgaW50IG1hdGNoaW5nQ291
bnQgPSAwOwotICAgIE93blB0clgxMTxYVmlzdWFsSW5mbz4gbWF0Y2hpbmdWaXN1YWxzKFhHZXRW
aXN1YWxJbmZvKG5hdGl2ZURpc3BsYXkoKSwgVmlzdWFsSURNYXNrLCAmdmlzdWFsSW5mb1RlbXBs
YXRlLCAmbWF0Y2hpbmdDb3VudCkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywg
WDExRGVsZXRlcj4gbWF0Y2hpbmdWaXN1YWxzKFhHZXRWaXN1YWxJbmZvKG5hdGl2ZURpc3BsYXko
KSwgVmlzdWFsSURNYXNrLCAmdmlzdWFsSW5mb1RlbXBsYXRlLCAmbWF0Y2hpbmdDb3VudCkpOwog
ICAgIFhWaXN1YWxJbmZvKiBmb3VuZFZpc3VhbCA9IDA7CiAgICAgaW50IHJlcXVpcmVkRGVwdGgg
PSBoYXNBbHBoYSA/IDMyIDogMjQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuaAppbmRleCBhN2FlYjcwZGEy
MTMyNmMyMzkyMGY0ZTc5NTk0YzVjODVjZjYyYzhlLi4xMDNmMDAxMzVlMjNlOGYwMWQ1NDU4NWUz
MDY4OWMwNGQ3MGUxMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5oCkBAIC0yNyw3ICsyNyw2IEBACiAj
ZGVmaW5lIFgxMUhlbHBlcl9oCiAKICNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiT3du
UHRyWDExLmgiCiAKICNpZiBVU0UoRUdMKQogI2luY2x1ZGUgPG9wZW5nbC9HTERlZnMuaD4KQEAg
LTQzLDggKzQyLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgWDExSGVscGVy
IHsKK2NsYXNzIFgxMURlbGV0ZXIgeworcHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHZvaWQgb3BlcmF0b3IoKShUKiByZXNvdXJjZSkKKyAgICB7CisgICAgICAgIGlmIChyZXNvdXJj
ZSkKKyAgICAgICAgICAgIFhGcmVlKHJlc291cmNlKTsKKyAgICB9Cit9OwogCitjbGFzcyBYMTFI
ZWxwZXIgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZVBpeG1hcChQaXhtYXAqLCBj
b25zdCBYVmlzdWFsSW5mbyYsIGNvbnN0IEludFNpemUmID0gSW50U2l6ZSgxLCAxKSk7CiAgICAg
c3RhdGljIHZvaWQgY3JlYXRlT2ZmU2NyZWVuV2luZG93KHVpbnQzMl90KiwgY29uc3QgWFZpc3Vh
bEluZm8mLCBjb25zdCBJbnRTaXplJiA9IEludFNpemUoMSwgMSkpOwpAQCAtNjEsNyArNjgsNiBA
QCBwdWJsaWM6CiB9OwogCiBjbGFzcyBTY29wZWRYUGl4bWFwQ3JlYXRpb25FcnJvckhhbmRsZXIg
ewotCiBwdWJsaWM6CiAgICAgU2NvcGVkWFBpeG1hcENyZWF0aW9uRXJyb3JIYW5kbGVyKCk7CiAg
ICAgflNjb3BlZFhQaXhtYXBDcmVhdGlvbkVycm9ySGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJv
bGxlci5jcHAKaW5kZXggYzllOTM4YzI3ZDI0NTg3NTg2NDVkMjJkYzUyMGQ3ZDJjMDM0YzI2ZC4u
NjgwMWMxNmFjYmQzNWVmMzVmM2M1YTkzOTc5MjUwYmQzODgwZjU2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNv
bnRyb2xsZXIuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2
YXRlRnVsbHNjcmVlbldpbmRvdy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUluc3RhbmNlSGFuZGxlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjAsOCAr
NTksOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgRnVsbFNjcmVlbkNvbnRyb2xsZXIqIG1fY29udHJv
bGxlcjsKICAgICBGdWxsU2NyZWVuQ29udHJvbGxlckNsaWVudCogbV9jbGllbnQ7Ci0gICAgT3du
UHRyPE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c+IG1fZnVsbFNjcmVlbldpbmRv
dzsKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdz4gbV9iYWNr
Z3JvdW5kV2luZG93OworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVGdWxs
c2NyZWVuV2luZG93PiBtX2Z1bGxTY3JlZW5XaW5kb3c7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c+IG1fYmFja2dyb3VuZFdpbmRvdzsKICAg
ICBJbnRSZWN0IG1fZnVsbFNjcmVlbkZyYW1lOwogICAgIEludFJlY3QgbV9vcmlnaW5hbEZyYW1l
OwogICAgIEhXTkQgbV9vcmlnaW5hbEhvc3Q7CkBAIC0xMDQsNyArMTAzLDcgQEAgTFJFU1VMVCBG
dWxsU2NyZWVuQ29udHJvbGxlcjo6UHJpdmF0ZTo6ZnVsbHNjcmVlbkNsaWVudFduZFByb2MoSFdO
RCBod25kLCBVSU5UIG0KIH0KIAogRnVsbFNjcmVlbkNvbnRyb2xsZXI6OkZ1bGxTY3JlZW5Db250
cm9sbGVyKEZ1bGxTY3JlZW5Db250cm9sbGVyQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3ByaXZh
dGUoYWRvcHRQdHIobmV3IEZ1bGxTY3JlZW5Db250cm9sbGVyOjpQcml2YXRlKHRoaXMsIGNsaWVu
dCkpKQorICAgIDogbV9wcml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8UHJpdmF0ZT4odGhpcywgY2xp
ZW50KSkKIHsKICAgICBBU1NFUlRfQVJHKGNsaWVudCwgY2xpZW50KTsKIH0KQEAgLTEzNCwxMyAr
MTMzLDEzIEBAIHZvaWQgRnVsbFNjcmVlbkNvbnRyb2xsZXI6OmVudGVyRnVsbFNjcmVlbigpCiAg
ICAgbV9wcml2YXRlLT5tX29yaWdpbmFsRnJhbWUgPSBvcmlnaW5hbEZyYW1lOwogCiAgICAgQVNT
RVJUKCFtX3ByaXZhdGUtPm1fYmFja2dyb3VuZFdpbmRvdyk7Ci0gICAgbV9wcml2YXRlLT5tX2Jh
Y2tncm91bmRXaW5kb3cgPSBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVl
bldpbmRvdyhtX3ByaXZhdGUuZ2V0KCkpKTsKKyAgICBtX3ByaXZhdGUtPm1fYmFja2dyb3VuZFdp
bmRvdyA9IHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRv
dz4obV9wcml2YXRlLmdldCgpKTsKICAgICBtX3ByaXZhdGUtPm1fYmFja2dyb3VuZFdpbmRvdy0+
Y3JlYXRlV2luZG93KDApOwogICAgIDo6QW5pbWF0ZVdpbmRvdyhtX3ByaXZhdGUtPm1fYmFja2dy
b3VuZFdpbmRvdy0+aHduZCgpLCBrRnVsbFNjcmVlbkFuaW1hdGlvbkR1cmF0aW9uLCBBV19CTEVO
RCB8IEFXX0FDVElWQVRFKTsKIAogICAgIG1fcHJpdmF0ZS0+bV9jbGllbnQtPmZ1bGxTY3JlZW5D
bGllbnRXaWxsRW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgQVNTRVJUKCFtX3ByaXZhdGUtPm1fZnVs
bFNjcmVlbldpbmRvdyk7Ci0gICAgbV9wcml2YXRlLT5tX2Z1bGxTY3JlZW5XaW5kb3cgPSBhZG9w
dFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdyhtX3ByaXZhdGUuZ2V0
KCkpKTsKKyAgICBtX3ByaXZhdGUtPm1fZnVsbFNjcmVlbldpbmRvdyA9IHN0ZDo6bWFrZV91bmlx
dWU8TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdz4obV9wcml2YXRlLmdldCgpKTsK
ICAgICBBU1NFUlQobV9wcml2YXRlLT5tX2Z1bGxTY3JlZW5XaW5kb3cpOwogICAgIG1fcHJpdmF0
ZS0+bV9mdWxsU2NyZWVuV2luZG93LT5jcmVhdGVXaW5kb3coMCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9s
bGVyLmgKaW5kZXggNzZhODgwZGE3OTcyMWZmNmViNzY0MTQyYTYzZjY3ZWFlM2Y3ZGIyNS4uMzE3
N2Q5ZWE4NzAyOTk3ZmI4ODc5N2E1NGNhZTU5NDkyNTFkODI2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9s
bGVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAot
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNTQsNyArNTQsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjbGFzcyBQcml2
YXRlOwogICAgIGZyaWVuZCBjbGFzcyBQcml2YXRlOwotICAgIE93blB0cjxGdWxsU2NyZWVuQ29u
dHJvbGxlcjo6UHJpdmF0ZT4gbV9wcml2YXRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGdWxsU2Ny
ZWVuQ29udHJvbGxlcjo6UHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHQzRFdpbi5jcHAKaW5kZXggNjlkZmM3ZjY1ZTI5OTg2ODYwMDQ2NmNiNWI1ZDliZTdjNjk0M2Iz
MS4uN2E1ZDdiYTA4YjZhYWNiZDJiZmVhYzM0NmVlYWExZGU1MjA5OTIzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3ND
b250ZXh0M0RXaW4uY3BwCkBAIC0yOSw4ICsyOSw2IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0M0QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllcldpbi5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgUExBVEZPUk0oV0lOKQogI2luY2x1
ZGUgPEdMU0xBTkcvU2hhZGVyTGFuZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5jcHAKaW5kZXggNjIyYTM2NDJmZTlk
YmNkZDVkZDg4MmRhZDNlMTA2MGFjYzk0OWIwMi4uMmQyMDU4NzFjZmRlZTVmNzg4MzE3OTZjNzM3
NjBlYzE0MDI5N2QzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNs
dWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgogI2luY2x1ZGUgPFdlYktpdFN5
c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNTIsMTMgKzUxLDEzIEBAIHN0YXRpYyB2b2lkIFdLQ0FJbWFnZVF1ZXVlUmVsZWFz
ZShDQUltYWdlUXVldWVSZWYgaXEpCiB9CiAKIFdLQ0FJbWFnZVF1ZXVlOjpXS0NBSW1hZ2VRdWV1
ZSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LCB1aW50MzJfdCBjYXBhY2l0eSkKLSAg
ICA6IG1fcHJpdmF0ZShhZG9wdFB0cihuZXcgV0tDQUltYWdlUXVldWVQcml2YXRlKCkpKQorICAg
IDogbV9wcml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8V0tDQUltYWdlUXVldWVQcml2YXRlPigpKQog
ewogICAgIG1fcHJpdmF0ZS0+bV9pbWFnZVF1ZXVlID0gYWRvcHRDRih3a0NBSW1hZ2VRdWV1ZUNy
ZWF0ZSh3aWR0aCwgaGVpZ2h0LCBjYXBhY2l0eSkpOwogfQogCiBXS0NBSW1hZ2VRdWV1ZTo6V0tD
QUltYWdlUXVldWUoY29uc3QgV0tDQUltYWdlUXVldWUmIG8pCi0gICAgOiBtX3ByaXZhdGUoYWRv
cHRQdHIobmV3IFdLQ0FJbWFnZVF1ZXVlUHJpdmF0ZSgpKSkKKyAgICA6IG1fcHJpdmF0ZShzdGQ6
Om1ha2VfdW5pcXVlPFdLQ0FJbWFnZVF1ZXVlUHJpdmF0ZT4oKSkKIHsKICAgICBtX3ByaXZhdGUt
Pm1faW1hZ2VRdWV1ZSA9IG8ubV9wcml2YXRlLT5tX2ltYWdlUXVldWU7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5oCmlu
ZGV4IDI1NjA3NjUwZmZkMmUzMzJmYzE0MmFiMGJkYTU0MGFmN2Y1MDAyNGIuLjI3NjBkNjExNjVh
YmUwNTE1NDBjZWU3NWU5ODQxMjcyMDI5NDFmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5oCkBAIC0yOSw4ICsyOSw4
IEBACiB0eXBlZGVmIGNvbnN0IHZvaWQgKiBDRlR5cGVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBfX0NGRGljdGlvbmFyeSAqIENGRGljdGlvbmFyeVJlZjsKIAorI2luY2x1ZGUgPG1lbW9yeT4K
ICNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdL
Q0FJbWFnZVF1ZXVlKGNvbnN0IFdLQ0FJbWFnZVF1ZXVlJik7CiAgICAgV0tDQUltYWdlUXVldWUm
IG9wZXJhdG9yPShjb25zdCBXS0NBSW1hZ2VRdWV1ZSYpOwotICAgIE93blB0cjxXS0NBSW1hZ2VR
dWV1ZVByaXZhdGU+IG1fcHJpdmF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V0tDQUltYWdlUXVl
dWVQcml2YXRlPiBtX3ByaXZhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcApp
bmRleCBjN2YwYjQzOThmMWEwZmI5ZWFiZjM4NmQwOTBkNzdhYzQ0OGMzMzg5Li5kMDQ5Mjk0MDQw
YmMzYzk4ZmViMTFlZDI2OTdhYjUxYjAyNzhiODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5j
cHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZVNlc3Npb24uaCIK
IAogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDc3MjQ2
NmRhYjkxMzNhMmFlMWU5Y2M4NGI5NjMzNDE4ZWY4MGQ2NjQuLmIwZTAzNTk2NzBjMWE2OWEzMDQw
MGZhZDc0NTk0OGRkMTRkMmJkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC0zMSw3ICszMSw2IEBA
CiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
IAogI2lmIFVTRShDRk5FVFdPUkspCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5l
Y3Rpb25EZWxlZ2F0ZS5oIgpAQCAtMTYzLDcgKzE2Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdW5zaWduZWQgbV9zc2xFcnJvcnM7CiAgICAgICAgIFZlY3RvcjxjaGFyPiBtX3Bv
c3RCeXRlczsKIAotICAgICAgICBPd25QdHI8TXVsdGlwYXJ0SGFuZGxlPiBtX211bHRpcGFydEhh
bmRsZTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE11bHRpcGFydEhhbmRsZT4gbV9tdWx0aXBh
cnRIYW5kbGU7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICAgICAgR1JlZlB0cjxTb3VwTWVz
c2FnZT4gbV9zb3VwTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5jcHAKaW5kZXggZTc4MDUwZmUyOTliN2Fh
OWRiODBlMDVmNDMyNDg1YzVjYmI5YzMyMS4uODk3Zjk1YzE5MGE1NDE2NWJkOTU0NzljNDU0ZTM5
NDZiZWVmMGNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL011bHRpcGFydEhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5jcHAKQEAgLTM3LDExICszNyw2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxNdWx0aXBhcnRIYW5kbGU+IE11bHRpcGFydEhh
bmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFN0cmluZyYgYm91bmRh
cnkpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNdWx0aXBhcnRIYW5kbGUoaGFuZGxlLCBi
b3VuZGFyeSkpOwotfQotCiBib29sIE11bHRpcGFydEhhbmRsZTo6ZXh0cmFjdEJvdW5kYXJ5KGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0cmluZyYgYm91bmRhcnkpCiB7CiAgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBsZW5ndGggPSBzdHJsZW4oImJvdW5kYXJ5PSIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5oCmlu
ZGV4IDlhYjg1NjI0NTg3MzFkYWE1NThlYzcyNjRmZmViZGZjYTc0M2U5ZDAuLmJiMGYwZjZjZjMz
OTZhYWEwMTVjYTk2YzBmYTEyZWEzNThkMmVjZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9NdWx0aXBhcnRIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmgKQEAgLTI4LDE3ICsy
OCwxMyBAQAogCiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgogI2luY2x1ZGUgIlJlc291cmNl
SGFuZGxlLmgiCi0KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIE11bHRpcGFydEhhbmRsZSB7Ci0KIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxNdWx0aXBhcnRIYW5kbGU+IGNyZWF0ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBj
b25zdCBTdHJpbmcmIGJvdW5kYXJ5KTsKICAgICBzdGF0aWMgYm9vbCBleHRyYWN0Qm91bmRhcnko
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgU3RyaW5nJiBib3VuZGFyeSk7CiAKICAgICBNdWx0
aXBhcnRIYW5kbGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgU3RyaW5nJiBib3VuZGFy
eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKaW5kZXggMzNhYjg3YjQwZWYyMDk0OGI1ZWE2
YzUyNDQ5MjRmNzkxNjgwNWYwNy4uZmQ4ZjU4ZTg4MjU5MzcyZmQyMDJiYjYyOTdhNTlkYzYyOWVi
ZGZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKQEAgLTUxNSw3ICs1MTUsNyBAQCBz
dGF0aWMgc2l6ZV90IGhlYWRlckNhbGxiYWNrKGNoYXIqIHB0ciwgc2l6ZV90IHNpemUsIHNpemVf
dCBubWVtYiwgdm9pZCogZGF0YSkKICAgICAgICAgICAgIFN0cmluZyBib3VuZGFyeTsKICAgICAg
ICAgICAgIGJvb2wgcGFyc2VkID0gTXVsdGlwYXJ0SGFuZGxlOjpleHRyYWN0Qm91bmRhcnkoZC0+
bV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSwg
Ym91bmRhcnkpOwogICAgICAgICAgICAgaWYgKHBhcnNlZCkKLSAgICAgICAgICAgICAgICBkLT5t
X211bHRpcGFydEhhbmRsZSA9IE11bHRpcGFydEhhbmRsZTo6Y3JlYXRlKGpvYiwgYm91bmRhcnkp
OworICAgICAgICAgICAgICAgIGQtPm1fbXVsdGlwYXJ0SGFuZGxlID0gc3RkOjptYWtlX3VuaXF1
ZTxNdWx0aXBhcnRIYW5kbGU+KGpvYiwgYm91bmRhcnkpOwogICAgICAgICB9CiAKICNpZiBFTkFC
TEUoV0VCX1RJTUlORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUVuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVuY29kZXIuaAppbmRleCA2ZjRmZjEzNTg2YzJmMjdkNjM4
MGY5NzliNzJjNWJkMGMyMDBlMTFkLi4yNWU4ZjEyOTNiYjM1NmFmZDk2MzkxNjMxNDE4MzQ0Mjhj
MmJiZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVFbmNvZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlRW5jb2Rlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxF
KE5FVFdPUktfQ0FDSEUpCiAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVDb2Rlci5oIgotCisjaW5j
bHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nSGFzaGVyLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTU5NTVmODBjNWI0M2ViNDhkZmY2ODFhMmM0ODliNWVj
YzY0NjA3ZC4uZDZlMTFjMWEyMDgwYjc0ZDgwMDEwZTU5ZTE1M2YwMDEzMjkxNzA3MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMx
IEBACiAyMDE1LTA0LTIzICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAg
ICBDb252ZXJ0IE93blB0ciBhbmQgUGFzc093blB0ciB1c2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93aW4vSGlzdG9yeURlbGVnYXRlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZS4K
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5oOiBEaXR0by4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwOiBSZW1vdmVkIE93blB0
ci1zcGVjaWZpYyB0ZXN0IGNhc2VzLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0hhc2hTZXQuY3BwOiBEaXR0by4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L3dpbi9XZWJWaWV3RGVzdHJ1Y3Rpb24uY3BwOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGUu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3Bw
OiBVc2UgdW5pcXVlX3B0ci4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdDJVc2VyTWVz
c2FnZVJvdW5kVHJpcFRlc3Q6OlNldFVwKTogVXNlIG1ha2VfdW5pcXVlLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsTG9hZC5jcHA6IERpdHRvLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6V2ViS2l0MldpbGxMb2FkVGVzdDo6U2V0VXApOiBEaXR0by4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NRE9NV2luZG93VGVzdC5jcHA6
CisgICAgICAgIChXZWJLaXRET01ET01XaW5kb3dUZXN0OjpjcmVhdGUpOiBEaXR0by4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6
CisgICAgICAgIChkb2N1bWVudExvYWRlZENhbGxiYWNrKTogVXNlIGEgcXVldWUgb2YgRGVsYXll
ZFNpZ25hbCBvYmplY3RzIGluc3RlYWQKKyAgICAgICAgb2Ygc21hcnQgcG9pbnRlcnMgdG8gRGVs
YXllZFNJZ25hbCBvYmplY3RzLgorICAgICAgICAodXJpQ2hhbmdlZENhbGxiYWNrKTogRGl0dG8u
CisKKzIwMTUtMDQtMjMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCiAgICAgICAg
IEFub3RoZXIgcm91bmQgb2YgcmVtb3ZpbmcgdXNlIG9mIE93blB0ciwgUGFzc093blB0ciwgYW5k
IGRlbGV0ZU93bmVkUHRyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDQwOTAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0hp
c3RvcnlEZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0hpc3RvcnlEZWxlZ2F0
ZS5oCmluZGV4IDIzNmVkZDM2ZjBiMTRiMTkwZGI1NzU4ZWQyNTZmZjE1Y2ViMjQ5MDEuLmM4NTRh
ZTAwMTdlZTQ0YWQyYmZkMDVlMjBmNjdjNTVmMGRlZTMwMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9IaXN0b3J5RGVsZWdhdGUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vSGlzdG9yeURlbGVnYXRlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgSGlz
dG9yeURlbGVnYXRlX2gKIAogI2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4KLSNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CiAKIGNsYXNzIEhpc3RvcnlEZWxlZ2F0ZSA6IHB1YmxpYyBJV2ViSGlzdG9y
eURlbGVnYXRlIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9VSURlbGVnYXRlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5oCmlu
ZGV4IDdmNGY5M2RhNGRiYmQwNGZjYzhlMmM4NWQ3OTM4ZDEyMjFkMDQ3YWYuLjZlMGZkNGE3N2U4
NzdhZTliYjZjODk3MDIwOTg2NzJhM2U2ZTE4NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9VSURlbGVnYXRlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJ
RGVsZWdhdGUuaApAQCAtMzEsNyArMzEsNiBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIu
aD4KICNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgog
I2luY2x1ZGUgPHdpbmRlZi5oPgogCiBjbGFzcyBEUlRVbmRvTWFuYWdlcjsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAKaW5kZXggMjM2ZTQ2OTk1ZDE4YTRkNjc1NTdl
MDJiNzQzZDE1ZTFkOTA1MjljNi4uYTI4MWYyMzBhN2VjZDgxYjU1MzQ2NTA4NTQyZDAyNTZkNmQ2
Y2RkYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAKQEAgLTMw
LDggKzMwLDYgQEAKICNpbmNsdWRlICJSZWZMb2dnZXIuaCIKICNpbmNsdWRlIDxzdHJpbmc+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAK
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKQEAgLTE3NCwxMDEgKzE3Miw2IEBAIFRFU1QoV1RG
X0hhc2hNYXAsIEVmZmljaWVudEdldHRlcikKICAgICB9CiB9CiAKLVRFU1QoV1RGX0hhc2hNYXAs
IE93blB0cktleSkKLXsKLSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpUZXN0aW5n
U2NvcGUgc2NvcGU7Ci0KLSAgICBIYXNoTWFwPE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JD
b3VudGVyPiwgaW50PiBtYXA7Ci0KLSAgICBPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291
bnRlcj4gb3duUHRyID0gYWRvcHRQdHIobmV3IENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXIp
OwotICAgIG1hcC5hZGQoV1RGOjptb3ZlKG93blB0ciksIDIpOwotCi0gICAgRVhQRUNUX0VRKDF1
LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAg
RVhQRUNUX0VRKDB1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNv
dW50KTsKLQotICAgIG1hcC5jbGVhcigpOwotICAgIAotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3Ry
dWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9F
USgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci19
Ci0KLVRFU1QoV1RGX0hhc2hNYXAsIE93blB0cktleV9GaW5kVXNpbmdSYXdQb2ludGVyKQotewot
ICAgIEhhc2hNYXA8T3duUHRyPGludD4sIGludD4gbWFwOwotCi0gICAgT3duUHRyPGludD4gb3du
UHRyID0gYWRvcHRQdHIobmV3IGludCg1KSk7Ci0gICAgaW50KiBwdHIgPSBvd25QdHIuZ2V0KCk7
Ci0gICAgbWFwLmFkZChXVEY6Om1vdmUob3duUHRyKSwgMik7Ci0KLSAgICBhdXRvIGl0ID0gbWFw
LmZpbmQocHRyKTsKLSAgICBBU1NFUlRfVFJVRShpdCAhPSBtYXAuZW5kKCkpOwotICAgIEVYUEVD
VF9FUShwdHIsIGl0LT5rZXkuZ2V0KCkpOwotICAgIEVYUEVDVF9FUSgyLCBpdC0+dmFsdWUpOwot
fQotCi1URVNUKFdURl9IYXNoTWFwLCBPd25QdHJLZXlfQ29udGFpbnNVc2luZ1Jhd1BvaW50ZXIp
Ci17Ci0gICAgSGFzaE1hcDxPd25QdHI8aW50PiwgaW50PiBtYXA7Ci0KLSAgICBPd25QdHI8aW50
PiBvd25QdHIgPSBhZG9wdFB0cihuZXcgaW50KDUpKTsKLSAgICBpbnQqIHB0ciA9IG93blB0ci5n
ZXQoKTsKLSAgICBtYXAuYWRkKFdURjo6bW92ZShvd25QdHIpLCAyKTsKLQotICAgIEVYUEVDVF9F
USh0cnVlLCBtYXAuY29udGFpbnMocHRyKSk7Ci19Ci0KLVRFU1QoV1RGX0hhc2hNYXAsIE93blB0
cktleV9HZXRVc2luZ1Jhd1BvaW50ZXIpCi17Ci0gICAgSGFzaE1hcDxPd25QdHI8aW50PiwgaW50
PiBtYXA7Ci0KLSAgICBPd25QdHI8aW50PiBvd25QdHIgPSBhZG9wdFB0cihuZXcgaW50KDUpKTsK
LSAgICBpbnQqIHB0ciA9IG93blB0ci5nZXQoKTsKLSAgICBtYXAuYWRkKFdURjo6bW92ZShvd25Q
dHIpLCAyKTsKLQotICAgIGludCB2YWx1ZSA9IG1hcC5nZXQocHRyKTsKLSAgICBFWFBFQ1RfRVEo
MiwgdmFsdWUpOwotfQotCi1URVNUKFdURl9IYXNoTWFwLCBPd25QdHJLZXlfUmVtb3ZlVXNpbmdS
YXdQb2ludGVyKQotewotICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OlRlc3RpbmdT
Y29wZSBzY29wZTsKLQotICAgIEhhc2hNYXA8T3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNv
dW50ZXI+LCBpbnQ+IG1hcDsKLQotICAgIE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3Vu
dGVyPiBvd25QdHIgPSBhZG9wdFB0cihuZXcgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcik7
Ci0gICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlciogcHRyID0gb3duUHRyLmdldCgpOwot
ICAgIG1hcC5hZGQoV1RGOjptb3ZlKG93blB0ciksIDIpOwotCi0gICAgRVhQRUNUX0VRKDF1LCBD
b25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQ
RUNUX0VRKDB1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50
KTsKLQotICAgIGJvb2wgcmVzdWx0ID0gbWFwLnJlbW92ZShwdHIpOwotICAgIEVYUEVDVF9FUSh0
cnVlLCByZXN1bHQpOwotCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JD
b3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3Rv
ckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLX0KLQotVEVTVChXVEZfSGFz
aE1hcCwgT3duUHRyS2V5X1Rha2VVc2luZ1Jhd1BvaW50ZXIpCi17Ci0gICAgQ29uc3RydWN0b3JE
ZXN0cnVjdG9yQ291bnRlcjo6VGVzdGluZ1Njb3BlIHNjb3BlOwotCi0gICAgSGFzaE1hcDxPd25Q
dHI8Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcj4sIGludD4gbWFwOwotCi0gICAgT3duUHRy
PENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI+IG93blB0ciA9IGFkb3B0UHRyKG5ldyBDb25z
dHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKTsKLSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3Vu
dGVyKiBwdHIgPSBvd25QdHIuZ2V0KCk7Ci0gICAgbWFwLmFkZChXVEY6Om1vdmUob3duUHRyKSwg
Mik7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNv
bnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEoMHUsIENvbnN0cnVjdG9yRGVzdHJ1Y3Rv
ckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotCi0gICAgaW50IHJlc3VsdCA9IG1hcC50YWtl
KHB0cik7Ci0gICAgRVhQRUNUX0VRKDIsIHJlc3VsdCk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENv
bnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBF
Q1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQp
OwotfQotCiBURVNUKFdURl9IYXNoTWFwLCBVbmlxdWVQdHJLZXkpCiB7CiAgICAgQ29uc3RydWN0
b3JEZXN0cnVjdG9yQ291bnRlcjo6VGVzdGluZ1Njb3BlIHNjb3BlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcAppbmRleCAzMTU1YmMwN2EyMjNiYWI0ZWE3ZDM2MTRm
ZmEzMTRiNzdjOGVlMjU5Li5kZGIxNzhjNzI1ODRmZmNiOGZiMzE0ZDg4ZThiMTU5NGZiYTExZGNk
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcApAQCAtMjgsOCAr
MjgsNiBAQAogI2luY2x1ZGUgIkNvdW50ZXJzLmgiCiAjaW5jbHVkZSAiTW92ZU9ubHkuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKQEAgLTEx
OSw5MyArMTE3LDYgQEAgVEVTVChXVEZfSGFzaFNldCwgTW92ZU9ubHkpCiAgICAgICAgIEVYUEVD
VF9UUlVFKHNlY29uZFNldC5jb250YWlucyhNb3ZlT25seShpICsgMSkpKTsKIH0KIAotVEVTVChX
VEZfSGFzaFNldCwgT3duUHRyS2V5KQotewotICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50
ZXI6OlRlc3RpbmdTY29wZSBzY29wZTsKLQotICAgIEhhc2hTZXQ8T3duUHRyPENvbnN0cnVjdG9y
RGVzdHJ1Y3RvckNvdW50ZXI+PiBzZXQ7Ci0KLSAgICBPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVj
dG9yQ291bnRlcj4gb3duUHRyID0gYWRvcHRQdHIobmV3IENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNv
dW50ZXIpOwotICAgIHNldC5hZGQoV1RGOjptb3ZlKG93blB0cikpOwotCi0gICAgRVhQRUNUX0VR
KDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0g
ICAgRVhQRUNUX0VRKDB1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlv
bkNvdW50KTsKLQotICAgIHNldC5jbGVhcigpOwotICAgIAotICAgIEVYUEVDVF9FUSgxdSwgQ29u
c3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVD
VF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7
Ci19Ci0KLVRFU1QoV1RGX0hhc2hTZXQsIE93blB0cktleV9GaW5kVXNpbmdSYXdQb2ludGVyKQot
ewotICAgIEhhc2hTZXQ8T3duUHRyPGludD4+IHNldDsKLQotICAgIE93blB0cjxpbnQ+IG93blB0
ciA9IGFkb3B0UHRyKG5ldyBpbnQoNSkpOwotICAgIGludCogcHRyID0gb3duUHRyLmdldCgpOwot
ICAgIHNldC5hZGQoV1RGOjptb3ZlKG93blB0cikpOwotCi0gICAgYXV0byBpdCA9IHNldC5maW5k
KHB0cik7Ci0gICAgQVNTRVJUX1RSVUUoaXQgIT0gc2V0LmVuZCgpKTsKLSAgICBFWFBFQ1RfRVEo
cHRyLCBpdC0+Z2V0KCkpOwotICAgIEVYUEVDVF9FUSg1LCAqaXQtPmdldCgpKTsKLX0KLQotVEVT
VChXVEZfSGFzaFNldCwgT3duUHRyS2V5X0NvbnRhaW5zVXNpbmdSYXdQb2ludGVyKQotewotICAg
IEhhc2hTZXQ8T3duUHRyPGludD4+IHNldDsKLQotICAgIE93blB0cjxpbnQ+IG93blB0ciA9IGFk
b3B0UHRyKG5ldyBpbnQoNSkpOwotICAgIGludCogcHRyID0gb3duUHRyLmdldCgpOwotICAgIHNl
dC5hZGQoV1RGOjptb3ZlKG93blB0cikpOwotCi0gICAgRVhQRUNUX0VRKHRydWUsIHNldC5jb250
YWlucyhwdHIpKTsKLX0KLQotVEVTVChXVEZfSGFzaFNldCwgT3duUHRyS2V5X1JlbW92ZVVzaW5n
UmF3UG9pbnRlcikKLXsKLSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpUZXN0aW5n
U2NvcGUgc2NvcGU7Ci0KLSAgICBIYXNoU2V0PE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JD
b3VudGVyPj4gc2V0OwotCi0gICAgT3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI+
IG93blB0ciA9IGFkb3B0UHRyKG5ldyBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKTsKLSAg
ICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKiBwdHIgPSBvd25QdHIuZ2V0KCk7Ci0gICAg
c2V0LmFkZChXVEY6Om1vdmUob3duUHRyKSk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVj
dG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEo
MHUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotCi0g
ICAgYm9vbCByZXN1bHQgPSBzZXQucmVtb3ZlKHB0cik7Ci0gICAgRVhQRUNUX0VRKHRydWUsIHJl
c3VsdCk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6
OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1
Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotfQotCi1URVNUKFdURl9IYXNoU2V0LCBP
d25QdHJLZXlfVGFrZVVzaW5nUmF3UG9pbnRlcikKLXsKLSAgICBDb25zdHJ1Y3RvckRlc3RydWN0
b3JDb3VudGVyOjpUZXN0aW5nU2NvcGUgc2NvcGU7Ci0KLSAgICBIYXNoU2V0PE93blB0cjxDb25z
dHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyPj4gc2V0OwotCi0gICAgT3duUHRyPENvbnN0cnVjdG9y
RGVzdHJ1Y3RvckNvdW50ZXI+IG93blB0ciA9IGFkb3B0UHRyKG5ldyBDb25zdHJ1Y3RvckRlc3Ry
dWN0b3JDb3VudGVyKTsKLSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKiBwdHIgPSBv
d25QdHIuZ2V0KCk7Ci0gICAgc2V0LmFkZChXVEY6Om1vdmUob3duUHRyKSk7Ci0KLSAgICBFWFBF
Q1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50
KTsKLSAgICBFWFBFQ1RfRVEoMHUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3Ry
dWN0aW9uQ291bnQpOwotCi0gICAgYXV0byByZXN1bHQgPSBzZXQudGFrZShwdHIpOwotICAgIEVY
UEVDVF9FUShwdHIsIHJlc3VsdC5nZXQoKSk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVj
dG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEo
MHUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotCi0g
ICAgcmVzdWx0ID0gbnVsbHB0cjsKLQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0
cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgxdSwgQ29u
c3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci19CiAKIFRFU1Qo
V1RGX0hhc2hTZXQsIFVuaXF1ZVB0cktleSkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L3dpbi9XZWJWaWV3RGVzdHJ1Y3Rpb24uY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvd2luL1dlYlZpZXdEZXN0cnVjdGlvbi5jcHAKaW5kZXgg
YjU5YTg0Y2I0N2ExNWI3NzY4NTUwMGQ0ZDBhM2NlYTNmYjc4M2QwOC4uY2NkYmM2MTA2NGUxYWEz
ODgzNGUzODRhZWQwYzNlNWMwZTFkODRmNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvd2luL1dlYlZpZXdEZXN0cnVjdGlvbi5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvd2luL1dlYlZpZXdEZXN0cnVjdGlvbi5jcHAKQEAgLTI5
LDcgKzI5LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NPTVB0ci5oPgogI2luY2x1ZGUgPFdlYktp
dC9XZWJLaXQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Q09NQVBJLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlLmNwcAppbmRleCA0
ZjAwMWE3NjcyODIxMTRkNmY3YTg2MjA2YzE0ZGRiYmM4Yzg3N2U3Li4xZTQ1MjUwNDk1YzM1YjQ5
ZDZkODZmOGMwMzEwNmE1OWMxODlmMzUxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZS5jcHAKQEAgLTMxLDggKzMxLDYgQEAKIAogI2luY2x1
ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCi0j
aW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApAQCAtNDUsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0OwotICAgIE93blB0cjxQ
bGF0Zm9ybVdlYlZpZXc+IHdlYlZpZXc7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtV2Vi
Vmlldz4gd2ViVmlldzsKIAogICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gcmVjaWV2ZWRCb2R5
OwogCkBAIC05NSw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICAgICAgY29udGV4dCA9IGFkb3B0V0so
VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiVXNlck1lc3NhZ2VUZXN0
IikpOwogICAgICAgICBzZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCB0aGlz
KTsKIAotICAgICAgICB3ZWJWaWV3ID0gYWRvcHRQdHIobmV3IFBsYXRmb3JtV2ViVmlldyhjb250
ZXh0LmdldCgpKSk7CisgICAgICAgIHdlYlZpZXcgPSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3Jt
V2ViVmlldz4oY29udGV4dC5nZXQoKSk7CiAgICAgICAgIHNldFBhZ2VMb2FkZXJDbGllbnQod2Vi
Vmlldy0+cGFnZSgpLCB0aGlzKTsKIAogICAgICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbExvYWQuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxMb2FkLmNwcAppbmRleCA3
NGIyMzkxMWUwMGNhNjZkZWY1MDhmOTcwMzAzMzE4MjNjODE3N2E4Li44M2Q2M2FiMThiY2NhMTEz
OWNiMWUxOWQyOTkxOWM2ZmIyMjhmNGUwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvV2lsbExvYWQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9XaWxsTG9hZC5jcHAKQEAgLTMxLDggKzMxLDYgQEAKIAogI2luY2x1ZGUgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCi0jaW5jbHVk
ZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKIApAQCAtNDQsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAg
ICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0OwotICAgIE93blB0cjxQbGF0Zm9y
bVdlYlZpZXc+IHdlYlZpZXc7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtV2ViVmlldz4g
d2ViVmlldzsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZTsKICAg
ICBXS1JldGFpblB0cjxXS1R5cGVSZWY+IG1lc3NhZ2VCb2R5OwpAQCAtNzQsNyArNzIsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJ
bmplY3RlZEJ1bmRsZVRlc3QoIldpbGxMb2FkVGVzdCIpKTsKICAgICAgICAgc2V0SW5qZWN0ZWRC
dW5kbGVDbGllbnQoY29udGV4dC5nZXQoKSwgdGhpcyk7CiAKLSAgICAgICAgd2ViVmlldyA9IGFk
b3B0UHRyKG5ldyBQbGF0Zm9ybVdlYlZpZXcoY29udGV4dC5nZXQoKSkpOworICAgICAgICB3ZWJW
aWV3ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KGNvbnRleHQuZ2V0KCkpOwog
CiAgICAgICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTURPTVdpbmRvd1Rlc3QuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTURPTVdpbmRvd1Rlc3Qu
Y3BwCmluZGV4IDI1ODRjMjBmZTQ1NzNkMTJkMGQ1MTgyMTI1NGJmMGU2YjM0Y2I1M2YuLmZjOGNl
ZmI1MjlkMTM3ZTY1NmRlZWMyNzk1YTcxY2NjNGI0Mjg3NzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01ET01XaW5kb3dUZXN0LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NRE9NV2luZG93VGVzdC5jcHAK
QEAgLTMwLDcgKzMwLDcgQEAgc3RhdGljIGdib29sZWFuIGNsaWNrZWRDYWxsYmFjayhXZWJLaXRE
T01ET01XaW5kb3cqLCBXZWJLaXRET01FdmVudCosIFdlYktpdERPTUQKIAogY2xhc3MgV2ViS2l0
RE9NRE9NV2luZG93VGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UHRyKG5ldyBXZWJLaXRET01ET01XaW5kb3dUZXN0KCkpOyB9CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxXZWJLaXRET01ET01XaW5kb3dUZXN0PigpOyB9CiAKIHByaXZhdGU6CiAgICAgZ3VpbnQ2NCB3
ZWJQYWdlRnJvbUFyZ3MoR1ZhcmlhbnQqIGFyZ3MpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKaW5kZXggMDZj
NGU1ZWE0NjhmMGIwYzM0ZjM0YzFlNjFhMjk4MzEwMGE5ZDk5Yi4uNTY2N2ZhOGIzODQwOWM4YjBi
ZmMwYjRmNjkyODM4NGNkZTc4ZTQ5MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcApAQCAtMjYsOCArMjYs
NiBAQAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1l
eHRlbnNpb24uaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lE
Lmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dVbmlxdWVQdHIuaD4KQEAgLTgzLDcgKzgxLDcgQEAgc3RydWN0IERlbGF5ZWRTaWduYWwg
ewogICAgIENTdHJpbmcgdXJpOwogfTsKIAotRGVxdWU8T3duUHRyPERlbGF5ZWRTaWduYWw+PiBk
ZWxheWVkU2lnbmFsc1F1ZXVlOworRGVxdWU8RGVsYXllZFNpZ25hbD4gZGVsYXllZFNpZ25hbHNR
dWV1ZTsKIAogc3RhdGljIHZvaWQgZW1pdERvY3VtZW50TG9hZGVkKEdEQnVzQ29ubmVjdGlvbiog
Y29ubmVjdGlvbikKIHsKQEAgLTExNSw3ICsxMTMsNyBAQCBzdGF0aWMgdm9pZCBkb2N1bWVudExv
YWRlZENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdFdlYkV4dGVuc2lvbiog
ZQogICAgIGlmIChkYXRhKQogICAgICAgICBlbWl0RG9jdW1lbnRMb2FkZWQoR19EQlVTX0NPTk5F
Q1RJT04oZGF0YSkpOwogICAgIGVsc2UKLSAgICAgICAgZGVsYXllZFNpZ25hbHNRdWV1ZS5hcHBl
bmQoYWRvcHRQdHIobmV3IERlbGF5ZWRTaWduYWwoRG9jdW1lbnRMb2FkZWRTaWduYWwpKSk7Cisg
ICAgICAgIGRlbGF5ZWRTaWduYWxzUXVldWUuYXBwZW5kKERlbGF5ZWRTaWduYWwoRG9jdW1lbnRM
b2FkZWRTaWduYWwpKTsKIH0KIAogc3RhdGljIHZvaWQgZW1pdFVSSUNoYW5nZWQoR0RCdXNDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiB1cmkpCkBAIC0xMzcsNyArMTM1LDcgQEAg
c3RhdGljIHZvaWQgdXJpQ2hhbmdlZENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIEdQ
YXJhbVNwZWMqIHBzcGVjLCBXZWJLaXQKICAgICBpZiAoZGF0YSkKICAgICAgICAgZW1pdFVSSUNo
YW5nZWQoR19EQlVTX0NPTk5FQ1RJT04oZGF0YSksIHdlYmtpdF93ZWJfcGFnZV9nZXRfdXJpKHdl
YlBhZ2UpKTsKICAgICBlbHNlCi0gICAgICAgIGRlbGF5ZWRTaWduYWxzUXVldWUuYXBwZW5kKGFk
b3B0UHRyKG5ldyBEZWxheWVkU2lnbmFsKFVSSUNoYW5nZWRTaWduYWwsIHdlYmtpdF93ZWJfcGFn
ZV9nZXRfdXJpKHdlYlBhZ2UpKSkpOworICAgICAgICBkZWxheWVkU2lnbmFsc1F1ZXVlLmFwcGVu
ZChEZWxheWVkU2lnbmFsKFVSSUNoYW5nZWRTaWduYWwsIHdlYmtpdF93ZWJfcGFnZV9nZXRfdXJp
KHdlYlBhZ2UpKSk7CiB9CiAKIHN0YXRpYyBnYm9vbGVhbiBzZW5kUmVxdWVzdENhbGxiYWNrKFdl
YktpdFdlYlBhZ2UqLCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXRVUklSZXNwb25z
ZSogcmVkaXJlY3RSZXNwb25zZSwgZ3BvaW50ZXIpCkBAIC0zMzAsMTMgKzMyOCwxMyBAQCBzdGF0
aWMgdm9pZCBidXNBY3F1aXJlZENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Y29uc3QgY2hhciogbmFtZSwgZwogCiAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QodXNl
ckRhdGEpLCAiZGJ1cy1jb25uZWN0aW9uIiwgY29ubmVjdGlvbik7CiAgICAgd2hpbGUgKGRlbGF5
ZWRTaWduYWxzUXVldWUuc2l6ZSgpKSB7Ci0gICAgICAgIE93blB0cjxEZWxheWVkU2lnbmFsPiBk
ZWxheWVkU2lnbmFsID0gZGVsYXllZFNpZ25hbHNRdWV1ZS50YWtlRmlyc3QoKTsKLSAgICAgICAg
c3dpdGNoIChkZWxheWVkU2lnbmFsLT50eXBlKSB7CisgICAgICAgIERlbGF5ZWRTaWduYWwgZGVs
YXllZFNpZ25hbCA9IGRlbGF5ZWRTaWduYWxzUXVldWUudGFrZUZpcnN0KCk7CisgICAgICAgIHN3
aXRjaCAoZGVsYXllZFNpZ25hbC50eXBlKSB7CiAgICAgICAgIGNhc2UgRG9jdW1lbnRMb2FkZWRT
aWduYWw6CiAgICAgICAgICAgICBlbWl0RG9jdW1lbnRMb2FkZWQoY29ubmVjdGlvbik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBVUklDaGFuZ2VkU2lnbmFsOgotICAgICAgICAg
ICAgZW1pdFVSSUNoYW5nZWQoY29ubmVjdGlvbiwgZGVsYXllZFNpZ25hbC0+dXJpLmRhdGEoKSk7
CisgICAgICAgICAgICBlbWl0VVJJQ2hhbmdlZChjb25uZWN0aW9uLCBkZWxheWVkU2lnbmFsLnVy
aS5kYXRhKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251551</attachid>
            <date>2015-04-24 08:47:48 -0700</date>
            <delta_ts>2015-04-24 08:54:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128007-20150424084642.patch</filename>
            <type>text/plain</type>
            <size>97448</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIxMTk0ZTQ0MmRiNzllODI0MTM5Yjlh
ZjFjNjI1YTU3ZGVlMGMyZWEuLmFjMDUzOGYxYmM4OWQ3ZDZlNzk4NTBhZTY3YWE4MTZkYjkyNTVk
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDQtMjQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIENvbnZlcnQgT3duUHRyIGFuZCBQYXNzT3duUHRyIHVzZXMg
dG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjgwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qOiBSZW1vdmVkIE93blB0ciBzb3Vy
Y2UgZmlsZXMuCisgICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVyczogRGl0
dG8uCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAg
ICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogRGl0dG8uCisKKyAgICAgICAgKiB3dGYvRm9yd2Fy
ZC5oOiBSZW1vdmVkIE93blB0ciBhbmQgUGFzc093blB0ci4KKyAgICAgICAgKiB3dGYvSGFzaFRy
YWl0cy5oOiBEaXR0by4KKworICAgICAgICAqIHd0Zi9Pd25QdHIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3dGYvT3duUHRyQ29tbW9uLmg6IFJlbW92ZWQuCisgICAgICAgICogd3RmL1Bhc3NPd25Q
dHIuaDogUmVtb3ZlZC4KKworICAgICAgICAqIHd0Zi9TaXplTGltaXRzLmNwcDogUmVtb3ZlZCBP
d25QdHIuCisgICAgICAgICogd3RmL1ZlY3RvclRyYWl0cy5oOiBSZW1vdmVkIE93blB0ciBzcGVj
aWFsaXphdGlvbi4KKwogMjAxNS0wNC0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBEaXNhYmxlIEhBVkVfQVZLSVQgb24gQXBwbGVUVgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGNkZDk1MjdlMTlhNzA2N2M2OTk3OWE1OTBmZTBkNDE3NzYxOGUyOTEuLjI2YzMyYmYyY2NjOTE4
ZWNhYzQ2MTZjMmQzMWMxNGQxNDEwODI2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NCBAQAor
MjAxNS0wNC0yNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29u
dmVydCBPd25QdHIgYW5kIFBhc3NPd25QdHIgdXNlcyB0byBzdGQ6OnVuaXF1ZV9wdHIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODAwNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwu
Y21ha2U6IFJlbW92ZWQgT3duUHRyQ2Fpcm8gc291cmNlIGZpbGVzLgorICAgICAgICAqIFBsYXRm
b3JtR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBQbGF0Zm9ybVdpbkNhaXJvLmNtYWtlOiBE
aXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOiBEaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6IERpdHRv
LgorCisgICAgICAgICogcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOiBSZW1vdmVkIE93
blB0ciBzcGVjaWFsaXphdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGll
ci5oOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHA6
IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9i
YWxEYXRhLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5o
OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RN
U2Vzc2lvbkFWRm91bmRhdGlvbkNGLmg6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6OnByb2Nlc3NOb3RpZmljYXRpb24pOiBV
c2UgdW5pcXVlX3B0ci4KKyAgICAgICAgKFdlYkNvcmU6OkFWRldyYXBwZXI6Om5vdGlmaWNhdGlv
bkNhbGxiYWNrKTogVXNlIG1ha2VfdW5pcXVlLgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBl
cjo6cGxhdGZvcm1MYXllcik6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUGF0aFRv
Q2Fpcm9Db250ZXh0KTogVXNlIGNhaXJvX3BhdGhfZGVzdHJveSBkaXJlY3RseQorICAgICAgICBp
bnN0ZWFkIG9mIGEgc21hcnQgcG9pbnRlcjsgdGhlIGNvZGUgcGF0aCBpcyBzaW1wbGUgZW5vdWdo
IHRoYXQgaXQgaXMKKyAgICAgICAgY2xlYXIgdGhpcyB3YXkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6IFVzZSBtYWtlX3VuaXF1ZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckRhdGFDYWlyby5oOiBVc2UgdW5pcXVl
X3B0ci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWly
by5oOiBSZW1vdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENh
aXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OlBhdGgpOiBVc2UgY2Fpcm9fcGF0aF9k
ZXN0cm95IGRpcmVjdGx5IGluc3RlYWQgb2YgYQorICAgICAgICBzbWFydCBwb2ludGVyOyB0aGUg
Y29kZSBwYXRoIGlzIHNpbXBsZSBlbm91Z2ggdGhhdCBpdCBpcyBjbGVhciB0aGlzIHdheS4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhdGg6Om9wZXJhdG9yPSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UGF0aDo6YWRkUGF0aCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6YXBwbHkp
OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRl
eHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWlybzo6Y2xp
cEZvclBhdHRlcm5GaWxsaW5nKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHA6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVk
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcDogRGl0
dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5TdXJmYWNlOjpFR0xPZmZTY3Jl
ZW5TdXJmYWNlKTogVXNlIG1ha2VfdW5pcXVlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpH
TFhDb25maWdTZWxlY3Rvcjo6ZmluZE1hdGNoaW5nQ29uZmlnKTogVXNlIHVuaXF1ZV9wdHIgd2l0
aCBYMTFEZWxldGVyLgorICAgICAgICAoV2ViQ29yZTo6R0xYQ29uZmlnU2VsZWN0b3I6OmZpbmRN
YXRjaGluZ0NvbmZpZ1dpdGhWaXN1YWxJZCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdM
WFRyYW5zcG9ydFN1cmZhY2U6OkdMWFRyYW5zcG9ydFN1cmZhY2UpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkdMWE9mZlNjcmVlblN1cmZhY2U6OmluaXRpYWxpemUpOiBEaXR0by4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9Pd25QdHJYMTEuaDogUmVtb3Zl
ZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3cp
OiBVc2UgdW5pcXVlX3B0ciB3aXRoIFgxMURlbGV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpYMTFI
ZWxwZXI6OmNyZWF0ZVBpeG1hcCk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5oOiBBZGRlZCBYMTFEZWxldGVyLAorICAgICAgICB3
aGljaCBjYW4gYmUgdXNlZCB3aXRoIHVuaXF1ZV9wdHIgdG8gbWFrZSBpdCBjYWxsIFhGcmVlIGlu
c3RlYWQgb2YgZGVsZXRlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxT
Y3JlZW5Db250cm9sbGVyLmNwcDogVXNlIHVuaXF1ZV9wdHIuCisgICAgICAgIChGdWxsU2NyZWVu
Q29udHJvbGxlcjo6RnVsbFNjcmVlbkNvbnRyb2xsZXIpOiBVc2UgbWFrZV91bmlxdWUuCisgICAg
ICAgIChGdWxsU2NyZWVuQ29udHJvbGxlcjo6ZW50ZXJGdWxsU2NyZWVuKTogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmg6IFVzZSB1
bmlxdWVfcHRyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29u
dGV4dDNEV2luLmNwcDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXS0NBSW1hZ2VRdWV1ZTo6V0tDQUltYWdlUXVldWUpOiBVc2UgbWFrZV91bmlxdWUuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmg6IFVzZSB1bmlxdWVf
cHRyLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
dHViLmNwcDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlLgorCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6IFVzZSB1bmlxdWVfcHRyLgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNdWx0aXBhcnRIYW5kbGU6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5oOiBEZWxldGVkIHRoZSBjcmVh
dGUgZnVuY3Rpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VI
YW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhlYWRlckNhbGxiYWNrKTogVXNl
IG1ha2VfdW5pcXVlLgorCiAyMDE1LTA0LTI0ICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRs
b29rLmNvbT4KIAogICAgICAgICBbV2luXSBQb3B1cCBtZW51IGlzIG5vdCBhY2Nlc3NpYmxlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDdkN2E4YzJkODlkYTBlNzBmNzU1MzA4MmZmNTAzMjA0M2IzNTdhMzUuLjg1
NGQ3ZDk0OTBjMzIxMGRmMzNiZjI2ZWRmY2QzY2ZlMDQxZGU3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNS0wNC0yNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQ29udmVydCBPd25QdHIgYW5kIFBhc3NPd25QdHIgdXNlcyB0byBzdGQ6OnVuaXF1
ZV9wdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
ODAwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW5jb2Rlci5oOiBBZGRlZCBhbiBpbmNs
dWRlIG5vdworICAgICAgICBuZWVkZWQgdGhhdCB3YXMgaW5oZXJpdGVkIGZyb20gT3duUHRyLmgg
YmVmb3JlLgorCiAyMDE1LTA0LTI0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBOZXR3b3JrIENhY2hlOiBNYWtlIHBhdGggZnVuY3Rpb25zIG1lbWJlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ogYi9Tb3VyY2UvV1RG
L1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCmluZGV4IDIzYTgxZThjYzI4NDc4NTJmM2JhNGY2Njgw
ZDFkZWVkYmM0NjFjMGEuLjZhYTQ3M2RmZTY3YWQ0ZDI5NWFiMzg3YmY3ZDFiYzRkYmQxYmQ4YzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKKysrIGIvU291
cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagpAQCAtMjM3LDggKzIzNyw2IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTm9uY29weWFibGUuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0ZlxOdW1iZXJPZkNvcmVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlx3dGZcT1NSYW5kb21Tb3VyY2UuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHd0ZlxPd25QdHIuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxP
d25QdHJDb21tb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYWNrZWRJ
bnRWZWN0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYWdlQWxsb2Nh
dGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhZ2VCbG9jay5oIiAv
PgpAQCAtMjQ3LDcgKzI0NSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFy
YWxsZWxKb2JzR2VuZXJpYy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBh
cmFsbGVsSm9ic0xpYmRpc3BhdGNoLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcUGFyYWxsZWxKb2JzT3Blbk1QLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcUGFzc093blB0ci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhc3NS
ZWZQdHIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQbGF0Zm9ybS5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFByaW50U3RyZWFtLmgiIC8+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMgYi9Tb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZDRmZWMyZjcxM2Jj
ZmY4Yzc1MDQ1Y2NlYWM3MjBkYzFjNWNhZDZiMS4uZmFlMTA2OTI2M2FlNzgyZjViNTg1M2Q1YjEz
MjE3MzlkMjM1YTNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4
cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmls
dGVycwpAQCAtNTI4LDEyICs1MjgsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XE9TUmFuZG9tU291cmNlLmgiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxPd25QdHIuaCI+Ci0gICAg
ICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cd3RmXE93blB0ckNvbW1vbi5oIj4KLSAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0
ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFj
a2VkSW50VmVjdG9yLmgiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KQEAgLTU1OCw5ICs1NTIsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XFBhcmFsbGVsSm9ic09wZW5NUC5oIj4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFzc093blB0ci5o
Ij4KLSAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFzc1JlZlB0ci5oIj4KICAgICAgIDxGaWx0ZXI+d3Rm
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBlNDA1ZDZkYTRhYzVmZWYxNGYxNWU3ZDQzMTM4NTkxZWM2ZjMyYmM5
Li5hMDM4NzgzZGYyNjA4MzdmNzRjNjlhMjBkNjcyMzM1ZTUyZGQzODI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4NSw4ICsxODUsNiBAQAogCQlBOEE0
NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJEODE1MUE4MjVCMDA0MTIz
RkYgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgKi87IH07CiAJCUE4QTQ3M0Y5MTUxQTgyNUIwMDQx
MjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJEQTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3Vy
Y2UuY3BwICovOyB9OwogCQlBOEE0NzNGQTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3Vy
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3
MkRCMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5oICovOyB9OwotCQlBOEE0NzNG
QzE1MUE4MjVCMDA0MTIzRkYgLyogT3duUHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJERDE1MUE4MjVCMDA0MTIzRkYgLyogT3duUHRyLmgg
Ki87IH07Ci0JCUE4QTQ3M0ZEMTUxQTgyNUIwMDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkRFMTUxQTgy
NUIwMDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCAqLzsgfTsKIAkJQThBNDczRkUxNTFBODI1QjAw
NDEyM0ZGIC8qIFBhY2tlZEludFZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThBNDcyREYxNTFBODI1QjAwNDEyM0ZGIC8qIFBhY2tlZEludFZl
Y3Rvci5oICovOyB9OwogCQlBOEE0NzNGRjE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUFsbG9jYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3
MkUwMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQWxsb2NhdGlvbi5oICovOyB9OwogCQlBOEE0NzQw
MjE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkUzMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdl
QmxvY2suY3BwICovOyB9OwpAQCAtMTk0LDcgKzE5Miw2IEBACiAJCUE4QTQ3NDA0MTUxQTgyNUIw
MDQxMjNGRiAvKiBQYWdlUmVzZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkU1MTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlUmVzZXJ2
YXRpb24uaCAqLzsgfTsKIAkJQThBNDc0MDUxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9i
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcy
RTYxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9icy5oICovOyB9OwogCQlBOEE0NzQwODE1
MUE4MjVCMDA0MTIzRkYgLyogUGFyYWxsZWxKb2JzTGliZGlzcGF0Y2guaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkU5MTUxQTgyNUIwMDQxMjNG
RiAvKiBQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5oICovOyB9OwotCQlBOEE0NzQwQjE1MUE4MjVC
MDA0MTIzRkYgLyogUGFzc093blB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThBNDcyRUMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NPd25QdHIuaCAq
LzsgfTsKIAkJQThBNDc0MEMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NSZWZQdHIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkVEMTUxQTgyNUIw
MDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggKi87IH07CiAJCUE4QTQ3NDE0MTUxQTgyNUIwMDQxMjNG
RiAvKiBSYW5kb21OdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDcyRkIxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAg
Ki87IH07CiAJCUE4QTQ3NDE1MTUxQTgyNUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkZDMTUxQTgy
NUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuaCAqLzsgfTsKQEAgLTQ3Niw4ICs0NzMsNiBAQAog
CQlBOEE0NzJEODE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPU0FsbG9jYXRvclBvc2l4LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyREExNTFBODI1QjAwNDEyM0ZGIC8qIE9T
UmFuZG9tU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9T
UmFuZG9tU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyREIx
NTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4QTQ3MkREMTUxQTgyNUIwMDQxMjNGRiAvKiBPd25QdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gT3duUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4QTQ3MkRFMTUxQTgyNUIwMDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gT3duUHRyQ29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4QTQ3MkRGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFja2VkSW50VmVjdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkUwMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdl
QWxsb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQWxsb2Nh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJFMzE1MUE4MjVCMDA0
MTIzRkYgLyogUGFnZUJsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBhZ2VCbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODUsNyAr
NDgwLDYgQEAKIAkJQThBNDcyRTUxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VSZXNlcnZhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlUmVzZXJ2YXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTYxNTFBODI1QjAwNDEyM0ZGIC8qIFBh
cmFsbGVsSm9icy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJhbGxlbEpv
YnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTkxNTFBODI1QjAwNDEy
M0ZGIC8qIFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4QTQ3MkVDMTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzT3duUHRyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3NPd25QdHIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyRUQxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NSZWZQdHIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzc1JlZlB0ci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJGQjE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVt
YmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmRvbU51bWJl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkZDMTUxQTgyNUIwMDQx
MjNGRiAvKiBSYW5kb21OdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmFuZG9tTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03OTUsOCArNzg5
LDYgQEAKIAkJCQlBOEE0NzJEQTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2UuY3Bw
ICovLAogCQkJCUE4QTQ3MkRCMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5oICov
LAogCQkJCTFBRkRFNjUyMTk1M0IyM0QwMEM0OEZGQSAvKiBPcHRpb25hbC5oICovLAotCQkJCUE4
QTQ3MkREMTUxQTgyNUIwMDQxMjNGRiAvKiBPd25QdHIuaCAqLywKLQkJCQlBOEE0NzJERTE1MUE4
MjVCMDA0MTIzRkYgLyogT3duUHRyQ29tbW9uLmggKi8sCiAJCQkJQThBNDcyREYxNTFBODI1QjAw
NDEyM0ZGIC8qIFBhY2tlZEludFZlY3Rvci5oICovLAogCQkJCUE4QTQ3MkUwMTUxQTgyNUIwMDQx
MjNGRiAvKiBQYWdlQWxsb2NhdGlvbi5oICovLAogCQkJCUE4QTQ3MkUzMTUxQTgyNUIwMDQxMjNG
RiAvKiBQYWdlQmxvY2suY3BwICovLApAQCAtODA0LDcgKzc5Niw2IEBACiAJCQkJQThBNDcyRTUx
NTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VSZXNlcnZhdGlvbi5oICovLAogCQkJCUE4QTQ3MkU2MTUx
QTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCAqLywKIAkJCQlBOEE0NzJFOTE1MUE4MjVC
MDA0MTIzRkYgLyogUGFyYWxsZWxKb2JzTGliZGlzcGF0Y2guaCAqLywKLQkJCQlBOEE0NzJFQzE1
MUE4MjVCMDA0MTIzRkYgLyogUGFzc093blB0ci5oICovLAogCQkJCUE4QTQ3MkVEMTUxQTgyNUIw
MDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggKi8sCiAJCQkJQTg3NkRCRDcxNTE4MTZFNTAwREFEQjk1
IC8qIFBsYXRmb3JtLmggKi8sCiAJCQkJMEY5RDMzNUQxNjVEQkE3MzAwNUFEMzg3IC8qIFByaW50
U3RyZWFtLmNwcCAqLywKQEAgLTExMzEsOCArMTEyMiw2IEBACiAJCQkJN0UyOUMzM0UxNUZGRDc5
QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzNGNjE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3M0ZBMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQThBNDczRkMxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQThBNDczRkQxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ckNvbW1vbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZCMTRFMUIxODEwRTFEQzAwOUI2QjREIC8qIEJhZ1RvSGFzaE1hcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRkUxNTFBODI1QjAwNDEyM0ZGIC8qIFBhY2tlZElu
dFZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRkYxNTFBODI1QjAwNDEyM0ZGIC8q
IFBhZ2VBbGxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTExNDAsNyArMTEyOSw2IEBACiAJ
CQkJQThBNDc0MDQxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VSZXNlcnZhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThBNDc0MDUxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9icy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MDgxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9i
c0xpYmRpc3BhdGNoLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEE0NzQwQjE1MUE4MjVCMDA0MTIz
RkYgLyogUGFzc093blB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MEMxNTFBODI1QjAw
NDEyM0ZGIC8qIFBhc3NSZWZQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzZEQkQ4MTUxODE2
RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMTRFMTkxODBG
QTIxODAwOUI2QjREIC8qIEJhZy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGM3YjQyODUyODFkYzllMjQwM2QxNWY0ZDExMGUzMzRlMTQ4OWQ5YWQuLjg2MjNiYWNhMGNh
ZDQ2Mjc1ZTBmOTM3NmFlMDA3ZmYxZDQzMDk1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC01
NSw4ICs1NSw2IEBAIHNldChXVEZfSEVBREVSUwogICAgIE51bWJlck9mQ29yZXMuaAogICAgIE9T
QWxsb2NhdG9yLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCi0gICAgT3duUHRyLmgKLSAgICBPd25Q
dHJDb21tb24uaAogICAgIFBhZ2VBbGxvY2F0aW9uLmgKICAgICBQYWdlQmxvY2suaAogICAgIFBh
Z2VSZXNlcnZhdGlvbi5oCkBAIC02NCw3ICs2Miw2IEBAIHNldChXVEZfSEVBREVSUwogICAgIFBh
cmFsbGVsSm9ic0dlbmVyaWMuaAogICAgIFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmgKICAgICBQ
YXJhbGxlbEpvYnNPcGVuTVAuaAotICAgIFBhc3NPd25QdHIuaAogICAgIFBhc3NSZWZQdHIuaAog
ICAgIFBsYXRmb3JtLmgKICAgICBQcmludFN0cmVhbS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Gb3J3YXJkLmggYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKaW5kZXggNmFlZmExZGVm
MmNkZjA4OTQyM2NlMGQxMmZjZjJkZDU1Njg3OWUxOC4uMzk1MjBhYWY0YTE2NjQ2MGM3ZGRhOGFh
Y2Q4OThkODEzMzUyOWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaApAQCAtMjgsOCArMjgsNiBAQCBuYW1lc3BhY2Ug
V1RGIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEZ1bmN0aW9uOwogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gY2xhc3MgTGF6eU5ldmVyRGVzdHJveWVkOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPd25QdHI7
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBQYXNzT3duUHRyOwogdGVtcGxhdGU8dHlwZW5h
bWUgVD4gY2xhc3MgUGFzc1JlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFJlZlB0
cjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFJlZjsKQEAgLTY1LDggKzYzLDYgQEAgdXNp
bmcgV1RGOjpGdW5jdGlvbkRpc3BhdGNoZXI7CiB1c2luZyBXVEY6OkxhenlOZXZlckRlc3Ryb3ll
ZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Ok9yZGluYWxOdW1iZXI7
Ci11c2luZyBXVEY6Ok93blB0cjsKLXVzaW5nIFdURjo6UGFzc093blB0cjsKIHVzaW5nIFdURjo6
UGFzc1JlZlB0cjsKIHVzaW5nIFdURjo6UHJpbnRTdHJlYW07CiB1c2luZyBXVEY6OlJlZjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaCBiL1NvdXJjZS9XVEYvd3RmL0hh
c2hUcmFpdHMuaAppbmRleCBlNDdhYThiNWY4NmI0YmZkZWU5ZTkyMzJjYzIwZGY1YTllODFmM2Nk
Li5mY2EzNWYzOTlkZmQwYTFkZGRmM2JiODM4ZDczMDg4NjNkNzVlMWFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9IYXNoVHJhaXRzLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaFRyYWl0
cy5oCkBAIC0zMCw4ICszMCw2IEBAIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBTdHJpbmc7CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE93blB0cjsKLQogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IEhhc2hUcmFpdHM7CiAKIHRlbXBsYXRlPGJvb2wgaXNJbnRlZ2VyLCB0eXBlbmFt
ZSBUPiBzdHJ1Y3QgR2VuZXJpY0hhc2hUcmFpdHNCYXNlOwpAQCAtMTIwLDE3ICsxMTgsOCBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBEZWxldGVyPiBzdHJ1Y3QgSGFzaFRyYWl0czxz
dGQ6OnVuaXF1ZV9wdHI8VCwgRGVsZQogICAgIHN0YXRpYyBUKiBwZWVrKHN0ZDo6bnVsbHB0cl90
KSB7IHJldHVybiBudWxscHRyOyB9CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
SGFzaFRyYWl0czxPd25QdHI8VD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPE93blB0cjxUPj4g
ewotICAgIHR5cGVkZWYgc3RkOjpudWxscHRyX3QgRW1wdHlWYWx1ZVR5cGU7Ci0gICAgc3RhdGlj
IEVtcHR5VmFsdWVUeXBlIGVtcHR5VmFsdWUoKSB7IHJldHVybiBudWxscHRyOyB9Ci0KLSAgICB0
eXBlZGVmIFQqIFBlZWtUeXBlOwotICAgIHN0YXRpYyBUKiBwZWVrKGNvbnN0IE93blB0cjxUPiYg
dmFsdWUpIHsgcmV0dXJuIHZhbHVlLmdldCgpOyB9Ci0gICAgc3RhdGljIFQqIHBlZWsoc3RkOjpu
dWxscHRyX3QpIHsgcmV0dXJuIG51bGxwdHI7IH0KLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFA+
IHN0cnVjdCBIYXNoVHJhaXRzPFJlZlB0cjxQPj4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8UmVm
UHRyPFA+PiB7Ci0gICAgc3RhdGljIFAqIGVtcHR5VmFsdWUoKSB7IHJldHVybiAwOyB9CisgICAg
c3RhdGljIFAqIGVtcHR5VmFsdWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICB0eXBlZGVm
IFAqIFBlZWtUeXBlOwogICAgIHN0YXRpYyBQZWVrVHlwZSBwZWVrKGNvbnN0IFJlZlB0cjxQPiYg
dmFsdWUpIHsgcmV0dXJuIHZhbHVlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9Pd25QdHIuaCBiL1NvdXJjZS9XVEYvd3RmL093blB0ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyMTcwMWE0OGI1Yjc1M2I5MjA5YmE2ZDlhZDBkOWU2YWU1ZjQwN2MxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3Rm
L093blB0ci5oCisrKyAvZGV2L251bGwKQEAgLTEsMjMwICswLDAgQEAKLS8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgV1RGX093blB0cl9oCi0j
ZGVmaW5lIFdURl9Pd25QdHJfaAotCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPGNz
dGRkZWY+Ci0jaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0j
aW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KLSNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL0hhc2hUcmFpdHMuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNs
dWRlIDx3dGYvT3duUHRyQ29tbW9uLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc093blB0cjsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBQYXNzT3duUHRyPFQ+IGFkb3B0UHRyKFQqKTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IGNsYXNzIE93blB0ciB7Ci0gICAgcHVibGljOgotICAgICAgICB0eXBlZGVmIFQgVmFsdWVUeXBl
OwotICAgICAgICB0eXBlZGVmIFZhbHVlVHlwZSogUHRyVHlwZTsKLQotICAgICAgICBPd25QdHIo
KSA6IG1fcHRyKDApIHsgfQotICAgICAgICBPd25QdHIoc3RkOjpudWxscHRyX3QpIDogbV9wdHIo
MCkgeyB9Ci0KLSAgICAgICAgLy8gU2VlIGNvbW1lbnQgaW4gUGFzc093blB0ci5oIGZvciB3aHkg
dGhpcyB0YWtlcyBhIGNvbnN0IHJlZmVyZW5jZS4KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VT4gT3duUHRyKGNvbnN0IFBhc3NPd25QdHI8VT4mIG8pOwotCi0gICAgICAgIH5Pd25QdHIoKSB7
IGRlbGV0ZU93bmVkUHRyKG1fcHRyKTsgfQotCi0gICAgICAgIFB0clR5cGUgZ2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9wdHI7IH0KLQotICAgICAgICB2b2lkIGNsZWFyKCk7Ci0gICAgICAgIFBhc3NP
d25QdHI8VD4gcmVsZWFzZSgpOwotICAgICAgICBQdHJUeXBlIGxlYWtQdHIoKSBXQVJOX1VOVVNF
RF9SRVRVUk47Ci0KLSAgICAgICAgVmFsdWVUeXBlJiBvcGVyYXRvciooKSBjb25zdCB7IEFTU0VS
VChtX3B0cik7IHJldHVybiAqbV9wdHI7IH0KLSAgICAgICAgUHRyVHlwZSBvcGVyYXRvci0+KCkg
Y29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gbV9wdHI7IH0KLQotICAgICAgICBib29sIG9w
ZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQotCi0gICAgICAgIC8vIFRoaXMgY29u
dmVyc2lvbiBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1dCBu
b3QgdG8gb3RoZXIgaW50ZWdlciB0eXBlcy4KLSAgICAgICAgdHlwZWRlZiBQdHJUeXBlIE93blB0
cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGU7Ci0gICAgICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9v
bFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZPd25QdHI6Om1fcHRyIDogMDsgfQotCi0g
ICAgICAgIE93blB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NPd25QdHI8VD4mKTsKLSAgICAgICAg
T3duUHRyJiBvcGVyYXRvcj0oc3RkOjpudWxscHRyX3QpIHsgY2xlYXIoKTsgcmV0dXJuICp0aGlz
OyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE93blB0ciYgb3BlcmF0b3I9KGNvbnN0
IFBhc3NPd25QdHI8VT4mKTsKLQotICAgICAgICBPd25QdHIoT3duUHRyJiYpOwotICAgICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBVPiBPd25QdHIoT3duUHRyPFU+JiYpOwotCi0gICAgICAgIE93blB0
ciYgb3BlcmF0b3I9KE93blB0ciYmKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gT3du
UHRyJiBvcGVyYXRvcj0oT3duUHRyPFU+JiYpOwotCi0gICAgICAgIC8vIEhhc2ggdGFibGUgZGVs
ZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQg
b3IgZGVzdHJveWVkLgotICAgICAgICBPd25QdHIoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkg
OiBtX3B0cihoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkgeyB9Ci0gICAgICAgIGJvb2wgaXNIYXNo
VGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA9PSBoYXNoVGFibGVEZWxl
dGVkVmFsdWUoKTsgfQotCi0gICAgICAgIHZvaWQgc3dhcChPd25QdHImIG8pIHsgc3RkOjpzd2Fw
KG1fcHRyLCBvLm1fcHRyKTsgfQotICAgICAgICAKLSAgICAgICAgLy8gQ29uc3RydWN0IGFuIG9i
amVjdCB0byBzdG9yZSBpbnRvIHRoaXMgT3duUHRyLCBidXQgb25seSBzbyBsb25nIGFzIHRoaXMg
T3duUHRyCi0gICAgICAgIC8vIGRvZXNuJ3QgYWxyZWFkeSBwb2ludCB0byBhbiBvYmplY3QuIFRo
aXMgd2lsbCBlbnN1cmUgdGhhdCBhZnRlciB5b3UgY2FsbCB0aGlzLAotICAgICAgICAvLyB0aGUg
T3duUHRyIHdpbGwgcG9pbnQgdG8gYW4gaW5zdGFuY2Ugb2YgVCwgZXZlbiBpZiBjYWxsZWQgY29u
Y3VycmVudGx5LiBUaGlzCi0gICAgICAgIC8vIGluc3RhbmNlIG1heSBvciBtYXkgbm90IGhhdmUg
YmVlbiBjcmVhdGVkIGJ5IHRoaXMgY2FsbC4gTW9yZW92ZXIsIHRoaXMgY2FsbCB1c2VzCi0gICAg
ICAgIC8vIGFuIG9wcG9ydHVuaXN0aWMgdHJhbnNhY3Rpb24sIGluIHRoYXQgd2UgbWF5IGNyZWF0
ZSBhbiBpbnN0YW5jZSBvZiBUIGFuZCB0aGVuCi0gICAgICAgIC8vIGltbWVkaWF0ZWx5IHRocm93
IGl0IGF3YXksIGlmIGluIHRoZSBwcm9jZXNzIG9mIGNyZWF0aW5nIHRoYXQgaW5zdGFuY2Ugc29t
ZQotICAgICAgICAvLyBvdGhlciB0aHJlYWQgd2FzIGRvaW5nIHRoZSBzYW1lIHRoaW5nIGFuZCBz
dG9yZWQgaXRzIGluc3RhbmNlIGludG8gdGhpcyBwb2ludGVyCi0gICAgICAgIC8vIGJlZm9yZSB3
ZSBoYWQgYSBjaGFuY2UgdG8gZG8gc28uCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFy
Z3M+Ci0gICAgICAgIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb25hbGx5KEFyZ3MuLi4pOwotCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgZXhwbGljaXQgT3duUHRyKFB0clR5cGUgcHRyKSA6IG1fcHRyKHB0
cikgeyB9Ci0KLSAgICAgICAgc3RhdGljIFB0clR5cGUgaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkg
eyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQdHJUeXBlPigtMSk7IH0KLQotICAgICAgICAvLyBX
ZSBzaG91bGQgbmV2ZXIgaGF2ZSB0d28gT3duUHRycyBmb3IgdGhlIHNhbWUgdW5kZXJseWluZyBv
YmplY3QgKG90aGVyd2lzZSB3ZSdsbCBnZXQKLSAgICAgICAgLy8gZG91YmxlLWRlc3RydWN0aW9u
KSwgc28gdGhlc2UgZXF1YWxpdHkgb3BlcmF0b3JzIHNob3VsZCBuZXZlciBiZSBuZWVkZWQuCi0g
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0b3I9PShjb25zdCBPd25QdHI8
VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25QdHJzX3Nob3VsZF9uZXZlcl9i
ZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBi
b29sIG9wZXJhdG9yIT0oY29uc3QgT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9m
KFUqKSwgT3duUHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7IH0KLSAg
ICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBhc3NPd25Q
dHI8VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25QdHJzX3Nob3VsZF9uZXZl
cl9iZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBV
PiBib29sIG9wZXJhdG9yIT0oY29uc3QgUGFzc093blB0cjxVPiYpIHsgQ09NUElMRV9BU1NFUlQo
IXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsgcmV0dXJuIGZhbHNl
OyB9Ci0KLSAgICAgICAgUHRyVHlwZSBtX3B0cjsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIE93blB0cjxUPjo6T3duUHRyKGNv
bnN0IFBhc3NPd25QdHI8VT4mIG8pCi0gICAgICAgIDogbV9wdHIoby5sZWFrUHRyKCkpCi0gICAg
ewotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIE93blB0cjxU
Pjo6Y2xlYXIoKQotICAgIHsKLSAgICAgICAgZGVsZXRlT3duZWRQdHIoc3RkOjpleGNoYW5nZSht
X3B0ciwgbnVsbHB0cikpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGlu
ZSBQYXNzT3duUHRyPFQ+IE93blB0cjxUPjo6cmVsZWFzZSgpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRQdHIoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwotICAgIH0KLQotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB0eXBlbmFtZSBPd25QdHI8VD46OlB0clR5cGUg
T3duUHRyPFQ+OjpsZWFrUHRyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OmV4Y2hhbmdl
KG1fcHRyLCBudWxscHRyKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxp
bmUgT3duUHRyPFQ+JiBPd25QdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzT3duUHRyPFQ+JiBv
KQotICAgIHsKLSAgICAgICAgUHRyVHlwZSBwdHIgPSBzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBvLmxl
YWtQdHIoKSk7Ci0gICAgICAgIEFTU0VSVCghcHRyIHx8IG1fcHRyICE9IHB0cik7Ci0gICAgICAg
IGRlbGV0ZU93bmVkUHRyKHB0cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgT3duUHRy
PFQ+JiBPd25QdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzT3duUHRyPFU+JiBvKQotICAgIHsK
LSAgICAgICAgUHRyVHlwZSBwdHIgPSBzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBvLmxlYWtQdHIoKSk7
Ci0gICAgICAgIEFTU0VSVCghcHRyIHx8IG1fcHRyICE9IHB0cik7Ci0gICAgICAgIGRlbGV0ZU93
bmVkUHRyKHB0cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgT3duUHRyPFQ+OjpPd25QdHIoT3duUHRyPFQ+JiYgbykKLSAg
ICAgICAgOiBtX3B0cihvLmxlYWtQdHIoKSkKLSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIE93blB0cjxUPjo6T3duUHRy
KE93blB0cjxVPiYmIG8pCi0gICAgICAgIDogbV9wdHIoby5sZWFrUHRyKCkpCi0gICAgewotICAg
IH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBhdXRvIE93blB0cjxUPjo6b3Bl
cmF0b3I9KE93blB0ciYmIG8pIC0+IE93blB0ciYKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbyB8
fCBvICE9IG1fcHRyKTsKLSAgICAgICAgT3duUHRyIHB0ciA9IFdURjo6bW92ZShvKTsKLSAgICAg
ICAgc3dhcChwdHIpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIGF1dG8gT3duUHRyPFQ+
OjpvcGVyYXRvcj0oT3duUHRyPFU+JiYgbykgLT4gT3duUHRyJgotICAgIHsKLSAgICAgICAgQVNT
RVJUKCFvIHx8IG8gIT0gbV9wdHIpOwotICAgICAgICBPd25QdHIgcHRyID0gV1RGOjptb3ZlKG8p
OwotICAgICAgICBzd2FwKHB0cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBzd2FwKE93blB0cjxUPiYgYSwgT3du
UHRyPFQ+JiBiKQotICAgIHsKLSAgICAgICAgYS5zd2FwKGIpOwotICAgIH0KLQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3Qg
T3duUHRyPFQ+JiBhLCBVKiBiKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgPT0gYjsg
Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJv
b2wgb3BlcmF0b3I9PShUKiBhLCBjb25zdCBPd25QdHI8VT4mIGIpIAotICAgIHsKLSAgICAgICAg
cmV0dXJuIGEgPT0gYi5nZXQoKTsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBPd25QdHI8VD4mIGEsIFUq
IGIpCi0gICAgewotICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiOyAKLSAgICB9Ci0KLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFQq
IGEsIGNvbnN0IE93blB0cjxVPiYgYikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhICE9IGIuZ2V0
KCk7IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1l
Li4uIEFyZ3M+IGlubGluZSB2b2lkIE93blB0cjxUPjo6Y3JlYXRlVHJhbnNhY3Rpb25hbGx5KEFy
Z3MuLi4gYXJncykKLSAgICB7Ci0gICAgICAgIGlmIChtX3B0cikgewotICAgICAgICAgICAgV1RG
Ojpsb2FkTG9hZEZlbmNlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIFQqIG5ld09iamVjdCA9IG5ldyBUKGFyZ3MuLi4pOwotICAgICAgICBXVEY6
OnN0b3JlU3RvcmVGZW5jZSgpOwotI2lmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQotICAgICAg
ICBkbyB7Ci0gICAgICAgICAgICBpZiAobV9wdHIpIHsKLSAgICAgICAgICAgICAgICBkZWxldGUg
bmV3T2JqZWN0OwotICAgICAgICAgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSB3aGlsZSAoIVdURjo6
d2Vha0NvbXBhcmVBbmRTd2FwKGJpdHdpc2VfY2FzdDx2b2lkKnZvbGF0aWxlKj4oJm1fcHRyKSwg
bnVsbHB0ciwgbmV3T2JqZWN0KSk7Ci0jZWxzZQotICAgICAgICBtX3B0ciA9IG5ld09iamVjdDsK
LSNlbmRpZgotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNTbWFy
dFB0cjxPd25QdHI8VD4+IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVl
OwotICAgIH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1Y3QgRGVmYXVsdEhhc2g8
T3duUHRyPFA+PiB7Ci0gICAgICAgIHR5cGVkZWYgUHRySGFzaDxPd25QdHI8UD4+IEhhc2g7Ci0g
ICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6T3duUHRyOwotCi0jZW5k
aWYgLy8gV1RGX093blB0cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHJDb21t
b24uaCBiL1NvdXJjZS9XVEYvd3RmL093blB0ckNvbW1vbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmMmIwODc1ZWI1OWIwODdkYWM3ZDNlMzI4MTBiMWI4ZmMwMDE3ODlkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3Rm
L093blB0ckNvbW1vbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQ29tcGFueSAxMDAgSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2lmbmRlZiBXVEZfT3duUHRyQ29tbW9uX2gKLSNkZWZpbmUgV1RGX093blB0
ckNvbW1vbl9oCi0KLW5hbWVzcGFjZSBXVEYgewotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IGlubGluZSB2b2lkIGRlbGV0ZU93bmVkUHRyKFQqIHB0cikKLSAgICB7Ci0gICAgICAgIHR5cGVk
ZWYgY2hhciBrbm93bltzaXplb2YoVCkgPyAxIDogLTFdOwotICAgICAgICBpZiAoc2l6ZW9mKGtu
b3duKSkKLSAgICAgICAgICAgIGRlbGV0ZSBwdHI7Ci0gICAgfQotCi19IC8vIG5hbWVzcGFjZSBX
VEYKLQotI2VuZGlmIC8vIFdURl9Pd25QdHJDb21tb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGFzc093blB0ci5oIGIvU291cmNlL1dURi93dGYvUGFzc093blB0ci5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzVlZmI2OTkyY2M5MTE0ZGVlZDE0ZGVmMDg4MGMwOTdh
N2EyZWFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1Bhc3NPd25QdHIuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2OCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
Zm5kZWYgV1RGX1Bhc3NPd25QdHJfaAotI2RlZmluZSBXVEZfUGFzc093blB0cl9oCi0KLSNpbmNs
dWRlIDxjc3RkZGVmPgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHJDb21tb24uaD4KLSNpbmNsdWRlIDx0eXBl
X3RyYWl0cz4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBPd25QdHI7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc093blB0cjsK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBQYXNzT3duUHRyPFQ+IGFkb3B0UHRyKFQqKTsKLQot
ICAgIGNsYXNzIFJlZkNvdW50ZWRCYXNlOwotICAgIGNsYXNzIFRocmVhZFNhZmVSZWZDb3VudGVk
QmFzZTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25QdHIgewotICAg
IHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBUIFZhbHVlVHlwZTsKLSAgICAgICAgdHlwZWRlZiBW
YWx1ZVR5cGUqIFB0clR5cGU7Ci0KLSAgICAgICAgUGFzc093blB0cigpIDogbV9wdHIoMCkgeyB9
Ci0gICAgICAgIFBhc3NPd25QdHIoc3RkOjpudWxscHRyX3QpIDogbV9wdHIoMCkgeyB9Ci0KLSAg
ICAgICAgLy8gSXQgc29tZXdoYXQgYnJlYWtzIHRoZSB0eXBlIHN5c3RlbSB0byBhbGxvdyB0cmFu
c2ZlciBvZiBvd25lcnNoaXAgb3V0IG9mCi0gICAgICAgIC8vIGEgY29uc3QgUGFzc093blB0ci4g
SG93ZXZlciwgaXQgbWFrZXMgaXQgbXVjaCBlYXNpZXIgdG8gd29yayB3aXRoIFBhc3NPd25QdHIK
LSAgICAgICAgLy8gdGVtcG9yYXJpZXMsIGFuZCB3ZSBkb24ndCBoYXZlIGEgbmVlZCB0byB1c2Ug
cmVhbCBjb25zdCBQYXNzT3duUHRycyBhbnl3YXkuCi0gICAgICAgIFBhc3NPd25QdHIoY29uc3Qg
UGFzc093blB0ciYgbykgOiBtX3B0cihvLmxlYWtQdHIoKSkgeyB9Ci0gICAgICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IFBhc3NPd25QdHIoY29uc3QgUGFzc093blB0cjxVPiYgbykgOiBtX3B0cihv
LmxlYWtQdHIoKSkgeyB9Ci0KLSAgICAgICAgflBhc3NPd25QdHIoKSB7IGRlbGV0ZU93bmVkUHRy
KG1fcHRyKTsgfQotCi0gICAgICAgIFB0clR5cGUgZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7
IH0KLQotICAgICAgICBQdHJUeXBlIGxlYWtQdHIoKSBjb25zdCBXQVJOX1VOVVNFRF9SRVRVUk47
Ci0KLSAgICAgICAgVmFsdWVUeXBlJiBvcGVyYXRvciooKSBjb25zdCB7IEFTU0VSVChtX3B0cik7
IHJldHVybiAqbV9wdHI7IH0KLSAgICAgICAgUHRyVHlwZSBvcGVyYXRvci0+KCkgY29uc3QgeyBB
U1NFUlQobV9wdHIpOyByZXR1cm4gbV9wdHI7IH0KLQotICAgICAgICBib29sIG9wZXJhdG9yISgp
IGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQotCi0gICAgICAgIC8vIFRoaXMgY29udmVyc2lvbiBv
cGVyYXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1dCBub3QgdG8gb3Ro
ZXIgaW50ZWdlciB0eXBlcy4KLSAgICAgICAgdHlwZWRlZiBQdHJUeXBlIFBhc3NPd25QdHI6OipV
bnNwZWNpZmllZEJvb2xUeXBlOwotICAgICAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPyAmUGFzc093blB0cjo6bV9wdHIgOiAwOyB9Ci0KLSAg
ICAgICAgUGFzc093blB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NPd25QdHImKSB7IENPTVBJTEVf
QVNTRVJUKCFzaXplb2YoVCopLCBQYXNzT3duUHRyX3Nob3VsZF9uZXZlcl9iZV9hc3NpZ25lZF90
byk7IHJldHVybiAqdGhpczsgfQotCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGZyaWVu
ZCBQYXNzT3duUHRyPFU+IGFkb3B0UHRyKFUqKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGV4
cGxpY2l0IFBhc3NPd25QdHIoUHRyVHlwZSBwdHIpIDogbV9wdHIocHRyKSB7IH0KLQotICAgICAg
ICAvLyBXZSBzaG91bGQgbmV2ZXIgaGF2ZSB0d28gT3duUHRycyBmb3IgdGhlIHNhbWUgdW5kZXJs
eWluZyBvYmplY3QgKG90aGVyd2lzZSB3ZSdsbCBnZXQKLSAgICAgICAgLy8gZG91YmxlLWRlc3Ry
dWN0aW9uKSwgc28gdGhlc2UgZXF1YWxpdHkgb3BlcmF0b3JzIHNob3VsZCBuZXZlciBiZSBuZWVk
ZWQuCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0b3I9PShjb25zdCBQ
YXNzT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFUqKSwgT3duUHRyc19zaG91
bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NPd25QdHI8VT4mKSB7IENPTVBJTEVf
QVNTRVJUKCFzaXplb2YoVSopLCBPd25QdHJzX3Nob3VsZF9uZXZlcl9iZV9lcXVhbCk7IHJldHVy
biBmYWxzZTsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBib29sIG9wZXJhdG9yPT0o
Y29uc3QgT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFUqKSwgT3duUHRyc19z
aG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0IE93blB0cjxVPiYpIHsgQ09NUElMRV9B
U1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsgcmV0dXJu
IGZhbHNlOyB9Ci0KLSAgICAgICAgbXV0YWJsZSBQdHJUeXBlIG1fcHRyOwotICAgIH07Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdHlwZW5hbWUgUGFzc093blB0cjxUPjo6UHRy
VHlwZSBQYXNzT3duUHRyPFQ+OjpsZWFrUHRyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBhc3NP
d25QdHI8VD4mIGEsIGNvbnN0IFBhc3NPd25QdHI8VT4mIGIpIAotICAgIHsKLSAgICAgICAgcmV0
dXJuIGEuZ2V0KCkgPT0gYi5nZXQoKTsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzT3duUHRyPFQ+
JiBhLCBjb25zdCBPd25QdHI8VT4mIGIpIAotICAgIHsKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkg
PT0gYi5nZXQoKTsgCi0gICAgfQotICAgIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgT3duUHRyPFQ+JiBhLCBjb25zdCBQ
YXNzT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0
KCk7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBp
bmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBhc3NPd25QdHI8VD4mIGEsIFUqIGIpIAotICAg
IHsKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgPT0gYjsgCi0gICAgfQotICAgIAotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oVCogYSwg
Y29uc3QgUGFzc093blB0cjxVPiYgYikgCi0gICAgewotICAgICAgICByZXR1cm4gYSA9PSBiLmdl
dCgpOyAKLSAgICB9Ci0gICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4g
aW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBQYXNzT3duUHRyPFQ+JiBhLCBjb25zdCBQYXNz
T3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpICE9IGIuZ2V0KCk7
IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxp
bmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NPd25QdHI8VD4mIGEsIGNvbnN0IE93blB0cjxV
PiYgYikgCi0gICAgewotICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgpOyAKLSAgICB9
Ci0gICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBPd25QdHI8VD4mIGEsIGNvbnN0IFBhc3NPd25QdHI8VT4mIGIpIAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsgCi0gICAgfQotICAgIAot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgUGFzc093blB0cjxUPiYgYSwgVSogYikKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
LmdldCgpICE9IGI7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFQqIGEsIGNvbnN0IFBhc3NPd25QdHI8VT4m
IGIpIAotICAgIHsKLSAgICAgICAgcmV0dXJuIGEgIT0gYi5nZXQoKTsgCi0gICAgfQotCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFBhc3NPd25QdHI8VD4gYWRvcHRQdHIoVCogcHRy
KQotICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19jb252ZXJ0aWJsZTxUKiwg
UmVmQ291bnRlZEJhc2UqPjo6dmFsdWUsICJEbyBub3QgdXNlIGFkb3B0UHRyIHdpdGggUmVmQ291
bnRlZCwgdXNlIGFkb3B0UmVmISIpOwotICAgICAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Nv
bnZlcnRpYmxlPFQqLCBUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2UqPjo6dmFsdWUsICJEbyBub3Qg
dXNlIGFkb3B0UHRyIHdpdGggVGhyZWFkU2FmZVJlZkNvdW50ZWQsIHVzZSBhZG9wdFJlZiEiKTsK
LQotICAgICAgICByZXR1cm4gUGFzc093blB0cjxUPihwdHIpOwotICAgIH0KLQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBQYXNzT3duUHRyPFQ+IHN0YXRpY19w
b2ludGVyX2Nhc3QoY29uc3QgUGFzc093blB0cjxVPiYgcCkgCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRQdHIoc3RhdGljX2Nhc3Q8VCo+KHAubGVha1B0cigpKSk7Ci0gICAgfQotCi0gICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc1NtYXJ0UHRyPFBhc3NPd25QdHI8VD4+IHsK
LSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOwotICAgIH07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OlBhc3NPd25QdHI7Ci11c2luZyBXVEY6OmFkb3B0
UHRyOwotdXNpbmcgV1RGOjpzdGF0aWNfcG9pbnRlcl9jYXN0OwotCi0jZW5kaWYgLy8gV1RGX1Bh
c3NPd25QdHJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU2l6ZUxpbWl0cy5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9TaXplTGltaXRzLmNwcAppbmRleCA3NjE0ZWMyNjMyODdhZGNiMDA3NjU3
MWJhMzc2ZmExZjA1YTRiMmJhLi5hODJkMGM0OGJjOTE0YWVlNzJlN2FmYWY1NDk1ZTYxNWQwNzJi
M2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TaXplTGltaXRzLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9TaXplTGltaXRzLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgPHR5
cGVfdHJhaXRzPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMu
aD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAg
LTU1LDcgKzU0LDYgQEAgc3RydWN0IFNhbWVTaXplQXNSZWZDb3VudGVkIHsKIH07CiAjZW5kaWYK
IAotc3RhdGljX2Fzc2VydChzaXplb2YoT3duUHRyPGludD4pID09IHNpemVvZihpbnQqKSwgIk93
blB0ciBzaG91bGQgc3RheSBzbWFsbCEiKTsKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFBhc3NSZWZQ
dHI8UmVmQ291bnRlZDxpbnQ+PikgPT0gc2l6ZW9mKGludCopLCAiUGFzc1JlZlB0ciBzaG91bGQg
c3RheSBzbWFsbCEiKTsKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFJlZkNvdW50ZWQ8aW50PikgPT0g
c2l6ZW9mKFNhbWVTaXplQXNSZWZDb3VudGVkKSwgIlJlZkNvdW50ZWQgc2hvdWxkIHN0YXkgc21h
bGwhIik7CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihSZWZQdHI8UmVmQ291bnRlZDxpbnQ+PikgPT0g
c2l6ZW9mKGludCopLCAiUmVmUHRyIHNob3VsZCBzdGF5IHNtYWxsISIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3JUcmFp
dHMuaAppbmRleCBhODMwZTQ0YTBiYzkwOTdiM2E2NDhmNWVjODMyYmE4MDhjMmQ3NGYwLi45NGRi
OGNhYjdkOWZkMDY4ZGIxZmI0ODQ1MTQyYjFjMWUzNGNlZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9WZWN0b3JUcmFpdHMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3JUcmFpdHMu
aApAQCAtMjEsNyArMjEsNiBAQAogI2lmbmRlZiBXVEZfVmVjdG9yVHJhaXRzX2gKICNkZWZpbmUg
V1RGX1ZlY3RvclRyYWl0c19oCiAKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx1dGlsaXR5PgpA
QCAtNjYsMjIgKzY1LDEzIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBjYW5Db21wYXJlV2l0aE1lbWNtcCA9IHRydWU7CiAgICAgfTsKIAotICAgIC8vIFdlIGtu
b3cgT3duUHRyIGFuZCBSZWZQdHIgYXJlIHNpbXBsZSBlbm91Z2ggdGhhdCBpbml0aWFsaXppbmcg
dG8gMCBhbmQgbW92aW5nIHdpdGggbWVtY3B5Ci0gICAgLy8gKGFuZCB0aGVuIG5vdCBkZXN0cnVj
dGluZyB0aGUgb3JpZ2luYWwpIHdpbGwgdG90YWxseSB3b3JrCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgUD4KLSAgICBzdHJ1Y3QgVmVjdG9yVHJhaXRzPFJlZlB0cjxQPj4gOiBTaW1wbGVDbGFzc1Zl
Y3RvclRyYWl0cyB7IH07CisgICAgLy8gV2Uga25vdyBzbWFydCBwb2ludGVycyBhcmUgc2ltcGxl
IGVub3VnaCB0aGF0IGluaXRpYWxpemluZyB0byAwIGFuZCBtb3Zpbmcgd2l0aCBtZW1jcHkKKyAg
ICAvLyAoYW5kIHRoZW4gbm90IGRlc3RydWN0aW5nIHRoZSBvcmlnaW5hbCkgd2lsbCB3b3JrLgog
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4KLSAgICBzdHJ1Y3QgVmVjdG9yVHJhaXRzPE93blB0
cjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7IH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBQPgotICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8c3RkOjp1bmlxdWVfcHRyPFA+PiA6IFNp
bXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFA+Ci0g
ICAgc3RydWN0IFZlY3RvclRyYWl0czxSZWY8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMg
eyB9OwotCi0gICAgdGVtcGxhdGU8PgotICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8QXRvbWljU3Ry
aW5nPiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBQPiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPFJlZlB0cjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3RvclRy
YWl0cyB7IH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IFZlY3RvclRyYWl0czxz
dGQ6OnVuaXF1ZV9wdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgeyB9OworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBWZWN0b3JUcmFpdHM8UmVmPFA+PiA6IFNpbXBsZUNs
YXNzVmVjdG9yVHJhaXRzIHsgfTsKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBWZWN0b3JUcmFpdHM8
QXRvbWljU3RyaW5nPiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZpcnN0LCB0eXBlbmFtZSBTZWNvbmQ+CiAgICAgc3RydWN0IFZlY3RvclRy
YWl0czxzdGQ6OnBhaXI8Rmlyc3QsIFNlY29uZD4+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmlu
ZGV4IGY3MWViNjA1MjBkNTA3YWZiOTNmNmFlZWI4YWE3NTNjZTViOWViNjUuLmNmN2Q3MTgzYzZj
ZWNjZjFiMmE4OTc2NTM0MjY2M2ZhZTNlZTM1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0xMTksNyArMTE5LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ludFJlY3RDYWlyby5jcHAKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWly
by5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFr
ZQppbmRleCBiODFjOWQ1NzJiMzVlNmIzN2Q4M2VmNmY2MzA3NDA2MzJhYTkxNTI0Li5kOGI2ZDY1
ZThmYWE3OWQwOGMxMjhjMzdkZmY4OTE2ZjNmZGE1ZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5j
bWFrZQpAQCAtNzgsNyArNzgsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vSW50UmVjdENhaXJvLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNh
aXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
aW5DYWlyby5jbWFrZQppbmRleCA0NTkzZDFlYTllYjJkYTY0MmY2OGNmMWE0ODJhNzVhZGI5NjY0
NjVhLi43OGJiMDFhMGIwNDFmOTlmMTBhNzc0MjVhODIwNDM3YmFmMDhkZTA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKQEAgLTUwLDcgKzUwLDYgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKLSAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9QYXRoQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJv
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5k
ZXggYWM4MTUzODM5N2QwNzFhODBmOThlZDM1MzcyNTkxNjI1MGY5YTQ0OS4uMzY5ZjUyYjhkMWFl
YTM3ZTJhNjQ5YmZjODYxYjVkMDFmNjJiZThkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC04NTgyLDE2ICs4NTgyLDYgQEAKICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9D
bENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YWlyb1xPd25QdHJDYWlyby5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xjYWlyb1xQYXRoQ2Fpcm8uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KQEAgLTIwMTE4LDE2ICsyMDEwOCw2IEBACiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ3VzdG9tQnVp
bGRTdGVwPgotICAgIDxDdXN0b21CdWlsZFN0ZXAgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhp
Y3NcY2Fpcm9cT3duUHRyQ2Fpcm8uaCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KICAgICA8Q3VzdG9tQnVpbGRTdGVwIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXFBsYXRmb3JtUGF0aENhaXJvLmgiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDk1
YzMxZTgxNjlhNGQ2OWMxYzZkOTMxYmE2MzhkY2Q1NzA3YTNmYWEuLmEwMzE4MDg1YzVhODU1MDYw
M2Y3YzBlODIyYmM0NjE4MGY5ZTg1YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTE1ODQsOSArMTU4NCw2
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xJ
bnRSZWN0Q2Fpcm8uY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm88
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXGNhaXJvXE93blB0ckNhaXJvLmNwcCI+Ci0gICAgICA8RmlsdGVyPnBs
YXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xQYXRoQ2Fpcm8uY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm88L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KQEAgLTE1MzcxLDkgKzE1MzY4LDYgQEAKICAgICA8Q3VzdG9tQnVpbGRTdGVw
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXEdyYXBoaWNzQ29udGV4dFBsYXRm
b3JtUHJpdmF0ZUNhaXJvLmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljc1xjYWly
bzwvRmlsdGVyPgogICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICAgIDxDdXN0b21CdWlsZFN0ZXAg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cT3duUHRyQ2Fpcm8uaCI+Ci0gICAg
ICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+Ci0gICAgPC9DdXN0b21C
dWlsZFN0ZXA+CiAgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFw
aGljc1xjYWlyb1xQbGF0Zm9ybVBhdGhDYWlyby5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1c
Z3JhcGhpY3NcY2Fpcm88L0ZpbHRlcj4KICAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCAxYjFhYzEzZWM2
NTJhOGJiODE3YTI1OWQ1OGQwNDVmYzdlNDNhZWJjLi4yYWE5M2VjNmQ5YjJhNTQyMTg5YzkxZTQ3
MTU5ZmJhZTU3YTMwOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9z
c1RocmVhZENvcGllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwCkBAIC0xNzksMTggKzE3OSw0IEBAIENPTVBJTEVfQVNTRVJUKChzdGQ6Omlz
X3NhbWU8CiAgICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCiAgICAgICAgICAgICAgICBSYXdQ
b2ludGVyUmVmQ291bnRlZFRlc3QpOwogCi0vLyBWZXJpZnkgdGhhdCBQYXNzT3duUHRyIGdldHMg
cGFzc2VkIHRocm91Z2guCi1DT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAotICAgICAgICAg
ICAgICAgICAgUGFzc093blB0cjxmbG9hdD4sCi0gICAgICAgICAgICAgICAgICBDcm9zc1RocmVh
ZENvcGllcjxQYXNzT3duUHRyPGZsb2F0Pj46OlR5cGUKLSAgICAgICAgICAgICAgICAgID46OnZh
bHVlKSwKLSAgICAgICAgICAgICAgIFBhc3NPd25QdHJUZXN0KTsKLQotLy8gVmVyaWZ5IHRoYXQg
UGFzc093blB0ciBkb2VzIG5vdCBnZXQgcGFzc2VkIHRocm91Z2guCi1DT01QSUxFX0FTU0VSVCgo
c3RkOjppc19zYW1lPAotICAgICAgICAgICAgICAgICAgaW50LAotICAgICAgICAgICAgICAgICAg
Q3Jvc3NUaHJlYWRDb3BpZXI8T3duUHRyPGZsb2F0Pj46OlR5cGUKLSAgICAgICAgICAgICAgICAg
ID46OnZhbHVlKSwKLSAgICAgICAgICAgICAgIE93blB0clRlc3QpOwotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVh
ZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaApp
bmRleCA3MGY5MjQzMTdkMDhiOThmYzZiYTg2NGMzZmZkYTU4MzVmZGYwZjliLi5kNzUwNTljMTc2
OGVkN2M5YzI1YzJhNzE4ZTcxMTQwOWEzZTc1ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTExMCwxNCArMTA5LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9CiAgICAgfTsKIAotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBQ
YXNzT3duUHRyPFQ+PiB7Ci0gICAgICAgIHR5cGVkZWYgUGFzc093blB0cjxUPiBUeXBlOwotICAg
ICAgICBzdGF0aWMgVHlwZSBjb3B5KFR5cGUgb3duUHRyKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gb3duUHRyOwotICAgICAgICB9Ci0gICAgfTsKLQogICAgIHRlbXBsYXRlPD4gc3Ry
dWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFVSTD4gewogICAgICAgICB0
eXBlZGVmIFVSTCBUeXBlOwogICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFVSTCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKaW5kZXgg
ZDI5NWQ0OTgwMzg1ZmJiNzVkNzgyZTdjYTMxMWI1YWMwZjdjZWZkOC4uMDIzYTc4MjBiNjVjMDQw
M2MwMTZkMWFkOWZlNjhkOTI0ODM4NzA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiU2Ny
b2xsYmFyVGhlbWUuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFs
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcApp
bmRleCA3NmQ0YjEyOGZlNmZlZWM1NWI2MGNlODg3MjAwNmRjOGI5YjcyNzIyLi42M2JjNWFiZjQ4
ZWRhNjRmNGQzOGY3NzJlODVmNzJhODBhYzMwNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIlRl
eHRDb2RlY0lDVS5oIgogI2luY2x1ZGUgIlRocmVhZFRpbWVycy5oIgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
VGhyZWFkU3BlY2lmaWMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL1dURlRocmVhZERhdGEuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RocmVhZEdsb2JhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2Jh
bERhdGEuaAppbmRleCAxODk2ZmMyOWE5MTNiZjAyNjgyNzY1ODEzY2Q0NTc2YTZlNjA5NzJmLi41
NzA2NjZiMjk5M2RkOWMxZGE2OGQyYjc0ZGI0MmQ2NDk1MDk2NDcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdIYXNoLmg+CiAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0YuaAppbmRleCBm
ZTk0ZDBjOGNhMzVkZWEwNjg2YmJjZjJhYzI4NWZmOTgxZjJkNmNmLi44MWVkMDUyMWEyZjNhMDQz
YmRjYTA3Yzg0NjNiMGEzZDNiZTdhNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25DRi5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIENETVNl
c3Npb25BVkZvdW5kYXRpb25DRl9oCiAKICNpbmNsdWRlICJDRE1TZXNzaW9uLmgiCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKICNpZiBI
QVZFKEFWRk9VTkRBVElPTl9MT0FERVJfREVMRUdBVEUpICYmIEVOQUJMRShFTkNSWVBURURfTUVE
SUFfVjIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBjYmEyN2E1NGM2MDRmYmNjMGQ3Mzk0OTQ0OWZk
MWMxZGVjMGUyNTczLi5lNGFkZGNlNzQ3YjU1MjhlYjFlNDdjOGY0YTc1NGE4MGIzNGFkYTNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25DRi5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBwcml2YXRlOgogICAgIG11dGFi
bGUgUmV0YWluUHRyPENBQ0ZMYXllclJlZj4gbV9jYVZpZGVvTGF5ZXI7CiAgICAgUmVmUHRyPFBs
YXRmb3JtQ0FMYXllcj4gbV92aWRlb0xheWVyV3JhcHBlcjsKIAotICAgIE93blB0cjxMYXllckNs
aWVudD4gbV9sYXllckNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJDbGllbnQ+IG1f
bGF5ZXJDbGllbnQ7CiAgICAgQ09NUHRyPElEaXJlY3QzRERldmljZTlFeD4gbV9kM2REZXZpY2U7
CiAKICAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGKiBtX2N1cnJlbnRUZXh0VHJhY2s7CkBA
IC0xNjIzLDcgKzE2MjMsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3NOb3RpZmljYXRpb24o
dm9pZCogY29udGV4dCkKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IE93blB0cjxOb3RpZmljYXRpb25DYWxsYmFja0RhdGE+IG5vdGlmaWNhdGlvbkRhdGEgPSBhZG9w
dFB0cihyZWludGVycHJldF9jYXN0PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YSo+KGNvbnRleHQp
KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhPiBub3RpZmlj
YXRpb25EYXRhIHsgc3RhdGljX2Nhc3Q8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhKj4oY29udGV4
dCkgfTsKIAogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldyYXBw
ZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KG5vdGlmaWNhdGlvbkRhdGEt
Pm1fY29udGV4dCk7CkBAIC0xNjczLDkgKzE2NzMsOSBAQCB2b2lkIEFWRldyYXBwZXI6Om5vdGlm
aWNhdGlvbkNhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiBvYnNlcnZlciwg
QwogICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6Om5vdGlmaWNhdGlvbkNhbGxiYWNrKGlmPSVk
KSAlcyIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYnNlcnZlciksIG5vdGlmaWNhdGlv
bk5hbWUpOwogI2VuZGlmCiAKLSAgICBPd25QdHI8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhPiBu
b3RpZmljYXRpb25EYXRhID0gYWRvcHRQdHIobmV3IE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YShw
cm9wZXJ0eU5hbWUsIG9ic2VydmVyKSk7CisgICAgYXV0byBub3RpZmljYXRpb25EYXRhID0gc3Rk
OjptYWtlX3VuaXF1ZTxOb3RpZmljYXRpb25DYWxsYmFja0RhdGE+KHByb3BlcnR5TmFtZSwgb2Jz
ZXJ2ZXIpOwogCi0gICAgZGlzcGF0Y2hfYXN5bmNfZihkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBub3RpZmljYXRpb25EYXRhLmxlYWtQdHIoKSwgcHJvY2Vzc05vdGlmaWNhdGlvbik7CisgICAg
ZGlzcGF0Y2hfYXN5bmNfZihkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBub3RpZmljYXRpb25E
YXRhLnJlbGVhc2UoKSwgcHJvY2Vzc05vdGlmaWNhdGlvbik7CiB9CiAKIHZvaWQgQVZGV3JhcHBl
cjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9pZCogY29u
dGV4dCkKQEAgLTE5MTcsNyArMTkxNyw3IEBAIFBsYXRmb3JtTGF5ZXIqIEFWRldyYXBwZXI6OnBs
YXRmb3JtTGF5ZXIoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIENyZWF0ZSBhIFBsYXRm
b3JtQ0FMYXllciBzbyB3ZSBjYW4gcmVzaXplIHRoZSB2aWRlbyBsYXllciB0byBtYXRjaCB0aGUg
ZWxlbWVudCBzaXplLgotICAgIG1fbGF5ZXJDbGllbnQgPSBhZG9wdFB0cihuZXcgTGF5ZXJDbGll
bnQodGhpcykpOworICAgIG1fbGF5ZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPExheWVyQ2xp
ZW50Pih0aGlzKTsKICAgICBpZiAoIW1fbGF5ZXJDbGllbnQpCiAgICAgICAgIHJldHVybiAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWly
b1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5jcHAKaW5kZXggMmVhNDJmMWMyOTYzODQ4NDRhNGNiYTFmYmZlNTljMTJm
ZGI5YzBiMS4uYmU5NzAxMGI4NmYzMDhhMWViZWFjNzEzMGUxZTNhMGI1ZGRiYjNmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRp
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJv
VXRpbGl0aWVzLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIK
ICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAi
T3duUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJQYXRoLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1QYXRo
Q2Fpcm8uaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgpAQCAtNzMsOCArNzIsOSBAQCB2b2lk
IHNldFNvdXJjZVJHQkFGcm9tQ29sb3IoY2Fpcm9fdCogY29udGV4dCwgY29uc3QgQ29sb3ImIGNv
bG9yKQogCiB2b2lkIGFwcGVuZFBhdGhUb0NhaXJvQ29udGV4dChjYWlyb190KiB0bywgY2Fpcm9f
dCogZnJvbSkKIHsKLSAgICBPd25QdHI8Y2Fpcm9fcGF0aF90PiBjYWlyb1BhdGggPSBhZG9wdFB0
cihjYWlyb19jb3B5X3BhdGgoZnJvbSkpOwotICAgIGNhaXJvX2FwcGVuZF9wYXRoKHRvLCBjYWly
b1BhdGguZ2V0KCkpOworICAgIGF1dG8gY2Fpcm9QYXRoID0gY2Fpcm9fY29weV9wYXRoKGZyb20p
OworICAgIGNhaXJvX2FwcGVuZF9wYXRoKHRvLCBjYWlyb1BhdGgpOworICAgIGNhaXJvX3BhdGhf
ZGVzdHJveShjYWlyb1BhdGgpOwogfQogCiB2b2lkIHNldFBhdGhPbkNhaXJvQ29udGV4dChjYWly
b190KiB0bywgY2Fpcm9fdCogZnJvbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKaW5kZXggZDIyYzRj
YWUyYjE5NmQ3N2U3ZmYzYjRkMjlmNzkwN2YxYzNhODhmMi4uYTMzNWIwNWNhYjVlOGU5YjA3NzE5
ZWYzNzE5MjQ1ODdlYTI4MGQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKQEAgLTQzLDcgKzQz
LDYgQEAKICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvVHlwZWRBcnJheUlubGluZXMuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9CYXNlNjQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTExOSw3ICsx
MTgsNyBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBm
bG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENvbAogCiAgICAgUmVmUHRyPGNhaXJvX3Q+IGNy
ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKG1fZGF0YS5tX3N1cmZhY2UuZ2V0KCkpKTsKICAgICBt
X2RhdGEubV9wbGF0Zm9ybUNvbnRleHQuc2V0Q3IoY3IuZ2V0KCkpOwotICAgIG1fZGF0YS5tX2Nv
bnRleHQgPSBhZG9wdFB0cihuZXcgR3JhcGhpY3NDb250ZXh0KCZtX2RhdGEubV9wbGF0Zm9ybUNv
bnRleHQpKTsKKyAgICBtX2RhdGEubV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxHcmFwaGlj
c0NvbnRleHQ+KCZtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQpOwogICAgIHN1Y2Nlc3MgPSB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckRhdGFDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VCdWZmZXJEYXRhQ2Fpcm8uaAppbmRleCBjYjg5Yzc5MGJjOTU2OWU4NmZl
ZDk3ODZiOTUxOWYwNTcwODQ1OTRjLi5kNjJmNDcwNTE1ZTNlODJkY2E5ZDk3NjM0NDdhNjdlMmZj
NGQwNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckRhdGFDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVi
bGljOgogCiAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwogICAgIFBsYXRm
b3JtQ29udGV4dENhaXJvIG1fcGxhdGZvcm1Db250ZXh0OwotICAgIE93blB0cjxHcmFwaGljc0Nv
bnRleHQ+IG1fY29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0PiBt
X2NvbnRleHQ7CiAgICAgSW50U2l6ZSBtX3NpemU7CiAKICNpZiBFTkFCTEUoQUNDRUxFUkFURURf
MkRfQ0FOVkFTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vT3duUHRyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTI4
YWZiNmQxN2Q3YjdkM2U3ZTQ1NDIxYzdjZGJkYTAyZTkzMWE4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL093blB0ckNhaXJvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29sbGFib3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQotICogIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxIFVTQQotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJPd25Q
dHJDYWlyby5oIgotCi0jaWYgVVNFKENBSVJPKQotCi0jaWYgVVNFKEZSRUVUWVBFKQotI2luY2x1
ZGUgPGNhaXJvLWZ0Lmg+Ci0jaW5jbHVkZSA8Zm9udGNvbmZpZy9mY2ZyZWV0eXBlLmg+Ci0jZW5k
aWYKLQotI2luY2x1ZGUgPGNhaXJvLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi0jaWYgVVNFKEZS
RUVUWVBFKQotdGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxGY09iamVjdFNldD4oRmNP
YmplY3RTZXQqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBGY09iamVjdFNldERlc3Ry
b3kocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxGY0ZvbnRTZXQ+
KEZjRm9udFNldCogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIEZjRm9udFNldERlc3Ry
b3kocHRyKTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotI2VuZGlmIC8vIFVT
RShDQUlSTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL093blB0ckNhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9Pd25QdHJDYWlyby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjYwMTNiYmE1
OGViMmVhYWQ0OTc5NDI4N2MxMTQyNjAxN2ZlODk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL093blB0ckNhaXJvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIENvbGxhYm9yYSBMdGQuCi0gKgotICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLSAqICBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSBVU0EKLSAqLwotCi0jaWZuZGVmIE93blB0ckNhaXJvX2gKLSNkZWZpbmUgT3duUHRyQ2Fpcm9f
aAotCi0jaWYgVVNFKENBSVJPKQotCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+Ci0KLSNpZiBVU0UoRlJFRVRZUEUpCi10eXBlZGVmIHN0cnVjdCBf
RmNPYmplY3RTZXQgRmNPYmplY3RTZXQ7Ci10eXBlZGVmIHN0cnVjdCBfRmNGb250U2V0IEZjRm9u
dFNldDsKLSNlbmRpZgotCi10eXBlZGVmIHN0cnVjdCBjYWlyb19wYXRoIGNhaXJvX3BhdGhfdDsK
LQotbmFtZXNwYWNlIFdURiB7Ci0KLSNpZiBVU0UoRlJFRVRZUEUpCi10ZW1wbGF0ZSA8PiB2b2lk
IGRlbGV0ZU93bmVkUHRyPEZjT2JqZWN0U2V0PihGY09iamVjdFNldCopOwotdGVtcGxhdGUgPD4g
dm9pZCBkZWxldGVPd25lZFB0cjxGY0ZvbnRTZXQ+KEZjRm9udFNldCopOwotI2VuZGlmCi0KLX0g
Ly8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYgLy8gVVNFKENBSVJPKQotCi0jZW5kaWYgLy8gT3du
UHRyQ2Fpcm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGF0aENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL1BhdGhDYWlyby5jcHAKaW5kZXggZGNjMmVmMTYwYjA4NzNhYmRmNjI5Mzk1Y2MxODQxNDBl
MDFlNTNkYy4uNTQ2YWRhNmNjMmIxYmJkMmVlOTVmMDlmNTllYTg2MWZiNjU0ZDA4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8u
Y3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVk
ZSAiT3duUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVBhdGhDYWlyby5oIgogI2luY2x1
ZGUgIlN0cm9rZVN0eWxlQXBwbGllci5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CkBAIC01OSw4ICs1
OCw5IEBAIFBhdGg6OlBhdGgoY29uc3QgUGF0aCYgb3RoZXIpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGNhaXJvX3QqIGNyID0gZW5zdXJlUGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKTsKLSAgICBP
d25QdHI8Y2Fpcm9fcGF0aF90PiBwYXRoQ29weSA9IGFkb3B0UHRyKGNhaXJvX2NvcHlfcGF0aChv
dGhlci5wbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpKSk7Ci0gICAgY2Fpcm9fYXBwZW5kX3BhdGgo
Y3IsIHBhdGhDb3B5LmdldCgpKTsKKyAgICBhdXRvIHBhdGhDb3B5ID0gY2Fpcm9fY29weV9wYXRo
KG90aGVyLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCkpOworICAgIGNhaXJvX2FwcGVuZF9wYXRo
KGNyLCBwYXRoQ29weSk7CisgICAgY2Fpcm9fcGF0aF9kZXN0cm95KHBhdGhDb3B5KTsKIH0KIAog
UGxhdGZvcm1QYXRoUHRyIFBhdGg6OmVuc3VyZVBsYXRmb3JtUGF0aCgpCkBAIC04Myw4ICs4Myw5
IEBAIFBhdGgmIFBhdGg6Om9wZXJhdG9yPShjb25zdCBQYXRoJiBvdGhlcikKICAgICB9IGVsc2Ug
ewogICAgICAgICBjbGVhcigpOwogICAgICAgICBjYWlyb190KiBjciA9IGVuc3VyZVBsYXRmb3Jt
UGF0aCgpLT5jb250ZXh0KCk7Ci0gICAgICAgIE93blB0cjxjYWlyb19wYXRoX3Q+IHBhdGhDb3B5
ID0gYWRvcHRQdHIoY2Fpcm9fY29weV9wYXRoKG90aGVyLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0
KCkpKTsKLSAgICAgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY3IsIHBhdGhDb3B5LmdldCgpKTsKKyAg
ICAgICAgYXV0byBwYXRoQ29weSA9IGNhaXJvX2NvcHlfcGF0aChvdGhlci5wbGF0Zm9ybVBhdGgo
KS0+Y29udGV4dCgpKTsKKyAgICAgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY3IsIHBhdGhDb3B5KTsK
KyAgICAgICAgY2Fpcm9fcGF0aF9kZXN0cm95KHBhdGhDb3B5KTsKICAgICB9CiAKICAgICByZXR1
cm4gKnRoaXM7CkBAIC0zMjMsMTEgKzMyNCwxMCBAQCB2b2lkIFBhdGg6OmFkZFBhdGgoY29uc3Qg
UGF0aCYgcGF0aCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pCiAgICAgY2Fpcm9f
dCogY3IgPSBwYXRoLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCk7CiAgICAgY2Fpcm9fc2F2ZShj
cik7CiAgICAgY2Fpcm9fdHJhbnNmb3JtKGNyLCAmbWF0cml4KTsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8Y2Fpcm9fcGF0aF90LCB2b2lkKCopKGNhaXJvX3BhdGhfdCopPiBwYXRoQ29weShjYWlyb19j
b3B5X3BhdGgoY3IpLCBbXShjYWlyb19wYXRoX3QqIHBhdGgpIHsKLSAgICAgICAgY2Fpcm9fcGF0
aF9kZXN0cm95KHBhdGgpOwotICAgIH0pOworICAgIGF1dG8gcGF0aENvcHkgPSBjYWlyb19jb3B5
X3BhdGgoY3IpOwogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwotICAgIGNhaXJvX2FwcGVuZF9wYXRo
KGVuc3VyZVBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCksIHBhdGhDb3B5LmdldCgpKTsKKyAgICBj
YWlyb19hcHBlbmRfcGF0aChlbnN1cmVQbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpLCBwYXRoQ29w
eSk7CisgICAgY2Fpcm9fcGF0aF9kZXN0cm95KHBhdGhDb3B5KTsKIH0KIAogdm9pZCBQYXRoOjpj
bG9zZVN1YnBhdGgoKQpAQCAtMzk2LDcgKzM5Niw3IEBAIHZvaWQgUGF0aDo6YXBwbHkodm9pZCog
aW5mbywgUGF0aEFwcGxpZXJGdW5jdGlvbiBmdW5jdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJu
OwogCiAgICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpOwotICAgIE93
blB0cjxjYWlyb19wYXRoX3Q+IHBhdGhDb3B5ID0gYWRvcHRQdHIoY2Fpcm9fY29weV9wYXRoKGNy
KSk7CisgICAgYXV0byBwYXRoQ29weSA9IGNhaXJvX2NvcHlfcGF0aChjcik7CiAgICAgY2Fpcm9f
cGF0aF9kYXRhX3QqIGRhdGE7CiAgICAgUGF0aEVsZW1lbnQgcGVsZW1lbnQ7CiAgICAgRmxvYXRQ
b2ludCBwb2ludHNbM107CkBAIC00MjgsNiArNDI4LDcgQEAgdm9pZCBQYXRoOjphcHBseSh2b2lk
KiBpbmZvLCBQYXRoQXBwbGllckZ1bmN0aW9uIGZ1bmN0aW9uKSBjb25zdAogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgY2Fpcm9fcGF0aF9kZXN0cm95KHBhdGhDb3B5
KTsKIH0KIAogdm9pZCBQYXRoOjp0cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFu
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1Bs
YXRmb3JtQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcAppbmRleCBiMTBjYTBiMGFmNWIxZmIwOWYx
ZjMzNGIwNzI4MmJjMDM1ZWJkZmM2Li4wY2QyNWM5Mzc2MDY0NTEyZTkxNzY0NjY3NGVjZWIyZmJi
YTA4NzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCkBAIC0zMyw3ICszMyw2IEBA
CiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIk93blB0ckNhaXJvLmgiCiAjaW5j
bHVkZSAiUGF0dGVybi5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CiAKQEAgLTMwNiw3ICszMDUsNyBA
QCB2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcoY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YQogICAgIEFTU0VSVChzdGF0ZS5maWxsUGF0dGVybik7
CiAKICAgICAvLyBIb2xkIGN1cnJlbnQgY2Fpcm8gcGF0aCBpbiBhIHZhcmlhYmxlIGZvciByZXN0
b3JpbmcgaXQgYWZ0ZXIgY29uZmlndXJpbmcgdGhlIHBhdHRlcm4gY2xpcCByZWN0YW5nbGUuCi0g
ICAgT3duUHRyPGNhaXJvX3BhdGhfdD4gY3VycmVudFBhdGggPSBhZG9wdFB0cihjYWlyb19jb3B5
X3BhdGgobV9jci5nZXQoKSkpOworICAgIGF1dG8gY3VycmVudFBhdGggPSBjYWlyb19jb3B5X3Bh
dGgobV9jci5nZXQoKSk7CiAgICAgY2Fpcm9fbmV3X3BhdGgobV9jci5nZXQoKSk7CiAKICAgICAv
LyBJbml0aWFsaXplIGNsaXBwaW5nIGV4dGVudCBmcm9tIGN1cnJlbnQgY2Fpcm8gY2xpcCBleHRl
bnRzLCB0aGVuIHNocmluayBpZiBuZWVkZWQgYWNjb3JkaW5nIHRvIHBhdHRlcm4uCkBAIC0zMzcs
NyArMzM2LDggQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6Y2xpcEZvclBhdHRlcm5GaWxs
aW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGEKICAgICB9CiAKICAgICAvLyBSZXN0
b3JpbmcgY2Fpcm8gcGF0aC4KLSAgICBjYWlyb19hcHBlbmRfcGF0aChtX2NyLmdldCgpLCBjdXJy
ZW50UGF0aC5nZXQoKSk7CisgICAgY2Fpcm9fYXBwZW5kX3BhdGgobV9jci5nZXQoKSwgY3VycmVu
dFBhdGgpOworICAgIGNhaXJvX3BhdGhfZGVzdHJveShjdXJyZW50UGF0aCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAppbmRleCBlNDgz
ODQ4NWQ3YWMwNWMwMjYzYWI2NGFjMGVmOGZlMGViMWYxMmVkLi5iMjMyNzE2NzhkYzFlODUyMmZk
ZWExYzM1YzBlOTljOGMxNjU5ODU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCkBA
IC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAKICNpbmNsdWRlICJGb250
LmgiCi0jaW5jbHVkZSAiT3duUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgog
I2luY2x1ZGUgIlVURjE2VUNoYXIzMkl0ZXJhdG9yLmgiCiAjaW5jbHVkZSA8Y2Fpcm8tZnQuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRl
eHRHTFguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4
dEdMWC5jcHAKaW5kZXggNzg5MGQ4ZGE4MzI2OWMzMDU1Y2FjYTQzNjZkZWFjYjMyYmQxYTM2NS4u
NzljNGExMDEzOTI1YjRlY2Y1ZTExOWI0NDJlY2EzYmUyZmMzZjM5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKQEAg
LTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2luY2x1ZGUgPEdML2ds
eC5oPgogI2luY2x1ZGUgPGNhaXJvLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiAjaWYg
RU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICNpbmNsdWRlIDxjYWlyby1nbC5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VH
TFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
ZWdsL0VHTFN1cmZhY2UuY3BwCmluZGV4IGVhZTMwY2RmNDVjODQ3MGZiODAwMDhhZjY2NWNjMjRj
ZGY4OGM3YzcuLjZjNjk1MDJmY2QwMTJhMDBkYjQ2ZmRlZjRiNWViYWI4Yjg2MTkzNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xT
dXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMU3VyZmFjZS5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCBFR0xPZmZTY3JlZW5TdXJm
YWNlOjpFR0xPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VBdHRyaWJ1
dGVzKQogICAgIGlmIChtX3NoYXJlZERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgRUdMQ29uZmln
U2VsZWN0b3Ioc3VyZmFjZUF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbmZpZ1NlbGVjdG9yID0gc3Rk
OjptYWtlX3VuaXF1ZTxFR0xDb25maWdTZWxlY3Rvcj4oc3VyZmFjZUF0dHJpYnV0ZXMpOwogfQog
CiBFR0xPZmZTY3JlZW5TdXJmYWNlOjp+RUdMT2ZmU2NyZWVuU3VyZmFjZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29uZmln
U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9HTFhDb25maWdTZWxlY3Rvci5oCmluZGV4IDhhNjEwOWEyZmM0ZTEwNTNmMmZlYWQxYzhlZjE5
YWNlYjA2ZjM4MWQuLmYyZjFmZWJmMmJjYzA5MTFhMjMyODVmYzgyMmEzY2UyOGE4NjYwMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9H
TFhDb25maWdTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oCkBAIC0xNDAsMTQgKzE0MCwxMyBAQCBw
cml2YXRlOgogICAgIEdMWEZCQ29uZmlnIGZpbmRNYXRjaGluZ0NvbmZpZyhjb25zdCBpbnQgYXR0
cmlidXRlc1tdLCBpbnQgZGVwdGggPSAzMikKICAgICB7CiAgICAgICAgIGludCBudW1BdmFpbGFi
bGVDb25maWdzOwotICAgICAgICBPd25QdHJYMTE8R0xYRkJDb25maWc+IHRlbXAoZ2xYQ2hvb3Nl
RkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIERlZmF1bHRTY3JlZW4oWDExSGVs
cGVyOjpuYXRpdmVEaXNwbGF5KCkpLCBhdHRyaWJ1dGVzLCAmbnVtQXZhaWxhYmxlQ29uZmlncykp
OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R0xYRkJDb25maWdbXSwgWDExRGVsZXRlcj4gdGVt
cChnbFhDaG9vc2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVsdFNj
cmVlbihYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFpbGFi
bGVDb25maWdzKSk7CiAKICAgICAgICAgaWYgKCFudW1BdmFpbGFibGVDb25maWdzIHx8ICF0ZW1w
LmdldCgpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgT3duUHRyWDExPFhWaXN1
YWxJbmZvPiBzY29wZWRWaXN1YWxJbmZvOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51
bUF2YWlsYWJsZUNvbmZpZ3M7ICsraSkgewotICAgICAgICAgICAgc2NvcGVkVmlzdWFsSW5mbyA9
IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgdGVt
cFtpXSk7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURlbGV0
ZXI+IHNjb3BlZFZpc3VhbEluZm8gPSBnbFhHZXRWaXN1YWxGcm9tRkJDb25maWcoWDExSGVscGVy
OjpuYXRpdmVEaXNwbGF5KCksIHRlbXBbaV0pOwogICAgICAgICAgICAgaWYgKCFzY29wZWRWaXN1
YWxJbmZvLmdldCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNjksNyArMTY4
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIC8vIERpZCBub3QgZmluZCBhbnkg
dmlzdWFsIHN1cHBvcnRpbmcgYWxwaGEsIHNlbGVjdCB0aGUgZmlyc3QgYXZhaWxhYmxlIGNvbmZp
Zy4KLSAgICAgICAgc2NvcGVkVmlzdWFsSW5mbyA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhY
MTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgdGVtcFswXSk7CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRlcj4gc2NvcGVkVmlzdWFsSW5mbyA9IGdsWEdldFZp
c3VhbEZyb21GQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgdGVtcFswXSk7CiAK
ICAgICAgICAgaWYgKChtX2F0dHJpYnV0ZXMgJiBHTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFs
cGhhKSAmJiAoc2NvcGVkVmlzdWFsSW5mby0+ZGVwdGggIT0gMzIpKQogICAgICAgICAgICAgbV9h
dHRyaWJ1dGVzICY9IH5HTFBsYXRmb3JtU3VyZmFjZTo6U3VwcG9ydEFscGhhOwpAQCAtMTgwLDE0
ICsxNzksMTMgQEAgcHJpdmF0ZToKICAgICBHTFhGQkNvbmZpZyBmaW5kTWF0Y2hpbmdDb25maWdX
aXRoVmlzdWFsSWQoY29uc3QgaW50IGF0dHJpYnV0ZXNbXSwgaW50IGRlcHRoLCBWaXN1YWxJRCBp
ZCkKICAgICB7CiAgICAgICAgIGludCBudW1BdmFpbGFibGVDb25maWdzOwotICAgICAgICBPd25Q
dHJYMTE8R0xYRkJDb25maWc+IHRlbXAoZ2xYQ2hvb3NlRkJDb25maWcoWDExSGVscGVyOjpuYXRp
dmVEaXNwbGF5KCksIERlZmF1bHRTY3JlZW4oWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCkpLCBh
dHRyaWJ1dGVzLCAmbnVtQXZhaWxhYmxlQ29uZmlncykpOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8R0xYRkJDb25maWdbXSwgWDExRGVsZXRlcj4gdGVtcChnbFhDaG9vc2VGQkNvbmZpZyhYMTFI
ZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVsdFNjcmVlbihYMTFIZWxwZXI6Om5hdGl2ZURp
c3BsYXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFpbGFibGVDb25maWdzKSk7CiAKICAgICAgICAg
aWYgKCFudW1BdmFpbGFibGVDb25maWdzIHx8ICF0ZW1wLmdldCgpKQogICAgICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICAgICAgT3duUHRyWDExPFhWaXN1YWxJbmZvPiBzY29wZWRWaXN1YWxJbmZv
OwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF2YWlsYWJsZUNvbmZpZ3M7ICsraSkg
ewotICAgICAgICAgICAgc2NvcGVkVmlzdWFsSW5mbyA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZp
ZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgdGVtcFtpXSk7CisgICAgICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURlbGV0ZXI+IHNjb3BlZFZpc3VhbEluZm8gPSBn
bFhHZXRWaXN1YWxGcm9tRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIHRlbXBb
aV0pOwogICAgICAgICAgICAgaWYgKCFzY29wZWRWaXN1YWxJbmZvLmdldCgpKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKaW5kZXggMmIzNTMwMmU3
ZThlYWEyNTUwMjRkMTVjNTIwZDZhOTE4NzcwYTdiYS4uMTZhOGUwMzFmMzEyNjQwYjMxYjQyNWQ2
Y2M0OTUyYjQzNDlkMGZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcApAQCAtNjcsNyArNjcs
NyBAQCBHTFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKGNvbnN0IEludFNp
emUmIHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVzCiAgICAgbV9zaGFyZWREaXNwbGF5ID0gWDExSGVs
cGVyOjpuYXRpdmVEaXNwbGF5KCk7CiAgICAgYXR0cmlidXRlcyB8PSBHTFBsYXRmb3JtU3VyZmFj
ZTo6RG91YmxlQnVmZmVyZWQ7CiAgICAgbV9jb25maWdTZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlx
dWU8R0xYQ29uZmlnU2VsZWN0b3I+KGF0dHJpYnV0ZXMpOwotICAgIE93blB0clgxMTxYVmlzdWFs
SW5mbz4gdmlzSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0
b3ItPnN1cmZhY2VDb250ZXh0Q29uZmlnKCkpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3Vh
bEluZm8sIFgxMURlbGV0ZXI+IHZpc0luZm8obV9jb25maWdTZWxlY3Rvci0+dmlzdWFsSW5mbyht
X2NvbmZpZ1NlbGVjdG9yLT5zdXJmYWNlQ29udGV4dENvbmZpZygpKSk7CiAKICAgICBpZiAoIXZp
c0luZm8uZ2V0KCkpIHsKICAgICAgICAgZGVzdHJveSgpOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZv
aWQgR0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZShTdXJmYWNlQXR0cmlidXRlcyBhdHRy
aWJ1dGVzKQogCiAgICAgbV9jb25maWdTZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYQ29u
ZmlnU2VsZWN0b3I+KGF0dHJpYnV0ZXMpOwogCi0gICAgT3duUHRyWDExPFhWaXN1YWxJbmZvPiB2
aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnZpc3VhbEluZm8obV9jb25maWdTZWxlY3Rvci0+
cGl4bWFwQ29udGV4dENvbmZpZygpKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZv
LCBYMTFEZWxldGVyPiB2aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnZpc3VhbEluZm8obV9j
b25maWdTZWxlY3Rvci0+cGl4bWFwQ29udGV4dENvbmZpZygpKSk7CiAgICAgWDExSGVscGVyOjpj
cmVhdGVQaXhtYXAoJm1fcGl4bWFwLCAqdmlzdWFsSW5mby5nZXQoKSk7CiAKICAgICBpZiAoIW1f
cGl4bWFwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9nbHgvT3duUHRyWDExLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvT3duUHRyWDExLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGI4Nzc2MTBhYmVlMmVlN2M0MWYwMTY2NWM0YjkwZGQ1NmQzYWVkYjUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBPd25QdHJYMTFfaAotI2RlZmlu
ZSBPd25QdHJYMTFfaAotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+Ci1zdHJ1Y3QgT3duUHRyWDExIHsKLQotICAgIE93blB0clgxMSgpIDogbV94UmVzb3VyY2Uo
MCkgeyB9Ci0gICAgT3duUHRyWDExKFQqIHhSZXNvdXJjZSkgOiBtX3hSZXNvdXJjZSh4UmVzb3Vy
Y2UpIHsgfQotCi0gICAgfk93blB0clgxMSgpCi0gICAgewotICAgICAgICBpZiAobV94UmVzb3Vy
Y2UpCi0gICAgICAgICAgICBYRnJlZShtX3hSZXNvdXJjZSk7Ci0gICAgfQotCi0gICAgT3duUHRy
WDExJiBvcGVyYXRvcj0oVCogeFJlc291cmNlKQotICAgIHsKLSAgICAgICAgaWYgKG1feFJlc291
cmNlKQotICAgICAgICAgICAgWEZyZWUobV94UmVzb3VyY2UpOwotCi0gICAgICAgIG1feFJlc291
cmNlID0geFJlc291cmNlOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgb3Bl
cmF0b3IgVCooKSBjb25zdCB7IHJldHVybiBtX3hSZXNvdXJjZTsgfQotICAgIFQqIG9wZXJhdG9y
LT4oKSBjb25zdCB7IHJldHVybiBtX3hSZXNvdXJjZTsgfQotICAgIFQqIGdldCgpIGNvbnN0IHsg
cmV0dXJuIG1feFJlc291cmNlOyB9Ci0KLXByaXZhdGU6Ci0gICAgT3duUHRyWDExKGNvbnN0IE93
blB0clgxMSYpOwotICAgIE93blB0clgxMSYgb3BlcmF0b3I9KGNvbnN0IE93blB0clgxMSYpOwot
ICAgIHN0YXRpYyB2b2lkKiBvcGVyYXRvciBuZXcgKHNpemVfdCk7Ci0gICAgc3RhdGljIHZvaWQg
b3BlcmF0b3IgZGVsZXRlICh2b2lkKik7Ci0gICAgVCogbV94UmVzb3VyY2U7Ci19OwotCi19Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcAppbmRleCA0MDlhNDdmNDAxZjIzNjU2YTM3NDRh
YjNhYzRkZjE4ZjUyYWJlNzQ5Li40YmU2MmJiNGY4MjIwZDg4MmEzOTMwMjAxYjE3ZTNjYTRiZWIx
MTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9nbHgvWDExSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcApAQCAtMjQwLDcgKzI0MCw3IEBAIHZvaWQgWDEx
SGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqIGhhbmRsZUlkLCBjb25zdCBF
R0xpbnQgaWQsIGJvb2wKICAgICBtZW1zZXQoJnZpc3VhbEluZm9UZW1wbGF0ZSwgMCwgc2l6ZW9m
KFhWaXN1YWxJbmZvKSk7CiAgICAgdmlzdWFsSW5mb1RlbXBsYXRlLnZpc3VhbGlkID0gdmlzdWFs
SWQ7CiAgICAgaW50IG1hdGNoaW5nQ291bnQgPSAwOwotICAgIE93blB0clgxMTxYVmlzdWFsSW5m
bz4gbWF0Y2hpbmdWaXN1YWxzKFhHZXRWaXN1YWxJbmZvKG5hdGl2ZURpc3BsYXkoKSwgVmlzdWFs
SURNYXNrLCAmdmlzdWFsSW5mb1RlbXBsYXRlLCAmbWF0Y2hpbmdDb3VudCkpOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRlcj4gbWF0Y2hpbmdWaXN1YWxzKFhHZXRW
aXN1YWxJbmZvKG5hdGl2ZURpc3BsYXkoKSwgVmlzdWFsSURNYXNrLCAmdmlzdWFsSW5mb1RlbXBs
YXRlLCAmbWF0Y2hpbmdDb3VudCkpOwogICAgIFhWaXN1YWxJbmZvKiBmb3VuZFZpc3VhbCA9IDA7
CiAKICAgICBpZiAobWF0Y2hpbmdWaXN1YWxzKSB7CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBY
MTFIZWxwZXI6OmNyZWF0ZVBpeG1hcChQaXhtYXAqIGhhbmRsZUlkLCBjb25zdCBFR0xpbnQgaWQs
IGJvb2wgaGFzQWxwaGEsIGMKICAgICBtZW1zZXQoJnZpc3VhbEluZm9UZW1wbGF0ZSwgMCwgc2l6
ZW9mKFhWaXN1YWxJbmZvKSk7CiAgICAgdmlzdWFsSW5mb1RlbXBsYXRlLnZpc3VhbGlkID0gdmlz
dWFsSWQ7CiAgICAgaW50IG1hdGNoaW5nQ291bnQgPSAwOwotICAgIE93blB0clgxMTxYVmlzdWFs
SW5mbz4gbWF0Y2hpbmdWaXN1YWxzKFhHZXRWaXN1YWxJbmZvKG5hdGl2ZURpc3BsYXkoKSwgVmlz
dWFsSURNYXNrLCAmdmlzdWFsSW5mb1RlbXBsYXRlLCAmbWF0Y2hpbmdDb3VudCkpOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRlcj4gbWF0Y2hpbmdWaXN1YWxzKFhH
ZXRWaXN1YWxJbmZvKG5hdGl2ZURpc3BsYXkoKSwgVmlzdWFsSURNYXNrLCAmdmlzdWFsSW5mb1Rl
bXBsYXRlLCAmbWF0Y2hpbmdDb3VudCkpOwogICAgIFhWaXN1YWxJbmZvKiBmb3VuZFZpc3VhbCA9
IDA7CiAgICAgaW50IHJlcXVpcmVkRGVwdGggPSBoYXNBbHBoYSA/IDMyIDogMjQ7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFI
ZWxwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9Y
MTFIZWxwZXIuaAppbmRleCBhN2FlYjcwZGEyMTMyNmMyMzkyMGY0ZTc5NTk0YzVjODVjZjYyYzhl
Li4xMDNmMDAxMzVlMjNlOGYwMWQ1NDU4NWUzMDY4OWMwNGQ3MGUxMzI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhl
bHBlci5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFgxMUhlbHBlcl9oCiAKICNpbmNsdWRl
ICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiT3duUHRyWDExLmgiCiAKICNpZiBVU0UoRUdMKQogI2lu
Y2x1ZGUgPG9wZW5nbC9HTERlZnMuaD4KQEAgLTQzLDggKzQyLDE2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgWDExSGVscGVyIHsKK2NsYXNzIFgxMURlbGV0ZXIgeworcHVibGlj
OgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgb3BlcmF0b3IoKShUKiByZXNvdXJjZSkK
KyAgICB7CisgICAgICAgIGlmIChyZXNvdXJjZSkKKyAgICAgICAgICAgIFhGcmVlKHJlc291cmNl
KTsKKyAgICB9Cit9OwogCitjbGFzcyBYMTFIZWxwZXIgewogcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIGNyZWF0ZVBpeG1hcChQaXhtYXAqLCBjb25zdCBYVmlzdWFsSW5mbyYsIGNvbnN0IEludFNp
emUmID0gSW50U2l6ZSgxLCAxKSk7CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlT2ZmU2NyZWVuV2lu
ZG93KHVpbnQzMl90KiwgY29uc3QgWFZpc3VhbEluZm8mLCBjb25zdCBJbnRTaXplJiA9IEludFNp
emUoMSwgMSkpOwpAQCAtNjEsNyArNjgsNiBAQCBwdWJsaWM6CiB9OwogCiBjbGFzcyBTY29wZWRY
UGl4bWFwQ3JlYXRpb25FcnJvckhhbmRsZXIgewotCiBwdWJsaWM6CiAgICAgU2NvcGVkWFBpeG1h
cENyZWF0aW9uRXJyb3JIYW5kbGVyKCk7CiAgICAgflNjb3BlZFhQaXhtYXBDcmVhdGlvbkVycm9y
SGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5jcHAKaW5kZXggYzllOTM4YzI3ZDI0NTg3
NTg2NDVkMjJkYzUyMGQ3ZDJjMDM0YzI2ZC4uNjgwMWMxNmFjYmQzNWVmMzVmM2M1YTkzOTc5MjUw
YmQzODgwZjU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIuY3BwCkBAIC0zNiw3ICszNiw2IEBA
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUluc3RhbmNlSGFuZGxlLmgiCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpAQCAtNjAsOCArNTksOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgRnVs
bFNjcmVlbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKICAgICBGdWxsU2NyZWVuQ29udHJvbGxl
ckNsaWVudCogbV9jbGllbnQ7Ci0gICAgT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3Jl
ZW5XaW5kb3c+IG1fZnVsbFNjcmVlbldpbmRvdzsKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2
YXRlRnVsbHNjcmVlbldpbmRvdz4gbV9iYWNrZ3JvdW5kV2luZG93OworICAgIHN0ZDo6dW5pcXVl
X3B0cjxNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93PiBtX2Z1bGxTY3JlZW5XaW5k
b3c7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5k
b3c+IG1fYmFja2dyb3VuZFdpbmRvdzsKICAgICBJbnRSZWN0IG1fZnVsbFNjcmVlbkZyYW1lOwog
ICAgIEludFJlY3QgbV9vcmlnaW5hbEZyYW1lOwogICAgIEhXTkQgbV9vcmlnaW5hbEhvc3Q7CkBA
IC0xMDQsNyArMTAzLDcgQEAgTFJFU1VMVCBGdWxsU2NyZWVuQ29udHJvbGxlcjo6UHJpdmF0ZTo6
ZnVsbHNjcmVlbkNsaWVudFduZFByb2MoSFdORCBod25kLCBVSU5UIG0KIH0KIAogRnVsbFNjcmVl
bkNvbnRyb2xsZXI6OkZ1bGxTY3JlZW5Db250cm9sbGVyKEZ1bGxTY3JlZW5Db250cm9sbGVyQ2xp
ZW50KiBjbGllbnQpCi0gICAgOiBtX3ByaXZhdGUoYWRvcHRQdHIobmV3IEZ1bGxTY3JlZW5Db250
cm9sbGVyOjpQcml2YXRlKHRoaXMsIGNsaWVudCkpKQorICAgIDogbV9wcml2YXRlKHN0ZDo6bWFr
ZV91bmlxdWU8UHJpdmF0ZT4odGhpcywgY2xpZW50KSkKIHsKICAgICBBU1NFUlRfQVJHKGNsaWVu
dCwgY2xpZW50KTsKIH0KQEAgLTEzNCwxMyArMTMzLDEzIEBAIHZvaWQgRnVsbFNjcmVlbkNvbnRy
b2xsZXI6OmVudGVyRnVsbFNjcmVlbigpCiAgICAgbV9wcml2YXRlLT5tX29yaWdpbmFsRnJhbWUg
PSBvcmlnaW5hbEZyYW1lOwogCiAgICAgQVNTRVJUKCFtX3ByaXZhdGUtPm1fYmFja2dyb3VuZFdp
bmRvdyk7Ci0gICAgbV9wcml2YXRlLT5tX2JhY2tncm91bmRXaW5kb3cgPSBhZG9wdFB0cihuZXcg
TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdyhtX3ByaXZhdGUuZ2V0KCkpKTsKKyAg
ICBtX3ByaXZhdGUtPm1fYmFja2dyb3VuZFdpbmRvdyA9IHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQ
bGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdz4obV9wcml2YXRlLmdldCgpKTsKICAgICBtX3By
aXZhdGUtPm1fYmFja2dyb3VuZFdpbmRvdy0+Y3JlYXRlV2luZG93KDApOwogICAgIDo6QW5pbWF0
ZVdpbmRvdyhtX3ByaXZhdGUtPm1fYmFja2dyb3VuZFdpbmRvdy0+aHduZCgpLCBrRnVsbFNjcmVl
bkFuaW1hdGlvbkR1cmF0aW9uLCBBV19CTEVORCB8IEFXX0FDVElWQVRFKTsKIAogICAgIG1fcHJp
dmF0ZS0+bV9jbGllbnQtPmZ1bGxTY3JlZW5DbGllbnRXaWxsRW50ZXJGdWxsU2NyZWVuKCk7CiAg
ICAgQVNTRVJUKCFtX3ByaXZhdGUtPm1fZnVsbFNjcmVlbldpbmRvdyk7Ci0gICAgbV9wcml2YXRl
LT5tX2Z1bGxTY3JlZW5XaW5kb3cgPSBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlRnVs
bHNjcmVlbldpbmRvdyhtX3ByaXZhdGUuZ2V0KCkpKTsKKyAgICBtX3ByaXZhdGUtPm1fZnVsbFNj
cmVlbldpbmRvdyA9IHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVl
bldpbmRvdz4obV9wcml2YXRlLmdldCgpKTsKICAgICBBU1NFUlQobV9wcml2YXRlLT5tX2Z1bGxT
Y3JlZW5XaW5kb3cpOwogICAgIG1fcHJpdmF0ZS0+bV9mdWxsU2NyZWVuV2luZG93LT5jcmVhdGVX
aW5kb3coMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmgKaW5kZXggNzZhODgwZGE3OTcyMWZmNmVi
NzY0MTQyYTYzZjY3ZWFlM2Y3ZGIyNS4uMzE3N2Q5ZWE4NzAyOTk3ZmI4ODc5N2E1NGNhZTU5NDky
NTFkODI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0Z1bGxTY3JlZW5Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNs
dWRlIDxtZW1vcnk+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsNyArNTQsNyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICBjbGFzcyBQcml2YXRlOwogICAgIGZyaWVuZCBjbGFzcyBQcml2YXRl
OwotICAgIE93blB0cjxGdWxsU2NyZWVuQ29udHJvbGxlcjo6UHJpdmF0ZT4gbV9wcml2YXRlOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxGdWxsU2NyZWVuQ29udHJvbGxlcjo6UHJpdmF0ZT4gbV9wcml2
YXRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5jcHAKaW5kZXggNjlkZmM3ZjY1ZTI5
OTg2ODYwMDQ2NmNiNWI1ZDliZTdjNjk0M2IzMS4uN2E1ZDdiYTA4YjZhYWNiZDJiZmVhYzM0NmVl
YWExZGU1MjA5OTIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0M0RXaW4uY3BwCkBAIC0yOSw4ICsyOSw2
IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllcldpbi5o
PgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
CiAjaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgPEdMU0xBTkcvU2hhZGVyTGFuZy5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1
ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VR
dWV1ZS5jcHAKaW5kZXggNjIyYTM2NDJmZTlkYmNkZDVkZDg4MmRhZDNlMTA2MGFjYzk0OWIwMi4u
MmQyMDU4NzFjZmRlZTVmNzg4MzE3OTZjNzM3NjBlYzE0MDI5N2QzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuY3Bw
CkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRh
dGlvbi5oPgogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIsMTMgKzUxLDEzIEBAIHN0YXRp
YyB2b2lkIFdLQ0FJbWFnZVF1ZXVlUmVsZWFzZShDQUltYWdlUXVldWVSZWYgaXEpCiB9CiAKIFdL
Q0FJbWFnZVF1ZXVlOjpXS0NBSW1hZ2VRdWV1ZSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVp
Z2h0LCB1aW50MzJfdCBjYXBhY2l0eSkKLSAgICA6IG1fcHJpdmF0ZShhZG9wdFB0cihuZXcgV0tD
QUltYWdlUXVldWVQcml2YXRlKCkpKQorICAgIDogbV9wcml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8
V0tDQUltYWdlUXVldWVQcml2YXRlPigpKQogewogICAgIG1fcHJpdmF0ZS0+bV9pbWFnZVF1ZXVl
ID0gYWRvcHRDRih3a0NBSW1hZ2VRdWV1ZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCBjYXBhY2l0eSkp
OwogfQogCiBXS0NBSW1hZ2VRdWV1ZTo6V0tDQUltYWdlUXVldWUoY29uc3QgV0tDQUltYWdlUXVl
dWUmIG8pCi0gICAgOiBtX3ByaXZhdGUoYWRvcHRQdHIobmV3IFdLQ0FJbWFnZVF1ZXVlUHJpdmF0
ZSgpKSkKKyAgICA6IG1fcHJpdmF0ZShzdGQ6Om1ha2VfdW5pcXVlPFdLQ0FJbWFnZVF1ZXVlUHJp
dmF0ZT4oKSkKIHsKICAgICBtX3ByaXZhdGUtPm1faW1hZ2VRdWV1ZSA9IG8ubV9wcml2YXRlLT5t
X2ltYWdlUXVldWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vV0tDQUltYWdlUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5oCmluZGV4IDI1NjA3NjUwZmZkMmUzMzJmYzE0MmFiMGJk
YTU0MGFmN2Y1MDAyNGIuLjI3NjBkNjExNjVhYmUwNTE1NDBjZWU3NWU5ODQxMjcyMDI5NDFmYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1h
Z2VRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NB
SW1hZ2VRdWV1ZS5oCkBAIC0yOSw4ICsyOSw4IEBACiB0eXBlZGVmIGNvbnN0IHZvaWQgKiBDRlR5
cGVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGRGljdGlvbmFyeSAqIENGRGljdGlvbmFy
eVJlZjsKIAorI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODAsNyArODAsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdLQ0FJbWFnZVF1ZXVlKGNvbnN0IFdLQ0FJbWFnZVF1
ZXVlJik7CiAgICAgV0tDQUltYWdlUXVldWUmIG9wZXJhdG9yPShjb25zdCBXS0NBSW1hZ2VRdWV1
ZSYpOwotICAgIE93blB0cjxXS0NBSW1hZ2VRdWV1ZVByaXZhdGU+IG1fcHJpdmF0ZTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V0tDQUltYWdlUXVldWVQcml2YXRlPiBtX3ByaXZhdGU7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvblN0dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAppbmRleCBjN2YwYjQzOThmMWEwZmI5ZWFiZjM4NmQw
OTBkNzdhYzQ0OGMzMzg5Li5kMDQ5Mjk0MDQwYmMzYzk4ZmViMTFlZDI2OTdhYjUxYjAyNzhiODlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvblN0dWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRl
ICJOZXR3b3JrU3RvcmFnZVNlc3Npb24uaCIKIAogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0
LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oCmluZGV4IDc3MjQ2NmRhYjkxMzNhMmFlMWU5Y2M4NGI5NjMzNDE4ZWY4
MGQ2NjQuLmIwZTAzNTk2NzBjMWE2OWEzMDQwMGZhZDc0NTk0OGRkMTRkMmJkMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbmNsdWRlICJUaW1lci5o
IgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogI2lmIFVTRShDRk5FVFdPUkspCiAjaW5jbHVk
ZSAiUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oIgpAQCAtMTYzLDcgKzE2
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdW5zaWduZWQgbV9zc2xFcnJvcnM7
CiAgICAgICAgIFZlY3RvcjxjaGFyPiBtX3Bvc3RCeXRlczsKIAotICAgICAgICBPd25QdHI8TXVs
dGlwYXJ0SGFuZGxlPiBtX211bHRpcGFydEhhbmRsZTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PE11bHRpcGFydEhhbmRsZT4gbV9tdWx0aXBhcnRIYW5kbGU7CiAjZW5kaWYKICNpZiBVU0UoU09V
UCkKICAgICAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gbV9zb3VwTWVzc2FnZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9NdWx0aXBhcnRIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRs
ZS5jcHAKaW5kZXggZTc4MDUwZmUyOTliN2FhOWRiODBlMDVmNDMyNDg1YzVjYmI5YzMyMS4uODk3
Zjk1YzE5MGE1NDE2NWJkOTU0NzljNDU0ZTM5NDZiZWVmMGNiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5jcHAK
QEAgLTM3LDExICszNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxN
dWx0aXBhcnRIYW5kbGU+IE11bHRpcGFydEhhbmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFN0cmluZyYgYm91bmRhcnkpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBNdWx0aXBhcnRIYW5kbGUoaGFuZGxlLCBib3VuZGFyeSkpOwotfQotCiBib29sIE11bHRpcGFy
dEhhbmRsZTo6ZXh0cmFjdEJvdW5kYXJ5KGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0cmlu
ZyYgYm91bmRhcnkpCiB7CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBsZW5ndGggPSBzdHJsZW4o
ImJvdW5kYXJ5PSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL011bHRpcGFydEhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL011bHRpcGFydEhhbmRsZS5oCmluZGV4IDlhYjg1NjI0NTg3MzFkYWE1NThlYzcyNjRm
ZmViZGZjYTc0M2U5ZDAuLmJiMGYwZjZjZjMzOTZhYWEwMTVjYTk2YzBmYTEyZWEzNThkMmVjZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9NdWx0aXBh
cnRIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTXVs
dGlwYXJ0SGFuZGxlLmgKQEAgLTI4LDE3ICsyOCwxMyBAQAogCiAjaW5jbHVkZSAiSFRUUEhlYWRl
ck1hcC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCi0KLSNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE11bHRpcGFydEhhbmRsZSB7
Ci0KIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxNdWx0aXBhcnRIYW5kbGU+IGNyZWF0
ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5KTsKICAgICBz
dGF0aWMgYm9vbCBleHRyYWN0Qm91bmRhcnkoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgU3Ry
aW5nJiBib3VuZGFyeSk7CiAKICAgICBNdWx0aXBhcnRIYW5kbGUoUmVzb3VyY2VIYW5kbGUqIGhh
bmRsZSwgY29uc3QgU3RyaW5nJiBib3VuZGFyeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAK
aW5kZXggMzNhYjg3YjQwZWYyMDk0OGI1ZWE2YzUyNDQ5MjRmNzkxNjgwNWYwNy4uZmQ4ZjU4ZTg4
MjU5MzcyZmQyMDJiYjYyOTdhNTlkYzYyOWViZGZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdl
ci5jcHAKQEAgLTUxNSw3ICs1MTUsNyBAQCBzdGF0aWMgc2l6ZV90IGhlYWRlckNhbGxiYWNrKGNo
YXIqIHB0ciwgc2l6ZV90IHNpemUsIHNpemVfdCBubWVtYiwgdm9pZCogZGF0YSkKICAgICAgICAg
ICAgIFN0cmluZyBib3VuZGFyeTsKICAgICAgICAgICAgIGJvb2wgcGFyc2VkID0gTXVsdGlwYXJ0
SGFuZGxlOjpleHRyYWN0Qm91bmRhcnkoZC0+bV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSwgYm91bmRhcnkpOwogICAgICAgICAgICAgaWYgKHBh
cnNlZCkKLSAgICAgICAgICAgICAgICBkLT5tX211bHRpcGFydEhhbmRsZSA9IE11bHRpcGFydEhh
bmRsZTo6Y3JlYXRlKGpvYiwgYm91bmRhcnkpOworICAgICAgICAgICAgICAgIGQtPm1fbXVsdGlw
YXJ0SGFuZGxlID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aXBhcnRIYW5kbGU+KGpvYiwgYm91bmRh
cnkpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVuY29kZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVuY29kZXIu
aAppbmRleCA2ZjRmZjEzNTg2YzJmMjdkNjM4MGY5NzliNzJjNWJkMGMyMDBlMTFkLi4yNWU4ZjEy
OTNiYjM1NmFmZDk2MzkxNjMxNDE4MzQ0MjhjMmJiZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbmNvZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW5jb2Rlci5oCkBA
IC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAKICNpbmNsdWRlICJO
ZXR3b3JrQ2FjaGVDb2Rlci5oIgotCisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nSGFzaGVyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2VkYjlh
MjE2MGYyOWEyOWRiZWM4YjgxZDlhNzUwZWE2N2FkMGIyMS4uNzYwMzMzNDYyYWU5YmU3MDQ4MzAy
M2ZlZjcxM2ZmY2JhNGE3MjE0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA0LTI0ICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IE93blB0ciBhbmQgUGFzc093blB0
ciB1c2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vSGlzdG9yeURlbGVnYXRlLmg6
IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZS4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4v
VUlEZWxlZ2F0ZS5oOiBEaXR0by4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0hhc2hNYXAuY3BwOiBSZW1vdmVkIE93blB0ci1zcGVjaWZpYyB0ZXN0IGNhc2VzLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwOiBEaXR0by4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L3dpbi9XZWJWaWV3RGVzdHJ1Y3Rpb24uY3Bw
OiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwOiBVc2UgdW5pcXVlX3B0ci4KKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OldlYktpdDJVc2VyTWVzc2FnZVJvdW5kVHJpcFRlc3Q6OlNldFVwKTogVXNl
IG1ha2VfdW5pcXVlLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxs
TG9hZC5jcHA6IERpdHRvLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0MldpbGxMb2Fk
VGVzdDo6U2V0VXApOiBEaXR0by4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvRE9NRE9NV2luZG93VGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRET01ET01XaW5kb3dU
ZXN0OjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6CisgICAgICAgIChkb2N1bWVudExvYWRlZENhbGxi
YWNrKTogVXNlIGEgcXVldWUgb2YgRGVsYXllZFNpZ25hbCBvYmplY3RzIGluc3RlYWQKKyAgICAg
ICAgb2Ygc21hcnQgcG9pbnRlcnMgdG8gRGVsYXllZFNJZ25hbCBvYmplY3RzLgorICAgICAgICAo
dXJpQ2hhbmdlZENhbGxiYWNrKTogRGl0dG8uCisKIDIwMTUtMDQtMjQgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gVW5yZXZpZXdlZCB0ZXN0IGZp
eC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9IaXN0b3J5RGVsZWdhdGUu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9IaXN0b3J5RGVsZWdhdGUuaAppbmRleCAyMzZl
ZGQzNmYwYjE0YjE5MGRiNTc1OGVkMjU2ZmYxNWNlYjI0OTAxLi5jODU0YWUwMDE3ZWU0NGFkMmJm
ZDA1ZTIwZjY3YzU1ZjBkZWUzMDBmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vSGlzdG9yeURlbGVnYXRlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0hpc3Rv
cnlEZWxlZ2F0ZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIEhpc3RvcnlEZWxlZ2F0ZV9o
CiAKICNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgog
CiBjbGFzcyBIaXN0b3J5RGVsZWdhdGUgOiBwdWJsaWMgSVdlYkhpc3RvcnlEZWxlZ2F0ZSB7CiBw
dWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUuaAppbmRleCA3ZjRmOTNkYTRk
YmJkMDRmY2M4ZTJjODVkNzkzOGQxMjIxZDA0N2FmLi42ZTBmZDRhNzdlODc3YWU5YmI2Yzg5NzAy
MDk4NjcyYTNlNmUxODUzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlE
ZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmgKQEAg
LTMxLDcgKzMxLDYgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+CiAjaW5jbHVkZSA8
V2ViS2l0L1dlYktpdC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3aW5k
ZWYuaD4KIAogY2xhc3MgRFJUVW5kb01hbmFnZXI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0hhc2hNYXAuY3BwCmluZGV4IDIzNmU0Njk5NWQxOGE0ZDY3NTU3ZTAyYjc0M2QxNWUxZDkw
NTI5YzYuLmEyODFmMjMwYTdlY2Q4MWI1NTM0NjUwODU0MmQwMjU2ZDZkNmNkZGIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwCkBAIC0zMCw4ICszMCw2IEBACiAj
aW5jbHVkZSAiUmVmTG9nZ2VyLmgiCiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CkBAIC0xNzQsMTAxICsxNzIsNiBAQCBURVNUKFdURl9IYXNoTWFwLCBFZmZp
Y2llbnRHZXR0ZXIpCiAgICAgfQogfQogCi1URVNUKFdURl9IYXNoTWFwLCBPd25QdHJLZXkpCi17
Ci0gICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6VGVzdGluZ1Njb3BlIHNjb3BlOwot
Ci0gICAgSGFzaE1hcDxPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcj4sIGludD4g
bWFwOwotCi0gICAgT3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI+IG93blB0ciA9
IGFkb3B0UHRyKG5ldyBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKTsKLSAgICBtYXAuYWRk
KFdURjo6bW92ZShvd25QdHIpLCAyKTsKLQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JE
ZXN0cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgwdSwg
Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci0KLSAgICBt
YXAuY2xlYXIoKTsKLSAgICAKLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3Rv
ckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVj
dG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotfQotCi1URVNUKFdURl9I
YXNoTWFwLCBPd25QdHJLZXlfRmluZFVzaW5nUmF3UG9pbnRlcikKLXsKLSAgICBIYXNoTWFwPE93
blB0cjxpbnQ+LCBpbnQ+IG1hcDsKLQotICAgIE93blB0cjxpbnQ+IG93blB0ciA9IGFkb3B0UHRy
KG5ldyBpbnQoNSkpOwotICAgIGludCogcHRyID0gb3duUHRyLmdldCgpOwotICAgIG1hcC5hZGQo
V1RGOjptb3ZlKG93blB0ciksIDIpOwotCi0gICAgYXV0byBpdCA9IG1hcC5maW5kKHB0cik7Ci0g
ICAgQVNTRVJUX1RSVUUoaXQgIT0gbWFwLmVuZCgpKTsKLSAgICBFWFBFQ1RfRVEocHRyLCBpdC0+
a2V5LmdldCgpKTsKLSAgICBFWFBFQ1RfRVEoMiwgaXQtPnZhbHVlKTsKLX0KLQotVEVTVChXVEZf
SGFzaE1hcCwgT3duUHRyS2V5X0NvbnRhaW5zVXNpbmdSYXdQb2ludGVyKQotewotICAgIEhhc2hN
YXA8T3duUHRyPGludD4sIGludD4gbWFwOwotCi0gICAgT3duUHRyPGludD4gb3duUHRyID0gYWRv
cHRQdHIobmV3IGludCg1KSk7Ci0gICAgaW50KiBwdHIgPSBvd25QdHIuZ2V0KCk7Ci0gICAgbWFw
LmFkZChXVEY6Om1vdmUob3duUHRyKSwgMik7Ci0KLSAgICBFWFBFQ1RfRVEodHJ1ZSwgbWFwLmNv
bnRhaW5zKHB0cikpOwotfQotCi1URVNUKFdURl9IYXNoTWFwLCBPd25QdHJLZXlfR2V0VXNpbmdS
YXdQb2ludGVyKQotewotICAgIEhhc2hNYXA8T3duUHRyPGludD4sIGludD4gbWFwOwotCi0gICAg
T3duUHRyPGludD4gb3duUHRyID0gYWRvcHRQdHIobmV3IGludCg1KSk7Ci0gICAgaW50KiBwdHIg
PSBvd25QdHIuZ2V0KCk7Ci0gICAgbWFwLmFkZChXVEY6Om1vdmUob3duUHRyKSwgMik7Ci0KLSAg
ICBpbnQgdmFsdWUgPSBtYXAuZ2V0KHB0cik7Ci0gICAgRVhQRUNUX0VRKDIsIHZhbHVlKTsKLX0K
LQotVEVTVChXVEZfSGFzaE1hcCwgT3duUHRyS2V5X1JlbW92ZVVzaW5nUmF3UG9pbnRlcikKLXsK
LSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpUZXN0aW5nU2NvcGUgc2NvcGU7Ci0K
LSAgICBIYXNoTWFwPE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyPiwgaW50PiBt
YXA7Ci0KLSAgICBPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcj4gb3duUHRyID0g
YWRvcHRQdHIobmV3IENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXIpOwotICAgIENvbnN0cnVj
dG9yRGVzdHJ1Y3RvckNvdW50ZXIqIHB0ciA9IG93blB0ci5nZXQoKTsKLSAgICBtYXAuYWRkKFdU
Rjo6bW92ZShvd25QdHIpLCAyKTsKLQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0
cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgwdSwgQ29u
c3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci0KLSAgICBib29s
IHJlc3VsdCA9IG1hcC5yZW1vdmUocHRyKTsKLSAgICBFWFBFQ1RfRVEodHJ1ZSwgcmVzdWx0KTsK
LQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6Y29uc3Ry
dWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291
bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci19Ci0KLVRFU1QoV1RGX0hhc2hNYXAsIE93blB0cktl
eV9UYWtlVXNpbmdSYXdQb2ludGVyKQotewotICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50
ZXI6OlRlc3RpbmdTY29wZSBzY29wZTsKLQotICAgIEhhc2hNYXA8T3duUHRyPENvbnN0cnVjdG9y
RGVzdHJ1Y3RvckNvdW50ZXI+LCBpbnQ+IG1hcDsKLQotICAgIE93blB0cjxDb25zdHJ1Y3RvckRl
c3RydWN0b3JDb3VudGVyPiBvd25QdHIgPSBhZG9wdFB0cihuZXcgQ29uc3RydWN0b3JEZXN0cnVj
dG9yQ291bnRlcik7Ci0gICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlciogcHRyID0gb3du
UHRyLmdldCgpOwotICAgIG1hcC5hZGQoV1RGOjptb3ZlKG93blB0ciksIDIpOwotCi0gICAgRVhQ
RUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3Vu
dCk7Ci0gICAgRVhQRUNUX0VRKDB1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0
cnVjdGlvbkNvdW50KTsKLQotICAgIGludCByZXN1bHQgPSBtYXAudGFrZShwdHIpOwotICAgIEVY
UEVDVF9FUSgyLCByZXN1bHQpOwotCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3Ry
dWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDF1LCBDb25z
dHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLX0KLQogVEVTVChX
VEZfSGFzaE1hcCwgVW5pcXVlUHRyS2V5KQogewogICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNv
dW50ZXI6OlRlc3RpbmdTY29wZSBzY29wZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
SGFzaFNldC5jcHAKaW5kZXggMzE1NWJjMDdhMjIzYmFiNGVhN2QzNjE0ZmZhMzE0Yjc3YzhlZTI1
OS4uZGRiMTc4YzcyNTg0ZmZjYjhmYjMxNGQ4OGU4YjE1OTRmYmExMWRjZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaFNldC5jcHAKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNs
dWRlICJDb3VudGVycy5oIgogI2luY2x1ZGUgIk1vdmVPbmx5LmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCkBAIC0xMTksOTMgKzExNyw2IEBA
IFRFU1QoV1RGX0hhc2hTZXQsIE1vdmVPbmx5KQogICAgICAgICBFWFBFQ1RfVFJVRShzZWNvbmRT
ZXQuY29udGFpbnMoTW92ZU9ubHkoaSArIDEpKSk7CiB9CiAKLVRFU1QoV1RGX0hhc2hTZXQsIE93
blB0cktleSkKLXsKLSAgICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpUZXN0aW5nU2Nv
cGUgc2NvcGU7Ci0KLSAgICBIYXNoU2V0PE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3Vu
dGVyPj4gc2V0OwotCi0gICAgT3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI+IG93
blB0ciA9IGFkb3B0UHRyKG5ldyBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKTsKLSAgICBz
ZXQuYWRkKFdURjo6bW92ZShvd25QdHIpKTsKLQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0
b3JEZXN0cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgw
dSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci0KLSAg
ICBzZXQuY2xlYXIoKTsKLSAgICAKLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1
Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0
cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotfQotCi1URVNUKFdU
Rl9IYXNoU2V0LCBPd25QdHJLZXlfRmluZFVzaW5nUmF3UG9pbnRlcikKLXsKLSAgICBIYXNoU2V0
PE93blB0cjxpbnQ+PiBzZXQ7Ci0KLSAgICBPd25QdHI8aW50PiBvd25QdHIgPSBhZG9wdFB0cihu
ZXcgaW50KDUpKTsKLSAgICBpbnQqIHB0ciA9IG93blB0ci5nZXQoKTsKLSAgICBzZXQuYWRkKFdU
Rjo6bW92ZShvd25QdHIpKTsKLQotICAgIGF1dG8gaXQgPSBzZXQuZmluZChwdHIpOwotICAgIEFT
U0VSVF9UUlVFKGl0ICE9IHNldC5lbmQoKSk7Ci0gICAgRVhQRUNUX0VRKHB0ciwgaXQtPmdldCgp
KTsKLSAgICBFWFBFQ1RfRVEoNSwgKml0LT5nZXQoKSk7Ci19Ci0KLVRFU1QoV1RGX0hhc2hTZXQs
IE93blB0cktleV9Db250YWluc1VzaW5nUmF3UG9pbnRlcikKLXsKLSAgICBIYXNoU2V0PE93blB0
cjxpbnQ+PiBzZXQ7Ci0KLSAgICBPd25QdHI8aW50PiBvd25QdHIgPSBhZG9wdFB0cihuZXcgaW50
KDUpKTsKLSAgICBpbnQqIHB0ciA9IG93blB0ci5nZXQoKTsKLSAgICBzZXQuYWRkKFdURjo6bW92
ZShvd25QdHIpKTsKLQotICAgIEVYUEVDVF9FUSh0cnVlLCBzZXQuY29udGFpbnMocHRyKSk7Ci19
Ci0KLVRFU1QoV1RGX0hhc2hTZXQsIE93blB0cktleV9SZW1vdmVVc2luZ1Jhd1BvaW50ZXIpCi17
Ci0gICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6VGVzdGluZ1Njb3BlIHNjb3BlOwot
Ci0gICAgSGFzaFNldDxPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcj4+IHNldDsK
LQotICAgIE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyPiBvd25QdHIgPSBhZG9w
dFB0cihuZXcgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcik7Ci0gICAgQ29uc3RydWN0b3JE
ZXN0cnVjdG9yQ291bnRlciogcHRyID0gb3duUHRyLmdldCgpOwotICAgIHNldC5hZGQoV1RGOjpt
b3ZlKG93blB0cikpOwotCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JD
b3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDB1LCBDb25zdHJ1Y3Rv
ckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLQotICAgIGJvb2wgcmVzdWx0
ID0gc2V0LnJlbW92ZShwdHIpOwotICAgIEVYUEVDVF9FUSh0cnVlLCByZXN1bHQpOwotCi0gICAg
RVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25D
b3VudCk7Ci0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpk
ZXN0cnVjdGlvbkNvdW50KTsKLX0KLQotVEVTVChXVEZfSGFzaFNldCwgT3duUHRyS2V5X1Rha2VV
c2luZ1Jhd1BvaW50ZXIpCi17Ci0gICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6VGVz
dGluZ1Njb3BlIHNjb3BlOwotCi0gICAgSGFzaFNldDxPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVj
dG9yQ291bnRlcj4+IHNldDsKLQotICAgIE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3Vu
dGVyPiBvd25QdHIgPSBhZG9wdFB0cihuZXcgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcik7
Ci0gICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlciogcHRyID0gb3duUHRyLmdldCgpOwot
ICAgIHNldC5hZGQoV1RGOjptb3ZlKG93blB0cikpOwotCi0gICAgRVhQRUNUX0VRKDF1LCBDb25z
dHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNU
X0VRKDB1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsK
LQotICAgIGF1dG8gcmVzdWx0ID0gc2V0LnRha2UocHRyKTsKLSAgICBFWFBFQ1RfRVEocHRyLCBy
ZXN1bHQuZ2V0KCkpOwotCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JD
b3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDB1LCBDb25zdHJ1Y3Rv
ckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLQotICAgIHJlc3VsdCA9IG51
bGxwdHI7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6
OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1
Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotfQogCiBURVNUKFdURl9IYXNoU2V0LCBV
bmlxdWVQdHJLZXkpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC93aW4vV2ViVmlld0Rlc3RydWN0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L3dpbi9XZWJWaWV3RGVzdHJ1Y3Rpb24uY3BwCmluZGV4IGI1OWE4NGNiNDdhMTVi
Nzc2ODU1MDBkNGQwYTNjZWEzZmI3ODNkMDguLmNjZGJjNjEwNjRlMWFhMzg4MzRlMzg0YWVkMGMz
ZTVjMGUxZDg0ZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L3dpbi9XZWJWaWV3RGVzdHJ1Y3Rpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L3dpbi9XZWJWaWV3RGVzdHJ1Y3Rpb24uY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV2ViS2l0Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0L1dlYktpdENPTUFQSS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZS5jcHAKaW5kZXggNGYwMDFhNzY3MjgyMTE0
ZDZmN2E4NjIwNmMxNGRkYmJjOGM4NzdlNy4uMWU0NTI1MDQ5NWMzNWI0OWQ2ZDg2ZjhjMDMxMDZh
NTljMTg5ZjM1MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L1VzZXJNZXNzYWdlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
VXNlck1lc3NhZ2UuY3BwCkBAIC0zMSw4ICszMSw2IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgotI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CiAKQEAgLTQ1LDcgKzQzLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dDsKLSAgICBPd25QdHI8UGxhdGZvcm1XZWJWaWV3
PiB3ZWJWaWV3OworICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVdlYlZpZXc+IHdlYlZpZXc7
CiAKICAgICBXS1JldGFpblB0cjxXS1R5cGVSZWY+IHJlY2lldmVkQm9keTsKIApAQCAtOTUsNyAr
OTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIlVzZXJNZXNzYWdlVGVzdCIpKTsKICAgICAgICAg
c2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dC5nZXQoKSwgdGhpcyk7CiAKLSAgICAgICAg
d2ViVmlldyA9IGFkb3B0UHRyKG5ldyBQbGF0Zm9ybVdlYlZpZXcoY29udGV4dC5nZXQoKSkpOwor
ICAgICAgICB3ZWJWaWV3ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KGNvbnRl
eHQuZ2V0KCkpOwogICAgICAgICBzZXRQYWdlTG9hZGVyQ2xpZW50KHdlYlZpZXctPnBhZ2UoKSwg
dGhpcyk7CiAKICAgICAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxMb2FkLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsTG9hZC5jcHAKaW5kZXggNzRiMjM5MTFlMDBjYTY2
ZGVmNTA4Zjk3MDMwMzMxODIzYzgxNzdhOC4uODNkNjNhYjE4YmNjYTExMzljYjFlMTlkMjk5MTlj
NmZiMjI4ZjRlMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L1dpbGxMb2FkLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ls
bExvYWQuY3BwCkBAIC0zMSw4ICszMSw2IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CiAKQEAgLTQ0LDcgKzQyLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIFdLUmV0YWluUHRy
PFdLQ29udGV4dFJlZj4gY29udGV4dDsKLSAgICBPd25QdHI8UGxhdGZvcm1XZWJWaWV3PiB3ZWJW
aWV3OworICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVdlYlZpZXc+IHdlYlZpZXc7CiAKICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWU7CiAgICAgV0tSZXRhaW5QdHI8
V0tUeXBlUmVmPiBtZXNzYWdlQm9keTsKQEAgLTc0LDcgKzcyLDcgQEAgcHVibGljOgogICAgICAg
ICBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVU
ZXN0KCJXaWxsTG9hZFRlc3QiKSk7CiAgICAgICAgIHNldEluamVjdGVkQnVuZGxlQ2xpZW50KGNv
bnRleHQuZ2V0KCksIHRoaXMpOwogCi0gICAgICAgIHdlYlZpZXcgPSBhZG9wdFB0cihuZXcgUGxh
dGZvcm1XZWJWaWV3KGNvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgd2ViVmlldyA9IHN0ZDo6bWFr
ZV91bmlxdWU8UGxhdGZvcm1XZWJWaWV3Pihjb250ZXh0LmdldCgpKTsKIAogICAgICAgICBkaWRS
ZWNlaXZlTWVzc2FnZSA9IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01ET01XaW5kb3dUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01ET01XaW5kb3dUZXN0LmNwcAppbmRleCAyNTg0
YzIwZmU0NTczZDEyZDBkNTE4MjEyNTRiZjBlNmIzNGNiNTNmLi5mYzhjZWZiNTI5ZDEzN2U2NTZk
ZWVjMjc5NWE3MWNjYzRiNDI4Nzc1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvRE9NRE9NV2luZG93VGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTURPTVdpbmRvd1Rlc3QuY3BwCkBAIC0zMCw3ICszMCw3
IEBAIHN0YXRpYyBnYm9vbGVhbiBjbGlja2VkQ2FsbGJhY2soV2ViS2l0RE9NRE9NV2luZG93Kiwg
V2ViS2l0RE9NRXZlbnQqLCBXZWJLaXRET01ECiAKIGNsYXNzIFdlYktpdERPTURPTVdpbmRvd1Rl
c3QgOiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3du
UHRyPFdlYlByb2Nlc3NUZXN0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgV2ViS2l0
RE9NRE9NV2luZG93VGVzdCgpKTsgfQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJv
Y2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0RE9NRE9N
V2luZG93VGVzdD4oKTsgfQogCiBwcml2YXRlOgogICAgIGd1aW50NjQgd2ViUGFnZUZyb21Bcmdz
KEdWYXJpYW50KiBhcmdzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwCmluZGV4IDA2YzRlNWVhNDY4ZjBiMGMz
NGYzNGMxZTYxYTI5ODMxMDBhOWQ5OWIuLjU2NjdmYThiMzg0MDljOGIwYmZjMGI0ZjY5MjgzODRj
ZGU3OGU0OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9XZWJFeHRlbnNpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRl
IDxzdHJpbmcuaD4KICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg+CiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRy
Lmg+CkBAIC04Myw3ICs4MSw3IEBAIHN0cnVjdCBEZWxheWVkU2lnbmFsIHsKICAgICBDU3RyaW5n
IHVyaTsKIH07CiAKLURlcXVlPE93blB0cjxEZWxheWVkU2lnbmFsPj4gZGVsYXllZFNpZ25hbHNR
dWV1ZTsKK0RlcXVlPERlbGF5ZWRTaWduYWw+IGRlbGF5ZWRTaWduYWxzUXVldWU7CiAKIHN0YXRp
YyB2b2lkIGVtaXREb2N1bWVudExvYWRlZChHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiB7
CkBAIC0xMTUsNyArMTEzLDcgQEAgc3RhdGljIHZvaWQgZG9jdW1lbnRMb2FkZWRDYWxsYmFjayhX
ZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBXZWJLaXRXZWJFeHRlbnNpb24qIGUKICAgICBpZiAoZGF0
YSkKICAgICAgICAgZW1pdERvY3VtZW50TG9hZGVkKEdfREJVU19DT05ORUNUSU9OKGRhdGEpKTsK
ICAgICBlbHNlCi0gICAgICAgIGRlbGF5ZWRTaWduYWxzUXVldWUuYXBwZW5kKGFkb3B0UHRyKG5l
dyBEZWxheWVkU2lnbmFsKERvY3VtZW50TG9hZGVkU2lnbmFsKSkpOworICAgICAgICBkZWxheWVk
U2lnbmFsc1F1ZXVlLmFwcGVuZChEZWxheWVkU2lnbmFsKERvY3VtZW50TG9hZGVkU2lnbmFsKSk7
CiB9CiAKIHN0YXRpYyB2b2lkIGVtaXRVUklDaGFuZ2VkKEdEQnVzQ29ubmVjdGlvbiogY29ubmVj
dGlvbiwgY29uc3QgY2hhciogdXJpKQpAQCAtMTM3LDcgKzEzNSw3IEBAIHN0YXRpYyB2b2lkIHVy
aUNoYW5nZWRDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBHUGFyYW1TcGVjKiBwc3Bl
YywgV2ViS2l0CiAgICAgaWYgKGRhdGEpCiAgICAgICAgIGVtaXRVUklDaGFuZ2VkKEdfREJVU19D
T05ORUNUSU9OKGRhdGEpLCB3ZWJraXRfd2ViX3BhZ2VfZ2V0X3VyaSh3ZWJQYWdlKSk7CiAgICAg
ZWxzZQotICAgICAgICBkZWxheWVkU2lnbmFsc1F1ZXVlLmFwcGVuZChhZG9wdFB0cihuZXcgRGVs
YXllZFNpZ25hbChVUklDaGFuZ2VkU2lnbmFsLCB3ZWJraXRfd2ViX3BhZ2VfZ2V0X3VyaSh3ZWJQ
YWdlKSkpKTsKKyAgICAgICAgZGVsYXllZFNpZ25hbHNRdWV1ZS5hcHBlbmQoRGVsYXllZFNpZ25h
bChVUklDaGFuZ2VkU2lnbmFsLCB3ZWJraXRfd2ViX3BhZ2VfZ2V0X3VyaSh3ZWJQYWdlKSkpOwog
fQogCiBzdGF0aWMgZ2Jvb2xlYW4gc2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiwg
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgV2ViS2l0VVJJUmVzcG9uc2UqIHJlZGlyZWN0UmVz
cG9uc2UsIGdwb2ludGVyKQpAQCAtMzMwLDEzICszMjgsMTMgQEAgc3RhdGljIHZvaWQgYnVzQWNx
dWlyZWRDYWxsYmFjayhHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqIG5h
bWUsIGcKIAogICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKHVzZXJEYXRhKSwgImRidXMt
Y29ubmVjdGlvbiIsIGNvbm5lY3Rpb24pOwogICAgIHdoaWxlIChkZWxheWVkU2lnbmFsc1F1ZXVl
LnNpemUoKSkgewotICAgICAgICBPd25QdHI8RGVsYXllZFNpZ25hbD4gZGVsYXllZFNpZ25hbCA9
IGRlbGF5ZWRTaWduYWxzUXVldWUudGFrZUZpcnN0KCk7Ci0gICAgICAgIHN3aXRjaCAoZGVsYXll
ZFNpZ25hbC0+dHlwZSkgeworICAgICAgICBEZWxheWVkU2lnbmFsIGRlbGF5ZWRTaWduYWwgPSBk
ZWxheWVkU2lnbmFsc1F1ZXVlLnRha2VGaXJzdCgpOworICAgICAgICBzd2l0Y2ggKGRlbGF5ZWRT
aWduYWwudHlwZSkgewogICAgICAgICBjYXNlIERvY3VtZW50TG9hZGVkU2lnbmFsOgogICAgICAg
ICAgICAgZW1pdERvY3VtZW50TG9hZGVkKGNvbm5lY3Rpb24pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgVVJJQ2hhbmdlZFNpZ25hbDoKLSAgICAgICAgICAgIGVtaXRVUklDaGFu
Z2VkKGNvbm5lY3Rpb24sIGRlbGF5ZWRTaWduYWwtPnVyaS5kYXRhKCkpOworICAgICAgICAgICAg
ZW1pdFVSSUNoYW5nZWQoY29ubmVjdGlvbiwgZGVsYXllZFNpZ25hbC51cmkuZGF0YSgpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQo=
</data>
<flag name="review"
          id="276334"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251554</attachid>
            <date>2015-04-24 09:21:29 -0700</date>
            <delta_ts>2015-04-24 09:21:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128007-20150424092022.patch</filename>
            <type>text/plain</type>
            <size>97458</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIxMTk0ZTQ0MmRiNzllODI0MTM5Yjlh
ZjFjNjI1YTU3ZGVlMGMyZWEuLjNjOGRmZTBkZmJmOTQwNDEwZGQwMjY4YzY5MzhjZjA3YTk1YzAz
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDQtMjQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIENvbnZlcnQgT3duUHRyIGFuZCBQYXNzT3duUHRyIHVzZXMg
dG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjgwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24u
CisKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvajogUmVtb3ZlZCBPd25QdHIgc291
cmNlIGZpbGVzLgorICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnM6IERp
dHRvLgorICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAg
ICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6IERpdHRvLgorCisgICAgICAgICogd3RmL0Zvcndh
cmQuaDogUmVtb3ZlZCBPd25QdHIgYW5kIFBhc3NPd25QdHIuCisgICAgICAgICogd3RmL0hhc2hU
cmFpdHMuaDogRGl0dG8uCisKKyAgICAgICAgKiB3dGYvT3duUHRyLmg6IFJlbW92ZWQuCisgICAg
ICAgICogd3RmL093blB0ckNvbW1vbi5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9QYXNzT3du
UHRyLmg6IFJlbW92ZWQuCisKKyAgICAgICAgKiB3dGYvU2l6ZUxpbWl0cy5jcHA6IFJlbW92ZWQg
T3duUHRyLgorICAgICAgICAqIHd0Zi9WZWN0b3JUcmFpdHMuaDogUmVtb3ZlZCBPd25QdHIgc3Bl
Y2lhbGl6YXRpb24uCisKIDIwMTUtMDQtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgRGlzYWJsZSBIQVZFX0FWS0lUIG9uIEFwcGxlVFYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBjZGQ5NTI3ZTE5YTcwNjdjNjk5NzlhNTkwZmUwZDQxNzc2MThlMjkxLi5iNmUyZTNiODFjYzM3
NDFmZjljNmRjMGNiZmJjNTkwNGI1ZmQwYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAK
KzIwMTUtMDQtMjQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIENv
bnZlcnQgT3duUHRyIGFuZCBQYXNzT3duUHRyIHVzZXMgdG8gc3RkOjp1bmlxdWVfcHRyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwMDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAgKiBQbGF0Zm9ybUVm
bC5jbWFrZTogUmVtb3ZlZCBPd25QdHJDYWlybyBzb3VyY2UgZmlsZXMuCisgICAgICAgICogUGxh
dGZvcm1HVEsuY21ha2U6IERpdHRvLgorICAgICAgICAqIFBsYXRmb3JtV2luQ2Fpcm8uY21ha2U6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IERpdHRv
LgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczogRGl0
dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHA6IFJlbW92ZWQg
T3duUHRyIHNwZWNpYWxpemF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29w
aWVyLmg6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNw
cDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlLgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZEds
b2JhbERhdGEuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRh
Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9D
RE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0YuaDogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cHJvY2Vzc05vdGlmaWNhdGlvbik6
IFVzZSB1bmlxdWVfcHRyLgorICAgICAgICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6bm90aWZpY2F0
aW9uQ2FsbGJhY2spOiBVc2UgbWFrZV91bmlxdWUuCisgICAgICAgIChXZWJDb3JlOjpBVkZXcmFw
cGVyOjpwbGF0Zm9ybUxheWVyKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRQYXRo
VG9DYWlyb0NvbnRleHQpOiBVc2UgY2Fpcm9fcGF0aF9kZXN0cm95IGRpcmVjdGx5CisgICAgICAg
IGluc3RlYWQgb2YgYSBzbWFydCBwb2ludGVyOyB0aGUgY29kZSBwYXRoIGlzIHNpbXBsZSBlbm91
Z2ggdGhhdCBpdCBpcworICAgICAgICBjbGVhciB0aGlzIHdheS4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKTogVXNlIG1ha2VfdW5pcXVlLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmg6IFVzZSB1bmlx
dWVfcHRyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8u
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNh
aXJvLmg6IFJlbW92ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRo
Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6UGF0aCk6IFVzZSBjYWlyb19wYXRo
X2Rlc3Ryb3kgZGlyZWN0bHkgaW5zdGVhZCBvZiBhCisgICAgICAgIHNtYXJ0IHBvaW50ZXI7IHRo
ZSBjb2RlIHBhdGggaXMgc2ltcGxlIGVub3VnaCB0aGF0IGl0IGlzIGNsZWFyIHRoaXMgd2F5Lgor
ICAgICAgICAoV2ViQ29yZTo6UGF0aDo6b3BlcmF0b3I9KTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpQYXRoOjphZGRQYXRoKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXRoOjphcHBs
eSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29u
dGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpj
bGlwRm9yUGF0dGVybkZpbGxpbmcpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNs
dWRlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwOiBE
aXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJm
YWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVHTE9mZlNjcmVlblN1cmZhY2U6OkVHTE9mZlNj
cmVlblN1cmZhY2UpOiBVc2UgbWFrZV91bmlxdWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9zdXJmYWNlcy9nbHgvR0xYQ29uZmlnU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdMWENvbmZpZ1NlbGVjdG9yOjpmaW5kTWF0Y2hpbmdDb25maWcpOiBVc2UgdW5pcXVlX3B0ciB3
aXRoIFgxMURlbGV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpHTFhDb25maWdTZWxlY3Rvcjo6Zmlu
ZE1hdGNoaW5nQ29uZmlnV2l0aFZpc3VhbElkKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R0xYVHJhbnNwb3J0U3VyZmFjZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oOiBSZW1v
dmVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYMTFIZWxwZXI6OmNyZWF0ZU9mZlNjcmVlbldpbmRv
dyk6IFVzZSB1bmlxdWVfcHRyIHdpdGggWDExRGVsZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Olgx
MUhlbHBlcjo6Y3JlYXRlUGl4bWFwKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmg6IEFkZGVkIFgxMURlbGV0ZXIsCisgICAgICAg
IHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggdW5pcXVlX3B0ciB0byBtYWtlIGl0IGNhbGwgWEZyZWUg
aW5zdGVhZCBvZiBkZWxldGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVs
bFNjcmVlbkNvbnRyb2xsZXIuY3BwOiBVc2UgdW5pcXVlX3B0ci4KKyAgICAgICAgKEZ1bGxTY3Jl
ZW5Db250cm9sbGVyOjpGdWxsU2NyZWVuQ29udHJvbGxlcik6IFVzZSBtYWtlX3VuaXF1ZS4KKyAg
ICAgICAgKEZ1bGxTY3JlZW5Db250cm9sbGVyOjplbnRlckZ1bGxTY3JlZW4pOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIuaDogVXNl
IHVuaXF1ZV9wdHIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3ND
b250ZXh0M0RXaW4uY3BwOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldLQ0FJbWFnZVF1ZXVlOjpXS0NBSW1hZ2VRdWV1ZSk6IFVzZSBtYWtlX3VuaXF1ZS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaDogVXNlIHVuaXF1
ZV9wdHIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blN0dWIuY3BwOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGUuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDogVXNlIHVuaXF1ZV9wdHIuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok11bHRpcGFydEhhbmRsZTo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmg6IERlbGV0ZWQgdGhlIGNy
ZWF0ZSBmdW5jdGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGVhZGVyQ2FsbGJhY2spOiBV
c2UgbWFrZV91bmlxdWUuCisKIDIwMTUtMDQtMjQgIFBlciBBcm5lIFZvbGxhbiAgPHBlYXZvQG91
dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5dIFBvcHVwIG1lbnUgaXMgbm90IGFjY2Vzc2libGUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggN2Q3YThjMmQ4OWRhMGU3MGY3NTUzMDgyZmY1MDMyMDQzYjM1N2EzNS4u
NGZiNmM0Mjg3ZTY2NjYzZTFjZjljODMyZDQzMDg5ZDZlNjY5ZDU4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDE1LTA0LTI0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBDb252ZXJ0IE93blB0ciBhbmQgUGFzc093blB0ciB1c2VzIHRvIHN0ZDo6dW5p
cXVlX3B0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI4MDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW5jb2Rlci5oOiBBZGRlZCBhbiBp
bmNsdWRlIG5vdworICAgICAgICBuZWVkZWQgdGhhdCB3YXMgaW5oZXJpdGVkIGZyb20gT3duUHRy
LmggYmVmb3JlLgorCiAyMDE1LTA0LTI0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBOZXR3b3JrIENhY2hlOiBNYWtlIHBhdGggZnVuY3Rpb25zIG1lbWJlcnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ogYi9Tb3VyY2Uv
V1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCmluZGV4IDIzYTgxZThjYzI4NDc4NTJmM2JhNGY2
NjgwZDFkZWVkYmM0NjFjMGEuLjZhYTQ3M2RmZTY3YWQ0ZDI5NWFiMzg3YmY3ZDFiYzRkYmQxYmQ4
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKKysrIGIv
U291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagpAQCAtMjM3LDggKzIzNyw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTm9uY29weWFibGUuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxOdW1iZXJPZkNvcmVzLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3dGZcT1NSYW5kb21Tb3VyY2UuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHd0ZlxPd25QdHIuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
ZlxPd25QdHJDb21tb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYWNr
ZWRJbnRWZWN0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQYWdlQWxs
b2NhdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBhZ2VCbG9jay5o
IiAvPgpAQCAtMjQ3LDcgKzI0NSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZc
UGFyYWxsZWxKb2JzR2VuZXJpYy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcUGFyYWxsZWxKb2JzT3Blbk1QLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcUGFzc093blB0ci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFBh
c3NSZWZQdHIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxQbGF0Zm9ybS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFByaW50U3RyZWFtLmgiIC8+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMgYi9T
b3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZDRmZWMyZjcx
M2JjZmY4Yzc1MDQ1Y2NlYWM3MjBkYzFjNWNhZDZiMS4uZmFlMTA2OTI2M2FlNzgyZjViNTg1M2Q1
YjEzMjE3MzlkMjM1YTNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYu
dmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ou
ZmlsdGVycwpAQCAtNTI4LDEyICs1MjgsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXE9TUmFuZG9tU291cmNlLmgiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxPd25QdHIuaCI+Ci0g
ICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXE93blB0ckNvbW1vbi5oIj4KLSAgICAgIDxGaWx0ZXI+d3RmPC9G
aWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZc
UGFja2VkSW50VmVjdG9yLmgiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KQEAgLTU1OCw5ICs1NTIsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
d3RmXFBhcmFsbGVsSm9ic09wZW5NUC5oIj4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFzc093blB0
ci5oIj4KLSAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcUGFzc1JlZlB0ci5oIj4KICAgICAgIDxGaWx0ZXI+
d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBlNDA1ZDZkYTRhYzVmZWYxNGYxNWU3ZDQzMTM4NTkxZWM2ZjMy
YmM5Li5hMDM4NzgzZGYyNjA4MzdmNzRjNjlhMjBkNjcyMzM1ZTUyZGQzODI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4NSw4ICsxODUsNiBAQAogCQlB
OEE0NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJEODE1MUE4MjVCMDA0
MTIzRkYgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgKi87IH07CiAJCUE4QTQ3M0Y5MTUxQTgyNUIw
MDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJEQTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21T
b3VyY2UuY3BwICovOyB9OwogCQlBOEE0NzNGQTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21T
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QTQ3MkRCMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5oICovOyB9OwotCQlBOEE0
NzNGQzE1MUE4MjVCMDA0MTIzRkYgLyogT3duUHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzJERDE1MUE4MjVCMDA0MTIzRkYgLyogT3duUHRy
LmggKi87IH07Ci0JCUE4QTQ3M0ZEMTUxQTgyNUIwMDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkRFMTUx
QTgyNUIwMDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCAqLzsgfTsKIAkJQThBNDczRkUxNTFBODI1
QjAwNDEyM0ZGIC8qIFBhY2tlZEludFZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyREYxNTFBODI1QjAwNDEyM0ZGIC8qIFBhY2tlZElu
dFZlY3Rvci5oICovOyB9OwogCQlBOEE0NzNGRjE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUFsbG9j
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QTQ3MkUwMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQWxsb2NhdGlvbi5oICovOyB9OwogCQlBOEE0
NzQwMjE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkUzMTUxQTgyNUIwMDQxMjNGRiAvKiBQ
YWdlQmxvY2suY3BwICovOyB9OwpAQCAtMTk0LDcgKzE5Miw2IEBACiAJCUE4QTQ3NDA0MTUxQTgy
NUIwMDQxMjNGRiAvKiBQYWdlUmVzZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkU1MTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlUmVz
ZXJ2YXRpb24uaCAqLzsgfTsKIAkJQThBNDc0MDUxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVs
Sm9icy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDcyRTYxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9icy5oICovOyB9OwogCQlBOEE0NzQw
ODE1MUE4MjVCMDA0MTIzRkYgLyogUGFyYWxsZWxKb2JzTGliZGlzcGF0Y2guaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkU5MTUxQTgyNUIwMDQx
MjNGRiAvKiBQYXJhbGxlbEpvYnNMaWJkaXNwYXRjaC5oICovOyB9OwotCQlBOEE0NzQwQjE1MUE4
MjVCMDA0MTIzRkYgLyogUGFzc093blB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThBNDcyRUMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NPd25QdHIu
aCAqLzsgfTsKIAkJQThBNDc0MEMxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NSZWZQdHIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkVEMTUxQTgy
NUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggKi87IH07CiAJCUE4QTQ3NDE0MTUxQTgyNUIwMDQx
MjNGRiAvKiBSYW5kb21OdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThBNDcyRkIxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5j
cHAgKi87IH07CiAJCUE4QTQ3NDE1MTUxQTgyNUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MkZDMTUx
QTgyNUIwMDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuaCAqLzsgfTsKQEAgLTQ3Niw4ICs0NzMsNiBA
QAogCQlBOEE0NzJEODE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPU0FsbG9jYXRvclBvc2l4LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyREExNTFBODI1QjAwNDEyM0ZGIC8q
IE9TUmFuZG9tU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE9TUmFuZG9tU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcy
REIxNTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4QTQ3MkREMTUxQTgyNUIwMDQxMjNGRiAvKiBPd25QdHIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gT3duUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4QTQ3MkRFMTUxQTgyNUIwMDQxMjNGRiAvKiBPd25QdHJDb21tb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3duUHRyQ29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4QTQ3MkRGMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWNrZWRJbnRWZWN0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFja2VkSW50VmVjdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkUwMTUxQTgyNUIwMDQxMjNGRiAvKiBQ
YWdlQWxsb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQWxs
b2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJFMzE1MUE4MjVC
MDA0MTIzRkYgLyogUGFnZUJsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBhZ2VCbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODUs
NyArNDgwLDYgQEAKIAkJQThBNDcyRTUxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VSZXNlcnZhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlUmVzZXJ2YXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTYxNTFBODI1QjAwNDEyM0ZGIC8q
IFBhcmFsbGVsSm9icy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJhbGxl
bEpvYnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTkxNTFBODI1QjAw
NDEyM0ZGIC8qIFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QTQ3MkVDMTUxQTgyNUIwMDQxMjNGRiAvKiBQYXNzT3duUHRyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3NPd25QdHIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRUQxNTFBODI1QjAwNDEyM0ZGIC8qIFBhc3NSZWZQdHIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzc1JlZlB0ci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJGQjE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9t
TnVtYmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmRvbU51
bWJlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MkZDMTUxQTgyNUIw
MDQxMjNGRiAvKiBSYW5kb21OdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmFuZG9tTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03OTUsOCAr
Nzg5LDYgQEAKIAkJCQlBOEE0NzJEQTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2Uu
Y3BwICovLAogCQkJCUE4QTQ3MkRCMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5o
ICovLAogCQkJCTFBRkRFNjUyMTk1M0IyM0QwMEM0OEZGQSAvKiBPcHRpb25hbC5oICovLAotCQkJ
CUE4QTQ3MkREMTUxQTgyNUIwMDQxMjNGRiAvKiBPd25QdHIuaCAqLywKLQkJCQlBOEE0NzJERTE1
MUE4MjVCMDA0MTIzRkYgLyogT3duUHRyQ29tbW9uLmggKi8sCiAJCQkJQThBNDcyREYxNTFBODI1
QjAwNDEyM0ZGIC8qIFBhY2tlZEludFZlY3Rvci5oICovLAogCQkJCUE4QTQ3MkUwMTUxQTgyNUIw
MDQxMjNGRiAvKiBQYWdlQWxsb2NhdGlvbi5oICovLAogCQkJCUE4QTQ3MkUzMTUxQTgyNUIwMDQx
MjNGRiAvKiBQYWdlQmxvY2suY3BwICovLApAQCAtODA0LDcgKzc5Niw2IEBACiAJCQkJQThBNDcy
RTUxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VSZXNlcnZhdGlvbi5oICovLAogCQkJCUE4QTQ3MkU2
MTUxQTgyNUIwMDQxMjNGRiAvKiBQYXJhbGxlbEpvYnMuaCAqLywKIAkJCQlBOEE0NzJFOTE1MUE4
MjVCMDA0MTIzRkYgLyogUGFyYWxsZWxKb2JzTGliZGlzcGF0Y2guaCAqLywKLQkJCQlBOEE0NzJF
QzE1MUE4MjVCMDA0MTIzRkYgLyogUGFzc093blB0ci5oICovLAogCQkJCUE4QTQ3MkVEMTUxQTgy
NUIwMDQxMjNGRiAvKiBQYXNzUmVmUHRyLmggKi8sCiAJCQkJQTg3NkRCRDcxNTE4MTZFNTAwREFE
Qjk1IC8qIFBsYXRmb3JtLmggKi8sCiAJCQkJMEY5RDMzNUQxNjVEQkE3MzAwNUFEMzg3IC8qIFBy
aW50U3RyZWFtLmNwcCAqLywKQEAgLTExMzEsOCArMTEyMiw2IEBACiAJCQkJN0UyOUMzM0UxNUZG
RDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzNGNjE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4QTQ3M0ZBMTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQThBNDczRkMxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQThBNDczRkQxNTFBODI1QjAwNDEyM0ZGIC8qIE93blB0ckNvbW1vbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZCMTRFMUIxODEwRTFEQzAwOUI2QjREIC8qIEJhZ1RvSGFzaE1h
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRkUxNTFBODI1QjAwNDEyM0ZGIC8qIFBhY2tl
ZEludFZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRkYxNTFBODI1QjAwNDEyM0ZG
IC8qIFBhZ2VBbGxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTExNDAsNyArMTEyOSw2IEBA
CiAJCQkJQThBNDc0MDQxNTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VSZXNlcnZhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThBNDc0MDUxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9icy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MDgxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVs
Sm9ic0xpYmRpc3BhdGNoLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEE0NzQwQjE1MUE4MjVCMDA0
MTIzRkYgLyogUGFzc093blB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MEMxNTFBODI1
QjAwNDEyM0ZGIC8qIFBhc3NSZWZQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzZEQkQ4MTUx
ODE2RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMTRFMTkx
ODBGQTIxODAwOUI2QjREIC8qIEJhZy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
CmluZGV4IGM3YjQyODUyODFkYzllMjQwM2QxNWY0ZDExMGUzMzRlMTQ4OWQ5YWQuLjg2MjNiYWNh
MGNhZDQ2Mjc1ZTBmOTM3NmFlMDA3ZmYxZDQzMDk1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBA
IC01NSw4ICs1NSw2IEBAIHNldChXVEZfSEVBREVSUwogICAgIE51bWJlck9mQ29yZXMuaAogICAg
IE9TQWxsb2NhdG9yLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCi0gICAgT3duUHRyLmgKLSAgICBP
d25QdHJDb21tb24uaAogICAgIFBhZ2VBbGxvY2F0aW9uLmgKICAgICBQYWdlQmxvY2suaAogICAg
IFBhZ2VSZXNlcnZhdGlvbi5oCkBAIC02NCw3ICs2Miw2IEBAIHNldChXVEZfSEVBREVSUwogICAg
IFBhcmFsbGVsSm9ic0dlbmVyaWMuaAogICAgIFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmgKICAg
ICBQYXJhbGxlbEpvYnNPcGVuTVAuaAotICAgIFBhc3NPd25QdHIuaAogICAgIFBhc3NSZWZQdHIu
aAogICAgIFBsYXRmb3JtLmgKICAgICBQcmludFN0cmVhbS5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Gb3J3YXJkLmggYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKaW5kZXggNmFlZmEx
ZGVmMmNkZjA4OTQyM2NlMGQxMmZjZjJkZDU1Njg3OWUxOC4uMzk1MjBhYWY0YTE2NjQ2MGM3ZGRh
OGFhY2Q4OThkODEzMzUyOWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaApAQCAtMjgsOCArMjgsNiBAQCBuYW1lc3Bh
Y2UgV1RGIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEZ1bmN0aW9uOwogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gY2xhc3MgTGF6eU5ldmVyRGVzdHJveWVkOwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gY2xhc3MgTmV2ZXJEZXN0cm95ZWQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPd25Q
dHI7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBQYXNzT3duUHRyOwogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gY2xhc3MgUGFzc1JlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFJl
ZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFJlZjsKQEAgLTY1LDggKzYzLDYgQEAg
dXNpbmcgV1RGOjpGdW5jdGlvbkRpc3BhdGNoZXI7CiB1c2luZyBXVEY6OkxhenlOZXZlckRlc3Ry
b3llZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Ok9yZGluYWxOdW1i
ZXI7Ci11c2luZyBXVEY6Ok93blB0cjsKLXVzaW5nIFdURjo6UGFzc093blB0cjsKIHVzaW5nIFdU
Rjo6UGFzc1JlZlB0cjsKIHVzaW5nIFdURjo6UHJpbnRTdHJlYW07CiB1c2luZyBXVEY6OlJlZjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaCBiL1NvdXJjZS9XVEYvd3Rm
L0hhc2hUcmFpdHMuaAppbmRleCBlNDdhYThiNWY4NmI0YmZkZWU5ZTkyMzJjYzIwZGY1YTllODFm
M2NkLi5mY2EzNWYzOTlkZmQwYTFkZGRmM2JiODM4ZDczMDg4NjNkNzVlMWFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVHJhaXRzLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaFRy
YWl0cy5oCkBAIC0zMCw4ICszMCw2IEBAIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBTdHJpbmc7
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE93blB0cjsKLQogdGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RydWN0IEhhc2hUcmFpdHM7CiAKIHRlbXBsYXRlPGJvb2wgaXNJbnRlZ2VyLCB0eXBl
bmFtZSBUPiBzdHJ1Y3QgR2VuZXJpY0hhc2hUcmFpdHNCYXNlOwpAQCAtMTIwLDE3ICsxMTgsOCBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBEZWxldGVyPiBzdHJ1Y3QgSGFzaFRyYWl0
czxzdGQ6OnVuaXF1ZV9wdHI8VCwgRGVsZQogICAgIHN0YXRpYyBUKiBwZWVrKHN0ZDo6bnVsbHB0
cl90KSB7IHJldHVybiBudWxscHRyOyB9CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgSGFzaFRyYWl0czxPd25QdHI8VD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPE93blB0cjxU
Pj4gewotICAgIHR5cGVkZWYgc3RkOjpudWxscHRyX3QgRW1wdHlWYWx1ZVR5cGU7Ci0gICAgc3Rh
dGljIEVtcHR5VmFsdWVUeXBlIGVtcHR5VmFsdWUoKSB7IHJldHVybiBudWxscHRyOyB9Ci0KLSAg
ICB0eXBlZGVmIFQqIFBlZWtUeXBlOwotICAgIHN0YXRpYyBUKiBwZWVrKGNvbnN0IE93blB0cjxU
PiYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLmdldCgpOyB9Ci0gICAgc3RhdGljIFQqIHBlZWsoc3Rk
OjpudWxscHRyX3QpIHsgcmV0dXJuIG51bGxwdHI7IH0KLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1l
IFA+IHN0cnVjdCBIYXNoVHJhaXRzPFJlZlB0cjxQPj4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8
UmVmUHRyPFA+PiB7Ci0gICAgc3RhdGljIFAqIGVtcHR5VmFsdWUoKSB7IHJldHVybiAwOyB9Cisg
ICAgc3RhdGljIFAqIGVtcHR5VmFsdWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICB0eXBl
ZGVmIFAqIFBlZWtUeXBlOwogICAgIHN0YXRpYyBQZWVrVHlwZSBwZWVrKGNvbnN0IFJlZlB0cjxQ
PiYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Pd25QdHIuaCBiL1NvdXJjZS9XVEYvd3RmL093blB0ci5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyMTcwMWE0OGI1Yjc1M2I5MjA5YmE2ZDlhZDBkOWU2YWU1ZjQwN2MxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYv
d3RmL093blB0ci5oCisrKyAvZGV2L251bGwKQEAgLTEsMjMwICswLDAgQEAKLS8qCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgV1RGX093blB0cl9o
Ci0jZGVmaW5lIFdURl9Pd25QdHJfaAotCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUg
PGNzdGRkZWY+Ci0jaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
Ci0jaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KLSNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNp
bmNsdWRlIDx3dGYvT3duUHRyQ29tbW9uLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc093blB0cjsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBQYXNzT3duUHRyPFQ+IGFkb3B0UHRyKFQqKTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNsYXNzIE93blB0ciB7Ci0gICAgcHVibGljOgotICAgICAgICB0eXBlZGVmIFQgVmFsdWVU
eXBlOwotICAgICAgICB0eXBlZGVmIFZhbHVlVHlwZSogUHRyVHlwZTsKLQotICAgICAgICBPd25Q
dHIoKSA6IG1fcHRyKDApIHsgfQotICAgICAgICBPd25QdHIoc3RkOjpudWxscHRyX3QpIDogbV9w
dHIoMCkgeyB9Ci0KLSAgICAgICAgLy8gU2VlIGNvbW1lbnQgaW4gUGFzc093blB0ci5oIGZvciB3
aHkgdGhpcyB0YWtlcyBhIGNvbnN0IHJlZmVyZW5jZS4KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVT4gT3duUHRyKGNvbnN0IFBhc3NPd25QdHI8VT4mIG8pOwotCi0gICAgICAgIH5Pd25QdHIo
KSB7IGRlbGV0ZU93bmVkUHRyKG1fcHRyKTsgfQotCi0gICAgICAgIFB0clR5cGUgZ2V0KCkgY29u
c3QgeyByZXR1cm4gbV9wdHI7IH0KLQotICAgICAgICB2b2lkIGNsZWFyKCk7Ci0gICAgICAgIFBh
c3NPd25QdHI8VD4gcmVsZWFzZSgpOwotICAgICAgICBQdHJUeXBlIGxlYWtQdHIoKSBXQVJOX1VO
VVNFRF9SRVRVUk47Ci0KLSAgICAgICAgVmFsdWVUeXBlJiBvcGVyYXRvciooKSBjb25zdCB7IEFT
U0VSVChtX3B0cik7IHJldHVybiAqbV9wdHI7IH0KLSAgICAgICAgUHRyVHlwZSBvcGVyYXRvci0+
KCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gbV9wdHI7IH0KLQotICAgICAgICBib29s
IG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQotCi0gICAgICAgIC8vIFRoaXMg
Y29udmVyc2lvbiBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1
dCBub3QgdG8gb3RoZXIgaW50ZWdlciB0eXBlcy4KLSAgICAgICAgdHlwZWRlZiBQdHJUeXBlIE93
blB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGU7Ci0gICAgICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVk
Qm9vbFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZPd25QdHI6Om1fcHRyIDogMDsgfQot
Ci0gICAgICAgIE93blB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NPd25QdHI8VD4mKTsKLSAgICAg
ICAgT3duUHRyJiBvcGVyYXRvcj0oc3RkOjpudWxscHRyX3QpIHsgY2xlYXIoKTsgcmV0dXJuICp0
aGlzOyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE93blB0ciYgb3BlcmF0b3I9KGNv
bnN0IFBhc3NPd25QdHI8VT4mKTsKLQotICAgICAgICBPd25QdHIoT3duUHRyJiYpOwotICAgICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBPd25QdHIoT3duUHRyPFU+JiYpOwotCi0gICAgICAgIE93
blB0ciYgb3BlcmF0b3I9KE93blB0ciYmKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4g
T3duUHRyJiBvcGVyYXRvcj0oT3duUHRyPFU+JiYpOwotCi0gICAgICAgIC8vIEhhc2ggdGFibGUg
ZGVsZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0cnVjdGVkIGFuZCBuZXZlciBjb3Bp
ZWQgb3IgZGVzdHJveWVkLgotICAgICAgICBPd25QdHIoSGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlw
ZSkgOiBtX3B0cihoYXNoVGFibGVEZWxldGVkVmFsdWUoKSkgeyB9Ci0gICAgICAgIGJvb2wgaXNI
YXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA9PSBoYXNoVGFibGVE
ZWxldGVkVmFsdWUoKTsgfQotCi0gICAgICAgIHZvaWQgc3dhcChPd25QdHImIG8pIHsgc3RkOjpz
d2FwKG1fcHRyLCBvLm1fcHRyKTsgfQotICAgICAgICAKLSAgICAgICAgLy8gQ29uc3RydWN0IGFu
IG9iamVjdCB0byBzdG9yZSBpbnRvIHRoaXMgT3duUHRyLCBidXQgb25seSBzbyBsb25nIGFzIHRo
aXMgT3duUHRyCi0gICAgICAgIC8vIGRvZXNuJ3QgYWxyZWFkeSBwb2ludCB0byBhbiBvYmplY3Qu
IFRoaXMgd2lsbCBlbnN1cmUgdGhhdCBhZnRlciB5b3UgY2FsbCB0aGlzLAotICAgICAgICAvLyB0
aGUgT3duUHRyIHdpbGwgcG9pbnQgdG8gYW4gaW5zdGFuY2Ugb2YgVCwgZXZlbiBpZiBjYWxsZWQg
Y29uY3VycmVudGx5LiBUaGlzCi0gICAgICAgIC8vIGluc3RhbmNlIG1heSBvciBtYXkgbm90IGhh
dmUgYmVlbiBjcmVhdGVkIGJ5IHRoaXMgY2FsbC4gTW9yZW92ZXIsIHRoaXMgY2FsbCB1c2VzCi0g
ICAgICAgIC8vIGFuIG9wcG9ydHVuaXN0aWMgdHJhbnNhY3Rpb24sIGluIHRoYXQgd2UgbWF5IGNy
ZWF0ZSBhbiBpbnN0YW5jZSBvZiBUIGFuZCB0aGVuCi0gICAgICAgIC8vIGltbWVkaWF0ZWx5IHRo
cm93IGl0IGF3YXksIGlmIGluIHRoZSBwcm9jZXNzIG9mIGNyZWF0aW5nIHRoYXQgaW5zdGFuY2Ug
c29tZQotICAgICAgICAvLyBvdGhlciB0aHJlYWQgd2FzIGRvaW5nIHRoZSBzYW1lIHRoaW5nIGFu
ZCBzdG9yZWQgaXRzIGluc3RhbmNlIGludG8gdGhpcyBwb2ludGVyCi0gICAgICAgIC8vIGJlZm9y
ZSB3ZSBoYWQgYSBjaGFuY2UgdG8gZG8gc28uCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IEFyZ3M+Ci0gICAgICAgIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb25hbGx5KEFyZ3MuLi4pOwotCi0g
ICAgcHJpdmF0ZToKLSAgICAgICAgZXhwbGljaXQgT3duUHRyKFB0clR5cGUgcHRyKSA6IG1fcHRy
KHB0cikgeyB9Ci0KLSAgICAgICAgc3RhdGljIFB0clR5cGUgaGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQdHJUeXBlPigtMSk7IH0KLQotICAgICAgICAv
LyBXZSBzaG91bGQgbmV2ZXIgaGF2ZSB0d28gT3duUHRycyBmb3IgdGhlIHNhbWUgdW5kZXJseWlu
ZyBvYmplY3QgKG90aGVyd2lzZSB3ZSdsbCBnZXQKLSAgICAgICAgLy8gZG91YmxlLWRlc3RydWN0
aW9uKSwgc28gdGhlc2UgZXF1YWxpdHkgb3BlcmF0b3JzIHNob3VsZCBuZXZlciBiZSBuZWVkZWQu
Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0b3I9PShjb25zdCBPd25Q
dHI8VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25QdHJzX3Nob3VsZF9uZXZl
cl9iZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBV
PiBib29sIG9wZXJhdG9yIT0oY29uc3QgT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCghc2l6
ZW9mKFUqKSwgT3duUHRyc19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7IH0K
LSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBhc3NP
d25QdHI8VT4mKSB7IENPTVBJTEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25QdHJzX3Nob3VsZF9u
ZXZlcl9iZV9lcXVhbCk7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBib29sIG9wZXJhdG9yIT0oY29uc3QgUGFzc093blB0cjxVPiYpIHsgQ09NUElMRV9BU1NF
UlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsgcmV0dXJuIGZh
bHNlOyB9Ci0KLSAgICAgICAgUHRyVHlwZSBtX3B0cjsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIE93blB0cjxUPjo6T3duUHRy
KGNvbnN0IFBhc3NPd25QdHI8VT4mIG8pCi0gICAgICAgIDogbV9wdHIoby5sZWFrUHRyKCkpCi0g
ICAgewotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIE93blB0
cjxUPjo6Y2xlYXIoKQotICAgIHsKLSAgICAgICAgZGVsZXRlT3duZWRQdHIoc3RkOjpleGNoYW5n
ZShtX3B0ciwgbnVsbHB0cikpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBQYXNzT3duUHRyPFQ+IE93blB0cjxUPjo6cmVsZWFzZSgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwotICAgIH0KLQot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB0eXBlbmFtZSBPd25QdHI8VD46OlB0clR5
cGUgT3duUHRyPFQ+OjpsZWFrUHRyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OmV4Y2hh
bmdlKG1fcHRyLCBudWxscHRyKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBp
bmxpbmUgT3duUHRyPFQ+JiBPd25QdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzT3duUHRyPFQ+
JiBvKQotICAgIHsKLSAgICAgICAgUHRyVHlwZSBwdHIgPSBzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBv
LmxlYWtQdHIoKSk7Ci0gICAgICAgIEFTU0VSVCghcHRyIHx8IG1fcHRyICE9IHB0cik7Ci0gICAg
ICAgIGRlbGV0ZU93bmVkUHRyKHB0cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0K
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgT3du
UHRyPFQ+JiBPd25QdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzT3duUHRyPFU+JiBvKQotICAg
IHsKLSAgICAgICAgUHRyVHlwZSBwdHIgPSBzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBvLmxlYWtQdHIo
KSk7Ci0gICAgICAgIEFTU0VSVCghcHRyIHx8IG1fcHRyICE9IHB0cik7Ci0gICAgICAgIGRlbGV0
ZU93bmVkUHRyKHB0cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgT3duUHRyPFQ+OjpPd25QdHIoT3duUHRyPFQ+JiYgbykK
LSAgICAgICAgOiBtX3B0cihvLmxlYWtQdHIoKSkKLSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIE93blB0cjxUPjo6T3du
UHRyKE93blB0cjxVPiYmIG8pCi0gICAgICAgIDogbV9wdHIoby5sZWFrUHRyKCkpCi0gICAgewot
ICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBhdXRvIE93blB0cjxUPjo6
b3BlcmF0b3I9KE93blB0ciYmIG8pIC0+IE93blB0ciYKLSAgICB7Ci0gICAgICAgIEFTU0VSVCgh
byB8fCBvICE9IG1fcHRyKTsKLSAgICAgICAgT3duUHRyIHB0ciA9IFdURjo6bW92ZShvKTsKLSAg
ICAgICAgc3dhcChwdHIpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIGF1dG8gT3duUHRy
PFQ+OjpvcGVyYXRvcj0oT3duUHRyPFU+JiYgbykgLT4gT3duUHRyJgotICAgIHsKLSAgICAgICAg
QVNTRVJUKCFvIHx8IG8gIT0gbV9wdHIpOwotICAgICAgICBPd25QdHIgcHRyID0gV1RGOjptb3Zl
KG8pOwotICAgICAgICBzd2FwKHB0cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0K
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBzd2FwKE93blB0cjxUPiYgYSwg
T3duUHRyPFQ+JiBiKQotICAgIHsKLSAgICAgICAgYS5zd2FwKGIpOwotICAgIH0KLQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29u
c3QgT3duUHRyPFQ+JiBhLCBVKiBiKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgPT0g
YjsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShUKiBhLCBjb25zdCBPd25QdHI8VT4mIGIpIAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGEgPT0gYi5nZXQoKTsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBPd25QdHI8VD4mIGEs
IFUqIGIpCi0gICAgewotICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiOyAKLSAgICB9Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9
KFQqIGEsIGNvbnN0IE93blB0cjxVPiYgYikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhICE9IGIu
Z2V0KCk7IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVu
YW1lLi4uIEFyZ3M+IGlubGluZSB2b2lkIE93blB0cjxUPjo6Y3JlYXRlVHJhbnNhY3Rpb25hbGx5
KEFyZ3MuLi4gYXJncykKLSAgICB7Ci0gICAgICAgIGlmIChtX3B0cikgewotICAgICAgICAgICAg
V1RGOjpsb2FkTG9hZEZlbmNlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIFQqIG5ld09iamVjdCA9IG5ldyBUKGFyZ3MuLi4pOwotICAgICAgICBX
VEY6OnN0b3JlU3RvcmVGZW5jZSgpOwotI2lmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQotICAg
ICAgICBkbyB7Ci0gICAgICAgICAgICBpZiAobV9wdHIpIHsKLSAgICAgICAgICAgICAgICBkZWxl
dGUgbmV3T2JqZWN0OwotICAgICAgICAgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSB3aGlsZSAoIVdU
Rjo6d2Vha0NvbXBhcmVBbmRTd2FwKGJpdHdpc2VfY2FzdDx2b2lkKnZvbGF0aWxlKj4oJm1fcHRy
KSwgbnVsbHB0ciwgbmV3T2JqZWN0KSk7Ci0jZWxzZQotICAgICAgICBtX3B0ciA9IG5ld09iamVj
dDsKLSNlbmRpZgotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNT
bWFydFB0cjxPd25QdHI8VD4+IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0
cnVlOwotICAgIH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1Y3QgRGVmYXVsdEhh
c2g8T3duUHRyPFA+PiB7Ci0gICAgICAgIHR5cGVkZWYgUHRySGFzaDxPd25QdHI8UD4+IEhhc2g7
Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6T3duUHRyOwotCi0j
ZW5kaWYgLy8gV1RGX093blB0cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHJD
b21tb24uaCBiL1NvdXJjZS9XVEYvd3RmL093blB0ckNvbW1vbi5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmMmIwODc1ZWI1OWIwODdkYWM3ZDNlMzI4MTBiMWI4ZmMwMDE3ODlkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYv
d3RmL093blB0ckNvbW1vbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQ29tcGFueSAxMDAgSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2lmbmRlZiBXVEZfT3duUHRyQ29tbW9uX2gKLSNkZWZpbmUgV1RGX093
blB0ckNvbW1vbl9oCi0KLW5hbWVzcGFjZSBXVEYgewotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IGlubGluZSB2b2lkIGRlbGV0ZU93bmVkUHRyKFQqIHB0cikKLSAgICB7Ci0gICAgICAgIHR5
cGVkZWYgY2hhciBrbm93bltzaXplb2YoVCkgPyAxIDogLTFdOwotICAgICAgICBpZiAoc2l6ZW9m
KGtub3duKSkKLSAgICAgICAgICAgIGRlbGV0ZSBwdHI7Ci0gICAgfQotCi19IC8vIG5hbWVzcGFj
ZSBXVEYKLQotI2VuZGlmIC8vIFdURl9Pd25QdHJDb21tb25faApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGFzc093blB0ci5oIGIvU291cmNlL1dURi93dGYvUGFzc093blB0ci5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzVlZmI2OTkyY2M5MTE0ZGVlZDE0ZGVmMDg4MGMw
OTdhN2EyZWFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XVEYvd3RmL1Bhc3NPd25QdHIuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2OCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpZm5kZWYgV1RGX1Bhc3NPd25QdHJfaAotI2RlZmluZSBXVEZfUGFzc093blB0cl9oCi0KLSNp
bmNsdWRlIDxjc3RkZGVmPgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHJDb21tb24uaD4KLSNpbmNsdWRlIDx0
eXBlX3RyYWl0cz4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBPd25QdHI7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc093blB0
cjsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBQYXNzT3duUHRyPFQ+IGFkb3B0UHRyKFQqKTsK
LQotICAgIGNsYXNzIFJlZkNvdW50ZWRCYXNlOwotICAgIGNsYXNzIFRocmVhZFNhZmVSZWZDb3Vu
dGVkQmFzZTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBhc3NPd25QdHIgewot
ICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBUIFZhbHVlVHlwZTsKLSAgICAgICAgdHlwZWRl
ZiBWYWx1ZVR5cGUqIFB0clR5cGU7Ci0KLSAgICAgICAgUGFzc093blB0cigpIDogbV9wdHIoMCkg
eyB9Ci0gICAgICAgIFBhc3NPd25QdHIoc3RkOjpudWxscHRyX3QpIDogbV9wdHIoMCkgeyB9Ci0K
LSAgICAgICAgLy8gSXQgc29tZXdoYXQgYnJlYWtzIHRoZSB0eXBlIHN5c3RlbSB0byBhbGxvdyB0
cmFuc2ZlciBvZiBvd25lcnNoaXAgb3V0IG9mCi0gICAgICAgIC8vIGEgY29uc3QgUGFzc093blB0
ci4gSG93ZXZlciwgaXQgbWFrZXMgaXQgbXVjaCBlYXNpZXIgdG8gd29yayB3aXRoIFBhc3NPd25Q
dHIKLSAgICAgICAgLy8gdGVtcG9yYXJpZXMsIGFuZCB3ZSBkb24ndCBoYXZlIGEgbmVlZCB0byB1
c2UgcmVhbCBjb25zdCBQYXNzT3duUHRycyBhbnl3YXkuCi0gICAgICAgIFBhc3NPd25QdHIoY29u
c3QgUGFzc093blB0ciYgbykgOiBtX3B0cihvLmxlYWtQdHIoKSkgeyB9Ci0gICAgICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFU+IFBhc3NPd25QdHIoY29uc3QgUGFzc093blB0cjxVPiYgbykgOiBtX3B0
cihvLmxlYWtQdHIoKSkgeyB9Ci0KLSAgICAgICAgflBhc3NPd25QdHIoKSB7IGRlbGV0ZU93bmVk
UHRyKG1fcHRyKTsgfQotCi0gICAgICAgIFB0clR5cGUgZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9w
dHI7IH0KLQotICAgICAgICBQdHJUeXBlIGxlYWtQdHIoKSBjb25zdCBXQVJOX1VOVVNFRF9SRVRV
Uk47Ci0KLSAgICAgICAgVmFsdWVUeXBlJiBvcGVyYXRvciooKSBjb25zdCB7IEFTU0VSVChtX3B0
cik7IHJldHVybiAqbV9wdHI7IH0KLSAgICAgICAgUHRyVHlwZSBvcGVyYXRvci0+KCkgY29uc3Qg
eyBBU1NFUlQobV9wdHIpOyByZXR1cm4gbV9wdHI7IH0KLQotICAgICAgICBib29sIG9wZXJhdG9y
ISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQotCi0gICAgICAgIC8vIFRoaXMgY29udmVyc2lv
biBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1dCBub3QgdG8g
b3RoZXIgaW50ZWdlciB0eXBlcy4KLSAgICAgICAgdHlwZWRlZiBQdHJUeXBlIFBhc3NPd25QdHI6
OipVbnNwZWNpZmllZEJvb2xUeXBlOwotICAgICAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xU
eXBlKCkgY29uc3QgeyByZXR1cm4gbV9wdHIgPyAmUGFzc093blB0cjo6bV9wdHIgOiAwOyB9Ci0K
LSAgICAgICAgUGFzc093blB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NPd25QdHImKSB7IENPTVBJ
TEVfQVNTRVJUKCFzaXplb2YoVCopLCBQYXNzT3duUHRyX3Nob3VsZF9uZXZlcl9iZV9hc3NpZ25l
ZF90byk7IHJldHVybiAqdGhpczsgfQotCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGZy
aWVuZCBQYXNzT3duUHRyPFU+IGFkb3B0UHRyKFUqKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAg
IGV4cGxpY2l0IFBhc3NPd25QdHIoUHRyVHlwZSBwdHIpIDogbV9wdHIocHRyKSB7IH0KLQotICAg
ICAgICAvLyBXZSBzaG91bGQgbmV2ZXIgaGF2ZSB0d28gT3duUHRycyBmb3IgdGhlIHNhbWUgdW5k
ZXJseWluZyBvYmplY3QgKG90aGVyd2lzZSB3ZSdsbCBnZXQKLSAgICAgICAgLy8gZG91YmxlLWRl
c3RydWN0aW9uKSwgc28gdGhlc2UgZXF1YWxpdHkgb3BlcmF0b3JzIHNob3VsZCBuZXZlciBiZSBu
ZWVkZWQuCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgb3BlcmF0b3I9PShjb25z
dCBQYXNzT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFUqKSwgT3duUHRyc19z
aG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NPd25QdHI8VT4mKSB7IENPTVBJ
TEVfQVNTRVJUKCFzaXplb2YoVSopLCBPd25QdHJzX3Nob3VsZF9uZXZlcl9iZV9lcXVhbCk7IHJl
dHVybiBmYWxzZTsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBib29sIG9wZXJhdG9y
PT0oY29uc3QgT3duUHRyPFU+JikgeyBDT01QSUxFX0FTU0VSVCghc2l6ZW9mKFUqKSwgT3duUHRy
c19zaG91bGRfbmV2ZXJfYmVfZXF1YWwpOyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNvbnN0IE93blB0cjxVPiYpIHsgQ09NUElM
RV9BU1NFUlQoIXNpemVvZihVKiksIE93blB0cnNfc2hvdWxkX25ldmVyX2JlX2VxdWFsKTsgcmV0
dXJuIGZhbHNlOyB9Ci0KLSAgICAgICAgbXV0YWJsZSBQdHJUeXBlIG1fcHRyOwotICAgIH07Ci0K
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdHlwZW5hbWUgUGFzc093blB0cjxUPjo6
UHRyVHlwZSBQYXNzT3duUHRyPFQ+OjpsZWFrUHRyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBh
c3NPd25QdHI8VD4mIGEsIGNvbnN0IFBhc3NPd25QdHI8VT4mIGIpIAotICAgIHsKLSAgICAgICAg
cmV0dXJuIGEuZ2V0KCkgPT0gYi5nZXQoKTsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzT3duUHRy
PFQ+JiBhLCBjb25zdCBPd25QdHI8VT4mIGIpIAotICAgIHsKLSAgICAgICAgcmV0dXJuIGEuZ2V0
KCkgPT0gYi5nZXQoKTsgCi0gICAgfQotICAgIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgT3duUHRyPFQ+JiBhLCBjb25z
dCBQYXNzT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIu
Z2V0KCk7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
PiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFBhc3NPd25QdHI8VD4mIGEsIFUqIGIpIAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgPT0gYjsgCi0gICAgfQotICAgIAotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oVCog
YSwgY29uc3QgUGFzc093blB0cjxVPiYgYikgCi0gICAgewotICAgICAgICByZXR1cm4gYSA9PSBi
LmdldCgpOyAKLSAgICB9Ci0gICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
VT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBQYXNzT3duUHRyPFQ+JiBhLCBjb25zdCBQ
YXNzT3duUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVybiBhLmdldCgpICE9IGIuZ2V0
KCk7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBp
bmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NPd25QdHI8VD4mIGEsIGNvbnN0IE93blB0
cjxVPiYgYikgCi0gICAgewotICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgpOyAKLSAg
ICB9Ci0gICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBPd25QdHI8VD4mIGEsIGNvbnN0IFBhc3NPd25QdHI8VT4mIGIp
IAotICAgIHsKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsgCi0gICAgfQotICAg
IAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJh
dG9yIT0oY29uc3QgUGFzc093blB0cjxUPiYgYSwgVSogYikKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhLmdldCgpICE9IGI7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFQqIGEsIGNvbnN0IFBhc3NPd25QdHI8
VT4mIGIpIAotICAgIHsKLSAgICAgICAgcmV0dXJuIGEgIT0gYi5nZXQoKTsgCi0gICAgfQotCi0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFBhc3NPd25QdHI8VD4gYWRvcHRQdHIoVCog
cHRyKQotICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19jb252ZXJ0aWJsZTxU
KiwgUmVmQ291bnRlZEJhc2UqPjo6dmFsdWUsICJEbyBub3QgdXNlIGFkb3B0UHRyIHdpdGggUmVm
Q291bnRlZCwgdXNlIGFkb3B0UmVmISIpOwotICAgICAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6Omlz
X2NvbnZlcnRpYmxlPFQqLCBUaHJlYWRTYWZlUmVmQ291bnRlZEJhc2UqPjo6dmFsdWUsICJEbyBu
b3QgdXNlIGFkb3B0UHRyIHdpdGggVGhyZWFkU2FmZVJlZkNvdW50ZWQsIHVzZSBhZG9wdFJlZiEi
KTsKLQotICAgICAgICByZXR1cm4gUGFzc093blB0cjxUPihwdHIpOwotICAgIH0KLQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBQYXNzT3duUHRyPFQ+IHN0YXRp
Y19wb2ludGVyX2Nhc3QoY29uc3QgUGFzc093blB0cjxVPiYgcCkgCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIoc3RhdGljX2Nhc3Q8VCo+KHAubGVha1B0cigpKSk7Ci0gICAgfQotCi0g
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc1NtYXJ0UHRyPFBhc3NPd25QdHI8VD4+
IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOwotICAgIH07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6OlBhc3NPd25QdHI7Ci11c2luZyBXVEY6OmFk
b3B0UHRyOwotdXNpbmcgV1RGOjpzdGF0aWNfcG9pbnRlcl9jYXN0OwotCi0jZW5kaWYgLy8gV1RG
X1Bhc3NPd25QdHJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU2l6ZUxpbWl0cy5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9TaXplTGltaXRzLmNwcAppbmRleCA3NjE0ZWMyNjMyODdhZGNiMDA3
NjU3MWJhMzc2ZmExZjA1YTRiMmJhLi5hODJkMGM0OGJjOTE0YWVlNzJlN2FmYWY1NDk1ZTYxNWQw
NzJiM2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TaXplTGltaXRzLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9TaXplTGltaXRzLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUg
PHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
QEAgLTU1LDcgKzU0LDYgQEAgc3RydWN0IFNhbWVTaXplQXNSZWZDb3VudGVkIHsKIH07CiAjZW5k
aWYKIAotc3RhdGljX2Fzc2VydChzaXplb2YoT3duUHRyPGludD4pID09IHNpemVvZihpbnQqKSwg
Ik93blB0ciBzaG91bGQgc3RheSBzbWFsbCEiKTsKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFBhc3NS
ZWZQdHI8UmVmQ291bnRlZDxpbnQ+PikgPT0gc2l6ZW9mKGludCopLCAiUGFzc1JlZlB0ciBzaG91
bGQgc3RheSBzbWFsbCEiKTsKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFJlZkNvdW50ZWQ8aW50Pikg
PT0gc2l6ZW9mKFNhbWVTaXplQXNSZWZDb3VudGVkKSwgIlJlZkNvdW50ZWQgc2hvdWxkIHN0YXkg
c21hbGwhIik7CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihSZWZQdHI8UmVmQ291bnRlZDxpbnQ+Pikg
PT0gc2l6ZW9mKGludCopLCAiUmVmUHRyIHNob3VsZCBzdGF5IHNtYWxsISIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3JU
cmFpdHMuaAppbmRleCBhODMwZTQ0YTBiYzkwOTdiM2E2NDhmNWVjODMyYmE4MDhjMmQ3NGYwLi45
NGRiOGNhYjdkOWZkMDY4ZGIxZmI0ODQ1MTQyYjFjMWUzNGNlZmQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9WZWN0b3JUcmFpdHMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3JUcmFp
dHMuaApAQCAtMjEsNyArMjEsNiBAQAogI2lmbmRlZiBXVEZfVmVjdG9yVHJhaXRzX2gKICNkZWZp
bmUgV1RGX1ZlY3RvclRyYWl0c19oCiAKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx1dGlsaXR5
PgpAQCAtNjYsMjIgKzY1LDEzIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgY29u
c3QgYm9vbCBjYW5Db21wYXJlV2l0aE1lbWNtcCA9IHRydWU7CiAgICAgfTsKIAotICAgIC8vIFdl
IGtub3cgT3duUHRyIGFuZCBSZWZQdHIgYXJlIHNpbXBsZSBlbm91Z2ggdGhhdCBpbml0aWFsaXpp
bmcgdG8gMCBhbmQgbW92aW5nIHdpdGggbWVtY3B5Ci0gICAgLy8gKGFuZCB0aGVuIG5vdCBkZXN0
cnVjdGluZyB0aGUgb3JpZ2luYWwpIHdpbGwgdG90YWxseSB3b3JrCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUD4KLSAgICBzdHJ1Y3QgVmVjdG9yVHJhaXRzPFJlZlB0cjxQPj4gOiBTaW1wbGVDbGFz
c1ZlY3RvclRyYWl0cyB7IH07CisgICAgLy8gV2Uga25vdyBzbWFydCBwb2ludGVycyBhcmUgc2lt
cGxlIGVub3VnaCB0aGF0IGluaXRpYWxpemluZyB0byAwIGFuZCBtb3Zpbmcgd2l0aCBtZW1jcHkK
KyAgICAvLyAoYW5kIHRoZW4gbm90IGRlc3RydWN0aW5nIHRoZSBvcmlnaW5hbCkgd2lsbCB3b3Jr
LgogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4KLSAgICBzdHJ1Y3QgVmVjdG9yVHJhaXRzPE93
blB0cjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7IH07Ci0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBQPgotICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8c3RkOjp1bmlxdWVfcHRyPFA+PiA6
IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFA+
Ci0gICAgc3RydWN0IFZlY3RvclRyYWl0czxSZWY8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFp
dHMgeyB9OwotCi0gICAgdGVtcGxhdGU8PgotICAgIHN0cnVjdCBWZWN0b3JUcmFpdHM8QXRvbWlj
U3RyaW5nPiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBQPiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPFJlZlB0cjxQPj4gOiBTaW1wbGVDbGFzc1ZlY3Rv
clRyYWl0cyB7IH07CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IFZlY3RvclRyYWl0
czxzdGQ6OnVuaXF1ZV9wdHI8UD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgeyB9OworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBWZWN0b3JUcmFpdHM8UmVmPFA+PiA6IFNpbXBs
ZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBWZWN0b3JUcmFp
dHM8QXRvbWljU3RyaW5nPiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZpcnN0LCB0eXBlbmFtZSBTZWNvbmQ+CiAgICAgc3RydWN0IFZlY3Rv
clRyYWl0czxzdGQ6OnBhaXI8Rmlyc3QsIFNlY29uZD4+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IGY3MWViNjA1MjBkNTA3YWZiOTNmNmFlZWI4YWE3NTNjZTViOWViNjUuLmNmN2Q3MTgz
YzZjZWNjZjFiMmE4OTc2NTM0MjY2M2ZhZTNlZTM1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlCkBAIC0xMTksNyArMTE5LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ludFJlY3RDYWlyby5jcHAKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJD
YWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5j
bWFrZQppbmRleCBiODFjOWQ1NzJiMzVlNmIzN2Q4M2VmNmY2MzA3NDA2MzJhYTkxNTI0Li5kOGI2
ZDY1ZThmYWE3OWQwOGMxMjhjMzdkZmY4OTE2ZjNmZGE1ZDllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdU
Sy5jbWFrZQpAQCAtNzgsNyArNzgsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW50UmVjdENhaXJvLmNwcAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0
ckNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XaW5DYWlyby5jbWFrZQppbmRleCA0NTkzZDFlYTllYjJkYTY0MmY2OGNmMWE0ODJhNzVhZGI5
NjY0NjVhLi43OGJiMDFhMGIwNDFmOTlmMTBhNzc0MjVhODIwNDM3YmFmMDhkZTA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKQEAgLTUwLDcgKzUwLDYgQEAgbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZm
ZXJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKLSAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QYXRoQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNh
aXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJv
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
aW5kZXggYWM4MTUzODM5N2QwNzFhODBmOThlZDM1MzcyNTkxNjI1MGY5YTQ0OS4uMzY5ZjUyYjhk
MWFlYTM3ZTJhNjQ5YmZjODYxYjVkMDFmNjJiZThkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC04NTgyLDE2ICs4NTgyLDYgQEAKICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
PC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xjYWlyb1xPd25QdHJDYWlyby5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xjYWlyb1xQYXRoQ2Fpcm8uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIwMTE4LDE2ICsyMDEwOCw2IEBACiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ3VzdG9t
QnVpbGRTdGVwPgotICAgIDxDdXN0b21CdWlsZFN0ZXAgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3Jh
cGhpY3NcY2Fpcm9cT3duUHRyQ2Fpcm8uaCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KICAgICA8Q3VzdG9tQnVpbGRTdGVwIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXFBsYXRmb3JtUGF0aENhaXJvLmgiPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4
IDk1YzMxZTgxNjlhNGQ2OWMxYzZkOTMxYmE2MzhkY2Q1NzA3YTNmYWEuLmEwMzE4MDg1YzVhODU1
MDYwM2Y3YzBlODIyYmM0NjE4MGY5ZTg1YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTE1ODQsOSArMTU4
NCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWly
b1xJbnRSZWN0Q2Fpcm8uY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcY2Fp
cm88L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXE93blB0ckNhaXJvLmNwcCI+Ci0gICAgICA8RmlsdGVy
PnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xQYXRoQ2Fpcm8u
Y3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm88L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTE1MzcxLDkgKzE1MzY4LDYgQEAKICAgICA8Q3VzdG9tQnVpbGRT
dGVwIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXEdyYXBoaWNzQ29udGV4dFBs
YXRmb3JtUHJpdmF0ZUNhaXJvLmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljc1xj
YWlybzwvRmlsdGVyPgogICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgotICAgIDxDdXN0b21CdWlsZFN0
ZXAgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cT3duUHRyQ2Fpcm8uaCI+Ci0g
ICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+Ci0gICAgPC9DdXN0
b21CdWlsZFN0ZXA+CiAgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xjYWlyb1xQbGF0Zm9ybVBhdGhDYWlyby5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZv
cm1cZ3JhcGhpY3NcY2Fpcm88L0ZpbHRlcj4KICAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCAxYjFhYzEz
ZWM2NTJhOGJiODE3YTI1OWQ1OGQwNDVmYzdlNDNhZWJjLi4yYWE5M2VjNmQ5YjJhNTQyMTg5Yzkx
ZTQ3MTU5ZmJhZTU3YTMwOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
cm9zc1RocmVhZENvcGllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwCkBAIC0xNzksMTggKzE3OSw0IEBAIENPTVBJTEVfQVNTRVJUKChzdGQ6
OmlzX3NhbWU8CiAgICAgICAgICAgICAgICAgICA+Ojp2YWx1ZSksCiAgICAgICAgICAgICAgICBS
YXdQb2ludGVyUmVmQ291bnRlZFRlc3QpOwogCi0vLyBWZXJpZnkgdGhhdCBQYXNzT3duUHRyIGdl
dHMgcGFzc2VkIHRocm91Z2guCi1DT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAotICAgICAg
ICAgICAgICAgICAgUGFzc093blB0cjxmbG9hdD4sCi0gICAgICAgICAgICAgICAgICBDcm9zc1Ro
cmVhZENvcGllcjxQYXNzT3duUHRyPGZsb2F0Pj46OlR5cGUKLSAgICAgICAgICAgICAgICAgID46
OnZhbHVlKSwKLSAgICAgICAgICAgICAgIFBhc3NPd25QdHJUZXN0KTsKLQotLy8gVmVyaWZ5IHRo
YXQgUGFzc093blB0ciBkb2VzIG5vdCBnZXQgcGFzc2VkIHRocm91Z2guCi1DT01QSUxFX0FTU0VS
VCgoc3RkOjppc19zYW1lPAotICAgICAgICAgICAgICAgICAgaW50LAotICAgICAgICAgICAgICAg
ICAgQ3Jvc3NUaHJlYWRDb3BpZXI8T3duUHRyPGZsb2F0Pj46OlR5cGUKLSAgICAgICAgICAgICAg
ICAgID46OnZhbHVlKSwKLSAgICAgICAgICAgICAgIE93blB0clRlc3QpOwotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1Ro
cmVhZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIu
aAppbmRleCA3MGY5MjQzMTdkMDhiOThmYzZiYTg2NGMzZmZkYTU4MzVmZGYwZjliLi5kNzUwNTlj
MTc2OGVkN2M5YzI1YzJhNzE4ZTcxMTQwOWEzZTc1ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTExMCwxNCArMTA5
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9CiAgICAgfTsKIAotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNl
LCBQYXNzT3duUHRyPFQ+PiB7Ci0gICAgICAgIHR5cGVkZWYgUGFzc093blB0cjxUPiBUeXBlOwot
ICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KFR5cGUgb3duUHRyKQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gb3duUHRyOwotICAgICAgICB9Ci0gICAgfTsKLQogICAgIHRlbXBsYXRlPD4g
c3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFVSTD4gewogICAgICAg
ICB0eXBlZGVmIFVSTCBUeXBlOwogICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFVSTCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKaW5k
ZXggZDI5NWQ0OTgwMzg1ZmJiNzVkNzgyZTdjYTMxMWI1YWMwZjdjZWZkOC4uMDIzYTc4MjBiNjVj
MDQwM2MwMTZkMWFkOWZlNjhkOTI0ODM4NzA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAi
U2Nyb2xsYmFyVGhlbWUuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xv
YmFsRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNw
cAppbmRleCA3NmQ0YjEyOGZlNmZlZWM1NWI2MGNlODg3MjAwNmRjOGI5YjcyNzIyLi42M2JjNWFi
ZjQ4ZWRhNjRmNGQzOGY3NzJlODVmNzJhODBhYzMwNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUg
IlRleHRDb2RlY0lDVS5oIgogI2luY2x1ZGUgIlRocmVhZFRpbWVycy5oIgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkU3BlY2lmaWMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL1dURlRocmVhZERhdGEuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEds
b2JhbERhdGEuaAppbmRleCAxODk2ZmMyOWE5MTNiZjAyNjgyNzY1ODEzY2Q0NTc2YTZlNjA5NzJm
Li41NzA2NjZiMjk5M2RkOWMxZGE2OGQyYjc0ZGI0MmQ2NDk1MDk2NDcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0YuaAppbmRl
eCBmZTk0ZDBjOGNhMzVkZWEwNjg2YmJjZjJhYzI4NWZmOTgxZjJkNmNmLi44MWVkMDUyMWEyZjNh
MDQzYmRjYTA3Yzg0NjNiMGEzZDNiZTdhNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNG
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIENE
TVNlc3Npb25BVkZvdW5kYXRpb25DRl9oCiAKICNpbmNsdWRlICJDRE1TZXNzaW9uLmgiCi0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKICNp
ZiBIQVZFKEFWRk9VTkRBVElPTl9MT0FERVJfREVMRUdBVEUpICYmIEVOQUJMRShFTkNSWVBURURf
TUVESUFfVjIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBjYmEyN2E1NGM2MDRmYmNjMGQ3Mzk0OTQ0
OWZkMWMxZGVjMGUyNTczLi5lNGFkZGNlNzQ3YjU1MjhlYjFlNDdjOGY0YTc1NGE4MGIzNGFkYTNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBwcml2YXRlOgogICAgIG11
dGFibGUgUmV0YWluUHRyPENBQ0ZMYXllclJlZj4gbV9jYVZpZGVvTGF5ZXI7CiAgICAgUmVmUHRy
PFBsYXRmb3JtQ0FMYXllcj4gbV92aWRlb0xheWVyV3JhcHBlcjsKIAotICAgIE93blB0cjxMYXll
ckNsaWVudD4gbV9sYXllckNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJDbGllbnQ+
IG1fbGF5ZXJDbGllbnQ7CiAgICAgQ09NUHRyPElEaXJlY3QzRERldmljZTlFeD4gbV9kM2REZXZp
Y2U7CiAKICAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGKiBtX2N1cnJlbnRUZXh0VHJhY2s7
CkBAIC0xNjIzLDcgKzE2MjMsNyBAQCB2b2lkIEFWRldyYXBwZXI6OnByb2Nlc3NOb3RpZmljYXRp
b24odm9pZCogY29udGV4dCkKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIE93blB0cjxOb3RpZmljYXRpb25DYWxsYmFja0RhdGE+IG5vdGlmaWNhdGlvbkRhdGEgPSBh
ZG9wdFB0cihyZWludGVycHJldF9jYXN0PE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0YSo+KGNvbnRl
eHQpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhPiBub3Rp
ZmljYXRpb25EYXRhIHsgc3RhdGljX2Nhc3Q8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRhKj4oY29u
dGV4dCkgfTsKIAogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtYXBMb2NrKCkpOwogICAgIEFWRldy
YXBwZXIqIHNlbGYgPSBhdmZXcmFwcGVyRm9yQ2FsbGJhY2tDb250ZXh0KG5vdGlmaWNhdGlvbkRh
dGEtPm1fY29udGV4dCk7CkBAIC0xNjczLDkgKzE2NzMsOSBAQCB2b2lkIEFWRldyYXBwZXI6Om5v
dGlmaWNhdGlvbkNhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiBvYnNlcnZl
ciwgQwogICAgIExPRyhNZWRpYSwgIkFWRldyYXBwZXI6Om5vdGlmaWNhdGlvbkNhbGxiYWNrKGlm
PSVkKSAlcyIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYnNlcnZlciksIG5vdGlmaWNh
dGlvbk5hbWUpOwogI2VuZGlmCiAKLSAgICBPd25QdHI8Tm90aWZpY2F0aW9uQ2FsbGJhY2tEYXRh
PiBub3RpZmljYXRpb25EYXRhID0gYWRvcHRQdHIobmV3IE5vdGlmaWNhdGlvbkNhbGxiYWNrRGF0
YShwcm9wZXJ0eU5hbWUsIG9ic2VydmVyKSk7CisgICAgYXV0byBub3RpZmljYXRpb25EYXRhID0g
c3RkOjptYWtlX3VuaXF1ZTxOb3RpZmljYXRpb25DYWxsYmFja0RhdGE+KHByb3BlcnR5TmFtZSwg
b2JzZXJ2ZXIpOwogCi0gICAgZGlzcGF0Y2hfYXN5bmNfZihkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBub3RpZmljYXRpb25EYXRhLmxlYWtQdHIoKSwgcHJvY2Vzc05vdGlmaWNhdGlvbik7Cisg
ICAgZGlzcGF0Y2hfYXN5bmNfZihkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBub3RpZmljYXRp
b25EYXRhLnJlbGVhc2UoKSwgcHJvY2Vzc05vdGlmaWNhdGlvbik7CiB9CiAKIHZvaWQgQVZGV3Jh
cHBlcjo6bG9hZFBsYXlhYmxlQ29tcGxldGlvbkNhbGxiYWNrKEFWQ0ZBc3NldFJlZiwgdm9pZCog
Y29udGV4dCkKQEAgLTE5MTcsNyArMTkxNyw3IEBAIFBsYXRmb3JtTGF5ZXIqIEFWRldyYXBwZXI6
OnBsYXRmb3JtTGF5ZXIoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIENyZWF0ZSBhIFBs
YXRmb3JtQ0FMYXllciBzbyB3ZSBjYW4gcmVzaXplIHRoZSB2aWRlbyBsYXllciB0byBtYXRjaCB0
aGUgZWxlbWVudCBzaXplLgotICAgIG1fbGF5ZXJDbGllbnQgPSBhZG9wdFB0cihuZXcgTGF5ZXJD
bGllbnQodGhpcykpOworICAgIG1fbGF5ZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPExheWVy
Q2xpZW50Pih0aGlzKTsKICAgICBpZiAoIW1fbGF5ZXJDbGllbnQpCiAgICAgICAgIHJldHVybiAw
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9DYWlyb1V0aWxpdGllcy5jcHAKaW5kZXggMmVhNDJmMWMyOTYzODQ4NDRhNGNiYTFmYmZlNTlj
MTJmZGI5YzBiMS4uYmU5NzAxMGI4NmYzMDhhMWViZWFjNzEzMGUxZTNhMGI1ZGRiYjNmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGls
aXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Nh
aXJvVXRpbGl0aWVzLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkZsb2F0UG9pbnQu
aCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVk
ZSAiT3duUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJQYXRoLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Q
YXRoQ2Fpcm8uaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgpAQCAtNzMsOCArNzIsOSBAQCB2
b2lkIHNldFNvdXJjZVJHQkFGcm9tQ29sb3IoY2Fpcm9fdCogY29udGV4dCwgY29uc3QgQ29sb3Im
IGNvbG9yKQogCiB2b2lkIGFwcGVuZFBhdGhUb0NhaXJvQ29udGV4dChjYWlyb190KiB0bywgY2Fp
cm9fdCogZnJvbSkKIHsKLSAgICBPd25QdHI8Y2Fpcm9fcGF0aF90PiBjYWlyb1BhdGggPSBhZG9w
dFB0cihjYWlyb19jb3B5X3BhdGgoZnJvbSkpOwotICAgIGNhaXJvX2FwcGVuZF9wYXRoKHRvLCBj
YWlyb1BhdGguZ2V0KCkpOworICAgIGF1dG8gY2Fpcm9QYXRoID0gY2Fpcm9fY29weV9wYXRoKGZy
b20pOworICAgIGNhaXJvX2FwcGVuZF9wYXRoKHRvLCBjYWlyb1BhdGgpOworICAgIGNhaXJvX3Bh
dGhfZGVzdHJveShjYWlyb1BhdGgpOwogfQogCiB2b2lkIHNldFBhdGhPbkNhaXJvQ29udGV4dChj
YWlyb190KiB0bywgY2Fpcm9fdCogZnJvbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKaW5kZXggZDIy
YzRjYWUyYjE5NmQ3N2U3ZmYzYjRkMjlmNzkwN2YxYzNhODhmMi4uYTMzNWIwNWNhYjVlOGU5YjA3
NzE5ZWYzNzE5MjQ1ODdlYTI4MGQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKQEAgLTQzLDcg
KzQzLDYgQEAKICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5l
cy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvVHlwZWRBcnJheUlubGluZXMuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9CYXNlNjQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTExOSw3
ICsxMTgsNyBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENvbAogCiAgICAgUmVmUHRyPGNhaXJvX3Q+
IGNyID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKG1fZGF0YS5tX3N1cmZhY2UuZ2V0KCkpKTsKICAg
ICBtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQuc2V0Q3IoY3IuZ2V0KCkpOwotICAgIG1fZGF0YS5t
X2NvbnRleHQgPSBhZG9wdFB0cihuZXcgR3JhcGhpY3NDb250ZXh0KCZtX2RhdGEubV9wbGF0Zm9y
bUNvbnRleHQpKTsKKyAgICBtX2RhdGEubV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxHcmFw
aGljc0NvbnRleHQ+KCZtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQpOwogICAgIHN1Y2Nlc3MgPSB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckRhdGFDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJEYXRhQ2Fpcm8uaAppbmRleCBjYjg5Yzc5MGJjOTU2OWU4
NmZlZDk3ODZiOTUxOWYwNTcwODQ1OTRjLi5kNjJmNDcwNTE1ZTNlODJkY2E5ZDk3NjM0NDdhNjdl
MmZjNGQwNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckRhdGFDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmgKQEAgLTUwLDcgKzUwLDcgQEAg
cHVibGljOgogCiAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwogICAgIFBs
YXRmb3JtQ29udGV4dENhaXJvIG1fcGxhdGZvcm1Db250ZXh0OwotICAgIE93blB0cjxHcmFwaGlj
c0NvbnRleHQ+IG1fY29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0
PiBtX2NvbnRleHQ7CiAgICAgSW50U2l6ZSBtX3NpemU7CiAKICNpZiBFTkFCTEUoQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
MTI4YWZiNmQxN2Q3YjdkM2U3ZTQ1NDIxYzdjZGJkYTAyZTkzMWE4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29sbGFib3JhIEx0ZC4KLSAqCi0gKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQotICogIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxIFVTQQotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJP
d25QdHJDYWlyby5oIgotCi0jaWYgVVNFKENBSVJPKQotCi0jaWYgVVNFKEZSRUVUWVBFKQotI2lu
Y2x1ZGUgPGNhaXJvLWZ0Lmg+Ci0jaW5jbHVkZSA8Zm9udGNvbmZpZy9mY2ZyZWV0eXBlLmg+Ci0j
ZW5kaWYKLQotI2luY2x1ZGUgPGNhaXJvLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi0jaWYgVVNF
KEZSRUVUWVBFKQotdGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxGY09iamVjdFNldD4o
RmNPYmplY3RTZXQqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBGY09iamVjdFNldERl
c3Ryb3kocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxGY0ZvbnRT
ZXQ+KEZjRm9udFNldCogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIEZjRm9udFNldERl
c3Ryb3kocHRyKTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotI2VuZGlmIC8v
IFVTRShDQUlSTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL093blB0ckNhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9Pd25QdHJDYWlyby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjYwMTNi
YmE1OGViMmVhYWQ0OTc5NDI4N2MxMTQyNjAxN2ZlODk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL093blB0ckNhaXJvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIENvbGxhYm9yYSBMdGQuCi0gKgotICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
Ci0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLSAqICBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSBVU0EKLSAqLwotCi0jaWZuZGVmIE93blB0ckNhaXJvX2gKLSNkZWZpbmUgT3duUHRyQ2Fp
cm9faAotCi0jaWYgVVNFKENBSVJPKQotCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLSNpZiBVU0UoRlJFRVRZUEUpCi10eXBlZGVmIHN0cnVj
dCBfRmNPYmplY3RTZXQgRmNPYmplY3RTZXQ7Ci10eXBlZGVmIHN0cnVjdCBfRmNGb250U2V0IEZj
Rm9udFNldDsKLSNlbmRpZgotCi10eXBlZGVmIHN0cnVjdCBjYWlyb19wYXRoIGNhaXJvX3BhdGhf
dDsKLQotbmFtZXNwYWNlIFdURiB7Ci0KLSNpZiBVU0UoRlJFRVRZUEUpCi10ZW1wbGF0ZSA8PiB2
b2lkIGRlbGV0ZU93bmVkUHRyPEZjT2JqZWN0U2V0PihGY09iamVjdFNldCopOwotdGVtcGxhdGUg
PD4gdm9pZCBkZWxldGVPd25lZFB0cjxGY0ZvbnRTZXQ+KEZjRm9udFNldCopOwotI2VuZGlmCi0K
LX0gLy8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYgLy8gVVNFKENBSVJPKQotCi0jZW5kaWYgLy8g
T3duUHRyQ2Fpcm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vUGF0aENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1BhdGhDYWlyby5jcHAKaW5kZXggZGNjMmVmMTYwYjA4NzNhYmRmNjI5Mzk1Y2MxODQx
NDBlMDFlNTNkYy4uNTQ2YWRhNmNjMmIxYmJkMmVlOTVmMDlmNTllYTg2MWZiNjU0ZDA4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fp
cm8uY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5j
bHVkZSAiT3duUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVBhdGhDYWlyby5oIgogI2lu
Y2x1ZGUgIlN0cm9rZVN0eWxlQXBwbGllci5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CkBAIC01OSw4
ICs1OCw5IEBAIFBhdGg6OlBhdGgoY29uc3QgUGF0aCYgb3RoZXIpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGNhaXJvX3QqIGNyID0gZW5zdXJlUGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKTsKLSAg
ICBPd25QdHI8Y2Fpcm9fcGF0aF90PiBwYXRoQ29weSA9IGFkb3B0UHRyKGNhaXJvX2NvcHlfcGF0
aChvdGhlci5wbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpKSk7Ci0gICAgY2Fpcm9fYXBwZW5kX3Bh
dGgoY3IsIHBhdGhDb3B5LmdldCgpKTsKKyAgICBhdXRvIHBhdGhDb3B5ID0gY2Fpcm9fY29weV9w
YXRoKG90aGVyLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCkpOworICAgIGNhaXJvX2FwcGVuZF9w
YXRoKGNyLCBwYXRoQ29weSk7CisgICAgY2Fpcm9fcGF0aF9kZXN0cm95KHBhdGhDb3B5KTsKIH0K
IAogUGxhdGZvcm1QYXRoUHRyIFBhdGg6OmVuc3VyZVBsYXRmb3JtUGF0aCgpCkBAIC04Myw4ICs4
Myw5IEBAIFBhdGgmIFBhdGg6Om9wZXJhdG9yPShjb25zdCBQYXRoJiBvdGhlcikKICAgICB9IGVs
c2UgewogICAgICAgICBjbGVhcigpOwogICAgICAgICBjYWlyb190KiBjciA9IGVuc3VyZVBsYXRm
b3JtUGF0aCgpLT5jb250ZXh0KCk7Ci0gICAgICAgIE93blB0cjxjYWlyb19wYXRoX3Q+IHBhdGhD
b3B5ID0gYWRvcHRQdHIoY2Fpcm9fY29weV9wYXRoKG90aGVyLnBsYXRmb3JtUGF0aCgpLT5jb250
ZXh0KCkpKTsKLSAgICAgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY3IsIHBhdGhDb3B5LmdldCgpKTsK
KyAgICAgICAgYXV0byBwYXRoQ29weSA9IGNhaXJvX2NvcHlfcGF0aChvdGhlci5wbGF0Zm9ybVBh
dGgoKS0+Y29udGV4dCgpKTsKKyAgICAgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY3IsIHBhdGhDb3B5
KTsKKyAgICAgICAgY2Fpcm9fcGF0aF9kZXN0cm95KHBhdGhDb3B5KTsKICAgICB9CiAKICAgICBy
ZXR1cm4gKnRoaXM7CkBAIC0zMjMsMTEgKzMyNCwxMCBAQCB2b2lkIFBhdGg6OmFkZFBhdGgoY29u
c3QgUGF0aCYgcGF0aCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pCiAgICAgY2Fp
cm9fdCogY3IgPSBwYXRoLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCk7CiAgICAgY2Fpcm9fc2F2
ZShjcik7CiAgICAgY2Fpcm9fdHJhbnNmb3JtKGNyLCAmbWF0cml4KTsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8Y2Fpcm9fcGF0aF90LCB2b2lkKCopKGNhaXJvX3BhdGhfdCopPiBwYXRoQ29weShjYWly
b19jb3B5X3BhdGgoY3IpLCBbXShjYWlyb19wYXRoX3QqIHBhdGgpIHsKLSAgICAgICAgY2Fpcm9f
cGF0aF9kZXN0cm95KHBhdGgpOwotICAgIH0pOworICAgIGF1dG8gcGF0aENvcHkgPSBjYWlyb19j
b3B5X3BhdGgoY3IpOwogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwotICAgIGNhaXJvX2FwcGVuZF9w
YXRoKGVuc3VyZVBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCksIHBhdGhDb3B5LmdldCgpKTsKKyAg
ICBjYWlyb19hcHBlbmRfcGF0aChlbnN1cmVQbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpLCBwYXRo
Q29weSk7CisgICAgY2Fpcm9fcGF0aF9kZXN0cm95KHBhdGhDb3B5KTsKIH0KIAogdm9pZCBQYXRo
OjpjbG9zZVN1YnBhdGgoKQpAQCAtMzk2LDcgKzM5Niw3IEBAIHZvaWQgUGF0aDo6YXBwbHkodm9p
ZCogaW5mbywgUGF0aEFwcGxpZXJGdW5jdGlvbiBmdW5jdGlvbikgY29uc3QKICAgICAgICAgcmV0
dXJuOwogCiAgICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpOwotICAg
IE93blB0cjxjYWlyb19wYXRoX3Q+IHBhdGhDb3B5ID0gYWRvcHRQdHIoY2Fpcm9fY29weV9wYXRo
KGNyKSk7CisgICAgYXV0byBwYXRoQ29weSA9IGNhaXJvX2NvcHlfcGF0aChjcik7CiAgICAgY2Fp
cm9fcGF0aF9kYXRhX3QqIGRhdGE7CiAgICAgUGF0aEVsZW1lbnQgcGVsZW1lbnQ7CiAgICAgRmxv
YXRQb2ludCBwb2ludHNbM107CkBAIC00MjgsNiArNDI4LDcgQEAgdm9pZCBQYXRoOjphcHBseSh2
b2lkKiBpbmZvLCBQYXRoQXBwbGllckZ1bmN0aW9uIGZ1bmN0aW9uKSBjb25zdAogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgY2Fpcm9fcGF0aF9kZXN0cm95KHBhdGhD
b3B5KTsKIH0KIAogdm9pZCBQYXRoOjp0cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0
cmFucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcAppbmRleCBiMTBjYTBiMGFmNWIxZmIw
OWYxZjMzNGIwNzI4MmJjMDM1ZWJkZmM2Li4wY2QyNWM5Mzc2MDY0NTEyZTkxNzY0NjY3NGVjZWIy
ZmJiYTA4NzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCkBAIC0zMyw3ICszMyw2
IEBACiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIk93blB0ckNhaXJvLmgiCiAj
aW5jbHVkZSAiUGF0dGVybi5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CiAKQEAgLTMwNiw3ICszMDUs
NyBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcoY29u
c3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YQogICAgIEFTU0VSVChzdGF0ZS5maWxsUGF0dGVy
bik7CiAKICAgICAvLyBIb2xkIGN1cnJlbnQgY2Fpcm8gcGF0aCBpbiBhIHZhcmlhYmxlIGZvciBy
ZXN0b3JpbmcgaXQgYWZ0ZXIgY29uZmlndXJpbmcgdGhlIHBhdHRlcm4gY2xpcCByZWN0YW5nbGUu
Ci0gICAgT3duUHRyPGNhaXJvX3BhdGhfdD4gY3VycmVudFBhdGggPSBhZG9wdFB0cihjYWlyb19j
b3B5X3BhdGgobV9jci5nZXQoKSkpOworICAgIGF1dG8gY3VycmVudFBhdGggPSBjYWlyb19jb3B5
X3BhdGgobV9jci5nZXQoKSk7CiAgICAgY2Fpcm9fbmV3X3BhdGgobV9jci5nZXQoKSk7CiAKICAg
ICAvLyBJbml0aWFsaXplIGNsaXBwaW5nIGV4dGVudCBmcm9tIGN1cnJlbnQgY2Fpcm8gY2xpcCBl
eHRlbnRzLCB0aGVuIHNocmluayBpZiBuZWVkZWQgYWNjb3JkaW5nIHRvIHBhdHRlcm4uCkBAIC0z
MzcsNyArMzM2LDggQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6Y2xpcEZvclBhdHRlcm5G
aWxsaW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGEKICAgICB9CiAKICAgICAvLyBS
ZXN0b3JpbmcgY2Fpcm8gcGF0aC4KLSAgICBjYWlyb19hcHBlbmRfcGF0aChtX2NyLmdldCgpLCBj
dXJyZW50UGF0aC5nZXQoKSk7CisgICAgY2Fpcm9fYXBwZW5kX3BhdGgobV9jci5nZXQoKSwgY3Vy
cmVudFBhdGgpOworICAgIGNhaXJvX3BhdGhfZGVzdHJveShjdXJyZW50UGF0aCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAppbmRleCBl
NDgzODQ4NWQ3YWMwNWMwMjYzYWI2NGFjMGVmOGZlMGViMWYxMmVkLi5iMjMyNzE2NzhkYzFlODUy
MmZkZWExYzM1YzBlOTljOGMxNjU5ODU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3Bw
CkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAKICNpbmNsdWRlICJG
b250LmgiCi0jaW5jbHVkZSAiT3duUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5o
IgogI2luY2x1ZGUgIlVURjE2VUNoYXIzMkl0ZXJhdG9yLmgiCiAjaW5jbHVkZSA8Y2Fpcm8tZnQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENv
bnRleHRHTFguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29u
dGV4dEdMWC5jcHAKaW5kZXggNzg5MGQ4ZGE4MzI2OWMzMDU1Y2FjYTQzNjZkZWFjYjMyYmQxYTM2
NS4uNzljNGExMDEzOTI1YjRlY2Y1ZTExOWI0NDJlY2EzYmUyZmMzZjM5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAK
QEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2luY2x1ZGUgPEdM
L2dseC5oPgogI2luY2x1ZGUgPGNhaXJvLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiAj
aWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICNpbmNsdWRlIDxjYWlyby1nbC5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTFN1cmZhY2UuY3BwCmluZGV4IGVhZTMwY2RmNDVjODQ3MGZiODAwMDhhZjY2NWNj
MjRjZGY4OGM3YzcuLjZjNjk1MDJmY2QwMTJhMDBkYjQ2ZmRlZjRiNWViYWI4Yjg2MTkzNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9F
R0xTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCBFR0xPZmZTY3JlZW5T
dXJmYWNlOjpFR0xPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VBdHRy
aWJ1dGVzKQogICAgIGlmIChtX3NoYXJlZERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fY29uZmlnU2VsZWN0b3IgPSBhZG9wdFB0cihuZXcgRUdMQ29u
ZmlnU2VsZWN0b3Ioc3VyZmFjZUF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbmZpZ1NlbGVjdG9yID0g
c3RkOjptYWtlX3VuaXF1ZTxFR0xDb25maWdTZWxlY3Rvcj4oc3VyZmFjZUF0dHJpYnV0ZXMpOwog
fQogCiBFR0xPZmZTY3JlZW5TdXJmYWNlOjp+RUdMT2ZmU2NyZWVuU3VyZmFjZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29u
ZmlnU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhDb25maWdTZWxlY3Rvci5oCmluZGV4IDhhNjEwOWEyZmM0ZTEwNTNmMmZlYWQxYzhl
ZjE5YWNlYjA2ZjM4MWQuLjVjZGVkZTUwNTVlMzI5MjNhMTRlMGUxYjlmNmZmMjlmNDU1M2JmMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9HTFhDb25maWdTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oCkBAIC0xNDAsMTQgKzE0MCwxMyBA
QCBwcml2YXRlOgogICAgIEdMWEZCQ29uZmlnIGZpbmRNYXRjaGluZ0NvbmZpZyhjb25zdCBpbnQg
YXR0cmlidXRlc1tdLCBpbnQgZGVwdGggPSAzMikKICAgICB7CiAgICAgICAgIGludCBudW1BdmFp
bGFibGVDb25maWdzOwotICAgICAgICBPd25QdHJYMTE8R0xYRkJDb25maWc+IHRlbXAoZ2xYQ2hv
b3NlRkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIERlZmF1bHRTY3JlZW4oWDEx
SGVscGVyOjpuYXRpdmVEaXNwbGF5KCkpLCBhdHRyaWJ1dGVzLCAmbnVtQXZhaWxhYmxlQ29uZmln
cykpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R0xYRkJDb25maWdbXSwgWDExRGVsZXRlcj4g
dGVtcChnbFhDaG9vc2VGQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgRGVmYXVs
dFNjcmVlbihYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSksIGF0dHJpYnV0ZXMsICZudW1BdmFp
bGFibGVDb25maWdzKSk7CiAKICAgICAgICAgaWYgKCFudW1BdmFpbGFibGVDb25maWdzIHx8ICF0
ZW1wLmdldCgpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgT3duUHRyWDExPFhW
aXN1YWxJbmZvPiBzY29wZWRWaXN1YWxJbmZvOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8
IG51bUF2YWlsYWJsZUNvbmZpZ3M7ICsraSkgewotICAgICAgICAgICAgc2NvcGVkVmlzdWFsSW5m
byA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwg
dGVtcFtpXSk7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURl
bGV0ZXI+IHNjb3BlZFZpc3VhbEluZm8geyBnbFhHZXRWaXN1YWxGcm9tRkJDb25maWcoWDExSGVs
cGVyOjpuYXRpdmVEaXNwbGF5KCksIHRlbXBbaV0pIH07CiAgICAgICAgICAgICBpZiAoIXNjb3Bl
ZFZpc3VhbEluZm8uZ2V0KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTE2OSw3
ICsxNjgsNyBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgLy8gRGlkIG5vdCBmaW5k
IGFueSB2aXN1YWwgc3VwcG9ydGluZyBhbHBoYSwgc2VsZWN0IHRoZSBmaXJzdCBhdmFpbGFibGUg
Y29uZmlnLgotICAgICAgICBzY29wZWRWaXN1YWxJbmZvID0gZ2xYR2V0VmlzdWFsRnJvbUZCQ29u
ZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wWzBdKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFEZWxldGVyPiBzY29wZWRWaXN1YWxJbmZvIHsgZ2xY
R2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCB0ZW1wWzBd
KSB9OwogCiAgICAgICAgIGlmICgobV9hdHRyaWJ1dGVzICYgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1
cHBvcnRBbHBoYSkgJiYgKHNjb3BlZFZpc3VhbEluZm8tPmRlcHRoICE9IDMyKSkKICAgICAgICAg
ICAgIG1fYXR0cmlidXRlcyAmPSB+R0xQbGF0Zm9ybVN1cmZhY2U6OlN1cHBvcnRBbHBoYTsKQEAg
LTE4MCwxNCArMTc5LDEzIEBAIHByaXZhdGU6CiAgICAgR0xYRkJDb25maWcgZmluZE1hdGNoaW5n
Q29uZmlnV2l0aFZpc3VhbElkKGNvbnN0IGludCBhdHRyaWJ1dGVzW10sIGludCBkZXB0aCwgVmlz
dWFsSUQgaWQpCiAgICAgewogICAgICAgICBpbnQgbnVtQXZhaWxhYmxlQ29uZmlnczsKLSAgICAg
ICAgT3duUHRyWDExPEdMWEZCQ29uZmlnPiB0ZW1wKGdsWENob29zZUZCQ29uZmlnKFgxMUhlbHBl
cjo6bmF0aXZlRGlzcGxheSgpLCBEZWZhdWx0U2NyZWVuKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxh
eSgpKSwgYXR0cmlidXRlcywgJm51bUF2YWlsYWJsZUNvbmZpZ3MpKTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPEdMWEZCQ29uZmlnW10sIFgxMURlbGV0ZXI+IHRlbXAoZ2xYQ2hvb3NlRkJDb25m
aWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIERlZmF1bHRTY3JlZW4oWDExSGVscGVyOjpu
YXRpdmVEaXNwbGF5KCkpLCBhdHRyaWJ1dGVzLCAmbnVtQXZhaWxhYmxlQ29uZmlncykpOwogCiAg
ICAgICAgIGlmICghbnVtQXZhaWxhYmxlQ29uZmlncyB8fCAhdGVtcC5nZXQoKSkKICAgICAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgICAgIE93blB0clgxMTxYVmlzdWFsSW5mbz4gc2NvcGVkVmlz
dWFsSW5mbzsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1BdmFpbGFibGVDb25maWdz
OyArK2kpIHsKLSAgICAgICAgICAgIHNjb3BlZFZpc3VhbEluZm8gPSBnbFhHZXRWaXN1YWxGcm9t
RkJDb25maWcoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCksIHRlbXBbaV0pOworICAgICAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFEZWxldGVyPiBzY29wZWRWaXN1YWxJ
bmZvIHsgZ2xYR2V0VmlzdWFsRnJvbUZCQ29uZmlnKFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgp
LCB0ZW1wW2ldKSB9OwogICAgICAgICAgICAgaWYgKCFzY29wZWRWaXN1YWxJbmZvLmdldCgpKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKaW5kZXgg
MmIzNTMwMmU3ZThlYWEyNTUwMjRkMTVjNTIwZDZhOTE4NzcwYTdiYS4uMTZhOGUwMzFmMzEyNjQw
YjMxYjQyNWQ2Y2M0OTUyYjQzNDlkMGZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcApAQCAt
NjcsNyArNjcsNyBAQCBHTFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKGNv
bnN0IEludFNpemUmIHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVzCiAgICAgbV9zaGFyZWREaXNwbGF5
ID0gWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCk7CiAgICAgYXR0cmlidXRlcyB8PSBHTFBsYXRm
b3JtU3VyZmFjZTo6RG91YmxlQnVmZmVyZWQ7CiAgICAgbV9jb25maWdTZWxlY3RvciA9IHN0ZDo6
bWFrZV91bmlxdWU8R0xYQ29uZmlnU2VsZWN0b3I+KGF0dHJpYnV0ZXMpOwotICAgIE93blB0clgx
MTxYVmlzdWFsSW5mbz4gdmlzSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZvKG1fY29u
ZmlnU2VsZWN0b3ItPnN1cmZhY2VDb250ZXh0Q29uZmlnKCkpKTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8WFZpc3VhbEluZm8sIFgxMURlbGV0ZXI+IHZpc0luZm8obV9jb25maWdTZWxlY3Rvci0+dmlz
dWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT5zdXJmYWNlQ29udGV4dENvbmZpZygpKSk7CiAKICAg
ICBpZiAoIXZpc0luZm8uZ2V0KCkpIHsKICAgICAgICAgZGVzdHJveSgpOwpAQCAtMTQ1LDcgKzE0
NSw3IEBAIHZvaWQgR0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZShTdXJmYWNlQXR0cmli
dXRlcyBhdHRyaWJ1dGVzKQogCiAgICAgbV9jb25maWdTZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlx
dWU8R0xYQ29uZmlnU2VsZWN0b3I+KGF0dHJpYnV0ZXMpOwogCi0gICAgT3duUHRyWDExPFhWaXN1
YWxJbmZvPiB2aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnZpc3VhbEluZm8obV9jb25maWdT
ZWxlY3Rvci0+cGl4bWFwQ29udGV4dENvbmZpZygpKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFhW
aXN1YWxJbmZvLCBYMTFEZWxldGVyPiB2aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnZpc3Vh
bEluZm8obV9jb25maWdTZWxlY3Rvci0+cGl4bWFwQ29udGV4dENvbmZpZygpKSk7CiAgICAgWDEx
SGVscGVyOjpjcmVhdGVQaXhtYXAoJm1fcGl4bWFwLCAqdmlzdWFsSW5mby5nZXQoKSk7CiAKICAg
ICBpZiAoIW1fcGl4bWFwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvT3duUHRyWDExLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvT3duUHRyWDExLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI4Nzc2MTBhYmVlMmVlN2M0MWYwMTY2NWM0YjkwZGQ1NmQzYWVkYjUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L093blB0clgxMS5oCisrKyAvZGV2L251bGwK
QEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBPd25QdHJYMTFf
aAotI2RlZmluZSBPd25QdHJYMTFfaAotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQ+Ci1zdHJ1Y3QgT3duUHRyWDExIHsKLQotICAgIE93blB0clgxMSgpIDogbV94
UmVzb3VyY2UoMCkgeyB9Ci0gICAgT3duUHRyWDExKFQqIHhSZXNvdXJjZSkgOiBtX3hSZXNvdXJj
ZSh4UmVzb3VyY2UpIHsgfQotCi0gICAgfk93blB0clgxMSgpCi0gICAgewotICAgICAgICBpZiAo
bV94UmVzb3VyY2UpCi0gICAgICAgICAgICBYRnJlZShtX3hSZXNvdXJjZSk7Ci0gICAgfQotCi0g
ICAgT3duUHRyWDExJiBvcGVyYXRvcj0oVCogeFJlc291cmNlKQotICAgIHsKLSAgICAgICAgaWYg
KG1feFJlc291cmNlKQotICAgICAgICAgICAgWEZyZWUobV94UmVzb3VyY2UpOwotCi0gICAgICAg
IG1feFJlc291cmNlID0geFJlc291cmNlOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQot
Ci0gICAgb3BlcmF0b3IgVCooKSBjb25zdCB7IHJldHVybiBtX3hSZXNvdXJjZTsgfQotICAgIFQq
IG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBtX3hSZXNvdXJjZTsgfQotICAgIFQqIGdldCgp
IGNvbnN0IHsgcmV0dXJuIG1feFJlc291cmNlOyB9Ci0KLXByaXZhdGU6Ci0gICAgT3duUHRyWDEx
KGNvbnN0IE93blB0clgxMSYpOwotICAgIE93blB0clgxMSYgb3BlcmF0b3I9KGNvbnN0IE93blB0
clgxMSYpOwotICAgIHN0YXRpYyB2b2lkKiBvcGVyYXRvciBuZXcgKHNpemVfdCk7Ci0gICAgc3Rh
dGljIHZvaWQgb3BlcmF0b3IgZGVsZXRlICh2b2lkKik7Ci0gICAgVCogbV94UmVzb3VyY2U7Ci19
OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcAppbmRleCA0MDlhNDdmNDAxZjIz
NjU2YTM3NDRhYjNhYzRkZjE4ZjUyYWJlNzQ5Li40YmU2MmJiNGY4MjIwZDg4MmEzOTMwMjAxYjE3
ZTNjYTRiZWIxMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExSGVscGVyLmNwcApAQCAtMjQwLDcgKzI0MCw3IEBA
IHZvaWQgWDExSGVscGVyOjpjcmVhdGVPZmZTY3JlZW5XaW5kb3codWludDMyX3QqIGhhbmRsZUlk
LCBjb25zdCBFR0xpbnQgaWQsIGJvb2wKICAgICBtZW1zZXQoJnZpc3VhbEluZm9UZW1wbGF0ZSwg
MCwgc2l6ZW9mKFhWaXN1YWxJbmZvKSk7CiAgICAgdmlzdWFsSW5mb1RlbXBsYXRlLnZpc3VhbGlk
ID0gdmlzdWFsSWQ7CiAgICAgaW50IG1hdGNoaW5nQ291bnQgPSAwOwotICAgIE93blB0clgxMTxY
VmlzdWFsSW5mbz4gbWF0Y2hpbmdWaXN1YWxzKFhHZXRWaXN1YWxJbmZvKG5hdGl2ZURpc3BsYXko
KSwgVmlzdWFsSURNYXNrLCAmdmlzdWFsSW5mb1RlbXBsYXRlLCAmbWF0Y2hpbmdDb3VudCkpOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRlcj4gbWF0Y2hpbmdWaXN1
YWxzKFhHZXRWaXN1YWxJbmZvKG5hdGl2ZURpc3BsYXkoKSwgVmlzdWFsSURNYXNrLCAmdmlzdWFs
SW5mb1RlbXBsYXRlLCAmbWF0Y2hpbmdDb3VudCkpOwogICAgIFhWaXN1YWxJbmZvKiBmb3VuZFZp
c3VhbCA9IDA7CiAKICAgICBpZiAobWF0Y2hpbmdWaXN1YWxzKSB7CkBAIC0yNzcsNyArMjc3LDcg
QEAgdm9pZCBYMTFIZWxwZXI6OmNyZWF0ZVBpeG1hcChQaXhtYXAqIGhhbmRsZUlkLCBjb25zdCBF
R0xpbnQgaWQsIGJvb2wgaGFzQWxwaGEsIGMKICAgICBtZW1zZXQoJnZpc3VhbEluZm9UZW1wbGF0
ZSwgMCwgc2l6ZW9mKFhWaXN1YWxJbmZvKSk7CiAgICAgdmlzdWFsSW5mb1RlbXBsYXRlLnZpc3Vh
bGlkID0gdmlzdWFsSWQ7CiAgICAgaW50IG1hdGNoaW5nQ291bnQgPSAwOwotICAgIE93blB0clgx
MTxYVmlzdWFsSW5mbz4gbWF0Y2hpbmdWaXN1YWxzKFhHZXRWaXN1YWxJbmZvKG5hdGl2ZURpc3Bs
YXkoKSwgVmlzdWFsSURNYXNrLCAmdmlzdWFsSW5mb1RlbXBsYXRlLCAmbWF0Y2hpbmdDb3VudCkp
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRlcj4gbWF0Y2hpbmdW
aXN1YWxzKFhHZXRWaXN1YWxJbmZvKG5hdGl2ZURpc3BsYXkoKSwgVmlzdWFsSURNYXNrLCAmdmlz
dWFsSW5mb1RlbXBsYXRlLCAmbWF0Y2hpbmdDb3VudCkpOwogICAgIFhWaXN1YWxJbmZvKiBmb3Vu
ZFZpc3VhbCA9IDA7CiAgICAgaW50IHJlcXVpcmVkRGVwdGggPSBoYXNBbHBoYSA/IDMyIDogMjQ7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9YMTFIZWxwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2dseC9YMTFIZWxwZXIuaAppbmRleCBhN2FlYjcwZGEyMTMyNmMyMzkyMGY0ZTc5NTk0YzVj
ODVjZjYyYzhlLi4xMDNmMDAxMzVlMjNlOGYwMWQ1NDU4NWUzMDY4OWMwNGQ3MGUxMzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDEx
SGVscGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L1gxMUhlbHBlci5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFgxMUhlbHBlcl9oCiAK
ICNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiT3duUHRyWDExLmgiCiAKICNpZiBVU0Uo
RUdMKQogI2luY2x1ZGUgPG9wZW5nbC9HTERlZnMuaD4KQEAgLTQzLDggKzQyLDE2IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgWDExSGVscGVyIHsKK2NsYXNzIFgxMURlbGV0ZXIg
eworcHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgb3BlcmF0b3IoKShUKiBy
ZXNvdXJjZSkKKyAgICB7CisgICAgICAgIGlmIChyZXNvdXJjZSkKKyAgICAgICAgICAgIFhGcmVl
KHJlc291cmNlKTsKKyAgICB9Cit9OwogCitjbGFzcyBYMTFIZWxwZXIgewogcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGNyZWF0ZVBpeG1hcChQaXhtYXAqLCBjb25zdCBYVmlzdWFsSW5mbyYsIGNv
bnN0IEludFNpemUmID0gSW50U2l6ZSgxLCAxKSk7CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlT2Zm
U2NyZWVuV2luZG93KHVpbnQzMl90KiwgY29uc3QgWFZpc3VhbEluZm8mLCBjb25zdCBJbnRTaXpl
JiA9IEludFNpemUoMSwgMSkpOwpAQCAtNjEsNyArNjgsNiBAQCBwdWJsaWM6CiB9OwogCiBjbGFz
cyBTY29wZWRYUGl4bWFwQ3JlYXRpb25FcnJvckhhbmRsZXIgewotCiBwdWJsaWM6CiAgICAgU2Nv
cGVkWFBpeG1hcENyZWF0aW9uRXJyb3JIYW5kbGVyKCk7CiAgICAgflNjb3BlZFhQaXhtYXBDcmVh
dGlvbkVycm9ySGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5jcHAKaW5kZXggYzllOTM4
YzI3ZDI0NTg3NTg2NDVkMjJkYzUyMGQ3ZDJjMDM0YzI2ZC4uNjgwMWMxNmFjYmQzNWVmMzVmM2M1
YTkzOTc5MjUwYmQzODgwZjU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRnVsbFNjcmVlbkNvbnRyb2xsZXIuY3BwCkBAIC0zNiw3
ICszNiw2IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5o
IgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUluc3RhbmNlSGFuZGxlLmgi
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjAsOCArNTksOCBAQCBwdWJsaWM6CiAgICAg
CiAgICAgRnVsbFNjcmVlbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKICAgICBGdWxsU2NyZWVu
Q29udHJvbGxlckNsaWVudCogbV9jbGllbnQ7Ci0gICAgT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUZ1bGxzY3JlZW5XaW5kb3c+IG1fZnVsbFNjcmVlbldpbmRvdzsKLSAgICBPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdz4gbV9iYWNrZ3JvdW5kV2luZG93OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93PiBtX2Z1bGxT
Y3JlZW5XaW5kb3c7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxz
Y3JlZW5XaW5kb3c+IG1fYmFja2dyb3VuZFdpbmRvdzsKICAgICBJbnRSZWN0IG1fZnVsbFNjcmVl
bkZyYW1lOwogICAgIEludFJlY3QgbV9vcmlnaW5hbEZyYW1lOwogICAgIEhXTkQgbV9vcmlnaW5h
bEhvc3Q7CkBAIC0xMDQsNyArMTAzLDcgQEAgTFJFU1VMVCBGdWxsU2NyZWVuQ29udHJvbGxlcjo6
UHJpdmF0ZTo6ZnVsbHNjcmVlbkNsaWVudFduZFByb2MoSFdORCBod25kLCBVSU5UIG0KIH0KIAog
RnVsbFNjcmVlbkNvbnRyb2xsZXI6OkZ1bGxTY3JlZW5Db250cm9sbGVyKEZ1bGxTY3JlZW5Db250
cm9sbGVyQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3ByaXZhdGUoYWRvcHRQdHIobmV3IEZ1bGxT
Y3JlZW5Db250cm9sbGVyOjpQcml2YXRlKHRoaXMsIGNsaWVudCkpKQorICAgIDogbV9wcml2YXRl
KHN0ZDo6bWFrZV91bmlxdWU8UHJpdmF0ZT4odGhpcywgY2xpZW50KSkKIHsKICAgICBBU1NFUlRf
QVJHKGNsaWVudCwgY2xpZW50KTsKIH0KQEAgLTEzNCwxMyArMTMzLDEzIEBAIHZvaWQgRnVsbFNj
cmVlbkNvbnRyb2xsZXI6OmVudGVyRnVsbFNjcmVlbigpCiAgICAgbV9wcml2YXRlLT5tX29yaWdp
bmFsRnJhbWUgPSBvcmlnaW5hbEZyYW1lOwogCiAgICAgQVNTRVJUKCFtX3ByaXZhdGUtPm1fYmFj
a2dyb3VuZFdpbmRvdyk7Ci0gICAgbV9wcml2YXRlLT5tX2JhY2tncm91bmRXaW5kb3cgPSBhZG9w
dFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdyhtX3ByaXZhdGUuZ2V0
KCkpKTsKKyAgICBtX3ByaXZhdGUtPm1fYmFja2dyb3VuZFdpbmRvdyA9IHN0ZDo6bWFrZV91bmlx
dWU8TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdz4obV9wcml2YXRlLmdldCgpKTsK
ICAgICBtX3ByaXZhdGUtPm1fYmFja2dyb3VuZFdpbmRvdy0+Y3JlYXRlV2luZG93KDApOwogICAg
IDo6QW5pbWF0ZVdpbmRvdyhtX3ByaXZhdGUtPm1fYmFja2dyb3VuZFdpbmRvdy0+aHduZCgpLCBr
RnVsbFNjcmVlbkFuaW1hdGlvbkR1cmF0aW9uLCBBV19CTEVORCB8IEFXX0FDVElWQVRFKTsKIAog
ICAgIG1fcHJpdmF0ZS0+bV9jbGllbnQtPmZ1bGxTY3JlZW5DbGllbnRXaWxsRW50ZXJGdWxsU2Ny
ZWVuKCk7CiAgICAgQVNTRVJUKCFtX3ByaXZhdGUtPm1fZnVsbFNjcmVlbldpbmRvdyk7Ci0gICAg
bV9wcml2YXRlLT5tX2Z1bGxTY3JlZW5XaW5kb3cgPSBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQ
cml2YXRlRnVsbHNjcmVlbldpbmRvdyhtX3ByaXZhdGUuZ2V0KCkpKTsKKyAgICBtX3ByaXZhdGUt
Pm1fZnVsbFNjcmVlbldpbmRvdyA9IHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRl
RnVsbHNjcmVlbldpbmRvdz4obV9wcml2YXRlLmdldCgpKTsKICAgICBBU1NFUlQobV9wcml2YXRl
LT5tX2Z1bGxTY3JlZW5XaW5kb3cpOwogICAgIG1fcHJpdmF0ZS0+bV9mdWxsU2NyZWVuV2luZG93
LT5jcmVhdGVXaW5kb3coMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9GdWxsU2NyZWVuQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmgKaW5kZXggNzZhODgwZGE3
OTcyMWZmNmViNzY0MTQyYTYzZjY3ZWFlM2Y3ZGIyNS4uMzE3N2Q5ZWE4NzAyOTk3ZmI4ODc5N2E1
NGNhZTU5NDkyNTFkODI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmgKQEAgLTI4LDcgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAotI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKyNpbmNsdWRlIDxtZW1vcnk+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsNyAr
NTQsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjbGFzcyBQcml2YXRlOwogICAgIGZyaWVuZCBjbGFz
cyBQcml2YXRlOwotICAgIE93blB0cjxGdWxsU2NyZWVuQ29udHJvbGxlcjo6UHJpdmF0ZT4gbV9w
cml2YXRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGdWxsU2NyZWVuQ29udHJvbGxlcjo6UHJpdmF0
ZT4gbV9wcml2YXRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5jcHAKaW5kZXggNjlk
ZmM3ZjY1ZTI5OTg2ODYwMDQ2NmNiNWI1ZDliZTdjNjk0M2IzMS4uN2E1ZDdiYTA4YjZhYWNiZDJi
ZmVhYzM0NmVlYWExZGU1MjA5OTIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0M0RXaW4uY3BwCkBAIC0y
OSw4ICsyOSw2IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FM
YXllcldpbi5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiAjaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgPEdMU0xBTkcvU2hhZGVyTGFu
Zy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dL
Q0FJbWFnZVF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9X
S0NBSW1hZ2VRdWV1ZS5jcHAKaW5kZXggNjIyYTM2NDJmZTlkYmNkZDVkZDg4MmRhZDNlMTA2MGFj
Yzk0OWIwMi4uMmQyMDU4NzFjZmRlZTVmNzg4MzE3OTZjNzM3NjBlYzE0MDI5N2QzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdl
UXVldWUuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9D
b3JlRm91bmRhdGlvbi5oPgogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRT
eXN0ZW1JbnRlcmZhY2UuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIsMTMgKzUxLDEz
IEBAIHN0YXRpYyB2b2lkIFdLQ0FJbWFnZVF1ZXVlUmVsZWFzZShDQUltYWdlUXVldWVSZWYgaXEp
CiB9CiAKIFdLQ0FJbWFnZVF1ZXVlOjpXS0NBSW1hZ2VRdWV1ZSh1aW50MzJfdCB3aWR0aCwgdWlu
dDMyX3QgaGVpZ2h0LCB1aW50MzJfdCBjYXBhY2l0eSkKLSAgICA6IG1fcHJpdmF0ZShhZG9wdFB0
cihuZXcgV0tDQUltYWdlUXVldWVQcml2YXRlKCkpKQorICAgIDogbV9wcml2YXRlKHN0ZDo6bWFr
ZV91bmlxdWU8V0tDQUltYWdlUXVldWVQcml2YXRlPigpKQogewogICAgIG1fcHJpdmF0ZS0+bV9p
bWFnZVF1ZXVlID0gYWRvcHRDRih3a0NBSW1hZ2VRdWV1ZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCBj
YXBhY2l0eSkpOwogfQogCiBXS0NBSW1hZ2VRdWV1ZTo6V0tDQUltYWdlUXVldWUoY29uc3QgV0tD
QUltYWdlUXVldWUmIG8pCi0gICAgOiBtX3ByaXZhdGUoYWRvcHRQdHIobmV3IFdLQ0FJbWFnZVF1
ZXVlUHJpdmF0ZSgpKSkKKyAgICA6IG1fcHJpdmF0ZShzdGQ6Om1ha2VfdW5pcXVlPFdLQ0FJbWFn
ZVF1ZXVlUHJpdmF0ZT4oKSkKIHsKICAgICBtX3ByaXZhdGUtPm1faW1hZ2VRdWV1ZSA9IG8ubV9w
cml2YXRlLT5tX2ltYWdlUXVldWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5oCmluZGV4IDI1NjA3NjUwZmZkMmUzMzJm
YzE0MmFiMGJkYTU0MGFmN2Y1MDAyNGIuLjI3NjBkNjExNjVhYmUwNTE1NDBjZWU3NWU5ODQxMjcy
MDI5NDFmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9XS0NBSW1hZ2VRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9XS0NBSW1hZ2VRdWV1ZS5oCkBAIC0yOSw4ICsyOSw4IEBACiB0eXBlZGVmIGNvbnN0IHZv
aWQgKiBDRlR5cGVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGRGljdGlvbmFyeSAqIENG
RGljdGlvbmFyeVJlZjsKIAorI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxzdGRpbnQuaD4K
LSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODAs
NyArODAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdLQ0FJbWFnZVF1ZXVlKGNvbnN0IFdL
Q0FJbWFnZVF1ZXVlJik7CiAgICAgV0tDQUltYWdlUXVldWUmIG9wZXJhdG9yPShjb25zdCBXS0NB
SW1hZ2VRdWV1ZSYpOwotICAgIE93blB0cjxXS0NBSW1hZ2VRdWV1ZVByaXZhdGU+IG1fcHJpdmF0
ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V0tDQUltYWdlUXVldWVQcml2YXRlPiBtX3ByaXZhdGU7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcAppbmRleCBjN2YwYjQzOThmMWEwZmI5
ZWFiZjM4NmQwOTBkNzdhYzQ0OGMzMzg5Li5kMDQ5Mjk0MDQwYmMzYzk4ZmViMTFlZDI2OTdhYjUx
YjAyNzhiODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKQEAgLTMwLDcgKzMwLDYgQEAK
ICNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZVNlc3Npb24uaCIKIAogI2luY2x1ZGUgIk5ldHdvcmtp
bmdDb250ZXh0LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDc3MjQ2NmRhYjkxMzNhMmFlMWU5Y2M4NGI5
NjMzNDE4ZWY4MGQ2NjQuLmIwZTAzNTk2NzBjMWE2OWEzMDQwMGZhZDc0NTk0OGRkMTRkMmJkMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogI2lmIFVTRShDRk5FVFdPUksp
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oIgpAQCAt
MTYzLDcgKzE2Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdW5zaWduZWQgbV9z
c2xFcnJvcnM7CiAgICAgICAgIFZlY3RvcjxjaGFyPiBtX3Bvc3RCeXRlczsKIAotICAgICAgICBP
d25QdHI8TXVsdGlwYXJ0SGFuZGxlPiBtX211bHRpcGFydEhhbmRsZTsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPE11bHRpcGFydEhhbmRsZT4gbV9tdWx0aXBhcnRIYW5kbGU7CiAjZW5kaWYKICNp
ZiBVU0UoU09VUCkKICAgICAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gbV9zb3VwTWVzc2FnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9NdWx0aXBh
cnRIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRp
cGFydEhhbmRsZS5jcHAKaW5kZXggZTc4MDUwZmUyOTliN2FhOWRiODBlMDVmNDMyNDg1YzVjYmI5
YzMyMS4uODk3Zjk1YzE5MGE1NDE2NWJkOTU0NzljNDU0ZTM5NDZiZWVmMGNiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL011bHRpcGFydEhh
bmRsZS5jcHAKQEAgLTM3LDExICszNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFz
c093blB0cjxNdWx0aXBhcnRIYW5kbGU+IE11bHRpcGFydEhhbmRsZTo6Y3JlYXRlKFJlc291cmNl
SGFuZGxlKiBoYW5kbGUsIGNvbnN0IFN0cmluZyYgYm91bmRhcnkpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBNdWx0aXBhcnRIYW5kbGUoaGFuZGxlLCBib3VuZGFyeSkpOwotfQotCiBib29s
IE11bHRpcGFydEhhbmRsZTo6ZXh0cmFjdEJvdW5kYXJ5KGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUsIFN0cmluZyYgYm91bmRhcnkpCiB7CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBsZW5ndGgg
PSBzdHJsZW4oImJvdW5kYXJ5PSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL011bHRpcGFydEhhbmRsZS5oCmluZGV4IDlhYjg1NjI0NTg3MzFkYWE1
NThlYzcyNjRmZmViZGZjYTc0M2U5ZDAuLmJiMGYwZjZjZjMzOTZhYWEwMTVjYTk2YzBmYTEyZWEz
NThkMmVjZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9NdWx0aXBhcnRIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvTXVsdGlwYXJ0SGFuZGxlLmgKQEAgLTI4LDE3ICsyOCwxMyBAQAogCiAjaW5jbHVkZSAi
SFRUUEhlYWRlck1hcC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCi0KLSNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE11bHRpcGFy
dEhhbmRsZSB7Ci0KIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxNdWx0aXBhcnRIYW5k
bGU+IGNyZWF0ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5
KTsKICAgICBzdGF0aWMgYm9vbCBleHRyYWN0Qm91bmRhcnkoY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgU3RyaW5nJiBib3VuZGFyeSk7CiAKICAgICBNdWx0aXBhcnRIYW5kbGUoUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSwgY29uc3QgU3RyaW5nJiBib3VuZGFyeSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFu
YWdlci5jcHAKaW5kZXggMzNhYjg3YjQwZWYyMDk0OGI1ZWE2YzUyNDQ5MjRmNzkxNjgwNWYwNy4u
ZmQ4ZjU4ZTg4MjU5MzcyZmQyMDJiYjYyOTdhNTlkYzYyOWViZGZiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlTWFuYWdlci5jcHAKQEAgLTUxNSw3ICs1MTUsNyBAQCBzdGF0aWMgc2l6ZV90IGhlYWRlckNh
bGxiYWNrKGNoYXIqIHB0ciwgc2l6ZV90IHNpemUsIHNpemVfdCBubWVtYiwgdm9pZCogZGF0YSkK
ICAgICAgICAgICAgIFN0cmluZyBib3VuZGFyeTsKICAgICAgICAgICAgIGJvb2wgcGFyc2VkID0g
TXVsdGlwYXJ0SGFuZGxlOjpleHRyYWN0Qm91bmRhcnkoZC0+bV9yZXNwb25zZS5odHRwSGVhZGVy
RmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSwgYm91bmRhcnkpOwogICAgICAgICAg
ICAgaWYgKHBhcnNlZCkKLSAgICAgICAgICAgICAgICBkLT5tX211bHRpcGFydEhhbmRsZSA9IE11
bHRpcGFydEhhbmRsZTo6Y3JlYXRlKGpvYiwgYm91bmRhcnkpOworICAgICAgICAgICAgICAgIGQt
Pm1fbXVsdGlwYXJ0SGFuZGxlID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aXBhcnRIYW5kbGU+KGpv
YiwgYm91bmRhcnkpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVu
Y29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUVuY29kZXIuaAppbmRleCA2ZjRmZjEzNTg2YzJmMjdkNjM4MGY5NzliNzJjNWJkMGMyMDBlMTFk
Li4yNWU4ZjEyOTNiYjM1NmFmZDk2MzkxNjMxNDE4MzQ0MjhjMmJiZGQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbmNvZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW5j
b2Rlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAKICNp
bmNsdWRlICJOZXR3b3JrQ2FjaGVDb2Rlci5oIgotCisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlv
bnMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nSGFzaGVyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggM2VkYjlhMjE2MGYyOWEyOWRiZWM4YjgxZDlhNzUwZWE2N2FkMGIyMS4uNTM3ZjAwYWY2MDMz
OTc3Mjk3OTIwY2MyOWIxMjJjMzc0MzY2Zjc1MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA0LTI0ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IE93blB0ciBhbmQg
UGFzc093blB0ciB1c2VzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kZXJzIENhcmxzc29uLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0hpc3RvcnlE
ZWxlZ2F0ZS5oOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGUuCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvd2luL1VJRGVsZWdhdGUuaDogRGl0dG8uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IYXNoTWFwLmNwcDogUmVtb3ZlZCBPd25QdHItc3BlY2lmaWMgdGVzdCBjYXNl
cy4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcDogRGl0dG8u
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC93aW4vV2ViVmlld0Rlc3Ry
dWN0aW9uLmNwcDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlLmNwcDogVXNlIHVuaXF1ZV9wdHIuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJLaXQyVXNlck1lc3NhZ2VSb3VuZFRyaXBUZXN0OjpT
ZXRVcCk6IFVzZSBtYWtlX3VuaXF1ZS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvV2lsbExvYWQuY3BwOiBEaXR0by4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktp
dDJXaWxsTG9hZFRlc3Q6OlNldFVwKTogRGl0dG8uCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyR3RrL0RPTURPTVdpbmRvd1Rlc3QuY3BwOgorICAgICAgICAoV2ViS2l0RE9N
RE9NV2luZG93VGVzdDo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwOgorICAgICAgICAoZG9jdW1lbnRM
b2FkZWRDYWxsYmFjayk6IFVzZSBhIHF1ZXVlIG9mIERlbGF5ZWRTaWduYWwgb2JqZWN0cyBpbnN0
ZWFkCisgICAgICAgIG9mIHNtYXJ0IHBvaW50ZXJzIHRvIERlbGF5ZWRTSWduYWwgb2JqZWN0cy4K
KyAgICAgICAgKHVyaUNoYW5nZWRDYWxsYmFjayk6IERpdHRvLgorCiAyMDE1LTA0LTI0ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVucmV2aWV3
ZWQgdGVzdCBmaXguCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vSGlzdG9y
eURlbGVnYXRlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vSGlzdG9yeURlbGVnYXRlLmgK
aW5kZXggMjM2ZWRkMzZmMGIxNGIxOTBkYjU3NThlZDI1NmZmMTVjZWIyNDkwMS4uYzg1NGFlMDAx
N2VlNDRhZDJiZmQwNWUyMGY2N2M1NWYwZGVlMzAwZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0hpc3RvcnlEZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9IaXN0b3J5RGVsZWdhdGUuaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBIaXN0b3J5
RGVsZWdhdGVfaAogCiAjaW5jbHVkZSA8V2ViS2l0L1dlYktpdC5oPgotI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KIAogY2xhc3MgSGlzdG9yeURlbGVnYXRlIDogcHVibGljIElXZWJIaXN0b3J5RGVs
ZWdhdGUgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJ
RGVsZWdhdGUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmgKaW5kZXgg
N2Y0ZjkzZGE0ZGJiZDA0ZmNjOGUyYzg1ZDc5MzhkMTIyMWQwNDdhZi4uNmUwZmQ0YTc3ZTg3N2Fl
OWJiNmM4OTcwMjA5ODY3MmEzZTZlMTg1MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1VJRGVsZWdhdGUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxl
Z2F0ZS5oCkBAIC0zMSw3ICszMSw2IEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0NPTVB0ci5oPgog
I2luY2x1ZGUgPFdlYktpdC9XZWJLaXQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5j
bHVkZSA8d2luZGVmLmg+CiAKIGNsYXNzIERSVFVuZG9NYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcAppbmRleCAyMzZlNDY5OTVkMThhNGQ2NzU1N2UwMmI3
NDNkMTVlMWQ5MDUyOWM2Li5hMjgxZjIzMGE3ZWNkODFiNTUzNDY1MDg1NDJkMDI1NmQ2ZDZjZGRi
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcApAQCAtMzAsOCAr
MzAsNiBAQAogI2luY2x1ZGUgIlJlZkxvZ2dlci5oIgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpAQCAtMTc0LDEwMSArMTcyLDYgQEAgVEVTVChXVEZfSGFz
aE1hcCwgRWZmaWNpZW50R2V0dGVyKQogICAgIH0KIH0KIAotVEVTVChXVEZfSGFzaE1hcCwgT3du
UHRyS2V5KQotewotICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OlRlc3RpbmdTY29w
ZSBzY29wZTsKLQotICAgIEhhc2hNYXA8T3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50
ZXI+LCBpbnQ+IG1hcDsKLQotICAgIE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVy
PiBvd25QdHIgPSBhZG9wdFB0cihuZXcgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcik7Ci0g
ICAgbWFwLmFkZChXVEY6Om1vdmUob3duUHRyKSwgMik7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENv
bnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBF
Q1RfRVEoMHUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQp
OwotCi0gICAgbWFwLmNsZWFyKCk7Ci0gICAgCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3Rv
ckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDF1
LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLX0KLQot
VEVTVChXVEZfSGFzaE1hcCwgT3duUHRyS2V5X0ZpbmRVc2luZ1Jhd1BvaW50ZXIpCi17Ci0gICAg
SGFzaE1hcDxPd25QdHI8aW50PiwgaW50PiBtYXA7Ci0KLSAgICBPd25QdHI8aW50PiBvd25QdHIg
PSBhZG9wdFB0cihuZXcgaW50KDUpKTsKLSAgICBpbnQqIHB0ciA9IG93blB0ci5nZXQoKTsKLSAg
ICBtYXAuYWRkKFdURjo6bW92ZShvd25QdHIpLCAyKTsKLQotICAgIGF1dG8gaXQgPSBtYXAuZmlu
ZChwdHIpOwotICAgIEFTU0VSVF9UUlVFKGl0ICE9IG1hcC5lbmQoKSk7Ci0gICAgRVhQRUNUX0VR
KHB0ciwgaXQtPmtleS5nZXQoKSk7Ci0gICAgRVhQRUNUX0VRKDIsIGl0LT52YWx1ZSk7Ci19Ci0K
LVRFU1QoV1RGX0hhc2hNYXAsIE93blB0cktleV9Db250YWluc1VzaW5nUmF3UG9pbnRlcikKLXsK
LSAgICBIYXNoTWFwPE93blB0cjxpbnQ+LCBpbnQ+IG1hcDsKLQotICAgIE93blB0cjxpbnQ+IG93
blB0ciA9IGFkb3B0UHRyKG5ldyBpbnQoNSkpOwotICAgIGludCogcHRyID0gb3duUHRyLmdldCgp
OwotICAgIG1hcC5hZGQoV1RGOjptb3ZlKG93blB0ciksIDIpOwotCi0gICAgRVhQRUNUX0VRKHRy
dWUsIG1hcC5jb250YWlucyhwdHIpKTsKLX0KLQotVEVTVChXVEZfSGFzaE1hcCwgT3duUHRyS2V5
X0dldFVzaW5nUmF3UG9pbnRlcikKLXsKLSAgICBIYXNoTWFwPE93blB0cjxpbnQ+LCBpbnQ+IG1h
cDsKLQotICAgIE93blB0cjxpbnQ+IG93blB0ciA9IGFkb3B0UHRyKG5ldyBpbnQoNSkpOwotICAg
IGludCogcHRyID0gb3duUHRyLmdldCgpOwotICAgIG1hcC5hZGQoV1RGOjptb3ZlKG93blB0ciks
IDIpOwotCi0gICAgaW50IHZhbHVlID0gbWFwLmdldChwdHIpOwotICAgIEVYUEVDVF9FUSgyLCB2
YWx1ZSk7Ci19Ci0KLVRFU1QoV1RGX0hhc2hNYXAsIE93blB0cktleV9SZW1vdmVVc2luZ1Jhd1Bv
aW50ZXIpCi17Ci0gICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6VGVzdGluZ1Njb3Bl
IHNjb3BlOwotCi0gICAgSGFzaE1hcDxPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRl
cj4sIGludD4gbWFwOwotCi0gICAgT3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI+
IG93blB0ciA9IGFkb3B0UHRyKG5ldyBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKTsKLSAg
ICBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyKiBwdHIgPSBvd25QdHIuZ2V0KCk7Ci0gICAg
bWFwLmFkZChXVEY6Om1vdmUob3duUHRyKSwgMik7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0
cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1Rf
RVEoMHUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwot
Ci0gICAgYm9vbCByZXN1bHQgPSBtYXAucmVtb3ZlKHB0cik7Ci0gICAgRVhQRUNUX0VRKHRydWUs
IHJlc3VsdCk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50
ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBFWFBFQ1RfRVEoMXUsIENvbnN0cnVjdG9yRGVz
dHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291bnQpOwotfQotCi1URVNUKFdURl9IYXNoTWFw
LCBPd25QdHJLZXlfVGFrZVVzaW5nUmF3UG9pbnRlcikKLXsKLSAgICBDb25zdHJ1Y3RvckRlc3Ry
dWN0b3JDb3VudGVyOjpUZXN0aW5nU2NvcGUgc2NvcGU7Ci0KLSAgICBIYXNoTWFwPE93blB0cjxD
b25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyPiwgaW50PiBtYXA7Ci0KLSAgICBPd25QdHI8Q29u
c3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcj4gb3duUHRyID0gYWRvcHRQdHIobmV3IENvbnN0cnVj
dG9yRGVzdHJ1Y3RvckNvdW50ZXIpOwotICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXIq
IHB0ciA9IG93blB0ci5nZXQoKTsKLSAgICBtYXAuYWRkKFdURjo6bW92ZShvd25QdHIpLCAyKTsK
LQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6Y29uc3Ry
dWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgwdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291
bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci0KLSAgICBpbnQgcmVzdWx0ID0gbWFwLnRha2UocHRy
KTsKLSAgICBFWFBFQ1RfRVEoMiwgcmVzdWx0KTsKLQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3Ry
dWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9F
USgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci19
Ci0KIFRFU1QoV1RGX0hhc2hNYXAsIFVuaXF1ZVB0cktleSkKIHsKICAgICBDb25zdHJ1Y3RvckRl
c3RydWN0b3JDb3VudGVyOjpUZXN0aW5nU2NvcGUgc2NvcGU7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoU2V0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0hhc2hTZXQuY3BwCmluZGV4IDMxNTViYzA3YTIyM2JhYjRlYTdkMzYxNGZmYTMx
NGI3N2M4ZWUyNTkuLmRkYjE3OGM3MjU4NGZmY2I4ZmIzMTRkODhlOGIxNTk0ZmJhMTFkY2QgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hTZXQuY3BwCkBAIC0yOCw4ICsyOCw2
IEBACiAjaW5jbHVkZSAiQ291bnRlcnMuaCIKICNpbmNsdWRlICJNb3ZlT25seS5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApAQCAtMTE5LDkz
ICsxMTcsNiBAQCBURVNUKFdURl9IYXNoU2V0LCBNb3ZlT25seSkKICAgICAgICAgRVhQRUNUX1RS
VUUoc2Vjb25kU2V0LmNvbnRhaW5zKE1vdmVPbmx5KGkgKyAxKSkpOwogfQogCi1URVNUKFdURl9I
YXNoU2V0LCBPd25QdHJLZXkpCi17Ci0gICAgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6
VGVzdGluZ1Njb3BlIHNjb3BlOwotCi0gICAgSGFzaFNldDxPd25QdHI8Q29uc3RydWN0b3JEZXN0
cnVjdG9yQ291bnRlcj4+IHNldDsKLQotICAgIE93blB0cjxDb25zdHJ1Y3RvckRlc3RydWN0b3JD
b3VudGVyPiBvd25QdHIgPSBhZG9wdFB0cihuZXcgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRl
cik7Ci0gICAgc2V0LmFkZChXVEY6Om1vdmUob3duUHRyKSk7Ci0KLSAgICBFWFBFQ1RfRVEoMXUs
IENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmNvbnN0cnVjdGlvbkNvdW50KTsKLSAgICBF
WFBFQ1RfRVEoMHUsIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OmRlc3RydWN0aW9uQ291
bnQpOwotCi0gICAgc2V0LmNsZWFyKCk7Ci0gICAgCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1
Y3RvckRlc3RydWN0b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VR
KDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLX0K
LQotVEVTVChXVEZfSGFzaFNldCwgT3duUHRyS2V5X0ZpbmRVc2luZ1Jhd1BvaW50ZXIpCi17Ci0g
ICAgSGFzaFNldDxPd25QdHI8aW50Pj4gc2V0OwotCi0gICAgT3duUHRyPGludD4gb3duUHRyID0g
YWRvcHRQdHIobmV3IGludCg1KSk7Ci0gICAgaW50KiBwdHIgPSBvd25QdHIuZ2V0KCk7Ci0gICAg
c2V0LmFkZChXVEY6Om1vdmUob3duUHRyKSk7Ci0KLSAgICBhdXRvIGl0ID0gc2V0LmZpbmQocHRy
KTsKLSAgICBBU1NFUlRfVFJVRShpdCAhPSBzZXQuZW5kKCkpOwotICAgIEVYUEVDVF9FUShwdHIs
IGl0LT5nZXQoKSk7Ci0gICAgRVhQRUNUX0VRKDUsICppdC0+Z2V0KCkpOwotfQotCi1URVNUKFdU
Rl9IYXNoU2V0LCBPd25QdHJLZXlfQ29udGFpbnNVc2luZ1Jhd1BvaW50ZXIpCi17Ci0gICAgSGFz
aFNldDxPd25QdHI8aW50Pj4gc2V0OwotCi0gICAgT3duUHRyPGludD4gb3duUHRyID0gYWRvcHRQ
dHIobmV3IGludCg1KSk7Ci0gICAgaW50KiBwdHIgPSBvd25QdHIuZ2V0KCk7Ci0gICAgc2V0LmFk
ZChXVEY6Om1vdmUob3duUHRyKSk7Ci0KLSAgICBFWFBFQ1RfRVEodHJ1ZSwgc2V0LmNvbnRhaW5z
KHB0cikpOwotfQotCi1URVNUKFdURl9IYXNoU2V0LCBPd25QdHJLZXlfUmVtb3ZlVXNpbmdSYXdQ
b2ludGVyKQotewotICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXI6OlRlc3RpbmdTY29w
ZSBzY29wZTsKLQotICAgIEhhc2hTZXQ8T3duUHRyPENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50
ZXI+PiBzZXQ7Ci0KLSAgICBPd25QdHI8Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcj4gb3du
UHRyID0gYWRvcHRQdHIobmV3IENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXIpOwotICAgIENv
bnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXIqIHB0ciA9IG93blB0ci5nZXQoKTsKLSAgICBzZXQu
YWRkKFdURjo6bW92ZShvd25QdHIpKTsKLQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JE
ZXN0cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgwdSwg
Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci0KLSAgICBi
b29sIHJlc3VsdCA9IHNldC5yZW1vdmUocHRyKTsKLSAgICBFWFBFQ1RfRVEodHJ1ZSwgcmVzdWx0
KTsKLQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6Y29u
c3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9y
Q291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci19Ci0KLVRFU1QoV1RGX0hhc2hTZXQsIE93blB0
cktleV9UYWtlVXNpbmdSYXdQb2ludGVyKQotewotICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNv
dW50ZXI6OlRlc3RpbmdTY29wZSBzY29wZTsKLQotICAgIEhhc2hTZXQ8T3duUHRyPENvbnN0cnVj
dG9yRGVzdHJ1Y3RvckNvdW50ZXI+PiBzZXQ7Ci0KLSAgICBPd25QdHI8Q29uc3RydWN0b3JEZXN0
cnVjdG9yQ291bnRlcj4gb3duUHRyID0gYWRvcHRQdHIobmV3IENvbnN0cnVjdG9yRGVzdHJ1Y3Rv
ckNvdW50ZXIpOwotICAgIENvbnN0cnVjdG9yRGVzdHJ1Y3RvckNvdW50ZXIqIHB0ciA9IG93blB0
ci5nZXQoKTsKLSAgICBzZXQuYWRkKFdURjo6bW92ZShvd25QdHIpKTsKLQotICAgIEVYUEVDVF9F
USgxdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwot
ICAgIEVYUEVDVF9FUSgwdSwgQ29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rp
b25Db3VudCk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IHNldC50YWtlKHB0cik7Ci0gICAgRVhQRUNU
X0VRKHB0ciwgcmVzdWx0LmdldCgpKTsKLQotICAgIEVYUEVDVF9FUSgxdSwgQ29uc3RydWN0b3JE
ZXN0cnVjdG9yQ291bnRlcjo6Y29uc3RydWN0aW9uQ291bnQpOwotICAgIEVYUEVDVF9FUSgwdSwg
Q29uc3RydWN0b3JEZXN0cnVjdG9yQ291bnRlcjo6ZGVzdHJ1Y3Rpb25Db3VudCk7Ci0KLSAgICBy
ZXN1bHQgPSBudWxscHRyOwotCi0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1Y3RvckRlc3RydWN0
b3JDb3VudGVyOjpjb25zdHJ1Y3Rpb25Db3VudCk7Ci0gICAgRVhQRUNUX0VRKDF1LCBDb25zdHJ1
Y3RvckRlc3RydWN0b3JDb3VudGVyOjpkZXN0cnVjdGlvbkNvdW50KTsKLX0KIAogVEVTVChXVEZf
SGFzaFNldCwgVW5pcXVlUHRyS2V5KQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvd2luL1dlYlZpZXdEZXN0cnVjdGlvbi5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC93aW4vV2ViVmlld0Rlc3RydWN0aW9uLmNwcAppbmRleCBiNTlh
ODRjYjQ3YTE1Yjc3Njg1NTAwZDRkMGEzY2VhM2ZiNzgzZDA4Li5jY2RiYzYxMDY0ZTFhYTM4ODM0
ZTM4NGFlZDBjM2U1YzBlMWQ4NGY3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC93aW4vV2ViVmlld0Rlc3RydWN0aW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC93aW4vV2ViVmlld0Rlc3RydWN0aW9uLmNwcApAQCAtMjksNyAr
MjksNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dl
YktpdC5oPgogI2luY2x1ZGUgPFdlYktpdC9XZWJLaXRDT01BUEkuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZS5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvVXNlck1lc3NhZ2UuY3BwCmluZGV4IDRmMDAx
YTc2NzI4MjExNGQ2ZjdhODYyMDZjMTRkZGJiYzhjODc3ZTcuLjFlNDUyNTA0OTVjMzViNDlkNmQ4
NmY4YzAzMTA2YTU5YzE4OWYzNTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1VzZXJNZXNzYWdlLmNwcApAQCAtMzEsOCArMzEsNiBAQAogCiAjaW5jbHVkZSAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKLSNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgewogCkBAIC00NSw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQ7Ci0gICAgT3duUHRyPFBsYXRm
b3JtV2ViVmlldz4gd2ViVmlldzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XZWJWaWV3
PiB3ZWJWaWV3OwogCiAgICAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiByZWNpZXZlZEJvZHk7CiAK
QEAgLTk1LDcgKzkzLDcgQEAgcHVibGljOgogICAgICAgICBjb250ZXh0ID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJVc2VyTWVzc2FnZVRlc3QiKSk7
CiAgICAgICAgIHNldEluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksIHRoaXMpOwog
Ci0gICAgICAgIHdlYlZpZXcgPSBhZG9wdFB0cihuZXcgUGxhdGZvcm1XZWJWaWV3KGNvbnRleHQu
Z2V0KCkpKTsKKyAgICAgICAgd2ViVmlldyA9IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1XZWJW
aWV3Pihjb250ZXh0LmdldCgpKTsKICAgICAgICAgc2V0UGFnZUxvYWRlckNsaWVudCh3ZWJWaWV3
LT5wYWdlKCksIHRoaXMpOwogCiAgICAgICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XaWxsTG9hZC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbExvYWQuY3BwCmluZGV4IDc0YjIz
OTExZTAwY2E2NmRlZjUwOGY5NzAzMDMzMTgyM2M4MTc3YTguLjgzZDYzYWIxOGJjY2ExMTM5Y2Ix
ZTE5ZDI5OTE5YzZmYjIyOGY0ZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9XaWxsTG9hZC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1dpbGxMb2FkLmNwcApAQCAtMzEsOCArMzEsNiBAQAogCiAjaW5jbHVkZSAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKLSNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgewogCkBAIC00NCw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQ7Ci0gICAgT3duUHRyPFBsYXRmb3JtV2Vi
Vmlldz4gd2ViVmlldzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XZWJWaWV3PiB3ZWJW
aWV3OwogCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lOwogICAgIFdL
UmV0YWluUHRyPFdLVHlwZVJlZj4gbWVzc2FnZUJvZHk7CkBAIC03NCw3ICs3Miw3IEBAIHB1Ymxp
YzoKICAgICAgICAgY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVj
dGVkQnVuZGxlVGVzdCgiV2lsbExvYWRUZXN0IikpOwogICAgICAgICBzZXRJbmplY3RlZEJ1bmRs
ZUNsaWVudChjb250ZXh0LmdldCgpLCB0aGlzKTsKIAotICAgICAgICB3ZWJWaWV3ID0gYWRvcHRQ
dHIobmV3IFBsYXRmb3JtV2ViVmlldyhjb250ZXh0LmdldCgpKSk7CisgICAgICAgIHdlYlZpZXcg
PSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtV2ViVmlldz4oY29udGV4dC5nZXQoKSk7CiAKICAg
ICAgICAgZGlkUmVjZWl2ZU1lc3NhZ2UgPSBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NRE9NV2luZG93VGVzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvRE9NRE9NV2luZG93VGVzdC5jcHAK
aW5kZXggMjU4NGMyMGZlNDU3M2QxMmQwZDUxODIxMjU0YmYwZTZiMzRjYjUzZi4uZmM4Y2VmYjUy
OWQxMzdlNjU2ZGVlYzI3OTVhNzFjY2M0YjQyODc3NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0RPTURPTVdpbmRvd1Rlc3QuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9ET01ET01XaW5kb3dUZXN0LmNwcApAQCAt
MzAsNyArMzAsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gY2xpY2tlZENhbGxiYWNrKFdlYktpdERPTURP
TVdpbmRvdyosIFdlYktpdERPTUV2ZW50KiwgV2ViS2l0RE9NRAogCiBjbGFzcyBXZWJLaXRET01E
T01XaW5kb3dUZXN0IDogcHVibGljIFdlYlByb2Nlc3NUZXN0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc093blB0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIo
bmV3IFdlYktpdERPTURPTVdpbmRvd1Rlc3QoKSk7IH0KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFdlYlByb2Nlc3NUZXN0PiBjcmVhdGUoKSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdl
YktpdERPTURPTVdpbmRvd1Rlc3Q+KCk7IH0KIAogcHJpdmF0ZToKICAgICBndWludDY0IHdlYlBh
Z2VGcm9tQXJncyhHVmFyaWFudCogYXJncykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJFeHRlbnNpb25UZXN0LmNwcAppbmRleCAwNmM0ZTVl
YTQ2OGYwYjBjMzRmMzRjMWU2MWEyOTgzMTAwYTlkOTliLi41NjY3ZmE4YjM4NDA5YzhiMGJmYzBi
NGY2OTI4Mzg0Y2RlNzhlNDkxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwCkBAIC0yNiw4ICsyNiw2IEBA
CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVu
c2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4K
ICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1VuaXF1ZVB0ci5oPgpAQCAtODMsNyArODEsNyBAQCBzdHJ1Y3QgRGVsYXllZFNpZ25hbCB7CiAg
ICAgQ1N0cmluZyB1cmk7CiB9OwogCi1EZXF1ZTxPd25QdHI8RGVsYXllZFNpZ25hbD4+IGRlbGF5
ZWRTaWduYWxzUXVldWU7CitEZXF1ZTxEZWxheWVkU2lnbmFsPiBkZWxheWVkU2lnbmFsc1F1ZXVl
OwogCiBzdGF0aWMgdm9pZCBlbWl0RG9jdW1lbnRMb2FkZWQoR0RCdXNDb25uZWN0aW9uKiBjb25u
ZWN0aW9uKQogewpAQCAtMTE1LDcgKzExMyw3IEBAIHN0YXRpYyB2b2lkIGRvY3VtZW50TG9hZGVk
Q2FsbGJhY2soV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgV2ViS2l0V2ViRXh0ZW5zaW9uKiBlCiAg
ICAgaWYgKGRhdGEpCiAgICAgICAgIGVtaXREb2N1bWVudExvYWRlZChHX0RCVVNfQ09OTkVDVElP
TihkYXRhKSk7CiAgICAgZWxzZQotICAgICAgICBkZWxheWVkU2lnbmFsc1F1ZXVlLmFwcGVuZChh
ZG9wdFB0cihuZXcgRGVsYXllZFNpZ25hbChEb2N1bWVudExvYWRlZFNpZ25hbCkpKTsKKyAgICAg
ICAgZGVsYXllZFNpZ25hbHNRdWV1ZS5hcHBlbmQoRGVsYXllZFNpZ25hbChEb2N1bWVudExvYWRl
ZFNpZ25hbCkpOwogfQogCiBzdGF0aWMgdm9pZCBlbWl0VVJJQ2hhbmdlZChHREJ1c0Nvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqIHVyaSkKQEAgLTEzNyw3ICsxMzUsNyBAQCBzdGF0
aWMgdm9pZCB1cmlDaGFuZ2VkQ2FsbGJhY2soV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgR1BhcmFt
U3BlYyogcHNwZWMsIFdlYktpdAogICAgIGlmIChkYXRhKQogICAgICAgICBlbWl0VVJJQ2hhbmdl
ZChHX0RCVVNfQ09OTkVDVElPTihkYXRhKSwgd2Via2l0X3dlYl9wYWdlX2dldF91cmkod2ViUGFn
ZSkpOwogICAgIGVsc2UKLSAgICAgICAgZGVsYXllZFNpZ25hbHNRdWV1ZS5hcHBlbmQoYWRvcHRQ
dHIobmV3IERlbGF5ZWRTaWduYWwoVVJJQ2hhbmdlZFNpZ25hbCwgd2Via2l0X3dlYl9wYWdlX2dl
dF91cmkod2ViUGFnZSkpKSk7CisgICAgICAgIGRlbGF5ZWRTaWduYWxzUXVldWUuYXBwZW5kKERl
bGF5ZWRTaWduYWwoVVJJQ2hhbmdlZFNpZ25hbCwgd2Via2l0X3dlYl9wYWdlX2dldF91cmkod2Vi
UGFnZSkpKTsKIH0KIAogc3RhdGljIGdib29sZWFuIHNlbmRSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0
V2ViUGFnZSosIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVJlc3BvbnNlKiBy
ZWRpcmVjdFJlc3BvbnNlLCBncG9pbnRlcikKQEAgLTMzMCwxMyArMzI4LDEzIEBAIHN0YXRpYyB2
b2lkIGJ1c0FjcXVpcmVkQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25z
dCBjaGFyKiBuYW1lLCBnCiAKICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVCh1c2VyRGF0
YSksICJkYnVzLWNvbm5lY3Rpb24iLCBjb25uZWN0aW9uKTsKICAgICB3aGlsZSAoZGVsYXllZFNp
Z25hbHNRdWV1ZS5zaXplKCkpIHsKLSAgICAgICAgT3duUHRyPERlbGF5ZWRTaWduYWw+IGRlbGF5
ZWRTaWduYWwgPSBkZWxheWVkU2lnbmFsc1F1ZXVlLnRha2VGaXJzdCgpOwotICAgICAgICBzd2l0
Y2ggKGRlbGF5ZWRTaWduYWwtPnR5cGUpIHsKKyAgICAgICAgRGVsYXllZFNpZ25hbCBkZWxheWVk
U2lnbmFsID0gZGVsYXllZFNpZ25hbHNRdWV1ZS50YWtlRmlyc3QoKTsKKyAgICAgICAgc3dpdGNo
IChkZWxheWVkU2lnbmFsLnR5cGUpIHsKICAgICAgICAgY2FzZSBEb2N1bWVudExvYWRlZFNpZ25h
bDoKICAgICAgICAgICAgIGVtaXREb2N1bWVudExvYWRlZChjb25uZWN0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFVSSUNoYW5nZWRTaWduYWw6Ci0gICAgICAgICAgICBl
bWl0VVJJQ2hhbmdlZChjb25uZWN0aW9uLCBkZWxheWVkU2lnbmFsLT51cmkuZGF0YSgpKTsKKyAg
ICAgICAgICAgIGVtaXRVUklDaGFuZ2VkKGNvbm5lY3Rpb24sIGRlbGF5ZWRTaWduYWwudXJpLmRh
dGEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>