<?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>123302</bug_id>
          
          <creation_ts>2013-10-24 17:14:43 -0700</creation_ts>
          <short_desc>Get rid of InlineStart so that I don&apos;t have to implement it in FTL</short_desc>
          <delta_ts>2013-10-28 11:02:58 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>112840</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>943363</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-24 17:14:43 -0700</bug_when>
    <thetext>I was going to implement it in the FTL but then I realized that the node is thoroughly pointless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943364</commentid>
    <comment_count>1</comment_count>
      <attachid>215123</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-24 17:17:12 -0700</bug_when>
    <thetext>Created attachment 215123
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943376</commentid>
    <comment_count>2</comment_count>
      <attachid>215126</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-24 17:48:49 -0700</bug_when>
    <thetext>Created attachment 215126
almost done

This patch is basically ready except that it reveals some bugs in the FTL by virtue of increasing FTL coverage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943378</commentid>
    <comment_count>3</comment_count>
      <attachid>215127</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-24 18:08:29 -0700</bug_when>
    <thetext>Created attachment 215127
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943424</commentid>
    <comment_count>4</comment_count>
      <attachid>215127</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-10-24 20:38:38 -0700</bug_when>
    <thetext>Comment on attachment 215127
the patch

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

r=me

&gt; Source/JavaScriptCore/ftl/FTLLink.cpp:61
&gt; +        state.jitCode-&gt;common.inlineCallFrames = state.graph.m_inlineCallFrames.release();

I believe std::move() (rather than release()) is the preferred way to do this these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944158</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-28 11:02:58 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/158116</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215123</attachid>
            <date>2013-10-24 17:17:12 -0700</date>
            <delta_ts>2013-10-24 17:48:49 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>16220</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3OTY2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDEzLTEwLTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R2V0IHJpZCBvZiBJbmxpbmVTdGFydCBzbyB0aGF0IEkgZG9uJ3QgaGF2ZSB0byBpbXBsZW1lbnQg
aXQgaW4gRlRMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjMzMDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIFdvcmsgaW4gcHJvZ3Jlc3MuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjo6OmV4ZWN1dGVFZmZlY3Rz
KToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyk6CisgICAgICAgICogZGZnL0RGR0Ns
b2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBk
ZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4
dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKiBkZmcvREZHTm9k
ZS5oOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3RhY2tMYXlvdXRQaGFzZTo6cnVuKToKKwogMjAxMy0xMC0yNCAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQmV0dGVyIHdheSB0byBmaXggcGFy
dCBvZiBicm9rZW4gQyBMb29wIExMSU5UIGJ1aWxkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAko
cmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQxLDcgKzE1NDEsNiBA
QCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCiAgICAgY2FzZSBQaGFudG9tOgotICAgIGNhc2UgSW5saW5lU3RhcnQ6
CiAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKICAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOgog
ICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVybjoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxNTc5MDQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMwNCwxMSArMTMwNCwxMSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJ
bmxpbmluZyhOb2RlCiAgICAgdW5zaWduZWQgb2xkSW5kZXggPSBtX2N1cnJlbnRJbmRleDsKICAg
ICBtX2N1cnJlbnRJbmRleCA9IDA7CiAKLSAgICBJbmxpbmVTdGFydERhdGEqIGlubGluZVN0YXJ0
RGF0YSA9ICZtX2dyYXBoLm1faW5saW5lU3RhcnREYXRhLmFsbG9jKCk7Ci0gICAgaW5saW5lU3Rh
cnREYXRhLT5hcmd1bWVudFBvc2l0aW9uU3RhcnQgPSBhcmd1bWVudFBvc2l0aW9uU3RhcnQ7Ci0g
ICAgaW5saW5lU3RhcnREYXRhLT5jYWxsZWVWYXJpYWJsZSA9IDA7CisgICAgSW5saW5lVmFyaWFi
bGVEYXRhIGlubGluZVZhcmlhYmxlRGF0YTsKKyAgICBpbmxpbmVWYXJpYWJsZURhdGEuaW5saW5l
Q2FsbEZyYW1lID0gbV9pbmxpbmVTdGFja1RvcC0+bV9pbmxpbmVDYWxsRnJhbWU7CisgICAgaW5s
aW5lVmFyaWFibGVEYXRhLmFyZ3VtZW50UG9zaXRpb25TdGFydCA9IGFyZ3VtZW50UG9zaXRpb25T
dGFydDsKKyAgICBpbmxpbmVWYXJpYWJsZURhdGEuY2FsbGVlVmFyaWFibGUgPSAwOwogICAgIAot
ICAgIGFkZFRvR3JhcGgoSW5saW5lU3RhcnQsIE9wSW5mbyhpbmxpbmVTdGFydERhdGEpKTsKICAg
ICBSRUxFQVNFX0FTU0VSVCgKICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9pbmxpbmVDYWxs
RnJhbWUtPmlzQ2xvc3VyZUNhbGwKICAgICAgICAgPT0gY2FsbExpbmtTdGF0dXMuaXNDbG9zdXJl
Q2FsbCgpKTsKQEAgLTEzMjEsOSArMTMyMSwxMSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVJbmxpbmluZyhOb2RlCiAgICAgICAgIGNhbGxlZVZhcmlhYmxlLT5tZXJnZVNob3VsZE5ldmVy
VW5ib3godHJ1ZSk7CiAgICAgICAgIHNjb3BlVmFyaWFibGUtPm1lcmdlU2hvdWxkTmV2ZXJVbmJv
eCh0cnVlKTsKICAgICAgICAgCi0gICAgICAgIGlubGluZVN0YXJ0RGF0YS0+Y2FsbGVlVmFyaWFi
bGUgPSBjYWxsZWVWYXJpYWJsZTsKKyAgICAgICAgaW5saW5lVmFyaWFibGVEYXRhLmNhbGxlZVZh
cmlhYmxlID0gY2FsbGVlVmFyaWFibGU7CiAgICAgfQogICAgIAorICAgIG1fZ3JhcGgubV9pbmxp
bmVWYXJpYWJsZURhdGEuYXBwZW5kKGlubGluZVZhcmlhYmxlRGF0YSk7CisgICAgCiAgICAgcGFy
c2VDb2RlQmxvY2soKTsKICAgICAKICAgICBtX2N1cnJlbnRJbmRleCA9IG9sZEluZGV4OwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlzaW9uIDE1
NzkwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZQogICAgIGNhc2UgRmx1c2g6CiAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAg
ICAgY2FzZSBTZXRBcmd1bWVudDoKLSAgICBjYXNlIElubGluZVN0YXJ0OgogICAgIGNhc2UgQnJl
YWtwb2ludDoKICAgICBjYXNlIFBoYW50b21Bcmd1bWVudHM6CiAgICAgY2FzZSBKdW1wOgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lv
biAxNTc5MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05MDcsNyArOTA3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2Fz
ZSBGbHVzaDoKICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAgICAgIGNhc2UgR2V0TG9j
YWxVbmxpbmtlZDoKLSAgICAgICAgY2FzZSBJbmxpbmVTdGFydDoKICAgICAgICAgY2FzZSBHZXRN
eVNjb3BlOgogICAgICAgICBjYXNlIEdldENsb3N1cmVWYXI6CiAgICAgICAgIGNhc2UgR2V0R2xv
YmFsVmFyOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24g
MTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02MSw2ICs2MSwxMiBAQCBzdHJ1Y3QgU3RvcmFnZUFjY2Vzc0RhdGEgewogICAg
IHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXI7CiB9OwogCitzdHJ1Y3QgSW5saW5lVmFyaWFibGVE
YXRhIHsKKyAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZTsKKyAgICB1bnNpZ25l
ZCBhcmd1bWVudFBvc2l0aW9uU3RhcnQ7CisgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiBjYWxsZWVW
YXJpYWJsZTsKK307CisKIGVudW0gQWRkU3BlY3VsYXRpb25Nb2RlIHsKICAgICBEb250U3BlY3Vs
YXRlSW50MzIsCiAgICAgU3BlY3VsYXRlSW50MzJBbmRUcnVuY2F0ZUNvbnN0YW50cywKQEAgLTc4
OSw3ICs3OTUsNyBAQCBwdWJsaWM6CiAgICAgU2VnbWVudGVkVmVjdG9yPFN0cnVjdHVyZVRyYW5z
aXRpb25EYXRhLCA4PiBtX3N0cnVjdHVyZVRyYW5zaXRpb25EYXRhOwogICAgIFNlZ21lbnRlZFZl
Y3RvcjxOZXdBcnJheUJ1ZmZlckRhdGEsIDQ+IG1fbmV3QXJyYXlCdWZmZXJEYXRhOwogICAgIFNl
Z21lbnRlZFZlY3RvcjxTd2l0Y2hEYXRhLCA0PiBtX3N3aXRjaERhdGE7Ci0gICAgU2VnbWVudGVk
VmVjdG9yPElubGluZVN0YXJ0RGF0YSwgND4gbV9pbmxpbmVTdGFydERhdGE7CisgICAgVmVjdG9y
PElubGluZVZhcmlhYmxlRGF0YSwgND4gbV9pbmxpbmVWYXJpYWJsZURhdGE7CiAgICAgT3duUHRy
PElubGluZUNhbGxGcmFtZVNldD4gbV9pbmxpbmVDYWxsRnJhbWVzOwogICAgIGJvb2wgbV9oYXNB
cmd1bWVudHM7CiAgICAgSGFzaFNldDxFeGVjdXRhYmxlQmFzZSo+IG1fZXhlY3V0YWJsZXNXaG9z
ZUFyZ3VtZW50c0VzY2FwZWQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAko
cmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEzOSwxMSArMTM5LDYgQEAgc3RydWN0IFN3aXRjaERhdGEgewog
ICAgIGJvb2wgZGlkVXNlSnVtcFRhYmxlOwogfTsKIAotc3RydWN0IElubGluZVN0YXJ0RGF0YSB7
Ci0gICAgdW5zaWduZWQgYXJndW1lbnRQb3NpdGlvblN0YXJ0OwotICAgIFZhcmlhYmxlQWNjZXNz
RGF0YSogY2FsbGVlVmFyaWFibGU7Ci19OwotCiAvLyBUaGlzIHR5cGUgdXNlZCBpbiBwYXNzaW5n
IGFuIGltbWVkaWF0ZSBhcmd1bWVudCB0byBOb2RlIGNvbnN0cnVjdG9yOwogLy8gZGlzdGluZ3Vp
c2hlcyBhbiBpbW1lZGlhdGUgdmFsdWUgKHR5cGljYWxseSBhbiBpbmRleCBpbnRvIGEgQ29kZUJs
b2NrIGRhdGEgc3RydWN0dXJlIC0gCiAvLyBhIGNvbnN0YW50IGluZGV4LCBhcmd1bWVudCwgb3Ig
aWRlbnRpZmllcikgZnJvbSBhIE5vZGUqLgpAQCAtMTEyNCwxNyArMTExOSw2IEBAIHN0cnVjdCBO
b2RlIHsKICAgICAgICAgbV92aXJ0dWFsUmVnaXN0ZXIgPSB2aXJ0dWFsUmVnaXN0ZXI7CiAgICAg
fQogICAgIAotICAgIGJvb2wgaGFzSW5saW5lU3RhcnREYXRhKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBvcCgpID09IElubGluZVN0YXJ0OwotICAgIH0KLSAgICAKLSAgICBJbmxpbmVTdGFydERh
dGEqIGlubGluZVN0YXJ0RGF0YSgpCi0gICAgewotICAgICAgICBBU1NFUlQoaGFzSW5saW5lU3Rh
cnREYXRhKCkpOwotICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PElubGluZVN0YXJ0RGF0YSo+
KG1fb3BJbmZvKTsKLSAgICB9Ci0gICAgCiAgICAgYm9vbCBoYXNFeGVjdXRpb25Db3VudGVyKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBvcCgpID09IENvdW50RXhlY3V0aW9uOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMTU3OTA0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC05MSwxMSArOTEsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgLyog
TWFya2VyIGZvciBhbiBhcmd1bWVudCBiZWluZyBzZXQgYXQgdGhlIHByb2xvZ3VlIG9mIGEgZnVu
Y3Rpb24uICovXAogICAgIG1hY3JvKFNldEFyZ3VtZW50LCAwIHwgTm9kZURvZXNOb3RFeGl0KSBc
CiAgICAgXAotICAgIC8qIEhpbnQgdGhhdCBpbmxpbmluZyBiZWdpbnMgaGVyZS4gTm8gY29kZSBp
cyBnZW5lcmF0ZWQgZm9yIHRoaXMgbm9kZS4gSXQncyBvbmx5ICovXAotICAgIC8qIHVzZWQgZm9y
IGNvcHlpbmcgT1NSIGRhdGEgaW50byBpbmxpbmUgZnJhbWUgZGF0YSwgdG8gc3VwcG9ydCByZWlm
aWNhdGlvbiBvZiAqL1wKLSAgICAvKiBjYWxsIGZyYW1lcyBvZiBpbmxpbmVkIGZ1bmN0aW9ucy4g
Ki9cCi0gICAgbWFjcm8oSW5saW5lU3RhcnQsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlRG9lc05v
dEV4aXQpIFwKLSAgICBcCiAgICAgLyogTm9kZXMgZm9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4gKi9c
CiAgICAgbWFjcm8oQml0QW5kLCBOb2RlUmVzdWx0SW50MzIgfCBOb2RlTXVzdEdlbmVyYXRlKSBc
CiAgICAgbWFjcm8oQml0T3IsIE5vZGVSZXN1bHRJbnQzMiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNTc5MDQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTg2LDcgKzU4Niw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIAogICAgICAgICAvLyBUaGVzZSBnZXRzIGlnbm9yZWQgYmVjYXVzZSBp
dCBkb2Vzbid0IGRvIGFueXRoaW5nLgotICAgICAgICBjYXNlIElubGluZVN0YXJ0OgogICAgICAg
ICBjYXNlIENvdW50RXhlY3V0aW9uOgogICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICAg
ICAgY2FzZSBGbHVzaDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oCShyZXZpc2lvbiAxNTc5MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDcgKzEyOSw2IEBA
IGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3QKICAgICBjYXNlIFBoYW50
b21Mb2NhbDoKICAgICBjYXNlIEdldExvY2FsVW5saW5rZWQ6CiAgICAgY2FzZSBTZXRBcmd1bWVu
dDoKLSAgICBjYXNlIElubGluZVN0YXJ0OgogICAgIGNhc2UgQml0QW5kOgogICAgIGNhc2UgQml0
T3I6CiAgICAgY2FzZSBCaXRYb3I6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE1NzkwNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5NTgsMTEgKzE5NTgsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCi0gICAg
Y2FzZSBJbmxpbmVTdGFydDogewotICAgICAgICBjb21waWxlSW5saW5lU3RhcnQobm9kZSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2UgTW92SGludDoKICAgICBjYXNlIFpvbWJp
ZUhpbnQ6IHsKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAko
cmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI2OSwxMSArMjI2OSw2IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgICAgICAKLSAgICBjYXNlIElubGluZVN0YXJ0OiB7Ci0gICAgICAgIGNvbXBpbGVJbmxp
bmVTdGFydChub2RlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgY2FzZSBNb3ZIaW50
OgogICAgIGNhc2UgWm9tYmllSGludDogewogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAJKHJldmlzaW9uIDE1NzkwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTU3LDM3ICsxNTU3
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1vdkhpbnRBbmRDaAogICAgIG5vUmVz
dWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5saW5lU3RhcnQo
Tm9kZSogbm9kZSkKLXsKLSAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IG5v
ZGUtPmNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lOwotICAgIElubGluZVN0YXJ0RGF0YSogZGF0
YSA9IG5vZGUtPmlubGluZVN0YXJ0RGF0YSgpOwotICAgIGludCBhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyA9IGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKTsKLSAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOyArK2kpIHsKLSAgICAgICAg
QXJndW1lbnRQb3NpdGlvbiYgcG9zaXRpb24gPSBtX2ppdC5ncmFwaCgpLm1fYXJndW1lbnRQb3Np
dGlvbnNbCi0gICAgICAgICAgICBkYXRhLT5hcmd1bWVudFBvc2l0aW9uU3RhcnQgKyBpXTsKLSAg
ICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZSA9IHBvc2l0aW9uLnNvbWVWYXJpYWJs
ZSgpOwotICAgICAgICBWYWx1ZVNvdXJjZSBzb3VyY2U7Ci0gICAgICAgIGlmICghdmFyaWFibGUp
Ci0gICAgICAgICAgICBzb3VyY2UgPSBWYWx1ZVNvdXJjZShTb3VyY2VJc0RlYWQpOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIHNvdXJjZSA9IFZhbHVlU291cmNlOjpmb3JGbHVzaEZvcm1h
dCgKLSAgICAgICAgICAgICAgICB2YXJpYWJsZS0+bWFjaGluZUxvY2FsKCksCi0gICAgICAgICAg
ICAgICAgbV9qaXQuZ3JhcGgoKS5tX2FyZ3VtZW50UG9zaXRpb25zW2RhdGEtPmFyZ3VtZW50UG9z
aXRpb25TdGFydCArIGldLmZsdXNoRm9ybWF0KCkpOwotICAgICAgICB9Ci0gICAgICAgIGlubGlu
ZUNhbGxGcmFtZS0+YXJndW1lbnRzW2ldID0gc291cmNlLnZhbHVlUmVjb3ZlcnkoKTsKLSAgICB9
Ci0gICAgCi0gICAgUkVMRUFTRV9BU1NFUlQoaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxs
ID09ICEhZGF0YS0+Y2FsbGVlVmFyaWFibGUpOwotICAgIAotICAgIGlmIChpbmxpbmVDYWxsRnJh
bWUtPmlzQ2xvc3VyZUNhbGwpIHsKLSAgICAgICAgVmFsdWVTb3VyY2Ugc291cmNlID0gVmFsdWVT
b3VyY2U6OmZvckZsdXNoRm9ybWF0KAotICAgICAgICAgICAgZGF0YS0+Y2FsbGVlVmFyaWFibGUt
Pm1hY2hpbmVMb2NhbCgpLAotICAgICAgICAgICAgZGF0YS0+Y2FsbGVlVmFyaWFibGUtPmZsdXNo
Rm9ybWF0KCkpOwotICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZVJlY292ZXJ5ID0gc291
cmNlLnZhbHVlUmVjb3ZlcnkoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQo
aW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVSZWNvdmVyeS5pc0NvbnN0YW50KCkpOwotfQotCiB2b2lk
IFNwZWN1bGF0aXZlSklUOjpiYWlsKCkKIHsKICAgICBtX2NvbXBpbGVPa2F5ID0gdHJ1ZTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJl
dmlzaW9uIDE1NzkwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNzA3LDcgKzcwNyw2IEBAIHB1YmxpYzoKICAgICAK
ICAgICB2b2lkIGNvbXBpbGVNb3ZIaW50KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVNb3ZIaW50
QW5kQ2hlY2soTm9kZSopOwotICAgIHZvaWQgY29tcGlsZUlubGluZVN0YXJ0KE5vZGUqKTsKIAog
ICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVVSW50MzJUb051bWJlcihOb2RlKik7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcAko
cmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xh
eW91dFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDM1ICsxNjYsNDIgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGFsbG9jYXRpb25bY29k
ZUJsb2NrKCktPmFjdGl2YXRpb25SZWdpc3RlcigpLnRvTG9jYWwoKV0pKTsKICAgICAgICAgfQog
ICAgICAgICAKLSAgICAgICAgZm9yIChJbmxpbmVDYWxsRnJhbWVTZXQ6Oml0ZXJhdG9yIGl0ZXIg
PSBtX2dyYXBoLm1faW5saW5lQ2FsbEZyYW1lcy0+YmVnaW4oKTsgISFpdGVyOyArK2l0ZXIpIHsK
LSAgICAgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lID0gKml0ZXI7Ci0g
ICAgICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZS0+dXNlc0FyZ3VtZW50
cygpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaW5saW5lQ2FsbEZy
YW1lLT5hcmd1bWVudHNSZWdpc3RlciA9IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKAotICAgICAg
ICAgICAgICAgIGFsbG9jYXRpb25bbV9ncmFwaC5hcmd1bWVudHNSZWdpc3RlckZvcihpbmxpbmVD
YWxsRnJhbWUpLnRvTG9jYWwoKV0pOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2dyYXBo
Lm1faW5saW5lVmFyaWFibGVEYXRhLnNpemUoKTsgaS0tOykgeworICAgICAgICAgICAgSW5saW5l
VmFyaWFibGVEYXRhIGRhdGEgPSBtX2dyYXBoLm1faW5saW5lVmFyaWFibGVEYXRhW2ldOworICAg
ICAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSBkYXRhLmlubGluZUNh
bGxGcmFtZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+
ZXhlY3V0YWJsZS0+dXNlc0FyZ3VtZW50cygpKSB7CisgICAgICAgICAgICAgICAgaW5saW5lQ2Fs
bEZyYW1lLT5hcmd1bWVudHNSZWdpc3RlciA9IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKAorICAg
ICAgICAgICAgICAgICAgICBhbGxvY2F0aW9uW21fZ3JhcGguYXJndW1lbnRzUmVnaXN0ZXJGb3Io
aW5saW5lQ2FsbEZyYW1lKS50b0xvY2FsKCldKTsKKworICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKAorICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChhbGxv
Y2F0aW9uW3VubW9kaWZpZWRBcmd1bWVudHNSZWdpc3RlcigKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fZ3JhcGguYXJndW1lbnRzUmVnaXN0ZXJGb3IoaW5saW5lQ2FsbEZyYW1lKSkudG9Mb2Nh
bCgpXSkKKyAgICAgICAgICAgICAgICAgICAgPT0gdW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVy
KGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzUmVnaXN0ZXIpKTsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIAotICAgICAgICAgICAgLy8gU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbmxpbmVT
dGFydCgpIHdpbGwgZG8gdGhlIHNhbWUgdGhpbmcgdGhhdCB0aGlzIGRvZXMsCi0gICAgICAgICAg
ICAvLyBmb3IgY2FzZXMgd2hlcmUgdXNlc0FyZ3VtZW50cygpIGlzIHRydWUuIFRoYXQncyBPSy4g
Y29tcGlsZUlubGluZVN0YXJ0KCkgaXMKLSAgICAgICAgICAgIC8vIGRlc2lnbmVkIGZvciBjYXNl
cyB3aGVyZSB0aGUgYXJndW1lbnRzIGVuZCB1cCBoYXZpbmcgaW50ZXJlc3RpbmcgZGF0YQotICAg
ICAgICAgICAgLy8gcmVwcmVzZW50YXRpb25zLCBidXQgdGhhdCBvbmx5IGhhcHBlbnMgaWYgdGhl
eSdyZSBub3QgY2FwdHVyZWQuIEFuZCBpZiB0aGV5Ci0gICAgICAgICAgICAvLyBhcmUgY2FwdHVy
ZWQsIHRoZW4gd2Ugd2FudCB0byBtYWtlIHN1cmUgZXZlcnlvbmUgYWdyZWVzIG9uIHdoZXJlIHRo
ZXkgbGFuZGVkCi0gICAgICAgICAgICAvLyBpbiB0aGUgc3RhY2sgYmVmb3JlIHdlIHN0YXJ0IGdl
bmVyYXRpbmcgYW55IGNvZGUgLSBzaW5jZSBTcGVjdWxhdGl2ZUpJVCBkb2VzCi0gICAgICAgICAg
ICAvLyBub3QgaGF2ZSB0byBnZW5lcmF0ZSBjb2RlIGluIGFueSBwYXJ0aWN1bGFyIG9yZGVyLgog
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9IGlubGluZUNhbGxGcmFtZS0+YXJn
dW1lbnRzLnNpemUoKTsgYXJndW1lbnQtLSA+IDE7KSB7Ci0gICAgICAgICAgICAgICAgVmlydHVh
bFJlZ2lzdGVyIG9yaWdpbmFsUmVnaXN0ZXIgPSBWaXJ0dWFsUmVnaXN0ZXIoCi0gICAgICAgICAg
ICAgICAgICAgIHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KS5vZmZzZXQoKSAr
Ci0gICAgICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQpOwotICAg
ICAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciBuZXdSZWdpc3RlciA9Ci0gICAgICAgICAgICAg
ICAgICAgIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGFsbG9jYXRpb25bb3JpZ2luYWxSZWdpc3Rl
ci50b0xvY2FsKCldKTsKLSAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50
c1thcmd1bWVudF0gPQotICAgICAgICAgICAgICAgICAgICBWYWx1ZVJlY292ZXJ5OjpkaXNwbGFj
ZWRJbkpTU3RhY2sobmV3UmVnaXN0ZXIsIERhdGFGb3JtYXRKUyk7CisgICAgICAgICAgICAgICAg
QXJndW1lbnRQb3NpdGlvbiYgcG9zaXRpb24gPSBtX2dyYXBoLm1fYXJndW1lbnRQb3NpdGlvbnNb
CisgICAgICAgICAgICAgICAgICAgIGRhdGEuYXJndW1lbnRQb3NpdGlvblN0YXJ0ICsgYXJndW1l
bnRdOworICAgICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGUgPSBwb3Np
dGlvbi5zb21lVmFyaWFibGUoKTsKKyAgICAgICAgICAgICAgICBWYWx1ZVNvdXJjZSBzb3VyY2U7
CisgICAgICAgICAgICAgICAgaWYgKCF2YXJpYWJsZSkKKyAgICAgICAgICAgICAgICAgICAgc291
cmNlID0gVmFsdWVTb3VyY2UoU291cmNlSXNEZWFkKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgc291cmNlID0gVmFsdWVTb3VyY2U6OmZvckZsdXNoRm9ybWF0
KAorICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUtPm1hY2hpbmVMb2NhbCgpLCB2YXJp
YWJsZS0+Zmx1c2hGb3JtYXQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzW2FyZ3VtZW50XSA9IHNvdXJjZS52YWx1ZVJlY292
ZXJ5KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKAotICAgICAgICAgICAgICAgIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGFsbG9jYXRp
b25bCi0gICAgICAgICAgICAgICAgICAgIHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3RlcigKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGguYXJndW1lbnRzUmVnaXN0ZXJGb3IoaW5saW5l
Q2FsbEZyYW1lKSkudG9Mb2NhbCgpXSkKLSAgICAgICAgICAgICAgICA9PSB1bm1vZGlmaWVkQXJn
dW1lbnRzUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3RlcikpOworICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsID09
ICEhZGF0YS0+Y2FsbGVlVmFyaWFibGUpOworICAgICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFt
ZS0+aXNDbG9zdXJlQ2FsbCkgeworICAgICAgICAgICAgICAgIFZhbHVlU291cmNlIHNvdXJjZSA9
IFZhbHVlU291cmNlOjpmb3JGbHVzaEZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgZGF0YS0+
Y2FsbGVlVmFyaWFibGUtPm1hY2hpbmVMb2NhbCgpLAorICAgICAgICAgICAgICAgICAgICBkYXRh
LT5jYWxsZWVWYXJpYWJsZS0+Zmx1c2hGb3JtYXQoKSk7CisgICAgICAgICAgICAgICAgaW5saW5l
Q2FsbEZyYW1lLT5jYWxsZWVSZWNvdmVyeSA9IHNvdXJjZS52YWx1ZVJlY292ZXJ5KCk7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpbmxpbmVDYWxs
RnJhbWUtPmNhbGxlZVJlY292ZXJ5LmlzQ29uc3RhbnQoKSk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIGlmIChzeW1ib2xUYWJsZSkgewpAQCAtMjIzLDcgKzIzMCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgLy8gRmluYWxseSwg
Zml4IEdldExvY2FsVW5saW5rZWQncy4KKyAgICAgICAgLy8gRml4IEdldExvY2FsVW5saW5rZWQn
cyB2YXJpYWJsZSByZWZlcmVuY2VzLgogICAgICAgICBpZiAoaGFzR2V0TG9jYWxVbmxpbmtlZCkg
ewogICAgICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBtX2dyYXBoLm51bUJs
b2NrcygpOyBibG9ja0luZGV4LS07KSB7CiAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogYmxv
Y2sgPSBtX2dyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215126</attachid>
            <date>2013-10-24 17:48:49 -0700</date>
            <delta_ts>2013-10-24 18:08:29 -0700</delta_ts>
            <desc>almost done</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>16372</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3OTY2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDEzLTEwLTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R2V0IHJpZCBvZiBJbmxpbmVTdGFydCBzbyB0aGF0IEkgZG9uJ3QgaGF2ZSB0byBpbXBsZW1lbnQg
aXQgaW4gRlRMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjMzMDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIFdvcmsgaW4gcHJvZ3Jlc3MuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjo6OmV4ZWN1dGVFZmZlY3Rz
KToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyk6CisgICAgICAgICogZGZnL0RGR0Ns
b2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBk
ZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4
dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKiBkZmcvREZHTm9k
ZS5oOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3RhY2tMYXlvdXRQaGFzZTo6cnVuKToKKwogMjAxMy0xMC0yNCAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQmV0dGVyIHdheSB0byBmaXggcGFy
dCBvZiBicm9rZW4gQyBMb29wIExMSU5UIGJ1aWxkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAko
cmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQxLDcgKzE1NDEsNiBA
QCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCiAgICAgY2FzZSBQaGFudG9tOgotICAgIGNhc2UgSW5saW5lU3RhcnQ6
CiAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKICAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOgog
ICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVybjoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAxNTc5MDQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTMwNCwxMSArMTMwNCwxMSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJ
bmxpbmluZyhOb2RlCiAgICAgdW5zaWduZWQgb2xkSW5kZXggPSBtX2N1cnJlbnRJbmRleDsKICAg
ICBtX2N1cnJlbnRJbmRleCA9IDA7CiAKLSAgICBJbmxpbmVTdGFydERhdGEqIGlubGluZVN0YXJ0
RGF0YSA9ICZtX2dyYXBoLm1faW5saW5lU3RhcnREYXRhLmFsbG9jKCk7Ci0gICAgaW5saW5lU3Rh
cnREYXRhLT5hcmd1bWVudFBvc2l0aW9uU3RhcnQgPSBhcmd1bWVudFBvc2l0aW9uU3RhcnQ7Ci0g
ICAgaW5saW5lU3RhcnREYXRhLT5jYWxsZWVWYXJpYWJsZSA9IDA7CisgICAgSW5saW5lVmFyaWFi
bGVEYXRhIGlubGluZVZhcmlhYmxlRGF0YTsKKyAgICBpbmxpbmVWYXJpYWJsZURhdGEuaW5saW5l
Q2FsbEZyYW1lID0gbV9pbmxpbmVTdGFja1RvcC0+bV9pbmxpbmVDYWxsRnJhbWU7CisgICAgaW5s
aW5lVmFyaWFibGVEYXRhLmFyZ3VtZW50UG9zaXRpb25TdGFydCA9IGFyZ3VtZW50UG9zaXRpb25T
dGFydDsKKyAgICBpbmxpbmVWYXJpYWJsZURhdGEuY2FsbGVlVmFyaWFibGUgPSAwOwogICAgIAot
ICAgIGFkZFRvR3JhcGgoSW5saW5lU3RhcnQsIE9wSW5mbyhpbmxpbmVTdGFydERhdGEpKTsKICAg
ICBSRUxFQVNFX0FTU0VSVCgKICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9pbmxpbmVDYWxs
RnJhbWUtPmlzQ2xvc3VyZUNhbGwKICAgICAgICAgPT0gY2FsbExpbmtTdGF0dXMuaXNDbG9zdXJl
Q2FsbCgpKTsKQEAgLTEzMjEsOSArMTMyMSwxMSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVJbmxpbmluZyhOb2RlCiAgICAgICAgIGNhbGxlZVZhcmlhYmxlLT5tZXJnZVNob3VsZE5ldmVy
VW5ib3godHJ1ZSk7CiAgICAgICAgIHNjb3BlVmFyaWFibGUtPm1lcmdlU2hvdWxkTmV2ZXJVbmJv
eCh0cnVlKTsKICAgICAgICAgCi0gICAgICAgIGlubGluZVN0YXJ0RGF0YS0+Y2FsbGVlVmFyaWFi
bGUgPSBjYWxsZWVWYXJpYWJsZTsKKyAgICAgICAgaW5saW5lVmFyaWFibGVEYXRhLmNhbGxlZVZh
cmlhYmxlID0gY2FsbGVlVmFyaWFibGU7CiAgICAgfQogICAgIAorICAgIG1fZ3JhcGgubV9pbmxp
bmVWYXJpYWJsZURhdGEuYXBwZW5kKGlubGluZVZhcmlhYmxlRGF0YSk7CisgICAgCiAgICAgcGFy
c2VDb2RlQmxvY2soKTsKICAgICAKICAgICBtX2N1cnJlbnRJbmRleCA9IG9sZEluZGV4OwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlzaW9uIDE1
NzkwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZQogICAgIGNhc2UgRmx1c2g6CiAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAg
ICAgY2FzZSBTZXRBcmd1bWVudDoKLSAgICBjYXNlIElubGluZVN0YXJ0OgogICAgIGNhc2UgQnJl
YWtwb2ludDoKICAgICBjYXNlIFBoYW50b21Bcmd1bWVudHM6CiAgICAgY2FzZSBKdW1wOgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lv
biAxNTc5MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05MDcsNyArOTA3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2Fz
ZSBGbHVzaDoKICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAgICAgIGNhc2UgR2V0TG9j
YWxVbmxpbmtlZDoKLSAgICAgICAgY2FzZSBJbmxpbmVTdGFydDoKICAgICAgICAgY2FzZSBHZXRN
eVNjb3BlOgogICAgICAgICBjYXNlIEdldENsb3N1cmVWYXI6CiAgICAgICAgIGNhc2UgR2V0R2xv
YmFsVmFyOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24g
MTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02MSw2ICs2MSwxMiBAQCBzdHJ1Y3QgU3RvcmFnZUFjY2Vzc0RhdGEgewogICAg
IHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXI7CiB9OwogCitzdHJ1Y3QgSW5saW5lVmFyaWFibGVE
YXRhIHsKKyAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZTsKKyAgICB1bnNpZ25l
ZCBhcmd1bWVudFBvc2l0aW9uU3RhcnQ7CisgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiBjYWxsZWVW
YXJpYWJsZTsKK307CisKIGVudW0gQWRkU3BlY3VsYXRpb25Nb2RlIHsKICAgICBEb250U3BlY3Vs
YXRlSW50MzIsCiAgICAgU3BlY3VsYXRlSW50MzJBbmRUcnVuY2F0ZUNvbnN0YW50cywKQEAgLTc4
OSw3ICs3OTUsNyBAQCBwdWJsaWM6CiAgICAgU2VnbWVudGVkVmVjdG9yPFN0cnVjdHVyZVRyYW5z
aXRpb25EYXRhLCA4PiBtX3N0cnVjdHVyZVRyYW5zaXRpb25EYXRhOwogICAgIFNlZ21lbnRlZFZl
Y3RvcjxOZXdBcnJheUJ1ZmZlckRhdGEsIDQ+IG1fbmV3QXJyYXlCdWZmZXJEYXRhOwogICAgIFNl
Z21lbnRlZFZlY3RvcjxTd2l0Y2hEYXRhLCA0PiBtX3N3aXRjaERhdGE7Ci0gICAgU2VnbWVudGVk
VmVjdG9yPElubGluZVN0YXJ0RGF0YSwgND4gbV9pbmxpbmVTdGFydERhdGE7CisgICAgVmVjdG9y
PElubGluZVZhcmlhYmxlRGF0YSwgND4gbV9pbmxpbmVWYXJpYWJsZURhdGE7CiAgICAgT3duUHRy
PElubGluZUNhbGxGcmFtZVNldD4gbV9pbmxpbmVDYWxsRnJhbWVzOwogICAgIGJvb2wgbV9oYXNB
cmd1bWVudHM7CiAgICAgSGFzaFNldDxFeGVjdXRhYmxlQmFzZSo+IG1fZXhlY3V0YWJsZXNXaG9z
ZUFyZ3VtZW50c0VzY2FwZWQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAko
cmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEzOSwxMSArMTM5LDYgQEAgc3RydWN0IFN3aXRjaERhdGEgewog
ICAgIGJvb2wgZGlkVXNlSnVtcFRhYmxlOwogfTsKIAotc3RydWN0IElubGluZVN0YXJ0RGF0YSB7
Ci0gICAgdW5zaWduZWQgYXJndW1lbnRQb3NpdGlvblN0YXJ0OwotICAgIFZhcmlhYmxlQWNjZXNz
RGF0YSogY2FsbGVlVmFyaWFibGU7Ci19OwotCiAvLyBUaGlzIHR5cGUgdXNlZCBpbiBwYXNzaW5n
IGFuIGltbWVkaWF0ZSBhcmd1bWVudCB0byBOb2RlIGNvbnN0cnVjdG9yOwogLy8gZGlzdGluZ3Vp
c2hlcyBhbiBpbW1lZGlhdGUgdmFsdWUgKHR5cGljYWxseSBhbiBpbmRleCBpbnRvIGEgQ29kZUJs
b2NrIGRhdGEgc3RydWN0dXJlIC0gCiAvLyBhIGNvbnN0YW50IGluZGV4LCBhcmd1bWVudCwgb3Ig
aWRlbnRpZmllcikgZnJvbSBhIE5vZGUqLgpAQCAtMTEyNCwxNyArMTExOSw2IEBAIHN0cnVjdCBO
b2RlIHsKICAgICAgICAgbV92aXJ0dWFsUmVnaXN0ZXIgPSB2aXJ0dWFsUmVnaXN0ZXI7CiAgICAg
fQogICAgIAotICAgIGJvb2wgaGFzSW5saW5lU3RhcnREYXRhKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBvcCgpID09IElubGluZVN0YXJ0OwotICAgIH0KLSAgICAKLSAgICBJbmxpbmVTdGFydERh
dGEqIGlubGluZVN0YXJ0RGF0YSgpCi0gICAgewotICAgICAgICBBU1NFUlQoaGFzSW5saW5lU3Rh
cnREYXRhKCkpOwotICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PElubGluZVN0YXJ0RGF0YSo+
KG1fb3BJbmZvKTsKLSAgICB9Ci0gICAgCiAgICAgYm9vbCBoYXNFeGVjdXRpb25Db3VudGVyKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBvcCgpID09IENvdW50RXhlY3V0aW9uOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMTU3OTA0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC05MSwxMSArOTEsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgLyog
TWFya2VyIGZvciBhbiBhcmd1bWVudCBiZWluZyBzZXQgYXQgdGhlIHByb2xvZ3VlIG9mIGEgZnVu
Y3Rpb24uICovXAogICAgIG1hY3JvKFNldEFyZ3VtZW50LCAwIHwgTm9kZURvZXNOb3RFeGl0KSBc
CiAgICAgXAotICAgIC8qIEhpbnQgdGhhdCBpbmxpbmluZyBiZWdpbnMgaGVyZS4gTm8gY29kZSBp
cyBnZW5lcmF0ZWQgZm9yIHRoaXMgbm9kZS4gSXQncyBvbmx5ICovXAotICAgIC8qIHVzZWQgZm9y
IGNvcHlpbmcgT1NSIGRhdGEgaW50byBpbmxpbmUgZnJhbWUgZGF0YSwgdG8gc3VwcG9ydCByZWlm
aWNhdGlvbiBvZiAqL1wKLSAgICAvKiBjYWxsIGZyYW1lcyBvZiBpbmxpbmVkIGZ1bmN0aW9ucy4g
Ki9cCi0gICAgbWFjcm8oSW5saW5lU3RhcnQsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlRG9lc05v
dEV4aXQpIFwKLSAgICBcCiAgICAgLyogTm9kZXMgZm9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4gKi9c
CiAgICAgbWFjcm8oQml0QW5kLCBOb2RlUmVzdWx0SW50MzIgfCBOb2RlTXVzdEdlbmVyYXRlKSBc
CiAgICAgbWFjcm8oQml0T3IsIE5vZGVSZXN1bHRJbnQzMiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNTc5MDQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTg2LDcgKzU4Niw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIAogICAgICAgICAvLyBUaGVzZSBnZXRzIGlnbm9yZWQgYmVjYXVzZSBp
dCBkb2Vzbid0IGRvIGFueXRoaW5nLgotICAgICAgICBjYXNlIElubGluZVN0YXJ0OgogICAgICAg
ICBjYXNlIENvdW50RXhlY3V0aW9uOgogICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICAg
ICAgY2FzZSBGbHVzaDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oCShyZXZpc2lvbiAxNTc5MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDcgKzEyOSw2IEBA
IGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3QKICAgICBjYXNlIFBoYW50
b21Mb2NhbDoKICAgICBjYXNlIEdldExvY2FsVW5saW5rZWQ6CiAgICAgY2FzZSBTZXRBcmd1bWVu
dDoKLSAgICBjYXNlIElubGluZVN0YXJ0OgogICAgIGNhc2UgQml0QW5kOgogICAgIGNhc2UgQml0
T3I6CiAgICAgY2FzZSBCaXRYb3I6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE1NzkwNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5NTgsMTEgKzE5NTgsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCi0gICAg
Y2FzZSBJbmxpbmVTdGFydDogewotICAgICAgICBjb21waWxlSW5saW5lU3RhcnQobm9kZSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2UgTW92SGludDoKICAgICBjYXNlIFpvbWJp
ZUhpbnQ6IHsKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAko
cmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI2OSwxMSArMjI2OSw2IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgICAgICAKLSAgICBjYXNlIElubGluZVN0YXJ0OiB7Ci0gICAgICAgIGNvbXBpbGVJbmxp
bmVTdGFydChub2RlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgY2FzZSBNb3ZIaW50
OgogICAgIGNhc2UgWm9tYmllSGludDogewogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAJKHJldmlzaW9uIDE1NzkwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTU3LDM3ICsxNTU3
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1vdkhpbnRBbmRDaAogICAgIG5vUmVz
dWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5saW5lU3RhcnQo
Tm9kZSogbm9kZSkKLXsKLSAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IG5v
ZGUtPmNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lOwotICAgIElubGluZVN0YXJ0RGF0YSogZGF0
YSA9IG5vZGUtPmlubGluZVN0YXJ0RGF0YSgpOwotICAgIGludCBhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyA9IGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKTsKLSAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOyArK2kpIHsKLSAgICAgICAg
QXJndW1lbnRQb3NpdGlvbiYgcG9zaXRpb24gPSBtX2ppdC5ncmFwaCgpLm1fYXJndW1lbnRQb3Np
dGlvbnNbCi0gICAgICAgICAgICBkYXRhLT5hcmd1bWVudFBvc2l0aW9uU3RhcnQgKyBpXTsKLSAg
ICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZSA9IHBvc2l0aW9uLnNvbWVWYXJpYWJs
ZSgpOwotICAgICAgICBWYWx1ZVNvdXJjZSBzb3VyY2U7Ci0gICAgICAgIGlmICghdmFyaWFibGUp
Ci0gICAgICAgICAgICBzb3VyY2UgPSBWYWx1ZVNvdXJjZShTb3VyY2VJc0RlYWQpOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIHNvdXJjZSA9IFZhbHVlU291cmNlOjpmb3JGbHVzaEZvcm1h
dCgKLSAgICAgICAgICAgICAgICB2YXJpYWJsZS0+bWFjaGluZUxvY2FsKCksCi0gICAgICAgICAg
ICAgICAgbV9qaXQuZ3JhcGgoKS5tX2FyZ3VtZW50UG9zaXRpb25zW2RhdGEtPmFyZ3VtZW50UG9z
aXRpb25TdGFydCArIGldLmZsdXNoRm9ybWF0KCkpOwotICAgICAgICB9Ci0gICAgICAgIGlubGlu
ZUNhbGxGcmFtZS0+YXJndW1lbnRzW2ldID0gc291cmNlLnZhbHVlUmVjb3ZlcnkoKTsKLSAgICB9
Ci0gICAgCi0gICAgUkVMRUFTRV9BU1NFUlQoaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxs
ID09ICEhZGF0YS0+Y2FsbGVlVmFyaWFibGUpOwotICAgIAotICAgIGlmIChpbmxpbmVDYWxsRnJh
bWUtPmlzQ2xvc3VyZUNhbGwpIHsKLSAgICAgICAgVmFsdWVTb3VyY2Ugc291cmNlID0gVmFsdWVT
b3VyY2U6OmZvckZsdXNoRm9ybWF0KAotICAgICAgICAgICAgZGF0YS0+Y2FsbGVlVmFyaWFibGUt
Pm1hY2hpbmVMb2NhbCgpLAotICAgICAgICAgICAgZGF0YS0+Y2FsbGVlVmFyaWFibGUtPmZsdXNo
Rm9ybWF0KCkpOwotICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZVJlY292ZXJ5ID0gc291
cmNlLnZhbHVlUmVjb3ZlcnkoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQo
aW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVSZWNvdmVyeS5pc0NvbnN0YW50KCkpOwotfQotCiB2b2lk
IFNwZWN1bGF0aXZlSklUOjpiYWlsKCkKIHsKICAgICBtX2NvbXBpbGVPa2F5ID0gdHJ1ZTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJl
dmlzaW9uIDE1NzkwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNzA3LDcgKzcwNyw2IEBAIHB1YmxpYzoKICAgICAK
ICAgICB2b2lkIGNvbXBpbGVNb3ZIaW50KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVNb3ZIaW50
QW5kQ2hlY2soTm9kZSopOwotICAgIHZvaWQgY29tcGlsZUlubGluZVN0YXJ0KE5vZGUqKTsKIAog
ICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVVSW50MzJUb051bWJlcihOb2RlKik7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcAko
cmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xh
eW91dFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVk
ZSAiREZHR3JhcGguaCIKICNpbmNsdWRlICJERkdQaGFzZS5oIgorI2luY2x1ZGUgIkRGR1ZhbHVl
U291cmNlLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CkBAIC0xNjYsMzUgKzE2Nyw0MiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoYWxsb2NhdGlvbltjb2RlQmxvY2soKS0+YWN0aXZh
dGlvblJlZ2lzdGVyKCkudG9Mb2NhbCgpXSkpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICBmb3IgKElubGluZUNhbGxGcmFtZVNldDo6aXRlcmF0b3IgaXRlciA9IG1fZ3JhcGgubV9pbmxp
bmVDYWxsRnJhbWVzLT5iZWdpbigpOyAhIWl0ZXI7ICsraXRlcikgewotICAgICAgICAgICAgSW5s
aW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSAqaXRlcjsKLSAgICAgICAgICAgIGlmICgh
aW5saW5lQ2FsbEZyYW1lLT5leGVjdXRhYmxlLT51c2VzQXJndW1lbnRzKCkpCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1Jl
Z2lzdGVyID0gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoCi0gICAgICAgICAgICAgICAgYWxsb2Nh
dGlvblttX2dyYXBoLmFyZ3VtZW50c1JlZ2lzdGVyRm9yKGlubGluZUNhbGxGcmFtZSkudG9Mb2Nh
bCgpXSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fZ3JhcGgubV9pbmxpbmVWYXJpYWJs
ZURhdGEuc2l6ZSgpOyBpLS07KSB7CisgICAgICAgICAgICBJbmxpbmVWYXJpYWJsZURhdGEgZGF0
YSA9IG1fZ3JhcGgubV9pbmxpbmVWYXJpYWJsZURhdGFbaV07CisgICAgICAgICAgICBJbmxpbmVD
YWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGRhdGEuaW5saW5lQ2FsbEZyYW1lOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5leGVjdXRhYmxlLT51c2Vz
QXJndW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50
c1JlZ2lzdGVyID0gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoCisgICAgICAgICAgICAgICAgICAg
IGFsbG9jYXRpb25bbV9ncmFwaC5hcmd1bWVudHNSZWdpc3RlckZvcihpbmxpbmVDYWxsRnJhbWUp
LnRvTG9jYWwoKV0pOworCisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoCisgICAgICAg
ICAgICAgICAgICAgIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGFsbG9jYXRpb25bdW5tb2RpZmll
ZEFyZ3VtZW50c1JlZ2lzdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC5hcmd1
bWVudHNSZWdpc3RlckZvcihpbmxpbmVDYWxsRnJhbWUpKS50b0xvY2FsKCldKQorICAgICAgICAg
ICAgICAgICAgICA9PSB1bm1vZGlmaWVkQXJndW1lbnRzUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1l
LT5hcmd1bWVudHNSZWdpc3RlcikpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAg
ICAgICAgICAvLyBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlubGluZVN0YXJ0KCkgd2lsbCBkbyB0
aGUgc2FtZSB0aGluZyB0aGF0IHRoaXMgZG9lcywKLSAgICAgICAgICAgIC8vIGZvciBjYXNlcyB3
aGVyZSB1c2VzQXJndW1lbnRzKCkgaXMgdHJ1ZS4gVGhhdCdzIE9LLiBjb21waWxlSW5saW5lU3Rh
cnQoKSBpcwotICAgICAgICAgICAgLy8gZGVzaWduZWQgZm9yIGNhc2VzIHdoZXJlIHRoZSBhcmd1
bWVudHMgZW5kIHVwIGhhdmluZyBpbnRlcmVzdGluZyBkYXRhCi0gICAgICAgICAgICAvLyByZXBy
ZXNlbnRhdGlvbnMsIGJ1dCB0aGF0IG9ubHkgaGFwcGVucyBpZiB0aGV5J3JlIG5vdCBjYXB0dXJl
ZC4gQW5kIGlmIHRoZXkKLSAgICAgICAgICAgIC8vIGFyZSBjYXB0dXJlZCwgdGhlbiB3ZSB3YW50
IHRvIG1ha2Ugc3VyZSBldmVyeW9uZSBhZ3JlZXMgb24gd2hlcmUgdGhleSBsYW5kZWQKLSAgICAg
ICAgICAgIC8vIGluIHRoZSBzdGFjayBiZWZvcmUgd2Ugc3RhcnQgZ2VuZXJhdGluZyBhbnkgY29k
ZSAtIHNpbmNlIFNwZWN1bGF0aXZlSklUIGRvZXMKLSAgICAgICAgICAgIC8vIG5vdCBoYXZlIHRv
IGdlbmVyYXRlIGNvZGUgaW4gYW55IHBhcnRpY3VsYXIgb3JkZXIuCiAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGFyZ3VtZW50ID0gaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHMuc2l6ZSgpOyBh
cmd1bWVudC0tID4gMTspIHsKLSAgICAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgb3JpZ2lu
YWxSZWdpc3RlciA9IFZpcnR1YWxSZWdpc3RlcigKLSAgICAgICAgICAgICAgICAgICAgdmlydHVh
bFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnQpLm9mZnNldCgpICsKLSAgICAgICAgICAgICAg
ICAgICAgaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCk7Ci0gICAgICAgICAgICAgICAgVmly
dHVhbFJlZ2lzdGVyIG5ld1JlZ2lzdGVyID0KLSAgICAgICAgICAgICAgICAgICAgdmlydHVhbFJl
Z2lzdGVyRm9yTG9jYWwoYWxsb2NhdGlvbltvcmlnaW5hbFJlZ2lzdGVyLnRvTG9jYWwoKV0pOwot
ICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzW2FyZ3VtZW50XSA9Ci0g
ICAgICAgICAgICAgICAgICAgIFZhbHVlUmVjb3Zlcnk6OmRpc3BsYWNlZEluSlNTdGFjayhuZXdS
ZWdpc3RlciwgRGF0YUZvcm1hdEpTKTsKKyAgICAgICAgICAgICAgICBBcmd1bWVudFBvc2l0aW9u
JiBwb3NpdGlvbiA9IG1fZ3JhcGgubV9hcmd1bWVudFBvc2l0aW9uc1sKKyAgICAgICAgICAgICAg
ICAgICAgZGF0YS5hcmd1bWVudFBvc2l0aW9uU3RhcnQgKyBhcmd1bWVudF07CisgICAgICAgICAg
ICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZSA9IHBvc2l0aW9uLnNvbWVWYXJpYWJs
ZSgpOworICAgICAgICAgICAgICAgIFZhbHVlU291cmNlIHNvdXJjZTsKKyAgICAgICAgICAgICAg
ICBpZiAoIXZhcmlhYmxlKQorICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBWYWx1ZVNvdXJj
ZShTb3VyY2VJc0RlYWQpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBzb3VyY2UgPSBWYWx1ZVNvdXJjZTo6Zm9yRmx1c2hGb3JtYXQoCisgICAgICAgICAgICAg
ICAgICAgICAgICB2YXJpYWJsZS0+bWFjaGluZUxvY2FsKCksIHZhcmlhYmxlLT5mbHVzaEZvcm1h
dCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1l
LT5hcmd1bWVudHNbYXJndW1lbnRdID0gc291cmNlLnZhbHVlUmVjb3ZlcnkoKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoCi0gICAgICAg
ICAgICAgICAgdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoYWxsb2NhdGlvblsKLSAgICAgICAgICAg
ICAgICAgICAgdW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVyKAotICAgICAgICAgICAgICAgICAg
ICAgICAgbV9ncmFwaC5hcmd1bWVudHNSZWdpc3RlckZvcihpbmxpbmVDYWxsRnJhbWUpKS50b0xv
Y2FsKCldKQotICAgICAgICAgICAgICAgID09IHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3Rlcihp
bmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyKSk7CisgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVChpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwgPT0gISFkYXRhLmNhbGxlZVZh
cmlhYmxlKTsKKyAgICAgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwp
IHsKKyAgICAgICAgICAgICAgICBWYWx1ZVNvdXJjZSBzb3VyY2UgPSBWYWx1ZVNvdXJjZTo6Zm9y
Rmx1c2hGb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGRhdGEuY2FsbGVlVmFyaWFibGUtPm1h
Y2hpbmVMb2NhbCgpLAorICAgICAgICAgICAgICAgICAgICBkYXRhLmNhbGxlZVZhcmlhYmxlLT5m
bHVzaEZvcm1hdCgpKTsKKyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZVJl
Y292ZXJ5ID0gc291cmNlLnZhbHVlUmVjb3ZlcnkoKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3Zl
cnkuaXNDb25zdGFudCgpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKHN5bWJv
bFRhYmxlKSB7CkBAIC0yMjMsNyArMjMxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIAotICAgICAgICAvLyBGaW5hbGx5LCBmaXggR2V0TG9jYWxVbmxpbmtl
ZCdzLgorICAgICAgICAvLyBGaXggR2V0TG9jYWxVbmxpbmtlZCdzIHZhcmlhYmxlIHJlZmVyZW5j
ZXMuCiAgICAgICAgIGlmIChoYXNHZXRMb2NhbFVubGlua2VkKSB7CiAgICAgICAgICAgICBmb3Ig
KEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IG1fZ3JhcGgubnVtQmxvY2tzKCk7IGJsb2NrSW5kZXgt
LTspIHsKICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2so
YmxvY2tJbmRleCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215127</attachid>
            <date>2013-10-24 18:08:29 -0700</date>
            <delta_ts>2013-10-24 20:38:38 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>19137</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3OTY5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBA
CisyMDEzLTEwLTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R2V0IHJpZCBvZiBJbmxpbmVTdGFydCBzbyB0aGF0IEkgZG9uJ3QgaGF2ZSB0byBpbXBsZW1lbnQg
aXQgaW4gRlRMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjMzMDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIElubGluZVN0YXJ0IHdhcyBhIHNwZWNpYWwgaW5zdHJ1Y3Rpb24gdGhhdCB3ZSB3
b3VsZCBpbnNlcnQgYXQgdGhlIHRvcCBvZiBpbmxpbmVkIGNvZGUsCisgICAgICAgIHNvIHRoYXQg
dGhlIGJhY2tlbmQgY291bGQgY2FwdHVyZSB0aGUgT1NSIHN0YXRlIG9mIGFyZ3VtZW50cyB0byBh
biBpbmxpbmVkIGNhbGwuIEl0IHVzZWQKKyAgICAgICAgdG8gYmUgdGhhdCBvbmx5IHRoZSBiYWNr
ZW5kIGhhZCB0aGlzIGluZm9ybWF0aW9uLCBzbyB0aGlzIGluc3RydWN0aW9uIHdhcyBzb3J0IG9m
IGFuIHVnbHkKKyAgICAgICAgY2FsbGJhY2sgZnJvbSB0aGUgYmFja2VuZCBmb3IgZmlsbGluZyBp
biBzb21lIGRhdGEgc3RydWN0dXJlcy4KKyAgICAgICAgCisgICAgICAgIEJ1dCBpbiB0aGUgdGlt
ZSBzaW5jZSB3aGVuIHRoYXQgY29kZSB3YXMgd3JpdHRlbiAodHdvIHllYXJzIGFnbz8pLCB3ZSBy
YXRpb25hbGl6ZWQgaG93CisgICAgICAgIHZhcmlhYmxlcyB3b3JrLiBJdCdzIG5vdyB0aGUgY2Fz
ZSB0aGF0IHZhcmlhYmxlcyB0aGF0IHRoZSBydW50aW1lIG11c3Qga25vdyBhYm91dCBhcmUKKyAg
ICAgICAgdHJlYXRlZCBzcGVjaWFsbHkgaW4gSVIgKHRoZXkgYXJlICJmbHVzaGVkIikgYW5kIHdl
IGtub3cgaG93IHdlIHdpbGwgcmVwcmVzZW50IHRoZW0gZXZlbgorICAgICAgICBiZWZvcmUgd2Ug
Z2V0IHRvIHRoZSBiYWNrZW5kLiBUaGUgbGFzdCBwbGFjZSB0aGF0IG1ha2VzIGNoYW5nZXMgdG8g
dGhlaXIgcmVwcmVzZW50YXRpb24KKyAgICAgICAgaXMgdGhlIFN0YWNrTGF5b3V0UGhhc2UuCisg
ICAgICAgIAorICAgICAgICBTbywgdGhpcyBwYXRjaCBnZXRzIHJpZCBvZiBJbmxpbmVTdGFydCwg
YnV0IGtlZXBzIGFyb3VuZCB0aGUgc3BlY2lhbCBtZXRhLWRhdGEgdGhhdCB0aGUKKyAgICAgICAg
aW5zdHJ1Y3Rpb24gaGFkLiBJbnN0ZWFkIG9mIGhhbmRpbmcgdGhlIGJvb2trZWVwaW5nIGluIHRo
ZSBiYWNrZW5kLCB3ZSBoYW5kbGUgaXQgaW4KKyAgICAgICAgU3RhY2tMYXlvdXRQaGFzZS4gVGhp
cyBtZWFucyB0aGF0IHRoZSBERkcgYW5kIEZUTCBjYW4gc2hhcmUgY29kZSBmb3IgaGFuZGxpbmcg
dGhpcworICAgICAgICBib29ra2VlcGluZy4gVGhpcyBhbHNvIG1lYW5zIHRoYXQgbm93IHRoZSBG
VEwgY2FuIGNvbXBpbGUgY29kZSBibG9ja3MgdGhhdCBoYWQgaW5saW5pbmcuCisgICAgICAgIAor
ICAgICAgICBPZiBjb3Vyc2UsIGdpdmluZyB0aGUgRlRMIHRoZSBhYmlsaXR5IHRvIGhhbmRsZSBj
b2RlIGJsb2NrcyB0aGF0IGhhZCBpbmxpbmluZyBtZWFucyB0aGF0CisgICAgICAgIHdlJ3JlIGdv
aW5nIHRvIGhhdmUgbmV3IGJ1Z3MuIFN1cmUgZW5vdWdoLCB0aGUgRlRMJ3MgbGlua2VyIGRpZG4n
dCBoYW5kbGUgaW5saW5lIGNhbGwKKyAgICAgICAgZnJhbWVzLiBUaGlzIHBhdGNoIGFsc28gZml4
ZXMgdGhhdC4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpERkc6Ojo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUlubGluaW5nKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5s
aW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RGR0Nsb2Ji
ZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcv
REZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBO
b2RlKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZS5o
OgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKToKKyAgICAgICAgKiBkZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3RhY2tMYXlvdXRQaGFzZTo6cnVuKToKKyAgICAgICAgKiBmdGwvRlRMTGluay5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6bGluayk6CisKIDIwMTMtMTAtMjQgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEJldHRlciB3YXkgdG8gZml4IHBhcnQgb2Yg
YnJva2VuIEMgTG9vcCBMTElOVCBidWlsZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlz
aW9uIDE1NzkwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTU0MSw3ICsxNTQxLDYgQEAgYm9v
bCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIAogICAgIGNhc2UgUGhhbnRvbToKLSAgICBjYXNlIElubGluZVN0YXJ0OgogICAg
IGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKICAgICBj
YXNlIENoZWNrVGllclVwQXRSZXR1cm46CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTU3OTA0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzMDQsMTEgKzEzMDQsMTEgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5p
bmcoTm9kZQogICAgIHVuc2lnbmVkIG9sZEluZGV4ID0gbV9jdXJyZW50SW5kZXg7CiAgICAgbV9j
dXJyZW50SW5kZXggPSAwOwogCi0gICAgSW5saW5lU3RhcnREYXRhKiBpbmxpbmVTdGFydERhdGEg
PSAmbV9ncmFwaC5tX2lubGluZVN0YXJ0RGF0YS5hbGxvYygpOwotICAgIGlubGluZVN0YXJ0RGF0
YS0+YXJndW1lbnRQb3NpdGlvblN0YXJ0ID0gYXJndW1lbnRQb3NpdGlvblN0YXJ0OwotICAgIGlu
bGluZVN0YXJ0RGF0YS0+Y2FsbGVlVmFyaWFibGUgPSAwOworICAgIElubGluZVZhcmlhYmxlRGF0
YSBpbmxpbmVWYXJpYWJsZURhdGE7CisgICAgaW5saW5lVmFyaWFibGVEYXRhLmlubGluZUNhbGxG
cmFtZSA9IG1faW5saW5lU3RhY2tUb3AtPm1faW5saW5lQ2FsbEZyYW1lOworICAgIGlubGluZVZh
cmlhYmxlRGF0YS5hcmd1bWVudFBvc2l0aW9uU3RhcnQgPSBhcmd1bWVudFBvc2l0aW9uU3RhcnQ7
CisgICAgaW5saW5lVmFyaWFibGVEYXRhLmNhbGxlZVZhcmlhYmxlID0gMDsKICAgICAKLSAgICBh
ZGRUb0dyYXBoKElubGluZVN0YXJ0LCBPcEluZm8oaW5saW5lU3RhcnREYXRhKSk7CiAgICAgUkVM
RUFTRV9BU1NFUlQoCiAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1faW5saW5lQ2FsbEZyYW1l
LT5pc0Nsb3N1cmVDYWxsCiAgICAgICAgID09IGNhbGxMaW5rU3RhdHVzLmlzQ2xvc3VyZUNhbGwo
KSk7CkBAIC0xMzIxLDkgKzEzMjEsMTEgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5s
aW5pbmcoTm9kZQogICAgICAgICBjYWxsZWVWYXJpYWJsZS0+bWVyZ2VTaG91bGROZXZlclVuYm94
KHRydWUpOwogICAgICAgICBzY29wZVZhcmlhYmxlLT5tZXJnZVNob3VsZE5ldmVyVW5ib3godHJ1
ZSk7CiAgICAgICAgIAotICAgICAgICBpbmxpbmVTdGFydERhdGEtPmNhbGxlZVZhcmlhYmxlID0g
Y2FsbGVlVmFyaWFibGU7CisgICAgICAgIGlubGluZVZhcmlhYmxlRGF0YS5jYWxsZWVWYXJpYWJs
ZSA9IGNhbGxlZVZhcmlhYmxlOwogICAgIH0KICAgICAKKyAgICBtX2dyYXBoLm1faW5saW5lVmFy
aWFibGVEYXRhLmFwcGVuZChpbmxpbmVWYXJpYWJsZURhdGEpOworICAgIAogICAgIHBhcnNlQ29k
ZUJsb2NrKCk7CiAgICAgCiAgICAgbV9jdXJyZW50SW5kZXggPSBvbGRJbmRleDsKQEAgLTMzNzAs
NyArMzM3Miw3IEBAIEJ5dGVDb2RlUGFyc2VyOjpJbmxpbmVTdGFja0VudHJ5OjpJbmxpbmUKICAg
ICAgICAgICAgIG1faW5saW5lQ2FsbEZyYW1lLT5leGVjdXRhYmxlLAogICAgICAgICAgICAgYnl0
ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLAogICAgICAgICAgICAgbV9pbmxpbmVDYWxsRnJhbWUs
Ci0gICAgICAgICAgICBieXRlQ29kZVBhcnNlci0+bV9jb2RlQmxvY2stPm93bmVyRXhlY3V0YWJs
ZSgpLCAKKyAgICAgICAgICAgIGJ5dGVDb2RlUGFyc2VyLT5tX2NvZGVCbG9jay0+b3duZXJFeGVj
dXRhYmxlKCksCiAgICAgICAgICAgICBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpKTsKICAg
ICAgICAgbV9pbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ID0gaW5saW5lQ2FsbEZyYW1lU3Rh
cnQub2Zmc2V0KCkgLSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOwogICAgICAgICBpZiAo
Y2FsbGVlKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAkocmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw3ICsxMjQsNiBAQCB2b2lkIGNsb2JiZXJp
emUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAgICAgY2FzZSBGbHVzaDoKICAgICBjYXNlIFBo
YW50b21Mb2NhbDoKICAgICBjYXNlIFNldEFyZ3VtZW50OgotICAgIGNhc2UgSW5saW5lU3RhcnQ6
CiAgICAgY2FzZSBCcmVha3BvaW50OgogICAgIGNhc2UgUGhhbnRvbUFyZ3VtZW50czoKICAgICBj
YXNlIEp1bXA6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAJKHJldmlzaW9uIDE1NzkwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwNyw3ICs5MDcsNiBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIEZsdXNoOgogICAgICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICAg
ICAgY2FzZSBHZXRMb2NhbFVubGlua2VkOgotICAgICAgICBjYXNlIElubGluZVN0YXJ0OgogICAg
ICAgICBjYXNlIEdldE15U2NvcGU6CiAgICAgICAgIGNhc2UgR2V0Q2xvc3VyZVZhcjoKICAgICAg
ICAgY2FzZSBHZXRHbG9iYWxWYXI6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5oCShyZXZpc2lvbiAxNTc5MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDEyIEBAIHN0cnVjdCBTdG9yYWdlQWNj
ZXNzRGF0YSB7CiAgICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlcjsKIH07CiAKK3N0cnVjdCBJ
bmxpbmVWYXJpYWJsZURhdGEgeworICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1l
OworICAgIHVuc2lnbmVkIGFyZ3VtZW50UG9zaXRpb25TdGFydDsKKyAgICBWYXJpYWJsZUFjY2Vz
c0RhdGEqIGNhbGxlZVZhcmlhYmxlOworfTsKKwogZW51bSBBZGRTcGVjdWxhdGlvbk1vZGUgewog
ICAgIERvbnRTcGVjdWxhdGVJbnQzMiwKICAgICBTcGVjdWxhdGVJbnQzMkFuZFRydW5jYXRlQ29u
c3RhbnRzLApAQCAtNzg5LDcgKzc5NSw3IEBAIHB1YmxpYzoKICAgICBTZWdtZW50ZWRWZWN0b3I8
U3RydWN0dXJlVHJhbnNpdGlvbkRhdGEsIDg+IG1fc3RydWN0dXJlVHJhbnNpdGlvbkRhdGE7CiAg
ICAgU2VnbWVudGVkVmVjdG9yPE5ld0FycmF5QnVmZmVyRGF0YSwgND4gbV9uZXdBcnJheUJ1ZmZl
ckRhdGE7CiAgICAgU2VnbWVudGVkVmVjdG9yPFN3aXRjaERhdGEsIDQ+IG1fc3dpdGNoRGF0YTsK
LSAgICBTZWdtZW50ZWRWZWN0b3I8SW5saW5lU3RhcnREYXRhLCA0PiBtX2lubGluZVN0YXJ0RGF0
YTsKKyAgICBWZWN0b3I8SW5saW5lVmFyaWFibGVEYXRhLCA0PiBtX2lubGluZVZhcmlhYmxlRGF0
YTsKICAgICBPd25QdHI8SW5saW5lQ2FsbEZyYW1lU2V0PiBtX2lubGluZUNhbGxGcmFtZXM7CiAg
ICAgYm9vbCBtX2hhc0FyZ3VtZW50czsKICAgICBIYXNoU2V0PEV4ZWN1dGFibGVCYXNlKj4gbV9l
eGVjdXRhYmxlc1dob3NlQXJndW1lbnRzRXNjYXBlZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oCShyZXZpc2lvbiAxNTc5MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDExICsxMzksNiBAQCBzdHJ1Y3Qg
U3dpdGNoRGF0YSB7CiAgICAgYm9vbCBkaWRVc2VKdW1wVGFibGU7CiB9OwogCi1zdHJ1Y3QgSW5s
aW5lU3RhcnREYXRhIHsKLSAgICB1bnNpZ25lZCBhcmd1bWVudFBvc2l0aW9uU3RhcnQ7Ci0gICAg
VmFyaWFibGVBY2Nlc3NEYXRhKiBjYWxsZWVWYXJpYWJsZTsKLX07Ci0KIC8vIFRoaXMgdHlwZSB1
c2VkIGluIHBhc3NpbmcgYW4gaW1tZWRpYXRlIGFyZ3VtZW50IHRvIE5vZGUgY29uc3RydWN0b3I7
CiAvLyBkaXN0aW5ndWlzaGVzIGFuIGltbWVkaWF0ZSB2YWx1ZSAodHlwaWNhbGx5IGFuIGluZGV4
IGludG8gYSBDb2RlQmxvY2sgZGF0YSBzdHJ1Y3R1cmUgLSAKIC8vIGEgY29uc3RhbnQgaW5kZXgs
IGFyZ3VtZW50LCBvciBpZGVudGlmaWVyKSBmcm9tIGEgTm9kZSouCkBAIC0xMTI0LDE3ICsxMTE5
LDYgQEAgc3RydWN0IE5vZGUgewogICAgICAgICBtX3ZpcnR1YWxSZWdpc3RlciA9IHZpcnR1YWxS
ZWdpc3RlcjsKICAgICB9CiAgICAgCi0gICAgYm9vbCBoYXNJbmxpbmVTdGFydERhdGEoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIG9wKCkgPT0gSW5saW5lU3RhcnQ7Ci0gICAgfQotICAgIAotICAg
IElubGluZVN0YXJ0RGF0YSogaW5saW5lU3RhcnREYXRhKCkKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChoYXNJbmxpbmVTdGFydERhdGEoKSk7Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5s
aW5lU3RhcnREYXRhKj4obV9vcEluZm8pOwotICAgIH0KLSAgICAKICAgICBib29sIGhhc0V4ZWN1
dGlvbkNvdW50ZXIoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ291bnRFeGVjdXRp
b247CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShyZXZpc2lv
biAxNTc5MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTkxLDExICs5MSw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICAgICAvKiBNYXJrZXIgZm9yIGFuIGFyZ3VtZW50IGJlaW5nIHNldCBhdCB0aGUgcHJv
bG9ndWUgb2YgYSBmdW5jdGlvbi4gKi9cCiAgICAgbWFjcm8oU2V0QXJndW1lbnQsIDAgfCBOb2Rl
RG9lc05vdEV4aXQpIFwKICAgICBcCi0gICAgLyogSGludCB0aGF0IGlubGluaW5nIGJlZ2lucyBo
ZXJlLiBObyBjb2RlIGlzIGdlbmVyYXRlZCBmb3IgdGhpcyBub2RlLiBJdCdzIG9ubHkgKi9cCi0g
ICAgLyogdXNlZCBmb3IgY29weWluZyBPU1IgZGF0YSBpbnRvIGlubGluZSBmcmFtZSBkYXRhLCB0
byBzdXBwb3J0IHJlaWZpY2F0aW9uIG9mICovXAotICAgIC8qIGNhbGwgZnJhbWVzIG9mIGlubGlu
ZWQgZnVuY3Rpb25zLiAqL1wKLSAgICBtYWNybyhJbmxpbmVTdGFydCwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVEb2VzTm90RXhpdCkgXAotICAgIFwKICAgICAvKiBOb2RlcyBmb3IgYml0d2lzZSBv
cGVyYXRpb25zLiAqL1wKICAgICBtYWNybyhCaXRBbmQsIE5vZGVSZXN1bHRJbnQzMiB8IE5vZGVN
dXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhCaXRPciwgTm9kZVJlc3VsdEludDMyIHwgTm9kZU11
c3RHZW5lcmF0ZSkgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE1Nzkw
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODYsNyArNTg2LDYgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIC8vIFRoZXNlIGdldHMgaWdu
b3JlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcuCi0gICAgICAgIGNhc2UgSW5saW5l
U3RhcnQ6CiAgICAgICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgICAgIGNhc2UgUGhhbnRv
bUxvY2FsOgogICAgICAgICBjYXNlIEZsdXNoOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHJldmlzaW9uIDE1NzkwNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjksNyArMTI5LDYgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdAog
ICAgIGNhc2UgUGhhbnRvbUxvY2FsOgogICAgIGNhc2UgR2V0TG9jYWxVbmxpbmtlZDoKICAgICBj
YXNlIFNldEFyZ3VtZW50OgotICAgIGNhc2UgSW5saW5lU3RhcnQ6CiAgICAgY2FzZSBCaXRBbmQ6
CiAgICAgY2FzZSBCaXRPcjoKICAgICBjYXNlIEJpdFhvcjoKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNp
b24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk1OCwxMSArMTk1OCw2IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgICAgICAKLSAgICBjYXNlIElubGluZVN0YXJ0OiB7Ci0gICAgICAgIGNvbXBpbGVJbmxpbmVT
dGFydChub2RlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgY2FzZSBNb3ZIaW50Ogog
ICAgIGNhc2UgWm9tYmllSGludDogewogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxNTc5MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjY5LDExICsy
MjY5LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgICAgIAotICAgIGNhc2UgSW5saW5lU3RhcnQ6IHsKLSAgICAg
ICAgY29tcGlsZUlubGluZVN0YXJ0KG5vZGUpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAg
ICBjYXNlIE1vdkhpbnQ6CiAgICAgY2FzZSBab21iaWVIaW50OiB7CiAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE1NTcsMzcgKzE1NTcsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTW92SGludEFu
ZENoCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVJbmxpbmVTdGFydChOb2RlKiBub2RlKQotewotICAgIElubGluZUNhbGxGcmFtZSogaW5saW5l
Q2FsbEZyYW1lID0gbm9kZS0+Y29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWU7Ci0gICAgSW5saW5l
U3RhcnREYXRhKiBkYXRhID0gbm9kZS0+aW5saW5lU3RhcnREYXRhKCk7Ci0gICAgaW50IGFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzID0gaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHMuc2l6ZSgp
OwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXM7ICsr
aSkgewotICAgICAgICBBcmd1bWVudFBvc2l0aW9uJiBwb3NpdGlvbiA9IG1faml0LmdyYXBoKCku
bV9hcmd1bWVudFBvc2l0aW9uc1sKLSAgICAgICAgICAgIGRhdGEtPmFyZ3VtZW50UG9zaXRpb25T
dGFydCArIGldOwotICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gcG9zaXRp
b24uc29tZVZhcmlhYmxlKCk7Ci0gICAgICAgIFZhbHVlU291cmNlIHNvdXJjZTsKLSAgICAgICAg
aWYgKCF2YXJpYWJsZSkKLSAgICAgICAgICAgIHNvdXJjZSA9IFZhbHVlU291cmNlKFNvdXJjZUlz
RGVhZCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgc291cmNlID0gVmFsdWVTb3VyY2U6
OmZvckZsdXNoRm9ybWF0KAotICAgICAgICAgICAgICAgIHZhcmlhYmxlLT5tYWNoaW5lTG9jYWwo
KSwKLSAgICAgICAgICAgICAgICBtX2ppdC5ncmFwaCgpLm1fYXJndW1lbnRQb3NpdGlvbnNbZGF0
YS0+YXJndW1lbnRQb3NpdGlvblN0YXJ0ICsgaV0uZmx1c2hGb3JtYXQoKSk7Ci0gICAgICAgIH0K
LSAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNbaV0gPSBzb3VyY2UudmFsdWVSZWNv
dmVyeSgpOwotICAgIH0KLSAgICAKLSAgICBSRUxFQVNFX0FTU0VSVChpbmxpbmVDYWxsRnJhbWUt
PmlzQ2xvc3VyZUNhbGwgPT0gISFkYXRhLT5jYWxsZWVWYXJpYWJsZSk7Ci0gICAgCi0gICAgaWYg
KGlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkgewotICAgICAgICBWYWx1ZVNvdXJjZSBz
b3VyY2UgPSBWYWx1ZVNvdXJjZTo6Zm9yRmx1c2hGb3JtYXQoCi0gICAgICAgICAgICBkYXRhLT5j
YWxsZWVWYXJpYWJsZS0+bWFjaGluZUxvY2FsKCksCi0gICAgICAgICAgICBkYXRhLT5jYWxsZWVW
YXJpYWJsZS0+Zmx1c2hGb3JtYXQoKSk7Ci0gICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVl
UmVjb3ZlcnkgPSBzb3VyY2UudmFsdWVSZWNvdmVyeSgpOwotICAgIH0gZWxzZQotICAgICAgICBS
RUxFQVNFX0FTU0VSVChpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZVJlY292ZXJ5LmlzQ29uc3RhbnQo
KSk7Ci19Ci0KIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmJhaWwoKQogewogICAgIG1fY29tcGlsZU9r
YXkgPSB0cnVlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAkocmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MDcsNyArNzA3LDYgQEAg
cHVibGljOgogICAgIAogICAgIHZvaWQgY29tcGlsZU1vdkhpbnQoTm9kZSopOwogICAgIHZvaWQg
Y29tcGlsZU1vdkhpbnRBbmRDaGVjayhOb2RlKik7Ci0gICAgdm9pZCBjb21waWxlSW5saW5lU3Rh
cnQoTm9kZSopOwogCiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZVVJbnQzMlRvTnVtYmVyKE5vZGUq
KTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0YWNrTGF5
b3V0UGhhc2UuY3BwCShyZXZpc2lvbiAxNTc5MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3
IEBACiAKICNpbmNsdWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR1BoYXNlLmgiCisjaW5j
bHVkZSAiREZHVmFsdWVTb3VyY2UuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKQEAgLTE2NiwzNSArMTY3LDQyIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChhbGxvY2F0aW9uW2NvZGVC
bG9jaygpLT5hY3RpdmF0aW9uUmVnaXN0ZXIoKS50b0xvY2FsKCldKSk7CiAgICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIGZvciAoSW5saW5lQ2FsbEZyYW1lU2V0OjppdGVyYXRvciBpdGVyID0g
bV9ncmFwaC5tX2lubGluZUNhbGxGcmFtZXMtPmJlZ2luKCk7ICEhaXRlcjsgKytpdGVyKSB7Ci0g
ICAgICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9ICppdGVyOwotICAg
ICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmV4ZWN1dGFibGUtPnVzZXNBcmd1bWVudHMo
KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlubGluZUNhbGxGcmFt
ZS0+YXJndW1lbnRzUmVnaXN0ZXIgPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCgKLSAgICAgICAg
ICAgICAgICBhbGxvY2F0aW9uW21fZ3JhcGguYXJndW1lbnRzUmVnaXN0ZXJGb3IoaW5saW5lQ2Fs
bEZyYW1lKS50b0xvY2FsKCldKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9ncmFwaC5t
X2lubGluZVZhcmlhYmxlRGF0YS5zaXplKCk7IGktLTspIHsKKyAgICAgICAgICAgIElubGluZVZh
cmlhYmxlRGF0YSBkYXRhID0gbV9ncmFwaC5tX2lubGluZVZhcmlhYmxlRGF0YVtpXTsKKyAgICAg
ICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lID0gZGF0YS5pbmxpbmVDYWxs
RnJhbWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmV4
ZWN1dGFibGUtPnVzZXNBcmd1bWVudHMoKSkgeworICAgICAgICAgICAgICAgIGlubGluZUNhbGxG
cmFtZS0+YXJndW1lbnRzUmVnaXN0ZXIgPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCgKKyAgICAg
ICAgICAgICAgICAgICAgYWxsb2NhdGlvblttX2dyYXBoLmFyZ3VtZW50c1JlZ2lzdGVyRm9yKGlu
bGluZUNhbGxGcmFtZSkudG9Mb2NhbCgpXSk7CisKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVCgKKyAgICAgICAgICAgICAgICAgICAgdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoYWxsb2Nh
dGlvblt1bm1vZGlmaWVkQXJndW1lbnRzUmVnaXN0ZXIoCisgICAgICAgICAgICAgICAgICAgICAg
ICBtX2dyYXBoLmFyZ3VtZW50c1JlZ2lzdGVyRm9yKGlubGluZUNhbGxGcmFtZSkpLnRvTG9jYWwo
KV0pCisgICAgICAgICAgICAgICAgICAgID09IHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3Rlcihp
bmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyKSk7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIC8vIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5saW5lU3Rh
cnQoKSB3aWxsIGRvIHRoZSBzYW1lIHRoaW5nIHRoYXQgdGhpcyBkb2VzLAotICAgICAgICAgICAg
Ly8gZm9yIGNhc2VzIHdoZXJlIHVzZXNBcmd1bWVudHMoKSBpcyB0cnVlLiBUaGF0J3MgT0suIGNv
bXBpbGVJbmxpbmVTdGFydCgpIGlzCi0gICAgICAgICAgICAvLyBkZXNpZ25lZCBmb3IgY2FzZXMg
d2hlcmUgdGhlIGFyZ3VtZW50cyBlbmQgdXAgaGF2aW5nIGludGVyZXN0aW5nIGRhdGEKLSAgICAg
ICAgICAgIC8vIHJlcHJlc2VudGF0aW9ucywgYnV0IHRoYXQgb25seSBoYXBwZW5zIGlmIHRoZXkn
cmUgbm90IGNhcHR1cmVkLiBBbmQgaWYgdGhleQotICAgICAgICAgICAgLy8gYXJlIGNhcHR1cmVk
LCB0aGVuIHdlIHdhbnQgdG8gbWFrZSBzdXJlIGV2ZXJ5b25lIGFncmVlcyBvbiB3aGVyZSB0aGV5
IGxhbmRlZAotICAgICAgICAgICAgLy8gaW4gdGhlIHN0YWNrIGJlZm9yZSB3ZSBzdGFydCBnZW5l
cmF0aW5nIGFueSBjb2RlIC0gc2luY2UgU3BlY3VsYXRpdmVKSVQgZG9lcwotICAgICAgICAgICAg
Ly8gbm90IGhhdmUgdG8gZ2VuZXJhdGUgY29kZSBpbiBhbnkgcGFydGljdWxhciBvcmRlci4KICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgYXJndW1lbnQgPSBpbmxpbmVDYWxsRnJhbWUtPmFyZ3Vt
ZW50cy5zaXplKCk7IGFyZ3VtZW50LS0gPiAxOykgewotICAgICAgICAgICAgICAgIFZpcnR1YWxS
ZWdpc3RlciBvcmlnaW5hbFJlZ2lzdGVyID0gVmlydHVhbFJlZ2lzdGVyKAotICAgICAgICAgICAg
ICAgICAgICB2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkub2Zmc2V0KCkgKwot
ICAgICAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0KTsKLSAgICAg
ICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgbmV3UmVnaXN0ZXIgPQotICAgICAgICAgICAgICAg
ICAgICB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChhbGxvY2F0aW9uW29yaWdpbmFsUmVnaXN0ZXIu
dG9Mb2NhbCgpXSk7Ci0gICAgICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNb
YXJndW1lbnRdID0KLSAgICAgICAgICAgICAgICAgICAgVmFsdWVSZWNvdmVyeTo6ZGlzcGxhY2Vk
SW5KU1N0YWNrKG5ld1JlZ2lzdGVyLCBEYXRhRm9ybWF0SlMpOworICAgICAgICAgICAgICAgIEFy
Z3VtZW50UG9zaXRpb24mIHBvc2l0aW9uID0gbV9ncmFwaC5tX2FyZ3VtZW50UG9zaXRpb25zWwor
ICAgICAgICAgICAgICAgICAgICBkYXRhLmFyZ3VtZW50UG9zaXRpb25TdGFydCArIGFyZ3VtZW50
XTsKKyAgICAgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gcG9zaXRp
b24uc29tZVZhcmlhYmxlKCk7CisgICAgICAgICAgICAgICAgVmFsdWVTb3VyY2Ugc291cmNlOwor
ICAgICAgICAgICAgICAgIGlmICghdmFyaWFibGUpCisgICAgICAgICAgICAgICAgICAgIHNvdXJj
ZSA9IFZhbHVlU291cmNlKFNvdXJjZUlzRGVhZCk7CisgICAgICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IFZhbHVlU291cmNlOjpmb3JGbHVzaEZvcm1hdCgK
KyAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlLT5tYWNoaW5lTG9jYWwoKSwgdmFyaWFi
bGUtPmZsdXNoRm9ybWF0KCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBp
bmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1thcmd1bWVudF0gPSBzb3VyY2UudmFsdWVSZWNvdmVy
eSgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVCgKLSAgICAgICAgICAgICAgICB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChhbGxvY2F0aW9u
WwotICAgICAgICAgICAgICAgICAgICB1bm1vZGlmaWVkQXJndW1lbnRzUmVnaXN0ZXIoCi0gICAg
ICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmFyZ3VtZW50c1JlZ2lzdGVyRm9yKGlubGluZUNh
bGxGcmFtZSkpLnRvTG9jYWwoKV0pCi0gICAgICAgICAgICAgICAgPT0gdW5tb2RpZmllZEFyZ3Vt
ZW50c1JlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzUmVnaXN0ZXIpKTsKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKGlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCA9PSAh
IWRhdGEuY2FsbGVlVmFyaWFibGUpOworICAgICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+
aXNDbG9zdXJlQ2FsbCkgeworICAgICAgICAgICAgICAgIFZhbHVlU291cmNlIHNvdXJjZSA9IFZh
bHVlU291cmNlOjpmb3JGbHVzaEZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgZGF0YS5jYWxs
ZWVWYXJpYWJsZS0+bWFjaGluZUxvY2FsKCksCisgICAgICAgICAgICAgICAgICAgIGRhdGEuY2Fs
bGVlVmFyaWFibGUtPmZsdXNoRm9ybWF0KCkpOworICAgICAgICAgICAgICAgIGlubGluZUNhbGxG
cmFtZS0+Y2FsbGVlUmVjb3ZlcnkgPSBzb3VyY2UudmFsdWVSZWNvdmVyeSgpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaW5saW5lQ2FsbEZyYW1l
LT5jYWxsZWVSZWNvdmVyeS5pc0NvbnN0YW50KCkpOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBpZiAoc3ltYm9sVGFibGUpIHsKQEAgLTIyMyw3ICsyMzEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIC8vIEZpbmFsbHksIGZpeCBH
ZXRMb2NhbFVubGlua2VkJ3MuCisgICAgICAgIC8vIEZpeCBHZXRMb2NhbFVubGlua2VkJ3MgdmFy
aWFibGUgcmVmZXJlbmNlcy4KICAgICAgICAgaWYgKGhhc0dldExvY2FsVW5saW5rZWQpIHsKICAg
ICAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gbV9ncmFwaC5udW1CbG9ja3Mo
KTsgYmxvY2tJbmRleC0tOykgewogICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0g
bV9ncmFwaC5ibG9jayhibG9ja0luZGV4KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTGluay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMaW5rLmNwcAkocmV2aXNpb24gMTU3OTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMaW5rLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOSBAQCB2b2lkIGxpbmso
U3RhdGUmIHN0YXRlKQogICAgIC8vIExMVk0gd2lsbCBjcmVhdGUgaXRzIG93biBqdW1wIHRhYmxl
cyBhcyBuZWVkZWQuCiAgICAgY29kZUJsb2NrLT5jbGVhclN3aXRjaEp1bXBUYWJsZXMoKTsKICAg
ICAKKyAgICBpZiAoIXN0YXRlLmdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcy0+aXNFbXB0eSgpKQor
ICAgICAgICBzdGF0ZS5qaXRDb2RlLT5jb21tb24uaW5saW5lQ2FsbEZyYW1lcyA9IHN0YXRlLmdy
YXBoLm1faW5saW5lQ2FsbEZyYW1lcy5yZWxlYXNlKCk7CisgICAgCiAgICAgLy8gQ3JlYXRlIHRo
ZSBlbnRyeXBvaW50LiBOb3RlIHRoYXQgd2UgdXNlIHRoaXMgZW50cnlwb2ludCB0b3RhbGx5IGRp
ZmZlcmVudGx5CiAgICAgLy8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgd2UncmUgZG9pbmcgT1NSIGVu
dHJ5IG9yIG5vdC4KICAgICAvLyBGSVhNRTogRXhjZXB0IGZvciBPU1IgZW50cnksIHRoaXMgaXMg
YSB0b3RhbCBrbHVkZ2UgLSBMTFZNIHNob3VsZCBqdXN0IHVzZSBvdXIK
</data>
<flag name="review"
          id="237790"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>