<?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>161011</bug_id>
          
          <creation_ts>2016-08-19 13:47:15 -0700</creation_ts>
          <short_desc>Use Document&amp; instead of Document* when getting cookies</short_desc>
          <delta_ts>2016-08-21 23:04:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221461</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-19 13:47:15 -0700</bug_when>
    <thetext>Use Document&amp; instead of Document* when getting cookies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221462</commentid>
    <comment_count>1</comment_count>
      <attachid>286474</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-19 13:47:47 -0700</bug_when>
    <thetext>Created attachment 286474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221464</commentid>
    <comment_count>2</comment_count>
      <attachid>286476</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-19 13:56:10 -0700</bug_when>
    <thetext>Created attachment 286476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221573</commentid>
    <comment_count>3</comment_count>
      <attachid>286511</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-19 18:38:48 -0700</bug_when>
    <thetext>Created attachment 286511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221620</commentid>
    <comment_count>4</comment_count>
      <attachid>286527</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-19 22:29:11 -0700</bug_when>
    <thetext>Created attachment 286527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221815</commentid>
    <comment_count>5</comment_count>
      <attachid>286527</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-21 23:04:36 -0700</bug_when>
    <thetext>Comment on attachment 286527
Patch

Clearing flags on attachment: 286527

Committed r204702: &lt;http://trac.webkit.org/changeset/204702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221816</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-21 23:04:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286474</attachid>
            <date>2016-08-19 13:47:47 -0700</date>
            <delta_ts>2016-08-19 13:56:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161011-20160819134555.patch</filename>
            <type>text/plain</type>
            <size>20479</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA4LTE5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIERvY3Vt
ZW50JiBpbnN0ZWFkIG9mIERvY3VtZW50KiB3aGVuIGdldHRpbmcgY29va2llcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0J1ZmZlcik6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VS
ZXF1ZXN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWZlcnJlcik6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JQYWdlQWdlbnQ6OmdldENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFn
ZUFnZW50OjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFn
ZW50OjpnZXRSZXNvdXJjZVRyZWUpOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQ29v
a2llKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZENvb2tpZSk6CisgICAgICAgICogbG9hZGVyL0Nv
b2tpZUphci5oOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hdmlnYXRvcjo6Y29va2llRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0
b3I6OmphdmFFbmFibGVkKToKKwogMjAxNi0wOC0xOCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRoZSBhY2Nlc3NpYmlsaXR5IHRpdGxlcyBmb3IgbGlz
dCBpbnNlcnRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQ0LDcgKzQ0NCw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vz
c0J1ZmZlcigpCiAgICAgICAgICAgICBpZiAobV9pZGVudGlmaWVyKQogICAgICAgICAgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJl
c3BvbnNlKG1fZG9jdW1lbnQsIG1faWRlbnRpZmllciwgbV9oYW5kc2hha2UtPnNlcnZlckhhbmRz
aGFrZVJlc3BvbnNlKCkpOwogICAgICAgICAgICAgaWYgKCFtX2hhbmRzaGFrZS0+c2VydmVyU2V0
Q29va2llKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvb2tpZXNFbmFibGVk
KG1fZG9jdW1lbnQpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fZG9jdW1lbnQgJiYgY29va2ll
c0VuYWJsZWQoKm1fZG9jdW1lbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEV4Y2VwdGlv
biAoZm9yIHNhbmRib3hlZCBkb2N1bWVudHMpIGlnbm9yZWQuCiAgICAgICAgICAgICAgICAgICAg
IG1fZG9jdW1lbnQtPnNldENvb2tpZShtX2hhbmRzaGFrZS0+c2VydmVyU2V0Q29va2llKCksIElH
Tk9SRV9FWENFUFRJT04pOwogICAgICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3Bw
CShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0SGFuZHNoYWtlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDggKzIwMCw4IEBA
IENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2gKICAgICAgICAgZmllbGRz
LmFwcGVuZCgiU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogIiArIG1fY2xpZW50UHJvdG9jb2wpOwog
CiAgICAgVVJMIHVybCA9IGh0dHBVUkxGb3JBdXRoZW50aWNhdGlvbkFuZENvb2tpZXMoKTsKLSAg
ICBpZiAobV9hbGxvd0Nvb2tpZXMpIHsKLSAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKG1fZG9jdW1lbnQsIHVybCk7CisgICAgaWYgKG1fYWxsb3dD
b29raWVzICYmIG1fZG9jdW1lbnQpIHsKKyAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKCptX2RvY3VtZW50LCB1cmwpOwogICAgICAgICBpZiAoIWNv
b2tpZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCJDb29raWU6ICIgKyBj
b29raWUpOwogICAgIH0KQEAgLTI0OSw4ICsyNDksOCBAQCBSZXNvdXJjZVJlcXVlc3QgV2ViU29j
a2V0SGFuZHNoYWtlOjpjbGllCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCwgbV9jbGllbnRQcm90b2NvbCk7CiAK
ICAgICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpOwotICAg
IGlmIChtX2FsbG93Q29va2llcykgewotICAgICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUobV9kb2N1bWVudCwgdXJsKTsKKyAgICBpZiAobV9hbGxvd0Nv
b2tpZXMgJiYgbV9kb2N1bWVudCkgeworICAgICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoKm1fZG9jdW1lbnQsIHVybCk7CiAgICAgICAgIGlmICghY29v
a2llLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpDb29raWUsIGNvb2tpZSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDM3LDcgKzQ0MzcsNyBAQCBTdHJpbmcgRG9jdW1l
bnQ6OmNvb2tpZShFeGNlcHRpb25Db2RlJiBlCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAog
ICAgIGlmICghaXNET01Db29raWVDYWNoZVZhbGlkKCkpCi0gICAgICAgIHNldENhY2hlZERPTUNv
b2tpZXMoY29va2llcyh0aGlzLCBjb29raWVVUkwpKTsKKyAgICAgICAgc2V0Q2FjaGVkRE9NQ29v
a2llcyhjb29raWVzKCp0aGlzLCBjb29raWVVUkwpKTsKIAogICAgIHJldHVybiBjYWNoZWRET01D
b29raWVzKCk7CiB9CkBAIC00NDYxLDcgKzQ0NjEsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRDb29r
aWUoY29uc3QgU3RyaW5nJiB2CiAgICAgICAgIHJldHVybjsKIAogICAgIGludmFsaWRhdGVET01D
b29raWVDYWNoZSgpOwotICAgIHNldENvb2tpZXModGhpcywgY29va2llVVJMLCB2YWx1ZSk7Cisg
ICAgc2V0Q29va2llcygqdGhpcywgY29va2llVVJMLCB2YWx1ZSk7CiB9CiAKIFN0cmluZyBEb2N1
bWVudDo6cmVmZXJyZXIoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MTYsMTAgKzUxNiwxMiBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0Q29va2llcyhF
cnJvCiAKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGZvciAoYXV0byYgdXJsIDogYWxsUmVzb3VyY2Vz
VVJMc0ZvckZyYW1lKGZyYW1lKSkgewogICAgICAgICAgICAgVmVjdG9yPENvb2tpZT4gZG9jQ29v
a2llc0xpc3Q7Ci0gICAgICAgICAgICByYXdDb29raWVzSW1wbGVtZW50ZWQgPSBnZXRSYXdDb29r
aWVzKGRvY3VtZW50LCBVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBkb2NDb29raWVzTGlzdCk7
CisgICAgICAgICAgICByYXdDb29raWVzSW1wbGVtZW50ZWQgPSBnZXRSYXdDb29raWVzKCpkb2N1
bWVudCwgVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgZG9jQ29va2llc0xpc3QpOwogCiAgICAg
ICAgICAgICBpZiAoIXJhd0Nvb2tpZXNJbXBsZW1lbnRlZCkgewogICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBXZSBuZWVkIGR1cGxpY2F0aW9uIGNoZWNraW5nIGZvciB0aGUgU3RyaW5nIHJlcHJl
c2VudGF0aW9uIG9mIGNvb2tpZXMuCkBAIC01NDUsOCArNTQ3LDEwIEBAIHZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjpnZXRDb29raWVzKEVycm8KIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkZWxl
dGVDb29raWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0
cmluZyYgdXJsKQogewogICAgIFVSTCBwYXJzZWRVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOwot
ICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1fcGFnZS5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkKLSAgICAgICAgV2ViQ29yZTo6ZGVsZXRl
Q29va2llKGZyYW1lLT5kb2N1bWVudCgpLCBwYXJzZWRVUkwsIGNvb2tpZU5hbWUpOworICAgIGZv
ciAoRnJhbWUqIGZyYW1lID0gJm1fcGFnZS5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQg
PSBmcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZSgq
ZG9jdW1lbnQsIHBhcnNlZFVSTCwgY29va2llTmFtZSk7CisgICAgfQogfQogCiB2b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VUcmVlKEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OkZyYW1lUmVzb3VyY2VUcmVlPiYgb2JqZWN0KQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw1NSAr
MzcsNTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgTmV0d29ya2luZ0NvbnRl
eHQqIG5ldHdvcmtpbmdDb250ZXh0KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKK3N0YXRpYyBO
ZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoY29uc3QgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewogICAgIC8vIEZJWE1FOiBSZXR1cm5pbmcgMCBtZWFucyBmYWxsaW5nIGJhY2sgdG8g
ZGVmYXVsdCBjb250ZXh0LiBUaGF0J3Mgbm90IGEgY2hvaWNlIHRoYXQgaXMgYXBwcm9wcmlhdGUg
dG8gZG8gYXQgcnVudGltZQotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgIEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0
KCk7CiB9CiAKLWlubGluZSBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKGNv
bnN0IERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0
b3JhZ2VTZXNzaW9uKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCA9IG5ldHdvcmtpbmdDb250ZXh0KGRvY3VtZW50KTsKICAgICByZXR1
cm4gY29udGV4dCA/IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkgOiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQogCi1TdHJpbmcgY29va2llcyhjb25z
dCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQorU3RyaW5nIGNvb2tpZXMoY29u
c3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkKIHsKLSAgICByZXR1cm4gcGxh
dGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5jb29raWVzRm9yRE9NKHN0b3Jh
Z2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQtPmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVy
bCk7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+
Y29va2llc0ZvckRPTShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRvY3VtZW50LmZpcnN0UGFy
dHlGb3JDb29raWVzKCksIHVybCk7CiB9CiAKLXZvaWQgc2V0Q29va2llcyhEb2N1bWVudCogZG9j
dW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKK3ZvaWQg
c2V0Q29va2llcyhEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIGNvb2tpZVN0cmluZykKIHsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0
cmF0ZWd5KCktPnNldENvb2tpZXNGcm9tRE9NKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9j
dW1lbnQtPmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCwgY29va2llU3RyaW5nKTsKKyAgICBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPnNldENvb2tpZXNGcm9tRE9N
KHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMo
KSwgdXJsLCBjb29raWVTdHJpbmcpOwogfQogCi1ib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERv
Y3VtZW50KiBkb2N1bWVudCkKK2Jvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0
ZWd5KCktPmNvb2tpZXNFbmFibGVkKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQt
PmZpcnN0UGFydHlGb3JDb29raWVzKCksIGRvY3VtZW50LT5jb29raWVVUkwoKSk7CisgICAgcmV0
dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+Y29va2llc0VuYWJs
ZWQoc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2ll
cygpLCBkb2N1bWVudC5jb29raWVVUkwoKSk7CiB9CiAKLVN0cmluZyBjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQor
U3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5jb29raWVzU3RyYXRlZ3koKS0+Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFn
ZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1bWVudC0+Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgdXJs
KTsKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5j
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRv
Y3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCk7CiB9CiAKLWJvb2wgZ2V0UmF3Q29v
a2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29v
a2llPiYgY29va2llcykKK2Jvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgY29va2llcykKIHsKLSAgICByZXR1
cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5nZXRSYXdDb29raWVz
KHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQtPmZpcnN0UGFydHlGb3JDb29raWVz
KCksIHVybCwgY29va2llcyk7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29r
aWVzU3RyYXRlZ3koKS0+Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRv
Y3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCwgY29va2llcyk7CiB9CiAKLXZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgY29va2llTmFtZSkKK3ZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKIHsK
ICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPmRlbGV0ZUNvb2tp
ZShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIHVybCwgY29va2llTmFtZSk7CiB9CiAKLXZvaWQg
YWRkQ29va2llKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IENvb2tpZSYgY29va2llKQordm9pZCBhZGRDb29raWUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgQ29va2llJiBjb29raWUpCiB7CiAgICAgcGxhdGZvcm1T
dHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5hZGRDb29raWUoc3RvcmFnZVNlc3Npb24o
ZG9jdW1lbnQpLCB1cmwsIGNvb2tpZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q29va2llSmFyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUph
ci5oCShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDE0ICszOSwxNCBAQCBzdHJ1Y3QgQ29va2llOwogLy8g
RnVuY3Rpb25zIGluIHRoaXMgZmlsZSB0YWtlIGEgRG9jdW1lbnQgcG9pbnRlciB0byBkZXRlcm1p
bmUgd2hpY2ggY29va2llIHN0b3JhZ2UgdG8gdXNlLiBXZSBzaG91bGQgbWVyZ2UgdGhhdCBpbnRv
IGNhbGwgc2l0ZXMsIGFuZCB1c2UgUGxhdGZvcm1Db29raWVKYXIgZGlyZWN0bHkuCiAKIC8vIFRo
ZXNlIHR3byBmdW5jdGlvbnMgaW1wbGVtZW50IGRvY3VtZW50LmNvb2tpZSBBUEksIHdpdGggc3Bl
Y2lhbCBydWxlcyBmb3IgSHR0cE9ubHkgY29va2llcy4KLVdFQkNPUkVfRVhQT1JUIFN0cmluZyBj
b29raWVzKGNvbnN0IERvY3VtZW50KiwgY29uc3QgVVJMJik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENvb2tpZXMoRG9jdW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZyk7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCYsIGNv
bnN0IFVSTCYpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzKERvY3VtZW50JiwgY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpOwogCi1XRUJDT1JFX0VYUE9SVCBi
b29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50Kik7Ci1XRUJDT1JFX0VYUE9SVCBTdHJp
bmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqLCBjb25zdCBV
UkwmKTsKLVdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCos
IGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+Jik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0
ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2ll
TmFtZSk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvb2tpZShjb25zdCBEb2N1bWVudCosIGNv
bnN0IFVSTCYsIGNvbnN0IENvb2tpZSYpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5h
YmxlZChjb25zdCBEb2N1bWVudCYpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJik7CitXRUJDT1JF
X0VYUE9SVCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBW
ZWN0b3I8Q29va2llPiYpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3Qg
RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOworV0VCQ09S
RV9FWFBPUlQgdm9pZCBhZGRDb29raWUoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25z
dCBDb29raWUmKTsKIAogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCShyZXZp
c2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExMSw3ICsxMTEsMTEgQEAgYm9vbCBOYXZpZ2F0b3I6OmNvb2tpZUVuYWJs
ZWQoKSBjb25zdAogICAgIGlmIChtX2ZyYW1lLT5wYWdlKCkgJiYgIW1fZnJhbWUtPnBhZ2UoKS0+
c2V0dGluZ3MoKS5jb29raWVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IHJldHVybiBjb29raWVzRW5hYmxlZChtX2ZyYW1lLT5kb2N1bWVudCgpKTsKKyAgICBhdXRvKiBk
b2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBjb29raWVzRW5hYmxlZCgqZG9jdW1l
bnQpOwogfQogCiBib29sIE5hdmlnYXRvcjo6amF2YUVuYWJsZWQoKSBjb25zdApJbmRleDogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjA0NjEwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDgtMTkgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgRG9jdW1lbnQmIGluc3Rl
YWQgb2YgRG9jdW1lbnQqIHdoZW4gZ2V0dGluZyBjb29raWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OmdldENvb2tpZXNGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojpjb29raWVz
Rm9yVVJMKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6c2V0Q29va2llc0ZvclVSTCk6
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisK
IDIwMTYtMDgtMTggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtD
b2NvYV0gQWRkIFNQSSB0byBXS1Byb2Nlc3NQb29sIGZvciBlbmFibGluZyBjb29raWUgc3RvcmFn
ZSBwYXJ0aXRpb25pbmcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L0F1dG9tYXRpb24uanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24JKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbgkod29ya2luZyBjb3B5
KQpAQCAtNTIsNiArNTIsNyBAQAogICAgICAgICAgICAgICAgICJKYXZhU2NyaXB0VGltZW91dCIs
CiAgICAgICAgICAgICAgICAgIldpbmRvd05vdEZvdW5kIiwKICAgICAgICAgICAgICAgICAiRnJh
bWVOb3RGb3VuZCIsCisgICAgICAgICAgICAgICAgIkRvY3VtZW50Tm90Rm91bmQiLAogICAgICAg
ICAgICAgICAgICJOb2RlTm90Rm91bmQiLAogICAgICAgICAgICAgICAgICJJbnZhbGlkRWxlbWVu
dFN0YXRlIiwKICAgICAgICAgICAgICAgICAiTm9KYXZhU2NyaXB0RGlhbG9nIiwKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU1LDEwICs1NTUsMTYgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raQogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCk7CisgICAg
aWYgKCFkb2N1bWVudCkgeworICAgICAgICBTdHJpbmcgZG9jdW1lbnROb3RGb3VuZEVycm9yVHlw
ZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3Rh
bnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkRv
Y3VtZW50Tm90Rm91bmQpOworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
RGlkRGVsZXRlQ29va2llKGNhbGxiYWNrSUQsIGRvY3VtZW50Tm90Rm91bmRFcnJvclR5cGUpLCAw
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIFRoaXMgcmV0dXJucyB0aGUgc2Ft
ZSBsaXN0IG9mIGNvb2tpZXMgYXMgd2hlbiBldmFsdWF0aW5nIGBkb2N1bWVudC5jb29raWVzYCBp
biBKYXZhU2NyaXB0LgotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5j
b3JlRnJhbWUoKS0+ZG9jdW1lbnQoKTsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBmb3Vu
ZENvb2tpZXM7Ci0gICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhkb2N1bWVudCwgZG9jdW1lbnQt
PmNvb2tpZVVSTCgpLCBmb3VuZENvb2tpZXMpOworICAgIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMo
KmRvY3VtZW50LCBkb2N1bWVudC0+Y29va2llVVJMKCksIGZvdW5kQ29va2llcyk7CiAKICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkR2V0Q29va2llc0ZvckZyYW1lKGNhbGxi
YWNrSUQsIGZvdW5kQ29va2llcywgU3RyaW5nKCkpLCAwKTsKIH0KQEAgLTU3OSw4ICs1ODUsMTMg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDbwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmNv
cmVGcmFtZSgpLT5kb2N1bWVudCgpOwotICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZShkb2N1bWVu
dCwgZG9jdW1lbnQtPmNvb2tpZVVSTCgpLCBjb29raWVOYW1lKTsKKyAgICBhdXRvKiBkb2N1bWVu
dCA9IGZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7
CisgICAgICAgIFN0cmluZyBkb2N1bWVudE5vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6RG9jdW1lbnROb3RGb3VuZCk7
CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWREZWxldGVDb29raWUo
Y2FsbGJhY2tJRCwgZG9jdW1lbnROb3RGb3VuZEVycm9yVHlwZSksIDApOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZSgqZG9jdW1lbnQsIGRvY3VtZW50
LT5jb29raWVVUkwoKSwgY29va2llTmFtZSk7CiAKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6RGlkRGVsZXRlQ29va2llKGNhbGxiYWNrSUQsIFN0cmluZygpKSwgMCk7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MTUsMTIgKzE2MTUsMTIgQEAg
U3RyaW5nIFBsdWdpblZpZXc6OnByb3hpZXNGb3JVUkwoY29uc3QgUwogCiBTdHJpbmcgUGx1Z2lu
Vmlldzo6Y29va2llc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKLSAgICByZXR1
cm4gY29va2llcygmbV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLCBVUkwoVVJMKCksIHVybFN0
cmluZykpOworICAgIHJldHVybiBjb29raWVzKG1fcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKSwg
VVJMKFVSTCgpLCB1cmxTdHJpbmcpKTsKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpzZXRDb29raWVz
Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmlu
ZykKIHsKLSAgICBzZXRDb29raWVzKCZtX3BsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCksIFVSTChV
UkwoKSwgdXJsU3RyaW5nKSwgY29va2llU3RyaW5nKTsKKyAgICBzZXRDb29raWVzKG1fcGx1Z2lu
RWxlbWVudC0+ZG9jdW1lbnQoKSwgVVJMKFVSTCgpLCB1cmxTdHJpbmcpLCBjb29raWVTdHJpbmcp
OwogfQogCiBib29sIFBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBQcm90
ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBw
YXNzd29yZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDY1MSkKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisy
MDE2LTA4LTE5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgVXNlIERvY3VtZW50JiBpbnN0ZWFkIG9mIERvY3VtZW50KiB3aGVuIGdldHRpbmcg
Y29va2llcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYxMDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Z2V0Q29va2llcyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0Q29va2llcyk6Cisg
ICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dl
Yk5ldHNjYXBlUGx1Z2luVmlldyBnZXRWYXJpYWJsZTpmb3JVUkw6dmFsdWU6bGVuZ3RoOl0pOgor
ICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgc2V0VmFyaWFibGU6Zm9yVVJMOnZhbHVl
Omxlbmd0aDpdKToKKwogMjAxNi0wOC0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgZGlkTGF5b3V0KExheW91dE1pbGVzdG9uZXMpIHRv
IGRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKCksIGFuZCByZWxhdGVkIFdLMiBmdW5jdGlvbnMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tCShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dl
Yk5ldHNjYXBlUGx1Z2luVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjExNiw3ICsyMTE2LDEx
IEBAIC0gKE5QRXJyb3IpZ2V0VmFyaWFibGU6KE5QTlVSTFZhcmlhYmxlKXYKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9
IGNvcmUoW3NlbGYgd2ViRnJhbWVdKSkgewotICAgICAgICAgICAgICAgIFN0cmluZyBjb29raWVT
dHJpbmcgPSBjb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCBVUkwpOyAKKyAgICAgICAgICAgICAg
ICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgICAgICAgICAgICAgIGlm
ICghZG9jdW1lbnQpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAg
ICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IGNvb2tpZXMoKmRvY3VtZW50LCBVUkwpOwogICAgICAg
ICAgICAgICAgIENTdHJpbmcgY29va2llU3RyaW5nVVRGOCA9IGNvb2tpZVN0cmluZy51dGY4KCk7
CiAgICAgICAgICAgICAgICAgaWYgKGNvb2tpZVN0cmluZ1VURjguaXNOdWxsKCkpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOwpAQCAtMjE2Niw3ICsyMTcw
LDggQEAgLSAoTlBFcnJvcilzZXRWYXJpYWJsZTooTlBOVVJMVmFyaWFibGUpdgogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gY29yZShbc2VsZiB3ZWJGcmFtZV0pKSB7Ci0gICAgICAgICAgICAgICAgc2V0Q29va2llcyhm
cmFtZS0+ZG9jdW1lbnQoKSwgVVJMLCBjb29raWVTdHJpbmcpOworICAgICAgICAgICAgICAgIGlm
IChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgICAgICAg
ICBzZXRDb29raWVzKCpkb2N1bWVudCwgVVJMLCBjb29raWVTdHJpbmcpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApJ
bmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQkocmV2aXNpb24gMjA0NjEwKQorKysg
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTI1LDcgKzE1MjUsMTEgQEAgYm9vbCBOZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHk6OmdldENvbwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGNvcmUoW21fcGx1Z2luVmlldyB3ZWJGcmFtZV0pKSB7
Ci0gICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBjb29raWVzKGZyYW1lLT5kb2N1bWVudCgp
LCB1cmwpOyAKKyAgICAgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAg
ICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICBTdHJpbmcgY29va2llU3RyaW5nID0gY29va2llcygqZG9jdW1lbnQsIHVybCk7CiAgICAgICAg
IFdURjo6Q1N0cmluZyBjb29raWVTdHJpbmdVVEY4ID0gY29va2llU3RyaW5nLnV0ZjgoKTsKICAg
ICAgICAgaWYgKGNvb2tpZVN0cmluZ1VURjguaXNOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xNTUyLDggKzE1NTYsMTIgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHk6OnNldENvbwogICAgICAgICBTdHJpbmcgY29va2llU3RyaW5nID0gU3RyaW5nOjpmcm9t
VVRGOChjb29raWVzRGF0YSwgY29va2llc0xlbmd0aCk7CiAgICAgICAgIGlmICghY29va2llU3Ry
aW5nKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICAgICAgV2ViQ29y
ZTo6c2V0Q29va2llcyhmcmFtZS0+ZG9jdW1lbnQoKSwgdXJsLCBjb29raWVTdHJpbmcpOworCisg
ICAgICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgICAgIGlmICgh
ZG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgV2ViQ29yZTo6
c2V0Q29va2llcygqZG9jdW1lbnQsIHVybCwgY29va2llU3RyaW5nKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286476</attachid>
            <date>2016-08-19 13:56:10 -0700</date>
            <delta_ts>2016-08-19 18:38:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161011-20160819135418.patch</filename>
            <type>text/plain</type>
            <size>19112</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA4LTE5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIERvY3Vt
ZW50JiBpbnN0ZWFkIG9mIERvY3VtZW50KiB3aGVuIGdldHRpbmcgY29va2llcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0J1ZmZlcik6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VS
ZXF1ZXN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWZlcnJlcik6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JQYWdlQWdlbnQ6OmdldENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFn
ZUFnZW50OjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFn
ZW50OjpnZXRSZXNvdXJjZVRyZWUpOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQ29v
a2llKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZENvb2tpZSk6CisgICAgICAgICogbG9hZGVyL0Nv
b2tpZUphci5oOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hdmlnYXRvcjo6Y29va2llRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0
b3I6OmphdmFFbmFibGVkKToKKwogMjAxNi0wOC0xOCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRoZSBhY2Nlc3NpYmlsaXR5IHRpdGxlcyBmb3IgbGlz
dCBpbnNlcnRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQ0LDcgKzQ0NCw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vz
c0J1ZmZlcigpCiAgICAgICAgICAgICBpZiAobV9pZGVudGlmaWVyKQogICAgICAgICAgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJl
c3BvbnNlKG1fZG9jdW1lbnQsIG1faWRlbnRpZmllciwgbV9oYW5kc2hha2UtPnNlcnZlckhhbmRz
aGFrZVJlc3BvbnNlKCkpOwogICAgICAgICAgICAgaWYgKCFtX2hhbmRzaGFrZS0+c2VydmVyU2V0
Q29va2llKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvb2tpZXNFbmFibGVk
KG1fZG9jdW1lbnQpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fZG9jdW1lbnQgJiYgY29va2ll
c0VuYWJsZWQoKm1fZG9jdW1lbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEV4Y2VwdGlv
biAoZm9yIHNhbmRib3hlZCBkb2N1bWVudHMpIGlnbm9yZWQuCiAgICAgICAgICAgICAgICAgICAg
IG1fZG9jdW1lbnQtPnNldENvb2tpZShtX2hhbmRzaGFrZS0+c2VydmVyU2V0Q29va2llKCksIElH
Tk9SRV9FWENFUFRJT04pOwogICAgICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3Bw
CShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0SGFuZHNoYWtlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDggKzIwMCw4IEBA
IENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2gKICAgICAgICAgZmllbGRz
LmFwcGVuZCgiU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogIiArIG1fY2xpZW50UHJvdG9jb2wpOwog
CiAgICAgVVJMIHVybCA9IGh0dHBVUkxGb3JBdXRoZW50aWNhdGlvbkFuZENvb2tpZXMoKTsKLSAg
ICBpZiAobV9hbGxvd0Nvb2tpZXMpIHsKLSAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKG1fZG9jdW1lbnQsIHVybCk7CisgICAgaWYgKG1fYWxsb3dD
b29raWVzICYmIG1fZG9jdW1lbnQpIHsKKyAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKCptX2RvY3VtZW50LCB1cmwpOwogICAgICAgICBpZiAoIWNv
b2tpZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCJDb29raWU6ICIgKyBj
b29raWUpOwogICAgIH0KQEAgLTI0OSw4ICsyNDksOCBAQCBSZXNvdXJjZVJlcXVlc3QgV2ViU29j
a2V0SGFuZHNoYWtlOjpjbGllCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCwgbV9jbGllbnRQcm90b2NvbCk7CiAK
ICAgICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpOwotICAg
IGlmIChtX2FsbG93Q29va2llcykgewotICAgICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUobV9kb2N1bWVudCwgdXJsKTsKKyAgICBpZiAobV9hbGxvd0Nv
b2tpZXMgJiYgbV9kb2N1bWVudCkgeworICAgICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoKm1fZG9jdW1lbnQsIHVybCk7CiAgICAgICAgIGlmICghY29v
a2llLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpDb29raWUsIGNvb2tpZSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDM3LDcgKzQ0MzcsNyBAQCBTdHJpbmcgRG9jdW1l
bnQ6OmNvb2tpZShFeGNlcHRpb25Db2RlJiBlCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAog
ICAgIGlmICghaXNET01Db29raWVDYWNoZVZhbGlkKCkpCi0gICAgICAgIHNldENhY2hlZERPTUNv
b2tpZXMoY29va2llcyh0aGlzLCBjb29raWVVUkwpKTsKKyAgICAgICAgc2V0Q2FjaGVkRE9NQ29v
a2llcyhjb29raWVzKCp0aGlzLCBjb29raWVVUkwpKTsKIAogICAgIHJldHVybiBjYWNoZWRET01D
b29raWVzKCk7CiB9CkBAIC00NDYxLDcgKzQ0NjEsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRDb29r
aWUoY29uc3QgU3RyaW5nJiB2CiAgICAgICAgIHJldHVybjsKIAogICAgIGludmFsaWRhdGVET01D
b29raWVDYWNoZSgpOwotICAgIHNldENvb2tpZXModGhpcywgY29va2llVVJMLCB2YWx1ZSk7Cisg
ICAgc2V0Q29va2llcygqdGhpcywgY29va2llVVJMLCB2YWx1ZSk7CiB9CiAKIFN0cmluZyBEb2N1
bWVudDo6cmVmZXJyZXIoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MTYsMTAgKzUxNiwxMiBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0Q29va2llcyhF
cnJvCiAKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGZvciAoYXV0byYgdXJsIDogYWxsUmVzb3VyY2Vz
VVJMc0ZvckZyYW1lKGZyYW1lKSkgewogICAgICAgICAgICAgVmVjdG9yPENvb2tpZT4gZG9jQ29v
a2llc0xpc3Q7Ci0gICAgICAgICAgICByYXdDb29raWVzSW1wbGVtZW50ZWQgPSBnZXRSYXdDb29r
aWVzKGRvY3VtZW50LCBVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBkb2NDb29raWVzTGlzdCk7
CisgICAgICAgICAgICByYXdDb29raWVzSW1wbGVtZW50ZWQgPSBnZXRSYXdDb29raWVzKCpkb2N1
bWVudCwgVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgZG9jQ29va2llc0xpc3QpOwogCiAgICAg
ICAgICAgICBpZiAoIXJhd0Nvb2tpZXNJbXBsZW1lbnRlZCkgewogICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBXZSBuZWVkIGR1cGxpY2F0aW9uIGNoZWNraW5nIGZvciB0aGUgU3RyaW5nIHJlcHJl
c2VudGF0aW9uIG9mIGNvb2tpZXMuCkBAIC01NDUsOCArNTQ3LDEwIEBAIHZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjpnZXRDb29raWVzKEVycm8KIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkZWxl
dGVDb29raWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0
cmluZyYgdXJsKQogewogICAgIFVSTCBwYXJzZWRVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOwot
ICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1fcGFnZS5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkKLSAgICAgICAgV2ViQ29yZTo6ZGVsZXRl
Q29va2llKGZyYW1lLT5kb2N1bWVudCgpLCBwYXJzZWRVUkwsIGNvb2tpZU5hbWUpOworICAgIGZv
ciAoRnJhbWUqIGZyYW1lID0gJm1fcGFnZS5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQg
PSBmcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZSgq
ZG9jdW1lbnQsIHBhcnNlZFVSTCwgY29va2llTmFtZSk7CisgICAgfQogfQogCiB2b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VUcmVlKEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OkZyYW1lUmVzb3VyY2VUcmVlPiYgb2JqZWN0KQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw1NSAr
MzcsNTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgTmV0d29ya2luZ0NvbnRl
eHQqIG5ldHdvcmtpbmdDb250ZXh0KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKK3N0YXRpYyBO
ZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoY29uc3QgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewogICAgIC8vIEZJWE1FOiBSZXR1cm5pbmcgMCBtZWFucyBmYWxsaW5nIGJhY2sgdG8g
ZGVmYXVsdCBjb250ZXh0LiBUaGF0J3Mgbm90IGEgY2hvaWNlIHRoYXQgaXMgYXBwcm9wcmlhdGUg
dG8gZG8gYXQgcnVudGltZQotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgIEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0
KCk7CiB9CiAKLWlubGluZSBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKGNv
bnN0IERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0
b3JhZ2VTZXNzaW9uKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCA9IG5ldHdvcmtpbmdDb250ZXh0KGRvY3VtZW50KTsKICAgICByZXR1
cm4gY29udGV4dCA/IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkgOiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwogfQogCi1TdHJpbmcgY29va2llcyhjb25z
dCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQorU3RyaW5nIGNvb2tpZXMoY29u
c3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkKIHsKLSAgICByZXR1cm4gcGxh
dGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5jb29raWVzRm9yRE9NKHN0b3Jh
Z2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQtPmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVy
bCk7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+
Y29va2llc0ZvckRPTShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRvY3VtZW50LmZpcnN0UGFy
dHlGb3JDb29raWVzKCksIHVybCk7CiB9CiAKLXZvaWQgc2V0Q29va2llcyhEb2N1bWVudCogZG9j
dW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKK3ZvaWQg
c2V0Q29va2llcyhEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIGNvb2tpZVN0cmluZykKIHsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0
cmF0ZWd5KCktPnNldENvb2tpZXNGcm9tRE9NKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9j
dW1lbnQtPmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCwgY29va2llU3RyaW5nKTsKKyAgICBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPnNldENvb2tpZXNGcm9tRE9N
KHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMo
KSwgdXJsLCBjb29raWVTdHJpbmcpOwogfQogCi1ib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERv
Y3VtZW50KiBkb2N1bWVudCkKK2Jvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0
ZWd5KCktPmNvb2tpZXNFbmFibGVkKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQt
PmZpcnN0UGFydHlGb3JDb29raWVzKCksIGRvY3VtZW50LT5jb29raWVVUkwoKSk7CisgICAgcmV0
dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+Y29va2llc0VuYWJs
ZWQoc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2ll
cygpLCBkb2N1bWVudC5jb29raWVVUkwoKSk7CiB9CiAKLVN0cmluZyBjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQor
U3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5jb29raWVzU3RyYXRlZ3koKS0+Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFn
ZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1bWVudC0+Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgdXJs
KTsKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5j
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRv
Y3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCk7CiB9CiAKLWJvb2wgZ2V0UmF3Q29v
a2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29v
a2llPiYgY29va2llcykKK2Jvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgY29va2llcykKIHsKLSAgICByZXR1
cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5nZXRSYXdDb29raWVz
KHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQtPmZpcnN0UGFydHlGb3JDb29raWVz
KCksIHVybCwgY29va2llcyk7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29r
aWVzU3RyYXRlZ3koKS0+Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRv
Y3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCwgY29va2llcyk7CiB9CiAKLXZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgY29va2llTmFtZSkKK3ZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKIHsK
ICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPmRlbGV0ZUNvb2tp
ZShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIHVybCwgY29va2llTmFtZSk7CiB9CiAKLXZvaWQg
YWRkQ29va2llKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IENvb2tpZSYgY29va2llKQordm9pZCBhZGRDb29raWUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgQ29va2llJiBjb29raWUpCiB7CiAgICAgcGxhdGZvcm1T
dHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5hZGRDb29raWUoc3RvcmFnZVNlc3Npb24o
ZG9jdW1lbnQpLCB1cmwsIGNvb2tpZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q29va2llSmFyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUph
ci5oCShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDE0ICszOSwxNCBAQCBzdHJ1Y3QgQ29va2llOwogLy8g
RnVuY3Rpb25zIGluIHRoaXMgZmlsZSB0YWtlIGEgRG9jdW1lbnQgcG9pbnRlciB0byBkZXRlcm1p
bmUgd2hpY2ggY29va2llIHN0b3JhZ2UgdG8gdXNlLiBXZSBzaG91bGQgbWVyZ2UgdGhhdCBpbnRv
IGNhbGwgc2l0ZXMsIGFuZCB1c2UgUGxhdGZvcm1Db29raWVKYXIgZGlyZWN0bHkuCiAKIC8vIFRo
ZXNlIHR3byBmdW5jdGlvbnMgaW1wbGVtZW50IGRvY3VtZW50LmNvb2tpZSBBUEksIHdpdGggc3Bl
Y2lhbCBydWxlcyBmb3IgSHR0cE9ubHkgY29va2llcy4KLVdFQkNPUkVfRVhQT1JUIFN0cmluZyBj
b29raWVzKGNvbnN0IERvY3VtZW50KiwgY29uc3QgVVJMJik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENvb2tpZXMoRG9jdW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZyk7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCYsIGNv
bnN0IFVSTCYpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzKERvY3VtZW50JiwgY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpOwogCi1XRUJDT1JFX0VYUE9SVCBi
b29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50Kik7Ci1XRUJDT1JFX0VYUE9SVCBTdHJp
bmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqLCBjb25zdCBV
UkwmKTsKLVdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCos
IGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+Jik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0
ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2ll
TmFtZSk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvb2tpZShjb25zdCBEb2N1bWVudCosIGNv
bnN0IFVSTCYsIGNvbnN0IENvb2tpZSYpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5h
YmxlZChjb25zdCBEb2N1bWVudCYpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJik7CitXRUJDT1JF
X0VYUE9SVCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBW
ZWN0b3I8Q29va2llPiYpOworV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3Qg
RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOworV0VCQ09S
RV9FWFBPUlQgdm9pZCBhZGRDb29raWUoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25z
dCBDb29raWUmKTsKIAogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCShyZXZp
c2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExMSw3ICsxMTEsMTEgQEAgYm9vbCBOYXZpZ2F0b3I6OmNvb2tpZUVuYWJs
ZWQoKSBjb25zdAogICAgIGlmIChtX2ZyYW1lLT5wYWdlKCkgJiYgIW1fZnJhbWUtPnBhZ2UoKS0+
c2V0dGluZ3MoKS5jb29raWVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IHJldHVybiBjb29raWVzRW5hYmxlZChtX2ZyYW1lLT5kb2N1bWVudCgpKTsKKyAgICBhdXRvKiBk
b2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBjb29raWVzRW5hYmxlZCgqZG9jdW1l
bnQpOwogfQogCiBib29sIE5hdmlnYXRvcjo6amF2YUVuYWJsZWQoKSBjb25zdApJbmRleDogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjA0NjEwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDgtMTkgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgRG9jdW1lbnQmIGluc3Rl
YWQgb2YgRG9jdW1lbnQqIHdoZW4gZ2V0dGluZyBjb29raWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6
OmNvb2tpZXNGb3JVUkwpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpzZXRDb29raWVz
Rm9yVVJMKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25J
bmZvKToKKwogMjAxNi0wOC0xOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvY29hXSBBZGQgU1BJIHRvIFdLUHJvY2Vzc1Bvb2wgZm9yIGVuYWJsaW5nIGNvb2tp
ZSBzdG9yYWdlIHBhcnRpdGlvbmluZwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5LmNwcAkocmV2aXNpb24gMjA0NjEwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01NTYsOSArNTU2LDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29r
aQogICAgIH0KIAogICAgIC8vIFRoaXMgcmV0dXJucyB0aGUgc2FtZSBsaXN0IG9mIGNvb2tpZXMg
YXMgd2hlbiBldmFsdWF0aW5nIGBkb2N1bWVudC5jb29raWVzYCBpbiBKYXZhU2NyaXB0LgotICAg
IFdlYkNvcmU6OkRvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1l
bnQoKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50
KCk7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gZm91bmRDb29raWVzOwotICAgIFdlYkNv
cmU6OmdldFJhd0Nvb2tpZXMoZG9jdW1lbnQsIGRvY3VtZW50LT5jb29raWVVUkwoKSwgZm91bmRD
b29raWVzKTsKKyAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKGRvY3VtZW50LCBkb2N1bWVudC5j
b29raWVVUkwoKSwgZm91bmRDb29raWVzKTsKIAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25T
ZXNzaW9uOjpEaWRHZXRDb29raWVzRm9yRnJhbWUoY2FsbGJhY2tJRCwgZm91bmRDb29raWVzLCBT
dHJpbmcoKSksIDApOwogfQpAQCAtNTc5LDggKzU3OSw4IEBAIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6ZGVsZXRlQ28KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkNv
cmU6OkRvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKTsK
LSAgICBXZWJDb3JlOjpkZWxldGVDb29raWUoZG9jdW1lbnQsIGRvY3VtZW50LT5jb29raWVVUkwo
KSwgY29va2llTmFtZSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUtPmNvcmVGcmFtZSgp
LT5kb2N1bWVudCgpOworICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZShkb2N1bWVudCwgZG9jdW1l
bnQuY29va2llVVJMKCksIGNvb2tpZU5hbWUpOwogCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlv
blNlc3Npb246OkRpZERlbGV0ZUNvb2tpZShjYWxsYmFja0lELCBTdHJpbmcoKSksIDApOwogfQpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAkocmV2aXNpb24gMjA0NjEwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjE1LDEyICsxNjE1LDEyIEBA
IFN0cmluZyBQbHVnaW5WaWV3Ojpwcm94aWVzRm9yVVJMKGNvbnN0IFMKIAogU3RyaW5nIFBsdWdp
blZpZXc6OmNvb2tpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7Ci0gICAgcmV0
dXJuIGNvb2tpZXMoJm1fcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKSwgVVJMKFVSTCgpLCB1cmxT
dHJpbmcpKTsKKyAgICByZXR1cm4gY29va2llcyhtX3BsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCks
IFVSTChVUkwoKSwgdXJsU3RyaW5nKSk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0Q29va2ll
c0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBjb29raWVTdHJp
bmcpCiB7Ci0gICAgc2V0Q29va2llcygmbV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLCBVUkwo
VVJMKCksIHVybFN0cmluZyksIGNvb2tpZVN0cmluZyk7CisgICAgc2V0Q29va2llcyhtX3BsdWdp
bkVsZW1lbnQtPmRvY3VtZW50KCksIFVSTChVUkwoKSwgdXJsU3RyaW5nKSwgY29va2llU3RyaW5n
KTsKIH0KIAogYm9vbCBQbHVnaW5WaWV3OjpnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgUHJv
dGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIFN0cmluZyYgdXNlcm5hbWUsIFN0cmluZyYg
cGFzc3dvcmQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDQ2NTEpCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAor
MjAxNi0wOC0xOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgor
CisgICAgICAgIFVzZSBEb2N1bWVudCYgaW5zdGVhZCBvZiBEb2N1bWVudCogd2hlbiBnZXR0aW5n
IGNvb2tpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTAxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmdldENvb2tpZXMpOgorICAg
ICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNldENvb2tpZXMpOgor
ICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJOZXRzY2FwZVBsdWdpblZpZXcgZ2V0VmFyaWFibGU6Zm9yVVJMOnZhbHVlOmxlbmd0aDpdKToK
KyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IHNldFZhcmlhYmxlOmZvclVSTDp2YWx1
ZTpsZW5ndGg6XSk6CisKIDIwMTYtMDgtMTYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIGRpZExheW91dChMYXlvdXRNaWxlc3RvbmVzKSB0
byBkaWRSZWFjaExheW91dE1pbGVzdG9uZSgpLCBhbmQgcmVsYXRlZCBXSzIgZnVuY3Rpb25zCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
Vmlldy5tbQkocmV2aXNpb24gMjA0NjEwKQorKysgU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTIxMTYsNyArMjExNiwx
MSBAQCAtIChOUEVycm9yKWdldFZhcmlhYmxlOihOUE5VUkxWYXJpYWJsZSl2CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUg
PSBjb3JlKFtzZWxmIHdlYkZyYW1lXSkpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgY29va2ll
U3RyaW5nID0gY29va2llcyhmcmFtZS0+ZG9jdW1lbnQoKSwgVVJMKTsgCisgICAgICAgICAgICAg
ICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAg
ICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBjb29raWVzKCpkb2N1bWVudCwgVVJMKTsKICAgICAg
ICAgICAgICAgICBDU3RyaW5nIGNvb2tpZVN0cmluZ1VURjggPSBjb29raWVTdHJpbmcudXRmOCgp
OwogICAgICAgICAgICAgICAgIGlmIChjb29raWVTdHJpbmdVVEY4LmlzTnVsbCgpKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKQEAgLTIxNjYsNyArMjE3
MCw4IEBAIC0gKE5QRXJyb3Ipc2V0VmFyaWFibGU6KE5QTlVSTFZhcmlhYmxlKXYKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGNvcmUoW3NlbGYgd2ViRnJhbWVdKSkgewotICAgICAgICAgICAgICAgIHNldENvb2tpZXMo
ZnJhbWUtPmRvY3VtZW50KCksIFVSTCwgY29va2llU3RyaW5nKTsKKyAgICAgICAgICAgICAgICBp
ZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgICAgICAg
ICAgc2V0Q29va2llcygqZG9jdW1lbnQsIFVSTCwgY29va2llU3RyaW5nKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0JKHJldmlzaW9uIDIwNDYxMCkKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTUyNSw3ICsxNTI1LDExIEBAIGJvb2wgTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5OjpnZXRDb28KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IAogICAgIGlmIChGcmFtZSogZnJhbWUgPSBjb3JlKFttX3BsdWdpblZpZXcgd2ViRnJhbWVdKSkg
ewotICAgICAgICBTdHJpbmcgY29va2llU3RyaW5nID0gY29va2llcyhmcmFtZS0+ZG9jdW1lbnQo
KSwgdXJsKTsgCisgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7Cisg
ICAgICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IGNvb2tpZXMoKmRvY3VtZW50LCB1cmwpOwogICAgICAg
ICBXVEY6OkNTdHJpbmcgY29va2llU3RyaW5nVVRGOCA9IGNvb2tpZVN0cmluZy51dGY4KCk7CiAg
ICAgICAgIGlmIChjb29raWVTdHJpbmdVVEY4LmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTU1Miw4ICsxNTU2LDEyIEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpzZXRDb28KICAgICAgICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IFN0cmluZzo6ZnJv
bVVURjgoY29va2llc0RhdGEsIGNvb2tpZXNMZW5ndGgpOwogICAgICAgICBpZiAoIWNvb2tpZVN0
cmluZykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIFdlYkNv
cmU6OnNldENvb2tpZXMoZnJhbWUtPmRvY3VtZW50KCksIHVybCwgY29va2llU3RyaW5nKTsKKwor
ICAgICAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgICAgICBpZiAo
IWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFdlYkNvcmU6
OnNldENvb2tpZXMoKmRvY3VtZW50LCB1cmwsIGNvb2tpZVN0cmluZyk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286511</attachid>
            <date>2016-08-19 18:38:48 -0700</date>
            <delta_ts>2016-08-19 22:29:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161011-20160819183656.patch</filename>
            <type>text/plain</type>
            <size>21175</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA4LTE5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIERvY3Vt
ZW50JiBpbnN0ZWFkIG9mIERvY3VtZW50KiB3aGVuIGdldHRpbmcgY29va2llcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0J1ZmZlcik6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VS
ZXF1ZXN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWZlcnJlcik6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JQYWdlQWdlbnQ6OmdldENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFn
ZUFnZW50OjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFn
ZW50OjpnZXRSZXNvdXJjZVRyZWUpOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQ29v
a2llKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZENvb2tpZSk6CisgICAgICAgICogbG9hZGVyL0Nv
b2tpZUphci5oOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hdmlnYXRvcjo6Y29va2llRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0
b3I6OmphdmFFbmFibGVkKToKKwogMjAxNi0wOC0xOCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRoZSBhY2Nlc3NpYmlsaXR5IHRpdGxlcyBmb3IgbGlz
dCBpbnNlcnRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQ0LDcgKzQ0NCw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vz
c0J1ZmZlcigpCiAgICAgICAgICAgICBpZiAobV9pZGVudGlmaWVyKQogICAgICAgICAgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJl
c3BvbnNlKG1fZG9jdW1lbnQsIG1faWRlbnRpZmllciwgbV9oYW5kc2hha2UtPnNlcnZlckhhbmRz
aGFrZVJlc3BvbnNlKCkpOwogICAgICAgICAgICAgaWYgKCFtX2hhbmRzaGFrZS0+c2VydmVyU2V0
Q29va2llKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvb2tpZXNFbmFibGVk
KG1fZG9jdW1lbnQpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fZG9jdW1lbnQgJiYgY29va2ll
c0VuYWJsZWQoKm1fZG9jdW1lbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEV4Y2VwdGlv
biAoZm9yIHNhbmRib3hlZCBkb2N1bWVudHMpIGlnbm9yZWQuCiAgICAgICAgICAgICAgICAgICAg
IG1fZG9jdW1lbnQtPnNldENvb2tpZShtX2hhbmRzaGFrZS0+c2VydmVyU2V0Q29va2llKCksIElH
Tk9SRV9FWENFUFRJT04pOwogICAgICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3Bw
CShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0SGFuZHNoYWtlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDggKzIwMCw4IEBA
IENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2gKICAgICAgICAgZmllbGRz
LmFwcGVuZCgiU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogIiArIG1fY2xpZW50UHJvdG9jb2wpOwog
CiAgICAgVVJMIHVybCA9IGh0dHBVUkxGb3JBdXRoZW50aWNhdGlvbkFuZENvb2tpZXMoKTsKLSAg
ICBpZiAobV9hbGxvd0Nvb2tpZXMpIHsKLSAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKG1fZG9jdW1lbnQsIHVybCk7CisgICAgaWYgKG1fYWxsb3dD
b29raWVzICYmIG1fZG9jdW1lbnQpIHsKKyAgICAgICAgU3RyaW5nIGNvb2tpZSA9IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKCptX2RvY3VtZW50LCB1cmwpOwogICAgICAgICBpZiAoIWNv
b2tpZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCJDb29raWU6ICIgKyBj
b29raWUpOwogICAgIH0KQEAgLTI0OSw4ICsyNDksOCBAQCBSZXNvdXJjZVJlcXVlc3QgV2ViU29j
a2V0SGFuZHNoYWtlOjpjbGllCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCwgbV9jbGllbnRQcm90b2NvbCk7CiAK
ICAgICBVUkwgdXJsID0gaHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpOwotICAg
IGlmIChtX2FsbG93Q29va2llcykgewotICAgICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUobV9kb2N1bWVudCwgdXJsKTsKKyAgICBpZiAobV9hbGxvd0Nv
b2tpZXMgJiYgbV9kb2N1bWVudCkgeworICAgICAgICBTdHJpbmcgY29va2llID0gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoKm1fZG9jdW1lbnQsIHVybCk7CiAgICAgICAgIGlmICghY29v
a2llLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpDb29raWUsIGNvb2tpZSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDM3LDcgKzQ0MzcsNyBAQCBTdHJpbmcgRG9jdW1l
bnQ6OmNvb2tpZShFeGNlcHRpb25Db2RlJiBlCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAog
ICAgIGlmICghaXNET01Db29raWVDYWNoZVZhbGlkKCkpCi0gICAgICAgIHNldENhY2hlZERPTUNv
b2tpZXMoY29va2llcyh0aGlzLCBjb29raWVVUkwpKTsKKyAgICAgICAgc2V0Q2FjaGVkRE9NQ29v
a2llcyhjb29raWVzKCp0aGlzLCBjb29raWVVUkwpKTsKIAogICAgIHJldHVybiBjYWNoZWRET01D
b29raWVzKCk7CiB9CkBAIC00NDYxLDcgKzQ0NjEsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRDb29r
aWUoY29uc3QgU3RyaW5nJiB2CiAgICAgICAgIHJldHVybjsKIAogICAgIGludmFsaWRhdGVET01D
b29raWVDYWNoZSgpOwotICAgIHNldENvb2tpZXModGhpcywgY29va2llVVJMLCB2YWx1ZSk7Cisg
ICAgc2V0Q29va2llcygqdGhpcywgY29va2llVVJMLCB2YWx1ZSk7CiB9CiAKIFN0cmluZyBEb2N1
bWVudDo6cmVmZXJyZXIoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDE1LDcgKzY0MTUsNyBAQCBT
dHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJOZXR3CiAKIGJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8
Q29va2llPiYgY29va2llcykgY29uc3QKIHsKLSAgICByZXR1cm4gZ2V0UmF3Q29va2llcygmZG9j
dW1lbnQoKSwgdXJsLCBjb29raWVzKTsKKyAgICByZXR1cm4gZ2V0UmF3Q29va2llcyhkb2N1bWVu
dCgpLCB1cmwsIGNvb2tpZXMpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCShyZXZpc2lvbiAyMDQ2MTApCisr
KyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTE2LDEwICs1MTYsMTIgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6Omdl
dENvb2tpZXMoRXJybwogCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBmb3IgKGF1dG8mIHVybCA6IGFs
bFJlc291cmNlc1VSTHNGb3JGcmFtZShmcmFtZSkpIHsKICAgICAgICAgICAgIFZlY3RvcjxDb29r
aWU+IGRvY0Nvb2tpZXNMaXN0OwotICAgICAgICAgICAgcmF3Q29va2llc0ltcGxlbWVudGVkID0g
Z2V0UmF3Q29va2llcyhkb2N1bWVudCwgVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgZG9jQ29v
a2llc0xpc3QpOworICAgICAgICAgICAgcmF3Q29va2llc0ltcGxlbWVudGVkID0gZ2V0UmF3Q29v
a2llcygqZG9jdW1lbnQsIFVSTChQYXJzZWRVUkxTdHJpbmcsIHVybCksIGRvY0Nvb2tpZXNMaXN0
KTsKIAogICAgICAgICAgICAgaWYgKCFyYXdDb29raWVzSW1wbGVtZW50ZWQpIHsKICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCBkdXBsaWNhdGlvbiBjaGVja2luZyBmb3IgdGhlIFN0
cmluZyByZXByZXNlbnRhdGlvbiBvZiBjb29raWVzLgpAQCAtNTQ1LDggKzU0NywxMCBAQCB2b2lk
IEluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0Q29va2llcyhFcnJvCiB2b2lkIEluc3BlY3RvclBhZ2VB
Z2VudDo6ZGVsZXRlQ29va2llKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1l
LCBjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBVUkwgcGFyc2VkVVJMKFBhcnNlZFVSTFN0cmlu
ZywgdXJsKTsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX3BhZ2UubWFpbkZyYW1lKCk7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpCi0gICAgICAgIFdlYkNv
cmU6OmRlbGV0ZUNvb2tpZShmcmFtZS0+ZG9jdW1lbnQoKSwgcGFyc2VkVVJMLCBjb29raWVOYW1l
KTsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX3BhZ2UubWFpbkZyYW1lKCk7IGZyYW1lOyBm
cmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgaWYgKGF1dG8q
IGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBXZWJDb3JlOjpkZWxl
dGVDb29raWUoKmRvY3VtZW50LCBwYXJzZWRVUkwsIGNvb2tpZU5hbWUpOworICAgIH0KIH0KIAog
dm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmdldFJlc291cmNlVHJlZShFcnJvclN0cmluZyYsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdlOjpGcmFtZVJlc291cmNlVHJlZT4mIG9iamVj
dCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCShyZXZpc2lvbiAyMDQ2MTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNTUgKzM3LDUzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIE5ldHdv
cmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQp
CitzdGF0aWMgTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0KGNvbnN0IERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKICAgICAvLyBGSVhNRTogUmV0dXJuaW5nIDAgbWVhbnMgZmFsbGlu
ZyBiYWNrIHRvIGRlZmF1bHQgY29udGV4dC4gVGhhdCdzIG5vdCBhIGNob2ljZSB0aGF0IGlzIGFw
cHJvcHJpYXRlIHRvIGRvIGF0IHJ1bnRpbWUKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAg
ICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS5uZXR3b3Jr
aW5nQ29udGV4dCgpOwogfQogCi1pbmxpbmUgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdl
U2Vzc2lvbihjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCitpbmxpbmUgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbihjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAg
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSBuZXR3b3JraW5nQ29udGV4dChkb2N1bWVudCk7
CiAgICAgcmV0dXJuIGNvbnRleHQgPyBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpIDogTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKIH0KIAotU3RyaW5nIGNv
b2tpZXMoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkKK1N0cmluZyBj
b29raWVzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAg
cmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+Y29va2llc0Zv
ckRPTShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRvY3VtZW50LT5maXJzdFBhcnR5Rm9yQ29v
a2llcygpLCB1cmwpOworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0
cmF0ZWd5KCktPmNvb2tpZXNGb3JET00oc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1bWVu
dC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCB1cmwpOwogfQogCi12b2lkIHNldENvb2tpZXMoRG9j
dW1lbnQqIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJp
bmcpCit2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7Ci0gICAgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmNvb2tpZXNTdHJhdGVneSgpLT5zZXRDb29raWVzRnJvbURPTShzdG9yYWdlU2Vzc2lvbihkb2N1
bWVudCksIGRvY3VtZW50LT5maXJzdFBhcnR5Rm9yQ29va2llcygpLCB1cmwsIGNvb2tpZVN0cmlu
Zyk7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5zZXRDb29r
aWVzRnJvbURPTShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRvY3VtZW50LmZpcnN0UGFydHlG
b3JDb29raWVzKCksIHVybCwgY29va2llU3RyaW5nKTsKIH0KIAotYm9vbCBjb29raWVzRW5hYmxl
ZChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCitib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNv
b2tpZXNTdHJhdGVneSgpLT5jb29raWVzRW5hYmxlZChzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCks
IGRvY3VtZW50LT5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBkb2N1bWVudC0+Y29va2llVVJMKCkp
OworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPmNv
b2tpZXNFbmFibGVkKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0
eUZvckNvb2tpZXMoKSwgZG9jdW1lbnQuY29va2llVVJMKCkpOwogfQogCi1TdHJpbmcgY29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBV
UkwmIHVybCkKK1N0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQogewotICAgIHJldHVybiBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQtPmZpcnN0UGFydHlGb3JDb29r
aWVzKCksIHVybCk7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3Ry
YXRlZ3koKS0+Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24oZG9j
dW1lbnQpLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCB1cmwpOwogfQogCi1ib29s
IGdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwg
VmVjdG9yPENvb2tpZT4mIGNvb2tpZXMpCitib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMpCiB7
Ci0gICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+Z2V0
UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRvY3VtZW50LT5maXJzdFBhcnR5
Rm9yQ29va2llcygpLCB1cmwsIGNvb2tpZXMpOworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPmdldFJhd0Nvb2tpZXMoc3RvcmFnZVNlc3Npb24oZG9j
dW1lbnQpLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCB1cmwsIGNvb2tpZXMpOwog
fQogCi12b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpCit2b2lkIGRlbGV0ZUNvb2tpZShjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tp
ZU5hbWUpCiB7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5k
ZWxldGVDb29raWUoc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCB1cmwsIGNvb2tpZU5hbWUpOwog
fQogCi12b2lkIGFkZENvb2tpZShjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBDb29raWUmIGNvb2tpZSkKK3ZvaWQgYWRkQ29va2llKGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IENvb2tpZSYgY29va2llKQogewogICAg
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+YWRkQ29va2llKHN0b3Jh
Z2VTZXNzaW9uKGRvY3VtZW50KSwgdXJsLCBjb29raWUpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nvb2tpZUphci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Db29raWVKYXIuaAkocmV2aXNpb24gMjA0NjEwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nvb2tpZUphci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNCArMzksMTQgQEAgc3RydWN0IENv
b2tpZTsKIC8vIEZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgdGFrZSBhIERvY3VtZW50IHBvaW50ZXIg
dG8gZGV0ZXJtaW5lIHdoaWNoIGNvb2tpZSBzdG9yYWdlIHRvIHVzZS4gV2Ugc2hvdWxkIG1lcmdl
IHRoYXQgaW50byBjYWxsIHNpdGVzLCBhbmQgdXNlIFBsYXRmb3JtQ29va2llSmFyIGRpcmVjdGx5
LgogCiAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGltcGxlbWVudCBkb2N1bWVudC5jb29raWUgQVBJ
LCB3aXRoIHNwZWNpYWwgcnVsZXMgZm9yIEh0dHBPbmx5IGNvb2tpZXMuCi1XRUJDT1JFX0VYUE9S
VCBTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCosIGNvbnN0IFVSTCYpOwotV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRDb29raWVzKERvY3VtZW50KiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHJpbmcpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9j
dW1lbnQmLCBjb25zdCBVUkwmKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhEb2N1
bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKTsKIAotV0VCQ09S
RV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCopOwotV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50
KiwgY29uc3QgVVJMJik7Ci1XRUJDT1JFX0VYUE9SVCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3Qg
RG9jdW1lbnQqLCBjb25zdCBVUkwmLCBWZWN0b3I8Q29va2llPiYpOwotV0VCQ09SRV9FWFBPUlQg
dm9pZCBkZWxldGVDb29raWUoY29uc3QgRG9jdW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIGNvb2tpZU5hbWUpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRDb29raWUoY29uc3QgRG9j
dW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBDb29raWUmKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wg
Y29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQmKTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYp
OworV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50JiwgY29u
c3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlQ29v
a2llKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1l
KTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQ29va2llKGNvbnN0IERvY3VtZW50JiwgY29uc3Qg
VVJMJiwgY29uc3QgQ29va2llJik7CiAKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmNwcAkocmV2aXNpb24gMjA0NjEwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDExIEBAIGJvb2wgTmF2aWdhdG9yOjpj
b29raWVFbmFibGVkKCkgY29uc3QKICAgICBpZiAobV9mcmFtZS0+cGFnZSgpICYmICFtX2ZyYW1l
LT5wYWdlKCktPnNldHRpbmdzKCkuY29va2llRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICByZXR1cm4gY29va2llc0VuYWJsZWQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7Cisg
ICAgYXV0byogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gY29va2llc0VuYWJs
ZWQoKmRvY3VtZW50KTsKIH0KIAogYm9vbCBOYXZpZ2F0b3I6OmphdmFFbmFibGVkKCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA4LTE5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIERvY3Vt
ZW50JiBpbnN0ZWFkIG9mIERvY3VtZW50KiB3aGVuIGdldHRpbmcgY29va2llcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5WaWV3Ojpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6
c2V0Q29va2llc0ZvclVSTCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmdldEF1dGhl
bnRpY2F0aW9uSW5mbyk6CisKIDIwMTYtMDgtMTggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRkIFNQSSB0byBXS1Byb2Nlc3NQb29sIGZvciBlbmFi
bGluZyBjb29raWUgc3RvcmFnZSBwYXJ0aXRpb25pbmcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTU2LDkgKzU1Niw5IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6Z2V0Q29va2kKICAgICB9CiAKICAgICAvLyBUaGlzIHJldHVybnMgdGhlIHNhbWUgbGlzdCBv
ZiBjb29raWVzIGFzIHdoZW4gZXZhbHVhdGluZyBgZG9jdW1lbnQuY29va2llc2AgaW4gSmF2YVNj
cmlwdC4KLSAgICBXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+Y29yZUZyYW1l
KCktPmRvY3VtZW50KCk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUtPmNvcmVGcmFtZSgp
LT5kb2N1bWVudCgpOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGZvdW5kQ29va2llczsK
LSAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKGRvY3VtZW50LCBkb2N1bWVudC0+Y29va2llVVJM
KCksIGZvdW5kQ29va2llcyk7CisgICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhkb2N1bWVudCwg
ZG9jdW1lbnQuY29va2llVVJMKCksIGZvdW5kQ29va2llcyk7CiAKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6RGlkR2V0Q29va2llc0ZvckZyYW1lKGNhbGxiYWNrSUQsIGZvdW5k
Q29va2llcywgU3RyaW5nKCkpLCAwKTsKIH0KQEAgLTU3OSw4ICs1NzksOCBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRlbGV0ZUNvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+Y29yZUZyYW1lKCktPmRv
Y3VtZW50KCk7Ci0gICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llKGRvY3VtZW50LCBkb2N1bWVudC0+
Y29va2llVVJMKCksIGNvb2tpZU5hbWUpOworICAgIGF1dG8mIGRvY3VtZW50ID0gKmZyYW1lLT5j
b3JlRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBXZWJDb3JlOjpkZWxldGVDb29raWUoZG9jdW1l
bnQsIGRvY3VtZW50LmNvb2tpZVVSTCgpLCBjb29raWVOYW1lKTsKIAogICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YkF1dG9tYXRpb25TZXNzaW9uOjpEaWREZWxldGVDb29raWUoY2FsbGJhY2tJRCwgU3RyaW5nKCkp
LCAwKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxNSwxMiAr
MTYxNSwxMiBAQCBTdHJpbmcgUGx1Z2luVmlldzo6cHJveGllc0ZvclVSTChjb25zdCBTCiAKIFN0
cmluZyBQbHVnaW5WaWV3Ojpjb29raWVzRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQog
ewotICAgIHJldHVybiBjb29raWVzKCZtX3BsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCksIFVSTChV
UkwoKSwgdXJsU3RyaW5nKSk7CisgICAgcmV0dXJuIGNvb2tpZXMobV9wbHVnaW5FbGVtZW50LT5k
b2N1bWVudCgpLCBVUkwoVVJMKCksIHVybFN0cmluZykpOwogfQogCiB2b2lkIFBsdWdpblZpZXc6
OnNldENvb2tpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
Y29va2llU3RyaW5nKQogewotICAgIHNldENvb2tpZXMoJm1fcGx1Z2luRWxlbWVudC0+ZG9jdW1l
bnQoKSwgVVJMKFVSTCgpLCB1cmxTdHJpbmcpLCBjb29raWVTdHJpbmcpOworICAgIHNldENvb2tp
ZXMobV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLCBVUkwoVVJMKCksIHVybFN0cmluZyksIGNv
b2tpZVN0cmluZyk7CiB9CiAKIGJvb2wgUGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25JbmZv
KGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlLCBTdHJpbmcmIHVzZXJuYW1l
LCBTdHJpbmcmIHBhc3N3b3JkKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjA0NjUx
KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTYtMDgtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBVc2UgRG9jdW1lbnQmIGluc3RlYWQgb2YgRG9jdW1lbnQqIHdo
ZW4gZ2V0dGluZyBjb29raWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjEwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpnZXRDb29r
aWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpzZXRD
b29raWVzKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IGdldFZhcmlhYmxlOmZvclVSTDp2YWx1ZTps
ZW5ndGg6XSk6CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBzZXRWYXJpYWJsZTpm
b3JVUkw6dmFsdWU6bGVuZ3RoOl0pOgorCiAyMDE2LTA4LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBkaWRMYXlvdXQoTGF5b3V0TWls
ZXN0b25lcykgdG8gZGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoKSwgYW5kIHJlbGF0ZWQgV0syIGZ1
bmN0aW9ucwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
blZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblZpZXcubW0JKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMTE2
LDcgKzIxMTYsMTEgQEAgLSAoTlBFcnJvcilnZXRWYXJpYWJsZTooTlBOVVJMVmFyaWFibGUpdgog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoRnJh
bWUqIGZyYW1lID0gY29yZShbc2VsZiB3ZWJGcmFtZV0pKSB7Ci0gICAgICAgICAgICAgICAgU3Ry
aW5nIGNvb2tpZVN0cmluZyA9IGNvb2tpZXMoZnJhbWUtPmRvY3VtZW50KCksIFVSTCk7IAorICAg
ICAgICAgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgICAg
ICAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgICAgICAgICBTdHJpbmcgY29va2llU3RyaW5nID0gY29va2llcygqZG9jdW1lbnQsIFVS
TCk7CiAgICAgICAgICAgICAgICAgQ1N0cmluZyBjb29raWVTdHJpbmdVVEY4ID0gY29va2llU3Ry
aW5nLnV0ZjgoKTsKICAgICAgICAgICAgICAgICBpZiAoY29va2llU3RyaW5nVVRGOC5pc051bGwo
KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CkBAIC0y
MTY2LDcgKzIxNzAsOCBAQCAtIChOUEVycm9yKXNldFZhcmlhYmxlOihOUE5VUkxWYXJpYWJsZSl2
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBjb3JlKFtzZWxmIHdlYkZyYW1lXSkpIHsKLSAgICAgICAgICAgICAgICBz
ZXRDb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCBVUkwsIGNvb2tpZVN0cmluZyk7CisgICAgICAg
ICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAg
ICAgICAgICAgICAgIHNldENvb2tpZXMoKmRvY3VtZW50LCBVUkwsIGNvb2tpZVN0cmluZyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCShyZXZpc2lvbiAy
MDQ2MTApCisrKyBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1MjUsNyArMTUyNSwxMSBAQCBi
b29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Z2V0Q29vCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gY29yZShbbV9wbHVnaW5WaWV3IHdl
YkZyYW1lXSkpIHsKLSAgICAgICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IGNvb2tpZXMoZnJhbWUt
PmRvY3VtZW50KCksIHVybCk7IAorICAgICAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1
bWVudCgpOworICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBjb29raWVzKCpkb2N1bWVudCwgdXJs
KTsKICAgICAgICAgV1RGOjpDU3RyaW5nIGNvb2tpZVN0cmluZ1VURjggPSBjb29raWVTdHJpbmcu
dXRmOCgpOwogICAgICAgICBpZiAoY29va2llU3RyaW5nVVRGOC5pc051bGwoKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTE1NTIsOCArMTU1NiwxMiBAQCBib29sIE5ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eTo6c2V0Q29vCiAgICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBT
dHJpbmc6OmZyb21VVEY4KGNvb2tpZXNEYXRhLCBjb29raWVzTGVuZ3RoKTsKICAgICAgICAgaWYg
KCFjb29raWVTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAg
ICAgICBXZWJDb3JlOjpzZXRDb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCB1cmwsIGNvb2tpZVN0
cmluZyk7CisKKyAgICAgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAg
ICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICBXZWJDb3JlOjpzZXRDb29raWVzKCpkb2N1bWVudCwgdXJsLCBjb29raWVTdHJpbmcpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIwNDY2OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE2LTA4LTE5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIERvY3VtZW50JiBpbnN0ZWFkIG9mIERvY3Vt
ZW50KiB3aGVuIGdldHRpbmcgY29va2llcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorCiAyMDE2LTA4LTE2ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBkaWRMYXlv
dXQoTGF5b3V0TWlsZXN0b25lcykgdG8gZGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoKSwgYW5kIHJl
bGF0ZWQgV0syIGZ1bmN0aW9ucwpJbmRleDogU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwCShyZXZpc2lvbiAyMDQ2MTApCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcxLDggKzEyNzEsOCBAQCBOUEVy
cm9yIFBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKE5QTlVSCiAgICAgICAgIFVSTCB1KG1fcGFy
ZW50RnJhbWUtPmRvY3VtZW50KCktPmJhc2VVUkwoKSwgdXJsKTsKICAgICAgICAgaWYgKHUuaXNW
YWxpZCgpKSB7CiAgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBnZXRGcmFtZShwYXJlbnRGcmFt
ZSgpLCBtX2VsZW1lbnQpOwotICAgICAgICAgICAgaWYgKGZyYW1lKSB7Ci0gICAgICAgICAgICAg
ICAgY29uc3QgQ1N0cmluZyBjb29raWVTdHIgPSBjb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCB1
KS51dGY4KCk7CisgICAgICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50KCkpIHsK
KyAgICAgICAgICAgICAgICBjb25zdCBDU3RyaW5nIGNvb2tpZVN0ciA9IGNvb2tpZXMoKmZyYW1l
LT5kb2N1bWVudCgpLCB1KS51dGY4KCk7CiAgICAgICAgICAgICAgICAgaWYgKCFjb29raWVTdHIu
aXNOdWxsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IHNpemUgPSBjb29raWVT
dHIubGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNo
YXIqPihOUE5fTWVtQWxsb2Moc2l6ZSsxKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286527</attachid>
            <date>2016-08-19 22:29:11 -0700</date>
            <delta_ts>2016-08-21 23:04:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161011-20160819222718.patch</filename>
            <type>text/plain</type>
            <size>21716</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDY3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA4LTE5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIERvY3Vt
ZW50JiBpbnN0ZWFkIG9mIERvY3VtZW50KiB3aGVuIGdldHRpbmcgY29va2llcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0J1ZmZlcik6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VS
ZXF1ZXN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29va2ll
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWZlcnJlcik6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JQYWdlQWdlbnQ6OmdldENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFn
ZUFnZW50OjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFn
ZW50OjpnZXRSZXNvdXJjZVRyZWUpOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlQ29v
a2llKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZENvb2tpZSk6CisgICAgICAgICogbG9hZGVyL0Nv
b2tpZUphci5oOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hdmlnYXRvcjo6Y29va2llRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0
b3I6OmphdmFFbmFibGVkKToKKwogMjAxNi0wOC0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIE1hcmsgQ2FudmFzUGF0aCBvcGVyYXRpb25zJyBwYXJhbWV0ZXJz
IGFzIG1hbmRhdG9yeSB3aGVuIHRoZXkgc2hvdWxkIGJlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCShyZXZp
c2lvbiAyMDQ2NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0NCw3ICs0NDQsNyBAQCBib29sIFdl
YlNvY2tldENoYW5uZWw6OnByb2Nlc3NCdWZmZXIoKQogICAgICAgICAgICAgaWYgKG1faWRlbnRp
ZmllcikKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2Vp
dmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShtX2RvY3VtZW50LCBtX2lkZW50aWZpZXIsIG1f
aGFuZHNoYWtlLT5zZXJ2ZXJIYW5kc2hha2VSZXNwb25zZSgpKTsKICAgICAgICAgICAgIGlmICgh
bV9oYW5kc2hha2UtPnNlcnZlclNldENvb2tpZSgpLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ICAgIGlmIChjb29raWVzRW5hYmxlZChtX2RvY3VtZW50KSkgeworICAgICAgICAgICAgICAgIGlm
IChtX2RvY3VtZW50ICYmIGNvb2tpZXNFbmFibGVkKCptX2RvY3VtZW50KSkgewogICAgICAgICAg
ICAgICAgICAgICAvLyBFeGNlcHRpb24gKGZvciBzYW5kYm94ZWQgZG9jdW1lbnRzKSBpZ25vcmVk
LgogICAgICAgICAgICAgICAgICAgICBtX2RvY3VtZW50LT5zZXRDb29raWUobV9oYW5kc2hha2Ut
PnNlcnZlclNldENvb2tpZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAgICAgICAgICAgICB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNo
YWtlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0SGFuZHNoYWtlLmNwcAkocmV2aXNpb24gMjA0Njc2KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwMCw4ICsyMDAsOCBAQCBDU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50
SGFuZHNoCiAgICAgICAgIGZpZWxkcy5hcHBlbmQoIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2w6ICIg
KyBtX2NsaWVudFByb3RvY29sKTsKIAogICAgIFVSTCB1cmwgPSBodHRwVVJMRm9yQXV0aGVudGlj
YXRpb25BbmRDb29raWVzKCk7Ci0gICAgaWYgKG1fYWxsb3dDb29raWVzKSB7Ci0gICAgICAgIFN0
cmluZyBjb29raWUgPSBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShtX2RvY3VtZW50LCB1
cmwpOworICAgIGlmIChtX2FsbG93Q29va2llcyAmJiBtX2RvY3VtZW50KSB7CisgICAgICAgIFN0
cmluZyBjb29raWUgPSBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSgqbV9kb2N1bWVudCwg
dXJsKTsKICAgICAgICAgaWYgKCFjb29raWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgZmllbGRz
LmFwcGVuZCgiQ29va2llOiAiICsgY29va2llKTsKICAgICB9CkBAIC0yNDksOCArMjQ5LDggQEAg
UmVzb3VyY2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZQogICAgICAgICByZXF1ZXN0
LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6U2VjV2ViU29ja2V0UHJvdG9jb2ws
IG1fY2xpZW50UHJvdG9jb2wpOwogCiAgICAgVVJMIHVybCA9IGh0dHBVUkxGb3JBdXRoZW50aWNh
dGlvbkFuZENvb2tpZXMoKTsKLSAgICBpZiAobV9hbGxvd0Nvb2tpZXMpIHsKLSAgICAgICAgU3Ry
aW5nIGNvb2tpZSA9IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKG1fZG9jdW1lbnQsIHVy
bCk7CisgICAgaWYgKG1fYWxsb3dDb29raWVzICYmIG1fZG9jdW1lbnQpIHsKKyAgICAgICAgU3Ry
aW5nIGNvb2tpZSA9IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKCptX2RvY3VtZW50LCB1
cmwpOwogICAgICAgICBpZiAoIWNvb2tpZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXF1ZXN0
LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29va2llLCBjb29raWUpOwogICAg
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMjA0Njc2KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQzNyw3ICs0
NDM3LDcgQEAgU3RyaW5nIERvY3VtZW50Ojpjb29raWUoRXhjZXB0aW9uQ29kZSYgZQogICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICBpZiAoIWlzRE9NQ29va2llQ2FjaGVWYWxpZCgpKQot
ICAgICAgICBzZXRDYWNoZWRET01Db29raWVzKGNvb2tpZXModGhpcywgY29va2llVVJMKSk7Cisg
ICAgICAgIHNldENhY2hlZERPTUNvb2tpZXMoY29va2llcygqdGhpcywgY29va2llVVJMKSk7CiAK
ICAgICByZXR1cm4gY2FjaGVkRE9NQ29va2llcygpOwogfQpAQCAtNDQ2MSw3ICs0NDYxLDcgQEAg
dm9pZCBEb2N1bWVudDo6c2V0Q29va2llKGNvbnN0IFN0cmluZyYgdgogICAgICAgICByZXR1cm47
CiAKICAgICBpbnZhbGlkYXRlRE9NQ29va2llQ2FjaGUoKTsKLSAgICBzZXRDb29raWVzKHRoaXMs
IGNvb2tpZVVSTCwgdmFsdWUpOworICAgIHNldENvb2tpZXMoKnRoaXMsIGNvb2tpZVVSTCwgdmFs
dWUpOwogfQogCiBTdHJpbmcgRG9jdW1lbnQ6OnJlZmVycmVyKCkgY29uc3QKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24gMjA0Njc2KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjQxNSw3ICs2NDE1LDcgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
TmV0dwogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyR2V0UmF3Q29va2llcyhj
b25zdCBVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGdldFJhd0Nvb2tpZXMoJmRvY3VtZW50KCksIHVybCwgY29va2llcyk7CisgICAgcmV0dXJu
IGdldFJhd0Nvb2tpZXMoZG9jdW1lbnQoKSwgdXJsLCBjb29raWVzKTsKIH0KICNlbmRpZgogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNw
cAkocmV2aXNpb24gMjA0Njc2KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxNiwxMCArNTE2LDEyIEBAIHZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjpnZXRDb29raWVzKEVycm8KIAogICAgIGZvciAoRnJhbWUqIGZy
YW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNl
TmV4dCgpKSB7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgp
OworICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg
ICAgZm9yIChhdXRvJiB1cmwgOiBhbGxSZXNvdXJjZXNVUkxzRm9yRnJhbWUoZnJhbWUpKSB7CiAg
ICAgICAgICAgICBWZWN0b3I8Q29va2llPiBkb2NDb29raWVzTGlzdDsKLSAgICAgICAgICAgIHJh
d0Nvb2tpZXNJbXBsZW1lbnRlZCA9IGdldFJhd0Nvb2tpZXMoZG9jdW1lbnQsIFVSTChQYXJzZWRV
UkxTdHJpbmcsIHVybCksIGRvY0Nvb2tpZXNMaXN0KTsKKyAgICAgICAgICAgIHJhd0Nvb2tpZXNJ
bXBsZW1lbnRlZCA9IGdldFJhd0Nvb2tpZXMoKmRvY3VtZW50LCBVUkwoUGFyc2VkVVJMU3RyaW5n
LCB1cmwpLCBkb2NDb29raWVzTGlzdCk7CiAKICAgICAgICAgICAgIGlmICghcmF3Q29va2llc0lt
cGxlbWVudGVkKSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlIG5lZWQgZHVwbGljYXRp
b24gY2hlY2tpbmcgZm9yIHRoZSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgY29va2llcy4KQEAg
LTU0NSw4ICs1NDcsMTAgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmdldENvb2tpZXMoRXJy
bwogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRlbGV0ZUNvb2tpZShFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgY29va2llTmFtZSwgY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgVVJMIHBh
cnNlZFVSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7Ci0gICAgZm9yIChGcmFtZSogZnJhbWUgPSAm
bV9wYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNl
TmV4dCgpKQotICAgICAgICBXZWJDb3JlOjpkZWxldGVDb29raWUoZnJhbWUtPmRvY3VtZW50KCks
IHBhcnNlZFVSTCwgY29va2llTmFtZSk7CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbV9wYWdl
Lm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgp
KSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQorICAg
ICAgICAgICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llKCpkb2N1bWVudCwgcGFyc2VkVVJMLCBjb29r
aWVOYW1lKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRSZXNvdXJj
ZVRyZWUoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6RnJh
bWVSZXNvdXJjZVRyZWU+JiBvYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29v
a2llSmFyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFy
LmNwcAkocmV2aXNpb24gMjA0Njc2KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUph
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDU1ICszNyw1MyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0YXRpYyBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoY29u
c3QgRG9jdW1lbnQqIGRvY3VtZW50KQorc3RhdGljIE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3Jr
aW5nQ29udGV4dChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgLy8gRklYTUU6IFJl
dHVybmluZyAwIG1lYW5zIGZhbGxpbmcgYmFjayB0byBkZWZhdWx0IGNvbnRleHQuIFRoYXQncyBu
b3QgYSBjaG9pY2UgdGhhdCBpcyBhcHByb3ByaWF0ZSB0byBkbyBhdCBydW50aW1lCi0gICAgaWYg
KCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgRnJhbWUqIGZyYW1lID0g
ZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsK
ICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBm
cmFtZS0+bG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKTsKIH0KIAotaW5saW5lIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50KQor
aW5saW5lIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oY29uc3QgRG9jdW1l
bnQmIGRvY3VtZW50KQogewogICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gbmV0d29y
a2luZ0NvbnRleHQoZG9jdW1lbnQpOwogICAgIHJldHVybiBjb250ZXh0ID8gY29udGV4dC0+c3Rv
cmFnZVNlc3Npb24oKSA6IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCk7CiB9CiAKLVN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29u
c3QgVVJMJiB1cmwpCitTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFVSTCYgdXJsKQogewotICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2ll
c1N0cmF0ZWd5KCktPmNvb2tpZXNGb3JET00oc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1
bWVudC0+Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgdXJsKTsKKyAgICByZXR1cm4gcGxhdGZvcm1T
dHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5jb29raWVzRm9yRE9NKHN0b3JhZ2VTZXNz
aW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgdXJsKTsKIH0K
IAotdm9pZCBzZXRDb29raWVzKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgY29va2llU3RyaW5nKQordm9pZCBzZXRDb29raWVzKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAg
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+c2V0Q29va2llc0Zyb21E
T00oc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1bWVudC0+Zmlyc3RQYXJ0eUZvckNvb2tp
ZXMoKSwgdXJsLCBjb29raWVTdHJpbmcpOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29r
aWVzU3RyYXRlZ3koKS0+c2V0Q29va2llc0Zyb21ET00oc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQp
LCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCB1cmwsIGNvb2tpZVN0cmluZyk7CiB9
CiAKLWJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50KQorYm9vbCBj
b29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+Y29va2llc0VuYWJsZWQoc3Rv
cmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1bWVudC0+Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwg
ZG9jdW1lbnQtPmNvb2tpZVVSTCgpKTsKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmNvb2tpZXNTdHJhdGVneSgpLT5jb29raWVzRW5hYmxlZChzdG9yYWdlU2Vzc2lvbihkb2N1bWVu
dCksIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIGRvY3VtZW50LmNvb2tpZVVSTCgp
KTsKIH0KIAotU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3Vt
ZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCitTdHJpbmcgY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkKIHsK
LSAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5jb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRvY3Vt
ZW50LT5maXJzdFBhcnR5Rm9yQ29va2llcygpLCB1cmwpOworICAgIHJldHVybiBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tp
ZXMoKSwgdXJsKTsKIH0KIAotYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50KiBkb2N1
bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiBjb29raWVzKQorYm9vbCBnZXRS
YXdDb29raWVzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3Rv
cjxDb29raWU+JiBjb29raWVzKQogewotICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
Y29va2llc1N0cmF0ZWd5KCktPmdldFJhd0Nvb2tpZXMoc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQp
LCBkb2N1bWVudC0+Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgdXJsLCBjb29raWVzKTsKKyAgICBy
ZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5nZXRSYXdDb29r
aWVzKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tp
ZXMoKSwgdXJsLCBjb29raWVzKTsKIH0KIAotdm9pZCBkZWxldGVDb29raWUoY29uc3QgRG9jdW1l
bnQqIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQor
dm9pZCBkZWxldGVDb29raWUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQogewogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5jb29raWVzU3RyYXRlZ3koKS0+ZGVsZXRlQ29va2llKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50
KSwgdXJsLCBjb29raWVOYW1lKTsKIH0KIAotdm9pZCBhZGRDb29raWUoY29uc3QgRG9jdW1lbnQq
IGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgQ29va2llJiBjb29raWUpCit2b2lkIGFk
ZENvb2tpZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBD
b29raWUmIGNvb2tpZSkKIHsKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0
ZWd5KCktPmFkZENvb2tpZShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIHVybCwgY29va2llKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmgJKHJldmlzaW9uIDIwNDY3NikKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzks
MTQgKzM5LDE0IEBAIHN0cnVjdCBDb29raWU7CiAvLyBGdW5jdGlvbnMgaW4gdGhpcyBmaWxlIHRh
a2UgYSBEb2N1bWVudCBwb2ludGVyIHRvIGRldGVybWluZSB3aGljaCBjb29raWUgc3RvcmFnZSB0
byB1c2UuIFdlIHNob3VsZCBtZXJnZSB0aGF0IGludG8gY2FsbCBzaXRlcywgYW5kIHVzZSBQbGF0
Zm9ybUNvb2tpZUphciBkaXJlY3RseS4KIAogLy8gVGhlc2UgdHdvIGZ1bmN0aW9ucyBpbXBsZW1l
bnQgZG9jdW1lbnQuY29va2llIEFQSSwgd2l0aCBzcGVjaWFsIHJ1bGVzIGZvciBIdHRwT25seSBj
b29raWVzLgotV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqLCBj
b25zdCBVUkwmKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhEb2N1bWVudCosIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKTsKK1dFQkNPUkVfRVhQT1JUIFN0
cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJik7CitXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNv
b2tpZVN0cmluZyk7CiAKLVdFQkNPUkVfRVhQT1JUIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3Qg
RG9jdW1lbnQqKTsKLVdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBEb2N1bWVudCosIGNvbnN0IFVSTCYpOwotV0VCQ09SRV9FWFBPUlQgYm9v
bCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50KiwgY29uc3QgVVJMJiwgVmVjdG9yPENvb2tp
ZT4mKTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50Kiwg
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKLVdFQkNPUkVfRVhQT1JUIHZv
aWQgYWRkQ29va2llKGNvbnN0IERvY3VtZW50KiwgY29uc3QgVVJMJiwgY29uc3QgQ29va2llJik7
CitXRUJDT1JFX0VYUE9SVCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50Jik7CitX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3Qg
RG9jdW1lbnQmLCBjb25zdCBVUkwmKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2ll
cyhjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+Jik7CitXRUJDT1JF
X0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgY29va2llTmFtZSk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENvb2tpZShj
b25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IENvb2tpZSYpOwogCiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAJKHJldmlzaW9uIDIwNDY3NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExLDcgKzExMSwx
MSBAQCBib29sIE5hdmlnYXRvcjo6Y29va2llRW5hYmxlZCgpIGNvbnN0CiAgICAgaWYgKG1fZnJh
bWUtPnBhZ2UoKSAmJiAhbV9mcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLmNvb2tpZUVuYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGNvb2tpZXNFbmFibGVkKG1f
ZnJhbWUtPmRvY3VtZW50KCkpOworICAgIGF1dG8qIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1l
bnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisg
ICAgcmV0dXJuIGNvb2tpZXNFbmFibGVkKCpkb2N1bWVudCk7CiB9CiAKIGJvb2wgTmF2aWdhdG9y
OjpqYXZhRW5hYmxlZCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDQ2NzYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBA
QAorMjAxNi0wOC0xOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFVzZSBEb2N1bWVudCYgaW5zdGVhZCBvZiBEb2N1bWVudCogd2hlbiBnZXR0
aW5nIGNvb2tpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MTAxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpk
ZWxldGVDb29raWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Y29va2llc0ZvclVSTCk6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdpblZpZXc6OnNldENvb2tpZXNGb3JVUkwpOgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW5WaWV3OjpnZXRBdXRoZW50aWNhdGlvbkluZm8pOgorCiAyMDE2LTA4LTE5ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFub3RoZXIgYnVpbGQgZml4
IGF0dGVtcHQgYWZ0ZXIgcjIwNDY2NSBhbmQgcjIwNDY2OC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5jcHAJKHJldmlzaW9uIDIwNDY3NikKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTU2LDkgKzU1Niw5IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6Z2V0Q29va2kKICAgICB9CiAKICAgICAvLyBUaGlzIHJldHVybnMgdGhlIHNhbWUgbGlz
dCBvZiBjb29raWVzIGFzIHdoZW4gZXZhbHVhdGluZyBgZG9jdW1lbnQuY29va2llc2AgaW4gSmF2
YVNjcmlwdC4KLSAgICBXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+Y29yZUZy
YW1lKCktPmRvY3VtZW50KCk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUtPmNvcmVGcmFt
ZSgpLT5kb2N1bWVudCgpOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGZvdW5kQ29va2ll
czsKLSAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKGRvY3VtZW50LCBkb2N1bWVudC0+Y29va2ll
VVJMKCksIGZvdW5kQ29va2llcyk7CisgICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhkb2N1bWVu
dCwgZG9jdW1lbnQuY29va2llVVJMKCksIGZvdW5kQ29va2llcyk7CiAKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkR2V0Q29va2llc0ZvckZyYW1lKGNhbGxiYWNrSUQsIGZv
dW5kQ29va2llcywgU3RyaW5nKCkpLCAwKTsKIH0KQEAgLTU3OSw4ICs1NzksOCBAQCB2b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRlbGV0ZUNvCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+Y29yZUZyYW1lKCkt
PmRvY3VtZW50KCk7Ci0gICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llKGRvY3VtZW50LCBkb2N1bWVu
dC0+Y29va2llVVJMKCksIGNvb2tpZU5hbWUpOworICAgIGF1dG8mIGRvY3VtZW50ID0gKmZyYW1l
LT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBXZWJDb3JlOjpkZWxldGVDb29raWUoZG9j
dW1lbnQsIGRvY3VtZW50LmNvb2tpZVVSTCgpLCBjb29raWVOYW1lKTsKIAogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWREZWxldGVDb29raWUoY2FsbGJhY2tJRCwgU3RyaW5n
KCkpLCAwKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAJKHJldmlzaW9uIDIwNDY3NikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxNSwx
MiArMTYxNSwxMiBAQCBTdHJpbmcgUGx1Z2luVmlldzo6cHJveGllc0ZvclVSTChjb25zdCBTCiAK
IFN0cmluZyBQbHVnaW5WaWV3Ojpjb29raWVzRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
KQogewotICAgIHJldHVybiBjb29raWVzKCZtX3BsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCksIFVS
TChVUkwoKSwgdXJsU3RyaW5nKSk7CisgICAgcmV0dXJuIGNvb2tpZXMobV9wbHVnaW5FbGVtZW50
LT5kb2N1bWVudCgpLCBVUkwoVVJMKCksIHVybFN0cmluZykpOwogfQogCiB2b2lkIFBsdWdpblZp
ZXc6OnNldENvb2tpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgY29va2llU3RyaW5nKQogewotICAgIHNldENvb2tpZXMoJm1fcGx1Z2luRWxlbWVudC0+ZG9j
dW1lbnQoKSwgVVJMKFVSTCgpLCB1cmxTdHJpbmcpLCBjb29raWVTdHJpbmcpOworICAgIHNldENv
b2tpZXMobV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLCBVUkwoVVJMKCksIHVybFN0cmluZyks
IGNvb2tpZVN0cmluZyk7CiB9CiAKIGJvb2wgUGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25J
bmZvKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlLCBTdHJpbmcmIHVzZXJu
YW1lLCBTdHJpbmcmIHBhc3N3b3JkKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjA0
Njc2KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTYtMDgtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgRG9jdW1lbnQmIGluc3RlYWQgb2YgRG9jdW1lbnQq
IHdoZW4gZ2V0dGluZyBjb29raWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjEwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpnZXRD
b29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojpz
ZXRDb29raWVzKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbToK
KyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IGdldFZhcmlhYmxlOmZvclVSTDp2YWx1
ZTpsZW5ndGg6XSk6CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBzZXRWYXJpYWJs
ZTpmb3JVUkw6dmFsdWU6bGVuZ3RoOl0pOgorCiAyMDE2LTA4LTE2ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBkaWRMYXlvdXQoTGF5b3V0
TWlsZXN0b25lcykgdG8gZGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoKSwgYW5kIHJlbGF0ZWQgV0sy
IGZ1bmN0aW9ucwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblZpZXcubW0JKHJldmlzaW9uIDIwNDY3NikKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
MTI3LDcgKzIxMjcsMTEgQEAgLSAoTlBFcnJvcilnZXRWYXJpYWJsZTooTlBOVVJMVmFyaWFibGUp
dgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAo
RnJhbWUqIGZyYW1lID0gY29yZShbc2VsZiB3ZWJGcmFtZV0pKSB7Ci0gICAgICAgICAgICAgICAg
U3RyaW5nIGNvb2tpZVN0cmluZyA9IGNvb2tpZXMoZnJhbWUtPmRvY3VtZW50KCksIFVSTCk7IAor
ICAgICAgICAgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAg
ICAgICAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgICAgICBTdHJpbmcgY29va2llU3RyaW5nID0gY29va2llcygqZG9jdW1lbnQs
IFVSTCk7CiAgICAgICAgICAgICAgICAgQ1N0cmluZyBjb29raWVTdHJpbmdVVEY4ID0gY29va2ll
U3RyaW5nLnV0ZjgoKTsKICAgICAgICAgICAgICAgICBpZiAoY29va2llU3RyaW5nVVRGOC5pc051
bGwoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CkBA
IC0yMTc3LDcgKzIxODEsOCBAQCAtIChOUEVycm9yKXNldFZhcmlhYmxlOihOUE5VUkxWYXJpYWJs
ZSl2CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
IChGcmFtZSogZnJhbWUgPSBjb3JlKFtzZWxmIHdlYkZyYW1lXSkpIHsKLSAgICAgICAgICAgICAg
ICBzZXRDb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCBVUkwsIGNvb2tpZVN0cmluZyk7CisgICAg
ICAgICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCisgICAg
ICAgICAgICAgICAgICAgIHNldENvb2tpZXMoKmRvY3VtZW50LCBVUkwsIGNvb2tpZVN0cmluZyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCShyZXZpc2lv
biAyMDQ2NzYpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1MjUsNyArMTUyNSwxMSBA
QCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Z2V0Q29vCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gY29yZShbbV9wbHVnaW5WaWV3
IHdlYkZyYW1lXSkpIHsKLSAgICAgICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IGNvb2tpZXMoZnJh
bWUtPmRvY3VtZW50KCksIHVybCk7IAorICAgICAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5k
b2N1bWVudCgpOworICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBjb29raWVzKCpkb2N1bWVudCwg
dXJsKTsKICAgICAgICAgV1RGOjpDU3RyaW5nIGNvb2tpZVN0cmluZ1VURjggPSBjb29raWVTdHJp
bmcudXRmOCgpOwogICAgICAgICBpZiAoY29va2llU3RyaW5nVVRGOC5pc051bGwoKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE1NTIsOCArMTU1NiwxMiBAQCBib29sIE5ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0Q29vCiAgICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcg
PSBTdHJpbmc6OmZyb21VVEY4KGNvb2tpZXNEYXRhLCBjb29raWVzTGVuZ3RoKTsKICAgICAgICAg
aWYgKCFjb29raWVTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAot
ICAgICAgICBXZWJDb3JlOjpzZXRDb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCB1cmwsIGNvb2tp
ZVN0cmluZyk7CisKKyAgICAgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsK
KyAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICBXZWJDb3JlOjpzZXRDb29raWVzKCpkb2N1bWVudCwgdXJsLCBjb29raWVTdHJpbmcpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIwNDY3NikKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDE2LTA4LTE5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIERvY3VtZW50JiBpbnN0ZWFkIG9mIERv
Y3VtZW50KiB3aGVuIGdldHRpbmcgY29va2llcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorCiAyMDE2LTA4LTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBkaWRM
YXlvdXQoTGF5b3V0TWlsZXN0b25lcykgdG8gZGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoKSwgYW5k
IHJlbGF0ZWQgV0syIGZ1bmN0aW9ucwpJbmRleDogU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCShyZXZpc2lvbiAyMDQ2NzYpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgxLDggKzEyODEsOCBAQCBO
UEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKE5QTlVSCiAgICAgICAgIFVSTCB1KG1f
cGFyZW50RnJhbWUtPmRvY3VtZW50KCktPmJhc2VVUkwoKSwgdXJsKTsKICAgICAgICAgaWYgKHUu
aXNWYWxpZCgpKSB7CiAgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBnZXRGcmFtZShwYXJlbnRG
cmFtZSgpLCBtX2VsZW1lbnQpOwotICAgICAgICAgICAgaWYgKGZyYW1lKSB7Ci0gICAgICAgICAg
ICAgICAgY29uc3QgQ1N0cmluZyBjb29raWVTdHIgPSBjb29raWVzKGZyYW1lLT5kb2N1bWVudCgp
LCB1KS51dGY4KCk7CisgICAgICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50KCkp
IHsKKyAgICAgICAgICAgICAgICBjb25zdCBDU3RyaW5nIGNvb2tpZVN0ciA9IGNvb2tpZXMoKmZy
YW1lLT5kb2N1bWVudCgpLCB1KS51dGY4KCk7CiAgICAgICAgICAgICAgICAgaWYgKCFjb29raWVT
dHIuaXNOdWxsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IHNpemUgPSBjb29r
aWVTdHIubGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0
PGNoYXIqPihOUE5fTWVtQWxsb2Moc2l6ZSsxKSk7CkBAIC0xMzQzLDggKzEzNDMsOCBAQCBOUEVy
cm9yIFBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKE5QTlVSCiAgICAgICAgIGlmICh1LmlzVmFs
aWQoKSkgewogICAgICAgICAgICAgY29uc3QgU3RyaW5nIGNvb2tpZVN0ciA9IFN0cmluZzo6ZnJv
bVVURjgodmFsdWUsIGxlbik7CiAgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBnZXRGcmFtZShw
YXJlbnRGcmFtZSgpLCBtX2VsZW1lbnQpOwotICAgICAgICAgICAgaWYgKGZyYW1lICYmICFjb29r
aWVTdHIuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHNldENvb2tpZXMoZnJhbWUtPmRvY3Vt
ZW50KCksIHUsIGNvb2tpZVN0cik7CisgICAgICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmRv
Y3VtZW50KCkgJiYgIWNvb2tpZVN0ci5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc2V0Q29v
a2llcygqZnJhbWUtPmRvY3VtZW50KCksIHUsIGNvb2tpZVN0cik7CiAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CiAgICAgICAgIGJyZWFrOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>