<?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>165672</bug_id>
          
          <creation_ts>2016-12-09 12:25:07 -0800</creation_ts>
          <short_desc>GC might be forced to look at a nuked object due to ordering of AllocatePropertyStorage, MaterializeNewObject, and PutStructure</short_desc>
          <delta_ts>2016-12-11 17:17:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1258240</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-12-09 12:25:07 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258304</commentid>
    <comment_count>1</comment_count>
      <attachid>296691</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-12-09 13:56:26 -0800</bug_when>
    <thetext>Created attachment 296691
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258306</commentid>
    <comment_count>2</comment_count>
      <attachid>296692</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-12-09 13:57:08 -0800</bug_when>
    <thetext>Created attachment 296692
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258311</commentid>
    <comment_count>3</comment_count>
      <attachid>296692</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-09 13:59:17 -0800</bug_when>
    <thetext>Comment on attachment 296692
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258484</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-12-09 17:23:11 -0800</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/209638</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258932</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-12-11 17:17:19 -0800</bug_when>
    <thetext>*** Bug 165674 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296691</attachid>
            <date>2016-12-09 13:56:26 -0800</date>
            <delta_ts>2016-12-09 13:57:08 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>30618</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5NjI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc5IEBA
CisyMDE2LTEyLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0MgbWlnaHQgYmUgZm9yY2VkIHRvIGxvb2sgYXQgYSBudWtlZCBvYmplY3QgZHVlIHRvIG9yZGVy
aW5nIG9mIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBNYXRlcmlhbGl6ZU5ld09iamVjdCwgYW5k
IFB1dFN0cnVjdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY1NjcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBzaGFkeSBzdHVmZiBp
biBhIHByb3BlcnR5IHB1dCBoYXBwZW5zIGFmdGVyIHRoZQorICAgICAgICBQdXRCeU9mZnNldCwg
c2luY2UgdGhlIFB1dEJ5T2Zmc2V0IGlzIHRoZSBwbGFjZSB3aGVyZSB3ZSBtYXRlcmlhbGl6ZS4g
TW9yZSBnZW5lcmFsbHksIHdlCisgICAgICAgIHNob3VsZCBzdHJpdmUgdG8gbm90IGhhdmUgYW55
IGZlbmNlcG9zdHMgYmV0d2VlbiBOb2RlcyB3aGVyZSBhIEdDIHdvdWxkIGJlIGlsbGVnYWwuCisg
ICAgICAgIAorICAgICAgICBUaGlzIGdldHMgdXMgbW9zdCBvZiB0aGUgd2F5IHRoZXJlIGJ5IHNl
cGFyYXRpbmcgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseSBmcm9tCisgICAgICAgIFtSZV1B
bGxvY2F0ZVByb3BlcnR5U3RvcmFnZS4gQSB0cmFuc2l0aW9uaW5nIHB1dCB3aWxsIG5vdyBsb29r
IHNvbWV0aGluZyBsaWtlOgorICAgICAgICAKKyAgICAgICAgICAgIEdldEJ1dHRlcmZseQorICAg
ICAgICAgICAgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZQorICAgICAgICAgICAgUHV0QnlPZmZz
ZXQKKyAgICAgICAgICAgIE51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkKKyAgICAgICAgICAg
IFB1dFN0cnVjdHVyZQorICAgICAgICAKKyAgICAgICAgUHJldmlvdXNseSB0aGUgc3RydWN0dXJl
IHdvdWxkIGdldCBudWtlZCBieSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBzbyBpZiB3ZSBw
bGFjZWQKKyAgICAgICAgYW4gb2JqZWN0IG1hdGVyaWFsaXphdGlvbiBqdXN0IGFmdGVyIGl0IChi
ZWZvcmUgdGhlIFB1dEJ5T2Zmc2V0KSB0aGVuIGFueSBHQyB0aGF0CisgICAgICAgIGNvbXBsZXRl
ZCBhdCB0aGF0IHNhZmVwb2ludCB3b3VsZCBlbmNvdW50ZXIgYW4gdW5yZXNvbHZlZCB2aXNpdCBy
YWNlIGR1ZSB0byBzZWVpbmcgYQorICAgICAgICBudWtlZCBzdHJ1Y3R1cmUuIFdlIGNhbm5vdCBo
YXZlIG51a2VkIHN0cnVjdHVyZXMgYXQgc2FmZXBvaW50cywgYW5kIHRoaXMgY2hhbmdlIG1ha2Vz
CisgICAgICAgIHN1cmUgdGhhdCB3ZSBkb24ndCAtIGF0IGxlYXN0IHVudGlsIHNvbWVvbmUgdHJp
ZXMgdG8gc2luayB0byB0aGUgUHV0U3RydWN0dXJlLiBXZSB3aWxsCisgICAgICAgIGV2ZW50dWFs
bHkgaGF2ZSB0byBjcmVhdGUgYSBjb21iaW5lZCBTZXRTdHJ1Y3R1cmVBbmRCdXR0ZXJmbHkgbm9k
ZSwgYnV0IHdlIGRvbid0IG5lZWQgaXQKKyAgICAgICAgeWV0LgorICAgICAgICAKKyAgICAgICAg
VGhpcyBhbHNvIGZpeGVzIGEgZ29vZiB3aGVyZSB0aGUgREZHJ3MgQWxsb2NhdGVQcm9wZXJ0eVN0
b3JhZ2Ugd2FzIG51bGxpbmcgdGhlIHN0cnVjdHVyZQorICAgICAgICBpbnN0ZWFkIG9mIG51a2lu
ZyBpdC4gVGhpcyBjb3VsZCBlYXNpbHkgaGF2ZSBjYXVzZWQgbWFueSBjcmFzaGVzIGluIEdDLgor
CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1
dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVQdXRCeUlkKToKKyAgICAgICAgKiBk
ZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAg
ICAgICAqIGRmZy9ERkdDbG9iYmVyc0V4aXRTdGF0ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Y2xvYmJlcnNFeGl0U3RhdGUpOgorICAgICAgICAqIGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmVtaXRQdXRC
eU9mZnNldCk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHTWF5RXhp
dC5jcHA6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09w
ZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICog
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
U2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdl
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU51a2VTdHJ1Y3R1
cmVBbmRTZXRCdXR0ZXJmbHkpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
KToKKyAgICAgICAgKiBkZmcvREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAqIGRmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlOjppZGVudGlmeVJlZHVuZGFudFN0cnVjdHVyZUNo
ZWNrcyk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU51a2VTdHJ1Y3R1cmVBbmRT
ZXRCdXR0ZXJmbHkpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzdG9y
YWdlRm9yVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6cmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSk6CisgICAgICAgIChKU0M6OkZUTDo6
REZHOjpMb3dlckRGR1RvQjM6OmFsbG9jYXRlUHJvcGVydHlTdG9yYWdlV2l0aFNpemVJbXBsKToK
KyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpyZWNvbXB1dGVE
ZXBlbmRlbnRPcHRpb25zKToKKwogMjAxNi0xMi0wOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGRpc2FibGUgY29uY3VycmVudCBHQyBmb3Ig
cmVhbC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDIwOTYyMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjMwOSw2ICsyMzA5LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeQogICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAgIGNhc2UgQWxsb2Nh
dGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgor
ICAgIGNhc2UgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseToKICAgICAgICAgLy8gRklYTUU6
IFdlIGRvbid0IG1vZGVsIHRoZSBmYWN0IHRoYXQgdGhlIHN0cnVjdHVyZUlEIGlzIG51a2VkLCBz
aW1wbHkgYmVjYXVzZSBjdXJyZW50bHkKICAgICAgICAgLy8gbm9ib2R5IHdvdWxkIGN1cnJlbnRs
eSBiZW5lZml0IGZyb20gaGF2aW5nIHRoYXQgaW5mb3JtYXRpb24uIEJ1dCBpdCdzIGEgYnVnIG5v
bmV0aGVsZXNzLgogICAgICAgICBmb3JOb2RlKG5vZGUpLmNsZWFyKCk7IC8vIFRoZSByZXN1bHQg
aXMgbm90IGEgSlMgdmFsdWUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjA5NjIzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1
OTQsMTIgKzM1OTQsMjIgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlUHV0QnlJZCgKICAg
ICAgICAgZGF0YS0+aW5mZXJyZWRUeXBlID0gdmFyaWFudC5yZXF1aXJlZFR5cGUoKTsKICAgICAg
ICAgbV9ncmFwaC5yZWdpc3RlckluZmVycmVkVHlwZShkYXRhLT5pbmZlcnJlZFR5cGUpOwogICAg
ICAgICAKKyAgICAgICAgLy8gTk9URTogV2UgY291bGQgR0MgYXQgdGhpcyBwb2ludCBiZWNhdXNl
IHNvbWVvbmUgY291bGQgaW5zZXJ0IGFuIG9wZXJhdGlvbiB0aGF0IEdDcy4KKyAgICAgICAgLy8g
VGhhdCdzIGZpbmUgYmVjYXVzZToKKyAgICAgICAgLy8gLSBUaGluZ3MgYWxyZWFkeSBpbiB0aGUg
c3RydWN0dXJlIHdpbGwgZ2V0IHNjYW5uZWQgYmVjYXVzZSB3ZSBoYXZlbid0IG1lc3NlZCB3aXRo
CisgICAgICAgIC8vICAgdGhlIG9iamVjdCB5ZXQuCisgICAgICAgIC8vIC0gVGhlIHZhbHVlIHdl
IGFyZSBmaXhpbmcgdG8gcHV0IGlzIGdvaW5nIHRvIGJlIGtlcHQgbGl2ZSBieSBPU1IgZXhpdCBo
YW5kbGluZy4gU28KKyAgICAgICAgLy8gICBpZiB0aGUgR0MgZG9lcyBhIGNvbnNlcnZhdGl2ZSBz
Y2FuIGhlcmUgaXQgd2lsbCBzZWUgdGhlIG5ldyB2YWx1ZS4KKyAgICAgICAgCiAgICAgICAgIGFk
ZFRvR3JhcGgoCiAgICAgICAgICAgICBQdXRCeU9mZnNldCwKICAgICAgICAgICAgIE9wSW5mbyhk
YXRhKSwKICAgICAgICAgICAgIHByb3BlcnR5U3RvcmFnZSwKICAgICAgICAgICAgIGJhc2UsCiAg
ICAgICAgICAgICB2YWx1ZSk7CisgICAgICAgIAorICAgICAgICBpZiAodmFyaWFudC5yZWFsbG9j
YXRlc1N0b3JhZ2UoKSkKKyAgICAgICAgICAgIGFkZFRvR3JhcGgoTnVrZVN0cnVjdHVyZUFuZFNl
dEJ1dHRlcmZseSwgYmFzZSwgcHJvcGVydHlTdG9yYWdlKTsKIAogICAgICAgICAvLyBGSVhNRTog
UHV0U3RydWN0dXJlIGdvZXMgbGFzdCB1bnRpbCB3ZSBmaXggZWl0aGVyCiAgICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5MjEgb3IKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZpc2lvbiAyMDk2MjMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkod29ya2luZyBj
b3B5KQpAQCAtODkxLDcgKzg5MSw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6Ci0gICAg
ICAgIHJlYWQoSlNPYmplY3RfYnV0dGVyZmx5KTsgLy8gVGhpcyBpcyBhIHN0b3JlLXN0b3JlIGZl
bmNlLgorICAgICAgICByZWFkKEpTT2JqZWN0X2J1dHRlcmZseSk7CiAgICAgICAgIHdyaXRlKEpT
Q2VsbF9zdHJ1Y3R1cmVJRCk7CiAgICAgICAgIHdyaXRlKEpTQ2VsbF90eXBlSW5mb1R5cGUpOwog
ICAgICAgICB3cml0ZShKU0NlbGxfdHlwZUluZm9GbGFncyk7CkBAIC04OTksMTYgKzg5OSwxNSBA
QCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAgICAgICAgIHJldHVy
bjsKICAgICAgICAgCiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKLSAgICAgICAg
d3JpdGUoSlNPYmplY3RfYnV0dGVyZmx5KTsKLSAgICAgICAgd3JpdGUoSlNDZWxsX3N0cnVjdHVy
ZUlEKTsKLSAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihCdXR0ZXJmbHlMb2MsIEpTT2JqZWN0X2J1
dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CisgICAgY2FzZSBSZWFs
bG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgICAgICByZWFkKEhlYXBPYmplY3RDb3VudCk7Cisg
ICAgICAgIHdyaXRlKEhlYXBPYmplY3RDb3VudCk7CiAgICAgICAgIHJldHVybjsKICAgICAgICAg
Ci0gICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgotICAgICAgICByZWFkKEpTT2Jq
ZWN0X2J1dHRlcmZseSk7CisgICAgY2FzZSBOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5Ogog
ICAgICAgICB3cml0ZShKU09iamVjdF9idXR0ZXJmbHkpOwogICAgICAgICB3cml0ZShKU0NlbGxf
c3RydWN0dXJlSUQpOwotICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEJ1dHRlcmZseUxvYywgSlNP
YmplY3RfYnV0dGVyZmx5LCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAg
ICAgZGVmKEhlYXBMb2NhdGlvbihCdXR0ZXJmbHlMb2MsIEpTT2JqZWN0X2J1dHRlcmZseSwgbm9k
ZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlLT5jaGlsZDIoKS5ub2RlKCkpKTsKICAgICAgICAg
cmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIEdldEJ1dHRlcmZseToKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcnNFeGl0U3RhdGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcnNFeGl0U3RhdGUuY3BwCShyZXZp
c2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJzRXhp
dFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOCBAQCBib29sIGNsb2JiZXJz
RXhpdFN0YXRlKEdyYXBoJiBncmFwaCwgTm9kCiAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKICAg
ICBjYXNlIFN0b3JlQmFycmllcjoKICAgICBjYXNlIEZlbmNlZFN0b3JlQmFycmllcjoKKyAgICBj
YXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5
U3RvcmFnZToKICAgICAgICAgLy8gVGhlc2UgZG8gY2xvYmJlciBtZW1vcnksIGJ1dCBub3RoaW5n
IHRoYXQgaXMgb2JzZXJ2YWJsZS4gSXQgbWF5IGJlIG5pY2UgdG8gc2VwYXJhdGUgdGhlCiAgICAg
ICAgIC8vIGhlYXBzIGludG8gdGhvc2UgdGhhdCBhcmUgb2JzZXJ2YWJsZSBhbmQgdGhvc2UgdGhh
dCBhcmVuJ3QsIGJ1dCB3ZSBkb24ndCBkbyB0aGF0IHJpZ2h0IG5vdy4KICAgICAgICAgLy8gRklY
TUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg0NDAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5n
UGhhc2UuY3BwCShyZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzY2LDYgKzc2
Niw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCBvcmln
aW4uZXhpdE9LKTsKICAgICAgICAgYm9vbCBjYW5FeGl0ID0gdHJ1ZTsKKyAgICAgICAgYm9vbCBk
aWRBbGxvY2F0ZVN0b3JhZ2UgPSBmYWxzZTsKIAogICAgICAgICBpZiAoaXNJbmxpbmVPZmZzZXQo
dmFyaWFudC5vZmZzZXQoKSkpCiAgICAgICAgICAgICBwcm9wZXJ0eVN0b3JhZ2UgPSBjaGlsZEVk
Z2U7CkBAIC03NzcsMTkgKzc3OCwyMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgQVNTRVJUKCFp
c0lubGluZU9mZnNldCh2YXJpYW50Lm9mZnNldCgpKSk7CiAgICAgICAgICAgICBOb2RlKiBhbGxv
Y2F0ZVByb3BlcnR5U3RvcmFnZSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAg
ICAgICAgICAgaW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2Us
Ci0gICAgICAgICAgICAgICAgb3JpZ2luLnRha2VWYWxpZEV4aXQoY2FuRXhpdCksIE9wSW5mbyh0
cmFuc2l0aW9uKSwgY2hpbGRFZGdlKTsKKyAgICAgICAgICAgICAgICBvcmlnaW4sIE9wSW5mbyh0
cmFuc2l0aW9uKSwgY2hpbGRFZGdlKTsKICAgICAgICAgICAgIHByb3BlcnR5U3RvcmFnZSA9IEVk
Z2UoYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UpOworICAgICAgICAgICAgZGlkQWxsb2NhdGVTdG9y
YWdlID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVCh2YXJpYW50
Lm9sZFN0cnVjdHVyZUZvclRyYW5zaXRpb24oKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSk7CiAgICAg
ICAgICAgICBBU1NFUlQodmFyaWFudC5uZXdTdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHko
KSA+IHZhcmlhbnQub2xkU3RydWN0dXJlRm9yVHJhbnNpdGlvbigpLT5vdXRPZkxpbmVDYXBhY2l0
eSgpKTsKICAgICAgICAgICAgIEFTU0VSVCghaXNJbmxpbmVPZmZzZXQodmFyaWFudC5vZmZzZXQo
KSkpOwogCiAgICAgICAgICAgICBOb2RlKiByZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlID0gbV9p
bnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKLSAgICAgICAgICAgICAgICBpbmRleEluQmxvY2ssIFNw
ZWNOb25lLCBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBvcmlnaW4udGFrZVZhbGlkRXhpdChj
YW5FeGl0KSwKKyAgICAgICAgICAgICAgICBpbmRleEluQmxvY2ssIFNwZWNOb25lLCBSZWFsbG9j
YXRlUHJvcGVydHlTdG9yYWdlLCBvcmlnaW4sCiAgICAgICAgICAgICAgICAgT3BJbmZvKHRyYW5z
aXRpb24pLCBjaGlsZEVkZ2UsCiAgICAgICAgICAgICAgICAgRWRnZShtX2luc2VydGlvblNldC5p
bnNlcnROb2RlKAogICAgICAgICAgICAgICAgICAgICBpbmRleEluQmxvY2ssIFNwZWNOb25lLCBH
ZXRCdXR0ZXJmbHksIG9yaWdpbiwgY2hpbGRFZGdlKSkpOwogICAgICAgICAgICAgcHJvcGVydHlT
dG9yYWdlID0gRWRnZShyZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKTsKKyAgICAgICAgICAgIGRp
ZEFsbG9jYXRlU3RvcmFnZSA9IHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICBTdG9yYWdlQWNj
ZXNzRGF0YSYgZGF0YSA9ICptX2dyYXBoLm1fc3RvcmFnZUFjY2Vzc0RhdGEuYWRkKCk7CkBAIC04
MDAsNiArODAzLDEyIEBAIHByaXZhdGU6CiAgICAgICAgIG5vZGUtPm9yaWdpbi5leGl0T0sgPSBj
YW5FeGl0OwogCiAgICAgICAgIGlmICh2YXJpYW50LmtpbmQoKSA9PSBQdXRCeUlkVmFyaWFudDo6
VHJhbnNpdGlvbikgeworICAgICAgICAgICAgaWYgKGRpZEFsbG9jYXRlU3RvcmFnZSkgeworICAg
ICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAg
ICAgIGluZGV4SW5CbG9jayArIDEsIFNwZWNOb25lLCBOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVy
Zmx5LAorICAgICAgICAgICAgICAgICAgICBvcmlnaW4ud2l0aEludmFsaWRFeGl0KCksIGNoaWxk
RWRnZSwgcHJvcGVydHlTdG9yYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAg
ICAgICAgICAgLy8gRklYTUU6IFB1dFN0cnVjdHVyZSBnb2VzIGxhc3QgdW50aWwgd2UgZml4IGVp
dGhlcgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjkyMSBvcgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjkyNC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAJKHJldmlzaW9uIDIwOTYyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY3LDYgKzI2Nyw3IEBAIGJvb2wgZG9l
c0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldER5bmFtaWNWYXI6CiAg
ICAgY2FzZSBQdXREeW5hbWljVmFyOgogICAgIGNhc2UgUmVzb2x2ZVNjb3BlOgorICAgIGNhc2Ug
TnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTk5LDYg
KzExOTksMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihu
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgIGNhc2UgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseTogeworICAgICAg
ICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CiAKICAgICAgICAgY2FzZSBUcnlHZXRCeUlkOiB7CiAgICAgICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUNlbGwoKSkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWF5RXhpdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXlFeGl0LmNwcAkocmV2aXNpb24gMjA5NjIzKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXlFeGl0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTEsNiArOTEsNyBAQCBFeGl0TW9kZSBtYXlFeGl0SW1wbChHcmFwaCYgZ3JhcGgsIE5v
ZGUqCiAgICAgY2FzZSBQdXRCeU9mZnNldDoKICAgICBjYXNlIFB1dENsb3N1cmVWYXI6CiAgICAg
Y2FzZSBSZWNvcmRSZWdFeHBDYWNoZWRSZXN1bHQ6CisgICAgY2FzZSBOdWtlU3RydWN0dXJlQW5k
U2V0QnV0dGVyZmx5OgogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgU3RyQ2F0OgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMjA5NjIzKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDgsNiArMjA4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAg
IG1hY3JvKEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJl
c3VsdFN0b3JhZ2UpIFwKICAgICBtYWNybyhSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBOb2Rl
TXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdFN0b3JhZ2UpIFwKICAgICBtYWNybyhHZXRCdXR0ZXJm
bHksIE5vZGVSZXN1bHRTdG9yYWdlKSBcCisgICAgbWFjcm8oTnVrZVN0cnVjdHVyZUFuZFNldEJ1
dHRlcmZseSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQXJyYXksIE5vZGVN
dXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhBcnJheWlmeSwgTm9kZU11c3RHZW5lcmF0ZSkgXAog
ICAgIG1hY3JvKEFycmF5aWZ5VG9TdHJ1Y3R1cmUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24g
MjA5NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQ4MCw3ICsxNDgwLDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblR5cGVPZk9iagogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihUeXBl
b2ZUeXBlOjpPYmplY3QpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9j
YXRlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eShFeGVjU3RhdGUqIGV4ZWMpCitj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdl
V2l0aEluaXRpYWxDYXBhY2l0eShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBA
IC0xNDg5LDcgKzE0ODksNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRl
UHJvCiAgICAgICAgIEJ1dHRlcmZseTo6Y3JlYXRlVW5pbml0aWFsaXplZCh2bSwgMCwgMCwgaW5p
dGlhbE91dE9mTGluZUNhcGFjaXR5LCBmYWxzZSwgMCkpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKEV4ZWNTdGF0ZSogZXhlYywgc2l6
ZV90IG5ld1NpemUpCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxl
UHJvcGVydHlTdG9yYWdlKEV4ZWNTdGF0ZSogZXhlYywgc2l6ZV90IG5ld1NpemUpCiB7CiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2
bSwgZXhlYyk7CkBAIC0xNDk4LDYgKzE0OTgsMjUgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVy
YXRpb25BbGxvY2F0ZVBybwogICAgICAgICBCdXR0ZXJmbHk6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQo
dm0sIDAsIDAsIG5ld1NpemUsIGZhbHNlLCAwKSk7CiB9CiAKK2NoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0
eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QpCit7CisgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CisK
KyAgICBBU1NFUlQoIW9iamVjdC0+c3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFjaXR5KCkpOwor
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPigKKyAgICAgICAgb2JqZWN0LT5hbGxv
Y2F0ZU1vcmVPdXRPZkxpbmVTdG9yYWdlKHZtLCAwLCBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHkp
KTsKK30KKworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9w
ZXJ0eVN0b3JhZ2UoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBzaXplX3QgbmV3
U2l6ZSkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPigKKyAgICAgICAgb2JqZWN0LT5hbGxvY2F0ZU1vcmVPdXRPZkxpbmVTdG9yYWdlKHZtLCBv
YmplY3QtPnN0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpLCBuZXdTaXplKSk7Cit9CisK
IGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRW5zdXJlSW50MzIoRXhlY1N0YXRlKiBleGVj
LCBKU0NlbGwqIGNlbGwpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAyMDk2MjMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5
KQpAQCAtMTQ2LDggKzE0NiwxMCBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmpl
Y3RJc09iCiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RJc0Z1bmN0aW9uKEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZk9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIGludDMyX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkFsbG9jYXRlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eShFeGVjU3RhdGUqKSBX
VEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlKEV4ZWNTdGF0ZSosIHNpemVfdCBuZXdTaXplKSBXVEZfSU5URVJOQUw7CitjaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlV2l0
aEluaXRpYWxDYXBhY2l0eShFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlKEV4ZWNTdGF0ZSos
IHNpemVfdCBuZXdTaXplKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHkoRXhl
Y1N0YXRlKiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZShFeGVjU3RhdGUqLCBKU09iamVj
dCosIHNpemVfdCBuZXdTaXplKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkVuc3VyZUludDMyKEV4ZWNTdGF0ZSosIEpTQ2VsbCopOwogY2hhciogSklUX09QRVJB
VElPTiBvcGVyYXRpb25FbnN1cmVEb3VibGUoRXhlY1N0YXRlKiwgSlNDZWxsKik7CiBjaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZUNvbnRpZ3VvdXMoRXhlY1N0YXRlKiwgSlNDZWxs
Kik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjA5NjIzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExMDUsNiArMTEwNSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNh
c2UgTG9hZFZhcmFyZ3M6CiAgICAgICAgIGNhc2UgRm9yd2FyZFZhcmFyZ3M6CiAgICAgICAgIGNh
c2UgUHV0RHluYW1pY1ZhcjoKKyAgICAgICAgY2FzZSBOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVy
Zmx5OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgLy8gVGhpcyBn
ZXRzIGlnbm9yZWQgYmVjYXVzZSBpdCBvbmx5IHByZXRlbmRzIHRvIHByb2R1Y2UgYSB2YWx1ZS4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCShy
ZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzg5LDYgKzM4OSw4IEBAIGJvb2wgc2FmZVRvRXhl
Y3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3QKIAogICAgIGNhc2UgU3RvcmVCYXJyaWVyOgogICAg
IGNhc2UgRmVuY2VkU3RvcmVCYXJyaWVyOgorICAgIGNhc2UgUHV0U3RydWN0dXJlOgorICAgIGNh
c2UgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseToKICAgICAgICAgLy8gV2UgY29uc2VydmF0
aXZlbHkgYXNzdW1lIHRoYXQgdGhlc2UgY2Fubm90IGJlIHB1dCBhbnl3aGVyZSwgd2hpY2ggZm9y
Y2VzIHRoZSBjb21waWxlciB0bwogICAgICAgICAvLyBrZWVwIHRoZW0gZXhhY3RseSB3aGVyZSB0
aGV5IHdlcmUuIFRoaXMgaXMgc29ydCBvZiBvdmVya2lsbCBzaW5jZSB0aGUgY2xvYmJlcml6ZSBl
ZmZlY3RzCiAgICAgICAgIC8vIGFscmVhZHkgZm9yY2UgdGhlc2UgdGhpbmdzIHRvIGJlIG9yZGVy
ZWQgcHJlY2lzZWx5LiBJJ20ganVzdCBub3QgY29uZmlkZW50IGVub3VnaCBpbiBteQpAQCAtNDEz
LDcgKzQxNSw2IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3QKICAg
ICAgICAgcmV0dXJuIG5vZGUtPmFycmF5TW9kZSgpLm1vZGVGb3JQdXQoKS5hbHJlYWR5Q2hlY2tl
ZCgKICAgICAgICAgICAgIGdyYXBoLCBub2RlLCBzdGF0ZS5mb3JOb2RlKGdyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDApKSk7CiAKLSAgICBjYXNlIFB1dFN0cnVjdHVyZToKICAgICBjYXNlIEFsbG9j
YXRlUHJvcGVydHlTdG9yYWdlOgogICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToK
ICAgICAgICAgcmV0dXJuIHN0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fc3RydWN0dXJl
LmlzU3Vic2V0T2YoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDIwOTYyMykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0MjksNiArNDQyOSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKG5vZGUp
OwogICAgICAgICBicmVhazsKICAgICAgICAgCisgICAgY2FzZSBOdWtlU3RydWN0dXJlQW5kU2V0
QnV0dGVyZmx5OgorICAgICAgICBjb21waWxlTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseShu
b2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIAogICAgIGNhc2UgR2V0QnV0dGVyZmx5Ogog
ICAgICAgICBjb21waWxlR2V0QnV0dGVyZmx5KG5vZGUpOwogICAgICAgICBicmVhazsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkocmV2aXNpb24gMjA5NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM5NSw2ICs0Mzk1LDEwIEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZVJl
YWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2Uobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAK
KyAgICBjYXNlIE51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHk6CisgICAgICAgIGNvbXBpbGVO
dWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5KG5vZGUpOworICAgICAgICBicmVhazsKKyAgICAg
ICAgCiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CiAgICAgICAgIGNvbXBpbGVHZXRCdXR0ZXJmbHko
bm9kZSk7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDIwOTYyMykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03Mzg5LDE5ICs3Mzg5LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBbGxvY2F0
ZVByb3AKICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKIAogICAgICAgICBHUFJGbHVzaGVkQ2Fs
bFJlc3VsdCByZXN1bHQodGhpcyk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVh
bGxvY2F0ZUJ1dHRlcmZseVRvSGF2ZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHks
IHJlc3VsdC5ncHIoKSwgYmFzZUdQUik7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
QWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eSwgcmVzdWx0
LmdwcigpLCBiYXNlR1BSKTsKICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKICAgICAg
ICAgCiAgICAgICAgIHN0b3JhZ2VSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICAKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaDEodGhpcyk7CiAgICAg
R1BSVGVtcG9yYXJ5IHNjcmF0Y2gyKHRoaXMpOwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoMyh0
aGlzKTsKICAgICAgICAgCi0gICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwogICAgIEdQ
UlJlZyBzY3JhdGNoR1BSMSA9IHNjcmF0Y2gxLmdwcigpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BS
MiA9IHNjcmF0Y2gyLmdwcigpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSMyA9IHNjcmF0Y2gzLmdw
cigpOwpAQCAtNzQxNSwxMCArNzQxMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVB
bGxvY2F0ZVByb3AKICAgICAgICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cigwKSwgSklU
Q29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaEdQUjEsIC0ob2Zmc2V0ICsgc2l6ZW9mKEpTVmFsdWUp
ICsgc2l6ZW9mKHZvaWQqKSkpKTsKICAgICAgICAgCiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Io
Ci0gICAgICAgIHNsb3dQYXRoQ2FsbChzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uQWxsb2NhdGVQ
cm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5LCBzY3JhdGNoR1BSMSkpOwotCi0gICAg
bV9qaXQuc3RvcmUzMihUcnVzdGVkSW1tMzIoMCksIEpJVENvbXBpbGVyOjpBZGRyZXNzKGJhc2VH
UFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSkpOwotICAgIG1faml0LnN0b3JlQnV0dGVy
Zmx5KHNjcmF0Y2hHUFIxLCBiYXNlR1BSKTsKKyAgICAgICAgc2xvd1BhdGhDYWxsKHNsb3dQYXRo
LCB0aGlzLCBvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFs
Q2FwYWNpdHksIHNjcmF0Y2hHUFIxKSk7CiAKICAgICBzdG9yYWdlUmVzdWx0KHNjcmF0Y2hHUFIx
LCBub2RlKTsKIH0KQEAgLTc0MzksMjAgKzc0MzQsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVJlYWxsb2NhdGVQcgogICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogCiAgICAgICAg
IEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlLCByZXN1
bHQuZ3ByKCksIGJhc2VHUFIsIG5ld1NpemUgLyBzaXplb2YoSlNWYWx1ZSkpOworICAgICAgICBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgcmVz
dWx0LmdwcigpLCBiYXNlR1BSLCBuZXdTaXplIC8gc2l6ZW9mKEpTVmFsdWUpKTsKICAgICAgICAg
bV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICBzdG9yYWdlUmVzdWx0KHJlc3VsdC5n
cHIoKSwgbm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgU3RvcmFnZU9wZXJh
bmQgb2xkU3RvcmFnZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgR1BSVGVtcG9yYXJ5IHNj
cmF0Y2gxKHRoaXMpOwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoMih0aGlzKTsKICAgICBHUFJU
ZW1wb3Jhcnkgc2NyYXRjaDModGhpcyk7CiAgICAgICAgIAotICAgIEdQUlJlZyBiYXNlR1BSID0g
YmFzZS5ncHIoKTsKICAgICBHUFJSZWcgb2xkU3RvcmFnZUdQUiA9IG9sZFN0b3JhZ2UuZ3ByKCk7
CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIxID0gc2NyYXRjaDEuZ3ByKCk7CiAgICAgR1BSUmVnIHNj
cmF0Y2hHUFIyID0gc2NyYXRjaDIuZ3ByKCk7CkBAIC03NDY4LDcgKzc0NjEsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUmVhbGxvY2F0ZVByCiAgICAgICAgIG1faml0LnN0b3JlUHRy
KFRydXN0ZWRJbW1QdHIoMCksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0Y2hHUFIxLCAtKG9m
ZnNldCArIHNpemVvZihKU1ZhbHVlKSArIHNpemVvZih2b2lkKikpKSk7CiAKICAgICBhZGRTbG93
UGF0aEdlbmVyYXRvcigKLSAgICAgICAgc2xvd1BhdGhDYWxsKHNsb3dQYXRoLCB0aGlzLCBvcGVy
YXRpb25BbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSwgc2NyYXRjaEdQUjEsIG5ld1NpemUgLyBzaXpl
b2YoSlNWYWx1ZSkpKTsKKyAgICAgICAgc2xvd1BhdGhDYWxsKHNsb3dQYXRoLCB0aGlzLCBvcGVy
YXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZSwgc2NyYXRjaEdQUjEsIG5ld1NpemUg
LyBzaXplb2YoSlNWYWx1ZSkpKTsKIAogICAgIC8vIFdlIGhhdmUgc2NyYXRjaEdQUjEgPSBuZXcg
c3RvcmFnZSwgc2NyYXRjaEdQUjIgPSBzY3JhdGNoCiAgICAgZm9yIChwdHJkaWZmX3Qgb2Zmc2V0
ID0gMDsgb2Zmc2V0IDwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihvbGRTaXplKTsgb2Zmc2V0ICs9
IHNpemVvZih2b2lkKikpIHsKQEAgLTc0NzYsMTEgKzc0NjksMjIgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVJlYWxsb2NhdGVQcgogICAgICAgICBtX2ppdC5zdG9yZVB0cihzY3JhdGNo
R1BSMiwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaEdQUjEsIC0ob2Zmc2V0ICsgc2l6ZW9m
KEpTVmFsdWUpICsgc2l6ZW9mKHZvaWQqKSkpKTsKICAgICB9CiAgICAgICAgIAotICAgIG1faml0
Lm51a2VTdHJ1Y3R1cmVBbmRTdG9yZUJ1dHRlcmZseShzY3JhdGNoR1BSMSwgYmFzZUdQUik7Ci0K
ICAgICBzdG9yYWdlUmVzdWx0KHNjcmF0Y2hHUFIxLCBub2RlKTsKIH0KIAordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZU51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkoTm9kZSogbm9kZSkK
K3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
KyAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAK
KyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIHN0b3JhZ2VHUFIg
PSBzdG9yYWdlLmdwcigpOworICAgIAorICAgIG1faml0Lm51a2VTdHJ1Y3R1cmVBbmRTdG9yZUJ1
dHRlcmZseShzdG9yYWdlR1BSLCBiYXNlR1BSKTsKKyAgICAKKyAgICBub1Jlc3VsdChub2RlKTsK
K30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ1dHRlcmZseShOb2RlKiBub2Rl
KQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAkocmV2aXNpb24gMjA5NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTc5LDYgKzI1NzksNyBAQCBwdWJsaWM6
CiAgICAgCiAgICAgdm9pZCBjb21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwog
ICAgIHZvaWQgY29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOworICAgIHZv
aWQgY29tcGlsZU51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkoTm9kZSopOwogICAgIHZvaWQg
Y29tcGlsZUdldEJ1dHRlcmZseShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQ2FsbERPTUdldHRl
cihOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQ2FsbERPTShOb2RlKik7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2Vy
dGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjA5NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5Niw2ICsyOTYsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBjb25zaWRlckJhcnJp
ZXIobV9ub2RlLT5jaGlsZDEoKSwgbV9ub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNl
IE51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHk6IHsKKyAgICAgICAgICAgICAgICBjb25zaWRl
ckJhcnJpZXIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC0zMjIsMTcgKzMyNywxMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgY2FzZSBOZXdGdW5j
dGlvbjoKICAgICAgICAgICAgIGNhc2UgTmV3R2VuZXJhdG9yRnVuY3Rpb246CiAgICAgICAgICAg
ICBjYXNlIE5ld0FzeW5jRnVuY3Rpb246CisgICAgICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlOgorICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgog
ICAgICAgICAgICAgICAgIC8vIE5vZGVzIHRoYXQgYWxsb2NhdGUgZ2V0IHRvIHNldCB0aGVpciBl
cG9jaCBiZWNhdXNlIGZvciB0aG9zZSBub2RlcyB3ZSBrbm93CiAgICAgICAgICAgICAgICAgLy8g
dGhhdCB0aGV5IHdpbGwgYmUgdGhlIG5ld2VzdCBvYmplY3QgaW4gdGhlIGhlYXAuCiAgICAgICAg
ICAgICAgICAgbV9ub2RlLT5zZXRFcG9jaChtX2N1cnJlbnRFcG9jaCk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlIEFsbG9jYXRlUHJv
cGVydHlTdG9yYWdlOgotICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdl
OgotICAgICAgICAgICAgICAgIGluc2VydEJhcnJpZXIobV9ub2RlSW5kZXggKyAxLCBtX25vZGUt
PmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBtX25vZGUtPnNldEVwb2NoKEVwb2NoKCkpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2Fz
ZSBVcHNpbG9uOgogICAgICAgICAgICAgICAgIC8vIEFzc3VtZSB0aGUgd29yc3QgZm9yIFBoaXMg
c28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IFBoaSBzaGFkb3dzLgogICAgICAg
ICAgICAgICAgIG1fbm9kZS0+cGhpKCktPnNldEVwb2NoKEVwb2NoKCkpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhh
c2UuY3BwCShyZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNiArMjQ2
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBjYXNlIFB1dFN0cnVjdHVyZToKICAgICAg
ICAgICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAgICAgICAgICAg
IGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAgICAgICBjYXNlIE51
a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHk6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRCdXR0
ZXJmbHk6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAgICAgICAgICAgICBj
YXNlIFB1dEJ5VmFsRGlyZWN0OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMjA5NjIzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNiAr
MTM5LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNh
c2UgU3RyaW5nRnJvbUNoYXJDb2RlOgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6
CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgIGNhc2UgTnVrZVN0cnVj
dHVyZUFuZFNldEJ1dHRlcmZseToKICAgICBjYXNlIEdldFR5cGVkQXJyYXlCeXRlT2Zmc2V0Ogog
ICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAgICAgY2FzZSBTdG9yZUJhcnJpZXI6CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAy
MDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc1Myw2ICs3NTMsOSBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAgICAgICBjb21waWxlUmVhbGxvY2F0
ZVByb3BlcnR5U3RvcmFnZSgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTnVr
ZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseToKKyAgICAgICAgICAgIGNvbXBpbGVOdWtlU3RydWN0
dXJlQW5kU2V0QnV0dGVyZmx5KCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBU
b051bWJlcjoKICAgICAgICAgICAgIGNvbXBpbGVUb051bWJlcigpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC00NzUyLDYgKzQ3NTUsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJlYWxsb2Nh
dGVQcm9wZXJ0eVN0b3JhZ2UoCiAgICAgICAgICAgICAgICAgb2JqZWN0LCBvbGRTdG9yYWdlLCB0
cmFuc2l0aW9uLT5wcmV2aW91cywgdHJhbnNpdGlvbi0+bmV4dCkpOwogICAgIH0KKyAgICAKKyAg
ICB2b2lkIGNvbXBpbGVOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5KCkKKyAgICB7CisgICAg
ICAgIG51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkobG93U3RvcmFnZShtX25vZGUtPmNoaWxk
MigpKSwgbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSk7CisgICAgfQogCiAgICAgdm9pZCBjb21w
aWxlVG9OdW1iZXIoKQogICAgIHsKQEAgLTk0MDYsNiArOTQxNCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgcHJldmlvdXNTdHJ1Y3R1cmUsIG5leHRTdHJ1Y3R1cmUpOwogICAgICAgICB9
CiAgICAgICAgIAorICAgICAgICBudWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5KHJlc3VsdCwg
b2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKQEAgLTk0NzUsOCArOTQ4
NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChwcmV2aW91c1N0cnVjdHVyZS0+Y291bGRIYXZl
SW5kZXhpbmdIZWFkZXIoKSkgewogICAgICAgICAgICAgcmV0dXJuIHZtQ2FsbCgKICAgICAgICAg
ICAgICAgICBwb2ludGVyVHlwZSgpLAotICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbigK
LSAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvSGF2ZVBy
b3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHkpLAorICAgICAgICAgICAgICAgIG1fb3V0
Lm9wZXJhdGlvbihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5p
dGlhbENhcGFjaXR5KSwKICAgICAgICAgICAgICAgICBtX2NhbGxGcmFtZSwgb2JqZWN0KTsKICAg
ICAgICAgfQogICAgICAgICAKQEAgLTk0ODcsNyArOTQ5NSw2IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBtX291dC5jb25zdEludDMyKC1pbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHkgLSAxKSwgbV9v
dXQuY29uc3RJbnQzMigtMSksCiAgICAgICAgICAgICBtX291dC5pbnQ2NFplcm8sIG1faGVhcHMu
cHJvcGVydGllcy5hdEFueU51bWJlcigpKTsKICAgICAgICAgCi0gICAgICAgIG51a2VTdHJ1Y3R1
cmVBbmRTZXRCdXR0ZXJmbHkocmVzdWx0LCBvYmplY3QpOwogICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgIH0KICAgICAKQEAgLTk1MDEsNyArOTUwOCw3IEBAIHByaXZhdGU6CiAgICAgICAgIAog
ICAgICAgICBpZiAocHJldmlvdXMtPmNvdWxkSGF2ZUluZGV4aW5nSGVhZGVyKCkpIHsKICAgICAg
ICAgICAgIExWYWx1ZSBuZXdBbGxvY1NpemUgPSBtX291dC5jb25zdEludFB0cihuZXdTaXplKTsg
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgcmV0dXJuIHZtQ2FsbChwb2ludGVyVHlw
ZSgpLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1By
b3BlcnR5U3RvcmFnZSksIG1fY2FsbEZyYW1lLCBvYmplY3QsIG5ld0FsbG9jU2l6ZSk7CisgICAg
ICAgICAgICByZXR1cm4gdm1DYWxsKHBvaW50ZXJUeXBlKCksIG1fb3V0Lm9wZXJhdGlvbihvcGVy
YXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2UpLCBtX2NhbGxGcmFtZSwgb2JqZWN0
LCBuZXdBbGxvY1NpemUpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgcmVz
dWx0ID0gYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VXaXRoU2l6ZUltcGwobmV3U2l6ZSk7CkBAIC05
NTIwLDggKzk1MjcsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMigt
bmV3U2l6ZSAtIDEpLCBtX291dC5jb25zdEludDMyKC1vbGRTaXplIC0gMSksCiAgICAgICAgICAg
ICBtX291dC5pbnQ2NFplcm8sIG1faGVhcHMucHJvcGVydGllcy5hdEFueU51bWJlcigpKTsKICAg
ICAgICAgCi0gICAgICAgIG51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkocmVzdWx0LCBvYmpl
Y3QpOwotICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC05
NTQ2LDE0ICs5NTUxLDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBzbG93QnV0dGVyZmx5VmFs
dWUgPSBsYXp5U2xvd1BhdGgoCiAgICAgICAgICAgICAgICAgWz1dIChjb25zdCBWZWN0b3I8TG9j
YXRpb24+JiBsb2NhdGlvbnMpIC0+IFJlZlB0cjxMYXp5U2xvd1BhdGg6OkdlbmVyYXRvcj4gewog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlTGF6eUNhbGxHZW5lcmF0b3IoCi0gICAg
ICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25BbGxvY2F0ZVByb3BlcnR5U3RvcmFnZVdpdGhJ
bml0aWFsQ2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25BbGxvY2F0
ZVNpbXBsZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHksCiAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCkpOwogICAgICAgICAgICAgICAgIH0p
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgc2xvd0J1dHRlcmZseVZhbHVlID0gbGF6
eVNsb3dQYXRoKAogICAgICAgICAgICAgICAgIFs9XSAoY29uc3QgVmVjdG9yPExvY2F0aW9uPiYg
bG9jYXRpb25zKSAtPiBSZWZQdHI8TGF6eVNsb3dQYXRoOjpHZW5lcmF0b3I+IHsKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxhenlDYWxsR2VuZXJhdG9yKAotICAgICAgICAgICAg
ICAgICAgICAgICAgb3BlcmF0aW9uQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UsIGxvY2F0aW9uc1sw
XS5kaXJlY3RHUFIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbkFsbG9jYXRl
U2ltcGxlUHJvcGVydHlTdG9yYWdlLCBsb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCksCiAgICAgICAg
ICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoc2l6ZUluVmFsdWVz
KSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMy
LDcgKzMzMiw3IEBAIHN0YXRpYyB2b2lkIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQogICAg
IE9wdGlvbnM6OnVzZUZUTEpJVCgpID0gZmFsc2U7CiAjZW5kaWYKICAgICAKLSNpZiAxIHx8ICgh
Q1BVKFg4Nl82NCkgJiYgIUNQVShBUk02NCkpCisjaWYgMCB8fCAoIUNQVShYODZfNjQpICYmICFD
UFUoQVJNNjQpKQogICAgIE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRHQygpID0gZmFsc2U7CiAjZW5k
aWYKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296692</attachid>
            <date>2016-12-09 13:57:08 -0800</date>
            <delta_ts>2016-12-09 13:59:17 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>30744</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5NjI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgyIEBA
CisyMDE2LTEyLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0MgbWlnaHQgYmUgZm9yY2VkIHRvIGxvb2sgYXQgYSBudWtlZCBvYmplY3QgZHVlIHRvIG9yZGVy
aW5nIG9mIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBNYXRlcmlhbGl6ZU5ld09iamVjdCwgYW5k
IFB1dFN0cnVjdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY1NjcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBzaGFkeSBzdHVmZiBp
biBhIHByb3BlcnR5IHB1dCBoYXBwZW5zIGFmdGVyIHRoZQorICAgICAgICBQdXRCeU9mZnNldCwg
c2luY2UgdGhlIFB1dEJ5T2Zmc2V0IGlzIHRoZSBwbGFjZSB3aGVyZSB3ZSBtYXRlcmlhbGl6ZS4g
TW9yZSBnZW5lcmFsbHksIHdlCisgICAgICAgIHNob3VsZCBzdHJpdmUgdG8gbm90IGhhdmUgYW55
IGZlbmNlcG9zdHMgYmV0d2VlbiBOb2RlcyB3aGVyZSBhIEdDIHdvdWxkIGJlIGlsbGVnYWwuCisg
ICAgICAgIAorICAgICAgICBUaGlzIGdldHMgdXMgbW9zdCBvZiB0aGUgd2F5IHRoZXJlIGJ5IHNl
cGFyYXRpbmcgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseSBmcm9tCisgICAgICAgIFtSZV1B
bGxvY2F0ZVByb3BlcnR5U3RvcmFnZS4gQSB0cmFuc2l0aW9uaW5nIHB1dCB3aWxsIG5vdyBsb29r
IHNvbWV0aGluZyBsaWtlOgorICAgICAgICAKKyAgICAgICAgICAgIEdldEJ1dHRlcmZseQorICAg
ICAgICAgICAgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZQorICAgICAgICAgICAgUHV0QnlPZmZz
ZXQKKyAgICAgICAgICAgIE51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkKKyAgICAgICAgICAg
IFB1dFN0cnVjdHVyZQorICAgICAgICAKKyAgICAgICAgUHJldmlvdXNseSB0aGUgc3RydWN0dXJl
IHdvdWxkIGdldCBudWtlZCBieSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBzbyBpZiB3ZSBw
bGFjZWQKKyAgICAgICAgYW4gb2JqZWN0IG1hdGVyaWFsaXphdGlvbiBqdXN0IGFmdGVyIGl0IChi
ZWZvcmUgdGhlIFB1dEJ5T2Zmc2V0KSB0aGVuIGFueSBHQyB0aGF0CisgICAgICAgIGNvbXBsZXRl
ZCBhdCB0aGF0IHNhZmVwb2ludCB3b3VsZCBlbmNvdW50ZXIgYW4gdW5yZXNvbHZlZCB2aXNpdCBy
YWNlIGR1ZSB0byBzZWVpbmcgYQorICAgICAgICBudWtlZCBzdHJ1Y3R1cmUuIFdlIGNhbm5vdCBo
YXZlIG51a2VkIHN0cnVjdHVyZXMgYXQgc2FmZXBvaW50cywgYW5kIHRoaXMgY2hhbmdlIG1ha2Vz
CisgICAgICAgIHN1cmUgdGhhdCB3ZSBkb24ndCAtIGF0IGxlYXN0IHVudGlsIHNvbWVvbmUgdHJp
ZXMgdG8gc2luayB0byB0aGUgUHV0U3RydWN0dXJlLiBXZSB3aWxsCisgICAgICAgIGV2ZW50dWFs
bHkgaGF2ZSB0byBjcmVhdGUgYSBjb21iaW5lZCBTZXRTdHJ1Y3R1cmVBbmRCdXR0ZXJmbHkgbm9k
ZSwgYnV0IHdlIGRvbid0IG5lZWQgaXQKKyAgICAgICAgeWV0LgorICAgICAgICAKKyAgICAgICAg
VGhpcyBhbHNvIGZpeGVzIGEgZ29vZiB3aGVyZSB0aGUgREZHJ3MgQWxsb2NhdGVQcm9wZXJ0eVN0
b3JhZ2Ugd2FzIG51bGxpbmcgdGhlIHN0cnVjdHVyZQorICAgICAgICBpbnN0ZWFkIG9mIG51a2lu
ZyBpdC4gVGhpcyBjb3VsZCBlYXNpbHkgaGF2ZSBjYXVzZWQgbWFueSBjcmFzaGVzIGluIEdDLgor
ICAgICAgICAKKyAgICAgICAgTk9URTogSSB3aWxsIHByb2JhYmx5IGRpc2FibGUgY29uY3VycmVu
dCBHQyBiZWZvcmUgbGFuZGluZywgYW5kIGVuYWJsZSBpdCBpbiBhIHNlcGFyYXRlCisgICAgICAg
IHJldmlzaW9uLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVQdXRCeUlkKToK
KyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2Ji
ZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyc0V4aXRTdGF0ZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6Y2xvYmJlcnNFeGl0U3RhdGUpOgorICAgICAgICAqIGRmZy9ERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5nUGhh
c2U6OmVtaXRQdXRCeU9mZnNldCk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBk
ZmcvREZHTWF5RXhpdC5jcHA6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAg
ICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4
ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWFsbG9jYXRlUHJv
cGVydHlTdG9yYWdlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlOjppZGVudGlmeVJlZHVuZGFu
dFN0cnVjdHVyZUNoZWNrcyk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVO
b2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU51a2VT
dHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjpzdG9yYWdlRm9yVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKToKKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9CMzo6cmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmFsbG9jYXRlUHJvcGVydHlTdG9yYWdlV2l0
aFNpemVJbXBsKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlND
OjpyZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKToKKwogMjAxNi0xMi0wOSAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGRpc2FibGUgY29uY3Vy
cmVudCBHQyBmb3IgcmVhbC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDIwOTYy
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjMwOSw2ICsyMzA5LDcgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAg
IGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlOgorICAgIGNhc2UgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseToKICAgICAg
ICAgLy8gRklYTUU6IFdlIGRvbid0IG1vZGVsIHRoZSBmYWN0IHRoYXQgdGhlIHN0cnVjdHVyZUlE
IGlzIG51a2VkLCBzaW1wbHkgYmVjYXVzZSBjdXJyZW50bHkKICAgICAgICAgLy8gbm9ib2R5IHdv
dWxkIGN1cnJlbnRseSBiZW5lZml0IGZyb20gaGF2aW5nIHRoYXQgaW5mb3JtYXRpb24uIEJ1dCBp
dCdzIGEgYnVnIG5vbmV0aGVsZXNzLgogICAgICAgICBmb3JOb2RlKG5vZGUpLmNsZWFyKCk7IC8v
IFRoZSByZXN1bHQgaXMgbm90IGEgSlMgdmFsdWUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjA5NjIzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM1OTQsMTIgKzM1OTQsMjIgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxl
UHV0QnlJZCgKICAgICAgICAgZGF0YS0+aW5mZXJyZWRUeXBlID0gdmFyaWFudC5yZXF1aXJlZFR5
cGUoKTsKICAgICAgICAgbV9ncmFwaC5yZWdpc3RlckluZmVycmVkVHlwZShkYXRhLT5pbmZlcnJl
ZFR5cGUpOwogICAgICAgICAKKyAgICAgICAgLy8gTk9URTogV2UgY291bGQgR0MgYXQgdGhpcyBw
b2ludCBiZWNhdXNlIHNvbWVvbmUgY291bGQgaW5zZXJ0IGFuIG9wZXJhdGlvbiB0aGF0IEdDcy4K
KyAgICAgICAgLy8gVGhhdCdzIGZpbmUgYmVjYXVzZToKKyAgICAgICAgLy8gLSBUaGluZ3MgYWxy
ZWFkeSBpbiB0aGUgc3RydWN0dXJlIHdpbGwgZ2V0IHNjYW5uZWQgYmVjYXVzZSB3ZSBoYXZlbid0
IG1lc3NlZCB3aXRoCisgICAgICAgIC8vICAgdGhlIG9iamVjdCB5ZXQuCisgICAgICAgIC8vIC0g
VGhlIHZhbHVlIHdlIGFyZSBmaXhpbmcgdG8gcHV0IGlzIGdvaW5nIHRvIGJlIGtlcHQgbGl2ZSBi
eSBPU1IgZXhpdCBoYW5kbGluZy4gU28KKyAgICAgICAgLy8gICBpZiB0aGUgR0MgZG9lcyBhIGNv
bnNlcnZhdGl2ZSBzY2FuIGhlcmUgaXQgd2lsbCBzZWUgdGhlIG5ldyB2YWx1ZS4KKyAgICAgICAg
CiAgICAgICAgIGFkZFRvR3JhcGgoCiAgICAgICAgICAgICBQdXRCeU9mZnNldCwKICAgICAgICAg
ICAgIE9wSW5mbyhkYXRhKSwKICAgICAgICAgICAgIHByb3BlcnR5U3RvcmFnZSwKICAgICAgICAg
ICAgIGJhc2UsCiAgICAgICAgICAgICB2YWx1ZSk7CisgICAgICAgIAorICAgICAgICBpZiAodmFy
aWFudC5yZWFsbG9jYXRlc1N0b3JhZ2UoKSkKKyAgICAgICAgICAgIGFkZFRvR3JhcGgoTnVrZVN0
cnVjdHVyZUFuZFNldEJ1dHRlcmZseSwgYmFzZSwgcHJvcGVydHlTdG9yYWdlKTsKIAogICAgICAg
ICAvLyBGSVhNRTogUHV0U3RydWN0dXJlIGdvZXMgbGFzdCB1bnRpbCB3ZSBmaXggZWl0aGVyCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5MjEg
b3IKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZp
c2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAkod29ya2luZyBjb3B5KQpAQCAtODkxLDcgKzg5MSw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBQdXRTdHJ1
Y3R1cmU6Ci0gICAgICAgIHJlYWQoSlNPYmplY3RfYnV0dGVyZmx5KTsgLy8gVGhpcyBpcyBhIHN0
b3JlLXN0b3JlIGZlbmNlLgorICAgICAgICByZWFkKEpTT2JqZWN0X2J1dHRlcmZseSk7CiAgICAg
ICAgIHdyaXRlKEpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CiAgICAgICAgIHdyaXRlKEpTQ2VsbF90eXBl
SW5mb1R5cGUpOwogICAgICAgICB3cml0ZShKU0NlbGxfdHlwZUluZm9GbGFncyk7CkBAIC04OTks
MTYgKzg5OSwxNSBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAg
ICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFn
ZToKLSAgICAgICAgd3JpdGUoSlNPYmplY3RfYnV0dGVyZmx5KTsKLSAgICAgICAgd3JpdGUoSlND
ZWxsX3N0cnVjdHVyZUlEKTsKLSAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihCdXR0ZXJmbHlMb2Ms
IEpTT2JqZWN0X2J1dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7Cisg
ICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgICAgICByZWFkKEhlYXBPYmpl
Y3RDb3VudCk7CisgICAgICAgIHdyaXRlKEhlYXBPYmplY3RDb3VudCk7CiAgICAgICAgIHJldHVy
bjsKICAgICAgICAgCi0gICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgotICAgICAg
ICByZWFkKEpTT2JqZWN0X2J1dHRlcmZseSk7CisgICAgY2FzZSBOdWtlU3RydWN0dXJlQW5kU2V0
QnV0dGVyZmx5OgogICAgICAgICB3cml0ZShKU09iamVjdF9idXR0ZXJmbHkpOwogICAgICAgICB3
cml0ZShKU0NlbGxfc3RydWN0dXJlSUQpOwotICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEJ1dHRl
cmZseUxvYywgSlNPYmplY3RfYnV0dGVyZmx5LCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5v
ZGUpKTsKKyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihCdXR0ZXJmbHlMb2MsIEpTT2JqZWN0X2J1
dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlLT5jaGlsZDIoKS5ub2RlKCkp
KTsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIEdldEJ1dHRlcmZseToKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcnNFeGl0U3RhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcnNFeGl0U3Rh
dGUuY3BwCShyZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Nsb2JiZXJzRXhpdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOCBAQCBi
b29sIGNsb2JiZXJzRXhpdFN0YXRlKEdyYXBoJiBncmFwaCwgTm9kCiAgICAgY2FzZSBDb3VudEV4
ZWN1dGlvbjoKICAgICBjYXNlIFN0b3JlQmFycmllcjoKICAgICBjYXNlIEZlbmNlZFN0b3JlQmFy
cmllcjoKKyAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgIGNhc2UgUmVhbGxv
Y2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAgICAgLy8gVGhlc2UgZG8gY2xvYmJlciBtZW1vcnks
IGJ1dCBub3RoaW5nIHRoYXQgaXMgb2JzZXJ2YWJsZS4gSXQgbWF5IGJlIG5pY2UgdG8gc2VwYXJh
dGUgdGhlCiAgICAgICAgIC8vIGhlYXBzIGludG8gdGhvc2UgdGhhdCBhcmUgb2JzZXJ2YWJsZSBh
bmQgdGhvc2UgdGhhdCBhcmVuJ3QsIGJ1dCB3ZSBkb24ndCBkbyB0aGF0IHJpZ2h0IG5vdy4KICAg
ICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDg0NDAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5n
UGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwCShyZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzY2LDYgKzc2Niw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBo
LCBub2RlLCBvcmlnaW4uZXhpdE9LKTsKICAgICAgICAgYm9vbCBjYW5FeGl0ID0gdHJ1ZTsKKyAg
ICAgICAgYm9vbCBkaWRBbGxvY2F0ZVN0b3JhZ2UgPSBmYWxzZTsKIAogICAgICAgICBpZiAoaXNJ
bmxpbmVPZmZzZXQodmFyaWFudC5vZmZzZXQoKSkpCiAgICAgICAgICAgICBwcm9wZXJ0eVN0b3Jh
Z2UgPSBjaGlsZEVkZ2U7CkBAIC03NzcsMTkgKzc3OCwyMSBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgQVNTRVJUKCFpc0lubGluZU9mZnNldCh2YXJpYW50Lm9mZnNldCgpKSk7CiAgICAgICAgICAg
ICBOb2RlKiBhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5v
ZGUoCiAgICAgICAgICAgICAgICAgaW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgQWxsb2NhdGVQcm9w
ZXJ0eVN0b3JhZ2UsCi0gICAgICAgICAgICAgICAgb3JpZ2luLnRha2VWYWxpZEV4aXQoY2FuRXhp
dCksIE9wSW5mbyh0cmFuc2l0aW9uKSwgY2hpbGRFZGdlKTsKKyAgICAgICAgICAgICAgICBvcmln
aW4sIE9wSW5mbyh0cmFuc2l0aW9uKSwgY2hpbGRFZGdlKTsKICAgICAgICAgICAgIHByb3BlcnR5
U3RvcmFnZSA9IEVkZ2UoYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UpOworICAgICAgICAgICAgZGlk
QWxsb2NhdGVTdG9yYWdlID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFT
U0VSVCh2YXJpYW50Lm9sZFN0cnVjdHVyZUZvclRyYW5zaXRpb24oKS0+b3V0T2ZMaW5lQ2FwYWNp
dHkoKSk7CiAgICAgICAgICAgICBBU1NFUlQodmFyaWFudC5uZXdTdHJ1Y3R1cmUoKS0+b3V0T2ZM
aW5lQ2FwYWNpdHkoKSA+IHZhcmlhbnQub2xkU3RydWN0dXJlRm9yVHJhbnNpdGlvbigpLT5vdXRP
ZkxpbmVDYXBhY2l0eSgpKTsKICAgICAgICAgICAgIEFTU0VSVCghaXNJbmxpbmVPZmZzZXQodmFy
aWFudC5vZmZzZXQoKSkpOwogCiAgICAgICAgICAgICBOb2RlKiByZWFsbG9jYXRlUHJvcGVydHlT
dG9yYWdlID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKLSAgICAgICAgICAgICAgICBpbmRl
eEluQmxvY2ssIFNwZWNOb25lLCBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBvcmlnaW4udGFr
ZVZhbGlkRXhpdChjYW5FeGl0KSwKKyAgICAgICAgICAgICAgICBpbmRleEluQmxvY2ssIFNwZWNO
b25lLCBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBvcmlnaW4sCiAgICAgICAgICAgICAgICAg
T3BJbmZvKHRyYW5zaXRpb24pLCBjaGlsZEVkZ2UsCiAgICAgICAgICAgICAgICAgRWRnZShtX2lu
c2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAgICAgICBpbmRleEluQmxvY2ss
IFNwZWNOb25lLCBHZXRCdXR0ZXJmbHksIG9yaWdpbiwgY2hpbGRFZGdlKSkpOwogICAgICAgICAg
ICAgcHJvcGVydHlTdG9yYWdlID0gRWRnZShyZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKTsKKyAg
ICAgICAgICAgIGRpZEFsbG9jYXRlU3RvcmFnZSA9IHRydWU7CiAgICAgICAgIH0KIAogICAgICAg
ICBTdG9yYWdlQWNjZXNzRGF0YSYgZGF0YSA9ICptX2dyYXBoLm1fc3RvcmFnZUFjY2Vzc0RhdGEu
YWRkKCk7CkBAIC04MDAsNiArODAzLDEyIEBAIHByaXZhdGU6CiAgICAgICAgIG5vZGUtPm9yaWdp
bi5leGl0T0sgPSBjYW5FeGl0OwogCiAgICAgICAgIGlmICh2YXJpYW50LmtpbmQoKSA9PSBQdXRC
eUlkVmFyaWFudDo6VHJhbnNpdGlvbikgeworICAgICAgICAgICAgaWYgKGRpZEFsbG9jYXRlU3Rv
cmFnZSkgeworICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAg
ICAgICAgICAgICAgICAgIGluZGV4SW5CbG9jayArIDEsIFNwZWNOb25lLCBOdWtlU3RydWN0dXJl
QW5kU2V0QnV0dGVyZmx5LAorICAgICAgICAgICAgICAgICAgICBvcmlnaW4ud2l0aEludmFsaWRF
eGl0KCksIGNoaWxkRWRnZSwgcHJvcGVydHlTdG9yYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIAogICAgICAgICAgICAgLy8gRklYTUU6IFB1dFN0cnVjdHVyZSBnb2VzIGxhc3QgdW50
aWwgd2UgZml4IGVpdGhlcgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjkyMSBvcgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjkyNC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5jcHAJKHJldmlzaW9uIDIwOTYyMykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY3LDYgKzI2Nyw3
IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldER5
bmFtaWNWYXI6CiAgICAgY2FzZSBQdXREeW5hbWljVmFyOgogICAgIGNhc2UgUmVzb2x2ZVNjb3Bl
OgorICAgIGNhc2UgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseToKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAyMDk2MjMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTk5LDYgKzExOTksMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8S25v
d25DZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZs
eTogeworICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAKICAgICAgICAgY2FzZSBUcnlHZXRCeUlk
OiB7CiAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUNlbGwo
KSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWF5RXhpdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXlFeGl0LmNwcAkocmV2aXNp
b24gMjA5NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXlFeGl0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsNyBAQCBFeGl0TW9kZSBtYXlFeGl0SW1wbChHcmFw
aCYgZ3JhcGgsIE5vZGUqCiAgICAgY2FzZSBQdXRCeU9mZnNldDoKICAgICBjYXNlIFB1dENsb3N1
cmVWYXI6CiAgICAgY2FzZSBSZWNvcmRSZWdFeHBDYWNoZWRSZXN1bHQ6CisgICAgY2FzZSBOdWtl
U3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5OgogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgU3Ry
Q2F0OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNp
b24gMjA5NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMDgsNiArMjA4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogICAgIG1hY3JvKEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBOb2RlTXVzdEdlbmVy
YXRlIHwgTm9kZVJlc3VsdFN0b3JhZ2UpIFwKICAgICBtYWNybyhSZWFsbG9jYXRlUHJvcGVydHlT
dG9yYWdlLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdFN0b3JhZ2UpIFwKICAgICBtYWNy
byhHZXRCdXR0ZXJmbHksIE5vZGVSZXN1bHRTdG9yYWdlKSBcCisgICAgbWFjcm8oTnVrZVN0cnVj
dHVyZUFuZFNldEJ1dHRlcmZseSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNr
QXJyYXksIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhBcnJheWlmeSwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFycmF5aWZ5VG9TdHJ1Y3R1cmUsIE5vZGVNdXN0R2VuZXJh
dGUpIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAkocmV2aXNpb24gMjA5NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ4MCw3ICsxNDgwLDcgQEAgaW50MzJfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZk9iagogICAgIHJldHVybiBzdGF0aWNfY2FzdDxp
bnQzMl90PihUeXBlb2ZUeXBlOjpPYmplY3QpOwogfQogCi1jaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkFsbG9jYXRlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eShFeGVjU3Rh
dGUqIGV4ZWMpCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJv
cGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2
bSwgZXhlYyk7CkBAIC0xNDg5LDcgKzE0ODksNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkFsbG9jYXRlUHJvCiAgICAgICAgIEJ1dHRlcmZseTo6Y3JlYXRlVW5pbml0aWFsaXplZCh2
bSwgMCwgMCwgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5LCBmYWxzZSwgMCkpOwogfQogCi1jaGFy
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKEV4ZWNTdGF0
ZSogZXhlYywgc2l6ZV90IG5ld1NpemUpCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFs
bG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlKEV4ZWNTdGF0ZSogZXhlYywgc2l6ZV90IG5ld1Np
emUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xNDk4LDYgKzE0OTgsMjUgQEAgY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25BbGxvY2F0ZVBybwogICAgICAgICBCdXR0ZXJmbHk6OmNyZWF0ZVVu
aW5pdGlhbGl6ZWQodm0sIDAsIDAsIG5ld1NpemUsIGZhbHNlLCAwKSk7CiB9CiAKK2NoYXIqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlV2l0aElu
aXRpYWxDYXBhY2l0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QpCit7CisgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2
bSwgZXhlYyk7CisKKyAgICBBU1NFUlQoIW9iamVjdC0+c3RydWN0dXJlKCktPm91dE9mTGluZUNh
cGFjaXR5KCkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPigKKyAgICAgICAg
b2JqZWN0LT5hbGxvY2F0ZU1vcmVPdXRPZkxpbmVTdG9yYWdlKHZtLCAwLCBpbml0aWFsT3V0T2ZM
aW5lQ2FwYWNpdHkpKTsKK30KKworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25BbGxvY2F0
ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2UoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0
LCBzaXplX3QgbmV3U2l6ZSkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKworICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNoYXIqPigKKyAgICAgICAgb2JqZWN0LT5hbGxvY2F0ZU1vcmVPdXRPZkxpbmVT
dG9yYWdlKHZtLCBvYmplY3QtPnN0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpLCBuZXdT
aXplKSk7Cit9CisKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRW5zdXJlSW50MzIoRXhl
Y1N0YXRlKiBleGVjLCBKU0NlbGwqIGNlbGwpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lv
biAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ2LDggKzE0NiwxMCBAQCBzaXplX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25PYmplY3RJc09iCiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RJ
c0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikgV1RGX0lOVEVS
TkFMOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZk9iamVjdChFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIGludDMyX3QgSklU
X09QRVJBVElPTiBvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkFsbG9jYXRlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eShF
eGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7Ci1jaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFs
bG9jYXRlUHJvcGVydHlTdG9yYWdlKEV4ZWNTdGF0ZSosIHNpemVfdCBuZXdTaXplKSBXVEZfSU5U
RVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVy
dHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eShFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7Citj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdl
KEV4ZWNTdGF0ZSosIHNpemVfdCBuZXdTaXplKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFs
Q2FwYWNpdHkoRXhlY1N0YXRlKiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZShFeGVjU3Rh
dGUqLCBKU09iamVjdCosIHNpemVfdCBuZXdTaXplKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZUludDMyKEV4ZWNTdGF0ZSosIEpTQ2VsbCopOwogY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25FbnN1cmVEb3VibGUoRXhlY1N0YXRlKiwgSlNDZWxs
Kik7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkVuc3VyZUNvbnRpZ3VvdXMoRXhlY1N0
YXRlKiwgSlNDZWxsKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjA5
NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMDUsNiArMTEwNSw3IEBAIHByaXZhdGU6
CiAgICAgICAgIGNhc2UgTG9hZFZhcmFyZ3M6CiAgICAgICAgIGNhc2UgRm9yd2FyZFZhcmFyZ3M6
CiAgICAgICAgIGNhc2UgUHV0RHluYW1pY1ZhcjoKKyAgICAgICAgY2FzZSBOdWtlU3RydWN0dXJl
QW5kU2V0QnV0dGVyZmx5OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAg
ICAgLy8gVGhpcyBnZXRzIGlnbm9yZWQgYmVjYXVzZSBpdCBvbmx5IHByZXRlbmRzIHRvIHByb2R1
Y2UgYSB2YWx1ZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCShyZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzg5LDYgKzM4OSw4IEBAIGJv
b2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3QKIAogICAgIGNhc2UgU3RvcmVC
YXJyaWVyOgogICAgIGNhc2UgRmVuY2VkU3RvcmVCYXJyaWVyOgorICAgIGNhc2UgUHV0U3RydWN0
dXJlOgorICAgIGNhc2UgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseToKICAgICAgICAgLy8g
V2UgY29uc2VydmF0aXZlbHkgYXNzdW1lIHRoYXQgdGhlc2UgY2Fubm90IGJlIHB1dCBhbnl3aGVy
ZSwgd2hpY2ggZm9yY2VzIHRoZSBjb21waWxlciB0bwogICAgICAgICAvLyBrZWVwIHRoZW0gZXhh
Y3RseSB3aGVyZSB0aGV5IHdlcmUuIFRoaXMgaXMgc29ydCBvZiBvdmVya2lsbCBzaW5jZSB0aGUg
Y2xvYmJlcml6ZSBlZmZlY3RzCiAgICAgICAgIC8vIGFscmVhZHkgZm9yY2UgdGhlc2UgdGhpbmdz
IHRvIGJlIG9yZGVyZWQgcHJlY2lzZWx5LiBJJ20ganVzdCBub3QgY29uZmlkZW50IGVub3VnaCBp
biBteQpAQCAtNDEzLDcgKzQxNSw2IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRl
VHlwZSYgc3QKICAgICAgICAgcmV0dXJuIG5vZGUtPmFycmF5TW9kZSgpLm1vZGVGb3JQdXQoKS5h
bHJlYWR5Q2hlY2tlZCgKICAgICAgICAgICAgIGdyYXBoLCBub2RlLCBzdGF0ZS5mb3JOb2RlKGdy
YXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKSk7CiAKLSAgICBjYXNlIFB1dFN0cnVjdHVyZToKICAg
ICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgIGNhc2UgUmVhbGxvY2F0ZVByb3Bl
cnR5U3RvcmFnZToKICAgICAgICAgcmV0dXJuIHN0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkp
Lm1fc3RydWN0dXJlLmlzU3Vic2V0T2YoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDIwOTYyMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0MjksNiArNDQyOSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVSZWFsbG9jYXRlUHJvcGVydHlT
dG9yYWdlKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICAgICAgCisgICAgY2FzZSBOdWtlU3Ry
dWN0dXJlQW5kU2V0QnV0dGVyZmx5OgorICAgICAgICBjb21waWxlTnVrZVN0cnVjdHVyZUFuZFNl
dEJ1dHRlcmZseShub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIAogICAgIGNhc2UgR2V0
QnV0dGVyZmx5OgogICAgICAgICBjb21waWxlR2V0QnV0dGVyZmx5KG5vZGUpOwogICAgICAgICBi
cmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMjA5NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM5NSw2ICs0
Mzk1LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAg
ICAgY29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2Uobm9kZSk7CiAgICAgICAgIGJyZWFr
OwogICAgICAgICAKKyAgICBjYXNlIE51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHk6CisgICAg
ICAgIGNvbXBpbGVOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5KG5vZGUpOworICAgICAgICBi
cmVhazsKKyAgICAgICAgCiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CiAgICAgICAgIGNvbXBpbGVH
ZXRCdXR0ZXJmbHkobm9kZSk7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDIwOTYyMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Mzg5LDE5ICs3Mzg5LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVBbGxvY2F0ZVByb3AKICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKIAogICAgICAgICBH
UFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvSGF2ZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0
aWFsQ2FwYWNpdHksIHJlc3VsdC5ncHIoKSwgYmFzZUdQUik7CisgICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBh
Y2l0eSwgcmVzdWx0LmdwcigpLCBiYXNlR1BSKTsKICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hl
Y2soKTsKICAgICAgICAgCiAgICAgICAgIHN0b3JhZ2VSZXN1bHQocmVzdWx0LmdwcigpLCBub2Rl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaDEo
dGhpcyk7CiAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2gyKHRoaXMpOwogICAgIEdQUlRlbXBvcmFy
eSBzY3JhdGNoMyh0aGlzKTsKICAgICAgICAgCi0gICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdw
cigpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSMSA9IHNjcmF0Y2gxLmdwcigpOwogICAgIEdQUlJl
ZyBzY3JhdGNoR1BSMiA9IHNjcmF0Y2gyLmdwcigpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSMyA9
IHNjcmF0Y2gzLmdwcigpOwpAQCAtNzQxNSwxMCArNzQxMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVBbGxvY2F0ZVByb3AKICAgICAgICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZElt
bVB0cigwKSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaEdQUjEsIC0ob2Zmc2V0ICsgc2l6
ZW9mKEpTVmFsdWUpICsgc2l6ZW9mKHZvaWQqKSkpKTsKICAgICAgICAgCiAgICAgYWRkU2xvd1Bh
dGhHZW5lcmF0b3IoCi0gICAgICAgIHNsb3dQYXRoQ2FsbChzbG93UGF0aCwgdGhpcywgb3BlcmF0
aW9uQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5LCBzY3JhdGNoR1BS
MSkpOwotCi0gICAgbV9qaXQuc3RvcmUzMihUcnVzdGVkSW1tMzIoMCksIEpJVENvbXBpbGVyOjpB
ZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSkpOwotICAgIG1faml0
LnN0b3JlQnV0dGVyZmx5KHNjcmF0Y2hHUFIxLCBiYXNlR1BSKTsKKyAgICAgICAgc2xvd1BhdGhD
YWxsKHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFn
ZVdpdGhJbml0aWFsQ2FwYWNpdHksIHNjcmF0Y2hHUFIxKSk7CiAKICAgICBzdG9yYWdlUmVzdWx0
KHNjcmF0Y2hHUFIxLCBub2RlKTsKIH0KQEAgLTc0MzksMjAgKzc0MzQsMTggQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVJlYWxsb2NhdGVQcgogICAgICAgICBmbHVzaFJlZ2lzdGVycygp
OwogCiAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKLSAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlT
dG9yYWdlLCByZXN1bHQuZ3ByKCksIGJhc2VHUFIsIG5ld1NpemUgLyBzaXplb2YoSlNWYWx1ZSkp
OworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5
U3RvcmFnZSwgcmVzdWx0LmdwcigpLCBiYXNlR1BSLCBuZXdTaXplIC8gc2l6ZW9mKEpTVmFsdWUp
KTsKICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgICAgICBzdG9yYWdlUmVz
dWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0g
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAg
U3RvcmFnZU9wZXJhbmQgb2xkU3RvcmFnZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgR1BS
VGVtcG9yYXJ5IHNjcmF0Y2gxKHRoaXMpOwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoMih0aGlz
KTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaDModGhpcyk7CiAgICAgICAgIAotICAgIEdQUlJl
ZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICBHUFJSZWcgb2xkU3RvcmFnZUdQUiA9IG9sZFN0
b3JhZ2UuZ3ByKCk7CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIxID0gc2NyYXRjaDEuZ3ByKCk7CiAg
ICAgR1BSUmVnIHNjcmF0Y2hHUFIyID0gc2NyYXRjaDIuZ3ByKCk7CkBAIC03NDY4LDcgKzc0NjEs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVhbGxvY2F0ZVByCiAgICAgICAgIG1f
aml0LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIoMCksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0
Y2hHUFIxLCAtKG9mZnNldCArIHNpemVvZihKU1ZhbHVlKSArIHNpemVvZih2b2lkKikpKSk7CiAK
ICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKLSAgICAgICAgc2xvd1BhdGhDYWxsKHNsb3dQYXRo
LCB0aGlzLCBvcGVyYXRpb25BbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSwgc2NyYXRjaEdQUjEsIG5l
d1NpemUgLyBzaXplb2YoSlNWYWx1ZSkpKTsKKyAgICAgICAgc2xvd1BhdGhDYWxsKHNsb3dQYXRo
LCB0aGlzLCBvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZSwgc2NyYXRjaEdQ
UjEsIG5ld1NpemUgLyBzaXplb2YoSlNWYWx1ZSkpKTsKIAogICAgIC8vIFdlIGhhdmUgc2NyYXRj
aEdQUjEgPSBuZXcgc3RvcmFnZSwgc2NyYXRjaEdQUjIgPSBzY3JhdGNoCiAgICAgZm9yIChwdHJk
aWZmX3Qgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihvbGRTaXpl
KTsgb2Zmc2V0ICs9IHNpemVvZih2b2lkKikpIHsKQEAgLTc0NzYsMTEgKzc0NjksMjIgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlYWxsb2NhdGVQcgogICAgICAgICBtX2ppdC5zdG9y
ZVB0cihzY3JhdGNoR1BSMiwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaEdQUjEsIC0ob2Zm
c2V0ICsgc2l6ZW9mKEpTVmFsdWUpICsgc2l6ZW9mKHZvaWQqKSkpKTsKICAgICB9CiAgICAgICAg
IAotICAgIG1faml0Lm51a2VTdHJ1Y3R1cmVBbmRTdG9yZUJ1dHRlcmZseShzY3JhdGNoR1BSMSwg
YmFzZUdQUik7Ci0KICAgICBzdG9yYWdlUmVzdWx0KHNjcmF0Y2hHUFIxLCBub2RlKTsKIH0KIAor
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHko
Tm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKKyAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG5vZGUtPmNoaWxk
MigpKTsKKyAgICAKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVn
IHN0b3JhZ2VHUFIgPSBzdG9yYWdlLmdwcigpOworICAgIAorICAgIG1faml0Lm51a2VTdHJ1Y3R1
cmVBbmRTdG9yZUJ1dHRlcmZseShzdG9yYWdlR1BSLCBiYXNlR1BSKTsKKyAgICAKKyAgICBub1Jl
c3VsdChub2RlKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ1dHRlcmZs
eShOb2RlKiBub2RlKQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMjA5NjIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTc5LDYgKzI1Nzks
NyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBjb21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3Jh
Z2UoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9k
ZSopOworICAgIHZvaWQgY29tcGlsZU51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkoTm9kZSop
OwogICAgIHZvaWQgY29tcGlsZUdldEJ1dHRlcmZseShOb2RlKik7CiAgICAgdm9pZCBjb21waWxl
Q2FsbERPTUdldHRlcihOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQ2FsbERPTShOb2RlKik7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBo
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3Jl
QmFycmllckluc2VydGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjA5NjIzKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5Niw2ICsyOTYsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBj
b25zaWRlckJhcnJpZXIobV9ub2RlLT5jaGlsZDEoKSwgbV9ub2RlLT5jaGlsZDIoKSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICBjYXNlIE51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHk6IHsKKyAgICAgICAgICAg
ICAgICBjb25zaWRlckJhcnJpZXIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CkBAIC0zMjIsMTcgKzMyNywxMyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
Y2FzZSBOZXdGdW5jdGlvbjoKICAgICAgICAgICAgIGNhc2UgTmV3R2VuZXJhdG9yRnVuY3Rpb246
CiAgICAgICAgICAgICBjYXNlIE5ld0FzeW5jRnVuY3Rpb246CisgICAgICAgICAgICBjYXNlIEFs
bG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlOgogICAgICAgICAgICAgICAgIC8vIE5vZGVzIHRoYXQgYWxsb2NhdGUgZ2V0IHRv
IHNldCB0aGVpciBlcG9jaCBiZWNhdXNlIGZvciB0aG9zZSBub2RlcyB3ZSBrbm93CiAgICAgICAg
ICAgICAgICAgLy8gdGhhdCB0aGV5IHdpbGwgYmUgdGhlIG5ld2VzdCBvYmplY3QgaW4gdGhlIGhl
YXAuCiAgICAgICAgICAgICAgICAgbV9ub2RlLT5zZXRFcG9jaChtX2N1cnJlbnRFcG9jaCk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNl
IEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgotICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJv
cGVydHlTdG9yYWdlOgotICAgICAgICAgICAgICAgIGluc2VydEJhcnJpZXIobV9ub2RlSW5kZXgg
KyAxLCBtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBtX25vZGUtPnNldEVwb2No
KEVwb2NoKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgY2FzZSBVcHNpbG9uOgogICAgICAgICAgICAgICAgIC8vIEFzc3VtZSB0aGUgd29y
c3QgZm9yIFBoaXMgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IFBoaSBzaGFk
b3dzLgogICAgICAgICAgICAgICAgIG1fbm9kZS0+cGhpKCktPnNldEVwb2NoKEVwb2NoKCkpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVj
a0hvaXN0aW5nUGhhc2UuY3BwCShyZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNDYsNiArMjQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBjYXNlIFB1dFN0cnVj
dHVyZToKICAgICAgICAgICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAg
ICAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICAgICAgICAg
ICAgICBjYXNlIE51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHk6CiAgICAgICAgICAgICAgICAg
Y2FzZSBHZXRCdXR0ZXJmbHk6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAg
ICAgICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMjA5NjIzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzksNiArMTM5LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5v
ZGUqIAogICAgIGNhc2UgU3RyaW5nRnJvbUNoYXJDb2RlOgogICAgIGNhc2UgQWxsb2NhdGVQcm9w
ZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgIGNh
c2UgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseToKICAgICBjYXNlIEdldFR5cGVkQXJyYXlC
eXRlT2Zmc2V0OgogICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAgICAgY2FzZSBTdG9yZUJhcnJpZXI6
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CShyZXZpc2lvbiAyMDk2MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1Myw2ICs3NTMsOSBAQCBwcml2YXRlOgog
ICAgICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAgICAgICBjb21w
aWxlUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseToKKyAgICAgICAgICAgIGNvbXBp
bGVOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5KCk7CisgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBUb051bWJlcjoKICAgICAgICAgICAgIGNvbXBpbGVUb051bWJlcigpOwogICAg
ICAgICAgICAgYnJlYWs7CkBAIC00NzUyLDYgKzQ3NTUsMTEgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoCiAgICAgICAgICAgICAgICAgb2JqZWN0LCBv
bGRTdG9yYWdlLCB0cmFuc2l0aW9uLT5wcmV2aW91cywgdHJhbnNpdGlvbi0+bmV4dCkpOwogICAg
IH0KKyAgICAKKyAgICB2b2lkIGNvbXBpbGVOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5KCkK
KyAgICB7CisgICAgICAgIG51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkobG93U3RvcmFnZSht
X25vZGUtPmNoaWxkMigpKSwgbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSk7CisgICAgfQogCiAg
ICAgdm9pZCBjb21waWxlVG9OdW1iZXIoKQogICAgIHsKQEAgLTk0MDYsNiArOTQxNCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgcHJldmlvdXNTdHJ1Y3R1cmUsIG5leHRTdHJ1Y3R1cmUp
OwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBudWtlU3RydWN0dXJlQW5kU2V0QnV0dGVy
Zmx5KHJlc3VsdCwgb2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKQEAg
LTk0NzUsOCArOTQ4NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChwcmV2aW91c1N0cnVjdHVy
ZS0+Y291bGRIYXZlSW5kZXhpbmdIZWFkZXIoKSkgewogICAgICAgICAgICAgcmV0dXJuIHZtQ2Fs
bCgKICAgICAgICAgICAgICAgICBwb2ludGVyVHlwZSgpLAotICAgICAgICAgICAgICAgIG1fb3V0
Lm9wZXJhdGlvbigKLSAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRl
cmZseVRvSGF2ZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHkpLAorICAgICAgICAg
ICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0
b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5KSwKICAgICAgICAgICAgICAgICBtX2NhbGxGcmFtZSwg
b2JqZWN0KTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTk0ODcsNyArOTQ5NSw2IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKC1pbml0aWFsT3V0T2ZMaW5lQ2FwYWNp
dHkgLSAxKSwgbV9vdXQuY29uc3RJbnQzMigtMSksCiAgICAgICAgICAgICBtX291dC5pbnQ2NFpl
cm8sIG1faGVhcHMucHJvcGVydGllcy5hdEFueU51bWJlcigpKTsKICAgICAgICAgCi0gICAgICAg
IG51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHkocmVzdWx0LCBvYmplY3QpOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKQEAgLTk1MDEsNyArOTUwOCw3IEBAIHByaXZhdGU6
CiAgICAgICAgIAogICAgICAgICBpZiAocHJldmlvdXMtPmNvdWxkSGF2ZUluZGV4aW5nSGVhZGVy
KCkpIHsKICAgICAgICAgICAgIExWYWx1ZSBuZXdBbGxvY1NpemUgPSBtX291dC5jb25zdEludFB0
cihuZXdTaXplKTsgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgcmV0dXJuIHZtQ2Fs
bChwb2ludGVyVHlwZSgpLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRl
cmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSksIG1fY2FsbEZyYW1lLCBvYmplY3QsIG5ld0FsbG9j
U2l6ZSk7CisgICAgICAgICAgICByZXR1cm4gdm1DYWxsKHBvaW50ZXJUeXBlKCksIG1fb3V0Lm9w
ZXJhdGlvbihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2UpLCBtX2NhbGxG
cmFtZSwgb2JqZWN0LCBuZXdBbGxvY1NpemUpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBMVmFsdWUgcmVzdWx0ID0gYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VXaXRoU2l6ZUltcGwobmV3
U2l6ZSk7CkBAIC05NTIwLDggKzk1MjcsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQu
Y29uc3RJbnQzMigtbmV3U2l6ZSAtIDEpLCBtX291dC5jb25zdEludDMyKC1vbGRTaXplIC0gMSks
CiAgICAgICAgICAgICBtX291dC5pbnQ2NFplcm8sIG1faGVhcHMucHJvcGVydGllcy5hdEFueU51
bWJlcigpKTsKICAgICAgICAgCi0gICAgICAgIG51a2VTdHJ1Y3R1cmVBbmRTZXRCdXR0ZXJmbHko
cmVzdWx0LCBvYmplY3QpOwotICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CiAgICAgCkBAIC05NTQ2LDE0ICs5NTUxLDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBzbG93
QnV0dGVyZmx5VmFsdWUgPSBsYXp5U2xvd1BhdGgoCiAgICAgICAgICAgICAgICAgWz1dIChjb25z
dCBWZWN0b3I8TG9jYXRpb24+JiBsb2NhdGlvbnMpIC0+IFJlZlB0cjxMYXp5U2xvd1BhdGg6Okdl
bmVyYXRvcj4gewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlTGF6eUNhbGxHZW5l
cmF0b3IoCi0gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25BbGxvY2F0ZVByb3BlcnR5
U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgICBvcGVy
YXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHksCiAg
ICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCkpOwogICAgICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgc2xvd0J1dHRlcmZs
eVZhbHVlID0gbGF6eVNsb3dQYXRoKAogICAgICAgICAgICAgICAgIFs9XSAoY29uc3QgVmVjdG9y
PExvY2F0aW9uPiYgbG9jYXRpb25zKSAtPiBSZWZQdHI8TGF6eVNsb3dQYXRoOjpHZW5lcmF0b3I+
IHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxhenlDYWxsR2VuZXJhdG9yKAot
ICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2Us
IGxvY2F0aW9uc1swXS5kaXJlY3RHUFIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJh
dGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlLCBsb2NhdGlvbnNbMF0uZGlyZWN0R1BS
KCksCiAgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
c2l6ZUluVmFsdWVzKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZpc2lvbiAyMDk2MjMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMyLDcgKzMzMiw3IEBAIHN0YXRpYyB2b2lkIHJlY29tcHV0ZURlcGVuZGVudE9w
dGlvbnMoKQogICAgIE9wdGlvbnM6OnVzZUZUTEpJVCgpID0gZmFsc2U7CiAjZW5kaWYKICAgICAK
LSNpZiAxIHx8ICghQ1BVKFg4Nl82NCkgJiYgIUNQVShBUk02NCkpCisjaWYgMCB8fCAoIUNQVShY
ODZfNjQpICYmICFDUFUoQVJNNjQpKQogICAgIE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRHQygpID0g
ZmFsc2U7CiAjZW5kaWYKICAgICAK
</data>
<flag name="review"
          id="319105"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>