<?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>105953</bug_id>
          
          <creation_ts>2013-01-02 14:54:30 -0800</creation_ts>
          <short_desc>DFG inlining machinery should be robust against the inline callee varying while the executable stays the same</short_desc>
          <delta_ts>2013-01-02 15:56:04 -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>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>
          
          
          <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>798936</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-02 14:54:30 -0800</bug_when>
    <thetext>This is another step towards inlining closure calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798938</commentid>
    <comment_count>1</comment_count>
      <attachid>181074</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-02 14:56:43 -0800</bug_when>
    <thetext>Created attachment 181074
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799013</commentid>
    <comment_count>2</comment_count>
      <attachid>181074</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-01-02 15:49:44 -0800</bug_when>
    <thetext>Comment on attachment 181074
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799023</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-02 15:56:04 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/138669</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181074</attachid>
            <date>2013-01-02 14:56:43 -0800</date>
            <delta_ts>2013-01-02 15:49:44 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>callee.patch</filename>
            <type>text/plain</type>
            <size>21702</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NjU0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDEzLTAxLTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIGlubGluaW5nIG1hY2hpbmVyeSBzaG91bGQgYmUgcm9idXN0IGFnYWluc3QgdGhlIGlubGlu
ZSBjYWxsZWUgdmFyeWluZyB3aGlsZSB0aGUgZXhlY3V0YWJsZSBzdGF5cyB0aGUgc2FtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1OTUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlz
IGluc3RpdHV0ZXMgdGhlIHBvbGljeSB0aGF0IGlmIElubGluZUNhbGxGcmFtZTo6Y2FsbGVlIGlz
IG51bGwsIHRoZW4gdGhlIGNhbGxlZSBhbmQgc2NvcGUgaGF2ZSBhbHJlYWR5CisgICAgICAgIGJl
ZW4gc3RvcmVkIGludG8gdGhlIHRydWUgY2FsbCBmcmFtZSAoaS5lLiB0aGUgcGxhY2Ugd2hlcmUg
dGhlIGNhbGwgZnJhbWUgb2YgdGhlIGlubGluZWQgY2FsbCB3b3VsZCBoYXZlCisgICAgICAgIGJl
ZW4pIGFuZCBzbyBhbnkgYXR0ZW1wdCB0byBhY2Nlc3MgdGhlIGNhbGxlZSBvciBzY29wZSBzaG91
bGQgZG8gYSBsb2FkIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhhdCB0aGUgdmFsdWUKKyAgICAgICAg
aXMgY29uc3RhbnQuIFRoaXMgd2lyZXMgdGhlIGNoYW5nZXMgdGhyb3VnaCB0aGUgYnl0ZWNvZGUg
cGFyc2VyLCB0aGUgc3RhY2sgc2Nhbm5pbmcgbG9naWMsIGFuZCB0aGUgY29tcGlsZXIKKyAgICAg
ICAgb3B0aW1pemF0aW9uIHBoYXNlcyBhbmQgYmFja2VuZHMuCisKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlT3JpZ2luLmNwcDoKKyAgICAgICAgKEpTQzo6SW5saW5lQ2FsbEZyYW1lOjpkdW1wKToK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlT3JpZ2luLmg6CisgICAgICAgIChDb2RlT3JpZ2luKToK
KyAgICAgICAgKElubGluZUNhbGxGcmFtZSk6CisgICAgICAgIChKU0M6OklubGluZUNhbGxGcmFt
ZTo6aXNDbG9zdXJlQ2FsbCk6CisgICAgICAgIChKU0M6OkNvZGVPcmlnaW46OnN0YWNrT2Zmc2V0
KToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogZGZnL0RGR0Fzc2VtYmx5SGVscGVycy5oOgor
ICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Qnl0ZUNvZGVQYXJzZXI6OmdldCk6CisgICAgICAgIChJbmxpbmVTdGFja0VudHJ5KToKKyAgICAg
ICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6Z2V0U2NvcGUpOgorICAgICAgICAoSlNDOjpE
Rkc6OkJ5dGVDb2RlUGFyc2VyOjpJbmxpbmVTdGFja0VudHJ5OjpJbmxpbmVTdGFja0VudHJ5KToK
KyAgICAgICAgKiBkZmcvREZHQ1NFUGhhc2UuY3BwOgorICAgICAgICAoQ1NFUGhhc2UpOgorICAg
ICAgICAoSlNDOjpERkc6OkNTRVBoYXNlOjpnZW5lcmljUHVyZUNTRSk6CisgICAgICAgIChKU0M6
OkRGRzo6Q1NFUGhhc2U6OnB1cmVDU0UpOgorICAgICAgICAoSlNDOjpERkc6OkNTRVBoYXNlOjpw
dXJlQ1NFUmVxdWlyaW5nU2FtZUlubGluZUNhbGxGcmFtZSk6CisgICAgICAgIChKU0M6OkRGRzo6
Q1NFUGhhc2U6OmdldE15U2NvcGVMb2FkRWxpbWluYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6
OkNTRVBoYXNlOjpwZXJmb3JtTm9kZUNTRSk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21w
aWxlcjMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBp
bGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAg
KiBpbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnRy
dWVDYWxsRnJhbWUpOgorCiAyMDEzLTAxLTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CiAKICAgICAgICAgREZHIHNob3VsZCBub3QgdXNlIHRoZSBJbmxpbmVDYWxsRnJhbWUncyBj
YWxsZWUgd2hlbiBpdCBjb3VsZCBoYXZlIHVzZWQgdGhlIGV4ZWN1dGFibGUgaXN0ZWFkCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCShyZXZp
c2lvbiAxMzg2NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTgxLDcgKzgxLDEyIEBAIENvZGVCbG9jayogSW5saW5lQ2Fs
bEZyYW1lOjpiYXNlbGluZUNvZGUKIAogdm9pZCBJbmxpbmVDYWxsRnJhbWU6OmR1bXAoUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICBvdXQucHJpbnQoIiMiLCBoYXNoKCksICI6PCIsIFJh
d1BvaW50ZXIoZXhlY3V0YWJsZS5nZXQoKSksICIsIGJjIyIsIGNhbGxlci5ieXRlY29kZUluZGV4
LCAiLCAiLCBzcGVjaWFsaXphdGlvbktpbmQoKSwgIj4iKTsKKyAgICBvdXQucHJpbnQoIiMiLCBo
YXNoKCksICI6PCIsIFJhd1BvaW50ZXIoZXhlY3V0YWJsZS5nZXQoKSksICIsIGJjIyIsIGNhbGxl
ci5ieXRlY29kZUluZGV4LCAiLCAiLCBzcGVjaWFsaXphdGlvbktpbmQoKSk7CisgICAgaWYgKGNh
bGxlZSkKKyAgICAgICAgb3V0LnByaW50KCIsIGtub3duIGNhbGxlZTogIiwgSlNWYWx1ZShjYWxs
ZWUuZ2V0KCkpKTsKKyAgICBlbHNlCisgICAgICAgIG91dC5wcmludCgiLCBjbG9zdXJlIGNhbGwi
KTsKKyAgICBvdXQucHJpbnQoIj4iKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgJKHJldmlzaW9uIDEz
ODY1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTgzLDYgKzgzLDggQEAgc3RydWN0IENvZGVPcmlnaW4g
ewogICAgIC8vIHdvdWxkIGhhdmUgb3duZWQgdGhlIGNvZGUgaWYgaXQgaGFkIG5vdCBiZWVuIGlu
bGluZWQuIE90aGVyd2lzZSByZXR1cm5zIDAuCiAgICAgRXhlY3V0YWJsZUJhc2UqIGNvZGVPcmln
aW5Pd25lcigpIGNvbnN0OwogICAgIAorICAgIHVuc2lnbmVkIHN0YWNrT2Zmc2V0KCkgY29uc3Q7
CisgICAgCiAgICAgc3RhdGljIHVuc2lnbmVkIGlubGluZURlcHRoRm9yQ2FsbEZyYW1lKElubGlu
ZUNhbGxGcmFtZSopOwogICAgIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb2RlT3JpZ2lu
JiBvdGhlcikgY29uc3Q7CkBAIC05OCw3ICsxMDAsNyBAQCBzdHJ1Y3QgQ29kZU9yaWdpbiB7CiBz
dHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKICAgICBWZWN0b3I8VmFsdWVSZWNvdmVyeT4gYXJndW1l
bnRzOwogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gZXhlY3V0YWJsZTsKLSAgICBX
cml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gY2FsbGVlOworICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0
aW9uPiBjYWxsZWU7IC8vIFRoaXMgbWF5IGJlIG51bGwsIGluZGljYXRpbmcgdGhhdCB0aGlzIGlz
IGEgY2xvc3VyZSBjYWxsIGFuZCB0aGF0IHRoZSBKU0Z1bmN0aW9uIGFuZCBKU1Njb3BlIGFyZSBh
bHJlYWR5IG9uIHRoZSBzdGFjay4KICAgICBDb2RlT3JpZ2luIGNhbGxlcjsKICAgICBCaXRWZWN0
b3IgY2FwdHVyZWRWYXJzOyAvLyBJbmRleGVkIGJ5IHRoZSBtYWNoaW5lIGNhbGwgZnJhbWUncyB2
YXJpYWJsZSBudW1iZXJpbmcuCiAgICAgdW5zaWduZWQgc3RhY2tPZmZzZXQgOiAzMTsKQEAgLTEw
Niw2ICsxMDgsOCBAQCBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKICAgICAKICAgICBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIHNwZWNpYWxpemF0aW9uS2luZCgpIGNvbnN0IHsgcmV0dXJuIHNwZWNp
YWxpemF0aW9uRnJvbUlzQ2FsbChpc0NhbGwpOyB9CiAgICAgCisgICAgYm9vbCBpc0Nsb3N1cmVD
YWxsKCkgY29uc3QgeyByZXR1cm4gIWNhbGxlZTsgfQorICAgIAogICAgIENvZGVCbG9ja0hhc2gg
aGFzaCgpIGNvbnN0OwogICAgIAogICAgIENvZGVCbG9jayogYmFzZWxpbmVDb2RlQmxvY2soKSBj
b25zdDsKQEAgLTExOCw2ICsxMjIsMTQgQEAgc3RydWN0IENvZGVPcmlnaW5BdENhbGxSZXR1cm5P
ZmZzZXQgewogICAgIHVuc2lnbmVkIGNhbGxSZXR1cm5PZmZzZXQ7CiB9OwogCitpbmxpbmUgdW5z
aWduZWQgQ29kZU9yaWdpbjo6c3RhY2tPZmZzZXQoKSBjb25zdAoreworICAgIGlmICghaW5saW5l
Q2FsbEZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAgICByZXR1cm4gaW5saW5lQ2Fs
bEZyYW1lLT5zdGFja09mZnNldDsKK30KKwogaW5saW5lIGJvb2wgQ29kZU9yaWdpbjo6b3BlcmF0
b3I9PShjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3QKIHsKICAgICByZXR1cm4gYnl0ZWNv
ZGVJbmRleCA9PSBvdGhlci5ieXRlY29kZUluZGV4CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fzc2VtYmx5SGVscGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgJKHJldmlzaW9uIDEzODY1MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCShyZXZpc2lvbiAxMzg2NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMwLDcgKzIzMCw3IEBAIHByaXZh
dGU6CiAgICAgTm9kZUluZGV4IGdldChpbnQgb3BlcmFuZCkKICAgICB7CiAgICAgICAgIGlmIChv
cGVyYW5kID09IEpTU3RhY2s6OkNhbGxlZSkgewotICAgICAgICAgICAgaWYgKG1faW5saW5lU3Rh
Y2tUb3AtPm1faW5saW5lQ2FsbEZyYW1lKQorICAgICAgICAgICAgaWYgKG1faW5saW5lU3RhY2tU
b3AtPm1faW5saW5lQ2FsbEZyYW1lICYmIG1faW5saW5lU3RhY2tUb3AtPm1faW5saW5lQ2FsbEZy
YW1lLT5jYWxsZWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNlbGxDb25zdGFudChtX2lubGlu
ZVN0YWNrVG9wLT5tX2lubGluZUNhbGxGcmFtZS0+Y2FsbGVlLmdldCgpKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgcmV0dXJuIGdldENhbGxlZSgpOwpAQCAtMTIyMiw3ICsxMjIyLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIENvZGVCbG9jayosCiAgICAgICAgICAgICBDb2RlQmxvY2sq
IHByb2ZpbGVkQmxvY2ssCiAgICAgICAgICAgICBCbG9ja0luZGV4IGNhbGxzaXRlQmxvY2tIZWFk
LAotICAgICAgICAgICAgSlNGdW5jdGlvbiogY2FsbGVlLAorICAgICAgICAgICAgSlNGdW5jdGlv
biogY2FsbGVlLCAvLyBOdWxsIGlmIHRoaXMgaXMgYSBjbG9zdXJlIGNhbGwuCiAgICAgICAgICAg
ICBWaXJ0dWFsUmVnaXN0ZXIgcmV0dXJuVmFsdWVWUiwKICAgICAgICAgICAgIFZpcnR1YWxSZWdp
c3RlciBpbmxpbmVDYWxsRnJhbWVTdGFydCwKICAgICAgICAgICAgIGludCBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcywKQEAgLTE4OTIsNyArMTg5Miw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6
OnByZXBhcmVUb1BhcnNlQmxvY2sKIE5vZGVJbmRleCBCeXRlQ29kZVBhcnNlcjo6Z2V0U2NvcGUo
Ym9vbCBza2lwVG9wLCB1bnNpZ25lZCBza2lwQ291bnQpCiB7CiAgICAgTm9kZUluZGV4IGxvY2Fs
QmFzZTsKLSAgICBpZiAobV9pbmxpbmVTdGFja1RvcC0+bV9pbmxpbmVDYWxsRnJhbWUpIHsKKyAg
ICBpZiAobV9pbmxpbmVTdGFja1RvcC0+bV9pbmxpbmVDYWxsRnJhbWUgJiYgIW1faW5saW5lU3Rh
Y2tUb3AtPm1faW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKCkpIHsKICAgICAgICAgQVNT
RVJUKG1faW5saW5lU3RhY2tUb3AtPm1faW5saW5lQ2FsbEZyYW1lLT5jYWxsZWUpOwogICAgICAg
ICBsb2NhbEJhc2UgPSBjZWxsQ29uc3RhbnQobV9pbmxpbmVTdGFja1RvcC0+bV9pbmxpbmVDYWxs
RnJhbWUtPmNhbGxlZS0+c2NvcGUoKSk7CiAgICAgfSBlbHNlCkBAIC0zNDk3LDcgKzM0OTcsNyBA
QCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lCiAgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssCiAgICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLAogICAgIEJsb2NrSW5k
ZXggY2FsbHNpdGVCbG9ja0hlYWQsCi0gICAgSlNGdW5jdGlvbiogY2FsbGVlLAorICAgIEpTRnVu
Y3Rpb24qIGNhbGxlZSwgLy8gTnVsbCBpZiB0aGlzIGlzIGEgY2xvc3VyZSBjYWxsLgogICAgIFZp
cnR1YWxSZWdpc3RlciByZXR1cm5WYWx1ZVZSLAogICAgIFZpcnR1YWxSZWdpc3RlciBpbmxpbmVD
YWxsRnJhbWVTdGFydCwKICAgICBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsCkBAIC0z
NTI5LDE0ICszNTI5LDE0IEBAIEJ5dGVDb2RlUGFyc2VyOjpJbmxpbmVTdGFja0VudHJ5OjpJbmxp
bmUKICAgICBpZiAobV9jYWxsZXIpIHsKICAgICAgICAgLy8gSW5saW5lIGNhc2UuCiAgICAgICAg
IEFTU0VSVChjb2RlQmxvY2sgIT0gYnl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrKTsKLSAgICAg
ICAgQVNTRVJUKGNhbGxlZSk7CiAgICAgICAgIEFTU0VSVChpbmxpbmVDYWxsRnJhbWVTdGFydCAh
PSBJbnZhbGlkVmlydHVhbFJlZ2lzdGVyKTsKICAgICAgICAgQVNTRVJUKGNhbGxzaXRlQmxvY2tI
ZWFkICE9IE5vQmxvY2spOwogICAgICAgICAKICAgICAgICAgSW5saW5lQ2FsbEZyYW1lIGlubGlu
ZUNhbGxGcmFtZTsKICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLmV4ZWN1dGFibGUuc2V0KCpieXRl
Q29kZVBhcnNlci0+bV9nbG9iYWxEYXRhLCBieXRlQ29kZVBhcnNlci0+bV9jb2RlQmxvY2stPm93
bmVyRXhlY3V0YWJsZSgpLCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpKTsKICAgICAgICAg
aW5saW5lQ2FsbEZyYW1lLnN0YWNrT2Zmc2V0ID0gaW5saW5lQ2FsbEZyYW1lU3RhcnQgKyBKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOwotICAgICAgICBpbmxpbmVDYWxsRnJhbWUuY2FsbGVl
LnNldCgqYnl0ZUNvZGVQYXJzZXItPm1fZ2xvYmFsRGF0YSwgYnl0ZUNvZGVQYXJzZXItPm1fY29k
ZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgY2FsbGVlKTsKKyAgICAgICAgaWYgKGNhbGxlZSkK
KyAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS5jYWxsZWUuc2V0KCpieXRlQ29kZVBhcnNlci0+
bV9nbG9iYWxEYXRhLCBieXRlQ29kZVBhcnNlci0+bV9jb2RlQmxvY2stPm93bmVyRXhlY3V0YWJs
ZSgpLCBjYWxsZWUpOwogICAgICAgICBpbmxpbmVDYWxsRnJhbWUuY2FsbGVyID0gYnl0ZUNvZGVQ
YXJzZXItPmN1cnJlbnRDb2RlT3JpZ2luKCk7CiAgICAgICAgIGlubGluZUNhbGxGcmFtZS5hcmd1
bWVudHMucmVzaXplKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKTsgLy8gU2V0IHRoZSBudW1i
ZXIgb2YgYXJndW1lbnRzIGluY2x1ZGluZyB0aGlzLCBidXQgZG9uJ3QgY29uZmlndXJlIHRoZSB2
YWx1ZSByZWNvdmVyaWVzLCB5ZXQuCiAgICAgICAgIGlubGluZUNhbGxGcmFtZS5pc0NhbGwgPSBp
c0NhbGwoa2luZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNl
LmNwcAkocmV2aXNpb24gMTM4NjUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
U0VQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg4LDggKzg4LDEwIEBAIHBy
aXZhdGU6CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCi0gICAg
Tm9kZUluZGV4IHB1cmVDU0UoTm9kZSYgbm9kZSkKKworICAgIGVudW0gSW5saW5lQ2FsbEZyYW1l
UmVxdWlyZW1lbnQgeyBSZXF1aXJlU2FtZUlubGluZUNhbGxGcmFtZSwgRG9Ob3RDYXJlQWJvdXRJ
bmxpbmVDYWxsRnJhbWUgfTsKKyAgICB0ZW1wbGF0ZTxJbmxpbmVDYWxsRnJhbWVSZXF1aXJlbWVu
dCBpbmxpbmVDYWxsRnJhbWVSZXF1aXJlbWVudD4KKyAgICBOb2RlSW5kZXggZ2VuZXJpY1B1cmVD
U0UoTm9kZSYgbm9kZSkKICAgICB7CiAgICAgICAgIE5vZGVJbmRleCBjaGlsZDEgPSBjYW5vbmlj
YWxpemUobm9kZS5jaGlsZDEoKSk7CiAgICAgICAgIE5vZGVJbmRleCBjaGlsZDIgPSBjYW5vbmlj
YWxpemUobm9kZS5jaGlsZDIoKSk7CkBAIC0xMTAsNiArMTEyLDEwIEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBpZiAobm9kZS5hcml0aE5vZGVGbGFncygpICE9IG90aGVyTm9kZS5hcml0aE5vZGVG
bGFncygpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCisgICAgICAg
ICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lUmVxdWlyZW1lbnQgPT0gUmVxdWlyZVNhbWVJbmxpbmVD
YWxsRnJhbWUKKyAgICAgICAgICAgICAgICAmJiBub2RlLmNvZGVPcmlnaW4uaW5saW5lQ2FsbEZy
YW1lICE9IG90aGVyTm9kZS5jb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgTm9kZUluZGV4IG90aGVy
Q2hpbGQgPSBjYW5vbmljYWxpemUob3RoZXJOb2RlLmNoaWxkMSgpKTsKICAgICAgICAgICAgIGlm
IChvdGhlckNoaWxkID09IE5vTm9kZSkKICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7CkBA
IC0xMzMsNiArMTM5LDE2IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBOb05vZGU7CiAgICAg
fQogICAgIAorICAgIE5vZGVJbmRleCBwdXJlQ1NFKE5vZGUmIG5vZGUpCisgICAgeworICAgICAg
ICByZXR1cm4gZ2VuZXJpY1B1cmVDU0U8RG9Ob3RDYXJlQWJvdXRJbmxpbmVDYWxsRnJhbWU+KG5v
ZGUpOworICAgIH0KKyAgICAKKyAgICBOb2RlSW5kZXggcHVyZUNTRVJlcXVpcmluZ1NhbWVJbmxp
bmVDYWxsRnJhbWUoTm9kZSYgbm9kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZW5lcmljUHVy
ZUNTRTxSZXF1aXJlU2FtZUlubGluZUNhbGxGcmFtZT4obm9kZSk7CisgICAgfQorICAgIAogICAg
IE5vZGVJbmRleCBjb25zdGFudENTRShOb2RlJiBub2RlKQogICAgIHsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gZW5kSW5kZXhGb3JQdXJlQ1NFKCk7IGktLTspIHsKQEAgLTc5OSwxMyArODE1
LDE1IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBOb05vZGU7CiAgICAgfQogICAgIAotICAg
IE5vZGVJbmRleCBnZXRNeVNjb3BlTG9hZEVsaW1pbmF0aW9uKCkKKyAgICBOb2RlSW5kZXggZ2V0
TXlTY29wZUxvYWRFbGltaW5hdGlvbihJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSkK
ICAgICB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1faW5kZXhJbkJsb2NrOyBpLS07KSB7
CiAgICAgICAgICAgICBOb2RlSW5kZXggaW5kZXggPSBtX2N1cnJlbnRCbG9jay0+YXQoaSk7CiAg
ICAgICAgICAgICBOb2RlJiBub2RlID0gbV9ncmFwaFtpbmRleF07CiAgICAgICAgICAgICBpZiAo
IW5vZGUuc2hvdWxkR2VuZXJhdGUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgIGlmIChub2RlLmNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lICE9IGlubGluZUNhbGxG
cmFtZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHN3aXRjaCAobm9k
ZS5vcCgpKSB7CiAgICAgICAgICAgICBjYXNlIENyZWF0ZUFjdGl2YXRpb246CiAgICAgICAgICAg
ICAgICAgLy8gVGhpcyBtYXkgY2F1c2UgdXMgdG8gcmV0dXJuIGEgZGlmZmVyZW50IHNjb3BlLgpA
QCAtMTExMiw3ICsxMTMwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBBcml0aE1pbjoKICAg
ICAgICAgY2FzZSBBcml0aE1heDoKICAgICAgICAgY2FzZSBBcml0aFNxcnQ6Ci0gICAgICAgIGNh
c2UgR2V0Q2FsbGVlOgogICAgICAgICBjYXNlIFN0cmluZ0NoYXJBdDoKICAgICAgICAgY2FzZSBT
dHJpbmdDaGFyQ29kZUF0OgogICAgICAgICBjYXNlIEludDMyVG9Eb3VibGU6CkBAIC0xMTMwLDYg
KzExNDcsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHNldFJlcGxhY2VtZW50KHB1cmVDU0Uo
bm9kZSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBH
ZXRDYWxsZWU6CisgICAgICAgICAgICBzZXRSZXBsYWNlbWVudChwdXJlQ1NFUmVxdWlyaW5nU2Ft
ZUlubGluZUNhbGxGcmFtZShub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBj
YXNlIEdldExvY2FsOiB7CiAgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxl
QWNjZXNzRGF0YSA9IG5vZGUudmFyaWFibGVBY2Nlc3NEYXRhKCk7CiAgICAgICAgICAgICBpZiAo
IXZhcmlhYmxlQWNjZXNzRGF0YS0+aXNDYXB0dXJlZCgpKQpAQCAtMTI0MSw3ICsxMjYyLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgR2V0TXlTY29wZToK
LSAgICAgICAgICAgIHNldFJlcGxhY2VtZW50KGdldE15U2NvcGVMb2FkRWxpbWluYXRpb24oKSk7
CisgICAgICAgICAgICBzZXRSZXBsYWNlbWVudChnZXRNeVNjb3BlTG9hZEVsaW1pbmF0aW9uKG5v
ZGUuY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgCiAgICAgICAgIC8vIEhhbmRsZSBub2RlcyB0aGF0IGFyZSBjb25kaXRpb25hbGx5
IHB1cmU6IHRoZXNlIGFyZSBwdXJlLCBhbmQgY2FuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkocmV2aXNpb24g
MTM4NjUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIz
Ml82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NiwxMyArNjU2LDE1IEBAIHZvaWQgT1NSRXhp
dENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCAKICAgICAgICAgCiAgICAgICAgIG1faml0LnN0
b3JlUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihiYXNlbGluZUNvZGVCbG9jayks
IEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxs
RnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6Q29kZUJsb2NrKSkpOwogICAgICAgICBtX2pp
dC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcp
LCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJh
bWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6U2NvcGVDaGFpbikpKTsKLSAgICAgICAgbV9qaXQu
c3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+
Y2FsbGVlLT5zY29wZSgpKSwgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVn
aXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpTY29wZUNoYWlu
KSkpOworICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCgpKQorICAg
ICAgICAgICAgbV9qaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlu
bGluZUNhbGxGcmFtZS0+Y2FsbGVlLT5zY29wZSgpKSwgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2Fk
Rm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0
YWNrOjpTY29wZUNoYWluKSkpOwogICAgICAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVy
czo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zv
cigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFj
azo6Q2FsbGVyRnJhbWUpKSk7CiAgICAgICAgIG1faml0LnN0b3JlUHRyKGNhbGxlckZyYW1lR1BS
LCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2Fs
bEZyYW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6OkNhbGxlckZyYW1lKSkpOwogICAgICAgICBt
X2ppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoanVtcFRhcmdldCks
IEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxs
RnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6UmV0dXJuUEMpKSk7CiAgICAgICAgIG1faml0
LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5h
cmd1bWVudHMuc2l6ZSgpKSwgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVn
aXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpBcmd1bWVudENv
dW50KSkpOwogICAgICAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZElt
bTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcigoVmlydHVhbFJl
Z2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6Q2FsbGVlKSkp
OwotICAgICAgICBtX2ppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
aW5saW5lQ2FsbEZyYW1lLT5jYWxsZWUuZ2V0KCkpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRG
b3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3Rh
Y2s6OkNhbGxlZSkpKTsKKyAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNh
bGwoKSkKKyAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZS5nZXQoKSksIEFzc2VtYmx5SGVscGVyczo6
cGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0
ICsgSlNTdGFjazo6Q2FsbGVlKSkpOwogICAgIH0KICAgICAKICAgICAvLyAxNCkgQ3JlYXRlIGFy
Z3VtZW50cyBpZiBuZWNlc3NhcnkgYW5kIHBsYWNlIHRoZW0gaW50byB0aGUgYXBwcm9wcmlhdGUg
YWxpYXNlZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGls
ZXI2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0Q29tcGlsZXI2NC5jcHAJKHJldmlzaW9uIDEzODY1MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjMs
MTEgKzYyMywxMyBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAg
ICAgICAgICAgICBjYWxsZXJGcmFtZUdQUiA9IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyOwog
ICAgICAgICAKICAgICAgICAgbV9qaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKGJhc2VsaW5lQ29kZUJsb2NrKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKChW
aXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpD
b2RlQmxvY2spKSk7Ci0gICAgICAgIG1faml0LnN0b3JlNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVz
dGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWUt
PnNjb3BlKCkpKSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVy
KShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6U2NvcGVDaGFpbikpKTsK
KyAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwoKSkKKyAgICAgICAg
ICAgIG1faml0LnN0b3JlNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6
ZW5jb2RlKEpTVmFsdWUoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWUtPnNjb3BlKCkpKSksIEFzc2Vt
Ymx5SGVscGVyczo6YWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUt
PnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6U2NvcGVDaGFpbikpKTsKICAgICAgICAgbV9qaXQuc3Rv
cmU2NChjYWxsZXJGcmFtZUdQUiwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKChWaXJ0dWFs
UmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpDYWxsZXJG
cmFtZSkpKTsKICAgICAgICAgbV9qaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKGp1bXBUYXJnZXQpLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoKFZpcnR1YWxS
ZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6OlJldHVyblBD
KSkpOwogICAgICAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5
bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsg
SlNTdGFjazo6QXJndW1lbnRDb3VudCkpKTsKLSAgICAgICAgbV9qaXQuc3RvcmU2NChBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShpbmxpbmVDYWxs
RnJhbWUtPmNhbGxlZS5nZXQoKSkpKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKChWaXJ0
dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpDYWxs
ZWUpKSk7CisgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKCkpCisg
ICAgICAgICAgICBtX2ppdC5zdG9yZTY0KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlLmdldCgpKSkpLCBB
c3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZy
YW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6OkNhbGxlZSkpKTsKICAgICB9CiAgICAgCiAgICAg
Ly8gMTUpIENyZWF0ZSBhcmd1bWVudHMgaWYgbmVjZXNzYXJ5IGFuZCBwbGFjZSB0aGVtIGludG8g
dGhlIGFwcHJvcHJpYXRlIGFsaWFzZWQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTM4NjUxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMSBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTM5NjQsNyArMzk2NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSYgbm9kZSkKIAogICAgIGNhc2UgR2V0Q2FsbGVlOiB7CiAgICAgICAgIEdQ
UlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGls
ZXI6OnBheWxvYWRGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpDYWxs
ZWUpKSwgcmVzdWx0LmdwcigpKTsKKyAgICAgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6
cGF5bG9hZEZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KG5vZGUuY29kZU9yaWdpbi5z
dGFja09mZnNldCgpICsgc3RhdGljX2Nhc3Q8aW50PihKU1N0YWNrOjpDYWxsZWUpKSksIHJlc3Vs
dC5ncHIoKSk7CiAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0LmdwcigpLCBtX2NvbXBpbGVJbmRl
eCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTM5NzMsNyArMzk3Myw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJl
c3VsdCh0aGlzKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAot
ICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHN0YXRpY19jYXN0
PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6U2NvcGVDaGFpbikpLCByZXN1bHRHUFIpOworICAg
ICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHN0YXRpY19jYXN0PFZp
cnR1YWxSZWdpc3Rlcj4obm9kZS5jb2RlT3JpZ2luLnN0YWNrT2Zmc2V0KCkgKyBzdGF0aWNfY2Fz
dDxpbnQ+KEpTU3RhY2s6OlNjb3BlQ2hhaW4pKSksIHJlc3VsdEdQUik7CiAgICAgICAgIGNlbGxS
ZXN1bHQocmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRleCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAkocmV2aXNpb24gMTM4NjUxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzkxNiw3
ICszOTE2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogCiAg
ICAgY2FzZSBHZXRDYWxsZWU6IHsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsK
LSAgICAgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzdGF0aWNfY2Fz
dDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkNhbGxlZSkpLCByZXN1bHQuZ3ByKCkpOworICAg
ICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHN0YXRpY19jYXN0PFZp
cnR1YWxSZWdpc3Rlcj4obm9kZS5jb2RlT3JpZ2luLnN0YWNrT2Zmc2V0KCkgKyBzdGF0aWNfY2Fz
dDxpbnQ+KEpTU3RhY2s6OkNhbGxlZSkpKSwgcmVzdWx0LmdwcigpKTsKICAgICAgICAgY2VsbFJl
c3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQpAQCAtMzkyNSw3ICszOTI1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
JiBub2RlKQogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCi0gICAgICAgIG1faml0LmxvYWRQdHIoSklU
Q29tcGlsZXI6OmFkZHJlc3NGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNr
OjpTY29wZUNoYWluKSksIHJlc3VsdEdQUik7CisgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29t
cGlsZXI6OmFkZHJlc3NGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihub2RlLmNvZGVP
cmlnaW4uc3RhY2tPZmZzZXQoKSArIHN0YXRpY19jYXN0PGludD4oSlNTdGFjazo6U2NvcGVDaGFp
bikpKSwgcmVzdWx0R1BSKTsKICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGls
ZUluZGV4KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDEzODY1MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMzgsOCArMTM4LDggQEAgQ2FsbEZyYW1lKiBDYWxsRnJhbWU6OnRydWVDYWxsRnJh
bWUoQWJzdAogICAgICAgICAKICAgICAgICAgLy8gRmlsbCBpbiB0aGUgaW5saW5lZENhbGxlcgog
ICAgICAgICBpbmxpbmVkQ2FsbGVyLT5zZXRDb2RlQmxvY2sobWFjaGluZUNvZGVCbG9jayk7Ci0g
ICAgICAgIAotICAgICAgICBpbmxpbmVkQ2FsbGVyLT5zZXRTY29wZShjYWxsZWVBc0Z1bmN0aW9u
LT5zY29wZSgpKTsKKyAgICAgICAgaWYgKGNhbGxlZUFzRnVuY3Rpb24pCisgICAgICAgICAgICBp
bmxpbmVkQ2FsbGVyLT5zZXRTY29wZShjYWxsZWVBc0Z1bmN0aW9uLT5zY29wZSgpKTsKICAgICAg
ICAgaWYgKG5leHRJbmxpbmVDYWxsRnJhbWUpCiAgICAgICAgICAgICBpbmxpbmVkQ2FsbGVyLT5z
ZXRDYWxsZXJGcmFtZSh0aGlzICsgbmV4dElubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQpOwog
ICAgICAgICBlbHNlCkBAIC0xNDcsNyArMTQ3LDggQEAgQ2FsbEZyYW1lKiBDYWxsRnJhbWU6OnRy
dWVDYWxsRnJhbWUoQWJzdAogICAgICAgICAKICAgICAgICAgaW5saW5lZENhbGxlci0+c2V0SW5s
aW5lQ2FsbEZyYW1lKGlubGluZUNhbGxGcmFtZSk7CiAgICAgICAgIGlubGluZWRDYWxsZXItPnNl
dEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNp
emUoKSk7Ci0gICAgICAgIGlubGluZWRDYWxsZXItPnNldENhbGxlZShjYWxsZWVBc0Z1bmN0aW9u
KTsKKyAgICAgICAgaWYgKGNhbGxlZUFzRnVuY3Rpb24pCisgICAgICAgICAgICBpbmxpbmVkQ2Fs
bGVyLT5zZXRDYWxsZWUoY2FsbGVlQXNGdW5jdGlvbik7CiAgICAgICAgIAogICAgICAgICBpbmxp
bmVDYWxsRnJhbWUgPSBuZXh0SW5saW5lQ2FsbEZyYW1lOwogICAgIH0K
</data>
<flag name="review"
          id="198562"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>