<?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>211171</bug_id>
          
          <creation_ts>2020-04-29 02:02:59 -0700</creation_ts>
          <short_desc>[GTK] Remove deprecated GTK API calls from MiniBrowser</short_desc>
          <delta_ts>2020-04-29 03:36:27 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210100</blocked>
    
    <blocked>210276</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Claudio Saavedra">csaavedra</reporter>
          <assigned_to name="Claudio Saavedra">csaavedra</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1646915</commentid>
    <comment_count>0</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2020-04-29 02:02:59 -0700</bug_when>
    <thetext>[GTK] Remove deprecated GTK API calls from MiniBrowser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646916</commentid>
    <comment_count>1</comment_count>
      <attachid>397942</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2020-04-29 02:04:49 -0700</bug_when>
    <thetext>Created attachment 397942
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646924</commentid>
    <comment_count>2</comment_count>
      <attachid>397942</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-29 02:15:45 -0700</bug_when>
    <thetext>Comment on attachment 397942
Patch

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

&gt; Tools/ChangeLog:8
&gt; +	In preparation to porting MiniBrowser to GTK4, remove

Bad indentation here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646932</commentid>
    <comment_count>3</comment_count>
      <attachid>397949</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2020-04-29 02:28:29 -0700</bug_when>
    <thetext>Created attachment 397949
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646945</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-29 03:36:27 -0700</bug_when>
    <thetext>Committed r260891: &lt;https://trac.webkit.org/changeset/260891&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397949.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397942</attachid>
            <date>2020-04-29 02:04:49 -0700</date>
            <delta_ts>2020-04-29 02:28:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211171-20200429120448.patch</filename>
            <type>text/plain</type>
            <size>37973</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODg3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmFiZTA4MmUwYTQ2MGYyOTY2ZGY5M2NlNjBlMGFjYzFh
YmY5MzhkMS4uYTc0ZjY5OGUwMDgxZDI2MWIyMGYyMTAyZjIyYTg3ZTI4MTlhYWRjZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDIwLTA0LTI5ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0dUS10gUmVtb3ZlIGRlcHJlY2F0ZWQgR1RLIEFQSSBjYWxscyBmcm9tIE1p
bmlCcm93c2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTExNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCUluIHBy
ZXBhcmF0aW9uIHRvIHBvcnRpbmcgTWluaUJyb3dzZXIgdG8gR1RLNCwgcmVtb3ZlCisgICAgICAg
IGFsbCBkZXByZWNhdGVkIEFQSSBjYWxscy4gQWxzbyBnZXQgcmlkIG9mIHRoZSAtLWdlb21ldHJ5
CisgICAgICAgIGNvbW1hbmQtbGluZSBhcmd1bWVudCBhbmQgbWFrZSBpdCBhIG5vLW9wLgorCisg
ICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJEb3dubG9hZHNCYXIuYzoKKyAgICAgICAg
KGJyb3dzZXJfZG93bmxvYWRzX2Jhcl9pbml0KToKKyAgICAgICAgKGJyb3dzZXJfZG93bmxvYWRz
X2Jhcl9uZXcpOgorICAgICAgICAoYWN0aW9uQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChicm93
c2VyX2Rvd25sb2FkX2luaXQpOgorICAgICAgICAoZG93bmxvYWRGaW5pc2hlZCk6CisgICAgICAg
ICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuYzoKKyAgICAgICAgKGRvU2VhcmNo
KToKKyAgICAgICAgKHNlYXJjaEVudHJ5TWVudUljb25QcmVzc2VkQ2FsbGJhY2spOgorICAgICAg
ICAoYnJvd3Nlcl9zZWFyY2hfYmFyX2luaXQpOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9C
cm93c2VyU2V0dGluZ3NEaWFsb2cuYzoKKyAgICAgICAgKGJyb3dzZXJfc2V0dGluZ3NfZGlhbG9n
X2luaXQpOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmM6CisgICAgICAg
IChjcmVhdGVJbmZvQmFyUXVlc3Rpb25NZXNzYWdlKToKKyAgICAgICAgKGJyb3dzZXJUYWJDb25z
dHJ1Y3RlZCk6CisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYzoKKyAg
ICAgICAgKGJyb3dzZXJXaW5kb3dIaXN0b3J5SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKGJyb3dz
ZXJXaW5kb3dIaXN0b3J5SXRlbUFjdGl2YXRlZCk6CisgICAgICAgIChicm93c2VyV2luZG93Q3Jl
YXRlQmFja0ZvcndhcmRNZW51KToKKyAgICAgICAgKGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0
aW9uTWVudSk6CisgICAgICAgIChiYWNrRm9yd2FyZGxpc3RDaGFuZ2VkKToKKyAgICAgICAgKHVw
ZGF0ZVVyaUVudHJ5SWNvbik6CisgICAgICAgICh3ZWJWaWV3SXNMb2FkaW5nQ2hhbmdlZCk6Cisg
ICAgICAgIChicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFySXRlbSk6CisgICAgICAgIChi
cm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFyKToKKyAgICAgICAgKGJyb3dzZXJXaW5kb3dT
d2l0Y2hUYWIpOgorICAgICAgICAoYnJvd3NlcldpbmRvd1NldHVwVG9vbGJhckl0ZW0pOgorICAg
ICAgICAoYnJvd3Nlcl93aW5kb3dfaW5pdCk6CisgICAgICAgIChicm93c2VyV2luZG93VXBkYXRl
TmF2aWdhdGlvbkFjdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9t
YWluLmM6CisgICAgICAgIChtYWluKToKKwogMjAyMC0wNC0yOCAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZ3JhZGUgbW90aW9ubWFyazEu
MS5wbGFuIHRvIHIyNjA2NTYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93
c2VyRG93bmxvYWRzQmFyLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckRvd25sb2Fk
c0Jhci5jCmluZGV4IGU3ODg0ZjVmNTZjODI3Njg5NGE4YzAwYmVlOWVmYjkxYTY1MWJlY2EuLmI5
ZmViOGU3ZDk3NzE2ZmY1MDVjM2NlMGQzYmVhODMwZmYwYTlkNjIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L01pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRzQmFyLmMKKysrIGIvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJEb3dubG9hZHNCYXIuYwpAQCAtNzAsNyArNzAsOCBAQCBzdGF0aWMg
dm9pZCBicm93c2VyX2Rvd25sb2Fkc19iYXJfaW5pdChCcm93c2VyRG93bmxvYWRzQmFyICpkb3du
bG9hZHNCYXIpCiAKICAgICBHdGtXaWRnZXQgKnRpdGxlID0gZ3RrX2xhYmVsX25ldyhOVUxMKTsK
ICAgICBndGtfbGFiZWxfc2V0X21hcmt1cChHVEtfTEFCRUwodGl0bGUpLCAiPHNwYW4gc2l6ZT0n
eHgtbGFyZ2UnIHdlaWdodD0nYm9sZCc+RG93bmxvYWRzPC9zcGFuPiIpOwotICAgIGd0a19taXNj
X3NldF9hbGlnbm1lbnQoR1RLX01JU0ModGl0bGUpLCAwLiwgMC41KTsKKyAgICBndGtfbGFiZWxf
c2V0X3hhbGlnbihHVEtfTEFCRUwodGl0bGUpLCAwLik7CisgICAgZ3RrX2xhYmVsX3NldF95YWxp
Z24oR1RLX0xBQkVMKHRpdGxlKSwgMC41KTsKICAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JP
WChjb250ZW50Qm94KSwgdGl0bGUsIEZBTFNFLCBGQUxTRSwgMTIpOwogICAgIGd0a193aWRnZXRf
c2hvdyh0aXRsZSk7CiB9CkBAIC04NCw3ICs4NSw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJfZG93
bmxvYWRzX2Jhcl9jbGFzc19pbml0KEJyb3dzZXJEb3dubG9hZHNCYXJDbGFzcyAqa2xhc3MpCiBH
dGtXaWRnZXQgKmJyb3dzZXJfZG93bmxvYWRzX2Jhcl9uZXcoKQogewogICAgIEd0a0luZm9CYXIg
KmRvd25sb2Fkc0JhciA9IEdUS19JTkZPX0JBUihnX29iamVjdF9uZXcoQlJPV1NFUl9UWVBFX0RP
V05MT0FEU19CQVIsIE5VTEwpKTsKLSAgICBndGtfaW5mb19iYXJfYWRkX2J1dHRvbnMoZG93bmxv
YWRzQmFyLCBHVEtfU1RPQ0tfQ0xPU0UsIEdUS19SRVNQT05TRV9DTE9TRSwgTlVMTCk7CisgICAg
Z3RrX2luZm9fYmFyX2FkZF9idXR0b25zKGRvd25sb2Fkc0JhciwgIl9DbG9zZSIsIEdUS19SRVNQ
T05TRV9DTE9TRSwgTlVMTCk7CiAgICAgcmV0dXJuIEdUS19XSURHRVQoZG93bmxvYWRzQmFyKTsK
IH0KIApAQCAtMTE1LDcgKzExNiw3IEBAIHN0YXRpYyB2b2lkIGFjdGlvbkJ1dHRvbkNsaWNrZWQo
R3RrQnV0dG9uICpidXR0b24sIEJyb3dzZXJEb3dubG9hZCAqYnJvd3NlckRvd25sCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBndGtfc2hvd191cmkoZ3RrX3dpZGdldF9nZXRfc2NyZWVu
KEdUS19XSURHRVQoYnJvd3NlckRvd25sb2FkKSksCisgICAgZ3RrX3Nob3dfdXJpX29uX3dpbmRv
dyhHVEtfV0lORE9XKGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQoYnJvd3NlckRv
d25sb2FkKSkpLAogICAgICAgICAgICAgICAgICB3ZWJraXRfZG93bmxvYWRfZ2V0X2Rlc3RpbmF0
aW9uKGJyb3dzZXJEb3dubG9hZC0+ZG93bmxvYWQpLAogICAgICAgICAgICAgICAgICBndGtfZ2V0
X2N1cnJlbnRfZXZlbnRfdGltZSgpLCBOVUxMKTsKICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koR1RL
X1dJREdFVChicm93c2VyRG93bmxvYWQpKTsKQEAgLTE0OSwxMiArMTUwLDE0IEBAIHN0YXRpYyB2
b2lkIGJyb3dzZXJfZG93bmxvYWRfaW5pdChCcm93c2VyRG93bmxvYWQgKmRvd25sb2FkKQogCiAg
ICAgZG93bmxvYWQtPnN0YXR1c0xhYmVsID0gZ3RrX2xhYmVsX25ldygiU3RhcnRpbmcgRG93bmxv
YWQiKTsKICAgICBndGtfbGFiZWxfc2V0X2VsbGlwc2l6ZShHVEtfTEFCRUwoZG93bmxvYWQtPnN0
YXR1c0xhYmVsKSwgUEFOR09fRUxMSVBTSVpFX0VORCk7Ci0gICAgZ3RrX21pc2Nfc2V0X2FsaWdu
bWVudChHVEtfTUlTQyhkb3dubG9hZC0+c3RhdHVzTGFiZWwpLCAwLiwgMC41KTsKKyAgICBndGtf
bGFiZWxfc2V0X3hhbGlnbihHVEtfTEFCRUwoZG93bmxvYWQtPnN0YXR1c0xhYmVsKSwgMC4pOwor
ICAgIGd0a19sYWJlbF9zZXRfeWFsaWduKEdUS19MQUJFTChkb3dubG9hZC0+c3RhdHVzTGFiZWwp
LCAwLjUpOwogICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKHN0YXR1c0JveCksIGRvd25s
b2FkLT5zdGF0dXNMYWJlbCwgVFJVRSwgVFJVRSwgMCk7CiAgICAgZ3RrX3dpZGdldF9zaG93KGRv
d25sb2FkLT5zdGF0dXNMYWJlbCk7CiAKICAgICBkb3dubG9hZC0+cmVtYWluaW5nTGFiZWwgPSBn
dGtfbGFiZWxfbmV3KE5VTEwpOwotICAgIGd0a19taXNjX3NldF9hbGlnbm1lbnQoR1RLX01JU0Mo
ZG93bmxvYWQtPnJlbWFpbmluZ0xhYmVsKSwgMS4sIDAuNSk7CisgICAgZ3RrX2xhYmVsX3NldF94
YWxpZ24oR1RLX0xBQkVMKGRvd25sb2FkLT5yZW1haW5pbmdMYWJlbCksIDEuKTsKKyAgICBndGtf
bGFiZWxfc2V0X3lhbGlnbihHVEtfTEFCRUwoZG93bmxvYWQtPnJlbWFpbmluZ0xhYmVsKSwgMC41
KTsKICAgICBndGtfYm94X3BhY2tfZW5kKEdUS19CT1goc3RhdHVzQm94KSwgZG93bmxvYWQtPnJl
bWFpbmluZ0xhYmVsLCBUUlVFLCBUUlVFLCAwKTsKICAgICBndGtfd2lkZ2V0X3Nob3coZG93bmxv
YWQtPnJlbWFpbmluZ0xhYmVsKTsKIApAQCAtMTYyLDcgKzE2NSw3IEBAIHN0YXRpYyB2b2lkIGJy
b3dzZXJfZG93bmxvYWRfaW5pdChCcm93c2VyRG93bmxvYWQgKmRvd25sb2FkKQogICAgIGd0a19i
b3hfcGFja19zdGFydChHVEtfQk9YKHZib3gpLCBkb3dubG9hZC0+cHJvZ3Jlc3NCYXIsIEZBTFNF
LCBGQUxTRSwgMCk7CiAgICAgZ3RrX3dpZGdldF9zaG93KGRvd25sb2FkLT5wcm9ncmVzc0Jhcik7
CiAKLSAgICBkb3dubG9hZC0+YWN0aW9uQnV0dG9uID0gZ3RrX2J1dHRvbl9uZXdfZnJvbV9zdG9j
ayhHVEtfU1RPQ0tfQ0FOQ0VMKTsKKyAgICBkb3dubG9hZC0+YWN0aW9uQnV0dG9uID0gZ3RrX2J1
dHRvbl9uZXdfd2l0aF9tbmVtb25pYygiX0NhbmNlbCIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
ZG93bmxvYWQtPmFjdGlvbkJ1dHRvbiwgImNsaWNrZWQiLCBHX0NBTExCQUNLKGFjdGlvbkJ1dHRv
bkNsaWNrZWQpLCBkb3dubG9hZCk7CiAgICAgZ3RrX2JveF9wYWNrX2VuZChHVEtfQk9YKG1haW5C
b3gpLCBkb3dubG9hZC0+YWN0aW9uQnV0dG9uLCBGQUxTRSwgRkFMU0UsIDApOwogICAgIGd0a193
aWRnZXRfc2hvdyhkb3dubG9hZC0+YWN0aW9uQnV0dG9uKTsKQEAgLTIzMyw4ICsyMzYsNyBAQCBz
dGF0aWMgdm9pZCBkb3dubG9hZEZpbmlzaGVkKFdlYktpdERvd25sb2FkICpkb3dubG9hZCwgQnJv
d3NlckRvd25sb2FkICpicm93c2VyRAogICAgIGd0a19sYWJlbF9zZXRfdGV4dChHVEtfTEFCRUwo
YnJvd3NlckRvd25sb2FkLT5zdGF0dXNMYWJlbCksIHRleHQpOwogICAgIGdfZnJlZSh0ZXh0KTsK
ICAgICBndGtfbGFiZWxfc2V0X3RleHQoR1RLX0xBQkVMKGJyb3dzZXJEb3dubG9hZC0+cmVtYWlu
aW5nTGFiZWwpLCBOVUxMKTsKLSAgICBndGtfYnV0dG9uX3NldF9pbWFnZShHVEtfQlVUVE9OKGJy
b3dzZXJEb3dubG9hZC0+YWN0aW9uQnV0dG9uKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBn
dGtfaW1hZ2VfbmV3X2Zyb21fc3RvY2soR1RLX1NUT0NLX09QRU4sIEdUS19JQ09OX1NJWkVfQlVU
VE9OKSk7CisgICAgZ3RrX2J1dHRvbl9zZXRfaW1hZ2UoR1RLX0JVVFRPTihicm93c2VyRG93bmxv
YWQtPmFjdGlvbkJ1dHRvbiksIGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoImRvY3VtZW50
LW9wZW4iLCBHVEtfSUNPTl9TSVpFX0JVVFRPTikpOwogICAgIGd0a19idXR0b25fc2V0X2xhYmVs
KEdUS19CVVRUT04oYnJvd3NlckRvd25sb2FkLT5hY3Rpb25CdXR0b24pLCAiT3BlbiAuLi4iKTsK
ICAgICBicm93c2VyRG93bmxvYWQtPmZpbmlzaGVkID0gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2VhcmNoQmFyLmMgYi9Ub29scy9NaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlclNlYXJjaEJhci5jCmluZGV4IDM1MTI0M2NiZDVhNmZhNWMyNDAwMWRkMDM5
NzFhOTFmNWFjY2Q2YWIuLjFkNWM3YzhhODgxOGNhZjNmOTRlOTk4MDhlYTNhZmM5ZDY1Njg0MDYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2VhcmNoQmFyLmMKKysr
IGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuYwpAQCAtNTcsMTMgKzU3
LDEzIEBAIHN0YXRpYyB2b2lkIGRvU2VhcmNoKEJyb3dzZXJTZWFyY2hCYXIgKnNlYXJjaEJhcikK
IAogICAgIGlmICghZ3RrX2VudHJ5X2dldF90ZXh0X2xlbmd0aChlbnRyeSkpIHsKICAgICAgICAg
d2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfZmluaXNoKHdlYmtpdF93ZWJfdmlld19nZXRf
ZmluZF9jb250cm9sbGVyKHNlYXJjaEJhci0+d2ViVmlldykpOwotICAgICAgICBndGtfZW50cnlf
c2V0X2ljb25fZnJvbV9zdG9jayhlbnRyeSwgR1RLX0VOVFJZX0lDT05fU0VDT05EQVJZLCBOVUxM
KTsKKyAgICAgICAgZ3RrX2VudHJ5X3NldF9pY29uX2Zyb21faWNvbl9uYW1lKGVudHJ5LCBHVEtf
RU5UUllfSUNPTl9TRUNPTkRBUlksIE5VTEwpOwogICAgICAgICBzZXRGYWlsZWRTdHlsZUZvckVu
dHJ5KHNlYXJjaEJhciwgRkFMU0UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KCFndGtfZW50cnlfZ2V0X2ljb25fc3RvY2soZW50cnksIEdUS19FTlRSWV9JQ09OX1NFQ09OREFS
WSkpCi0gICAgICAgIGd0a19lbnRyeV9zZXRfaWNvbl9mcm9tX3N0b2NrKGVudHJ5LCBHVEtfRU5U
UllfSUNPTl9TRUNPTkRBUlksIEdUS19TVE9DS19DTEVBUik7CisgICAgaWYgKCFndGtfZW50cnlf
Z2V0X2ljb25fbmFtZShlbnRyeSwgR1RLX0VOVFJZX0lDT05fU0VDT05EQVJZKSkKKyAgICAgICAg
Z3RrX2VudHJ5X3NldF9pY29uX2Zyb21faWNvbl9uYW1lKGVudHJ5LCBHVEtfRU5UUllfSUNPTl9T
RUNPTkRBUlksICJlZGl0LWNsZWFyIik7CiAKICAgICBXZWJLaXRGaW5kT3B0aW9ucyBvcHRpb25z
ID0gV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQX0FST1VORDsKICAgICBpZiAoIWd0a19jaGVja19t
ZW51X2l0ZW1fZ2V0X2FjdGl2ZShHVEtfQ0hFQ0tfTUVOVV9JVEVNKHNlYXJjaEJhci0+Y2FzZUNo
ZWNrQnV0dG9uKSkpCkBAIC05NCwxMCArOTQsOCBAQCBzdGF0aWMgdm9pZCBzZWFyY2hDbG9zZUJ1
dHRvbkNsaWNrZWRDYWxsYmFjayhCcm93c2VyU2VhcmNoQmFyICpzZWFyY2hCYXIpCiAKIHN0YXRp
YyB2b2lkIHNlYXJjaEVudHJ5TWVudUljb25QcmVzc2VkQ2FsbGJhY2soQnJvd3NlclNlYXJjaEJh
ciAqc2VhcmNoQmFyLCBHdGtFbnRyeUljb25Qb3NpdGlvbiBpY29uUG9zaXRpb24sIEdka0V2ZW50
ICpldmVudCkKIHsKLSAgICBpZiAoaWNvblBvc2l0aW9uID09IEdUS19FTlRSWV9JQ09OX1BSSU1B
UlkpIHsKLSAgICAgICAgR2RrRXZlbnRCdXR0b24gKmV2ZW50QnV0dG9uID0gKEdka0V2ZW50QnV0
dG9uICopZXZlbnQ7Ci0gICAgICAgIGd0a19tZW51X3BvcHVwKEdUS19NRU5VKHNlYXJjaEJhci0+
b3B0aW9uc01lbnUpLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBldmVudEJ1dHRvbi0+YnV0dG9u
LCBldmVudEJ1dHRvbi0+dGltZSk7Ci0gICAgfQorICAgIGlmIChpY29uUG9zaXRpb24gPT0gR1RL
X0VOVFJZX0lDT05fUFJJTUFSWSkKKyAgICAgICAgZ3RrX21lbnVfcG9wdXBfYXRfcG9pbnRlcihH
VEtfTUVOVShzZWFyY2hCYXItPm9wdGlvbnNNZW51KSwgZXZlbnQpOwogfQogCiBzdGF0aWMgdm9p
ZCBzZWFyY2hFbnRyeUNsZWFySWNvblJlbGVhc2VkQ2FsbGJhY2soQnJvd3NlclNlYXJjaEJhciAq
c2VhcmNoQmFyLCBHdGtFbnRyeUljb25Qb3NpdGlvbiBpY29uUG9zaXRpb24pCkBAIC0xNTgsNyAr
MTU2LDcgQEAgc3RhdGljIHZvaWQgYnJvd3Nlcl9zZWFyY2hfYmFyX2luaXQoQnJvd3NlclNlYXJj
aEJhciAqc2VhcmNoQmFyKQogICAgIHNlYXJjaEJhci0+ZW50cnkgPSBndGtfZW50cnlfbmV3KCk7
CiAgICAgZ3RrX3dpZGdldF9zZXRfbmFtZShzZWFyY2hCYXItPmVudHJ5LCAic2VhcmNoRW50cnki
KTsKICAgICBndGtfZW50cnlfc2V0X3BsYWNlaG9sZGVyX3RleHQoR1RLX0VOVFJZKHNlYXJjaEJh
ci0+ZW50cnkpLCAiU2VhcmNoIik7Ci0gICAgZ3RrX2VudHJ5X3NldF9pY29uX2Zyb21fc3RvY2so
R1RLX0VOVFJZKHNlYXJjaEJhci0+ZW50cnkpLCBHVEtfRU5UUllfSUNPTl9QUklNQVJZLCBHVEtf
U1RPQ0tfRklORCk7CisgICAgZ3RrX2VudHJ5X3NldF9pY29uX2Zyb21faWNvbl9uYW1lKEdUS19F
TlRSWShzZWFyY2hCYXItPmVudHJ5KSwgR1RLX0VOVFJZX0lDT05fUFJJTUFSWSwgImVkaXQtZmlu
ZCIpOwogICAgIGd0a19ib3hfcGFja19zdGFydChoQm94LCBzZWFyY2hCYXItPmVudHJ5LCBUUlVF
LCBUUlVFLCAwKTsKIAogICAgIHNlYXJjaEJhci0+Y3NzUHJvdmlkZXIgPSBndGtfY3NzX3Byb3Zp
ZGVyX25ldygpOwpAQCAtMTY3LDI4ICsxNjUsMjEgQEAgc3RhdGljIHZvaWQgYnJvd3Nlcl9zZWFy
Y2hfYmFyX2luaXQoQnJvd3NlclNlYXJjaEJhciAqc2VhcmNoQmFyKQogICAgIEd0a0JveCAqaEJv
eEJ1dHRvbnMgPSBHVEtfQk9YKGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFM
LCAwKSk7CiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KGhCb3gsIEdUS19XSURHRVQoaEJveEJ1dHRv
bnMpLCBUUlVFLCBUUlVFLCAwKTsKIAotICAgIHNlYXJjaEJhci0+cHJldkJ1dHRvbiA9IGd0a19i
dXR0b25fbmV3KCk7CisgICAgc2VhcmNoQmFyLT5wcmV2QnV0dG9uID0gZ3RrX2J1dHRvbl9uZXdf
ZnJvbV9pY29uX25hbWUoImdvLXVwIiwgR1RLX0lDT05fU0laRV9TTUFMTF9UT09MQkFSKTsKICAg
ICBHdGtCdXR0b24gKmJ1dHRvbiA9IEdUS19CVVRUT04oc2VhcmNoQmFyLT5wcmV2QnV0dG9uKTsK
LSAgICBHdGtXaWRnZXQgKmltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX3N0b2NrKEdUS19TVE9D
S19HT19VUCwgR1RLX0lDT05fU0laRV9TTUFMTF9UT09MQkFSKTsKLSAgICBndGtfYnV0dG9uX3Nl
dF9pbWFnZShidXR0b24sIGltYWdlKTsKICAgICBndGtfYnV0dG9uX3NldF9yZWxpZWYoYnV0dG9u
LCBHVEtfUkVMSUVGX05PTkUpOwotICAgIGd0a19idXR0b25fc2V0X2ZvY3VzX29uX2NsaWNrKGJ1
dHRvbiwgRkFMU0UpOworICAgIGd0a193aWRnZXRfc2V0X2ZvY3VzX29uX2NsaWNrKHNlYXJjaEJh
ci0+cHJldkJ1dHRvbiwgRkFMU0UpOwogICAgIGd0a19ib3hfcGFja19zdGFydChoQm94QnV0dG9u
cywgc2VhcmNoQmFyLT5wcmV2QnV0dG9uLCBGQUxTRSwgRkFMU0UsIDApOwogCi0gICAgc2VhcmNo
QmFyLT5uZXh0QnV0dG9uID0gZ3RrX2J1dHRvbl9uZXcoKTsKKyAgICBzZWFyY2hCYXItPm5leHRC
dXR0b24gPSBndGtfYnV0dG9uX25ld19mcm9tX2ljb25fbmFtZSgiZ28tZG93biIsIEdUS19JQ09O
X1NJWkVfU01BTExfVE9PTEJBUik7CiAgICAgYnV0dG9uID0gR1RLX0JVVFRPTihzZWFyY2hCYXIt
Pm5leHRCdXR0b24pOwotICAgIGltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX3N0b2NrKEdUS19T
VE9DS19HT19ET1dOLCBHVEtfSUNPTl9TSVpFX1NNQUxMX1RPT0xCQVIpOwotICAgIGd0a19idXR0
b25fc2V0X2ltYWdlKGJ1dHRvbiwgaW1hZ2UpOwogICAgIGd0a19idXR0b25fc2V0X3JlbGllZihi
dXR0b24sIEdUS19SRUxJRUZfTk9ORSk7Ci0gICAgZ3RrX2J1dHRvbl9zZXRfZm9jdXNfb25fY2xp
Y2soYnV0dG9uLCBGQUxTRSk7CisgICAgZ3RrX3dpZGdldF9zZXRfZm9jdXNfb25fY2xpY2soc2Vh
cmNoQmFyLT5uZXh0QnV0dG9uLCBGQUxTRSk7CiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KGhCb3hC
dXR0b25zLCBzZWFyY2hCYXItPm5leHRCdXR0b24sIEZBTFNFLCBGQUxTRSwgMCk7CiAKLSAgICBH
dGtXaWRnZXQgKmNsb3NlQnV0dG9uID0gZ3RrX2J1dHRvbl9uZXcoKTsKLSAgICBidXR0b24gPSBH
VEtfQlVUVE9OKGNsb3NlQnV0dG9uKTsKLSAgICBpbWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9z
dG9jayhHVEtfU1RPQ0tfQ0xPU0UsIEdUS19JQ09OX1NJWkVfU01BTExfVE9PTEJBUik7Ci0gICAg
Z3RrX2J1dHRvbl9zZXRfaW1hZ2UoYnV0dG9uLCBpbWFnZSk7Ci0gICAgZ3RrX2J1dHRvbl9zZXRf
cmVsaWVmKGJ1dHRvbiwgR1RLX1JFTElFRl9OT05FKTsKLSAgICBndGtfYnV0dG9uX3NldF9mb2N1
c19vbl9jbGljayhidXR0b24sIEZBTFNFKTsKKyAgICBHdGtXaWRnZXQgKmNsb3NlQnV0dG9uID0g
Z3RrX2J1dHRvbl9uZXdfZnJvbV9pY29uX25hbWUoIndpbmRvdy1jbG9zZSIsIEdUS19JQ09OX1NJ
WkVfU01BTExfVE9PTEJBUik7CisgICAgZ3RrX2J1dHRvbl9zZXRfcmVsaWVmKEdUS19CVVRUT04o
Y2xvc2VCdXR0b24pLCBHVEtfUkVMSUVGX05PTkUpOworICAgIGd0a193aWRnZXRfc2V0X2ZvY3Vz
X29uX2NsaWNrKGNsb3NlQnV0dG9uLCBGQUxTRSk7CiAgICAgZ3RrX2JveF9wYWNrX2VuZChoQm94
QnV0dG9ucywgY2xvc2VCdXR0b24sIEZBTFNFLCBGQUxTRSwgMCk7CiAKICAgICBzZWFyY2hCYXIt
Pm9wdGlvbnNNZW51ID0gZ19vYmplY3RfcmVmX3NpbmsoZ3RrX21lbnVfbmV3KCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0aW5nc0RpYWxvZy5jIGIvVG9v
bHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZXR0aW5nc0RpYWxvZy5jCmluZGV4IDE3OGYwNTM5
ZDFiNTExNmVjNzFkYzBlMDA5YWFjNmM4NTVlMDUyZWIuLmQ3NzU3NjQwNGU4NDJkODc0Mjg1MTA1
YzkxMzMxM2Y0NmI0NzE1MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93
c2VyU2V0dGluZ3NEaWFsb2cuYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNl
dHRpbmdzRGlhbG9nLmMKQEAgLTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgdm9pZCBicm93c2VyX3Nl
dHRpbmdzX2RpYWxvZ19pbml0KEJyb3dzZXJTZXR0aW5nc0RpYWxvZyAqZGlhbG9nKQogICAgIGd0
a193aW5kb3dfc2V0X3RpdGxlKEdUS19XSU5ET1coZGlhbG9nKSwgIldlYktpdCBWaWV3IFNldHRp
bmdzIik7CiAgICAgZ3RrX3dpbmRvd19zZXRfZGVzdHJveV93aXRoX3BhcmVudChHVEtfV0lORE9X
KGRpYWxvZyksIFRSVUUpOwogICAgIGd0a19jb250YWluZXJfc2V0X2JvcmRlcl93aWR0aChHVEtf
Q09OVEFJTkVSKGRpYWxvZyksIDUpOwotICAgIGd0a19kaWFsb2dfYWRkX2J1dHRvbihHVEtfRElB
TE9HKGRpYWxvZyksIEdUS19TVE9DS19DTE9TRSwgR1RLX1JFU1BPTlNFX0NMT1NFKTsKKyAgICBn
dGtfZGlhbG9nX2FkZF9idXR0b24oR1RLX0RJQUxPRyhkaWFsb2cpLCAiX0Nsb3NlIiwgR1RLX1JF
U1BPTlNFX0NMT1NFKTsKICAgICBndGtfZGlhbG9nX3NldF9kZWZhdWx0X3Jlc3BvbnNlKEdUS19E
SUFMT0coZGlhbG9nKSwgR1RLX1JFU1BPTlNFX0NMT1NFKTsKIAogICAgIEd0a1dpZGdldCAqc2Ny
b2xsZWRXaW5kb3cgPSBndGtfc2Nyb2xsZWRfd2luZG93X25ldyhOVUxMLCBOVUxMKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMgYi9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvQnJvd3NlclRhYi5jCmluZGV4IDk2MmYzM2QxMTNmNjE5MmYyYjM0OWVhMDg4MjM1
ZjZlNDhiYjg3NWQuLjg1NzkwOThkNmQ5YmY1ZjNlMTAzZTY5YTRhYTk1NzNiY2Y0NTlkYjYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMKKysrIGIvVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwpAQCAtMTU4LDIyICsxNTgsMjQgQEAgc3RhdGlj
IEd0a1dpZGdldCAqY3JlYXRlSW5mb0JhclF1ZXN0aW9uTWVzc2FnZShjb25zdCBjaGFyICp0aXRs
ZSwgY29uc3QgY2hhciAqdGUKICAgICBndGtfb3JpZW50YWJsZV9zZXRfb3JpZW50YXRpb24oR1RL
X09SSUVOVEFCTEUoY29udGVudEJveCksIEdUS19PUklFTlRBVElPTl9WRVJUSUNBTCk7CiAgICAg
Z3RrX2JveF9zZXRfc3BhY2luZyhHVEtfQk9YKGNvbnRlbnRCb3gpLCAwKTsKIAotICAgIEd0a1dp
ZGdldCAqbGFiZWwgPSBndGtfbGFiZWxfbmV3KE5VTEwpOworICAgIEd0a0xhYmVsICpsYWJlbCA9
IEdUS19MQUJFTChndGtfbGFiZWxfbmV3KE5VTEwpKTsKICAgICBnY2hhciAqbWFya3VwID0gZ19z
dHJkdXBfcHJpbnRmKCI8c3BhbiBzaXplPSd4eC1sYXJnZScgd2VpZ2h0PSdib2xkJz4lczwvc3Bh
bj4iLCB0aXRsZSk7Ci0gICAgZ3RrX2xhYmVsX3NldF9tYXJrdXAoR1RLX0xBQkVMKGxhYmVsKSwg
bWFya3VwKTsKKyAgICBndGtfbGFiZWxfc2V0X21hcmt1cChsYWJlbCwgbWFya3VwKTsKICAgICBn
X2ZyZWUobWFya3VwKTsKLSAgICBndGtfbGFiZWxfc2V0X2xpbmVfd3JhcChHVEtfTEFCRUwobGFi
ZWwpLCBUUlVFKTsKLSAgICBndGtfbGFiZWxfc2V0X3NlbGVjdGFibGUoR1RLX0xBQkVMKGxhYmVs
KSwgVFJVRSk7Ci0gICAgZ3RrX21pc2Nfc2V0X2FsaWdubWVudChHVEtfTUlTQyhsYWJlbCksIDAu
LCAwLjUpOwotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGNvbnRlbnRCb3gpLCBsYWJl
bCwgRkFMU0UsIEZBTFNFLCAyKTsKLSAgICBndGtfd2lkZ2V0X3Nob3cobGFiZWwpOwotCi0gICAg
bGFiZWwgPSBndGtfbGFiZWxfbmV3KHRleHQpOwotICAgIGd0a19sYWJlbF9zZXRfbGluZV93cmFw
KEdUS19MQUJFTChsYWJlbCksIFRSVUUpOwotICAgIGd0a19sYWJlbF9zZXRfc2VsZWN0YWJsZShH
VEtfTEFCRUwobGFiZWwpLCBUUlVFKTsKLSAgICBndGtfbWlzY19zZXRfYWxpZ25tZW50KEdUS19N
SVNDKGxhYmVsKSwgMC4sIDAuNSk7Ci0gICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1goY29u
dGVudEJveCksIGxhYmVsLCBGQUxTRSwgRkFMU0UsIDApOwotICAgIGd0a193aWRnZXRfc2hvdyhs
YWJlbCk7CisgICAgZ3RrX2xhYmVsX3NldF9saW5lX3dyYXAobGFiZWwsIFRSVUUpOworICAgIGd0
a19sYWJlbF9zZXRfc2VsZWN0YWJsZShsYWJlbCwgVFJVRSk7CisgICAgZ3RrX2xhYmVsX3NldF94
YWxpZ24obGFiZWwsIDAuKTsKKyAgICBndGtfbGFiZWxfc2V0X3lhbGlnbihsYWJlbCwgMC41KTsK
KyAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChjb250ZW50Qm94KSwgR1RLX1dJREdFVChs
YWJlbCksIEZBTFNFLCBGQUxTRSwgMik7CisgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQo
bGFiZWwpKTsKKworICAgIGxhYmVsID0gR1RLX0xBQkVMKGd0a19sYWJlbF9uZXcodGV4dCkpOwor
ICAgIGd0a19sYWJlbF9zZXRfbGluZV93cmFwKGxhYmVsLCBUUlVFKTsKKyAgICBndGtfbGFiZWxf
c2V0X3NlbGVjdGFibGUobGFiZWwsIFRSVUUpOworICAgIGd0a19sYWJlbF9zZXRfeGFsaWduKGxh
YmVsLCAwLik7CisgICAgZ3RrX2xhYmVsX3NldF95YWxpZ24obGFiZWwsIDAuNSk7CisgICAgZ3Rr
X2JveF9wYWNrX3N0YXJ0KEdUS19CT1goY29udGVudEJveCksIEdUS19XSURHRVQobGFiZWwpLCBG
QUxTRSwgRkFMU0UsIDApOworICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGxhYmVsKSk7
CiAKICAgICByZXR1cm4gZGlhbG9nOwogfQpAQCAtNDA4LDggKzQxMCw4IEBAIHN0YXRpYyB2b2lk
IGJyb3dzZXJUYWJDb25zdHJ1Y3RlZChHT2JqZWN0ICpnT2JqZWN0KQogICAgIGd0a193aWRnZXRf
c2V0X2hhbGlnbih0YWItPnN0YXR1c0xhYmVsLCBHVEtfQUxJR05fU1RBUlQpOwogICAgIGd0a193
aWRnZXRfc2V0X3ZhbGlnbih0YWItPnN0YXR1c0xhYmVsLCBHVEtfQUxJR05fRU5EKTsKICNpZiAh
R1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCi0gICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX2xl
ZnQodGFiLT5zdGF0dXNMYWJlbCwgMSk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX3JpZ2h0
KHRhYi0+c3RhdHVzTGFiZWwsIDEpOworICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl9zdGFydCh0
YWItPnN0YXR1c0xhYmVsLCAxKTsKKyAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5fZW5kKHRhYi0+
c3RhdHVzTGFiZWwsIDEpOwogICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl90b3AodGFiLT5zdGF0
dXNMYWJlbCwgMSk7CiAgICAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX2JvdHRvbSh0YWItPnN0YXR1
c0xhYmVsLCAxKTsKICNlbmRpZgpAQCAtNDQ3LDcgKzQ0OSw2IEBAIHN0YXRpYyB2b2lkIGJyb3dz
ZXJUYWJDb25zdHJ1Y3RlZChHT2JqZWN0ICpnT2JqZWN0KQogICAgIHRhYi0+dGl0bGVMYWJlbCA9
IGd0a19sYWJlbF9uZXcoTlVMTCk7CiAgICAgZ3RrX2xhYmVsX3NldF9lbGxpcHNpemUoR1RLX0xB
QkVMKHRhYi0+dGl0bGVMYWJlbCksIFBBTkdPX0VMTElQU0laRV9FTkQpOwogICAgIGd0a19sYWJl
bF9zZXRfc2luZ2xlX2xpbmVfbW9kZShHVEtfTEFCRUwodGFiLT50aXRsZUxhYmVsKSwgVFJVRSk7
Ci0gICAgZ3RrX21pc2Nfc2V0X3BhZGRpbmcoR1RLX01JU0ModGFiLT50aXRsZUxhYmVsKSwgMCwg
MCk7CiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1goaGJveCksIHRhYi0+dGl0bGVMYWJl
bCwgRkFMU0UsIEZBTFNFLCAwKTsKICAgICBndGtfd2lkZ2V0X3Nob3codGFiLT50aXRsZUxhYmVs
KTsKIApAQCAtNDU3LDcgKzQ1OCw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJUYWJDb25zdHJ1Y3Rl
ZChHT2JqZWN0ICpnT2JqZWN0KQogICAgIHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiA9IGd0a19idXR0
b25fbmV3KCk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKHRhYi0+dGl0bGVDbG9zZUJ1
dHRvbiwgImNsaWNrZWQiLCBHX0NBTExCQUNLKGd0a193aWRnZXRfZGVzdHJveSksIHRhYik7CiAg
ICAgZ3RrX2J1dHRvbl9zZXRfcmVsaWVmKEdUS19CVVRUT04odGFiLT50aXRsZUNsb3NlQnV0dG9u
KSwgR1RLX1JFTElFRl9OT05FKTsKLSAgICBndGtfYnV0dG9uX3NldF9mb2N1c19vbl9jbGljayhH
VEtfQlVUVE9OKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiksIEZBTFNFKTsKKyAgICBndGtfd2lkZ2V0
X3NldF9mb2N1c19vbl9jbGljayh0YWItPnRpdGxlQ2xvc2VCdXR0b24sIEZBTFNFKTsKIAogICAg
IEd0a1dpZGdldCAqaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJ3aW5kb3ct
Y2xvc2Utc3ltYm9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUpOwogICAgIGd0a19jb250YWluZXJf
YWRkKEdUS19DT05UQUlORVIodGFiLT50aXRsZUNsb3NlQnV0dG9uKSwgaW1hZ2UpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYyBiL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKaW5kZXggNTNjNTY0ZjQ1NDNkNzA1YzliYWZlMWY0
MTgzM2MyM2IzYzhlN2YzMC4uZTc4NmZkY2ZlNjM1MmJlMjc0MjgxZDU4YTUyNjBiMTVlYTYyMjU2
NyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYworKysg
Yi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCkBAIC0yMTAsMTUgKzIxMCwx
NSBAQCBzdGF0aWMgdm9pZCBkb3dubG9hZFN0YXJ0ZWQoV2ViS2l0V2ViQ29udGV4dCAqd2ViQ29u
dGV4dCwgV2ViS2l0RG93bmxvYWQgKmRvd25sbwogfQogCiAjaWYgIUdUS19DSEVDS19WRVJTSU9O
KDMsIDk4LCAwKQotc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd0hpc3RvcnlJdGVtU2VsZWN0ZWQo
QnJvd3NlcldpbmRvdyAqd2luZG93LCBHdGtNZW51SXRlbSAqaXRlbSkKK3N0YXRpYyB2b2lkIGJy
b3dzZXJXaW5kb3dIaXN0b3J5SXRlbVNlbGVjdGVkKEJyb3dzZXJXaW5kb3cgKndpbmRvdywgR3Rr
TWVudUl0ZW0gKm1lbnVJdGVtKQogewotICAgIEd0a0FjdGlvbiAqYWN0aW9uID0gZ3RrX2FjdGl2
YXRhYmxlX2dldF9yZWxhdGVkX2FjdGlvbihHVEtfQUNUSVZBVEFCTEUoaXRlbSkpOwotICAgIGJy
b3dzZXJXaW5kb3dTZXRTdGF0dXNUZXh0KHdpbmRvdywgYWN0aW9uID8gZ3RrX2FjdGlvbl9nZXRf
bmFtZShhY3Rpb24pIDogTlVMTCk7CisgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSAqaXRl
bSA9IGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKG1lbnVJdGVtKSwgImJhY2stZm9yd2FyZC1s
aXN0LWl0ZW0iKTsKKyAgICBicm93c2VyV2luZG93U2V0U3RhdHVzVGV4dCh3aW5kb3csIGl0ZW0g
PyB3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9nZXRfdXJpKGl0ZW0pIDogTlVMTCk7CiB9
CiAKLXN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dIaXN0b3J5SXRlbUFjdGl2YXRlZChCcm93c2Vy
V2luZG93ICp3aW5kb3csIEd0a0FjdGlvbiAqYWN0aW9uKQorc3RhdGljIHZvaWQgYnJvd3Nlcldp
bmRvd0hpc3RvcnlJdGVtQWN0aXZhdGVkKEJyb3dzZXJXaW5kb3cgKndpbmRvdywgR3RrTWVudUl0
ZW0gKm1lbnVJdGVtKQogewotICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0gKml0ZW0gPSBn
X29iamVjdF9nZXRfZGF0YShHX09CSkVDVChhY3Rpb24pLCAiYmFjay1mb3J3YXJkLWxpc3QtaXRl
bSIpOworICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0gKml0ZW0gPSBnX29iamVjdF9nZXRf
ZGF0YShHX09CSkVDVChtZW51SXRlbSksICJiYWNrLWZvcndhcmQtbGlzdC1pdGVtIik7CiAgICAg
aWYgKCFpdGVtKQogICAgICAgICByZXR1cm47CiAKQEAgLTIzNSwxNiArMjM1LDEyIEBAIHN0YXRp
YyBHdGtXaWRnZXQgKmJyb3dzZXJXaW5kb3dDcmVhdGVCYWNrRm9yd2FyZE1lbnUoQnJvd3Nlcldp
bmRvdyAqd2luZG93LCBHTGlzCiAgICAgR0xpc3QgKmxpc3RJdGVtOwogICAgIGZvciAobGlzdEl0
ZW0gPSBsaXN0OyBsaXN0SXRlbTsgbGlzdEl0ZW0gPSBnX2xpc3RfbmV4dChsaXN0SXRlbSkpIHsK
ICAgICAgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSAqaXRlbSA9IChXZWJLaXRCYWNrRm9y
d2FyZExpc3RJdGVtICopbGlzdEl0ZW0tPmRhdGE7Ci0gICAgICAgIGNvbnN0IGNoYXIgKnVyaSA9
IHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX2dldF91cmkoaXRlbSk7CiAgICAgICAgIGNv
bnN0IGNoYXIgKnRpdGxlID0gd2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fZ2V0X3RpdGxl
KGl0ZW0pOwogCi0gICAgICAgIEd0a0FjdGlvbiAqYWN0aW9uID0gZ3RrX2FjdGlvbl9uZXcodXJp
LCB0aXRsZSwgTlVMTCwgTlVMTCk7Ci0gICAgICAgIGdfb2JqZWN0X3NldF9kYXRhX2Z1bGwoR19P
QkpFQ1QoYWN0aW9uKSwgImJhY2stZm9yd2FyZC1saXN0LWl0ZW0iLCBnX29iamVjdF9yZWYoaXRl
bSksIGdfb2JqZWN0X3VucmVmKTsKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKGFj
dGlvbiwgImFjdGl2YXRlIiwgR19DQUxMQkFDSyhicm93c2VyV2luZG93SGlzdG9yeUl0ZW1BY3Rp
dmF0ZWQpLCB3aW5kb3cpOwotCi0gICAgICAgIEd0a1dpZGdldCAqbWVudUl0ZW0gPSBndGtfYWN0
aW9uX2NyZWF0ZV9tZW51X2l0ZW0oYWN0aW9uKTsKKyAgICAgICAgR3RrV2lkZ2V0ICptZW51SXRl
bSA9IGd0a19tZW51X2l0ZW1fbmV3X3dpdGhfbGFiZWwodGl0bGUpOworICAgICAgICBnX29iamVj
dF9zZXRfZGF0YV9mdWxsKEdfT0JKRUNUKG1lbnVJdGVtKSwgImJhY2stZm9yd2FyZC1saXN0LWl0
ZW0iLCBnX29iamVjdF9yZWYoaXRlbSksIGdfb2JqZWN0X3VucmVmKTsKICAgICAgICAgZ19zaWdu
YWxfY29ubmVjdF9zd2FwcGVkKG1lbnVJdGVtLCAic2VsZWN0IiwgR19DQUxMQkFDSyhicm93c2Vy
V2luZG93SGlzdG9yeUl0ZW1TZWxlY3RlZCksIHdpbmRvdyk7Ci0gICAgICAgIGdfb2JqZWN0X3Vu
cmVmKGFjdGlvbik7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtZW51SXRlbSwg
ImFjdGl2YXRlIiwgR19DQUxMQkFDSyhicm93c2VyV2luZG93SGlzdG9yeUl0ZW1BY3RpdmF0ZWQp
LCB3aW5kb3cpOwogCiAgICAgICAgIGd0a19tZW51X3NoZWxsX3ByZXBlbmQoR1RLX01FTlVfU0hF
TEwobWVudSksIG1lbnVJdGVtKTsKICAgICAgICAgZ3RrX3dpZGdldF9zaG93KG1lbnVJdGVtKTsK
QEAgLTI1Niw3ICsyNTIsNyBAQCBzdGF0aWMgR3RrV2lkZ2V0ICpicm93c2VyV2luZG93Q3JlYXRl
QmFja0ZvcndhcmRNZW51KEJyb3dzZXJXaW5kb3cgKndpbmRvdywgR0xpcwogfQogI2VuZGlmCiAK
LXN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0aW9uQWN0aW9ucyhCcm93c2Vy
V2luZG93ICp3aW5kb3csIFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja0ZvcndhcmRsaXN0KQor
c3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRpb25NZW51KEJyb3dzZXJXaW5k
b3cgKndpbmRvdywgV2ViS2l0QmFja0ZvcndhcmRMaXN0ICpiYWNrRm9yd2FyZGxpc3QpCiB7CiAj
aWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQogICAgIFdlYktpdFdlYlZpZXcgKndlYlZp
ZXcgPSBicm93c2VyX3RhYl9nZXRfd2ViX3ZpZXcod2luZG93LT5hY3RpdmVUYWIpOwpAQCAtMzAw
LDcgKzI5Niw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dUcnlDbG9zZShCcm93c2VyV2lu
ZG93ICp3aW5kb3cpCiAKIHN0YXRpYyB2b2lkIGJhY2tGb3J3YXJkbGlzdENoYW5nZWQoV2ViS2l0
QmFja0ZvcndhcmRMaXN0ICpiYWNrRm9yd2FyZGxpc3QsIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0
ZW0gKml0ZW1BZGRlZCwgR0xpc3QgKml0ZW1zUmVtb3ZlZCwgQnJvd3NlcldpbmRvdyAqd2luZG93
KQogewotICAgIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0aW9uQWN0aW9ucyh3aW5kb3csIGJh
Y2tGb3J3YXJkbGlzdCk7CisgICAgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRpb25NZW51KHdp
bmRvdywgYmFja0ZvcndhcmRsaXN0KTsKIH0KIAogc3RhdGljIHZvaWQgd2ViVmlld0Nsb3NlKFdl
YktpdFdlYlZpZXcgKndlYlZpZXcsIEJyb3dzZXJXaW5kb3cgKndpbmRvdykKQEAgLTQ5NSw3ICs0
OTEsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVVcmlFbnRyeUljb24oQnJvd3NlcldpbmRvdyAqd2lu
ZG93KQogICAgIGlmICh3aW5kb3ctPmZhdmljb24pCiAgICAgICAgIGd0a19lbnRyeV9zZXRfaWNv
bl9mcm9tX3BpeGJ1ZihlbnRyeSwgR1RLX0VOVFJZX0lDT05fUFJJTUFSWSwgd2luZG93LT5mYXZp
Y29uKTsKICAgICBlbHNlCi0gICAgICAgIGd0a19lbnRyeV9zZXRfaWNvbl9mcm9tX3N0b2NrKGVu
dHJ5LCBHVEtfRU5UUllfSUNPTl9QUklNQVJZLCBHVEtfU1RPQ0tfTkVXKTsKKyAgICAgICAgZ3Rr
X2VudHJ5X3NldF9pY29uX2Zyb21faWNvbl9uYW1lKGVudHJ5LCBHVEtfRU5UUllfSUNPTl9QUklN
QVJZLCAiZG9jdW1lbnQtbmV3Iik7CiAjZW5kaWYKIH0KIApAQCAtNTIyLDcgKzUxOCw3IEBAIHN0
YXRpYyB2b2lkIHdlYlZpZXdJc0xvYWRpbmdDaGFuZ2VkKFdlYktpdFdlYlZpZXcgKndlYlZpZXcs
IEdQYXJhbVNwZWMgKnBhcmFtU3BlCiAjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQog
ICAgIGdib29sZWFuIGlzTG9hZGluZyA9IHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nKHdlYlZp
ZXcpOwogICAgIGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKHdpbmRv
dy0+cmVsb2FkT3JTdG9wQnV0dG9uKSwgaXNMb2FkaW5nID8gIlN0b3AiIDogIlJlbG9hZCIpOwot
ICAgIGd0a190b29sX2J1dHRvbl9zZXRfc3RvY2tfaWQoR1RLX1RPT0xfQlVUVE9OKHdpbmRvdy0+
cmVsb2FkT3JTdG9wQnV0dG9uKSwgaXNMb2FkaW5nID8gR1RLX1NUT0NLX1NUT1AgOiBHVEtfU1RP
Q0tfUkVGUkVTSCk7CisgICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9pY29uX25hbWUoR1RLX1RPT0xf
QlVUVE9OKHdpbmRvdy0+cmVsb2FkT3JTdG9wQnV0dG9uKSwgaXNMb2FkaW5nID8gInByb2Nlc3Mt
c3RvcCIgOiAidmlldy1yZWZyZXNoIik7CiAjZW5kaWYKIH0KIApAQCAtNzU4LDYgKzc1NCwxOSBA
QCBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93RGlzcG9zZShHT2JqZWN0ICpnT2JqZWN0KQogICAg
IEdfT0JKRUNUX0NMQVNTKGJyb3dzZXJfd2luZG93X3BhcmVudF9jbGFzcyktPmRpc3Bvc2UoZ09i
amVjdCk7CiB9CiAKK3N0YXRpYyBHdGtXaWRnZXQgKgorYnJvd3NlcldpbmRvd1NldHVwRWRpdG9y
VG9vbGJhckl0ZW0oQnJvd3NlcldpbmRvdyogd2luZG93LCBHdGtXaWRnZXQqIHRvb2xiYXIsIEdU
eXBlIHR5cGUsIGNvbnN0IGNoYXIqIGxhYmVsLCBjb25zdCBjaGFyKiBuYW1lZEljb24pCit7Cisg
ICAgR3RrV2lkZ2V0ICppdGVtID0gZ19vYmplY3RfbmV3KHR5cGUsICJpY29uLW5hbWUiLCBuYW1l
ZEljb24sIE5VTEwpOworICAgIGd0a193aWRnZXRfc2V0X25hbWUoaXRlbSwgbGFiZWwpOworICAg
IGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCBsYWJlbCk7
CisgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChpdGVtKSwgdHlwZSA9PSBHVEtfVFlQRV9U
T0dHTEVfVE9PTF9CVVRUT04gPyAidG9nZ2xlZCIgOiAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soZWRp
dGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7CisgICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdU
S19UT09MQkFSKHRvb2xiYXIpLCBHVEtfVE9PTF9JVEVNKGl0ZW0pLCAtMSk7CisgICAgZ3RrX3dp
ZGdldF9zaG93KGl0ZW0pOworCisgICAgcmV0dXJuIGl0ZW07Cit9CisKIHN0YXRpYyB2b2lkIGJy
b3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXIoQnJvd3NlcldpbmRvdyAqd2luZG93KQogewog
I2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKQEAgLTc2NSwxMDIgKzc3NCw1MCBAQCBz
dGF0aWMgdm9pZCBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFyKEJyb3dzZXJXaW5kb3cg
KndpbmRvdykKICAgICBndGtfb3JpZW50YWJsZV9zZXRfb3JpZW50YXRpb24oR1RLX09SSUVOVEFC
TEUodG9vbGJhciksIEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMKTsKICAgICBndGtfdG9vbGJh
cl9zZXRfc3R5bGUoR1RLX1RPT0xCQVIodG9vbGJhciksIEdUS19UT09MQkFSX0JPVEhfSE9SSVop
OwogCi0gICAgR3RrVG9vbEl0ZW0gKml0ZW0gPSBndGtfdG9nZ2xlX3Rvb2xfYnV0dG9uX25ld19m
cm9tX3N0b2NrKEdUS19TVE9DS19CT0xEKTsKLSAgICB3aW5kb3ctPmJvbGRJdGVtID0gR1RLX1dJ
REdFVChpdGVtKTsKLSAgICBndGtfd2lkZ2V0X3NldF9uYW1lKEdUS19XSURHRVQoaXRlbSksICJC
b2xkIik7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRl
bSksICJCb2xkIik7Ci0gICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChpdGVtKSwgInRvZ2ds
ZWQiLCBHX0NBTExCQUNLKGVkaXRpbmdDb21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOwotICAgIGd0
a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwotICAgIGd0
a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKLQotICAgIGl0ZW0gPSBndGtfdG9nZ2xl
X3Rvb2xfYnV0dG9uX25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19JVEFMSUMpOwotICAgIHdpbmRv
dy0+aXRhbGljSXRlbSA9IEdUS19XSURHRVQoaXRlbSk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfbmFt
ZShHVEtfV0lER0VUKGl0ZW0pLCAiSXRhbGljIik7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9s
YWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksICJJdGFsaWMiKTsKLSAgICBnX3NpZ25hbF9jb25u
ZWN0KEdfT0JKRUNUKGl0ZW0pLCAidG9nZ2xlZCIsIEdfQ0FMTEJBQ0soZWRpdGluZ0NvbW1hbmRD
YWxsYmFjayksIHdpbmRvdyk7Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRv
b2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkp
OworICAgIHdpbmRvdy0+Ym9sZEl0ZW0gPSBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFy
SXRlbSh3aW5kb3csIHRvb2xiYXIsIEdUS19UWVBFX1RPR0dMRV9UT09MX0JVVFRPTiwgIkJvbGQi
LCAiZm9ybWF0LXRleHQtYm9sZCIpOworICAgIHdpbmRvdy0+aXRhbGljSXRlbSA9IGJyb3dzZXJX
aW5kb3dTZXR1cEVkaXRvclRvb2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9H
R0xFX1RPT0xfQlVUVE9OLCAiSXRhbGljIiwgImZvcm1hdC10ZXh0LWl0YWxpYyIpOworICAgIHdp
bmRvdy0+dW5kZXJsaW5lSXRlbSA9IGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXJJdGVt
KHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9HR0xFX1RPT0xfQlVUVE9OLCAiVW5kZXJsaW5l
IiwgImZvcm1hdC10ZXh0LXVuZGVybGluZSIpOworICAgIHdpbmRvdy0+c3RyaWtldGhyb3VnaEl0
ZW0gPSBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFySXRlbSh3aW5kb3csIHRvb2xiYXIs
IEdUS19UWVBFX1RPR0dMRV9UT09MX0JVVFRPTiwgIlN0cmlrZXRocm91Z2giLCAiZm9ybWF0LXRl
eHQtc3RyaWtldGhyb3VnaCIpOwogCi0gICAgaXRlbSA9IGd0a190b2dnbGVfdG9vbF9idXR0b25f
bmV3X2Zyb21fc3RvY2soR1RLX1NUT0NLX1VOREVSTElORSk7Ci0gICAgd2luZG93LT51bmRlcmxp
bmVJdGVtID0gR1RLX1dJREdFVChpdGVtKTsKLSAgICBndGtfd2lkZ2V0X3NldF9uYW1lKEdUS19X
SURHRVQoaXRlbSksICJVbmRlcmxpbmUiKTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVs
KEdUS19UT09MX0JVVFRPTihpdGVtKSwgIlVuZGVybGluZSIpOwotICAgIGdfc2lnbmFsX2Nvbm5l
Y3QoR19PQkpFQ1QoaXRlbSksICJ0b2dnbGVkIiwgR19DQUxMQkFDSyhlZGl0aW5nQ29tbWFuZENh
bGxiYWNrKSwgd2luZG93KTsKKyAgICBHdGtUb29sSXRlbSAqaXRlbSA9IGd0a19zZXBhcmF0b3Jf
dG9vbF9pdGVtX25ldygpOwogICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29s
YmFyKSwgaXRlbSwgLTEpOwogICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsK
IAotICAgIGl0ZW0gPSBndGtfdG9nZ2xlX3Rvb2xfYnV0dG9uX25ld19mcm9tX3N0b2NrKEdUS19T
VE9DS19TVFJJS0VUSFJPVUdIKTsKLSAgICBndGtfd2lkZ2V0X3NldF9uYW1lKEdUS19XSURHRVQo
aXRlbSksICJTdHJpa2V0aHJvdWdoIik7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJlbChH
VEtfVE9PTF9CVVRUT04oaXRlbSksICJTdHJpa2V0aHJvdWdoIik7Ci0gICAgd2luZG93LT5zdHJp
a2V0aHJvdWdoSXRlbSA9IEdUS19XSURHRVQoaXRlbSk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChH
X09CSkVDVChpdGVtKSwgInRvZ2dsZWQiLCBHX0NBTExCQUNLKGVkaXRpbmdDb21tYW5kQ2FsbGJh
Y2spLCB3aW5kb3cpOwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFy
KSwgaXRlbSwgLTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKKyAg
ICBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFySXRlbSh3aW5kb3csIHRvb2xiYXIsIEdU
S19UWVBFX1RPT0xfQlVUVE9OLCBXRUJLSVRfRURJVElOR19DT01NQU5EX0NVVCwgImVkaXQtY3V0
Iik7CisgICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0od2luZG93LCB0b29s
YmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DT1BZLCAi
ZWRpdC1jb3B5Iik7CisgICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0od2lu
ZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgV0VCS0lUX0VESVRJTkdfQ09NTUFO
RF9QQVNURSwgImVkaXQtcGFzdGUiKTsKIAogICAgIGl0ZW0gPSBndGtfc2VwYXJhdG9yX3Rvb2xf
aXRlbV9uZXcoKTsKICAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciks
IGl0ZW0sIC0xKTsKICAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7CiAKLSAg
ICBpdGVtID0gZ3RrX3Rvb2xfYnV0dG9uX25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19DVVQpOwot
ICAgIGd0a193aWRnZXRfc2V0X25hbWUoR1RLX1dJREdFVChpdGVtKSwgV0VCS0lUX0VESVRJTkdf
Q09NTUFORF9DVVQpOwotICAgIGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVU
VE9OKGl0ZW0pLCBXRUJLSVRfRURJVElOR19DT01NQU5EX0NVVCk7Ci0gICAgZ19zaWduYWxfY29u
bmVjdChHX09CSkVDVChpdGVtKSwgImNsaWNrZWQiLCBHX0NBTExCQUNLKGVkaXRpbmdDb21tYW5k
Q2FsbGJhY2spLCB3aW5kb3cpOwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0
b29sYmFyKSwgaXRlbSwgLTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0p
KTsKLQotICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25fbmV3X2Zyb21fc3RvY2soR1RLX1NUT0NL
X0NPUFkpOwotICAgIGd0a193aWRnZXRfc2V0X25hbWUoR1RLX1dJREdFVChpdGVtKSwgV0VCS0lU
X0VESVRJTkdfQ09NTUFORF9DT1BZKTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdU
S19UT09MX0JVVFRPTihpdGVtKSwgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DT1BZKTsKLSAgICBn
X3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0pLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soZWRp
dGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdU
S19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KEdUS19X
SURHRVQoaXRlbSkpOwotCi0gICAgaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9j
ayhHVEtfU1RPQ0tfUEFTVEUpOwotICAgIGd0a193aWRnZXRfc2V0X25hbWUoR1RLX1dJREdFVChp
dGVtKSwgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9QQVNURSk7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9u
X3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksIFdFQktJVF9FRElUSU5HX0NPTU1BTkRf
UEFTVEUpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QoaXRlbSksICJjbGlja2VkIiwg
R19DQUxMQkFDSyhlZGl0aW5nQ29tbWFuZENhbGxiYWNrKSwgd2luZG93KTsKLSAgICBndGtfdG9v
bGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lk
Z2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7CisgICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9y
VG9vbGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgV0VCS0lU
X0VESVRJTkdfQ09NTUFORF9VTkRPLCAiZWRpdC11bmRvIik7CisgICAgYnJvd3NlcldpbmRvd1Nl
dHVwRWRpdG9yVG9vbGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRP
TiwgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9SRURPLCAiZWRpdC1yZWRvIik7CiAKICAgICBpdGVt
ID0gZ3RrX3NlcGFyYXRvcl90b29sX2l0ZW1fbmV3KCk7CiAgICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0
KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KEdU
S19XSURHRVQoaXRlbSkpOwogCi0gICAgaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXdfZnJvbV9z
dG9jayhHVEtfU1RPQ0tfVU5ETyk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfbmFtZShHVEtfV0lER0VU
KGl0ZW0pLCBXRUJLSVRfRURJVElOR19DT01NQU5EX1VORE8pOwotICAgIGd0a190b29sX2J1dHRv
bl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCBXRUJLSVRfRURJVElOR19DT01NQU5E
X1VORE8pOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QoaXRlbSksICJjbGlja2VkIiwg
R19DQUxMQkFDSyhlZGl0aW5nQ29tbWFuZENhbGxiYWNrKSwgd2luZG93KTsKLSAgICBndGtfdG9v
bGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lk
Z2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7Ci0KLSAgICBpdGVtID0gZ3RrX3Rvb2xfYnV0dG9u
X25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19SRURPKTsKLSAgICBndGtfd2lkZ2V0X3NldF9uYW1l
KEdUS19XSURHRVQoaXRlbSksIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUkVETyk7Ci0gICAgZ3Rr
X3Rvb2xfYnV0dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksIFdFQktJVF9FRElU
SU5HX0NPTU1BTkRfUkVETyk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChpdGVtKSwg
ImNsaWNrZWQiLCBHX0NBTExCQUNLKGVkaXRpbmdDb21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOwot
ICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwot
ICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKLQotICAgIGl0ZW0gPSBndGtf
c2VwYXJhdG9yX3Rvb2xfaXRlbV9uZXcoKTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RP
T0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdF
VChpdGVtKSk7Ci0KLSAgICBpdGVtID0gZ3RrX3JhZGlvX3Rvb2xfYnV0dG9uX25ld19mcm9tX3N0
b2NrKE5VTEwsIEdUS19TVE9DS19KVVNUSUZZX0xFRlQpOworICAgIGl0ZW0gPSBndGtfcmFkaW9f
dG9vbF9idXR0b25fbmV3KE5VTEwpOwogICAgIEdTTGlzdCAqanVzdGlmeVJhZGlvR3JvdXAgPSBn
dGtfcmFkaW9fdG9vbF9idXR0b25fZ2V0X2dyb3VwKEdUS19SQURJT19UT09MX0JVVFRPTihpdGVt
KSk7CisgICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9pY29uX25hbWUoR1RLX1RPT0xfQlVUVE9OKGl0
ZW0pLCAiZm9ybWF0LWp1c3RpZnktbGVmdCIpOwogICAgIGd0a193aWRnZXRfc2V0X25hbWUoR1RL
X1dJREdFVChpdGVtKSwgIkp1c3RpZnlMZWZ0Iik7CiAgICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9s
YWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksICJKdXN0aWZ5IExlZnQiKTsKICAgICBnX3NpZ25h
bF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0pLCAidG9nZ2xlZCIsIEdfQ0FMTEJBQ0soZWRpdGluZ0Nv
bW1hbmRDYWxsYmFjayksIHdpbmRvdyk7CiAgICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09M
QkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQo
aXRlbSkpOwogCi0gICAgaXRlbSA9IGd0a19yYWRpb190b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9j
ayhqdXN0aWZ5UmFkaW9Hcm91cCwgR1RLX1NUT0NLX0pVU1RJRllfQ0VOVEVSKTsKKyAgICBpdGVt
ID0gZ3RrX3JhZGlvX3Rvb2xfYnV0dG9uX25ldyhqdXN0aWZ5UmFkaW9Hcm91cCk7CiAgICAganVz
dGlmeVJhZGlvR3JvdXAgPSBndGtfcmFkaW9fdG9vbF9idXR0b25fZ2V0X2dyb3VwKEdUS19SQURJ
T19UT09MX0JVVFRPTihpdGVtKSk7CisgICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9pY29uX25hbWUo
R1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiZm9ybWF0LWp1c3RpZnktY2VudGVyIik7CiAgICAgZ3Rr
X3dpZGdldF9zZXRfbmFtZShHVEtfV0lER0VUKGl0ZW0pLCAiSnVzdGlmeUNlbnRlciIpOwogICAg
IGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiSnVzdGlm
eSBDZW50ZXIiKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0pLCAidG9nZ2xl
ZCIsIEdfQ0FMTEJBQ0soZWRpdGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7CiAgICAgZ3Rr
X3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7CiAgICAgZ3Rr
X3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOwogCi0gICAgaXRlbSA9IGd0a19yYWRpb190
b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhqdXN0aWZ5UmFkaW9Hcm91cCwgR1RLX1NUT0NLX0pV
U1RJRllfUklHSFQpOworICAgIGl0ZW0gPSBndGtfcmFkaW9fdG9vbF9idXR0b25fbmV3KGp1c3Rp
ZnlSYWRpb0dyb3VwKTsKKyAgICBndGtfdG9vbF9idXR0b25fc2V0X2ljb25fbmFtZShHVEtfVE9P
TF9CVVRUT04oaXRlbSksICJmb3JtYXQtanVzdGlmeS1yaWdodCIpOwogICAgIGd0a193aWRnZXRf
c2V0X25hbWUoR1RLX1dJREdFVChpdGVtKSwgIkp1c3RpZnlSaWdodCIpOwogICAgIGd0a190b29s
X2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiSnVzdGlmeSBSaWdodCIp
OwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QoaXRlbSksICJ0b2dnbGVkIiwgR19DQUxM
QkFDSyhlZGl0aW5nQ29tbWFuZENhbGxiYWNrKSwgd2luZG93KTsKQEAgLTg3MSwxOSArODI4LDgg
QEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhcihCcm93c2VyV2lu
ZG93ICp3aW5kb3cpCiAgICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIp
LCBpdGVtLCAtMSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOwogCi0g
ICAgaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tfSU5ERU5U
KTsKLSAgICBndGtfd2lkZ2V0X3NldF9uYW1lKEdUS19XSURHRVQoaXRlbSksICJJbmRlbnQiKTsK
LSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgIklu
ZGVudCIpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QoaXRlbSksICJjbGlja2VkIiwg
R19DQUxMQkFDSyhlZGl0aW5nQ29tbWFuZENhbGxiYWNrKSwgd2luZG93KTsKLSAgICBndGtfdG9v
bGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lk
Z2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7Ci0KLSAgICBpdGVtID0gZ3RrX3Rvb2xfYnV0dG9u
X25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19VTklOREVOVCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRf
bmFtZShHVEtfV0lER0VUKGl0ZW0pLCAiT3V0ZGVudCIpOwotICAgIGd0a190b29sX2J1dHRvbl9z
ZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiT3V0ZGVudCIpOwotICAgIGdfc2lnbmFs
X2Nvbm5lY3QoR19PQkpFQ1QoaXRlbSksICJjbGlja2VkIiwgR19DQUxMQkFDSyhlZGl0aW5nQ29t
bWFuZENhbGxiYWNrKSwgd2luZG93KTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xC
QVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChp
dGVtKSk7CisgICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0od2luZG93LCB0
b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgIkluZGVudCIsICJmb3JtYXQtaW5kZW50LW1v
cmUiKTsKKyAgICBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFySXRlbSh3aW5kb3csIHRv
b2xiYXIsIEdUS19UWVBFX1RPT0xfQlVUVE9OLCAiT3V0ZGVudCIsICJmb3JtYXQtaW5kZW50LWxl
c3MiKTsKIAogICAgIGl0ZW0gPSBndGtfc2VwYXJhdG9yX3Rvb2xfaXRlbV9uZXcoKTsKICAgICBn
dGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKQEAgLTk2
Myw3ICs5MDksNyBAQCBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93U3dpdGNoVGFiKEd0a05vdGVi
b29rICpub3RlYm9vaywgQnJvd3NlclRhYiAqdGFiLCBndWludAogI2VuZGlmCiAKICAgICBXZWJL
aXRCYWNrRm9yd2FyZExpc3QgKmJhY2tGb3J3YXJkbGlzdCA9IHdlYmtpdF93ZWJfdmlld19nZXRf
YmFja19mb3J3YXJkX2xpc3Qod2ViVmlldyk7Ci0gICAgYnJvd3NlcldpbmRvd1VwZGF0ZU5hdmln
YXRpb25BY3Rpb25zKHdpbmRvdywgYmFja0ZvcndhcmRsaXN0KTsKKyAgICBicm93c2VyV2luZG93
VXBkYXRlTmF2aWdhdGlvbk1lbnUod2luZG93LCBiYWNrRm9yd2FyZGxpc3QpOwogICAgIGdfc2ln
bmFsX2Nvbm5lY3QoYmFja0ZvcndhcmRsaXN0LCAiY2hhbmdlZCIsIEdfQ0FMTEJBQ0soYmFja0Zv
cndhcmRsaXN0Q2hhbmdlZCksIHdpbmRvdyk7CiB9CiAKQEAgLTk3Miw2ICs5MTgsMTkgQEAgc3Rh
dGljIHZvaWQgYnJvd3NlcldpbmRvd1RhYkFkZGVkT3JSZW1vdmVkKEd0a05vdGVib29rICpub3Rl
Ym9vaywgQnJvd3NlclRhYiAqdGEKICAgICBndGtfbm90ZWJvb2tfc2V0X3Nob3dfdGFicyhHVEtf
Tk9URUJPT0sod2luZG93LT5ub3RlYm9vayksIGd0a19ub3RlYm9va19nZXRfbl9wYWdlcyhub3Rl
Ym9vaykgPiAxKTsKIH0KIAorc3RhdGljIEd0a1dpZGdldCogYnJvd3NlcldpbmRvd1NldHVwVG9v
bGJhckl0ZW0oQnJvd3NlcldpbmRvdyogd2luZG93LCBHdGtXaWRnZXQqIHRvb2xiYXIsIEdUeXBl
IHR5cGUsIGNvbnN0IGNoYXIqIGxhYmVsLCBjb25zdCBjaGFyKiBuYW1lZEljb24sIEdDYWxsYmFj
ayBjYWxsYmFjaykKK3sKKyAgICBHdGtXaWRnZXQgKml0ZW0gPSBnX29iamVjdF9uZXcodHlwZSwg
Imljb24tbmFtZSIsIG5hbWVkSWNvbiwgTlVMTCk7CisgICAgaWYgKHR5cGUgPT0gR1RLX1RZUEVf
TUVOVV9UT09MX0JVVFRPTikKKyAgICAgICAgZ3RrX21lbnVfdG9vbF9idXR0b25fc2V0X21lbnUo
R1RLX01FTlVfVE9PTF9CVVRUT04oaXRlbSksIDApOworICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dh
cHBlZChpdGVtLCAiY2xpY2tlZCIsIGNhbGxiYWNrLCAoZ3BvaW50ZXIpd2luZG93KTsKKyAgICBn
dGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgbGFiZWwpOwor
ICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgR1RLX1RPT0xfSVRF
TShpdGVtKSwgLTEpOworICAgIGd0a193aWRnZXRfc2hvdyhpdGVtKTsKKworICAgIHJldHVybiBp
dGVtOworfQorCiBzdGF0aWMgdm9pZCBicm93c2VyX3dpbmRvd19pbml0KEJyb3dzZXJXaW5kb3cg
KndpbmRvdykKIHsKICAgICB3aW5kb3dMaXN0ID0gZ19saXN0X2FwcGVuZCh3aW5kb3dMaXN0LCB3
aW5kb3cpOwpAQCAtMTA1OSw1NyArMTAxOCwyMCBAQCBzdGF0aWMgdm9pZCBicm93c2VyX3dpbmRv
d19pbml0KEJyb3dzZXJXaW5kb3cgKndpbmRvdykKICAgICBndGtfb3JpZW50YWJsZV9zZXRfb3Jp
ZW50YXRpb24oR1RLX09SSUVOVEFCTEUodG9vbGJhciksIEdUS19PUklFTlRBVElPTl9IT1JJWk9O
VEFMKTsKICAgICBndGtfdG9vbGJhcl9zZXRfc3R5bGUoR1RLX1RPT0xCQVIodG9vbGJhciksIEdU
S19UT09MQkFSX0JPVEhfSE9SSVopOwogCi0gICAgR3RrVG9vbEl0ZW0gKml0ZW0gPSBndGtfbWVu
dV90b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tfR09fQkFDSyk7Ci0gICAgd2lu
ZG93LT5iYWNrSXRlbSA9IEdUS19XSURHRVQoaXRlbSk7Ci0gICAgZ3RrX21lbnVfdG9vbF9idXR0
b25fc2V0X21lbnUoR1RLX01FTlVfVE9PTF9CVVRUT04oaXRlbSksIDApOwotICAgIGdfc2lnbmFs
X2Nvbm5lY3Rfc3dhcHBlZChpdGVtLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soZ29CYWNrQ2FsbGJh
Y2spLCAoZ3BvaW50ZXIpd2luZG93KTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdU
S19UT09MX0JVVFRPTihpdGVtKSwgIkJhY2siKTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RL
X1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJ
REdFVChpdGVtKSk7Ci0KLSAgICBpdGVtID0gZ3RrX21lbnVfdG9vbF9idXR0b25fbmV3X2Zyb21f
c3RvY2soR1RLX1NUT0NLX0dPX0ZPUldBUkQpOwotICAgIHdpbmRvdy0+Zm9yd2FyZEl0ZW0gPSBH
VEtfV0lER0VUKGl0ZW0pOwotICAgIGd0a19tZW51X3Rvb2xfYnV0dG9uX3NldF9tZW51KEdUS19N
RU5VX1RPT0xfQlVUVE9OKGl0ZW0pLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQo
R19PQkpFQ1QoaXRlbSksICJjbGlja2VkIiwgR19DQUxMQkFDSyhnb0ZvcndhcmRDYWxsYmFjayks
IChncG9pbnRlcil3aW5kb3cpOwotICAgIGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RP
T0xfQlVUVE9OKGl0ZW0pLCAiRm9yd2FyZCIpOwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtf
VE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lE
R0VUKGl0ZW0pKTsKKyAgICB3aW5kb3ctPmJhY2tJdGVtID0gYnJvd3NlcldpbmRvd1NldHVwVG9v
bGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9NRU5VX1RPT0xfQlVUVE9OLCAiQmFj
ayIsICJnby1wcmV2aW91cyIsIEdfQ0FMTEJBQ0soZ29CYWNrQ2FsbGJhY2spKTsKKyAgICB3aW5k
b3ctPmZvcndhcmRJdGVtID0gYnJvd3NlcldpbmRvd1NldHVwVG9vbGJhckl0ZW0od2luZG93LCB0
b29sYmFyLCBHVEtfVFlQRV9NRU5VX1RPT0xfQlVUVE9OLCAiRm9yd2FyZCIsICJnby1uZXh0Iiwg
R19DQUxMQkFDSyhnb0ZvcndhcmRDYWxsYmFjaykpOworICAgIGJyb3dzZXJXaW5kb3dTZXR1cFRv
b2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9PTF9CVVRUT04sICJQcmVmZXJl
bmNlcyIsICJwcmVmZXJlbmNlcy1zeXN0ZW0iLCBHX0NBTExCQUNLKHNldHRpbmdzQ2FsbGJhY2sp
KTsKIAotICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25fbmV3X2Zyb21fc3RvY2soR1RLX1NUT0NL
X1BSRUZFUkVOQ0VTKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoR19PQkpFQ1QoaXRl
bSksICJjbGlja2VkIiwgR19DQUxMQkFDSyhzZXR0aW5nc0NhbGxiYWNrKSwgd2luZG93KTsKLSAg
ICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgIlByZWZl
cmVuY2VzIik7Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBp
dGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOworICAgIHdp
bmRvdy0+em9vbU91dEl0ZW0gPSBicm93c2VyV2luZG93U2V0dXBUb29sYmFySXRlbSh3aW5kb3cs
IHRvb2xiYXIsIEdUS19UWVBFX1RPT0xfQlVUVE9OLCAiWm9vbSBPdXQiLCAiem9vbS1vdXQiLCBH
X0NBTExCQUNLKHpvb21PdXRDYWxsYmFjaykpOworICAgIHdpbmRvdy0+em9vbUluSXRlbSA9IGJy
b3dzZXJXaW5kb3dTZXR1cFRvb2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9P
TF9CVVRUT04sICJab29tIEluIiwgInpvb20taW4iLCBHX0NBTExCQUNLKHpvb21JbkNhbGxiYWNr
KSk7CiAKLSAgICBpdGVtID0gZ3RrX3Rvb2xfYnV0dG9uX25ld19mcm9tX3N0b2NrKEdUS19TVE9D
S19aT09NX09VVCk7Ci0gICAgd2luZG93LT56b29tT3V0SXRlbSA9IEdUS19XSURHRVQoaXRlbSk7
Ci0gICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKGl0ZW0sICJjbGlja2VkIiwgR19DQUxMQkFD
Syh6b29tT3V0Q2FsbGJhY2spLCB3aW5kb3cpOwotICAgIGd0a190b29sX2J1dHRvbl9zZXRfbGFi
ZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiWm9vbSBPdXQiKTsKLSAgICBndGtfdG9vbGJhcl9p
bnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X3No
b3coR1RLX1dJREdFVChpdGVtKSk7CisgICAgZ3RrX3dpZGdldF9hZGRfYWNjZWxlcmF0b3IoYnJv
d3NlcldpbmRvd1NldHVwVG9vbGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09M
X0JVVFRPTiwgIkZpbmQiLCAiZWRpdC1maW5kIiwgR19DQUxMQkFDSyhzZWFyY2hDYWxsYmFjaykp
LAorICAgICAgICAiY2xpY2tlZCIsIHdpbmRvdy0+YWNjZWxHcm91cCwgR0RLX0tFWV9GLCBHREtf
Q09OVFJPTF9NQVNLLCBHVEtfQUNDRUxfVklTSUJMRSk7CiAKLSAgICBpdGVtID0gZ3RrX3Rvb2xf
YnV0dG9uX25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19aT09NX0lOKTsKLSAgICB3aW5kb3ctPnpv
b21Jbkl0ZW0gPSBHVEtfV0lER0VUKGl0ZW0pOwotICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBl
ZChpdGVtLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soem9vbUluQ2FsbGJhY2spLCB3aW5kb3cpOwot
ICAgIGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiWm9v
bSBJbiIpOwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRl
bSwgLTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKKyAgICBndGtf
d2lkZ2V0X2FkZF9hY2NlbGVyYXRvcihicm93c2VyV2luZG93U2V0dXBUb29sYmFySXRlbSh3aW5k
b3csIHRvb2xiYXIsIEdUS19UWVBFX1RPT0xfQlVUVE9OLCAiSG9tZSIsICJnby1ob21lIiwgR19D
QUxMQkFDSyhsb2FkSG9tZVBhZ2UpKSwKKyAgICAgICAgImNsaWNrZWQiLCB3aW5kb3ctPmFjY2Vs
R3JvdXAsIEdES19LRVlfSG9tZSwgR0RLX01PRDFfTUFTSywgR1RLX0FDQ0VMX1ZJU0lCTEUpOwog
Ci0gICAgaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tfRklO
RCk7Ci0gICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKGl0ZW0sICJjbGlja2VkIiwgR19DQUxM
QkFDSyhzZWFyY2hDYWxsYmFjayksIHdpbmRvdyk7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9s
YWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksICJGaW5kIik7Ci0gICAgZ3RrX3Rvb2xiYXJfaW5z
ZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9hZGRf
YWNjZWxlcmF0b3IoR1RLX1dJREdFVChpdGVtKSwgImNsaWNrZWQiLCB3aW5kb3ctPmFjY2VsR3Jv
dXAsIEdES19LRVlfRiwgR0RLX0NPTlRST0xfTUFTSywgR1RLX0FDQ0VMX1ZJU0lCTEUpOwotICAg
IGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKLQotICAgIGl0ZW0gPSBndGtfdG9v
bF9idXR0b25fbmV3X2Zyb21fc3RvY2soR1RLX1NUT0NLX0hPTUUpOwotICAgIGdfc2lnbmFsX2Nv
bm5lY3Rfc3dhcHBlZChpdGVtLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0sobG9hZEhvbWVQYWdlKSwg
d2luZG93KTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihp
dGVtKSwgIkhvbWUiKTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJh
ciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X2FkZF9hY2NlbGVyYXRvcihHVEtfV0lER0VU
KGl0ZW0pLCAiY2xpY2tlZCIsIHdpbmRvdy0+YWNjZWxHcm91cCwgR0RLX0tFWV9Ib21lLCBHREtf
TU9EMV9NQVNLLCBHVEtfQUNDRUxfVklTSUJMRSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KEdUS19X
SURHRVQoaXRlbSkpOwotCi0gICAgaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXcoZ3RrX2ltYWdl
X25ld19mcm9tX2ljb25fbmFtZSgidGFiLW5ldyIsIEdUS19JQ09OX1NJWkVfU01BTExfVE9PTEJB
UiksIE5VTEwpOworICAgIEd0a1Rvb2xJdGVtICppdGVtID0gZ3RrX3Rvb2xfYnV0dG9uX25ldyhn
dGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJ0YWItbmV3IiwgR1RLX0lDT05fU0laRV9TTUFM
TF9UT09MQkFSKSwgTlVMTCk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKGl0ZW0sICJj
bGlja2VkIiwgR19DQUxMQkFDSyhuZXdUYWJDYWxsYmFjayksIHdpbmRvdyk7CiAgICAgZ3RrX3Rv
b2xfYnV0dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksICJOZXcgVGFiIik7CiAg
ICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7CkBA
IC0xMTIzLDEzICsxMDQ1LDggQEAgc3RhdGljIHZvaWQgYnJvd3Nlcl93aW5kb3dfaW5pdChCcm93
c2VyV2luZG93ICp3aW5kb3cpCiAgICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRv
b2xiYXIpLCBpdGVtLCAtMSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkp
OwogCi0gICAgaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tf
UkVGUkVTSCk7Ci0gICAgd2luZG93LT5yZWxvYWRPclN0b3BCdXR0b24gPSBHVEtfV0lER0VUKGl0
ZW0pOwotICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChpdGVtLCAiY2xpY2tlZCIsIEdfQ0FM
TEJBQ0socmVsb2FkT3JTdG9wQ2FsbGJhY2spLCB3aW5kb3cpOwotICAgIGd0a190b29sX2J1dHRv
bl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiUmVsb2FkIik7Ci0gICAgZ3RrX3Rv
b2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7CisgICAgd2luZG93
LT5yZWxvYWRPclN0b3BCdXR0b24gPSBicm93c2VyV2luZG93U2V0dXBUb29sYmFySXRlbSh3aW5k
b3csIHRvb2xiYXIsIEdUS19UWVBFX1RPT0xfQlVUVE9OLCAiUmVsb2FkIiwgInZpZXctcmVmcmVz
aCIsIEdfQ0FMTEJBQ0socmVsb2FkT3JTdG9wQ2FsbGJhY2spKTsKICAgICBndGtfd2lkZ2V0X2Fk
ZF9hY2NlbGVyYXRvcih3aW5kb3ctPnJlbG9hZE9yU3RvcEJ1dHRvbiwgImNsaWNrZWQiLCB3aW5k
b3ctPmFjY2VsR3JvdXAsIEdES19LRVlfRjUsIDAsIEdUS19BQ0NFTF9WSVNJQkxFKTsKLSAgICBn
dGtfd2lkZ2V0X3Nob3cod2luZG93LT5yZWxvYWRPclN0b3BCdXR0b24pOwogI2VuZGlmCiAgICAg
R3RrV2lkZ2V0ICp2Ym94ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMLCAw
KTsKICAgICB3aW5kb3ctPm1haW5Cb3ggPSB2Ym94OwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMKaW5kZXggZTdl
N2VkNjQ1M2QwNDlhYzM4M2ZhOTA2YTYzMzQ0MDkxY2VmMDgyZS4uMmZmNDViOTM4Y2ZmYWJlOTVm
ZTE3MTM3MzkzYjhiNmM1MDZkNDk5MyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3Rr
L21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jCkBAIC0xMTEsNyArMTEx
LDcgQEAgc3RhdGljIGNvbnN0IEdPcHRpb25FbnRyeSBjb21tYW5kTGluZU9wdGlvbnNbXSA9CiAg
ICAgeyAiZWRpdG9yLW1vZGUiLCAnZScsIDAsIEdfT1BUSU9OX0FSR19OT05FLCAmZWRpdG9yTW9k
ZSwgIlJ1biBpbiBlZGl0b3IgbW9kZSIsIE5VTEwgfSwKICAgICB7ICJkYXJrLW1vZGUiLCAnZCcs
IDAsIEdfT1BUSU9OX0FSR19OT05FLCAmZGFya01vZGUsICJSdW4gaW4gZGFyayBtb2RlIiwgTlVM
TCB9LAogICAgIHsgInNlc3Npb24tZmlsZSIsICdzJywgMCwgR19PUFRJT05fQVJHX0ZJTEVOQU1F
LCAmc2Vzc2lvbkZpbGUsICJTZXNzaW9uIGZpbGUiLCAiRklMRSIgfSwKLSAgICB7ICJnZW9tZXRy
eSIsICdnJywgMCwgR19PUFRJT05fQVJHX1NUUklORywgJmdlb21ldHJ5LCAiU2V0IHRoZSBzaXpl
IGFuZCBwb3NpdGlvbiBvZiB0aGUgd2luZG93IChXSURUSHhIRUlHSFQrWCtZKSIsICJHRU9NRVRS
WSIgfSwKKyAgICB7ICJnZW9tZXRyeSIsICdnJywgMCwgR19PUFRJT05fQVJHX1NUUklORywgJmdl
b21ldHJ5LCAiVW51c2VkLiBLZXB0IGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBvbmx5Iiwg
IkdFT01FVFJZIiB9LAogICAgIHsgImZ1bGwtc2NyZWVuIiwgJ2YnLCAwLCBHX09QVElPTl9BUkdf
Tk9ORSwgJmZ1bGxTY3JlZW4sICJTZXQgdGhlIHdpbmRvdyB0byBmdWxsLXNjcmVlbiBtb2RlIiwg
TlVMTCB9LAogICAgIHsgInByaXZhdGUiLCAncCcsIDAsIEdfT1BUSU9OX0FSR19OT05FLCAmcHJp
dmF0ZU1vZGUsICJSdW4gaW4gcHJpdmF0ZSBicm93c2luZyBtb2RlIiwgTlVMTCB9LAogICAgIHsg
ImF1dG9tYXRpb24iLCAwLCAwLCBHX09QVElPTl9BUkdfTk9ORSwgJmF1dG9tYXRpb25Nb2RlLCAi
UnVuIGluIGF1dG9tYXRpb24gbW9kZSIsIE5VTEwgfSwKQEAgLTYyMSwxMCArNjIxLDYgQEAgaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgZ19vYmplY3Rfc2V0KGd0a193
aWRnZXRfZ2V0X3NldHRpbmdzKEdUS19XSURHRVQobWFpbldpbmRvdykpLCAiZ3RrLWFwcGxpY2F0
aW9uLXByZWZlci1kYXJrLXRoZW1lIiwgVFJVRSwgTlVMTCk7CiAgICAgaWYgKGZ1bGxTY3JlZW4p
CiAgICAgICAgIGd0a193aW5kb3dfZnVsbHNjcmVlbihHVEtfV0lORE9XKG1haW5XaW5kb3cpKTsK
LSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCi0gICAgZWxzZSBpZiAoZ2VvbWV0cnkp
Ci0gICAgICAgIGd0a193aW5kb3dfcGFyc2VfZ2VvbWV0cnkoR1RLX1dJTkRPVyhtYWluV2luZG93
KSwgZ2VvbWV0cnkpOwotI2VuZGlmCiAKICAgICBpZiAoYmFja2dyb3VuZENvbG9yKQogICAgICAg
ICBicm93c2VyX3dpbmRvd19zZXRfYmFja2dyb3VuZF9jb2xvcihtYWluV2luZG93LCBiYWNrZ3Jv
dW5kQ29sb3IpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397949</attachid>
            <date>2020-04-29 02:28:29 -0700</date>
            <delta_ts>2020-04-29 03:36:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211171-20200429122828.patch</filename>
            <type>text/plain</type>
            <size>37986</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODg3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmFiZTA4MmUwYTQ2MGYyOTY2ZGY5M2NlNjBlMGFjYzFh
YmY5MzhkMS4uOWQyMTFhOWQwOTkxOTNiOGVmYmU4NzlhM2EwNjVjZjkyNzg0NGJmOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDIwLTA0LTI5ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0dUS10gUmVtb3ZlIGRlcHJlY2F0ZWQgR1RLIEFQSSBjYWxscyBmcm9tIE1p
bmlCcm93c2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTExNzEKKworICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KKwor
ICAgICAgICBJbiBwcmVwYXJhdGlvbiB0byBwb3J0aW5nIE1pbmlCcm93c2VyIHRvIEdUSzQsIHJl
bW92ZQorICAgICAgICBhbGwgZGVwcmVjYXRlZCBBUEkgY2FsbHMuIEFsc28gZ2V0IHJpZCBvZiB0
aGUgLS1nZW9tZXRyeQorICAgICAgICBjb21tYW5kLWxpbmUgYXJndW1lbnQgYW5kIG1ha2UgaXQg
YSBuby1vcC4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRzQmFy
LmM6CisgICAgICAgIChicm93c2VyX2Rvd25sb2Fkc19iYXJfaW5pdCk6CisgICAgICAgIChicm93
c2VyX2Rvd25sb2Fkc19iYXJfbmV3KToKKyAgICAgICAgKGFjdGlvbkJ1dHRvbkNsaWNrZWQpOgor
ICAgICAgICAoYnJvd3Nlcl9kb3dubG9hZF9pbml0KToKKyAgICAgICAgKGRvd25sb2FkRmluaXNo
ZWQpOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2VhcmNoQmFyLmM6CisgICAg
ICAgIChkb1NlYXJjaCk6CisgICAgICAgIChzZWFyY2hFbnRyeU1lbnVJY29uUHJlc3NlZENhbGxi
YWNrKToKKyAgICAgICAgKGJyb3dzZXJfc2VhcmNoX2Jhcl9pbml0KToKKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9ndGsvQnJvd3NlclNldHRpbmdzRGlhbG9nLmM6CisgICAgICAgIChicm93c2VyX3Nl
dHRpbmdzX2RpYWxvZ19pbml0KToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRh
Yi5jOgorICAgICAgICAoY3JlYXRlSW5mb0JhclF1ZXN0aW9uTWVzc2FnZSk6CisgICAgICAgIChi
cm93c2VyVGFiQ29uc3RydWN0ZWQpOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
V2luZG93LmM6CisgICAgICAgIChicm93c2VyV2luZG93SGlzdG9yeUl0ZW1TZWxlY3RlZCk6Cisg
ICAgICAgIChicm93c2VyV2luZG93SGlzdG9yeUl0ZW1BY3RpdmF0ZWQpOgorICAgICAgICAoYnJv
d3NlcldpbmRvd0NyZWF0ZUJhY2tGb3J3YXJkTWVudSk6CisgICAgICAgIChicm93c2VyV2luZG93
VXBkYXRlTmF2aWdhdGlvbk1lbnUpOgorICAgICAgICAoYmFja0ZvcndhcmRsaXN0Q2hhbmdlZCk6
CisgICAgICAgICh1cGRhdGVVcmlFbnRyeUljb24pOgorICAgICAgICAod2ViVmlld0lzTG9hZGlu
Z0NoYW5nZWQpOgorICAgICAgICAoYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0p
OgorICAgICAgICAoYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhcik6CisgICAgICAgIChi
cm93c2VyV2luZG93U3dpdGNoVGFiKToKKyAgICAgICAgKGJyb3dzZXJXaW5kb3dTZXR1cFRvb2xi
YXJJdGVtKToKKyAgICAgICAgKGJyb3dzZXJfd2luZG93X2luaXQpOgorICAgICAgICAoYnJvd3Nl
cldpbmRvd1VwZGF0ZU5hdmlnYXRpb25BY3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9ndGsvbWFpbi5jOgorICAgICAgICAobWFpbik6CisKIDIwMjAtMDQtMjggIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGdyYWRl
IG1vdGlvbm1hcmsxLjEucGxhbiB0byByMjYwNjU2CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvQnJvd3NlckRvd25sb2Fkc0Jhci5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jy
b3dzZXJEb3dubG9hZHNCYXIuYwppbmRleCBlNzg4NGY1ZjU2YzgyNzY4OTRhOGMwMGJlZTllZmI5
MWE2NTFiZWNhLi5iOWZlYjhlN2Q5NzcxNmZmNTA1YzNjZTBkM2JlYTgzMGZmMGE5ZDYyIDEwMDY0
NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlckRvd25sb2Fkc0Jhci5jCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyRG93bmxvYWRzQmFyLmMKQEAgLTcwLDcgKzcw
LDggQEAgc3RhdGljIHZvaWQgYnJvd3Nlcl9kb3dubG9hZHNfYmFyX2luaXQoQnJvd3NlckRvd25s
b2Fkc0JhciAqZG93bmxvYWRzQmFyKQogCiAgICAgR3RrV2lkZ2V0ICp0aXRsZSA9IGd0a19sYWJl
bF9uZXcoTlVMTCk7CiAgICAgZ3RrX2xhYmVsX3NldF9tYXJrdXAoR1RLX0xBQkVMKHRpdGxlKSwg
IjxzcGFuIHNpemU9J3h4LWxhcmdlJyB3ZWlnaHQ9J2JvbGQnPkRvd25sb2Fkczwvc3Bhbj4iKTsK
LSAgICBndGtfbWlzY19zZXRfYWxpZ25tZW50KEdUS19NSVNDKHRpdGxlKSwgMC4sIDAuNSk7Cisg
ICAgZ3RrX2xhYmVsX3NldF94YWxpZ24oR1RLX0xBQkVMKHRpdGxlKSwgMC4pOworICAgIGd0a19s
YWJlbF9zZXRfeWFsaWduKEdUS19MQUJFTCh0aXRsZSksIDAuNSk7CiAgICAgZ3RrX2JveF9wYWNr
X3N0YXJ0KEdUS19CT1goY29udGVudEJveCksIHRpdGxlLCBGQUxTRSwgRkFMU0UsIDEyKTsKICAg
ICBndGtfd2lkZ2V0X3Nob3codGl0bGUpOwogfQpAQCAtODQsNyArODUsNyBAQCBzdGF0aWMgdm9p
ZCBicm93c2VyX2Rvd25sb2Fkc19iYXJfY2xhc3NfaW5pdChCcm93c2VyRG93bmxvYWRzQmFyQ2xh
c3MgKmtsYXNzKQogR3RrV2lkZ2V0ICpicm93c2VyX2Rvd25sb2Fkc19iYXJfbmV3KCkKIHsKICAg
ICBHdGtJbmZvQmFyICpkb3dubG9hZHNCYXIgPSBHVEtfSU5GT19CQVIoZ19vYmplY3RfbmV3KEJS
T1dTRVJfVFlQRV9ET1dOTE9BRFNfQkFSLCBOVUxMKSk7Ci0gICAgZ3RrX2luZm9fYmFyX2FkZF9i
dXR0b25zKGRvd25sb2Fkc0JhciwgR1RLX1NUT0NLX0NMT1NFLCBHVEtfUkVTUE9OU0VfQ0xPU0Us
IE5VTEwpOworICAgIGd0a19pbmZvX2Jhcl9hZGRfYnV0dG9ucyhkb3dubG9hZHNCYXIsICJfQ2xv
c2UiLCBHVEtfUkVTUE9OU0VfQ0xPU0UsIE5VTEwpOwogICAgIHJldHVybiBHVEtfV0lER0VUKGRv
d25sb2Fkc0Jhcik7CiB9CiAKQEAgLTExNSw3ICsxMTYsNyBAQCBzdGF0aWMgdm9pZCBhY3Rpb25C
dXR0b25DbGlja2VkKEd0a0J1dHRvbiAqYnV0dG9uLCBCcm93c2VyRG93bmxvYWQgKmJyb3dzZXJE
b3dubAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZ3RrX3Nob3dfdXJpKGd0a193aWRn
ZXRfZ2V0X3NjcmVlbihHVEtfV0lER0VUKGJyb3dzZXJEb3dubG9hZCkpLAorICAgIGd0a19zaG93
X3VyaV9vbl93aW5kb3coR1RLX1dJTkRPVyhndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lE
R0VUKGJyb3dzZXJEb3dubG9hZCkpKSwKICAgICAgICAgICAgICAgICAgd2Via2l0X2Rvd25sb2Fk
X2dldF9kZXN0aW5hdGlvbihicm93c2VyRG93bmxvYWQtPmRvd25sb2FkKSwKICAgICAgICAgICAg
ICAgICAgZ3RrX2dldF9jdXJyZW50X2V2ZW50X3RpbWUoKSwgTlVMTCk7CiAgICAgZ3RrX3dpZGdl
dF9kZXN0cm95KEdUS19XSURHRVQoYnJvd3NlckRvd25sb2FkKSk7CkBAIC0xNDksMTIgKzE1MCwx
NCBAQCBzdGF0aWMgdm9pZCBicm93c2VyX2Rvd25sb2FkX2luaXQoQnJvd3NlckRvd25sb2FkICpk
b3dubG9hZCkKIAogICAgIGRvd25sb2FkLT5zdGF0dXNMYWJlbCA9IGd0a19sYWJlbF9uZXcoIlN0
YXJ0aW5nIERvd25sb2FkIik7CiAgICAgZ3RrX2xhYmVsX3NldF9lbGxpcHNpemUoR1RLX0xBQkVM
KGRvd25sb2FkLT5zdGF0dXNMYWJlbCksIFBBTkdPX0VMTElQU0laRV9FTkQpOwotICAgIGd0a19t
aXNjX3NldF9hbGlnbm1lbnQoR1RLX01JU0MoZG93bmxvYWQtPnN0YXR1c0xhYmVsKSwgMC4sIDAu
NSk7CisgICAgZ3RrX2xhYmVsX3NldF94YWxpZ24oR1RLX0xBQkVMKGRvd25sb2FkLT5zdGF0dXNM
YWJlbCksIDAuKTsKKyAgICBndGtfbGFiZWxfc2V0X3lhbGlnbihHVEtfTEFCRUwoZG93bmxvYWQt
PnN0YXR1c0xhYmVsKSwgMC41KTsKICAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChzdGF0
dXNCb3gpLCBkb3dubG9hZC0+c3RhdHVzTGFiZWwsIFRSVUUsIFRSVUUsIDApOwogICAgIGd0a193
aWRnZXRfc2hvdyhkb3dubG9hZC0+c3RhdHVzTGFiZWwpOwogCiAgICAgZG93bmxvYWQtPnJlbWFp
bmluZ0xhYmVsID0gZ3RrX2xhYmVsX25ldyhOVUxMKTsKLSAgICBndGtfbWlzY19zZXRfYWxpZ25t
ZW50KEdUS19NSVNDKGRvd25sb2FkLT5yZW1haW5pbmdMYWJlbCksIDEuLCAwLjUpOworICAgIGd0
a19sYWJlbF9zZXRfeGFsaWduKEdUS19MQUJFTChkb3dubG9hZC0+cmVtYWluaW5nTGFiZWwpLCAx
Lik7CisgICAgZ3RrX2xhYmVsX3NldF95YWxpZ24oR1RLX0xBQkVMKGRvd25sb2FkLT5yZW1haW5p
bmdMYWJlbCksIDAuNSk7CiAgICAgZ3RrX2JveF9wYWNrX2VuZChHVEtfQk9YKHN0YXR1c0JveCks
IGRvd25sb2FkLT5yZW1haW5pbmdMYWJlbCwgVFJVRSwgVFJVRSwgMCk7CiAgICAgZ3RrX3dpZGdl
dF9zaG93KGRvd25sb2FkLT5yZW1haW5pbmdMYWJlbCk7CiAKQEAgLTE2Miw3ICsxNjUsNyBAQCBz
dGF0aWMgdm9pZCBicm93c2VyX2Rvd25sb2FkX2luaXQoQnJvd3NlckRvd25sb2FkICpkb3dubG9h
ZCkKICAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh2Ym94KSwgZG93bmxvYWQtPnByb2dy
ZXNzQmFyLCBGQUxTRSwgRkFMU0UsIDApOwogICAgIGd0a193aWRnZXRfc2hvdyhkb3dubG9hZC0+
cHJvZ3Jlc3NCYXIpOwogCi0gICAgZG93bmxvYWQtPmFjdGlvbkJ1dHRvbiA9IGd0a19idXR0b25f
bmV3X2Zyb21fc3RvY2soR1RLX1NUT0NLX0NBTkNFTCk7CisgICAgZG93bmxvYWQtPmFjdGlvbkJ1
dHRvbiA9IGd0a19idXR0b25fbmV3X3dpdGhfbW5lbW9uaWMoIl9DYW5jZWwiKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0KGRvd25sb2FkLT5hY3Rpb25CdXR0b24sICJjbGlja2VkIiwgR19DQUxMQkFD
SyhhY3Rpb25CdXR0b25DbGlja2VkKSwgZG93bmxvYWQpOwogICAgIGd0a19ib3hfcGFja19lbmQo
R1RLX0JPWChtYWluQm94KSwgZG93bmxvYWQtPmFjdGlvbkJ1dHRvbiwgRkFMU0UsIEZBTFNFLCAw
KTsKICAgICBndGtfd2lkZ2V0X3Nob3coZG93bmxvYWQtPmFjdGlvbkJ1dHRvbik7CkBAIC0yMzMs
OCArMjM2LDcgQEAgc3RhdGljIHZvaWQgZG93bmxvYWRGaW5pc2hlZChXZWJLaXREb3dubG9hZCAq
ZG93bmxvYWQsIEJyb3dzZXJEb3dubG9hZCAqYnJvd3NlckQKICAgICBndGtfbGFiZWxfc2V0X3Rl
eHQoR1RLX0xBQkVMKGJyb3dzZXJEb3dubG9hZC0+c3RhdHVzTGFiZWwpLCB0ZXh0KTsKICAgICBn
X2ZyZWUodGV4dCk7CiAgICAgZ3RrX2xhYmVsX3NldF90ZXh0KEdUS19MQUJFTChicm93c2VyRG93
bmxvYWQtPnJlbWFpbmluZ0xhYmVsKSwgTlVMTCk7Ci0gICAgZ3RrX2J1dHRvbl9zZXRfaW1hZ2Uo
R1RLX0JVVFRPTihicm93c2VyRG93bmxvYWQtPmFjdGlvbkJ1dHRvbiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgZ3RrX2ltYWdlX25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19PUEVOLCBHVEtf
SUNPTl9TSVpFX0JVVFRPTikpOworICAgIGd0a19idXR0b25fc2V0X2ltYWdlKEdUS19CVVRUT04o
YnJvd3NlckRvd25sb2FkLT5hY3Rpb25CdXR0b24pLCBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9u
YW1lKCJkb2N1bWVudC1vcGVuIiwgR1RLX0lDT05fU0laRV9CVVRUT04pKTsKICAgICBndGtfYnV0
dG9uX3NldF9sYWJlbChHVEtfQlVUVE9OKGJyb3dzZXJEb3dubG9hZC0+YWN0aW9uQnV0dG9uKSwg
Ik9wZW4gLi4uIik7CiAgICAgYnJvd3NlckRvd25sb2FkLT5maW5pc2hlZCA9IFRSVUU7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNlYXJjaEJhci5jIGIvVG9v
bHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJTZWFyY2hCYXIuYwppbmRleCAzNTEyNDNjYmQ1YTZm
YTVjMjQwMDFkZDAzOTcxYTkxZjVhY2NkNmFiLi4xZDVjN2M4YTg4MThjYWYzZjk0ZTk5ODA4ZWEz
YWZjOWQ2NTY4NDA2IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclNl
YXJjaEJhci5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2VhcmNoQmFyLmMK
QEAgLTU3LDEzICs1NywxMyBAQCBzdGF0aWMgdm9pZCBkb1NlYXJjaChCcm93c2VyU2VhcmNoQmFy
ICpzZWFyY2hCYXIpCiAKICAgICBpZiAoIWd0a19lbnRyeV9nZXRfdGV4dF9sZW5ndGgoZW50cnkp
KSB7CiAgICAgICAgIHdlYmtpdF9maW5kX2NvbnRyb2xsZXJfc2VhcmNoX2ZpbmlzaCh3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2ZpbmRfY29udHJvbGxlcihzZWFyY2hCYXItPndlYlZpZXcpKTsKLSAgICAg
ICAgZ3RrX2VudHJ5X3NldF9pY29uX2Zyb21fc3RvY2soZW50cnksIEdUS19FTlRSWV9JQ09OX1NF
Q09OREFSWSwgTlVMTCk7CisgICAgICAgIGd0a19lbnRyeV9zZXRfaWNvbl9mcm9tX2ljb25fbmFt
ZShlbnRyeSwgR1RLX0VOVFJZX0lDT05fU0VDT05EQVJZLCBOVUxMKTsKICAgICAgICAgc2V0RmFp
bGVkU3R5bGVGb3JFbnRyeShzZWFyY2hCYXIsIEZBTFNFKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmICghZ3RrX2VudHJ5X2dldF9pY29uX3N0b2NrKGVudHJ5LCBHVEtfRU5UUllf
SUNPTl9TRUNPTkRBUlkpKQotICAgICAgICBndGtfZW50cnlfc2V0X2ljb25fZnJvbV9zdG9jayhl
bnRyeSwgR1RLX0VOVFJZX0lDT05fU0VDT05EQVJZLCBHVEtfU1RPQ0tfQ0xFQVIpOworICAgIGlm
ICghZ3RrX2VudHJ5X2dldF9pY29uX25hbWUoZW50cnksIEdUS19FTlRSWV9JQ09OX1NFQ09OREFS
WSkpCisgICAgICAgIGd0a19lbnRyeV9zZXRfaWNvbl9mcm9tX2ljb25fbmFtZShlbnRyeSwgR1RL
X0VOVFJZX0lDT05fU0VDT05EQVJZLCAiZWRpdC1jbGVhciIpOwogCiAgICAgV2ViS2l0RmluZE9w
dGlvbnMgb3B0aW9ucyA9IFdFQktJVF9GSU5EX09QVElPTlNfV1JBUF9BUk9VTkQ7CiAgICAgaWYg
KCFndGtfY2hlY2tfbWVudV9pdGVtX2dldF9hY3RpdmUoR1RLX0NIRUNLX01FTlVfSVRFTShzZWFy
Y2hCYXItPmNhc2VDaGVja0J1dHRvbikpKQpAQCAtOTQsMTAgKzk0LDggQEAgc3RhdGljIHZvaWQg
c2VhcmNoQ2xvc2VCdXR0b25DbGlja2VkQ2FsbGJhY2soQnJvd3NlclNlYXJjaEJhciAqc2VhcmNo
QmFyKQogCiBzdGF0aWMgdm9pZCBzZWFyY2hFbnRyeU1lbnVJY29uUHJlc3NlZENhbGxiYWNrKEJy
b3dzZXJTZWFyY2hCYXIgKnNlYXJjaEJhciwgR3RrRW50cnlJY29uUG9zaXRpb24gaWNvblBvc2l0
aW9uLCBHZGtFdmVudCAqZXZlbnQpCiB7Ci0gICAgaWYgKGljb25Qb3NpdGlvbiA9PSBHVEtfRU5U
UllfSUNPTl9QUklNQVJZKSB7Ci0gICAgICAgIEdka0V2ZW50QnV0dG9uICpldmVudEJ1dHRvbiA9
IChHZGtFdmVudEJ1dHRvbiAqKWV2ZW50OwotICAgICAgICBndGtfbWVudV9wb3B1cChHVEtfTUVO
VShzZWFyY2hCYXItPm9wdGlvbnNNZW51KSwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgZXZlbnRC
dXR0b24tPmJ1dHRvbiwgZXZlbnRCdXR0b24tPnRpbWUpOwotICAgIH0KKyAgICBpZiAoaWNvblBv
c2l0aW9uID09IEdUS19FTlRSWV9JQ09OX1BSSU1BUlkpCisgICAgICAgIGd0a19tZW51X3BvcHVw
X2F0X3BvaW50ZXIoR1RLX01FTlUoc2VhcmNoQmFyLT5vcHRpb25zTWVudSksIGV2ZW50KTsKIH0K
IAogc3RhdGljIHZvaWQgc2VhcmNoRW50cnlDbGVhckljb25SZWxlYXNlZENhbGxiYWNrKEJyb3dz
ZXJTZWFyY2hCYXIgKnNlYXJjaEJhciwgR3RrRW50cnlJY29uUG9zaXRpb24gaWNvblBvc2l0aW9u
KQpAQCAtMTU4LDcgKzE1Niw3IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJfc2VhcmNoX2Jhcl9pbml0
KEJyb3dzZXJTZWFyY2hCYXIgKnNlYXJjaEJhcikKICAgICBzZWFyY2hCYXItPmVudHJ5ID0gZ3Rr
X2VudHJ5X25ldygpOwogICAgIGd0a193aWRnZXRfc2V0X25hbWUoc2VhcmNoQmFyLT5lbnRyeSwg
InNlYXJjaEVudHJ5Iik7CiAgICAgZ3RrX2VudHJ5X3NldF9wbGFjZWhvbGRlcl90ZXh0KEdUS19F
TlRSWShzZWFyY2hCYXItPmVudHJ5KSwgIlNlYXJjaCIpOwotICAgIGd0a19lbnRyeV9zZXRfaWNv
bl9mcm9tX3N0b2NrKEdUS19FTlRSWShzZWFyY2hCYXItPmVudHJ5KSwgR1RLX0VOVFJZX0lDT05f
UFJJTUFSWSwgR1RLX1NUT0NLX0ZJTkQpOworICAgIGd0a19lbnRyeV9zZXRfaWNvbl9mcm9tX2lj
b25fbmFtZShHVEtfRU5UUlkoc2VhcmNoQmFyLT5lbnRyeSksIEdUS19FTlRSWV9JQ09OX1BSSU1B
UlksICJlZGl0LWZpbmQiKTsKICAgICBndGtfYm94X3BhY2tfc3RhcnQoaEJveCwgc2VhcmNoQmFy
LT5lbnRyeSwgVFJVRSwgVFJVRSwgMCk7CiAKICAgICBzZWFyY2hCYXItPmNzc1Byb3ZpZGVyID0g
Z3RrX2Nzc19wcm92aWRlcl9uZXcoKTsKQEAgLTE2NywyOCArMTY1LDIxIEBAIHN0YXRpYyB2b2lk
IGJyb3dzZXJfc2VhcmNoX2Jhcl9pbml0KEJyb3dzZXJTZWFyY2hCYXIgKnNlYXJjaEJhcikKICAg
ICBHdGtCb3ggKmhCb3hCdXR0b25zID0gR1RLX0JPWChndGtfYm94X25ldyhHVEtfT1JJRU5UQVRJ
T05fSE9SSVpPTlRBTCwgMCkpOwogICAgIGd0a19ib3hfcGFja19zdGFydChoQm94LCBHVEtfV0lE
R0VUKGhCb3hCdXR0b25zKSwgVFJVRSwgVFJVRSwgMCk7CiAKLSAgICBzZWFyY2hCYXItPnByZXZC
dXR0b24gPSBndGtfYnV0dG9uX25ldygpOworICAgIHNlYXJjaEJhci0+cHJldkJ1dHRvbiA9IGd0
a19idXR0b25fbmV3X2Zyb21faWNvbl9uYW1lKCJnby11cCIsIEdUS19JQ09OX1NJWkVfU01BTExf
VE9PTEJBUik7CiAgICAgR3RrQnV0dG9uICpidXR0b24gPSBHVEtfQlVUVE9OKHNlYXJjaEJhci0+
cHJldkJ1dHRvbik7Ci0gICAgR3RrV2lkZ2V0ICppbWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9z
dG9jayhHVEtfU1RPQ0tfR09fVVAsIEdUS19JQ09OX1NJWkVfU01BTExfVE9PTEJBUik7Ci0gICAg
Z3RrX2J1dHRvbl9zZXRfaW1hZ2UoYnV0dG9uLCBpbWFnZSk7CiAgICAgZ3RrX2J1dHRvbl9zZXRf
cmVsaWVmKGJ1dHRvbiwgR1RLX1JFTElFRl9OT05FKTsKLSAgICBndGtfYnV0dG9uX3NldF9mb2N1
c19vbl9jbGljayhidXR0b24sIEZBTFNFKTsKKyAgICBndGtfd2lkZ2V0X3NldF9mb2N1c19vbl9j
bGljayhzZWFyY2hCYXItPnByZXZCdXR0b24sIEZBTFNFKTsKICAgICBndGtfYm94X3BhY2tfc3Rh
cnQoaEJveEJ1dHRvbnMsIHNlYXJjaEJhci0+cHJldkJ1dHRvbiwgRkFMU0UsIEZBTFNFLCAwKTsK
IAotICAgIHNlYXJjaEJhci0+bmV4dEJ1dHRvbiA9IGd0a19idXR0b25fbmV3KCk7CisgICAgc2Vh
cmNoQmFyLT5uZXh0QnV0dG9uID0gZ3RrX2J1dHRvbl9uZXdfZnJvbV9pY29uX25hbWUoImdvLWRv
d24iLCBHVEtfSUNPTl9TSVpFX1NNQUxMX1RPT0xCQVIpOwogICAgIGJ1dHRvbiA9IEdUS19CVVRU
T04oc2VhcmNoQmFyLT5uZXh0QnV0dG9uKTsKLSAgICBpbWFnZSA9IGd0a19pbWFnZV9uZXdfZnJv
bV9zdG9jayhHVEtfU1RPQ0tfR09fRE9XTiwgR1RLX0lDT05fU0laRV9TTUFMTF9UT09MQkFSKTsK
LSAgICBndGtfYnV0dG9uX3NldF9pbWFnZShidXR0b24sIGltYWdlKTsKICAgICBndGtfYnV0dG9u
X3NldF9yZWxpZWYoYnV0dG9uLCBHVEtfUkVMSUVGX05PTkUpOwotICAgIGd0a19idXR0b25fc2V0
X2ZvY3VzX29uX2NsaWNrKGJ1dHRvbiwgRkFMU0UpOworICAgIGd0a193aWRnZXRfc2V0X2ZvY3Vz
X29uX2NsaWNrKHNlYXJjaEJhci0+bmV4dEJ1dHRvbiwgRkFMU0UpOwogICAgIGd0a19ib3hfcGFj
a19zdGFydChoQm94QnV0dG9ucywgc2VhcmNoQmFyLT5uZXh0QnV0dG9uLCBGQUxTRSwgRkFMU0Us
IDApOwogCi0gICAgR3RrV2lkZ2V0ICpjbG9zZUJ1dHRvbiA9IGd0a19idXR0b25fbmV3KCk7Ci0g
ICAgYnV0dG9uID0gR1RLX0JVVFRPTihjbG9zZUJ1dHRvbik7Ci0gICAgaW1hZ2UgPSBndGtfaW1h
Z2VfbmV3X2Zyb21fc3RvY2soR1RLX1NUT0NLX0NMT1NFLCBHVEtfSUNPTl9TSVpFX1NNQUxMX1RP
T0xCQVIpOwotICAgIGd0a19idXR0b25fc2V0X2ltYWdlKGJ1dHRvbiwgaW1hZ2UpOwotICAgIGd0
a19idXR0b25fc2V0X3JlbGllZihidXR0b24sIEdUS19SRUxJRUZfTk9ORSk7Ci0gICAgZ3RrX2J1
dHRvbl9zZXRfZm9jdXNfb25fY2xpY2soYnV0dG9uLCBGQUxTRSk7CisgICAgR3RrV2lkZ2V0ICpj
bG9zZUJ1dHRvbiA9IGd0a19idXR0b25fbmV3X2Zyb21faWNvbl9uYW1lKCJ3aW5kb3ctY2xvc2Ui
LCBHVEtfSUNPTl9TSVpFX1NNQUxMX1RPT0xCQVIpOworICAgIGd0a19idXR0b25fc2V0X3JlbGll
ZihHVEtfQlVUVE9OKGNsb3NlQnV0dG9uKSwgR1RLX1JFTElFRl9OT05FKTsKKyAgICBndGtfd2lk
Z2V0X3NldF9mb2N1c19vbl9jbGljayhjbG9zZUJ1dHRvbiwgRkFMU0UpOwogICAgIGd0a19ib3hf
cGFja19lbmQoaEJveEJ1dHRvbnMsIGNsb3NlQnV0dG9uLCBGQUxTRSwgRkFMU0UsIDApOwogCiAg
ICAgc2VhcmNoQmFyLT5vcHRpb25zTWVudSA9IGdfb2JqZWN0X3JlZl9zaW5rKGd0a19tZW51X25l
dygpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2V0dGluZ3NE
aWFsb2cuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyU2V0dGluZ3NEaWFsb2cuYwpp
bmRleCAxNzhmMDUzOWQxYjUxMTZlYzcxZGMwZTAwOWFhYzZjODU1ZTA1MmViLi5kNzc1NzY0MDRl
ODQyZDg3NDI4NTEwNWM5MTMzMTNmNDZiNDcxNTM3IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvQnJvd3NlclNldHRpbmdzRGlhbG9nLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIv
Z3RrL0Jyb3dzZXJTZXR0aW5nc0RpYWxvZy5jCkBAIC0xMzMsNyArMTMzLDcgQEAgc3RhdGljIHZv
aWQgYnJvd3Nlcl9zZXR0aW5nc19kaWFsb2dfaW5pdChCcm93c2VyU2V0dGluZ3NEaWFsb2cgKmRp
YWxvZykKICAgICBndGtfd2luZG93X3NldF90aXRsZShHVEtfV0lORE9XKGRpYWxvZyksICJXZWJL
aXQgVmlldyBTZXR0aW5ncyIpOwogICAgIGd0a193aW5kb3dfc2V0X2Rlc3Ryb3lfd2l0aF9wYXJl
bnQoR1RLX1dJTkRPVyhkaWFsb2cpLCBUUlVFKTsKICAgICBndGtfY29udGFpbmVyX3NldF9ib3Jk
ZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihkaWFsb2cpLCA1KTsKLSAgICBndGtfZGlhbG9nX2FkZF9i
dXR0b24oR1RLX0RJQUxPRyhkaWFsb2cpLCBHVEtfU1RPQ0tfQ0xPU0UsIEdUS19SRVNQT05TRV9D
TE9TRSk7CisgICAgZ3RrX2RpYWxvZ19hZGRfYnV0dG9uKEdUS19ESUFMT0coZGlhbG9nKSwgIl9D
bG9zZSIsIEdUS19SRVNQT05TRV9DTE9TRSk7CiAgICAgZ3RrX2RpYWxvZ19zZXRfZGVmYXVsdF9y
ZXNwb25zZShHVEtfRElBTE9HKGRpYWxvZyksIEdUS19SRVNQT05TRV9DTE9TRSk7CiAKICAgICBH
dGtXaWRnZXQgKnNjcm9sbGVkV2luZG93ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19uZXcoTlVMTCwg
TlVMTCk7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jIGIv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwppbmRleCA5NjJmMzNkMTEzZjYxOTJm
MmIzNDllYTA4ODIzNWY2ZTQ4YmI4NzVkLi44NTc5MDk4ZDZkOWJmNWYzZTEwM2U2OWE0YWE5NTcz
YmNmNDU5ZGI2IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5j
CisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMKQEAgLTE1OCwyMiArMTU4
LDI0IEBAIHN0YXRpYyBHdGtXaWRnZXQgKmNyZWF0ZUluZm9CYXJRdWVzdGlvbk1lc3NhZ2UoY29u
c3QgY2hhciAqdGl0bGUsIGNvbnN0IGNoYXIgKnRlCiAgICAgZ3RrX29yaWVudGFibGVfc2V0X29y
aWVudGF0aW9uKEdUS19PUklFTlRBQkxFKGNvbnRlbnRCb3gpLCBHVEtfT1JJRU5UQVRJT05fVkVS
VElDQUwpOwogICAgIGd0a19ib3hfc2V0X3NwYWNpbmcoR1RLX0JPWChjb250ZW50Qm94KSwgMCk7
CiAKLSAgICBHdGtXaWRnZXQgKmxhYmVsID0gZ3RrX2xhYmVsX25ldyhOVUxMKTsKKyAgICBHdGtM
YWJlbCAqbGFiZWwgPSBHVEtfTEFCRUwoZ3RrX2xhYmVsX25ldyhOVUxMKSk7CiAgICAgZ2NoYXIg
Km1hcmt1cCA9IGdfc3RyZHVwX3ByaW50ZigiPHNwYW4gc2l6ZT0neHgtbGFyZ2UnIHdlaWdodD0n
Ym9sZCc+JXM8L3NwYW4+IiwgdGl0bGUpOwotICAgIGd0a19sYWJlbF9zZXRfbWFya3VwKEdUS19M
QUJFTChsYWJlbCksIG1hcmt1cCk7CisgICAgZ3RrX2xhYmVsX3NldF9tYXJrdXAobGFiZWwsIG1h
cmt1cCk7CiAgICAgZ19mcmVlKG1hcmt1cCk7Ci0gICAgZ3RrX2xhYmVsX3NldF9saW5lX3dyYXAo
R1RLX0xBQkVMKGxhYmVsKSwgVFJVRSk7Ci0gICAgZ3RrX2xhYmVsX3NldF9zZWxlY3RhYmxlKEdU
S19MQUJFTChsYWJlbCksIFRSVUUpOwotICAgIGd0a19taXNjX3NldF9hbGlnbm1lbnQoR1RLX01J
U0MobGFiZWwpLCAwLiwgMC41KTsKLSAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWChjb250
ZW50Qm94KSwgbGFiZWwsIEZBTFNFLCBGQUxTRSwgMik7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGxh
YmVsKTsKLQotICAgIGxhYmVsID0gZ3RrX2xhYmVsX25ldyh0ZXh0KTsKLSAgICBndGtfbGFiZWxf
c2V0X2xpbmVfd3JhcChHVEtfTEFCRUwobGFiZWwpLCBUUlVFKTsKLSAgICBndGtfbGFiZWxfc2V0
X3NlbGVjdGFibGUoR1RLX0xBQkVMKGxhYmVsKSwgVFJVRSk7Ci0gICAgZ3RrX21pc2Nfc2V0X2Fs
aWdubWVudChHVEtfTUlTQyhsYWJlbCksIDAuLCAwLjUpOwotICAgIGd0a19ib3hfcGFja19zdGFy
dChHVEtfQk9YKGNvbnRlbnRCb3gpLCBsYWJlbCwgRkFMU0UsIEZBTFNFLCAwKTsKLSAgICBndGtf
d2lkZ2V0X3Nob3cobGFiZWwpOworICAgIGd0a19sYWJlbF9zZXRfbGluZV93cmFwKGxhYmVsLCBU
UlVFKTsKKyAgICBndGtfbGFiZWxfc2V0X3NlbGVjdGFibGUobGFiZWwsIFRSVUUpOworICAgIGd0
a19sYWJlbF9zZXRfeGFsaWduKGxhYmVsLCAwLik7CisgICAgZ3RrX2xhYmVsX3NldF95YWxpZ24o
bGFiZWwsIDAuNSk7CisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1goY29udGVudEJveCks
IEdUS19XSURHRVQobGFiZWwpLCBGQUxTRSwgRkFMU0UsIDIpOworICAgIGd0a193aWRnZXRfc2hv
dyhHVEtfV0lER0VUKGxhYmVsKSk7CisKKyAgICBsYWJlbCA9IEdUS19MQUJFTChndGtfbGFiZWxf
bmV3KHRleHQpKTsKKyAgICBndGtfbGFiZWxfc2V0X2xpbmVfd3JhcChsYWJlbCwgVFJVRSk7Cisg
ICAgZ3RrX2xhYmVsX3NldF9zZWxlY3RhYmxlKGxhYmVsLCBUUlVFKTsKKyAgICBndGtfbGFiZWxf
c2V0X3hhbGlnbihsYWJlbCwgMC4pOworICAgIGd0a19sYWJlbF9zZXRfeWFsaWduKGxhYmVsLCAw
LjUpOworICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGNvbnRlbnRCb3gpLCBHVEtfV0lE
R0VUKGxhYmVsKSwgRkFMU0UsIEZBTFNFLCAwKTsKKyAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJ
REdFVChsYWJlbCkpOwogCiAgICAgcmV0dXJuIGRpYWxvZzsKIH0KQEAgLTQwOCw4ICs0MTAsOCBA
QCBzdGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVjdCkKICAg
ICBndGtfd2lkZ2V0X3NldF9oYWxpZ24odGFiLT5zdGF0dXNMYWJlbCwgR1RLX0FMSUdOX1NUQVJU
KTsKICAgICBndGtfd2lkZ2V0X3NldF92YWxpZ24odGFiLT5zdGF0dXNMYWJlbCwgR1RLX0FMSUdO
X0VORCk7CiAjaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQotICAgIGd0a193aWRnZXRf
c2V0X21hcmdpbl9sZWZ0KHRhYi0+c3RhdHVzTGFiZWwsIDEpOwotICAgIGd0a193aWRnZXRfc2V0
X21hcmdpbl9yaWdodCh0YWItPnN0YXR1c0xhYmVsLCAxKTsKKyAgICBndGtfd2lkZ2V0X3NldF9t
YXJnaW5fc3RhcnQodGFiLT5zdGF0dXNMYWJlbCwgMSk7CisgICAgZ3RrX3dpZGdldF9zZXRfbWFy
Z2luX2VuZCh0YWItPnN0YXR1c0xhYmVsLCAxKTsKICAgICBndGtfd2lkZ2V0X3NldF9tYXJnaW5f
dG9wKHRhYi0+c3RhdHVzTGFiZWwsIDEpOwogICAgIGd0a193aWRnZXRfc2V0X21hcmdpbl9ib3R0
b20odGFiLT5zdGF0dXNMYWJlbCwgMSk7CiAjZW5kaWYKQEAgLTQ0Nyw3ICs0NDksNiBAQCBzdGF0
aWMgdm9pZCBicm93c2VyVGFiQ29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVjdCkKICAgICB0YWIt
PnRpdGxlTGFiZWwgPSBndGtfbGFiZWxfbmV3KE5VTEwpOwogICAgIGd0a19sYWJlbF9zZXRfZWxs
aXBzaXplKEdUS19MQUJFTCh0YWItPnRpdGxlTGFiZWwpLCBQQU5HT19FTExJUFNJWkVfRU5EKTsK
ICAgICBndGtfbGFiZWxfc2V0X3NpbmdsZV9saW5lX21vZGUoR1RLX0xBQkVMKHRhYi0+dGl0bGVM
YWJlbCksIFRSVUUpOwotICAgIGd0a19taXNjX3NldF9wYWRkaW5nKEdUS19NSVNDKHRhYi0+dGl0
bGVMYWJlbCksIDAsIDApOwogICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGhib3gpLCB0
YWItPnRpdGxlTGFiZWwsIEZBTFNFLCBGQUxTRSwgMCk7CiAgICAgZ3RrX3dpZGdldF9zaG93KHRh
Yi0+dGl0bGVMYWJlbCk7CiAKQEAgLTQ1Nyw3ICs0NTgsNyBAQCBzdGF0aWMgdm9pZCBicm93c2Vy
VGFiQ29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVjdCkKICAgICB0YWItPnRpdGxlQ2xvc2VCdXR0
b24gPSBndGtfYnV0dG9uX25ldygpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZCh0YWIt
PnRpdGxlQ2xvc2VCdXR0b24sICJjbGlja2VkIiwgR19DQUxMQkFDSyhndGtfd2lkZ2V0X2Rlc3Ry
b3kpLCB0YWIpOwogICAgIGd0a19idXR0b25fc2V0X3JlbGllZihHVEtfQlVUVE9OKHRhYi0+dGl0
bGVDbG9zZUJ1dHRvbiksIEdUS19SRUxJRUZfTk9ORSk7Ci0gICAgZ3RrX2J1dHRvbl9zZXRfZm9j
dXNfb25fY2xpY2soR1RLX0JVVFRPTih0YWItPnRpdGxlQ2xvc2VCdXR0b24pLCBGQUxTRSk7Cisg
ICAgZ3RrX3dpZGdldF9zZXRfZm9jdXNfb25fY2xpY2sodGFiLT50aXRsZUNsb3NlQnV0dG9uLCBG
QUxTRSk7CiAKICAgICBHdGtXaWRnZXQgKmltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX2ljb25f
bmFtZSgid2luZG93LWNsb3NlLXN5bWJvbGljIiwgR1RLX0lDT05fU0laRV9NRU5VKTsKICAgICBn
dGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiksIGlt
YWdlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMg
Yi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCmluZGV4IDUzYzU2NGY0NTQz
ZDcwNWM5YmFmZTFmNDE4MzNjMjNiM2M4ZTdmMzAuLmU3ODZmZGNmZTYzNTJiZTI3NDI4MWQ1OGE1
MjYwYjE1ZWE2MjI1NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
V2luZG93LmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwpAQCAt
MjEwLDE1ICsyMTAsMTUgQEAgc3RhdGljIHZvaWQgZG93bmxvYWRTdGFydGVkKFdlYktpdFdlYkNv
bnRleHQgKndlYkNvbnRleHQsIFdlYktpdERvd25sb2FkICpkb3dubG8KIH0KIAogI2lmICFHVEtf
Q0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKLXN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dIaXN0b3J5
SXRlbVNlbGVjdGVkKEJyb3dzZXJXaW5kb3cgKndpbmRvdywgR3RrTWVudUl0ZW0gKml0ZW0pCitz
dGF0aWMgdm9pZCBicm93c2VyV2luZG93SGlzdG9yeUl0ZW1TZWxlY3RlZChCcm93c2VyV2luZG93
ICp3aW5kb3csIEd0a01lbnVJdGVtICptZW51SXRlbSkKIHsKLSAgICBHdGtBY3Rpb24gKmFjdGlv
biA9IGd0a19hY3RpdmF0YWJsZV9nZXRfcmVsYXRlZF9hY3Rpb24oR1RLX0FDVElWQVRBQkxFKGl0
ZW0pKTsKLSAgICBicm93c2VyV2luZG93U2V0U3RhdHVzVGV4dCh3aW5kb3csIGFjdGlvbiA/IGd0
a19hY3Rpb25fZ2V0X25hbWUoYWN0aW9uKSA6IE5VTEwpOworICAgIFdlYktpdEJhY2tGb3J3YXJk
TGlzdEl0ZW0gKml0ZW0gPSBnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChtZW51SXRlbSksICJi
YWNrLWZvcndhcmQtbGlzdC1pdGVtIik7CisgICAgYnJvd3NlcldpbmRvd1NldFN0YXR1c1RleHQo
d2luZG93LCBpdGVtID8gd2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fZ2V0X3VyaShpdGVt
KSA6IE5VTEwpOwogfQogCi1zdGF0aWMgdm9pZCBicm93c2VyV2luZG93SGlzdG9yeUl0ZW1BY3Rp
dmF0ZWQoQnJvd3NlcldpbmRvdyAqd2luZG93LCBHdGtBY3Rpb24gKmFjdGlvbikKK3N0YXRpYyB2
b2lkIGJyb3dzZXJXaW5kb3dIaXN0b3J5SXRlbUFjdGl2YXRlZChCcm93c2VyV2luZG93ICp3aW5k
b3csIEd0a01lbnVJdGVtICptZW51SXRlbSkKIHsKLSAgICBXZWJLaXRCYWNrRm9yd2FyZExpc3RJ
dGVtICppdGVtID0gZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoYWN0aW9uKSwgImJhY2stZm9y
d2FyZC1saXN0LWl0ZW0iKTsKKyAgICBXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtICppdGVtID0g
Z19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QobWVudUl0ZW0pLCAiYmFjay1mb3J3YXJkLWxpc3Qt
aXRlbSIpOwogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzUsMTYgKzIz
NSwxMiBAQCBzdGF0aWMgR3RrV2lkZ2V0ICpicm93c2VyV2luZG93Q3JlYXRlQmFja0ZvcndhcmRN
ZW51KEJyb3dzZXJXaW5kb3cgKndpbmRvdywgR0xpcwogICAgIEdMaXN0ICpsaXN0SXRlbTsKICAg
ICBmb3IgKGxpc3RJdGVtID0gbGlzdDsgbGlzdEl0ZW07IGxpc3RJdGVtID0gZ19saXN0X25leHQo
bGlzdEl0ZW0pKSB7CiAgICAgICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0gKml0ZW0gPSAo
V2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbSAqKWxpc3RJdGVtLT5kYXRhOwotICAgICAgICBjb25z
dCBjaGFyICp1cmkgPSB3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9nZXRfdXJpKGl0ZW0p
OwogICAgICAgICBjb25zdCBjaGFyICp0aXRsZSA9IHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9p
dGVtX2dldF90aXRsZShpdGVtKTsKIAotICAgICAgICBHdGtBY3Rpb24gKmFjdGlvbiA9IGd0a19h
Y3Rpb25fbmV3KHVyaSwgdGl0bGUsIE5VTEwsIE5VTEwpOwotICAgICAgICBnX29iamVjdF9zZXRf
ZGF0YV9mdWxsKEdfT0JKRUNUKGFjdGlvbiksICJiYWNrLWZvcndhcmQtbGlzdC1pdGVtIiwgZ19v
YmplY3RfcmVmKGl0ZW0pLCBnX29iamVjdF91bnJlZik7Ci0gICAgICAgIGdfc2lnbmFsX2Nvbm5l
Y3Rfc3dhcHBlZChhY3Rpb24sICJhY3RpdmF0ZSIsIEdfQ0FMTEJBQ0soYnJvd3NlcldpbmRvd0hp
c3RvcnlJdGVtQWN0aXZhdGVkKSwgd2luZG93KTsKLQotICAgICAgICBHdGtXaWRnZXQgKm1lbnVJ
dGVtID0gZ3RrX2FjdGlvbl9jcmVhdGVfbWVudV9pdGVtKGFjdGlvbik7CisgICAgICAgIEd0a1dp
ZGdldCAqbWVudUl0ZW0gPSBndGtfbWVudV9pdGVtX25ld193aXRoX2xhYmVsKHRpdGxlKTsKKyAg
ICAgICAgZ19vYmplY3Rfc2V0X2RhdGFfZnVsbChHX09CSkVDVChtZW51SXRlbSksICJiYWNrLWZv
cndhcmQtbGlzdC1pdGVtIiwgZ19vYmplY3RfcmVmKGl0ZW0pLCBnX29iamVjdF91bnJlZik7CiAg
ICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtZW51SXRlbSwgInNlbGVjdCIsIEdfQ0FM
TEJBQ0soYnJvd3NlcldpbmRvd0hpc3RvcnlJdGVtU2VsZWN0ZWQpLCB3aW5kb3cpOwotICAgICAg
ICBnX29iamVjdF91bnJlZihhY3Rpb24pOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBw
ZWQobWVudUl0ZW0sICJhY3RpdmF0ZSIsIEdfQ0FMTEJBQ0soYnJvd3NlcldpbmRvd0hpc3RvcnlJ
dGVtQWN0aXZhdGVkKSwgd2luZG93KTsKIAogICAgICAgICBndGtfbWVudV9zaGVsbF9wcmVwZW5k
KEdUS19NRU5VX1NIRUxMKG1lbnUpLCBtZW51SXRlbSk7CiAgICAgICAgIGd0a193aWRnZXRfc2hv
dyhtZW51SXRlbSk7CkBAIC0yNTYsNyArMjUyLDcgQEAgc3RhdGljIEd0a1dpZGdldCAqYnJvd3Nl
cldpbmRvd0NyZWF0ZUJhY2tGb3J3YXJkTWVudShCcm93c2VyV2luZG93ICp3aW5kb3csIEdMaXMK
IH0KICNlbmRpZgogCi1zdGF0aWMgdm9pZCBicm93c2VyV2luZG93VXBkYXRlTmF2aWdhdGlvbkFj
dGlvbnMoQnJvd3NlcldpbmRvdyAqd2luZG93LCBXZWJLaXRCYWNrRm9yd2FyZExpc3QgKmJhY2tG
b3J3YXJkbGlzdCkKK3N0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZpZ2F0aW9uTWVu
dShCcm93c2VyV2luZG93ICp3aW5kb3csIFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja0Zvcndh
cmRsaXN0KQogewogI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5OCwgMCkKICAgICBXZWJLaXRX
ZWJWaWV3ICp3ZWJWaWV3ID0gYnJvd3Nlcl90YWJfZ2V0X3dlYl92aWV3KHdpbmRvdy0+YWN0aXZl
VGFiKTsKQEAgLTMwMCw3ICsyOTYsNyBAQCBzdGF0aWMgdm9pZCBicm93c2VyV2luZG93VHJ5Q2xv
c2UoQnJvd3NlcldpbmRvdyAqd2luZG93KQogCiBzdGF0aWMgdm9pZCBiYWNrRm9yd2FyZGxpc3RD
aGFuZ2VkKFdlYktpdEJhY2tGb3J3YXJkTGlzdCAqYmFja0ZvcndhcmRsaXN0LCBXZWJLaXRCYWNr
Rm9yd2FyZExpc3RJdGVtICppdGVtQWRkZWQsIEdMaXN0ICppdGVtc1JlbW92ZWQsIEJyb3dzZXJX
aW5kb3cgKndpbmRvdykKIHsKLSAgICBicm93c2VyV2luZG93VXBkYXRlTmF2aWdhdGlvbkFjdGlv
bnMod2luZG93LCBiYWNrRm9yd2FyZGxpc3QpOworICAgIGJyb3dzZXJXaW5kb3dVcGRhdGVOYXZp
Z2F0aW9uTWVudSh3aW5kb3csIGJhY2tGb3J3YXJkbGlzdCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdl
YlZpZXdDbG9zZShXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBCcm93c2VyV2luZG93ICp3aW5kb3cp
CkBAIC00OTUsNyArNDkxLDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlVXJpRW50cnlJY29uKEJyb3dz
ZXJXaW5kb3cgKndpbmRvdykKICAgICBpZiAod2luZG93LT5mYXZpY29uKQogICAgICAgICBndGtf
ZW50cnlfc2V0X2ljb25fZnJvbV9waXhidWYoZW50cnksIEdUS19FTlRSWV9JQ09OX1BSSU1BUlks
IHdpbmRvdy0+ZmF2aWNvbik7CiAgICAgZWxzZQotICAgICAgICBndGtfZW50cnlfc2V0X2ljb25f
ZnJvbV9zdG9jayhlbnRyeSwgR1RLX0VOVFJZX0lDT05fUFJJTUFSWSwgR1RLX1NUT0NLX05FVyk7
CisgICAgICAgIGd0a19lbnRyeV9zZXRfaWNvbl9mcm9tX2ljb25fbmFtZShlbnRyeSwgR1RLX0VO
VFJZX0lDT05fUFJJTUFSWSwgImRvY3VtZW50LW5ldyIpOwogI2VuZGlmCiB9CiAKQEAgLTUyMiw3
ICs1MTgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJWaWV3SXNMb2FkaW5nQ2hhbmdlZChXZWJLaXRXZWJW
aWV3ICp3ZWJWaWV3LCBHUGFyYW1TcGVjICpwYXJhbVNwZQogI2lmICFHVEtfQ0hFQ0tfVkVSU0lP
TigzLCA5OCwgMCkKICAgICBnYm9vbGVhbiBpc0xvYWRpbmcgPSB3ZWJraXRfd2ViX3ZpZXdfaXNf
bG9hZGluZyh3ZWJWaWV3KTsKICAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09M
X0JVVFRPTih3aW5kb3ctPnJlbG9hZE9yU3RvcEJ1dHRvbiksIGlzTG9hZGluZyA/ICJTdG9wIiA6
ICJSZWxvYWQiKTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X3N0b2NrX2lkKEdUS19UT09MX0JV
VFRPTih3aW5kb3ctPnJlbG9hZE9yU3RvcEJ1dHRvbiksIGlzTG9hZGluZyA/IEdUS19TVE9DS19T
VE9QIDogR1RLX1NUT0NLX1JFRlJFU0gpOworICAgIGd0a190b29sX2J1dHRvbl9zZXRfaWNvbl9u
YW1lKEdUS19UT09MX0JVVFRPTih3aW5kb3ctPnJlbG9hZE9yU3RvcEJ1dHRvbiksIGlzTG9hZGlu
ZyA/ICJwcm9jZXNzLXN0b3AiIDogInZpZXctcmVmcmVzaCIpOwogI2VuZGlmCiB9CiAKQEAgLTc1
OCw2ICs3NTQsMTkgQEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd0Rpc3Bvc2UoR09iamVjdCAq
Z09iamVjdCkKICAgICBHX09CSkVDVF9DTEFTUyhicm93c2VyX3dpbmRvd19wYXJlbnRfY2xhc3Mp
LT5kaXNwb3NlKGdPYmplY3QpOwogfQogCitzdGF0aWMgR3RrV2lkZ2V0ICoKK2Jyb3dzZXJXaW5k
b3dTZXR1cEVkaXRvclRvb2xiYXJJdGVtKEJyb3dzZXJXaW5kb3cqIHdpbmRvdywgR3RrV2lkZ2V0
KiB0b29sYmFyLCBHVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBsYWJlbCwgY29uc3QgY2hhciogbmFt
ZWRJY29uKQoreworICAgIEd0a1dpZGdldCAqaXRlbSA9IGdfb2JqZWN0X25ldyh0eXBlLCAiaWNv
bi1uYW1lIiwgbmFtZWRJY29uLCBOVUxMKTsKKyAgICBndGtfd2lkZ2V0X3NldF9uYW1lKGl0ZW0s
IGxhYmVsKTsKKyAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihp
dGVtKSwgbGFiZWwpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QoaXRlbSksIHR5cGUg
PT0gR1RLX1RZUEVfVE9HR0xFX1RPT0xfQlVUVE9OID8gInRvZ2dsZWQiIDogImNsaWNrZWQiLCBH
X0NBTExCQUNLKGVkaXRpbmdDb21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOworICAgIGd0a190b29s
YmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgR1RLX1RPT0xfSVRFTShpdGVtKSwgLTEp
OworICAgIGd0a193aWRnZXRfc2hvdyhpdGVtKTsKKworICAgIHJldHVybiBpdGVtOworfQorCiBz
dGF0aWMgdm9pZCBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFyKEJyb3dzZXJXaW5kb3cg
KndpbmRvdykKIHsKICNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgOTgsIDApCkBAIC03NjUsMTAy
ICs3NzQsNTAgQEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhcihC
cm93c2VyV2luZG93ICp3aW5kb3cpCiAgICAgZ3RrX29yaWVudGFibGVfc2V0X29yaWVudGF0aW9u
KEdUS19PUklFTlRBQkxFKHRvb2xiYXIpLCBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCk7CiAg
ICAgZ3RrX3Rvb2xiYXJfc2V0X3N0eWxlKEdUS19UT09MQkFSKHRvb2xiYXIpLCBHVEtfVE9PTEJB
Ul9CT1RIX0hPUklaKTsKIAotICAgIEd0a1Rvb2xJdGVtICppdGVtID0gZ3RrX3RvZ2dsZV90b29s
X2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tfQk9MRCk7Ci0gICAgd2luZG93LT5ib2xk
SXRlbSA9IEdUS19XSURHRVQoaXRlbSk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfbmFtZShHVEtfV0lE
R0VUKGl0ZW0pLCAiQm9sZCIpOwotICAgIGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RP
T0xfQlVUVE9OKGl0ZW0pLCAiQm9sZCIpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qo
aXRlbSksICJ0b2dnbGVkIiwgR19DQUxMQkFDSyhlZGl0aW5nQ29tbWFuZENhbGxiYWNrKSwgd2lu
ZG93KTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0s
IC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7Ci0KLSAgICBpdGVt
ID0gZ3RrX3RvZ2dsZV90b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tfSVRBTElD
KTsKLSAgICB3aW5kb3ctPml0YWxpY0l0ZW0gPSBHVEtfV0lER0VUKGl0ZW0pOwotICAgIGd0a193
aWRnZXRfc2V0X25hbWUoR1RLX1dJREdFVChpdGVtKSwgIkl0YWxpYyIpOwotICAgIGd0a190b29s
X2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiSXRhbGljIik7Ci0gICAg
Z19zaWduYWxfY29ubmVjdChHX09CSkVDVChpdGVtKSwgInRvZ2dsZWQiLCBHX0NBTExCQUNLKGVk
aXRpbmdDb21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOwotICAgIGd0a190b29sYmFyX2luc2VydChH
VEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhHVEtf
V0lER0VUKGl0ZW0pKTsKKyAgICB3aW5kb3ctPmJvbGRJdGVtID0gYnJvd3NlcldpbmRvd1NldHVw
RWRpdG9yVG9vbGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT0dHTEVfVE9PTF9C
VVRUT04sICJCb2xkIiwgImZvcm1hdC10ZXh0LWJvbGQiKTsKKyAgICB3aW5kb3ctPml0YWxpY0l0
ZW0gPSBicm93c2VyV2luZG93U2V0dXBFZGl0b3JUb29sYmFySXRlbSh3aW5kb3csIHRvb2xiYXIs
IEdUS19UWVBFX1RPR0dMRV9UT09MX0JVVFRPTiwgIkl0YWxpYyIsICJmb3JtYXQtdGV4dC1pdGFs
aWMiKTsKKyAgICB3aW5kb3ctPnVuZGVybGluZUl0ZW0gPSBicm93c2VyV2luZG93U2V0dXBFZGl0
b3JUb29sYmFySXRlbSh3aW5kb3csIHRvb2xiYXIsIEdUS19UWVBFX1RPR0dMRV9UT09MX0JVVFRP
TiwgIlVuZGVybGluZSIsICJmb3JtYXQtdGV4dC11bmRlcmxpbmUiKTsKKyAgICB3aW5kb3ctPnN0
cmlrZXRocm91Z2hJdGVtID0gYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0od2lu
ZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT0dHTEVfVE9PTF9CVVRUT04sICJTdHJpa2V0aHJvdWdo
IiwgImZvcm1hdC10ZXh0LXN0cmlrZXRocm91Z2giKTsKIAotICAgIGl0ZW0gPSBndGtfdG9nZ2xl
X3Rvb2xfYnV0dG9uX25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19VTkRFUkxJTkUpOwotICAgIHdp
bmRvdy0+dW5kZXJsaW5lSXRlbSA9IEdUS19XSURHRVQoaXRlbSk7Ci0gICAgZ3RrX3dpZGdldF9z
ZXRfbmFtZShHVEtfV0lER0VUKGl0ZW0pLCAiVW5kZXJsaW5lIik7Ci0gICAgZ3RrX3Rvb2xfYnV0
dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksICJVbmRlcmxpbmUiKTsKLSAgICBn
X3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0pLCAidG9nZ2xlZCIsIEdfQ0FMTEJBQ0soZWRp
dGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7CisgICAgR3RrVG9vbEl0ZW0gKml0ZW0gPSBn
dGtfc2VwYXJhdG9yX3Rvb2xfaXRlbV9uZXcoKTsKICAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RL
X1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKICAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJ
REdFVChpdGVtKSk7CiAKLSAgICBpdGVtID0gZ3RrX3RvZ2dsZV90b29sX2J1dHRvbl9uZXdfZnJv
bV9zdG9jayhHVEtfU1RPQ0tfU1RSSUtFVEhST1VHSCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfbmFt
ZShHVEtfV0lER0VUKGl0ZW0pLCAiU3RyaWtldGhyb3VnaCIpOwotICAgIGd0a190b29sX2J1dHRv
bl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiU3RyaWtldGhyb3VnaCIpOwotICAg
IHdpbmRvdy0+c3RyaWtldGhyb3VnaEl0ZW0gPSBHVEtfV0lER0VUKGl0ZW0pOwotICAgIGdfc2ln
bmFsX2Nvbm5lY3QoR19PQkpFQ1QoaXRlbSksICJ0b2dnbGVkIiwgR19DQUxMQkFDSyhlZGl0aW5n
Q29tbWFuZENhbGxiYWNrKSwgd2luZG93KTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RP
T0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdF
VChpdGVtKSk7CisgICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0ZW0od2luZG93
LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9D
VVQsICJlZGl0LWN1dCIpOworICAgIGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXJJdGVt
KHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9PTF9CVVRUT04sIFdFQktJVF9FRElUSU5HX0NP
TU1BTkRfQ09QWSwgImVkaXQtY29weSIpOworICAgIGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRv
b2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9PTF9CVVRUT04sIFdFQktJVF9F
RElUSU5HX0NPTU1BTkRfUEFTVEUsICJlZGl0LXBhc3RlIik7CiAKICAgICBpdGVtID0gZ3RrX3Nl
cGFyYXRvcl90b29sX2l0ZW1fbmV3KCk7CiAgICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09M
QkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQo
aXRlbSkpOwogCi0gICAgaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtf
U1RPQ0tfQ1VUKTsKLSAgICBndGtfd2lkZ2V0X3NldF9uYW1lKEdUS19XSURHRVQoaXRlbSksIFdF
QktJVF9FRElUSU5HX0NPTU1BTkRfQ1VUKTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVs
KEdUS19UT09MX0JVVFRPTihpdGVtKSwgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DVVQpOwotICAg
IGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QoaXRlbSksICJjbGlja2VkIiwgR19DQUxMQkFDSyhl
ZGl0aW5nQ29tbWFuZENhbGxiYWNrKSwgd2luZG93KTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQo
R1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RL
X1dJREdFVChpdGVtKSk7Ci0KLSAgICBpdGVtID0gZ3RrX3Rvb2xfYnV0dG9uX25ld19mcm9tX3N0
b2NrKEdUS19TVE9DS19DT1BZKTsKLSAgICBndGtfd2lkZ2V0X3NldF9uYW1lKEdUS19XSURHRVQo
aXRlbSksIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ09QWSk7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9u
X3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksIFdFQktJVF9FRElUSU5HX0NPTU1BTkRf
Q09QWSk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChpdGVtKSwgImNsaWNrZWQiLCBH
X0NBTExCQUNLKGVkaXRpbmdDb21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOwotICAgIGd0a190b29s
YmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwotICAgIGd0a193aWRn
ZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKLQotICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25f
bmV3X2Zyb21fc3RvY2soR1RLX1NUT0NLX1BBU1RFKTsKLSAgICBndGtfd2lkZ2V0X3NldF9uYW1l
KEdUS19XSURHRVQoaXRlbSksIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUEFTVEUpOwotICAgIGd0
a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCBXRUJLSVRfRURJ
VElOR19DT01NQU5EX1BBU1RFKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0p
LCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soZWRpdGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7
Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7
Ci0gICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOworICAgIGJyb3dzZXJXaW5k
b3dTZXR1cEVkaXRvclRvb2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9PTF9C
VVRUT04sIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfVU5ETywgImVkaXQtdW5kbyIpOworICAgIGJy
b3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZ
UEVfVE9PTF9CVVRUT04sIFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUkVETywgImVkaXQtcmVkbyIp
OwogCiAgICAgaXRlbSA9IGd0a19zZXBhcmF0b3JfdG9vbF9pdGVtX25ldygpOwogICAgIGd0a190
b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwogICAgIGd0a193
aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKIAotICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0
b25fbmV3X2Zyb21fc3RvY2soR1RLX1NUT0NLX1VORE8pOwotICAgIGd0a193aWRnZXRfc2V0X25h
bWUoR1RLX1dJREdFVChpdGVtKSwgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9VTkRPKTsKLSAgICBn
dGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgV0VCS0lUX0VE
SVRJTkdfQ09NTUFORF9VTkRPKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0p
LCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soZWRpdGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7
Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7
Ci0gICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOwotCi0gICAgaXRlbSA9IGd0
a190b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tfUkVETyk7Ci0gICAgZ3RrX3dp
ZGdldF9zZXRfbmFtZShHVEtfV0lER0VUKGl0ZW0pLCBXRUJLSVRfRURJVElOR19DT01NQU5EX1JF
RE8pOwotICAgIGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0p
LCBXRUJLSVRfRURJVElOR19DT01NQU5EX1JFRE8pOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19P
QkpFQ1QoaXRlbSksICJjbGlja2VkIiwgR19DQUxMQkFDSyhlZGl0aW5nQ29tbWFuZENhbGxiYWNr
KSwgd2luZG93KTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciks
IGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7Ci0KLSAg
ICBpdGVtID0gZ3RrX3NlcGFyYXRvcl90b29sX2l0ZW1fbmV3KCk7Ci0gICAgZ3RrX3Rvb2xiYXJf
aW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9z
aG93KEdUS19XSURHRVQoaXRlbSkpOwotCi0gICAgaXRlbSA9IGd0a19yYWRpb190b29sX2J1dHRv
bl9uZXdfZnJvbV9zdG9jayhOVUxMLCBHVEtfU1RPQ0tfSlVTVElGWV9MRUZUKTsKKyAgICBpdGVt
ID0gZ3RrX3JhZGlvX3Rvb2xfYnV0dG9uX25ldyhOVUxMKTsKICAgICBHU0xpc3QgKmp1c3RpZnlS
YWRpb0dyb3VwID0gZ3RrX3JhZGlvX3Rvb2xfYnV0dG9uX2dldF9ncm91cChHVEtfUkFESU9fVE9P
TF9CVVRUT04oaXRlbSkpOworICAgIGd0a190b29sX2J1dHRvbl9zZXRfaWNvbl9uYW1lKEdUS19U
T09MX0JVVFRPTihpdGVtKSwgImZvcm1hdC1qdXN0aWZ5LWxlZnQiKTsKICAgICBndGtfd2lkZ2V0
X3NldF9uYW1lKEdUS19XSURHRVQoaXRlbSksICJKdXN0aWZ5TGVmdCIpOwogICAgIGd0a190b29s
X2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiSnVzdGlmeSBMZWZ0Iik7
CiAgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChpdGVtKSwgInRvZ2dsZWQiLCBHX0NBTExC
QUNLKGVkaXRpbmdDb21tYW5kQ2FsbGJhY2spLCB3aW5kb3cpOwogICAgIGd0a190b29sYmFyX2lu
c2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwogICAgIGd0a193aWRnZXRfc2hv
dyhHVEtfV0lER0VUKGl0ZW0pKTsKIAotICAgIGl0ZW0gPSBndGtfcmFkaW9fdG9vbF9idXR0b25f
bmV3X2Zyb21fc3RvY2soanVzdGlmeVJhZGlvR3JvdXAsIEdUS19TVE9DS19KVVNUSUZZX0NFTlRF
Uik7CisgICAgaXRlbSA9IGd0a19yYWRpb190b29sX2J1dHRvbl9uZXcoanVzdGlmeVJhZGlvR3Jv
dXApOwogICAgIGp1c3RpZnlSYWRpb0dyb3VwID0gZ3RrX3JhZGlvX3Rvb2xfYnV0dG9uX2dldF9n
cm91cChHVEtfUkFESU9fVE9PTF9CVVRUT04oaXRlbSkpOworICAgIGd0a190b29sX2J1dHRvbl9z
ZXRfaWNvbl9uYW1lKEdUS19UT09MX0JVVFRPTihpdGVtKSwgImZvcm1hdC1qdXN0aWZ5LWNlbnRl
ciIpOwogICAgIGd0a193aWRnZXRfc2V0X25hbWUoR1RLX1dJREdFVChpdGVtKSwgIkp1c3RpZnlD
ZW50ZXIiKTsKICAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihp
dGVtKSwgIkp1c3RpZnkgQ2VudGVyIik7CiAgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChp
dGVtKSwgInRvZ2dsZWQiLCBHX0NBTExCQUNLKGVkaXRpbmdDb21tYW5kQ2FsbGJhY2spLCB3aW5k
b3cpOwogICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwg
LTEpOwogICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKIAotICAgIGl0ZW0g
PSBndGtfcmFkaW9fdG9vbF9idXR0b25fbmV3X2Zyb21fc3RvY2soanVzdGlmeVJhZGlvR3JvdXAs
IEdUS19TVE9DS19KVVNUSUZZX1JJR0hUKTsKKyAgICBpdGVtID0gZ3RrX3JhZGlvX3Rvb2xfYnV0
dG9uX25ldyhqdXN0aWZ5UmFkaW9Hcm91cCk7CisgICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9pY29u
X25hbWUoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiZm9ybWF0LWp1c3RpZnktcmlnaHQiKTsKICAg
ICBndGtfd2lkZ2V0X3NldF9uYW1lKEdUS19XSURHRVQoaXRlbSksICJKdXN0aWZ5UmlnaHQiKTsK
ICAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgIkp1
c3RpZnkgUmlnaHQiKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0pLCAidG9n
Z2xlZCIsIEdfQ0FMTEJBQ0soZWRpdGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7CkBAIC04
NzEsMTkgKzgyOCw4IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xi
YXIoQnJvd3NlcldpbmRvdyAqd2luZG93KQogICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9P
TEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwogICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VU
KGl0ZW0pKTsKIAotICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25fbmV3X2Zyb21fc3RvY2soR1RL
X1NUT0NLX0lOREVOVCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfbmFtZShHVEtfV0lER0VUKGl0ZW0p
LCAiSW5kZW50Iik7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRU
T04oaXRlbSksICJJbmRlbnQiKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0p
LCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soZWRpdGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7
Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7
Ci0gICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOwotCi0gICAgaXRlbSA9IGd0
a190b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tfVU5JTkRFTlQpOwotICAgIGd0
a193aWRnZXRfc2V0X25hbWUoR1RLX1dJREdFVChpdGVtKSwgIk91dGRlbnQiKTsKLSAgICBndGtf
dG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgIk91dGRlbnQiKTsK
LSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKGl0ZW0pLCAiY2xpY2tlZCIsIEdfQ0FMTEJB
Q0soZWRpdGluZ0NvbW1hbmRDYWxsYmFjayksIHdpbmRvdyk7Ci0gICAgZ3RrX3Rvb2xiYXJfaW5z
ZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93
KEdUS19XSURHRVQoaXRlbSkpOworICAgIGJyb3dzZXJXaW5kb3dTZXR1cEVkaXRvclRvb2xiYXJJ
dGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfVE9PTF9CVVRUT04sICJJbmRlbnQiLCAiZm9y
bWF0LWluZGVudC1tb3JlIik7CisgICAgYnJvd3NlcldpbmRvd1NldHVwRWRpdG9yVG9vbGJhckl0
ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgIk91dGRlbnQiLCAiZm9y
bWF0LWluZGVudC1sZXNzIik7CiAKICAgICBpdGVtID0gZ3RrX3NlcGFyYXRvcl90b29sX2l0ZW1f
bmV3KCk7CiAgICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVt
LCAtMSk7CkBAIC05NjMsNyArOTA5LDcgQEAgc3RhdGljIHZvaWQgYnJvd3NlcldpbmRvd1N3aXRj
aFRhYihHdGtOb3RlYm9vayAqbm90ZWJvb2ssIEJyb3dzZXJUYWIgKnRhYiwgZ3VpbnQKICNlbmRp
ZgogCiAgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0ICpiYWNrRm9yd2FyZGxpc3QgPSB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2JhY2tfZm9yd2FyZF9saXN0KHdlYlZpZXcpOwotICAgIGJyb3dzZXJXaW5k
b3dVcGRhdGVOYXZpZ2F0aW9uQWN0aW9ucyh3aW5kb3csIGJhY2tGb3J3YXJkbGlzdCk7CisgICAg
YnJvd3NlcldpbmRvd1VwZGF0ZU5hdmlnYXRpb25NZW51KHdpbmRvdywgYmFja0ZvcndhcmRsaXN0
KTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGJhY2tGb3J3YXJkbGlzdCwgImNoYW5nZWQiLCBHX0NB
TExCQUNLKGJhY2tGb3J3YXJkbGlzdENoYW5nZWQpLCB3aW5kb3cpOwogfQogCkBAIC05NzIsNiAr
OTE4LDE5IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJXaW5kb3dUYWJBZGRlZE9yUmVtb3ZlZChHdGtO
b3RlYm9vayAqbm90ZWJvb2ssIEJyb3dzZXJUYWIgKnRhCiAgICAgZ3RrX25vdGVib29rX3NldF9z
aG93X3RhYnMoR1RLX05PVEVCT09LKHdpbmRvdy0+bm90ZWJvb2spLCBndGtfbm90ZWJvb2tfZ2V0
X25fcGFnZXMobm90ZWJvb2spID4gMSk7CiB9CiAKK3N0YXRpYyBHdGtXaWRnZXQqIGJyb3dzZXJX
aW5kb3dTZXR1cFRvb2xiYXJJdGVtKEJyb3dzZXJXaW5kb3cqIHdpbmRvdywgR3RrV2lkZ2V0KiB0
b29sYmFyLCBHVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBsYWJlbCwgY29uc3QgY2hhciogbmFtZWRJ
Y29uLCBHQ2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgR3RrV2lkZ2V0ICppdGVtID0gZ19vYmpl
Y3RfbmV3KHR5cGUsICJpY29uLW5hbWUiLCBuYW1lZEljb24sIE5VTEwpOworICAgIGlmICh0eXBl
ID09IEdUS19UWVBFX01FTlVfVE9PTF9CVVRUT04pCisgICAgICAgIGd0a19tZW51X3Rvb2xfYnV0
dG9uX3NldF9tZW51KEdUS19NRU5VX1RPT0xfQlVUVE9OKGl0ZW0pLCAwKTsKKyAgICBnX3NpZ25h
bF9jb25uZWN0X3N3YXBwZWQoaXRlbSwgImNsaWNrZWQiLCBjYWxsYmFjaywgKGdwb2ludGVyKXdp
bmRvdyk7CisgICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRl
bSksIGxhYmVsKTsKKyAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciks
IEdUS19UT09MX0lURU0oaXRlbSksIC0xKTsKKyAgICBndGtfd2lkZ2V0X3Nob3coaXRlbSk7CisK
KyAgICByZXR1cm4gaXRlbTsKK30KKwogc3RhdGljIHZvaWQgYnJvd3Nlcl93aW5kb3dfaW5pdChC
cm93c2VyV2luZG93ICp3aW5kb3cpCiB7CiAgICAgd2luZG93TGlzdCA9IGdfbGlzdF9hcHBlbmQo
d2luZG93TGlzdCwgd2luZG93KTsKQEAgLTEwNTksNTcgKzEwMTgsMjAgQEAgc3RhdGljIHZvaWQg
YnJvd3Nlcl93aW5kb3dfaW5pdChCcm93c2VyV2luZG93ICp3aW5kb3cpCiAgICAgZ3RrX29yaWVu
dGFibGVfc2V0X29yaWVudGF0aW9uKEdUS19PUklFTlRBQkxFKHRvb2xiYXIpLCBHVEtfT1JJRU5U
QVRJT05fSE9SSVpPTlRBTCk7CiAgICAgZ3RrX3Rvb2xiYXJfc2V0X3N0eWxlKEdUS19UT09MQkFS
KHRvb2xiYXIpLCBHVEtfVE9PTEJBUl9CT1RIX0hPUklaKTsKIAotICAgIEd0a1Rvb2xJdGVtICpp
dGVtID0gZ3RrX21lbnVfdG9vbF9idXR0b25fbmV3X2Zyb21fc3RvY2soR1RLX1NUT0NLX0dPX0JB
Q0spOwotICAgIHdpbmRvdy0+YmFja0l0ZW0gPSBHVEtfV0lER0VUKGl0ZW0pOwotICAgIGd0a19t
ZW51X3Rvb2xfYnV0dG9uX3NldF9tZW51KEdUS19NRU5VX1RPT0xfQlVUVE9OKGl0ZW0pLCAwKTsK
LSAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoaXRlbSwgImNsaWNrZWQiLCBHX0NBTExCQUNL
KGdvQmFja0NhbGxiYWNrKSwgKGdwb2ludGVyKXdpbmRvdyk7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9u
X3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04oaXRlbSksICJCYWNrIik7Ci0gICAgZ3RrX3Rvb2xi
YXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdl
dF9zaG93KEdUS19XSURHRVQoaXRlbSkpOwotCi0gICAgaXRlbSA9IGd0a19tZW51X3Rvb2xfYnV0
dG9uX25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19HT19GT1JXQVJEKTsKLSAgICB3aW5kb3ctPmZv
cndhcmRJdGVtID0gR1RLX1dJREdFVChpdGVtKTsKLSAgICBndGtfbWVudV90b29sX2J1dHRvbl9z
ZXRfbWVudShHVEtfTUVOVV9UT09MX0JVVFRPTihpdGVtKSwgMCk7Ci0gICAgZ19zaWduYWxfY29u
bmVjdF9zd2FwcGVkKEdfT0JKRUNUKGl0ZW0pLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soZ29Gb3J3
YXJkQ2FsbGJhY2spLCAoZ3BvaW50ZXIpd2luZG93KTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0
X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgIkZvcndhcmQiKTsKLSAgICBndGtfdG9vbGJh
cl9pbnNlcnQoR1RLX1RPT0xCQVIodG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0
X3Nob3coR1RLX1dJREdFVChpdGVtKSk7CisgICAgd2luZG93LT5iYWNrSXRlbSA9IGJyb3dzZXJX
aW5kb3dTZXR1cFRvb2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfTUVOVV9UT09M
X0JVVFRPTiwgIkJhY2siLCAiZ28tcHJldmlvdXMiLCBHX0NBTExCQUNLKGdvQmFja0NhbGxiYWNr
KSk7CisgICAgd2luZG93LT5mb3J3YXJkSXRlbSA9IGJyb3dzZXJXaW5kb3dTZXR1cFRvb2xiYXJJ
dGVtKHdpbmRvdywgdG9vbGJhciwgR1RLX1RZUEVfTUVOVV9UT09MX0JVVFRPTiwgIkZvcndhcmQi
LCAiZ28tbmV4dCIsIEdfQ0FMTEJBQ0soZ29Gb3J3YXJkQ2FsbGJhY2spKTsKKyAgICBicm93c2Vy
V2luZG93U2V0dXBUb29sYmFySXRlbSh3aW5kb3csIHRvb2xiYXIsIEdUS19UWVBFX1RPT0xfQlVU
VE9OLCAiUHJlZmVyZW5jZXMiLCAicHJlZmVyZW5jZXMtc3lzdGVtIiwgR19DQUxMQkFDSyhzZXR0
aW5nc0NhbGxiYWNrKSk7CiAKLSAgICBpdGVtID0gZ3RrX3Rvb2xfYnV0dG9uX25ld19mcm9tX3N0
b2NrKEdUS19TVE9DS19QUkVGRVJFTkNFUyk7Ci0gICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVk
KEdfT0JKRUNUKGl0ZW0pLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soc2V0dGluZ3NDYWxsYmFjayks
IHdpbmRvdyk7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJlbChHVEtfVE9PTF9CVVRUT04o
aXRlbSksICJQcmVmZXJlbmNlcyIpOwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJB
Uih0b29sYmFyKSwgaXRlbSwgLTEpOwotICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKGl0
ZW0pKTsKKyAgICB3aW5kb3ctPnpvb21PdXRJdGVtID0gYnJvd3NlcldpbmRvd1NldHVwVG9vbGJh
ckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgIlpvb20gT3V0Iiwg
Inpvb20tb3V0IiwgR19DQUxMQkFDSyh6b29tT3V0Q2FsbGJhY2spKTsKKyAgICB3aW5kb3ctPnpv
b21Jbkl0ZW0gPSBicm93c2VyV2luZG93U2V0dXBUb29sYmFySXRlbSh3aW5kb3csIHRvb2xiYXIs
IEdUS19UWVBFX1RPT0xfQlVUVE9OLCAiWm9vbSBJbiIsICJ6b29tLWluIiwgR19DQUxMQkFDSyh6
b29tSW5DYWxsYmFjaykpOwogCi0gICAgaXRlbSA9IGd0a190b29sX2J1dHRvbl9uZXdfZnJvbV9z
dG9jayhHVEtfU1RPQ0tfWk9PTV9PVVQpOwotICAgIHdpbmRvdy0+em9vbU91dEl0ZW0gPSBHVEtf
V0lER0VUKGl0ZW0pOwotICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChpdGVtLCAiY2xpY2tl
ZCIsIEdfQ0FMTEJBQ0soem9vbU91dENhbGxiYWNrKSwgd2luZG93KTsKLSAgICBndGtfdG9vbF9i
dXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgIlpvb20gT3V0Iik7Ci0gICAg
Z3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19UT09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAg
Z3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQoaXRlbSkpOworICAgIGd0a193aWRnZXRfYWRkX2Fj
Y2VsZXJhdG9yKGJyb3dzZXJXaW5kb3dTZXR1cFRvb2xiYXJJdGVtKHdpbmRvdywgdG9vbGJhciwg
R1RLX1RZUEVfVE9PTF9CVVRUT04sICJGaW5kIiwgImVkaXQtZmluZCIsIEdfQ0FMTEJBQ0soc2Vh
cmNoQ2FsbGJhY2spKSwKKyAgICAgICAgImNsaWNrZWQiLCB3aW5kb3ctPmFjY2VsR3JvdXAsIEdE
S19LRVlfRiwgR0RLX0NPTlRST0xfTUFTSywgR1RLX0FDQ0VMX1ZJU0lCTEUpOwogCi0gICAgaXRl
bSA9IGd0a190b29sX2J1dHRvbl9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tfWk9PTV9JTik7Ci0g
ICAgd2luZG93LT56b29tSW5JdGVtID0gR1RLX1dJREdFVChpdGVtKTsKLSAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQoaXRlbSwgImNsaWNrZWQiLCBHX0NBTExCQUNLKHpvb21JbkNhbGxiYWNr
KSwgd2luZG93KTsKLSAgICBndGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRP
TihpdGVtKSwgIlpvb20gSW4iKTsKLSAgICBndGtfdG9vbGJhcl9pbnNlcnQoR1RLX1RPT0xCQVIo
dG9vbGJhciksIGl0ZW0sIC0xKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVt
KSk7CisgICAgZ3RrX3dpZGdldF9hZGRfYWNjZWxlcmF0b3IoYnJvd3NlcldpbmRvd1NldHVwVG9v
bGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgIkhvbWUiLCAi
Z28taG9tZSIsIEdfQ0FMTEJBQ0sobG9hZEhvbWVQYWdlKSksCisgICAgICAgICJjbGlja2VkIiwg
d2luZG93LT5hY2NlbEdyb3VwLCBHREtfS0VZX0hvbWUsIEdES19NT0QxX01BU0ssIEdUS19BQ0NF
TF9WSVNJQkxFKTsKIAotICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25fbmV3X2Zyb21fc3RvY2so
R1RLX1NUT0NLX0ZJTkQpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChpdGVtLCAiY2xp
Y2tlZCIsIEdfQ0FMTEJBQ0soc2VhcmNoQ2FsbGJhY2spLCB3aW5kb3cpOwotICAgIGd0a190b29s
X2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAiRmluZCIpOwotICAgIGd0
a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwotICAgIGd0
a193aWRnZXRfYWRkX2FjY2VsZXJhdG9yKEdUS19XSURHRVQoaXRlbSksICJjbGlja2VkIiwgd2lu
ZG93LT5hY2NlbEdyb3VwLCBHREtfS0VZX0YsIEdES19DT05UUk9MX01BU0ssIEdUS19BQ0NFTF9W
SVNJQkxFKTsKLSAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChpdGVtKSk7Ci0KLSAgICBp
dGVtID0gZ3RrX3Rvb2xfYnV0dG9uX25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19IT01FKTsKLSAg
ICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoaXRlbSwgImNsaWNrZWQiLCBHX0NBTExCQUNLKGxv
YWRIb21lUGFnZSksIHdpbmRvdyk7Ci0gICAgZ3RrX3Rvb2xfYnV0dG9uX3NldF9sYWJlbChHVEtf
VE9PTF9CVVRUT04oaXRlbSksICJIb21lIik7Ci0gICAgZ3RrX3Rvb2xiYXJfaW5zZXJ0KEdUS19U
T09MQkFSKHRvb2xiYXIpLCBpdGVtLCAtMSk7Ci0gICAgZ3RrX3dpZGdldF9hZGRfYWNjZWxlcmF0
b3IoR1RLX1dJREdFVChpdGVtKSwgImNsaWNrZWQiLCB3aW5kb3ctPmFjY2VsR3JvdXAsIEdES19L
RVlfSG9tZSwgR0RLX01PRDFfTUFTSywgR1RLX0FDQ0VMX1ZJU0lCTEUpOwotICAgIGd0a193aWRn
ZXRfc2hvdyhHVEtfV0lER0VUKGl0ZW0pKTsKLQotICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25f
bmV3KGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoInRhYi1uZXciLCBHVEtfSUNPTl9TSVpF
X1NNQUxMX1RPT0xCQVIpLCBOVUxMKTsKKyAgICBHdGtUb29sSXRlbSAqaXRlbSA9IGd0a190b29s
X2J1dHRvbl9uZXcoZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSgidGFiLW5ldyIsIEdUS19J
Q09OX1NJWkVfU01BTExfVE9PTEJBUiksIE5VTEwpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dh
cHBlZChpdGVtLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0sobmV3VGFiQ2FsbGJhY2spLCB3aW5kb3cp
OwogICAgIGd0a190b29sX2J1dHRvbl9zZXRfbGFiZWwoR1RLX1RPT0xfQlVUVE9OKGl0ZW0pLCAi
TmV3IFRhYiIpOwogICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwg
aXRlbSwgLTEpOwpAQCAtMTEyMywxMyArMTA0NSw4IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJfd2lu
ZG93X2luaXQoQnJvd3NlcldpbmRvdyAqd2luZG93KQogICAgIGd0a190b29sYmFyX2luc2VydChH
VEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEpOwogICAgIGd0a193aWRnZXRfc2hvdyhHVEtf
V0lER0VUKGl0ZW0pKTsKIAotICAgIGl0ZW0gPSBndGtfdG9vbF9idXR0b25fbmV3X2Zyb21fc3Rv
Y2soR1RLX1NUT0NLX1JFRlJFU0gpOwotICAgIHdpbmRvdy0+cmVsb2FkT3JTdG9wQnV0dG9uID0g
R1RLX1dJREdFVChpdGVtKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoaXRlbSwgImNs
aWNrZWQiLCBHX0NBTExCQUNLKHJlbG9hZE9yU3RvcENhbGxiYWNrKSwgd2luZG93KTsKLSAgICBn
dGtfdG9vbF9idXR0b25fc2V0X2xhYmVsKEdUS19UT09MX0JVVFRPTihpdGVtKSwgIlJlbG9hZCIp
OwotICAgIGd0a190b29sYmFyX2luc2VydChHVEtfVE9PTEJBUih0b29sYmFyKSwgaXRlbSwgLTEp
OworICAgIHdpbmRvdy0+cmVsb2FkT3JTdG9wQnV0dG9uID0gYnJvd3NlcldpbmRvd1NldHVwVG9v
bGJhckl0ZW0od2luZG93LCB0b29sYmFyLCBHVEtfVFlQRV9UT09MX0JVVFRPTiwgIlJlbG9hZCIs
ICJ2aWV3LXJlZnJlc2giLCBHX0NBTExCQUNLKHJlbG9hZE9yU3RvcENhbGxiYWNrKSk7CiAgICAg
Z3RrX3dpZGdldF9hZGRfYWNjZWxlcmF0b3Iod2luZG93LT5yZWxvYWRPclN0b3BCdXR0b24sICJj
bGlja2VkIiwgd2luZG93LT5hY2NlbEdyb3VwLCBHREtfS0VZX0Y1LCAwLCBHVEtfQUNDRUxfVklT
SUJMRSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KHdpbmRvdy0+cmVsb2FkT3JTdG9wQnV0dG9uKTsK
ICNlbmRpZgogICAgIEd0a1dpZGdldCAqdmJveCA9IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElP
Tl9WRVJUSUNBTCwgMCk7CiAgICAgd2luZG93LT5tYWluQm94ID0gdmJveDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFp
bi5jCmluZGV4IGU3ZTdlZDY0NTNkMDQ5YWMzODNmYTkwNmE2MzM0NDA5MWNlZjA4MmUuLjJmZjQ1
YjkzOGNmZmFiZTk1ZmUxNzEzNzM5M2I4YjZjNTA2ZDQ5OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwpA
QCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyBjb25zdCBHT3B0aW9uRW50cnkgY29tbWFuZExpbmVP
cHRpb25zW10gPQogICAgIHsgImVkaXRvci1tb2RlIiwgJ2UnLCAwLCBHX09QVElPTl9BUkdfTk9O
RSwgJmVkaXRvck1vZGUsICJSdW4gaW4gZWRpdG9yIG1vZGUiLCBOVUxMIH0sCiAgICAgeyAiZGFy
ay1tb2RlIiwgJ2QnLCAwLCBHX09QVElPTl9BUkdfTk9ORSwgJmRhcmtNb2RlLCAiUnVuIGluIGRh
cmsgbW9kZSIsIE5VTEwgfSwKICAgICB7ICJzZXNzaW9uLWZpbGUiLCAncycsIDAsIEdfT1BUSU9O
X0FSR19GSUxFTkFNRSwgJnNlc3Npb25GaWxlLCAiU2Vzc2lvbiBmaWxlIiwgIkZJTEUiIH0sCi0g
ICAgeyAiZ2VvbWV0cnkiLCAnZycsIDAsIEdfT1BUSU9OX0FSR19TVFJJTkcsICZnZW9tZXRyeSwg
IlNldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIHdpbmRvdyAoV0lEVEh4SEVJR0hUK1gr
WSkiLCAiR0VPTUVUUlkiIH0sCisgICAgeyAiZ2VvbWV0cnkiLCAnZycsIDAsIEdfT1BUSU9OX0FS
R19TVFJJTkcsICZnZW9tZXRyeSwgIlVudXNlZC4gS2VwdCBmb3IgYmFja3dhcmRzLWNvbXBhdGli
aWxpdHkgb25seSIsICJHRU9NRVRSWSIgfSwKICAgICB7ICJmdWxsLXNjcmVlbiIsICdmJywgMCwg
R19PUFRJT05fQVJHX05PTkUsICZmdWxsU2NyZWVuLCAiU2V0IHRoZSB3aW5kb3cgdG8gZnVsbC1z
Y3JlZW4gbW9kZSIsIE5VTEwgfSwKICAgICB7ICJwcml2YXRlIiwgJ3AnLCAwLCBHX09QVElPTl9B
UkdfTk9ORSwgJnByaXZhdGVNb2RlLCAiUnVuIGluIHByaXZhdGUgYnJvd3NpbmcgbW9kZSIsIE5V
TEwgfSwKICAgICB7ICJhdXRvbWF0aW9uIiwgMCwgMCwgR19PUFRJT05fQVJHX05PTkUsICZhdXRv
bWF0aW9uTW9kZSwgIlJ1biBpbiBhdXRvbWF0aW9uIG1vZGUiLCBOVUxMIH0sCkBAIC02MjEsMTAg
KzYyMSw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgIGdfb2Jq
ZWN0X3NldChndGtfd2lkZ2V0X2dldF9zZXR0aW5ncyhHVEtfV0lER0VUKG1haW5XaW5kb3cpKSwg
Imd0ay1hcHBsaWNhdGlvbi1wcmVmZXItZGFyay10aGVtZSIsIFRSVUUsIE5VTEwpOwogICAgIGlm
IChmdWxsU2NyZWVuKQogICAgICAgICBndGtfd2luZG93X2Z1bGxzY3JlZW4oR1RLX1dJTkRPVyht
YWluV2luZG93KSk7Ci0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDk4LCAwKQotICAgIGVsc2Ug
aWYgKGdlb21ldHJ5KQotICAgICAgICBndGtfd2luZG93X3BhcnNlX2dlb21ldHJ5KEdUS19XSU5E
T1cobWFpbldpbmRvdyksIGdlb21ldHJ5KTsKLSNlbmRpZgogCiAgICAgaWYgKGJhY2tncm91bmRD
b2xvcikKICAgICAgICAgYnJvd3Nlcl93aW5kb3dfc2V0X2JhY2tncm91bmRfY29sb3IobWFpbldp
bmRvdywgYmFja2dyb3VuZENvbG9yKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>