<?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>191718</bug_id>
          
          <creation_ts>2018-11-15 14:40:29 -0800</creation_ts>
          <short_desc>[Win] Reduce the use of WKSI library calls: CFNetwork</short_desc>
          <delta_ts>2018-11-16 14:42:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>191777</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1479134</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-15 14:40:29 -0800</bug_when>
    <thetext>Move some ancient CFNetwork code out of WKSI and into Open Source, like we did for iOS and macOS WebKit back in 2017. The WKSI really doesn&apos;t provide any benefits to us, and only serves as a road block for outside contributors and a failure point for our build process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479135</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-15 14:40:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/46108732&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479513</commentid>
    <comment_count>2</comment_count>
      <attachid>355080</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-16 11:20:31 -0800</bug_when>
    <thetext>Created attachment 355080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479516</commentid>
    <comment_count>3</comment_count>
      <attachid>355083</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-16 11:24:47 -0800</bug_when>
    <thetext>Created attachment 355083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479521</commentid>
    <comment_count>4</comment_count>
      <attachid>355085</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-16 11:29:09 -0800</bug_when>
    <thetext>Created attachment 355085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479576</commentid>
    <comment_count>5</comment_count>
      <attachid>355106</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-16 13:04:09 -0800</bug_when>
    <thetext>Created attachment 355106
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479593</commentid>
    <comment_count>6</comment_count>
      <attachid>355106</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-16 13:43:18 -0800</bug_when>
    <thetext>Comment on attachment 355106
Patch for landing

Clearing flags on attachment: 355106

Committed r238298: &lt;https://trac.webkit.org/changeset/238298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479594</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-16 13:43:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355080</attachid>
            <date>2018-11-16 11:20:31 -0800</date>
            <delta_ts>2018-11-16 11:24:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191718-20181116112026.patch</filename>
            <type>text/plain</type>
            <size>27819</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODI5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE4LTExLTE2ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIFJlZHVjZSB0aGUg
dXNlIG9mIFdLU0kgbGlicmFyeSBjYWxsczogQ0ZOZXR3b3JrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQ2MTA4NzMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSBjdXN0b20gV0tTSSBDRk5ldHdvcmsgY2FsbHMsIHNpbmNlIHRoZSBTUEkg
aXMgYWxyZWFkeSBkb2N1bWVudGVkIGluIFBBTC4gSnVzdAorICAgICAgICBtYWtlIHRoZSBzYW1l
IGNhbGxzIG9uIFdpbmRvd3MsIGxpa2Ugd2UgZGlkIGZvciBpT1MgYW5kIG1hY09TIGJhY2sgaW4g
MjAxNy4KKworICAgICAgICBTdG9wIGluY2x1ZGluZyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCBm
b3IgZmlsZXMgdGhhdCB1c2VkIHRvIHJlbHkgb24gaXQKKyAgICAgICAgZm9yIGZvbnQtcmVsYXRl
ZCBmZWF0dXJlcy4KKyAgICAgICAgCisgICAgICAgIFRlc3RlZCBieSBleGlzdGluZyBXaW5kb3dz
IHJlZ3Jlc3Npb24gdGVzdHMuIFRoZXJlIHNob3VsZCBiZSBubyBjaGFuZ2UgaW4gYmVoYXZpb3Iu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDR1dpbi5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
Rk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rl
c3RpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZW5zdXJlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVy
cm9yLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlRXJyb3I6OmdldFNTTFBlZXJDZXJ0aWZpY2F0ZURhdGFCeXRlUHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OnBsYXRmb3JtTGF6eUluaXQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6Y2ZFcnJvciBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNldENsaWVudENlcnRpZmljYXRlSW5TU0xQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZO
ZXQuY3BwOgorCiAyMDE4LTExLTE2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIEFuIGVhcmx5IHJldHVybiBmcm9tIHVwZGF0ZVNjaGVkdWxpbmdJbmZvIGNhbiBs
ZWF2ZSBzb21lIHZhcmlhYmxlcyB1bmluaXRpYWxpemVkLgpJbmRleDogU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzgyNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTEtMTYgIEJyZW50IEZ1bGdoYW0gIDxi
ZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl0gUmVkdWNlIHRoZSB1c2Ugb2YgV0tT
SSBsaWJyYXJ5IGNhbGxzOiBDRk5ldHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTcxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYxMDg3
MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IG5lY2Vzc2FyeSBkZWNsYXJhdGlvbnMgZm9yIENGTmV0d29yayBTUEkgbmVlZGVkIGJ5IHRoZSBB
cHBsZSBXaW5kb3dzIGJ1aWxkLgorCisgICAgICAgICogcGFsL1BsYXRmb3JtQXBwbGVXaW4uY21h
a2U6CisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKyAgICAgICAgKiBwYWwv
c3BpL2NmL0NGTmV0d29ya1NQSVdpbi5jcHA6IEFkZGVkLgorCiAyMDE4LTExLTE1ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGl0aW9uYWwgV2luZG93
cyBidWlsZCBmaXggYWZ0ZXIgcjIzODI1My4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
UGxhdGZvcm1BcHBsZVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsOCBAQCBsaXN0KEFQUEVORCBQQUxfU09VUkNFUwogICAgIGNmL0NvcmVNZWRpYVNv
ZnRMaW5rLmNwcAogCiAgICAgY3J5cHRvL3dpbi9DcnlwdG9EaWdlc3RXaW4uY3BwCisKKyAgICBz
cGkvY2YvQ0ZOZXR3b3JrU1BJV2luLmNwcAogKQogCiBsaXN0KEFQUEVORCBQQUxfUFJJVkFURV9J
TkNMVURFX0RJUkVDVE9SSUVTCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9D
Rk5ldHdvcmtTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDIw
IEBACiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMUmVzcG9uc2VQcml2Lmg+CiAjaW5jbHVkZSA8
Q0ZOZXR3b3JrL0NGVVJMU3RvcmFnZVNlc3Npb24uaD4KIAorI2lmIFBMQVRGT1JNKFdJTikKKwor
V1RGX0VYVEVSTl9DX0JFR0lOCisKK0NGTl9FWFBPUlQgQ0ZTdHJpbmdSZWYgX0NGTmV0d29ya0Vy
cm9yR2V0TG9jYWxpemVkRGVzY3JpcHRpb24oQ0ZJbmRleCk7CisKK2V4dGVybiBjb25zdCBDRlN0
cmluZ1JlZiBfa0NGV2luZG93c1NTTExvY2FsQ2VydDsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBfa0NGU3RyZWFtUHJvcGVydHlXaW5kb3dzU1NMQ2VydEluZm87CitleHRlcm4gY29uc3QgQ0ZT
dHJpbmdSZWYgX2tDRldpbmRvd3NTU0xQZWVyQ2VydDsKKworV1RGX0VYVEVSTl9DX0VORAorCisj
ZW5kaWYKKwogLy8gRklYTUU6IFJlbW92ZSB0aGUgZGVmaW5lZChfX09CSkNfXyktZ3VhcmQgb25j
ZSB3ZSBmaXggPHJkYXI6Ly9wcm9ibGVtLzE5MDMzNjEwPi4KICNpZiBkZWZpbmVkKF9fT0JKQ19f
KSAmJiBQTEFURk9STShDT0NPQSkKICNpbXBvcnQgPENGTmV0d29yay9DRk5TVVJMQ29ubmVjdGlv
bi5oPgpAQCAtMjE3LDcgKzIzMSw2IEBAIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IE5TVVJMQXV0
aGVudGljYXQKIFdURl9FWFRFUk5fQ19CRUdJTgogCiAjaWYgIVBMQVRGT1JNKFdJTikKLQogQ0ZV
UkxTdG9yYWdlU2Vzc2lvblJlZiBfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNyZWF0ZShDRkFsbG9jYXRv
clJlZiwgQ0ZTdHJpbmdSZWYsIENGRGljdGlvbmFyeVJlZik7CiBDRlVSTENhY2hlUmVmIF9DRlVS
TFN0b3JhZ2VTZXNzaW9uQ29weUNhY2hlKENGQWxsb2NhdG9yUmVmLCBDRlVSTFN0b3JhZ2VTZXNz
aW9uUmVmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9D
Rk5ldHdvcmtTUElXaW4uY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NmL0NGTmV0d29ya1NQSVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShX
SU4pICYmIFVTRShDRlVSTENPTk5FQ1RJT04pCisKKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oPgorCitjb25zdCBDRlN0cmluZ1JlZiBfa0NGV2luZG93c1NTTExvY2FsQ2VydCA9
IENGU1RSKCJfa0NGV2luZG93c1NTTExvY2FsQ2VydCIpOworY29uc3QgQ0ZTdHJpbmdSZWYgX2tD
RldpbmRvd3NTU0xQZWVyQ2VydCA9IENGU1RSKCJfa0NGV2luZG93c1NTTFBlZXJDZXJ0Iik7Citj
b25zdCBDRlN0cmluZ1JlZiBfa0NGU3RyZWFtUHJvcGVydHlXaW5kb3dzU1NMQ2VydEluZm8gPSBD
RlNUUigiX2tDRlN0cmVhbVByb3BlcnR5V2luZG93c1NTTENlcnRJbmZvIik7CisKKyNlbmRpZiAv
LyBQTEFURk9STShXSU4pICYmIFVTRShDRlVSTENPTk5FQ1RJT04pCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAko
cmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDYWNoZVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNs
dWRlIDx3dGYvd2luL0dESU9iamVjdC5oPgogCiAjaWYgVVNFKENHKQotI2luY2x1ZGUgPFdlYktp
dFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxwYWwv
c3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPHd0Zi93aW4vR0RJT2JqZWN0Lmg+CiAKICNp
ZiBVU0UoQ0cpCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUlu
dGVyZmFjZS5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjZW5k
aWYKIAogI2lmIFVTRShESVJFQ1QyRCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3Bw
CShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udFBsYXRmb3JtRGF0YUNHV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcs
NyBAQAogI2lmIFVTRShDRykKIAogI2luY2x1ZGUgIlNoYXJlZEdESU9iamVjdC5oIgotI2luY2x1
ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbmNs
dWRlIDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNG
TmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L0Nvb2tpZVN0b3JhZ2VDRk5ldC5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkxvYWRlclJ1bkxvb3BDRi5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgPENGTmV0d29yay9DRkhU
VFBDb29raWVzUHJpdi5oPgotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRT
eXN0ZW1JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgog
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcAko
cmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9D
cmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBA
QAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ0YuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsLmgi
CiAjaW5jbHVkZSAiUHJvdGVjdGlvblNwYWNlLmgiCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50
ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZO
ZXR3b3JrU1BJLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDggKzM0LDYgQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNp
bmNsdWRlICJQdWJsaWNTdWZmaXguaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNl
bHNlCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgogI2VuZGlmCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICNpbmNsdWRlICJDb29raWUu
aCIKQEAgLTEzMyw2ICsxMzEsNDAgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3Rv
cmFnZVNlcwogICAgIHJldHVybiBzZXNzaW9uOwogfQogCitzdGF0aWMgQ0ZVUkxTdG9yYWdlU2Vz
c2lvblJlZiBjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oQ0ZTdHJpbmdSZWYgaWRlbnRpZmll
ciwgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBkZWZhdWx0U3RvcmFnZVNlc3Npb24pCit7CisgICAg
Y29uc3Qgdm9pZCogc2Vzc2lvblByb3BlcnR5S2V5c1tdID0geyBfa0NGVVJMU3RvcmFnZVNlc3Np
b25Jc1ByaXZhdGUgfTsKKyAgICBjb25zdCB2b2lkKiBzZXNzaW9uUHJvcGVydHlWYWx1ZXNbXSA9
IHsga0NGQm9vbGVhblRydWUgfTsKKyAgICBDRkRpY3Rpb25hcnlSZWYgc2Vzc2lvblByb3BlcnRp
ZXMgPSBDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc2Vzc2lvblByb3Bl
cnR5S2V5cywgc2Vzc2lvblByb3BlcnR5VmFsdWVzLCBzaXplb2Yoc2Vzc2lvblByb3BlcnR5S2V5
cykgLyBzaXplb2YoKnNlc3Npb25Qcm9wZXJ0eUtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlD
YWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsKKyAgICBDRlVSTFN0
b3JhZ2VTZXNzaW9uUmVmIHN0b3JhZ2VTZXNzaW9uID0gX0NGVVJMU3RvcmFnZVNlc3Npb25DcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaWRlbnRpZmllciwgc2Vzc2lvblByb3BlcnRpZXMpOwor
CisgICAgLy8gVGhlIHByaXZhdGUgc3RvcmFnZSBzZXNzaW9uIHNob3VsZCBoYXZlIHRoZSBzYW1l
IHByb3BlcnRpZXMgYXMgdGhlIGRlZmF1bHQgc3RvcmFnZSBzZXNzaW9uLAorICAgIC8vIHdpdGgg
dGhlIGV4Y2VwdGlvbiB0aGF0IGl0IHNob3VsZCBiZSBpbi1tZW1vcnkgb25seSBzdG9yYWdlLgor
ICAgIENGVVJMQ2FjaGVSZWYgY2FjaGUgPSBfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDYWNoZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBzdG9yYWdlU2Vzc2lvbik7CisgICAgQ0ZVUkxDYWNoZVNldERp
c2tDYXBhY2l0eShjYWNoZSwgMCk7CisgICAgQ0ZVUkxDYWNoZVJlZiBkZWZhdWx0Q2FjaGU7Cisg
ICAgaWYgKGRlZmF1bHRTdG9yYWdlU2Vzc2lvbikKKyAgICAgICAgZGVmYXVsdENhY2hlID0gX0NG
VVJMU3RvcmFnZVNlc3Npb25Db3B5Q2FjaGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKTsKKyAgICBlbHNlIAorICAgICAgICBkZWZhdWx0Q2FjaGUgPSBDRlVSTENh
Y2hlQ29weVNoYXJlZFVSTENhY2hlKCk7CisgICAgQ0ZVUkxDYWNoZVNldE1lbW9yeUNhcGFjaXR5
KGNhY2hlLCBDRlVSTENhY2hlTWVtb3J5Q2FwYWNpdHkoZGVmYXVsdENhY2hlKSk7CisgICAgQ0ZS
ZWxlYXNlKGRlZmF1bHRDYWNoZSk7CisgICAgQ0ZSZWxlYXNlKGNhY2hlKTsKKworICAgIENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSA9IF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29w
eUNvb2tpZVN0b3JhZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RvcmFnZVNlc3Npb24pOworICAg
IENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgZGVmYXVsdENvb2tpZVN0b3JhZ2U7CisgICAgaWYgKGRl
ZmF1bHRTdG9yYWdlU2Vzc2lvbikKKyAgICAgICAgZGVmYXVsdENvb2tpZVN0b3JhZ2UgPSBfQ0ZV
UkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRl
ZmF1bHRTdG9yYWdlU2Vzc2lvbik7CisgICAgZWxzZQorICAgICAgICBkZWZhdWx0Q29va2llU3Rv
cmFnZSA9IF9DRkhUVFBDb29raWVTdG9yYWdlR2V0RGVmYXVsdChrQ0ZBbGxvY2F0b3JEZWZhdWx0
KTsKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0
b3JhZ2UsIENGSFRUUENvb2tpZVN0b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koZGVmYXVsdENv
b2tpZVN0b3JhZ2UpKTsKKyAgICBpZiAoZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKQorICAgICAgICBD
RlJlbGVhc2UoZGVmYXVsdENvb2tpZVN0b3JhZ2UpOworICAgIENGUmVsZWFzZShjb29raWVTdG9y
YWdlKTsKKworICAgIHJldHVybiBzdG9yYWdlU2Vzc2lvbjsKK30KKwogdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQogewogICAgIC8vIFNlc3Np
b24gbmFtZSBzaG91bGQgYmUgc2hvcnQgZW5vdWdoIGZvciBzaGFyZWQgbWVtb3J5IHJlZ2lvbiBu
YW1lIHRvIGJlIHVuZGVyIHRoZSBsaW1pdCwgb3RlaHJ3aXNlIHNhbmRib3ggcnVsZXMgd29uJ3Qg
d29yayAoc2VlIDxyZGFyOi8vcHJvYmxlbS8xMzY0Mjg1Mj4pLgpAQCAtMTQyLDcgKzE3NCw3IEBA
IHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1QKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBzZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24o
c2Vzc2lvbk5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogI2Vsc2UKLSAgICBzZXNzaW9u
ID0gYWRvcHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihzZXNzaW9uTmFtZS5jcmVh
dGVDRlN0cmluZygpLmdldCgpLCBkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Np
b24oKSkpOworICAgIHNlc3Npb24gPSBhZG9wdENGKGNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lv
bihzZXNzaW9uTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBkZWZhdWx0U3RvcmFnZVNlc3Np
b24oKS5wbGF0Zm9ybVNlc3Npb24oKSkpOwogI2VuZGlmCiAKICAgICBSZXRhaW5QdHI8Q0ZIVFRQ
Q29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZTsKQEAgLTE3NSw3ICsyMDcsNyBAQCB2b2lk
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQcml2YXRlU3RvcmFnZVNl
c3Npb24oY2ZJZGVudGlmaWVyLmdldCgpKSk7CiAjZWxzZQotICAgICAgICBzdG9yYWdlU2Vzc2lv
biA9IGFkb3B0Q0Yod2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oY2ZJZGVudGlmaWVyLmdl
dCgpLCBkZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnBsYXRmb3JtU2Vzc2lvbigpKSk7
CisgICAgICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQcml2YXRlU3RvcmFnZVNl
c3Npb24oY2ZJZGVudGlmaWVyLmdldCgpLCBkZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkt
PnBsYXRmb3JtU2Vzc2lvbigpKSk7CiAjZW5kaWYKICAgICB9IGVsc2UKICAgICAgICAgc3RvcmFn
ZVNlc3Npb24gPSBjcmVhdGVDRlN0b3JhZ2VTZXNzaW9uRm9ySWRlbnRpZmllcihjZklkZW50aWZp
ZXIuZ2V0KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUVycm9yLmgJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTggQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzIs
NiArNzIsOCBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VFcnJvcihDRlN0cmVhbUVycm9yIGVycm9y
KTsKICAgICBDRlN0cmVhbUVycm9yIGNmU3RyZWFtRXJyb3IoKSBjb25zdDsKICAgICBvcGVyYXRv
ciBDRlN0cmVhbUVycm9yKCkgY29uc3Q7CisgICAgc3RhdGljIGNvbnN0IHZvaWQqIGdldFNTTFBl
ZXJDZXJ0aWZpY2F0ZURhdGFCeXRlUHRyKENGRGljdGlvbmFyeVJlZik7CisKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlRXJyb3JDRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3JDRi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJVUkwuaCIKICNpbmNs
dWRlIDxDb3JlRm91bmRhdGlvbi9DRkVycm9yLmg+CiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGTmV0
d29ya0Vycm9ycy5oPgotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjgsNiAr
NjgsMzAgQEAgdm9pZCBSZXNvdXJjZUVycm9yOjpzZXRDZXJ0aWZpY2F0ZShDRkRhdAogY29uc3Qg
Q0ZTdHJpbmdSZWYgZmFpbGluZ1VSTFN0cmluZ0tleSA9IENGU1RSKCJOU0Vycm9yRmFpbGluZ1VS
TFN0cmluZ0tleSIpOwogY29uc3QgQ0ZTdHJpbmdSZWYgZmFpbGluZ1VSTEtleSA9IENGU1RSKCJO
U0Vycm9yRmFpbGluZ1VSTEtleSIpOwogCitzdGF0aWMgQ0ZEYXRhUmVmIGdldFNTTFBlZXJDZXJ0
aWZpY2F0ZURhdGEoQ0ZEaWN0aW9uYXJ5UmVmIGRpY3QpCit7CisgICAgaWYgKCFkaWN0KQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDRkRhdGFS
ZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKGRpY3QsIF9rQ0ZXaW5kb3dzU1NMUGVlckNlcnQpKTsK
K30KKworc3RhdGljIHZvaWQgc2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YShDRk11dGFibGVEaWN0
aW9uYXJ5UmVmIGRpY3QsIENGRGF0YVJlZiBkYXRhKQoreworICAgIGlmICghZGljdCkKKyAgICAg
ICAgcmV0dXJuOworICAgIAorICAgIGlmICghZGF0YSkKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVt
b3ZlVmFsdWUoZGljdCwgX2tDRldpbmRvd3NTU0xQZWVyQ2VydCk7CisgICAgZWxzZQorICAgICAg
ICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShkaWN0LCBfa0NGV2luZG93c1NTTFBlZXJDZXJ0LCBkYXRh
KTsKK30KKworY29uc3Qgdm9pZCogUmVzb3VyY2VFcnJvcjo6Z2V0U1NMUGVlckNlcnRpZmljYXRl
RGF0YUJ5dGVQdHIoQ0ZEaWN0aW9uYXJ5UmVmIGRpY3QpCit7CisgICAgQ0ZEYXRhUmVmIGRhdGEg
PSBnZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhKGRpY3QpOworICAgIHJldHVybiBkYXRhID8gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhKSkgOiBudWxs
cHRyOworfQorCiB2b2lkIFJlc291cmNlRXJyb3I6OnBsYXRmb3JtTGF6eUluaXQoKQogewogICAg
IGlmIChtX2RhdGFJc1VwVG9EYXRlKQpAQCAtMTA2LDcgKzEzMCw3IEBAIHZvaWQgUmVzb3VyY2VF
cnJvcjo6cGxhdGZvcm1MYXp5SW5pdCgpCiAgICAgICAgIH0KICAgICAgICAgbV9sb2NhbGl6ZWRE
ZXNjcmlwdGlvbiA9IChDRlN0cmluZ1JlZikgQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUodXNlckluZm8u
Z2V0KCksIGtDRkVycm9yTG9jYWxpemVkRGVzY3JpcHRpb25LZXkpOwogICAgICAgICAKLSAgICAg
ICAgbV9jZXJ0aWZpY2F0ZSA9IHdrR2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YSh1c2VySW5mby5n
ZXQoKSk7CisgICAgICAgIG1fY2VydGlmaWNhdGUgPSBnZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRh
KHVzZXJJbmZvLmdldCgpKTsKICAgICB9CiAKICAgICBtX2RhdGFJc1VwVG9EYXRlID0gdHJ1ZTsK
QEAgLTE0NCw3ICsxNjgsNyBAQCBDRkVycm9yUmVmIFJlc291cmNlRXJyb3I6OmNmRXJyb3IoKSBj
b25zCiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9jZXJ0aWZpY2F0ZSkKLSAgICAgICAgICAg
IHdrU2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YSh1c2VySW5mby5nZXQoKSwgbV9jZXJ0aWZpY2F0
ZS5nZXQoKSk7CisgICAgICAgICAgICBzZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhKHVzZXJJbmZv
LmdldCgpLCBtX2NlcnRpZmljYXRlLmdldCgpKTsKICAgICAgICAgCiAgICAgICAgIG1fcGxhdGZv
cm1FcnJvciA9IGFkb3B0Q0YoQ0ZFcnJvckNyZWF0ZSgwLCBtX2RvbWFpbi5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpLCBtX2Vycm9yQ29kZSwgdXNlckluZm8uZ2V0KCkpKTsKICAgICB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VIYW5kbGVDRk5ldC5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTcsNyArNTcsNiBAQAog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKFdJTikKLSNpbmNs
dWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW5j
bHVkZSA8cHJvY2Vzcy5oPgogCiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZGVjbGFyYXRpb24gb25j
ZSBpdCdzIGluIFdlYktpdFN1cHBvcnRMaWJyYXJ5LgpAQCAtMTE4LDYgKzExNywyMCBAQCBzdGF0
aWMgaW5saW5lIENGU3RyaW5nUmVmIHNob3VsZFNuaWZmQ29uCiAjZW5kaWYKIH0KIAorI2lmIFBM
QVRGT1JNKFdJTikKK3N0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlSW5TU0xQcm9wZXJ0
aWVzKENGTXV0YWJsZURpY3Rpb25hcnlSZWYgc3NsUHJvcHMsIENGRGF0YVJlZiBjZXJ0RGF0YSkK
K3sKKyAgICBpZiAoIXNzbFByb3BzIHx8ICFjZXJ0RGF0YSkKKyAgICAgICAgcmV0dXJuOworICAg
IENGTXV0YWJsZURpY3Rpb25hcnlSZWYgY2VydERpY3QgPSBDRkRpY3Rpb25hcnlDcmVhdGVNdXRh
YmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNr
cywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpOworICAgIGlmICghY2VydERpY3Qp
CisgICAgICAgIHJldHVybjsKKyAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShjZXJ0RGljdCwgX2tD
RldpbmRvd3NTU0xMb2NhbENlcnQsIGNlcnREYXRhKTsKKyAgICBDRkRpY3Rpb25hcnlTZXRWYWx1
ZShzc2xQcm9wcywgX2tDRlN0cmVhbVByb3BlcnR5V2luZG93c1NTTENlcnRJbmZvLCBjZXJ0RGlj
dCk7CisgICAgQ0ZSZWxlYXNlKGNlcnREaWN0KTsKK30KKyNlbmRpZgorCiB2b2lkIFJlc291cmNl
SGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYsIE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+PiogbWVzc2FnZVF1ZXVlLCBDRkRp
Y3Rpb25hcnlSZWYgY2xpZW50UHJvcGVydGllcykKIHsKICAgICBpZiAoKCFkLT5tX3VzZXIuaXNF
bXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgpKSAmJiAhZmlyc3RSZXF1ZXN0KCkudXJsKCku
cHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CkBAIC0xODYsNyArMTk5LDcgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aQogICAgICAgICBpZiAoIXNzbFByb3BzKQog
ICAgICAgICAgICAgc3NsUHJvcHMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogI2lmIFBMQVRGT1JNKFdJTikKLSAg
ICAgICAgd2tTZXRDbGllbnRDZXJ0aWZpY2F0ZUluU1NMUHJvcGVydGllcyhzc2xQcm9wcy5nZXQo
KSwgKGNsaWVudENlcnQtPnZhbHVlKS5nZXQoKSk7CisgICAgICAgIHNldENsaWVudENlcnRpZmlj
YXRlSW5TU0xQcm9wZXJ0aWVzKHNzbFByb3BzLmdldCgpLCAoY2xpZW50Q2VydC0+dmFsdWUpLmdl
dCgpKTsKICNlbmRpZgogICAgIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3Bw
CShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiRm9ybURhdGFTdHJlYW1DRk5ldC5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIK
LSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CiAjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJl
cXVlc3RDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMCArNDYsNiBAQAogI2luY2x1ZGUgPGRsZmNuLmg+CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0jZW5kaWYKLQogV1RGX0RFQ0xBUkVfQ0ZfVFlQ
RV9UUkFJVChDRlVSTCk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0
cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQAogCiAjaWYgUExBVEZPUk0oV0lOKQogI2lu
Y2x1ZGUgIkxvYWRlclJ1bkxvb3BDRi5oIgotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29y
a1NQSS5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgt
MTEtMTYgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dp
bl0gUmVkdWNlIHRoZSB1c2Ugb2YgV0tTSSBsaWJyYXJ5IGNhbGxzOiBDRk5ldHdvcmsKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTcxOAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDYxMDg3MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGN1c3RvbSBXS1NJIENGTmV0d29yayBjYWxscywg
c2luY2UgdGhlIFNQSSBpcyBhbHJlYWR5IGRvY3VtZW50ZWQgaW4gUEFMLiBKdXN0CisgICAgICAg
IG1ha2UgdGhlIHNhbWUgY2FsbHMgb24gV2luZG93cywgbGlrZSB3ZSBkaWQgZm9yIGlPUyBhbmQg
bWFjT1MgYmFjayBpbiAyMDE3LgorCisgICAgICAgICogV2ViQ2FjaGUuY3BwOgorICAgICAgICAo
V2ViQ2FjaGU6OmNhY2hlRm9sZGVyKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIFdlYkVycm9yLmNwcDoKKyAgICAgICAgKFdl
YkVycm9yOjpsb2NhbGl6ZWREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJFcnJvcjo6c3NsUGVl
ckNlcnRpZmljYXRlKToKKyAgICAgICAgKiBXZWJVUkxSZXNwb25zZS5jcHA6CisgICAgICAgIChX
ZWJVUkxSZXNwb25zZTo6c3NsUGVlckNlcnRpZmljYXRlKToKKyAgICAgICAgKFdlYlVSTFJlc3Bv
bnNlOjpjZXJ0aWZpY2F0ZURpY3Rpb25hcnkgY29uc3QpOgorICAgICAgICAqIFdlYlZpZXcuY3Bw
OgorICAgICAgICAoV2ViVmlldzo6c2V0Q2FjaGVNb2RlbCk6CisKIDIwMTgtMTEtMTUgIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gUmVkdWNlIHRo
ZSB1c2Ugb2YgV0tTSSBsaWJyYXJ5IGNhbGxzOiBGb250IEhhbmRsaW5nCkluZGV4OiBTb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ2FjaGUuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDgg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0N1cmxDYWNoZU1hbmFnZXIuaD4KICNlbGlmIFVTRShDRlVS
TENPTk5FQ1RJT04pCiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ2FjaGVQcml2Lmg+Ci0jaW5j
bHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ0ZVUkxFeHRyYXMuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjQ5LDcg
KzI1MCw4IEBAIEhSRVNVTFQgV2ViQ2FjaGU6OmNhY2hlRm9sZGVyKF9fZGVyZWZfb3UKICAgICAq
bG9jYXRpb24gPSBXZWJDb3JlOjpCU3RyaW5nKGNhY2hlRm9sZGVyKS5yZWxlYXNlKCk7CiAgICAg
cmV0dXJuIFNfT0s7CiAjZWxpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gY2Z1cmxDYWNoZURpcmVjdG9yeSA9IGFkb3B0Q0Yod2tDb3B5Rm91bmRhdGlv
bkNhY2hlRGlyZWN0b3J5KDApKTsKKyAgICBSZXRhaW5QdHI8Q0ZVUkxDYWNoZVJlZj4gY2FjaGUg
PSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSk7CisgICAgUmV0YWluUHRy
PENGU3RyaW5nUmVmPiBjZnVybENhY2hlRGlyZWN0b3J5ID0gYWRvcHRDRihfQ0ZVUkxDYWNoZUNv
cHlDYWNoZURpcmVjdG9yeShjYWNoZS5nZXQoKSkpOwogICAgICpsb2NhdGlvbiA9IEJTdHJpbmco
Y2Z1cmxDYWNoZURpcmVjdG9yeS5nZXQoKSkucmVsZWFzZSgpOwogICAgIHJldHVybiBTX09LOwog
I2Vsc2UKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkVycm9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJFcnJvci5jcHAJKHJldmlzaW9uIDIz
ODI2NCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkVycm9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2VuZGlmCiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9O
KQotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2VuZGlmCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTM4LDcgKzEzOCw3IEBAIEhSRVNVTFQgV2ViRXJyb3I6
OmxvY2FsaXplZERlc2NyaXB0aW9uKF8KICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIGlm
ICghKnJlc3VsdCkgewogICAgICAgICBpZiAoaW50IGNvZGUgPSBtX2Vycm9yLmVycm9yQ29kZSgp
KQotICAgICAgICAgICAgKnJlc3VsdCA9IEJTdHJpbmcod2tDRk5ldHdvcmtFcnJvckdldExvY2Fs
aXplZERlc2NyaXB0aW9uKGNvZGUpKS5yZWxlYXNlKCk7CisgICAgICAgICAgICAqcmVzdWx0ID0g
QlN0cmluZyhfQ0ZOZXR3b3JrRXJyb3JHZXRMb2NhbGl6ZWREZXNjcmlwdGlvbihjb2RlKSkucmVs
ZWFzZSgpOwogICAgIH0KICNlbmRpZgogCkBAIC0yMjksMTAgKzIyOSwxMCBAQCBIUkVTVUxUIFdl
YkVycm9yOjpzc2xQZWVyQ2VydGlmaWNhdGUoX091CiAgICAgaWYgKCFtX2NmRXJyb3JVc2VySW5m
b0RpY3QpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICB2b2lkKiBkYXRhID0gd2tHZXRT
U0xQZWVyQ2VydGlmaWNhdGVEYXRhQnl0ZVB0cihtX2NmRXJyb3JVc2VySW5mb0RpY3QuZ2V0KCkp
OworICAgIGNvbnN0IHZvaWQqIGRhdGEgPSBSZXNvdXJjZUVycm9yOjpnZXRTU0xQZWVyQ2VydGlm
aWNhdGVEYXRhQnl0ZVB0cihtX2NmRXJyb3JVc2VySW5mb0RpY3QuZ2V0KCkpOwogICAgIGlmICgh
ZGF0YSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKLSAgICAqcmVzdWx0ID0gcmVpbnRlcnByZXRf
Y2FzdDxVTE9OR19QVFI+KGRhdGEpOworICAgICpyZXN1bHQgPSByZWludGVycHJldF9jYXN0PFVM
T05HX1BUUj4oY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwogI2VuZGlmCiAgICAgcmV0dXJuICpy
ZXN1bHQgPyBTX09LIDogRV9GQUlMOwogfQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVVJMUmVzcG9uc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlVSTFJlc3BvbnNlLmNwcAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVVJMUmVzcG9uc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTggQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsMTIg
KzM2LDEzIEBACiAjZW5kaWYKIAogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0jaW5jbHVkZSA8
V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2luY2x1ZGUg
PHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjZW5kaWYKIAogI2luY2x1ZGUgPFdlYkNvcmUv
QlN0cmluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9M
b2NhbGl6ZWRTdHJpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPHNobG9iai5oPgog
I2luY2x1ZGUgPHNobHdhcGkuaD4KQEAgLTQxMCwxMCArNDExLDEwIEBAIEhSRVNVTFQgV2ViVVJM
UmVzcG9uc2U6OnNzbFBlZXJDZXJ0aWZpY2EKICAgICBDRkRpY3Rpb25hcnlSZWYgZGljdCA9IGNl
cnRpZmljYXRlRGljdGlvbmFyeSgpOwogICAgIGlmICghZGljdCkKICAgICAgICAgcmV0dXJuIEVf
RkFJTDsKLSAgICB2b2lkKiBkYXRhID0gd2tHZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhQnl0ZVB0
cihkaWN0KTsKKyAgICBjb25zdCB2b2lkKiBkYXRhID0gUmVzb3VyY2VFcnJvcjo6Z2V0U1NMUGVl
ckNlcnRpZmljYXRlRGF0YUJ5dGVQdHIoZGljdCk7CiAgICAgaWYgKCFkYXRhKQogICAgICAgICBy
ZXR1cm4gRV9GQUlMOwotICAgICpyZXN1bHQgPSByZWludGVycHJldF9jYXN0PFVMT05HX1BUUj4o
ZGF0YSk7CisgICAgKnJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUxPTkdfUFRSPihjb25zdF9j
YXN0PHZvaWQqPihkYXRhKSk7CiAjZW5kaWYKIAogICAgIHJldHVybiAqcmVzdWx0ID8gU19PSyA6
IEVfRkFJTDsKQEAgLTQ4NCw3ICs0ODUsNyBAQCBDRkRpY3Rpb25hcnlSZWYgV2ViVVJMUmVzcG9u
c2U6OmNlcnRpZmljCiAgICAgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlID0gbV9yZXNwb25z
ZS5jZlVSTFJlc3BvbnNlKCk7CiAgICAgaWYgKCFjZlJlc3BvbnNlKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICBtX1NTTENlcnRpZmljYXRlSW5mbyA9IHdrR2V0U1NMQ2VydGlmaWNhdGVJ
bmZvKGNmUmVzcG9uc2UpOworICAgIG1fU1NMQ2VydGlmaWNhdGVJbmZvID0gX0NGVVJMUmVzcG9u
c2VHZXRTU0xDZXJ0aWZpY2F0ZUNvbnRleHQoY2ZSZXNwb25zZSk7CiAgICAgcmV0dXJuIG1fU1NM
Q2VydGlmaWNhdGVJbmZvLmdldCgpOwogfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw3ICsxODYsOCBAQAogI2lmIFVT
RShDRlVSTENPTk5FQ1RJT04pCiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ2FjaGVQcml2Lmg+
CiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMUHJvdG9jb2xQcml2Lmg+Ci0jaW5jbHVkZSA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvQ0ZVUkxFeHRyYXMuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5o
PgogI2VsaWYgVVNFKENVUkwpCiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJsQ2FjaGVNYW5hZ2VyLmg+
CiAjZW5kaWYKQEAgLTUwNSw3ICs1MDYsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwo
V2ViQ2FjaGVNb2RlCiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIFJldGFpblB0cjxD
RlVSTENhY2hlUmVmPiBjZnVybENhY2hlID0gYWRvcHRDRihDRlVSTENhY2hlQ29weVNoYXJlZFVS
TENhY2hlKCkpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY2Z1cmxDYWNoZURpcmVjdG9y
eSA9IGFkb3B0Q0Yod2tDb3B5Rm91bmRhdGlvbkNhY2hlRGlyZWN0b3J5KDApKTsKKyAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGNmdXJsQ2FjaGVEaXJlY3RvcnkgPSBhZG9wdENGKF9DRlVSTENh
Y2hlQ29weUNhY2hlRGlyZWN0b3J5KGNmdXJsQ2FjaGUuZ2V0KCkpKTsKICAgICBpZiAoIWNmdXJs
Q2FjaGVEaXJlY3RvcnkpIHsKICAgICAgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBw
cmVmZXJlbmNlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weUFwcFZhbHVlKFdlYktpdExvY2Fs
Q2FjaGVEZWZhdWx0c0tleSwgV2ViUHJlZmVyZW5jZXM6OmFwcGxpY2F0aW9uSWQoKSkpOwogICAg
ICAgICBpZiAocHJlZmVyZW5jZSAmJiAoQ0ZTdHJpbmdHZXRUeXBlSUQoKSA9PSBDRkdldFR5cGVJ
RChwcmVmZXJlbmNlLmdldCgpKSkpCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmNwcAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAKIAogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAjaW5jbHVk
ZSA8Q0ZOZXR3b3JrL0NGSFRUUENvb2tpZXNQcml2Lmg+Ci0jaW5jbHVkZSA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2Yv
Q0ZOZXR3b3JrU1BJLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4
OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VHcm91cC5oPgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSNpbmNsdWRlIDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8cGFs
L3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355083</attachid>
            <date>2018-11-16 11:24:47 -0800</date>
            <delta_ts>2018-11-16 11:29:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191718-20181116112442.patch</filename>
            <type>text/plain</type>
            <size>7563</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODI2NCkKKysrIFNv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI3IEBACisyMDE4LTExLTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgor
CisgICAgICAgIFtXaW5dIFJlZHVjZSB0aGUgdXNlIG9mIFdLU0kgbGlicmFyeSBjYWxsczogQ0ZO
ZXR3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTE3MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2MTA4NzMyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBjdXN0b20gV0tTSSBDRk5l
dHdvcmsgY2FsbHMsIHNpbmNlIHRoZSBTUEkgaXMgYWxyZWFkeSBkb2N1bWVudGVkIGluIFBBTC4g
SnVzdAorICAgICAgICBtYWtlIHRoZSBzYW1lIGNhbGxzIG9uIFdpbmRvd3MsIGxpa2Ugd2UgZGlk
IGZvciBpT1MgYW5kIG1hY09TIGJhY2sgaW4gMjAxNy4KKworICAgICAgICAqIFdlYkNhY2hlLmNw
cDoKKyAgICAgICAgKFdlYkNhY2hlOjpjYWNoZUZvbGRlcik6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKiBXZWJFcnJvci5jcHA6
CisgICAgICAgIChXZWJFcnJvcjo6bG9jYWxpemVkRGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
RXJyb3I6OnNzbFBlZXJDZXJ0aWZpY2F0ZSk6CisgICAgICAgICogV2ViVVJMUmVzcG9uc2UuY3Bw
OgorICAgICAgICAoV2ViVVJMUmVzcG9uc2U6OnNzbFBlZXJDZXJ0aWZpY2F0ZSk6CisgICAgICAg
IChXZWJVUkxSZXNwb25zZTo6Y2VydGlmaWNhdGVEaWN0aW9uYXJ5IGNvbnN0KToKKyAgICAgICAg
KiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnNldENhY2hlTW9kZWwpOgorCiAyMDE4
LTExLTE1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtX
aW5dIFJlZHVjZSB0aGUgdXNlIG9mIFdLU0kgbGlicmFyeSBjYWxsczogRm9udCBIYW5kbGluZwpJ
bmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ2FjaGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNhY2hlLmNwcAkocmV2aXNpb24gMjM4MjY0KQor
KysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJsQ2FjaGVNYW5hZ2VyLmg+CiAj
ZWxpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENhY2hl
UHJpdi5oPgotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2VuZGlmCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjQ5LDcgKzI0OSw4IEBAIEhSRVNVTFQgV2Vi
Q2FjaGU6OmNhY2hlRm9sZGVyKF9fZGVyZWZfb3UKICAgICAqbG9jYXRpb24gPSBXZWJDb3JlOjpC
U3RyaW5nKGNhY2hlRm9sZGVyKS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIFNfT0s7CiAjZWxpZiBV
U0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY2Z1cmxDYWNo
ZURpcmVjdG9yeSA9IGFkb3B0Q0Yod2tDb3B5Rm91bmRhdGlvbkNhY2hlRGlyZWN0b3J5KDApKTsK
KyAgICBSZXRhaW5QdHI8Q0ZVUkxDYWNoZVJlZj4gY2FjaGUgPSBhZG9wdENGKENGVVJMQ2FjaGVD
b3B5U2hhcmVkVVJMQ2FjaGUoKSk7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZnVybENh
Y2hlRGlyZWN0b3J5ID0gYWRvcHRDRihfQ0ZVUkxDYWNoZUNvcHlDYWNoZURpcmVjdG9yeShjYWNo
ZS5nZXQoKSkpOwogICAgICpsb2NhdGlvbiA9IEJTdHJpbmcoY2Z1cmxDYWNoZURpcmVjdG9yeS5n
ZXQoKSkucmVsZWFzZSgpOwogICAgIHJldHVybiBTX09LOwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkVycm9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJFcnJvci5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkVycm9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBA
QAogI2VuZGlmCiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotI2luY2x1ZGUgPFdlYktpdFN5
c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpA
QCAtMTM4LDcgKzEzOCw3IEBAIEhSRVNVTFQgV2ViRXJyb3I6OmxvY2FsaXplZERlc2NyaXB0aW9u
KF8KICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIGlmICghKnJlc3VsdCkgewogICAgICAg
ICBpZiAoaW50IGNvZGUgPSBtX2Vycm9yLmVycm9yQ29kZSgpKQotICAgICAgICAgICAgKnJlc3Vs
dCA9IEJTdHJpbmcod2tDRk5ldHdvcmtFcnJvckdldExvY2FsaXplZERlc2NyaXB0aW9uKGNvZGUp
KS5yZWxlYXNlKCk7CisgICAgICAgICAgICAqcmVzdWx0ID0gQlN0cmluZyhfQ0ZOZXR3b3JrRXJy
b3JHZXRMb2NhbGl6ZWREZXNjcmlwdGlvbihjb2RlKSkucmVsZWFzZSgpOwogICAgIH0KICNlbmRp
ZgogCkBAIC0yMjksMTAgKzIyOSwxMCBAQCBIUkVTVUxUIFdlYkVycm9yOjpzc2xQZWVyQ2VydGlm
aWNhdGUoX091CiAgICAgaWYgKCFtX2NmRXJyb3JVc2VySW5mb0RpY3QpCiAgICAgICAgIHJldHVy
biBFX0ZBSUw7CiAKLSAgICB2b2lkKiBkYXRhID0gd2tHZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRh
Qnl0ZVB0cihtX2NmRXJyb3JVc2VySW5mb0RpY3QuZ2V0KCkpOworICAgIGNvbnN0IHZvaWQqIGRh
dGEgPSBSZXNvdXJjZUVycm9yOjpnZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhQnl0ZVB0cihtX2Nm
RXJyb3JVc2VySW5mb0RpY3QuZ2V0KCkpOwogICAgIGlmICghZGF0YSkKICAgICAgICAgcmV0dXJu
IEVfRkFJTDsKLSAgICAqcmVzdWx0ID0gcmVpbnRlcnByZXRfY2FzdDxVTE9OR19QVFI+KGRhdGEp
OworICAgICpyZXN1bHQgPSByZWludGVycHJldF9jYXN0PFVMT05HX1BUUj4oY29uc3RfY2FzdDx2
b2lkKj4oZGF0YSkpOwogI2VuZGlmCiAgICAgcmV0dXJuICpyZXN1bHQgPyBTX09LIDogRV9GQUlM
OwogfQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVVJMUmVzcG9uc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlVSTFJlc3BvbnNlLmNwcAko
cmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVVJMUmVzcG9u
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LTIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsMTIgKzM2LDEzIEBACiAjZW5kaWYKIAog
I2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
L1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmg+CiAjZW5kaWYKIAogI2luY2x1ZGUgPFdlYkNvcmUvQlN0cmluZy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPHNobG9iai5oPgogI2luY2x1ZGUgPHNobHdhcGkuaD4K
QEAgLTQxMCwxMCArNDExLDEwIEBAIEhSRVNVTFQgV2ViVVJMUmVzcG9uc2U6OnNzbFBlZXJDZXJ0
aWZpY2EKICAgICBDRkRpY3Rpb25hcnlSZWYgZGljdCA9IGNlcnRpZmljYXRlRGljdGlvbmFyeSgp
OwogICAgIGlmICghZGljdCkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKLSAgICB2b2lkKiBkYXRh
ID0gd2tHZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhQnl0ZVB0cihkaWN0KTsKKyAgICBjb25zdCB2
b2lkKiBkYXRhID0gUmVzb3VyY2VFcnJvcjo6Z2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YUJ5dGVQ
dHIoZGljdCk7CiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm4gRV9GQUlMOwotICAgICpy
ZXN1bHQgPSByZWludGVycHJldF9jYXN0PFVMT05HX1BUUj4oZGF0YSk7CisgICAgKnJlc3VsdCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8VUxPTkdfUFRSPihjb25zdF9jYXN0PHZvaWQqPihkYXRhKSk7CiAj
ZW5kaWYKIAogICAgIHJldHVybiAqcmVzdWx0ID8gU19PSyA6IEVfRkFJTDsKQEAgLTQ4NCw3ICs0
ODUsNyBAQCBDRkRpY3Rpb25hcnlSZWYgV2ViVVJMUmVzcG9uc2U6OmNlcnRpZmljCiAgICAgQ0ZV
UkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlID0gbV9yZXNwb25zZS5jZlVSTFJlc3BvbnNlKCk7CiAg
ICAgaWYgKCFjZlJlc3BvbnNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBtX1NTTENl
cnRpZmljYXRlSW5mbyA9IHdrR2V0U1NMQ2VydGlmaWNhdGVJbmZvKGNmUmVzcG9uc2UpOworICAg
IG1fU1NMQ2VydGlmaWNhdGVJbmZvID0gX0NGVVJMUmVzcG9uc2VHZXRTU0xDZXJ0aWZpY2F0ZUNv
bnRleHQoY2ZSZXNwb25zZSk7CiAgICAgcmV0dXJuIG1fU1NMQ2VydGlmaWNhdGVJbmZvLmdldCgp
OwogfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNp
b24gMjM4MjY0KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE4Niw3ICsxODYsOCBAQAogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAj
aW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ2FjaGVQcml2Lmg+CiAjaW5jbHVkZSA8Q0ZOZXR3b3Jr
L0NGVVJMUHJvdG9jb2xQcml2Lmg+Ci0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dl
YktpdFN5c3RlbUludGVyZmFjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0ZVUkxFeHRyYXMuaD4K
KyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2VsaWYgVVNFKENVUkwpCiAj
aW5jbHVkZSA8V2ViQ29yZS9DdXJsQ2FjaGVNYW5hZ2VyLmg+CiAjZW5kaWYKQEAgLTUwNSw3ICs1
MDYsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVNb2RlCiAKICNpZiBV
U0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIFJldGFpblB0cjxDRlVSTENhY2hlUmVmPiBjZnVybENh
Y2hlID0gYWRvcHRDRihDRlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCkpOwotICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gY2Z1cmxDYWNoZURpcmVjdG9yeSA9IGFkb3B0Q0Yod2tDb3B5Rm91
bmRhdGlvbkNhY2hlRGlyZWN0b3J5KDApKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNm
dXJsQ2FjaGVEaXJlY3RvcnkgPSBhZG9wdENGKF9DRlVSTENhY2hlQ29weUNhY2hlRGlyZWN0b3J5
KGNmdXJsQ2FjaGUuZ2V0KCkpKTsKICAgICBpZiAoIWNmdXJsQ2FjaGVEaXJlY3RvcnkpIHsKICAg
ICAgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBwcmVmZXJlbmNlID0gYWRvcHRDRihD
RlByZWZlcmVuY2VzQ29weUFwcFZhbHVlKFdlYktpdExvY2FsQ2FjaGVEZWZhdWx0c0tleSwgV2Vi
UHJlZmVyZW5jZXM6OmFwcGxpY2F0aW9uSWQoKSkpOwogICAgICAgICBpZiAocHJlZmVyZW5jZSAm
JiAoQ0ZTdHJpbmdHZXRUeXBlSUQoKSA9PSBDRkdldFR5cGVJRChwcmVmZXJlbmNlLmdldCgpKSkp
CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAkocmV2aXNpb24g
MjM4MjY0KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAK
IAogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGSFRUUENv
b2tpZXNQcml2Lmg+Ci0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjZW5k
aWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogCiAjaWYg
VVNFKENGVVJMQ09OTkVDVElPTikKLSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEku
aD4KICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355085</attachid>
            <date>2018-11-16 11:29:09 -0800</date>
            <delta_ts>2018-11-16 13:03:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191718-20181116112905.patch</filename>
            <type>text/plain</type>
            <size>27494</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODI5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE4LTExLTE2ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIFJlZHVjZSB0aGUg
dXNlIG9mIFdLU0kgbGlicmFyeSBjYWxsczogQ0ZOZXR3b3JrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQ2MTA4NzMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSBjdXN0b20gV0tTSSBDRk5ldHdvcmsgY2FsbHMsIHNpbmNlIHRoZSBTUEkg
aXMgYWxyZWFkeSBkb2N1bWVudGVkIGluIFBBTC4gSnVzdAorICAgICAgICBtYWtlIHRoZSBzYW1l
IGNhbGxzIG9uIFdpbmRvd3MsIGxpa2Ugd2UgZGlkIGZvciBpT1MgYW5kIG1hY09TIGJhY2sgaW4g
MjAxNy4KKworICAgICAgICBTdG9wIGluY2x1ZGluZyBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCBm
b3IgZmlsZXMgdGhhdCB1c2VkIHRvIHJlbHkgb24gaXQKKyAgICAgICAgZm9yIGZvbnQtcmVsYXRl
ZCBmZWF0dXJlcy4KKyAgICAgICAgCisgICAgICAgIFRlc3RlZCBieSBleGlzdGluZyBXaW5kb3dz
IHJlZ3Jlc3Npb24gdGVzdHMuIFRoZXJlIHNob3VsZCBiZSBubyBjaGFuZ2UgaW4gYmVoYXZpb3Iu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFDR1dpbi5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
Rk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rl
c3RpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZW5zdXJlU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVy
cm9yLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlRXJyb3I6OmdldFNTTFBlZXJDZXJ0aWZpY2F0ZURhdGFCeXRlUHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OnBsYXRmb3JtTGF6eUluaXQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6Y2ZFcnJvciBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNldENsaWVudENlcnRpZmljYXRlSW5TU0xQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZO
ZXQuY3BwOgorCiAyMDE4LTExLTE2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIEFuIGVhcmx5IHJldHVybiBmcm9tIHVwZGF0ZVNjaGVkdWxpbmdJbmZvIGNhbiBs
ZWF2ZSBzb21lIHZhcmlhYmxlcyB1bmluaXRpYWxpemVkLgpJbmRleDogU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzgyNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTEtMTYgIEJyZW50IEZ1bGdoYW0gIDxi
ZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl0gUmVkdWNlIHRoZSB1c2Ugb2YgV0tT
SSBsaWJyYXJ5IGNhbGxzOiBDRk5ldHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MTcxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDYxMDg3
MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IG5lY2Vzc2FyeSBkZWNsYXJhdGlvbnMgZm9yIENGTmV0d29yayBTUEkgbmVlZGVkIGJ5IHRoZSBB
cHBsZSBXaW5kb3dzIGJ1aWxkLgorCisgICAgICAgICogcGFsL1BsYXRmb3JtQXBwbGVXaW4uY21h
a2U6CisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKyAgICAgICAgKiBwYWwv
c3BpL2NmL0NGTmV0d29ya1NQSVdpbi5jcHA6IEFkZGVkLgorCiAyMDE4LTExLTE1ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGl0aW9uYWwgV2luZG93
cyBidWlsZCBmaXggYWZ0ZXIgcjIzODI1My4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
UGxhdGZvcm1BcHBsZVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1BcHBsZVdpbi5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsOCBAQCBsaXN0KEFQUEVORCBQQUxfU09VUkNFUwogICAgIGNmL0NvcmVNZWRpYVNv
ZnRMaW5rLmNwcAogCiAgICAgY3J5cHRvL3dpbi9DcnlwdG9EaWdlc3RXaW4uY3BwCisKKyAgICBz
cGkvY2YvQ0ZOZXR3b3JrU1BJV2luLmNwcAogKQogCiBsaXN0KEFQUEVORCBQQUxfUFJJVkFURV9J
TkNMVURFX0RJUkVDVE9SSUVTCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9D
Rk5ldHdvcmtTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDIw
IEBACiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMUmVzcG9uc2VQcml2Lmg+CiAjaW5jbHVkZSA8
Q0ZOZXR3b3JrL0NGVVJMU3RvcmFnZVNlc3Npb24uaD4KIAorI2lmIFBMQVRGT1JNKFdJTikKKwor
V1RGX0VYVEVSTl9DX0JFR0lOCisKK0NGTl9FWFBPUlQgQ0ZTdHJpbmdSZWYgX0NGTmV0d29ya0Vy
cm9yR2V0TG9jYWxpemVkRGVzY3JpcHRpb24oQ0ZJbmRleCk7CisKK2V4dGVybiBjb25zdCBDRlN0
cmluZ1JlZiBfa0NGV2luZG93c1NTTExvY2FsQ2VydDsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBfa0NGU3RyZWFtUHJvcGVydHlXaW5kb3dzU1NMQ2VydEluZm87CitleHRlcm4gY29uc3QgQ0ZT
dHJpbmdSZWYgX2tDRldpbmRvd3NTU0xQZWVyQ2VydDsKKworV1RGX0VYVEVSTl9DX0VORAorCisj
ZW5kaWYKKwogLy8gRklYTUU6IFJlbW92ZSB0aGUgZGVmaW5lZChfX09CSkNfXyktZ3VhcmQgb25j
ZSB3ZSBmaXggPHJkYXI6Ly9wcm9ibGVtLzE5MDMzNjEwPi4KICNpZiBkZWZpbmVkKF9fT0JKQ19f
KSAmJiBQTEFURk9STShDT0NPQSkKICNpbXBvcnQgPENGTmV0d29yay9DRk5TVVJMQ29ubmVjdGlv
bi5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJV2lu
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdv
cmtTUElXaW4uY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShXSU4pICYm
IFVTRShDRlVSTENPTk5FQ1RJT04pCisKKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQ
SS5oPgorCitjb25zdCBDRlN0cmluZ1JlZiBfa0NGV2luZG93c1NTTExvY2FsQ2VydCA9IENGU1RS
KCJfa0NGV2luZG93c1NTTExvY2FsQ2VydCIpOworY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRldpbmRv
d3NTU0xQZWVyQ2VydCA9IENGU1RSKCJfa0NGV2luZG93c1NTTFBlZXJDZXJ0Iik7Citjb25zdCBD
RlN0cmluZ1JlZiBfa0NGU3RyZWFtUHJvcGVydHlXaW5kb3dzU1NMQ2VydEluZm8gPSBDRlNUUigi
X2tDRlN0cmVhbVByb3BlcnR5V2luZG93c1NTTENlcnRJbmZvIik7CisKKyNlbmRpZiAvLyBQTEFU
Rk9STShXSU4pICYmIFVTRShDRlVSTENPTk5FQ1RJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAkocmV2aXNp
b24gMjM4MjY0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRD
YWNoZVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlIDx3
dGYvd2luL0dESU9iamVjdC5oPgogCiAjaWYgVVNFKENHKQotI2luY2x1ZGUgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2Nn
L0NvcmVHcmFwaGljc1NQSS5oPgogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPHd0Zi93aW4vR0RJT2JqZWN0Lmg+CiAKICNpZiBVU0Uo
Q0cpCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjZW5kaWYKIAog
I2lmIFVTRShESVJFQ1QyRCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhQ0dXaW4uY3BwCShyZXZp
c2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dFBsYXRmb3JtRGF0YUNHV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAog
I2lmIFVTRShDRykKIAogI2luY2x1ZGUgIlNoYXJlZEdESU9iamVjdC5oIgotI2luY2x1ZGUgPFdl
YktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxw
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tp
ZVN0b3JhZ2VDRk5ldC5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkxvYWRlclJ1bkxvb3BDRi5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgPENGTmV0d29yay9DRkhUVFBDb29r
aWVzUHJpdi5oPgotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0LmNwcAkocmV2aXNp
b24gMjM4MjY0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50
aWFsU3RvcmFnZUNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2lu
Y2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ0YuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsLmgiCiAjaW5j
bHVkZSAiUHJvdGVjdGlvblNwYWNlLmgiCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
L1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbkNGTmV0LmNwcAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDggKzM0LDYgQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRl
ICJQdWJsaWNTdWZmaXguaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNlbHNlCi0j
aW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgog
I2VuZGlmCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICNpbmNsdWRlICJDb29raWUuaCIKQEAg
LTEzMyw2ICsxMzEsNDAgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNl
cwogICAgIHJldHVybiBzZXNzaW9uOwogfQogCitzdGF0aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJl
ZiBjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oQ0ZTdHJpbmdSZWYgaWRlbnRpZmllciwgQ0ZV
UkxTdG9yYWdlU2Vzc2lvblJlZiBkZWZhdWx0U3RvcmFnZVNlc3Npb24pCit7CisgICAgY29uc3Qg
dm9pZCogc2Vzc2lvblByb3BlcnR5S2V5c1tdID0geyBfa0NGVVJMU3RvcmFnZVNlc3Npb25Jc1By
aXZhdGUgfTsKKyAgICBjb25zdCB2b2lkKiBzZXNzaW9uUHJvcGVydHlWYWx1ZXNbXSA9IHsga0NG
Qm9vbGVhblRydWUgfTsKKyAgICBDRkRpY3Rpb25hcnlSZWYgc2Vzc2lvblByb3BlcnRpZXMgPSBD
RkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc2Vzc2lvblByb3BlcnR5S2V5
cywgc2Vzc2lvblByb3BlcnR5VmFsdWVzLCBzaXplb2Yoc2Vzc2lvblByb3BlcnR5S2V5cykgLyBz
aXplb2YoKnNlc3Npb25Qcm9wZXJ0eUtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFj
a3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsKKyAgICBDRlVSTFN0b3JhZ2VT
ZXNzaW9uUmVmIHN0b3JhZ2VTZXNzaW9uID0gX0NGVVJMU3RvcmFnZVNlc3Npb25DcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgaWRlbnRpZmllciwgc2Vzc2lvblByb3BlcnRpZXMpOworCisgICAg
Ly8gVGhlIHByaXZhdGUgc3RvcmFnZSBzZXNzaW9uIHNob3VsZCBoYXZlIHRoZSBzYW1lIHByb3Bl
cnRpZXMgYXMgdGhlIGRlZmF1bHQgc3RvcmFnZSBzZXNzaW9uLAorICAgIC8vIHdpdGggdGhlIGV4
Y2VwdGlvbiB0aGF0IGl0IHNob3VsZCBiZSBpbi1tZW1vcnkgb25seSBzdG9yYWdlLgorICAgIENG
VVJMQ2FjaGVSZWYgY2FjaGUgPSBfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDYWNoZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBzdG9yYWdlU2Vzc2lvbik7CisgICAgQ0ZVUkxDYWNoZVNldERpc2tDYXBh
Y2l0eShjYWNoZSwgMCk7CisgICAgQ0ZVUkxDYWNoZVJlZiBkZWZhdWx0Q2FjaGU7CisgICAgaWYg
KGRlZmF1bHRTdG9yYWdlU2Vzc2lvbikKKyAgICAgICAgZGVmYXVsdENhY2hlID0gX0NGVVJMU3Rv
cmFnZVNlc3Npb25Db3B5Q2FjaGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdFN0b3JhZ2VT
ZXNzaW9uKTsKKyAgICBlbHNlIAorICAgICAgICBkZWZhdWx0Q2FjaGUgPSBDRlVSTENhY2hlQ29w
eVNoYXJlZFVSTENhY2hlKCk7CisgICAgQ0ZVUkxDYWNoZVNldE1lbW9yeUNhcGFjaXR5KGNhY2hl
LCBDRlVSTENhY2hlTWVtb3J5Q2FwYWNpdHkoZGVmYXVsdENhY2hlKSk7CisgICAgQ0ZSZWxlYXNl
KGRlZmF1bHRDYWNoZSk7CisgICAgQ0ZSZWxlYXNlKGNhY2hlKTsKKworICAgIENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSA9IF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNvb2tp
ZVN0b3JhZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RvcmFnZVNlc3Npb24pOworICAgIENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYgZGVmYXVsdENvb2tpZVN0b3JhZ2U7CisgICAgaWYgKGRlZmF1bHRT
dG9yYWdlU2Vzc2lvbikKKyAgICAgICAgZGVmYXVsdENvb2tpZVN0b3JhZ2UgPSBfQ0ZVUkxTdG9y
YWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlZmF1bHRT
dG9yYWdlU2Vzc2lvbik7CisgICAgZWxzZQorICAgICAgICBkZWZhdWx0Q29va2llU3RvcmFnZSA9
IF9DRkhUVFBDb29raWVTdG9yYWdlR2V0RGVmYXVsdChrQ0ZBbGxvY2F0b3JEZWZhdWx0KTsKKyAg
ICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5KGNvb2tpZVN0b3JhZ2Us
IENGSFRUUENvb2tpZVN0b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koZGVmYXVsdENvb2tpZVN0
b3JhZ2UpKTsKKyAgICBpZiAoZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKQorICAgICAgICBDRlJlbGVh
c2UoZGVmYXVsdENvb2tpZVN0b3JhZ2UpOworICAgIENGUmVsZWFzZShjb29raWVTdG9yYWdlKTsK
KworICAgIHJldHVybiBzdG9yYWdlU2Vzc2lvbjsKK30KKwogdm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQogewogICAgIC8vIFNlc3Npb24gbmFt
ZSBzaG91bGQgYmUgc2hvcnQgZW5vdWdoIGZvciBzaGFyZWQgbWVtb3J5IHJlZ2lvbiBuYW1lIHRv
IGJlIHVuZGVyIHRoZSBsaW1pdCwgb3RlaHJ3aXNlIHNhbmRib3ggcnVsZXMgd29uJ3Qgd29yayAo
c2VlIDxyZGFyOi8vcHJvYmxlbS8xMzY0Mjg1Mj4pLgpAQCAtMTQyLDcgKzE3NCw3IEBAIHZvaWQg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1QKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBzZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oc2Vzc2lv
bk5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogI2Vsc2UKLSAgICBzZXNzaW9uID0gYWRv
cHRDRih3a0NyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihzZXNzaW9uTmFtZS5jcmVhdGVDRlN0
cmluZygpLmdldCgpLCBkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKSkp
OworICAgIHNlc3Npb24gPSBhZG9wdENGKGNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihzZXNz
aW9uTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5w
bGF0Zm9ybVNlc3Npb24oKSkpOwogI2VuZGlmCiAKICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2ll
U3RvcmFnZVJlZj4gY29va2llU3RvcmFnZTsKQEAgLTE3NSw3ICsyMDcsNyBAQCB2b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
ICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24o
Y2ZJZGVudGlmaWVyLmdldCgpKSk7CiAjZWxzZQotICAgICAgICBzdG9yYWdlU2Vzc2lvbiA9IGFk
b3B0Q0Yod2tDcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oY2ZJZGVudGlmaWVyLmdldCgpLCBk
ZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnBsYXRmb3JtU2Vzc2lvbigpKSk7CisgICAg
ICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24o
Y2ZJZGVudGlmaWVyLmdldCgpLCBkZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnBsYXRm
b3JtU2Vzc2lvbigpKSk7CiAjZW5kaWYKICAgICB9IGVsc2UKICAgICAgICAgc3RvcmFnZVNlc3Np
b24gPSBjcmVhdGVDRlN0b3JhZ2VTZXNzaW9uRm9ySWRlbnRpZmllcihjZklkZW50aWZpZXIuZ2V0
KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVy
cm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUVycm9yLmgJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzIsNiArNzIs
OCBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VFcnJvcihDRlN0cmVhbUVycm9yIGVycm9yKTsKICAg
ICBDRlN0cmVhbUVycm9yIGNmU3RyZWFtRXJyb3IoKSBjb25zdDsKICAgICBvcGVyYXRvciBDRlN0
cmVhbUVycm9yKCkgY29uc3Q7CisgICAgc3RhdGljIGNvbnN0IHZvaWQqIGdldFNTTFBlZXJDZXJ0
aWZpY2F0ZURhdGFCeXRlUHRyKENGRGljdGlvbmFyeVJlZik7CisKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlRXJyb3JDRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3JDRi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxD
b3JlRm91bmRhdGlvbi9DRkVycm9yLmg+CiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGTmV0d29ya0Vy
cm9ycy5oPgotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjgsNiArNjgsMzAg
QEAgdm9pZCBSZXNvdXJjZUVycm9yOjpzZXRDZXJ0aWZpY2F0ZShDRkRhdAogY29uc3QgQ0ZTdHJp
bmdSZWYgZmFpbGluZ1VSTFN0cmluZ0tleSA9IENGU1RSKCJOU0Vycm9yRmFpbGluZ1VSTFN0cmlu
Z0tleSIpOwogY29uc3QgQ0ZTdHJpbmdSZWYgZmFpbGluZ1VSTEtleSA9IENGU1RSKCJOU0Vycm9y
RmFpbGluZ1VSTEtleSIpOwogCitzdGF0aWMgQ0ZEYXRhUmVmIGdldFNTTFBlZXJDZXJ0aWZpY2F0
ZURhdGEoQ0ZEaWN0aW9uYXJ5UmVmIGRpY3QpCit7CisgICAgaWYgKCFkaWN0KQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDRkRhdGFSZWY+KENG
RGljdGlvbmFyeUdldFZhbHVlKGRpY3QsIF9rQ0ZXaW5kb3dzU1NMUGVlckNlcnQpKTsKK30KKwor
c3RhdGljIHZvaWQgc2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YShDRk11dGFibGVEaWN0aW9uYXJ5
UmVmIGRpY3QsIENGRGF0YVJlZiBkYXRhKQoreworICAgIGlmICghZGljdCkKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIGlmICghZGF0YSkKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVtb3ZlVmFs
dWUoZGljdCwgX2tDRldpbmRvd3NTU0xQZWVyQ2VydCk7CisgICAgZWxzZQorICAgICAgICBDRkRp
Y3Rpb25hcnlTZXRWYWx1ZShkaWN0LCBfa0NGV2luZG93c1NTTFBlZXJDZXJ0LCBkYXRhKTsKK30K
KworY29uc3Qgdm9pZCogUmVzb3VyY2VFcnJvcjo6Z2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YUJ5
dGVQdHIoQ0ZEaWN0aW9uYXJ5UmVmIGRpY3QpCit7CisgICAgQ0ZEYXRhUmVmIGRhdGEgPSBnZXRT
U0xQZWVyQ2VydGlmaWNhdGVEYXRhKGRpY3QpOworICAgIHJldHVybiBkYXRhID8gcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB2b2lkKj4oQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhKSkgOiBudWxscHRyOwor
fQorCiB2b2lkIFJlc291cmNlRXJyb3I6OnBsYXRmb3JtTGF6eUluaXQoKQogewogICAgIGlmICht
X2RhdGFJc1VwVG9EYXRlKQpAQCAtMTA2LDcgKzEzMCw3IEBAIHZvaWQgUmVzb3VyY2VFcnJvcjo6
cGxhdGZvcm1MYXp5SW5pdCgpCiAgICAgICAgIH0KICAgICAgICAgbV9sb2NhbGl6ZWREZXNjcmlw
dGlvbiA9IChDRlN0cmluZ1JlZikgQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUodXNlckluZm8uZ2V0KCks
IGtDRkVycm9yTG9jYWxpemVkRGVzY3JpcHRpb25LZXkpOwogICAgICAgICAKLSAgICAgICAgbV9j
ZXJ0aWZpY2F0ZSA9IHdrR2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YSh1c2VySW5mby5nZXQoKSk7
CisgICAgICAgIG1fY2VydGlmaWNhdGUgPSBnZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhKHVzZXJJ
bmZvLmdldCgpKTsKICAgICB9CiAKICAgICBtX2RhdGFJc1VwVG9EYXRlID0gdHJ1ZTsKQEAgLTE0
NCw3ICsxNjgsNyBAQCBDRkVycm9yUmVmIFJlc291cmNlRXJyb3I6OmNmRXJyb3IoKSBjb25zCiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAobV9jZXJ0aWZpY2F0ZSkKLSAgICAgICAgICAgIHdrU2V0
U1NMUGVlckNlcnRpZmljYXRlRGF0YSh1c2VySW5mby5nZXQoKSwgbV9jZXJ0aWZpY2F0ZS5nZXQo
KSk7CisgICAgICAgICAgICBzZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhKHVzZXJJbmZvLmdldCgp
LCBtX2NlcnRpZmljYXRlLmdldCgpKTsKICAgICAgICAgCiAgICAgICAgIG1fcGxhdGZvcm1FcnJv
ciA9IGFkb3B0Q0YoQ0ZFcnJvckNyZWF0ZSgwLCBtX2RvbWFpbi5jcmVhdGVDRlN0cmluZygpLmdl
dCgpLCBtX2Vycm9yQ29kZSwgdXNlckluZm8uZ2V0KCkpKTsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA5LCAyMDEwLCAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTcsNyArNTcsNiBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlIDxX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8
cHJvY2Vzcy5oPgogCiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZGVjbGFyYXRpb24gb25jZSBpdCdz
IGluIFdlYktpdFN1cHBvcnRMaWJyYXJ5LgpAQCAtMTE4LDYgKzExNywyMCBAQCBzdGF0aWMgaW5s
aW5lIENGU3RyaW5nUmVmIHNob3VsZFNuaWZmQ29uCiAjZW5kaWYKIH0KIAorI2lmIFBMQVRGT1JN
KFdJTikKK3N0YXRpYyB2b2lkIHNldENsaWVudENlcnRpZmljYXRlSW5TU0xQcm9wZXJ0aWVzKENG
TXV0YWJsZURpY3Rpb25hcnlSZWYgc3NsUHJvcHMsIENGRGF0YVJlZiBjZXJ0RGF0YSkKK3sKKyAg
ICBpZiAoIXNzbFByb3BzIHx8ICFjZXJ0RGF0YSkKKyAgICAgICAgcmV0dXJuOworICAgIENGTXV0
YWJsZURpY3Rpb25hcnlSZWYgY2VydERpY3QgPSBDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtD
RlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpOworICAgIGlmICghY2VydERpY3QpCisgICAg
ICAgIHJldHVybjsKKyAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShjZXJ0RGljdCwgX2tDRldpbmRv
d3NTU0xMb2NhbENlcnQsIGNlcnREYXRhKTsKKyAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShzc2xQ
cm9wcywgX2tDRlN0cmVhbVByb3BlcnR5V2luZG93c1NTTENlcnRJbmZvLCBjZXJ0RGljdCk7Cisg
ICAgQ0ZSZWxlYXNlKGNlcnREaWN0KTsKK30KKyNlbmRpZgorCiB2b2lkIFJlc291cmNlSGFuZGxl
OjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYs
IE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+PiogbWVzc2FnZVF1ZXVlLCBDRkRpY3Rpb25h
cnlSZWYgY2xpZW50UHJvcGVydGllcykKIHsKICAgICBpZiAoKCFkLT5tX3VzZXIuaXNFbXB0eSgp
IHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgpKSAmJiAhZmlyc3RSZXF1ZXN0KCkudXJsKCkucHJvdG9j
b2xJc0luSFRUUEZhbWlseSgpKSB7CkBAIC0xODYsNyArMTk5LDcgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aQogICAgICAgICBpZiAoIXNzbFByb3BzKQogICAgICAg
ICAgICAgc3NsUHJvcHMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlw
ZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAg
d2tTZXRDbGllbnRDZXJ0aWZpY2F0ZUluU1NMUHJvcGVydGllcyhzc2xQcm9wcy5nZXQoKSwgKGNs
aWVudENlcnQtPnZhbHVlKS5nZXQoKSk7CisgICAgICAgIHNldENsaWVudENlcnRpZmljYXRlSW5T
U0xQcm9wZXJ0aWVzKHNzbFByb3BzLmdldCgpLCAoY2xpZW50Q2VydC0+dmFsdWUpLmdldCgpKTsK
ICNlbmRpZgogICAgIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVj
dGlvbkRlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCShyZXZp
c2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSAiRm9ybURhdGFTdHJlYW1DRk5ldC5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNs
dWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW5j
bHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RD
Rk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NiwxMCArNDYsNiBAQAogI2luY2x1ZGUgPGRsZmNuLmg+CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0jZW5kaWYKLQogV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJ
VChDRlVSTCk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhh
bmRsZUltcGxDRk5ldC5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQAogCiAjaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUg
IkxvYWRlclJ1bkxvb3BDRi5oIgotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5o
PgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMTEtMTYg
IEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl0gUmVk
dWNlIHRoZSB1c2Ugb2YgV0tTSSBsaWJyYXJ5IGNhbGxzOiBDRk5ldHdvcmsKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTcxOAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDYxMDg3MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlIGN1c3RvbSBXS1NJIENGTmV0d29yayBjYWxscywgc2luY2Ug
dGhlIFNQSSBpcyBhbHJlYWR5IGRvY3VtZW50ZWQgaW4gUEFMLiBKdXN0CisgICAgICAgIG1ha2Ug
dGhlIHNhbWUgY2FsbHMgb24gV2luZG93cywgbGlrZSB3ZSBkaWQgZm9yIGlPUyBhbmQgbWFjT1Mg
YmFjayBpbiAyMDE3LgorCisgICAgICAgICogV2ViQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ2Fj
aGU6OmNhY2hlRm9sZGVyKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIFdlYkVycm9yLmNwcDoKKyAgICAgICAgKFdlYkVycm9y
Ojpsb2NhbGl6ZWREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJFcnJvcjo6c3NsUGVlckNlcnRp
ZmljYXRlKToKKyAgICAgICAgKiBXZWJVUkxSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJVUkxS
ZXNwb25zZTo6c3NsUGVlckNlcnRpZmljYXRlKToKKyAgICAgICAgKFdlYlVSTFJlc3BvbnNlOjpj
ZXJ0aWZpY2F0ZURpY3Rpb25hcnkgY29uc3QpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAg
ICAgICAoV2ViVmlldzo6c2V0Q2FjaGVNb2RlbCk6CisKIDIwMTgtMTEtMTUgIEJyZW50IEZ1bGdo
YW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gUmVkdWNlIHRoZSB1c2Ug
b2YgV0tTSSBsaWJyYXJ5IGNhbGxzOiBGb250IEhhbmRsaW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ2FjaGUuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0N1cmxDYWNoZU1hbmFnZXIuaD4KICNlbGlmIFVTRShDRlVSTENPTk5F
Q1RJT04pCiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ2FjaGVQcml2Lmg+Ci0jaW5jbHVkZSA8
V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2luY2x1ZGUg
PHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CkBAIC0yNDksNyArMjQ5LDggQEAgSFJFU1VMVCBXZWJDYWNoZTo6Y2FjaGVGb2xkZXIo
X19kZXJlZl9vdQogICAgICpsb2NhdGlvbiA9IFdlYkNvcmU6OkJTdHJpbmcoY2FjaGVGb2xkZXIp
LnJlbGVhc2UoKTsKICAgICByZXR1cm4gU19PSzsKICNlbGlmIFVTRShDRlVSTENPTk5FQ1RJT04p
Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZnVybENhY2hlRGlyZWN0b3J5ID0gYWRvcHRD
Rih3a0NvcHlGb3VuZGF0aW9uQ2FjaGVEaXJlY3RvcnkoMCkpOworICAgIFJldGFpblB0cjxDRlVS
TENhY2hlUmVmPiBjYWNoZSA9IGFkb3B0Q0YoQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZSgp
KTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmdXJsQ2FjaGVEaXJlY3RvcnkgPSBhZG9w
dENGKF9DRlVSTENhY2hlQ29weUNhY2hlRGlyZWN0b3J5KGNhY2hlLmdldCgpKSk7CiAgICAgKmxv
Y2F0aW9uID0gQlN0cmluZyhjZnVybENhY2hlRGlyZWN0b3J5LmdldCgpKS5yZWxlYXNlKCk7CiAg
ICAgcmV0dXJuIFNfT0s7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
RXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkVycm9y
LmNwcAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRXJy
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAjZW5kaWYKIAogI2lmIFVT
RShDRlVSTENPTk5FQ1RJT04pCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktp
dFN5c3RlbUludGVyZmFjZS5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+
CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMzgsNyArMTM4LDcgQEAg
SFJFU1VMVCBXZWJFcnJvcjo6bG9jYWxpemVkRGVzY3JpcHRpb24oXwogI2lmIFVTRShDRlVSTENP
Tk5FQ1RJT04pCiAgICAgaWYgKCEqcmVzdWx0KSB7CiAgICAgICAgIGlmIChpbnQgY29kZSA9IG1f
ZXJyb3IuZXJyb3JDb2RlKCkpCi0gICAgICAgICAgICAqcmVzdWx0ID0gQlN0cmluZyh3a0NGTmV0
d29ya0Vycm9yR2V0TG9jYWxpemVkRGVzY3JpcHRpb24oY29kZSkpLnJlbGVhc2UoKTsKKyAgICAg
ICAgICAgICpyZXN1bHQgPSBCU3RyaW5nKF9DRk5ldHdvcmtFcnJvckdldExvY2FsaXplZERlc2Ny
aXB0aW9uKGNvZGUpKS5yZWxlYXNlKCk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTIyOSwxMCArMjI5
LDEwIEBAIEhSRVNVTFQgV2ViRXJyb3I6OnNzbFBlZXJDZXJ0aWZpY2F0ZShfT3UKICAgICBpZiAo
IW1fY2ZFcnJvclVzZXJJbmZvRGljdCkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgIHZv
aWQqIGRhdGEgPSB3a0dldFNTTFBlZXJDZXJ0aWZpY2F0ZURhdGFCeXRlUHRyKG1fY2ZFcnJvclVz
ZXJJbmZvRGljdC5nZXQoKSk7CisgICAgY29uc3Qgdm9pZCogZGF0YSA9IFJlc291cmNlRXJyb3I6
OmdldFNTTFBlZXJDZXJ0aWZpY2F0ZURhdGFCeXRlUHRyKG1fY2ZFcnJvclVzZXJJbmZvRGljdC5n
ZXQoKSk7CiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm4gRV9GQUlMOwotICAgICpyZXN1
bHQgPSByZWludGVycHJldF9jYXN0PFVMT05HX1BUUj4oZGF0YSk7CisgICAgKnJlc3VsdCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8VUxPTkdfUFRSPihjb25zdF9jYXN0PHZvaWQqPihkYXRhKSk7CiAjZW5k
aWYKICAgICByZXR1cm4gKnJlc3VsdCA/IFNfT0sgOiBFX0ZBSUw7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJVUkxSZXNwb25zZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVVJMUmVzcG9uc2UuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisr
KyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJVUkxSZXNwb25zZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOCBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zNiwxMiArMzYsMTMgQEAKICNlbmRpZgogCiAjaWYgVVNFKENGVVJMQ09OTkVD
VElPTikKLSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJm
YWNlLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNlbmRpZgogCiAj
aW5jbHVkZSA8V2ViQ29yZS9CU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5j
bHVkZSA8c2hsb2JqLmg+CiAjaW5jbHVkZSA8c2hsd2FwaS5oPgpAQCAtNDEwLDEwICs0MTEsMTAg
QEAgSFJFU1VMVCBXZWJVUkxSZXNwb25zZTo6c3NsUGVlckNlcnRpZmljYQogICAgIENGRGljdGlv
bmFyeVJlZiBkaWN0ID0gY2VydGlmaWNhdGVEaWN0aW9uYXJ5KCk7CiAgICAgaWYgKCFkaWN0KQog
ICAgICAgICByZXR1cm4gRV9GQUlMOwotICAgIHZvaWQqIGRhdGEgPSB3a0dldFNTTFBlZXJDZXJ0
aWZpY2F0ZURhdGFCeXRlUHRyKGRpY3QpOworICAgIGNvbnN0IHZvaWQqIGRhdGEgPSBSZXNvdXJj
ZUVycm9yOjpnZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhQnl0ZVB0cihkaWN0KTsKICAgICBpZiAo
IWRhdGEpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7Ci0gICAgKnJlc3VsdCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8VUxPTkdfUFRSPihkYXRhKTsKKyAgICAqcmVzdWx0ID0gcmVpbnRlcnByZXRfY2FzdDxV
TE9OR19QVFI+KGNvbnN0X2Nhc3Q8dm9pZCo+KGRhdGEpKTsKICNlbmRpZgogCiAgICAgcmV0dXJu
ICpyZXN1bHQgPyBTX09LIDogRV9GQUlMOwpAQCAtNDg0LDcgKzQ4NSw3IEBAIENGRGljdGlvbmFy
eVJlZiBXZWJVUkxSZXNwb25zZTo6Y2VydGlmaWMKICAgICBDRlVSTFJlc3BvbnNlUmVmIGNmUmVz
cG9uc2UgPSBtX3Jlc3BvbnNlLmNmVVJMUmVzcG9uc2UoKTsKICAgICBpZiAoIWNmUmVzcG9uc2Up
CiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIG1fU1NMQ2VydGlmaWNhdGVJbmZvID0gd2tH
ZXRTU0xDZXJ0aWZpY2F0ZUluZm8oY2ZSZXNwb25zZSk7CisgICAgbV9TU0xDZXJ0aWZpY2F0ZUlu
Zm8gPSBfQ0ZVUkxSZXNwb25zZUdldFNTTENlcnRpZmljYXRlQ29udGV4dChjZlJlc3BvbnNlKTsK
ICAgICByZXR1cm4gbV9TU0xDZXJ0aWZpY2F0ZUluZm8uZ2V0KCk7CiB9CiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDcg
KzE4Niw4IEBACiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICNpbmNsdWRlIDxDRk5ldHdvcmsv
Q0ZVUkxDYWNoZVByaXYuaD4KICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxQcm90b2NvbFByaXYu
aD4KLSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DRlVSTEV4dHJhcy5oPgorI2luY2x1ZGUgPHBhbC9zcGkv
Y2YvQ0ZOZXR3b3JrU1BJLmg+CiAjZWxpZiBVU0UoQ1VSTCkKICNpbmNsdWRlIDxXZWJDb3JlL0N1
cmxDYWNoZU1hbmFnZXIuaD4KICNlbmRpZgpAQCAtNTA1LDcgKzUwNiw3IEBAIHZvaWQgV2ViVmll
dzo6c2V0Q2FjaGVNb2RlbChXZWJDYWNoZU1vZGUKIAogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04p
CiAgICAgUmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNmdXJsQ2FjaGUgPSBhZG9wdENGKENGVVJM
Q2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBj
ZnVybENhY2hlRGlyZWN0b3J5ID0gYWRvcHRDRih3a0NvcHlGb3VuZGF0aW9uQ2FjaGVEaXJlY3Rv
cnkoMCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY2Z1cmxDYWNoZURpcmVjdG9yeSA9
IGFkb3B0Q0YoX0NGVVJMQ2FjaGVDb3B5Q2FjaGVEaXJlY3RvcnkoY2Z1cmxDYWNoZS5nZXQoKSkp
OwogICAgIGlmICghY2Z1cmxDYWNoZURpcmVjdG9yeSkgewogICAgICAgICBSZXRhaW5QdHI8Q0ZQ
cm9wZXJ0eUxpc3RSZWY+IHByZWZlcmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBw
VmFsdWUoV2ViS2l0TG9jYWxDYWNoZURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6YXBwbGlj
YXRpb25JZCgpKSk7CiAgICAgICAgIGlmIChwcmVmZXJlbmNlICYmIChDRlN0cmluZ0dldFR5cGVJ
RCgpID09IENGR2V0VHlwZUlEKHByZWZlcmVuY2UuZ2V0KCkpKSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogCiAjaWYgVVNFKENGVVJMQ09O
TkVDVElPTikKICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KLSNpbmNs
dWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5j
bHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNlbmRpZgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNp
b24gMjM4MjY0KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9O
KQotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2VuZGlmCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355106</attachid>
            <date>2018-11-16 13:04:09 -0800</date>
            <delta_ts>2018-11-16 13:43:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191718-20181116130404.patch</filename>
            <type>text/plain</type>
            <size>27530</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODI5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE4LTExLTE2ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIFJlZHVjZSB0aGUg
dXNlIG9mIFdLU0kgbGlicmFyeSBjYWxsczogQ0ZOZXR3b3JrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQ2MTA4NzMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisK
KyAgICAgICAgUmVtb3ZlIGN1c3RvbSBXS1NJIENGTmV0d29yayBjYWxscywgc2luY2UgdGhlIFNQ
SSBpcyBhbHJlYWR5IGRvY3VtZW50ZWQgaW4gUEFMLiBKdXN0CisgICAgICAgIG1ha2UgdGhlIHNh
bWUgY2FsbHMgb24gV2luZG93cywgbGlrZSB3ZSBkaWQgZm9yIGlPUyBhbmQgbWFjT1MgYmFjayBp
biAyMDE3LgorCisgICAgICAgIFN0b3AgaW5jbHVkaW5nIFdlYktpdFN5c3RlbUludGVyZmFjZS5o
IGZvciBmaWxlcyB0aGF0IHVzZWQgdG8gcmVseSBvbiBpdAorICAgICAgICBmb3IgZm9udC1yZWxh
dGVkIGZlYXR1cmVzLgorICAgICAgICAKKyAgICAgICAgVGVzdGVkIGJ5IGV4aXN0aW5nIFdpbmRv
d3MgcmVncmVzc2lvbiB0ZXN0cy4gVGhlcmUgc2hvdWxkIGJlIG5vIGNoYW5nZSBpbiBiZWhhdmlv
ci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNHV2lu
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9DcmVkZW50aWFsU3RvcmFnZUNGTmV0
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bkNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3
VGVzdGluZ1Nlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjplbnN1cmVTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
RXJyb3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3JDRi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFNTTFBlZXJDZXJ0aWZpY2F0ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvcjo6Z2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YUJ5dGVQdHIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6cGxhdGZvcm1MYXp5SW5pdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUVycm9yOjpjZkVycm9yIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0Q2xpZW50Q2VydGlmaWNhdGVJblNTTFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxD
Rk5ldC5jcHA6CisKIDIwMTgtMTEtMTYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgQW4gZWFybHkgcmV0dXJuIGZyb20gdXBkYXRlU2NoZWR1bGluZ0luZm8gY2Fu
IGxlYXZlIHNvbWUgdmFyaWFibGVzIHVuaW5pdGlhbGl6ZWQuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIzODI2NSkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0xMS0xNiAgQnJlbnQgRnVsZ2hhbSAg
PGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBSZWR1Y2UgdGhlIHVzZSBvZiBX
S1NJIGxpYnJhcnkgY2FsbHM6IENGTmV0d29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNzE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NjEw
ODczMj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
IEFkZCBuZWNlc3NhcnkgZGVjbGFyYXRpb25zIGZvciBDRk5ldHdvcmsgU1BJIG5lZWRlZCBieSB0
aGUgQXBwbGUgV2luZG93cyBidWlsZC4KKworICAgICAgICAqIHBhbC9QbGF0Zm9ybUFwcGxlV2lu
LmNtYWtlOgorICAgICAgICAqIHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6CisgICAgICAgICog
cGFsL3NwaS9jZi9DRk5ldHdvcmtTUElXaW4uY3BwOiBBZGRlZC4KKwogMjAxOC0xMS0xNSAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRpdGlvbmFsIFdp
bmRvd3MgYnVpbGQgZml4IGFmdGVyIHIyMzgyNTMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
UEFML3BhbC9QbGF0Zm9ybUFwcGxlV2luLmNtYWtlCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtQXBwbGVXaW4uY21ha2UJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDggQEAgbGlzdChBUFBFTkQgUEFMX1NPVVJDRVMKICAgICBjZi9Db3JlTWVk
aWFTb2Z0TGluay5jcHAKIAogICAgIGNyeXB0by93aW4vQ3J5cHRvRGlnZXN0V2luLmNwcAorCisg
ICAgc3BpL2NmL0NGTmV0d29ya1NQSVdpbi5jcHAKICkKIAogbGlzdChBUFBFTkQgUEFMX1BSSVZB
VEVfSU5DTFVERV9ESVJFQ1RPUklFUwpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y2YvQ0ZOZXR3b3JrU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZOZXR3b3JrU1BJLmgJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1
MCwyMCBAQAogI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTFJlc3BvbnNlUHJpdi5oPgogI2luY2x1
ZGUgPENGTmV0d29yay9DRlVSTFN0b3JhZ2VTZXNzaW9uLmg+CiAKKyNpZiBQTEFURk9STShXSU4p
CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitDRk5fRVhQT1JUIENGU3RyaW5nUmVmIF9DRk5ldHdv
cmtFcnJvckdldExvY2FsaXplZERlc2NyaXB0aW9uKENGSW5kZXgpOworCitleHRlcm4gY29uc3Qg
Q0ZTdHJpbmdSZWYgX2tDRldpbmRvd3NTU0xMb2NhbENlcnQ7CitleHRlcm4gY29uc3QgQ0ZTdHJp
bmdSZWYgX2tDRlN0cmVhbVByb3BlcnR5V2luZG93c1NTTENlcnRJbmZvOworZXh0ZXJuIGNvbnN0
IENGU3RyaW5nUmVmIF9rQ0ZXaW5kb3dzU1NMUGVlckNlcnQ7CisKK1dURl9FWFRFUk5fQ19FTkQK
KworI2VuZGlmCisKIC8vIEZJWE1FOiBSZW1vdmUgdGhlIGRlZmluZWQoX19PQkpDX18pLWd1YXJk
IG9uY2Ugd2UgZml4IDxyZGFyOi8vcHJvYmxlbS8xOTAzMzYxMD4uCiAjaWYgZGVmaW5lZChfX09C
SkNfXykgJiYgUExBVEZPUk0oQ09DT0EpCiAjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5l
Y3Rpb24uaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQ
SVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZO
ZXR3b3JrU1BJV2luLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jZi9DRk5ldHdvcmtTUElXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oV0lO
KSAmJiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQorCisjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdv
cmtTUEkuaD4KKworY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRldpbmRvd3NTU0xMb2NhbENlcnQgPSBD
RlNUUigiX2tDRldpbmRvd3NTU0xMb2NhbENlcnQiKTsKK2NvbnN0IENGU3RyaW5nUmVmIF9rQ0ZX
aW5kb3dzU1NMUGVlckNlcnQgPSBDRlNUUigiX2tDRldpbmRvd3NTU0xQZWVyQ2VydCIpOworY29u
c3QgQ0ZTdHJpbmdSZWYgX2tDRlN0cmVhbVByb3BlcnR5V2luZG93c1NTTENlcnRJbmZvID0gQ0ZT
VFIoIl9rQ0ZTdHJlYW1Qcm9wZXJ0eVdpbmRvd3NTU0xDZXJ0SW5mbyIpOworCisjZW5kaWYgLy8g
UExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAJKHJl
dmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250Q2FjaGVXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVk
ZSA8d3RmL3dpbi9HRElPYmplY3QuaD4KIAogI2lmIFVTRShDRykKLSNpbmNsdWRlIDxXZWJLaXRT
eXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8cGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDx3dGYvd2luL0dESU9iamVjdC5oPgogCiAjaWYg
VVNFKENHKQotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2VuZGlm
CiAKICNpZiBVU0UoRElSRUNUMkQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YUNHV2luLmNwcAko
cmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRQbGF0Zm9ybURhdGFDR1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcg
QEAKICNpZiBVU0UoQ0cpCiAKICNpbmNsdWRlICJTaGFyZWRHRElPYmplY3QuaCIKLSNpbmNsdWRl
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5jbHVk
ZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5l
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9D
b29raWVTdG9yYWdlQ0ZOZXQuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJMb2FkZXJSdW5Mb29wQ0YuaCIKICNpbmNs
dWRlICJOZXR3b3JrU3RvcmFnZVNlc3Npb24uaCIKICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQ
Q29va2llc1ByaXYuaD4KLSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL0NyZWRlbnRpYWxTdG9yYWdlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ3JlZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAJKHJl
dmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ3Jl
ZGVudGlhbFN0b3JhZ2VDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAK
ICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNGLmgiCiAjaW5jbHVkZSAiQ3JlZGVudGlhbC5oIgog
I2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZS5oIgotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVy
ZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DRk5ldC5jcHAJKHJldmlzaW9uIDIzODI2NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw4ICszNCw2IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5j
bHVkZSAiUHVibGljU3VmZml4LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jZWxz
ZQotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KICNlbmRpZgogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAjaW5jbHVkZSAiQ29va2llLmgi
CkBAIC0xMzMsNiArMTMxLDQyIEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3Jh
Z2VTZXMKICAgICByZXR1cm4gc2Vzc2lvbjsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkKK3N0
YXRpYyBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIGNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbihD
RlN0cmluZ1JlZiBpZGVudGlmaWVyLCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmIGRlZmF1bHRTdG9y
YWdlU2Vzc2lvbikKK3sKKyAgICBjb25zdCB2b2lkKiBzZXNzaW9uUHJvcGVydHlLZXlzW10gPSB7
IF9rQ0ZVUkxTdG9yYWdlU2Vzc2lvbklzUHJpdmF0ZSB9OworICAgIGNvbnN0IHZvaWQqIHNlc3Np
b25Qcm9wZXJ0eVZhbHVlc1tdID0geyBrQ0ZCb29sZWFuVHJ1ZSB9OworICAgIENGRGljdGlvbmFy
eVJlZiBzZXNzaW9uUHJvcGVydGllcyA9IENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBzZXNzaW9uUHJvcGVydHlLZXlzLCBzZXNzaW9uUHJvcGVydHlWYWx1ZXMsIHNpemVv
ZihzZXNzaW9uUHJvcGVydHlLZXlzKSAvIHNpemVvZigqc2Vzc2lvblByb3BlcnR5S2V5cyksICZr
Q0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxs
QmFja3MpOworICAgIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24gPSBfQ0ZV
UkxTdG9yYWdlU2Vzc2lvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBpZGVudGlmaWVyLCBz
ZXNzaW9uUHJvcGVydGllcyk7CisKKyAgICAvLyBUaGUgcHJpdmF0ZSBzdG9yYWdlIHNlc3Npb24g
c2hvdWxkIGhhdmUgdGhlIHNhbWUgcHJvcGVydGllcyBhcyB0aGUgZGVmYXVsdCBzdG9yYWdlIHNl
c3Npb24sCisgICAgLy8gd2l0aCB0aGUgZXhjZXB0aW9uIHRoYXQgaXQgc2hvdWxkIGJlIGluLW1l
bW9yeSBvbmx5IHN0b3JhZ2UuCisgICAgQ0ZVUkxDYWNoZVJlZiBjYWNoZSA9IF9DRlVSTFN0b3Jh
Z2VTZXNzaW9uQ29weUNhY2hlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN0b3JhZ2VTZXNzaW9uKTsK
KyAgICBDRlVSTENhY2hlU2V0RGlza0NhcGFjaXR5KGNhY2hlLCAwKTsKKyAgICBDRlVSTENhY2hl
UmVmIGRlZmF1bHRDYWNoZTsKKyAgICBpZiAoZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKQorICAgICAg
ICBkZWZhdWx0Q2FjaGUgPSBfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDYWNoZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBkZWZhdWx0U3RvcmFnZVNlc3Npb24pOworICAgIGVsc2UgCisgICAgICAgIGRl
ZmF1bHRDYWNoZSA9IENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKTsKKyAgICBDRlVSTENh
Y2hlU2V0TWVtb3J5Q2FwYWNpdHkoY2FjaGUsIENGVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eShkZWZh
dWx0Q2FjaGUpKTsKKyAgICBDRlJlbGVhc2UoZGVmYXVsdENhY2hlKTsKKyAgICBDRlJlbGVhc2Uo
Y2FjaGUpOworCisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlID0gX0NG
VVJMU3RvcmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBz
dG9yYWdlU2Vzc2lvbik7CisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBkZWZhdWx0Q29va2ll
U3RvcmFnZTsKKyAgICBpZiAoZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKQorICAgICAgICBkZWZhdWx0
Q29va2llU3RvcmFnZSA9IF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNvb2tpZVN0b3JhZ2Uoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKTsKKyAgICBlbHNlCisgICAg
ICAgIGRlZmF1bHRDb29raWVTdG9yYWdlID0gX0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZhdWx0
KGtDRkFsbG9jYXRvckRlZmF1bHQpOworICAgIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVB
Y2NlcHRQb2xpY3koY29va2llU3RvcmFnZSwgQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFj
Y2VwdFBvbGljeShkZWZhdWx0Q29va2llU3RvcmFnZSkpOworICAgIGlmIChkZWZhdWx0U3RvcmFn
ZVNlc3Npb24pCisgICAgICAgIENGUmVsZWFzZShkZWZhdWx0Q29va2llU3RvcmFnZSk7CisgICAg
Q0ZSZWxlYXNlKGNvb2tpZVN0b3JhZ2UpOworCisgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uOwor
fQorI2VuZGlmCisKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3Rp
bmdTZXNzaW9uKCkKIHsKICAgICAvLyBTZXNzaW9uIG5hbWUgc2hvdWxkIGJlIHNob3J0IGVub3Vn
aCBmb3Igc2hhcmVkIG1lbW9yeSByZWdpb24gbmFtZSB0byBiZSB1bmRlciB0aGUgbGltaXQsIG90
ZWhyd2lzZSBzYW5kYm94IHJ1bGVzIHdvbid0IHdvcmsgKHNlZSA8cmRhcjovL3Byb2JsZW0vMTM2
NDI4NTI+KS4KQEAgLTE0Miw3ICsxNzYsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c3dpdGNoVG9OZXdUCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgc2Vzc2lvbiA9IGFkb3B0Q0Yo
Y3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKHNlc3Npb25OYW1lLmNyZWF0ZUNGU3RyaW5nKCku
Z2V0KCkpKTsKICNlbHNlCi0gICAgc2Vzc2lvbiA9IGFkb3B0Q0Yod2tDcmVhdGVQcml2YXRlU3Rv
cmFnZVNlc3Npb24oc2Vzc2lvbk5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgZGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCkpKTsKKyAgICBzZXNzaW9uID0gYWRvcHRD
RihjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oc2Vzc2lvbk5hbWUuY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSwgZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCkpKTsKICNl
bmRpZgogCiAgICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+IGNvb2tpZVN0b3Jh
Z2U7CkBAIC0xNzUsNyArMjA5LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmVuc3Vy
ZVNlc3NpbwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbiA9IGFk
b3B0Q0YoY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKGNmSWRlbnRpZmllci5nZXQoKSkpOwog
I2Vsc2UKLSAgICAgICAgc3RvcmFnZVNlc3Npb24gPSBhZG9wdENGKHdrQ3JlYXRlUHJpdmF0ZVN0
b3JhZ2VTZXNzaW9uKGNmSWRlbnRpZmllci5nZXQoKSwgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbigpLT5wbGF0Zm9ybVNlc3Npb24oKSkpOworICAgICAgICBzdG9yYWdlU2Vzc2lvbiA9IGFk
b3B0Q0YoY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKGNmSWRlbnRpZmllci5nZXQoKSwgZGVm
YXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5wbGF0Zm9ybVNlc3Npb24oKSkpOwogI2VuZGlm
CiAgICAgfSBlbHNlCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uID0gY3JlYXRlQ0ZTdG9yYWdlU2Vz
c2lvbkZvcklkZW50aWZpZXIoY2ZJZGVudGlmaWVyLmdldCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VFcnJvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VFcnJvci5oCShyZXZpc2lv
biAyMzgyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
RXJyb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNi0yMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcyLDYgKzcyLDggQEAgcHVibGljOgogICAgIFJlc291
cmNlRXJyb3IoQ0ZTdHJlYW1FcnJvciBlcnJvcik7CiAgICAgQ0ZTdHJlYW1FcnJvciBjZlN0cmVh
bUVycm9yKCkgY29uc3Q7CiAgICAgb3BlcmF0b3IgQ0ZTdHJlYW1FcnJvcigpIGNvbnN0OworICAg
IHN0YXRpYyBjb25zdCB2b2lkKiBnZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhQnl0ZVB0cihDRkRp
Y3Rpb25hcnlSZWYpOworCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VFcnJv
ckNGLmNwcAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUVycm9yQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3
IEBACiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZFcnJvci5o
PgogI2luY2x1ZGUgPENGTmV0d29yay9DRk5ldHdvcmtFcnJvcnMuaD4KLSNpbmNsdWRlIDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8cGFs
L3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY4LDYgKzY4LDMwIEBAIHZvaWQgUmVzb3VyY2VFcnJvcjo6
c2V0Q2VydGlmaWNhdGUoQ0ZEYXQKIGNvbnN0IENGU3RyaW5nUmVmIGZhaWxpbmdVUkxTdHJpbmdL
ZXkgPSBDRlNUUigiTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXkiKTsKIGNvbnN0IENGU3RyaW5n
UmVmIGZhaWxpbmdVUkxLZXkgPSBDRlNUUigiTlNFcnJvckZhaWxpbmdVUkxLZXkiKTsKIAorc3Rh
dGljIENGRGF0YVJlZiBnZXRTU0xQZWVyQ2VydGlmaWNhdGVEYXRhKENGRGljdGlvbmFyeVJlZiBk
aWN0KQoreworICAgIGlmICghZGljdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEYXRhUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShkaWN0
LCBfa0NGV2luZG93c1NTTFBlZXJDZXJ0KSk7Cit9CisKK3N0YXRpYyB2b2lkIHNldFNTTFBlZXJD
ZXJ0aWZpY2F0ZURhdGEoQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBkaWN0LCBDRkRhdGFSZWYgZGF0
YSkKK3sKKyAgICBpZiAoIWRpY3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAoIWRh
dGEpCisgICAgICAgIENGRGljdGlvbmFyeVJlbW92ZVZhbHVlKGRpY3QsIF9rQ0ZXaW5kb3dzU1NM
UGVlckNlcnQpOworICAgIGVsc2UKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoZGljdCwg
X2tDRldpbmRvd3NTU0xQZWVyQ2VydCwgZGF0YSk7Cit9CisKK2NvbnN0IHZvaWQqIFJlc291cmNl
RXJyb3I6OmdldFNTTFBlZXJDZXJ0aWZpY2F0ZURhdGFCeXRlUHRyKENGRGljdGlvbmFyeVJlZiBk
aWN0KQoreworICAgIENGRGF0YVJlZiBkYXRhID0gZ2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YShk
aWN0KTsKKyAgICByZXR1cm4gZGF0YSA/IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KENG
RGF0YUdldEJ5dGVQdHIoZGF0YSkpIDogbnVsbHB0cjsKK30KKwogdm9pZCBSZXNvdXJjZUVycm9y
OjpwbGF0Zm9ybUxhenlJbml0KCkKIHsKICAgICBpZiAobV9kYXRhSXNVcFRvRGF0ZSkKQEAgLTEw
Niw3ICsxMzAsNyBAQCB2b2lkIFJlc291cmNlRXJyb3I6OnBsYXRmb3JtTGF6eUluaXQoKQogICAg
ICAgICB9CiAgICAgICAgIG1fbG9jYWxpemVkRGVzY3JpcHRpb24gPSAoQ0ZTdHJpbmdSZWYpIENG
RGljdGlvbmFyeUdldFZhbHVlKHVzZXJJbmZvLmdldCgpLCBrQ0ZFcnJvckxvY2FsaXplZERlc2Ny
aXB0aW9uS2V5KTsKICAgICAgICAgCi0gICAgICAgIG1fY2VydGlmaWNhdGUgPSB3a0dldFNTTFBl
ZXJDZXJ0aWZpY2F0ZURhdGEodXNlckluZm8uZ2V0KCkpOworICAgICAgICBtX2NlcnRpZmljYXRl
ID0gZ2V0U1NMUGVlckNlcnRpZmljYXRlRGF0YSh1c2VySW5mby5nZXQoKSk7CiAgICAgfQogCiAg
ICAgbV9kYXRhSXNVcFRvRGF0ZSA9IHRydWU7CkBAIC0xNDQsNyArMTY4LDcgQEAgQ0ZFcnJvclJl
ZiBSZXNvdXJjZUVycm9yOjpjZkVycm9yKCkgY29ucwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KG1fY2VydGlmaWNhdGUpCi0gICAgICAgICAgICB3a1NldFNTTFBlZXJDZXJ0aWZpY2F0ZURhdGEo
dXNlckluZm8uZ2V0KCksIG1fY2VydGlmaWNhdGUuZ2V0KCkpOworICAgICAgICAgICAgc2V0U1NM
UGVlckNlcnRpZmljYXRlRGF0YSh1c2VySW5mby5nZXQoKSwgbV9jZXJ0aWZpY2F0ZS5nZXQoKSk7
CiAgICAgICAgIAogICAgICAgICBtX3BsYXRmb3JtRXJyb3IgPSBhZG9wdENGKENGRXJyb3JDcmVh
dGUoMCwgbV9kb21haW4uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgbV9lcnJvckNvZGUsIHVzZXJJ
bmZvLmdldCgpKSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiAy
MzgyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTU3LDcgKzU3LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKICNpZiBQTEFURk9STShXSU4pCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dl
YktpdFN5c3RlbUludGVyZmFjZS5oPgogI2luY2x1ZGUgPHByb2Nlc3MuaD4KIAogLy8gRklYTUU6
IFJlbW92ZSB0aGlzIGRlY2xhcmF0aW9uIG9uY2UgaXQncyBpbiBXZWJLaXRTdXBwb3J0TGlicmFy
eS4KQEAgLTExOCw2ICsxMTcsMjAgQEAgc3RhdGljIGlubGluZSBDRlN0cmluZ1JlZiBzaG91bGRT
bmlmZkNvbgogI2VuZGlmCiB9CiAKKyNpZiBQTEFURk9STShXSU4pCitzdGF0aWMgdm9pZCBzZXRD
bGllbnRDZXJ0aWZpY2F0ZUluU1NMUHJvcGVydGllcyhDRk11dGFibGVEaWN0aW9uYXJ5UmVmIHNz
bFByb3BzLCBDRkRhdGFSZWYgY2VydERhdGEpCit7CisgICAgaWYgKCFzc2xQcm9wcyB8fCAhY2Vy
dERhdGEpCisgICAgICAgIHJldHVybjsKKyAgICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGNlcnRE
aWN0ID0gQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAm
a0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2Fs
bEJhY2tzKTsKKyAgICBpZiAoIWNlcnREaWN0KQorICAgICAgICByZXR1cm47CisgICAgQ0ZEaWN0
aW9uYXJ5U2V0VmFsdWUoY2VydERpY3QsIF9rQ0ZXaW5kb3dzU1NMTG9jYWxDZXJ0LCBjZXJ0RGF0
YSk7CisgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoc3NsUHJvcHMsIF9rQ0ZTdHJlYW1Qcm9wZXJ0
eVdpbmRvd3NTU0xDZXJ0SW5mbywgY2VydERpY3QpOworICAgIENGUmVsZWFzZShjZXJ0RGljdCk7
Cit9CisjZW5kaWYKKwogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9u
KGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
LCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBNZXNzYWdlUXVldWU8RnVuY3Rpb248
dm9pZCgpPj4qIG1lc3NhZ2VRdWV1ZSwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVudFByb3BlcnRpZXMp
CiB7CiAgICAgaWYgKCghZC0+bV91c2VyLmlzRW1wdHkoKSB8fCAhZC0+bV9wYXNzLmlzRW1wdHko
KSkgJiYgIWZpcnN0UmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewpA
QCAtMTg2LDcgKzE5OSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVj
dGkKICAgICAgICAgaWYgKCFzc2xQcm9wcykKICAgICAgICAgICAgIHNzbFByb3BzID0gYWRvcHRD
RihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKICNpZiBQTEFURk9STShXSU4pCi0gICAgICAgIHdrU2V0Q2xpZW50Q2VydGlmaWNhdGVJ
blNTTFByb3BlcnRpZXMoc3NsUHJvcHMuZ2V0KCksIChjbGllbnRDZXJ0LT52YWx1ZSkuZ2V0KCkp
OworICAgICAgICBzZXRDbGllbnRDZXJ0aWZpY2F0ZUluU1NMUHJvcGVydGllcyhzc2xQcm9wcy5n
ZXQoKSwgKGNsaWVudENlcnQtPnZhbHVlKS5nZXQoKSk7CiAjZW5kaWYKICAgICB9CiAjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUg
IkZvcm1EYXRhU3RyZWFtQ0ZOZXQuaCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJm
YWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQu
Y3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTAgKzQ2
LDYgQEAKICNpbmNsdWRlIDxkbGZjbi5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShXSU4pCi0j
aW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgot
I2VuZGlmCi0KIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0ZVUkwpOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCShyZXZp
c2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcg
QEAKIAogI2lmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRlICJMb2FkZXJSdW5Mb29wQ0YuaCIKLSNp
bmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Cisj
aW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIzODI2NCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE4LTExLTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdo
YW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIFJlZHVjZSB0aGUgdXNlIG9mIFdLU0kgbGli
cmFyeSBjYWxsczogQ0ZOZXR3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTE3MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2MTA4NzMyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgUmVtb3Zl
IGN1c3RvbSBXS1NJIENGTmV0d29yayBjYWxscywgc2luY2UgdGhlIFNQSSBpcyBhbHJlYWR5IGRv
Y3VtZW50ZWQgaW4gUEFMLiBKdXN0CisgICAgICAgIG1ha2UgdGhlIHNhbWUgY2FsbHMgb24gV2lu
ZG93cywgbGlrZSB3ZSBkaWQgZm9yIGlPUyBhbmQgbWFjT1MgYmFjayBpbiAyMDE3LgorCisgICAg
ICAgICogV2ViQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ2FjaGU6OmNhY2hlRm9sZGVyKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAg
ICAqIFdlYkVycm9yLmNwcDoKKyAgICAgICAgKFdlYkVycm9yOjpsb2NhbGl6ZWREZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJFcnJvcjo6c3NsUGVlckNlcnRpZmljYXRlKToKKyAgICAgICAgKiBX
ZWJVUkxSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJVUkxSZXNwb25zZTo6c3NsUGVlckNlcnRp
ZmljYXRlKToKKyAgICAgICAgKFdlYlVSTFJlc3BvbnNlOjpjZXJ0aWZpY2F0ZURpY3Rpb25hcnkg
Y29uc3QpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6c2V0Q2Fj
aGVNb2RlbCk6CisKIDIwMTgtMTEtMTUgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dpbl0gUmVkdWNlIHRoZSB1c2Ugb2YgV0tTSSBsaWJyYXJ5IGNhbGxz
OiBGb250IEhhbmRsaW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDYWNoZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ2FjaGUuY3BwCShy
ZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDYWNoZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0N1cmxD
YWNoZU1hbmFnZXIuaD4KICNlbGlmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAjaW5jbHVkZSA8Q0ZO
ZXR3b3JrL0NGVVJMQ2FjaGVQcml2Lmg+Ci0jaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
L1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yNDksNyArMjQ5
LDggQEAgSFJFU1VMVCBXZWJDYWNoZTo6Y2FjaGVGb2xkZXIoX19kZXJlZl9vdQogICAgICpsb2Nh
dGlvbiA9IFdlYkNvcmU6OkJTdHJpbmcoY2FjaGVGb2xkZXIpLnJlbGVhc2UoKTsKICAgICByZXR1
cm4gU19PSzsKICNlbGlmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBjZnVybENhY2hlRGlyZWN0b3J5ID0gYWRvcHRDRih3a0NvcHlGb3VuZGF0aW9uQ2Fj
aGVEaXJlY3RvcnkoMCkpOworICAgIFJldGFpblB0cjxDRlVSTENhY2hlUmVmPiBjYWNoZSA9IGFk
b3B0Q0YoQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZSgpKTsKKyAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IGNmdXJsQ2FjaGVEaXJlY3RvcnkgPSBhZG9wdENGKF9DRlVSTENhY2hlQ29weUNh
Y2hlRGlyZWN0b3J5KGNhY2hlLmdldCgpKSk7CiAgICAgKmxvY2F0aW9uID0gQlN0cmluZyhjZnVy
bENhY2hlRGlyZWN0b3J5LmdldCgpKS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIFNfT0s7CiAjZWxz
ZQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRXJyb3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkVycm9yLmNwcAkocmV2aXNpb24gMjM4MjY0
KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRXJyb3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBACiAjZW5kaWYKIAogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0j
aW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgor
I2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC0xMzgsNyArMTM4LDcgQEAgSFJFU1VMVCBXZWJFcnJvcjo6bG9j
YWxpemVkRGVzY3JpcHRpb24oXwogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAgaWYgKCEq
cmVzdWx0KSB7CiAgICAgICAgIGlmIChpbnQgY29kZSA9IG1fZXJyb3IuZXJyb3JDb2RlKCkpCi0g
ICAgICAgICAgICAqcmVzdWx0ID0gQlN0cmluZyh3a0NGTmV0d29ya0Vycm9yR2V0TG9jYWxpemVk
RGVzY3JpcHRpb24oY29kZSkpLnJlbGVhc2UoKTsKKyAgICAgICAgICAgICpyZXN1bHQgPSBCU3Ry
aW5nKF9DRk5ldHdvcmtFcnJvckdldExvY2FsaXplZERlc2NyaXB0aW9uKGNvZGUpKS5yZWxlYXNl
KCk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTIyOSwxMCArMjI5LDEwIEBAIEhSRVNVTFQgV2ViRXJy
b3I6OnNzbFBlZXJDZXJ0aWZpY2F0ZShfT3UKICAgICBpZiAoIW1fY2ZFcnJvclVzZXJJbmZvRGlj
dCkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgIHZvaWQqIGRhdGEgPSB3a0dldFNTTFBl
ZXJDZXJ0aWZpY2F0ZURhdGFCeXRlUHRyKG1fY2ZFcnJvclVzZXJJbmZvRGljdC5nZXQoKSk7Cisg
ICAgY29uc3Qgdm9pZCogZGF0YSA9IFJlc291cmNlRXJyb3I6OmdldFNTTFBlZXJDZXJ0aWZpY2F0
ZURhdGFCeXRlUHRyKG1fY2ZFcnJvclVzZXJJbmZvRGljdC5nZXQoKSk7CiAgICAgaWYgKCFkYXRh
KQogICAgICAgICByZXR1cm4gRV9GQUlMOwotICAgICpyZXN1bHQgPSByZWludGVycHJldF9jYXN0
PFVMT05HX1BUUj4oZGF0YSk7CisgICAgKnJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUxPTkdf
UFRSPihjb25zdF9jYXN0PHZvaWQqPihkYXRhKSk7CiAjZW5kaWYKICAgICByZXR1cm4gKnJlc3Vs
dCA/IFNfT0sgOiBFX0ZBSUw7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJV
UkxSZXNwb25zZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
VVJMUmVzcG9uc2UuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJVUkxSZXNwb25zZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiwxMiArMzYs
MTMgQEAKICNlbmRpZgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSNpbmNsdWRlIDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8cGFs
L3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNlbmRpZgogCiAjaW5jbHVkZSA8V2ViQ29yZS9CU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2Fs
aXplZFN0cmluZ3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8c2hsb2JqLmg+CiAjaW5j
bHVkZSA8c2hsd2FwaS5oPgpAQCAtNDEwLDEwICs0MTEsMTAgQEAgSFJFU1VMVCBXZWJVUkxSZXNw
b25zZTo6c3NsUGVlckNlcnRpZmljYQogICAgIENGRGljdGlvbmFyeVJlZiBkaWN0ID0gY2VydGlm
aWNhdGVEaWN0aW9uYXJ5KCk7CiAgICAgaWYgKCFkaWN0KQogICAgICAgICByZXR1cm4gRV9GQUlM
OwotICAgIHZvaWQqIGRhdGEgPSB3a0dldFNTTFBlZXJDZXJ0aWZpY2F0ZURhdGFCeXRlUHRyKGRp
Y3QpOworICAgIGNvbnN0IHZvaWQqIGRhdGEgPSBSZXNvdXJjZUVycm9yOjpnZXRTU0xQZWVyQ2Vy
dGlmaWNhdGVEYXRhQnl0ZVB0cihkaWN0KTsKICAgICBpZiAoIWRhdGEpCiAgICAgICAgIHJldHVy
biBFX0ZBSUw7Ci0gICAgKnJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUxPTkdfUFRSPihkYXRh
KTsKKyAgICAqcmVzdWx0ID0gcmVpbnRlcnByZXRfY2FzdDxVTE9OR19QVFI+KGNvbnN0X2Nhc3Q8
dm9pZCo+KGRhdGEpKTsKICNlbmRpZgogCiAgICAgcmV0dXJuICpyZXN1bHQgPyBTX09LIDogRV9G
QUlMOwpAQCAtNDg0LDcgKzQ4NSw3IEBAIENGRGljdGlvbmFyeVJlZiBXZWJVUkxSZXNwb25zZTo6
Y2VydGlmaWMKICAgICBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UgPSBtX3Jlc3BvbnNlLmNm
VVJMUmVzcG9uc2UoKTsKICAgICBpZiAoIWNmUmVzcG9uc2UpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIG1fU1NMQ2VydGlmaWNhdGVJbmZvID0gd2tHZXRTU0xDZXJ0aWZpY2F0ZUluZm8o
Y2ZSZXNwb25zZSk7CisgICAgbV9TU0xDZXJ0aWZpY2F0ZUluZm8gPSBfQ0ZVUkxSZXNwb25zZUdl
dFNTTENlcnRpZmljYXRlQ29udGV4dChjZlJlc3BvbnNlKTsKICAgICByZXR1cm4gbV9TU0xDZXJ0
aWZpY2F0ZUluZm8uZ2V0KCk7CiB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDcgKzE4Niw4IEBACiAjaWYgVVNFKENG
VVJMQ09OTkVDVElPTikKICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxDYWNoZVByaXYuaD4KICNp
bmNsdWRlIDxDRk5ldHdvcmsvQ0ZVUkxQcm90b2NvbFByaXYuaD4KLSNpbmNsdWRlIDxXZWJLaXRT
eXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9DRlVSTEV4dHJhcy5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAj
ZWxpZiBVU0UoQ1VSTCkKICNpbmNsdWRlIDxXZWJDb3JlL0N1cmxDYWNoZU1hbmFnZXIuaD4KICNl
bmRpZgpAQCAtNTA1LDcgKzUwNiw3IEBAIHZvaWQgV2ViVmlldzo6c2V0Q2FjaGVNb2RlbChXZWJD
YWNoZU1vZGUKIAogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAgUmV0YWluUHRyPENGVVJM
Q2FjaGVSZWY+IGNmdXJsQ2FjaGUgPSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2Fj
aGUoKSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZnVybENhY2hlRGlyZWN0b3J5ID0g
YWRvcHRDRih3a0NvcHlGb3VuZGF0aW9uQ2FjaGVEaXJlY3RvcnkoMCkpOworICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gY2Z1cmxDYWNoZURpcmVjdG9yeSA9IGFkb3B0Q0YoX0NGVVJMQ2FjaGVD
b3B5Q2FjaGVEaXJlY3RvcnkoY2Z1cmxDYWNoZS5nZXQoKSkpOwogICAgIGlmICghY2Z1cmxDYWNo
ZURpcmVjdG9yeSkgewogICAgICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IHByZWZl
cmVuY2UgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5QXBwVmFsdWUoV2ViS2l0TG9jYWxDYWNo
ZURlZmF1bHRzS2V5LCBXZWJQcmVmZXJlbmNlczo6YXBwbGljYXRpb25JZCgpKSk7CiAgICAgICAg
IGlmIChwcmVmZXJlbmNlICYmIChDRlN0cmluZ0dldFR5cGVJRCgpID09IENGR2V0VHlwZUlEKHBy
ZWZlcmVuY2UuZ2V0KCkpKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuY3BwCShyZXZpc2lvbiAyMzgyNjQpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNyArMzYsNyBAQAogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICNpbmNsdWRlIDxD
Rk5ldHdvcmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4KLSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5l
dHdvcmtTUEkuaD4KICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMjM4MjY0KQorKysgU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUdyb3VwLmg+CiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotI2luY2x1ZGUgPFdlYktpdFN5
c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>