<?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>175812</bug_id>
          
          <creation_ts>2017-08-21 22:31:16 -0700</creation_ts>
          <short_desc>We are using valueProfileForBytecodeOffset when there may not be a value profile</short_desc>
          <delta_ts>2017-08-22 09:29:04 -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>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1340962</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-21 22:31:16 -0700</bug_when>
    <thetext>Currently, switching to this crashes on stress/inlined-tail-call-in-inlined-setter-should-not-crash-when-getting-value-profile.js

ValueProfile* CodeBlock::valueProfileForBytecodeOffset(int bytecodeOffset)
{
    OpcodeID opcodeID = Interpreter::getOpcodeID(instructions()[bytecodeOffset]);
    unsigned length = opcodeLength(opcodeID);
    ValueProfile* result = instructions()[bytecodeOffset + length - 1].u.profile;
#if !ASSERT_DISABLED
    bool found = false;
    for (unsigned i = 0; i &lt; numberOfValueProfiles(); ++i) {
        ValueProfile* profile = valueProfile(i);
        if (profile-&gt;m_bytecodeOffset == bytecodeOffset) {
            ASSERT(profile == result);
            found = true;
            break;
        }
    }
    ASSERT(found);
#endif
    return result;
}

I&apos;ll fix and land this change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340968</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-21 23:09:27 -0700</bug_when>
    <thetext>I&apos;m moving to two functions:
ValueProfile&amp; valueProfileForBytecodeOffset(int);
ValueProfile* tryGetValueProfileForBytecodeOffset(int);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340974</commentid>
    <comment_count>2</comment_count>
      <attachid>318740</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-21 23:40:42 -0700</bug_when>
    <thetext>Created attachment 318740
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341048</commentid>
    <comment_count>3</comment_count>
      <attachid>318740</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-08-22 07:26:19 -0700</bug_when>
    <thetext>Comment on attachment 318740
patch

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

r=me with the suggested build fix.

&gt; Source/JavaScriptCore/jit/JITInlines.h:974
&gt;      ASSERT(valueProfile);

Looks like this line needs to be removed to fix the Debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341073</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-22 09:28:33 -0700</bug_when>
    <thetext>landed in:
https://trac.webkit.org/changeset/221018/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341074</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-22 09:29:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/34014145&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318740</attachid>
            <date>2017-08-21 23:40:42 -0700</date>
            <delta_ts>2017-08-22 07:26:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>15710</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMDA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDE3LTA4LTIxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFdlIGFyZSB1c2luZyB2YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldCB3aGVuIHRoZXJlIG1h
eSBub3QgYmUgYSB2YWx1ZSBwcm9maWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzU4MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVzZXMgdGhlIHR5cGUgc3lzdGVtIHRvIGFpZCB0
aGUgY29kZSBhcm91bmQgQ29kZUJsb2NrJ3MgVmFsdWVQcm9maWxlCisgICAgICAgIGFjY2Vzc29y
IG1ldGhvZHMuIHZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0IHVzZWQgdG8gcmV0dXJuIFZh
bHVlUHJvZmlsZSosCisgICAgICAgIHNvIHRoZXJlIHdlcmUgY2FsbGVycyBvZiB0aGlzIHRoYXQg
dGhvdWdodCBpdCBjb3VsZCByZXR1cm4gbnVsbHB0ciB3aGVuIHRoZXJlCisgICAgICAgIHdhcyBu
byBzdWNoIFZhbHVlUHJvZmlsZS4gVGhpcyB3YXMgbm90IHRoZSBjYXNlLCBpdCBhbHdheXMgcmV0
dXJuZWQgYSBub24tbnVsbAorICAgICAgICBwb2ludGVyLiBUaGlzIHBhdGNoIGNoYW5nZXMgdmFs
dWVQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQgdG8gcmV0dXJuIFZhbHVlUHJvZmlsZSYKKyAgICAg
ICAgYW5kIGFkZHMgYSBuZXcgdHJ5R2V0VmFsdWVQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQgbWV0
aG9kIHRoYXQgcmV0dXJucyBWYWx1ZVByb2ZpbGUqCisgICAgICAgIGFuZCBkb2VzIHRoZSByaWdo
dCB0aGluZyBpZiB0aGVyZSBpcyBubyBzdWNoIFZhbHVlUHJvZmlsZS4KKyAgICAgICAgCisgICAg
ICAgIFRoaXMgcGF0Y2ggYWxzbyBjaGFuZ2VzIHRoZSBvdGhlciBWYWx1ZVByb2ZpbGUgYWNjZXNz
b3JzIG9uIENvZGVCbG9jayB0bworICAgICAgICByZXR1cm4gVmFsdWVQcm9maWxlJiBpbnN0ZWFk
IG9mIFZhbHVlUHJvZmlsZSouIFNvbWUgY2FsbGVycyBoYW5kbGVkIHRoZSBudWxsCisgICAgICAg
IGNhc2UgdW5uZWNlc3NhcmlseSwgYW5kIHVzaW5nIHRoZSB0eXBlIHN5c3RlbSB0byBzcGVjaWZ5
IHRoZSByZXN1bHQgY2FuJ3QgYmUKKyAgICAgICAgbnVsbCByZW1vdmVzIHRoZXNlIHVzZWxlc3Mg
YnJhbmNoZXMuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OnVwZGF0ZUFsbFByZWRpY3Rpb25zQW5kQ291bnRMaXZlbmVzcyk6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcFZhbHVlUHJvZmlsZXMpOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6OnRyeUdldFZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjp2YWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldCk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6dmFsaWRhdGUpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVC
bG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50
KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjp2YWx1ZVByb2ZpbGUpOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6OnZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gb3JCeXRlY29kZU9mZnNldCk6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0RnJvbUFsbFZhbHVlUHJvZmlsZXMpOgorICAgICAg
ICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUlubGluaW5nKToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjptZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlRm9y
KToKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvbkluamVjdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICog
aml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJC
eXRlY29kZVNlcXVlbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZXI6OkJ5dGVjb2RlU2Vx
dWVuY2U6OkJ5dGVjb2RlU2VxdWVuY2UpOgorICAgICAgICAqIHRvb2xzL0hlYXBWZXJpZmllci5j
cHA6CisgICAgICAgIChKU0M6OkhlYXBWZXJpZmllcjo6dmFsaWRhdGVKU0NlbGwpOgorCiAyMDE3
LTA4LTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2Ug
cHJvYmUgY29kZSB0byB1c2Ugc3RhdGljX2Fzc2VydCBpbnN0ZWFkIG9mIENPTVBJTEVfQVNTRVJU
LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJ
KHJldmlzaW9uIDIyMDk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDkwLDE4ICsyNDkwLDE4IEBAIHZvaWQgQ29k
ZUJsb2NrOjp1cGRhdGVBbGxQcmVkaWN0aW9uc0FuZEMKICAgICBudW1iZXJPZkxpdmVOb25Bcmd1
bWVudFZhbHVlUHJvZmlsZXMgPSAwOwogICAgIG51bWJlck9mU2FtcGxlc0luUHJvZmlsZXMgPSAw
OyAvLyBJZiB0aGlzIGRpdmlkZWQgYnkgVmFsdWVQcm9maWxlOjpudW1iZXJPZkJ1Y2tldHMgZXF1
YWxzIG51bWJlck9mVmFsdWVQcm9maWxlcygpIHRoZW4gdmFsdWUgcHJvZmlsZXMgYXJlIGZ1bGwu
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvdGFsTnVtYmVyT2ZWYWx1ZVByb2ZpbGVz
KCk7ICsraSkgewotICAgICAgICBWYWx1ZVByb2ZpbGUqIHByb2ZpbGUgPSBnZXRGcm9tQWxsVmFs
dWVQcm9maWxlcyhpKTsKLSAgICAgICAgdW5zaWduZWQgbnVtU2FtcGxlcyA9IHByb2ZpbGUtPnRv
dGFsTnVtYmVyT2ZTYW1wbGVzKCk7CisgICAgICAgIFZhbHVlUHJvZmlsZSYgcHJvZmlsZSA9IGdl
dEZyb21BbGxWYWx1ZVByb2ZpbGVzKGkpOworICAgICAgICB1bnNpZ25lZCBudW1TYW1wbGVzID0g
cHJvZmlsZS50b3RhbE51bWJlck9mU2FtcGxlcygpOwogICAgICAgICBpZiAobnVtU2FtcGxlcyA+
IFZhbHVlUHJvZmlsZTo6bnVtYmVyT2ZCdWNrZXRzKQogICAgICAgICAgICAgbnVtU2FtcGxlcyA9
IFZhbHVlUHJvZmlsZTo6bnVtYmVyT2ZCdWNrZXRzOyAvLyBXZSBkb24ndCB3YW50IHByb2ZpbGVz
IHRoYXQgYXJlIGV4dHJlbWVseSBob3QgdG8gYmUgZ2l2ZW4gbW9yZSB3ZWlnaHQuCiAgICAgICAg
IG51bWJlck9mU2FtcGxlc0luUHJvZmlsZXMgKz0gbnVtU2FtcGxlczsKLSAgICAgICAgaWYgKHBy
b2ZpbGUtPm1fYnl0ZWNvZGVPZmZzZXQgPCAwKSB7Ci0gICAgICAgICAgICBwcm9maWxlLT5jb21w
dXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyKTsKKyAgICAgICAgaWYgKHByb2ZpbGUubV9ieXRl
Y29kZU9mZnNldCA8IDApIHsKKyAgICAgICAgICAgIHByb2ZpbGUuY29tcHV0ZVVwZGF0ZWRQcmVk
aWN0aW9uKGxvY2tlcik7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAg
ICBpZiAocHJvZmlsZS0+bnVtYmVyT2ZTYW1wbGVzKCkgfHwgcHJvZmlsZS0+bV9wcmVkaWN0aW9u
ICE9IFNwZWNOb25lKQorICAgICAgICBpZiAocHJvZmlsZS5udW1iZXJPZlNhbXBsZXMoKSB8fCBw
cm9maWxlLm1fcHJlZGljdGlvbiAhPSBTcGVjTm9uZSkKICAgICAgICAgICAgIG51bWJlck9mTGl2
ZU5vbkFyZ3VtZW50VmFsdWVQcm9maWxlcysrOwotICAgICAgICBwcm9maWxlLT5jb21wdXRlVXBk
YXRlZFByZWRpY3Rpb24obG9ja2VyKTsKKyAgICAgICAgcHJvZmlsZS5jb21wdXRlVXBkYXRlZFBy
ZWRpY3Rpb24obG9ja2VyKTsKICAgICB9CiAgICAgCiAjaWYgRU5BQkxFKERGR19KSVQpCkBAIC0y
NjA5LDE3ICsyNjA5LDE3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wVmFsdWVQcm9maWxlcygpCiB7
CiAgICAgZGF0YUxvZygiVmFsdWVQcm9maWxlIGZvciAiLCAqdGhpcywgIjpcbiIpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b3RhbE51bWJlck9mVmFsdWVQcm9maWxlcygpOyArK2kp
IHsKLSAgICAgICAgVmFsdWVQcm9maWxlKiBwcm9maWxlID0gZ2V0RnJvbUFsbFZhbHVlUHJvZmls
ZXMoaSk7Ci0gICAgICAgIGlmIChwcm9maWxlLT5tX2J5dGVjb2RlT2Zmc2V0IDwgMCkgewotICAg
ICAgICAgICAgQVNTRVJUKHByb2ZpbGUtPm1fYnl0ZWNvZGVPZmZzZXQgPT0gLTEpOworICAgICAg
ICBWYWx1ZVByb2ZpbGUmIHByb2ZpbGUgPSBnZXRGcm9tQWxsVmFsdWVQcm9maWxlcyhpKTsKKyAg
ICAgICAgaWYgKHByb2ZpbGUubV9ieXRlY29kZU9mZnNldCA8IDApIHsKKyAgICAgICAgICAgIEFT
U0VSVChwcm9maWxlLm1fYnl0ZWNvZGVPZmZzZXQgPT0gLTEpOwogICAgICAgICAgICAgZGF0YUxv
Z0YoIiAgIGFyZyA9ICV1OiAiLCBpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBkYXRh
TG9nRigiICAgYmMgPSAlZDogIiwgcHJvZmlsZS0+bV9ieXRlY29kZU9mZnNldCk7Ci0gICAgICAg
IGlmICghcHJvZmlsZS0+bnVtYmVyT2ZTYW1wbGVzKCkgJiYgcHJvZmlsZS0+bV9wcmVkaWN0aW9u
ID09IFNwZWNOb25lKSB7CisgICAgICAgICAgICBkYXRhTG9nRigiICAgYmMgPSAlZDogIiwgcHJv
ZmlsZS5tX2J5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgaWYgKCFwcm9maWxlLm51bWJlck9mU2Ft
cGxlcygpICYmIHByb2ZpbGUubV9wcmVkaWN0aW9uID09IFNwZWNOb25lKSB7CiAgICAgICAgICAg
ICBkYXRhTG9nRigiPGVtcHR5PlxuIik7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQotICAgICAgICBwcm9maWxlLT5kdW1wKFdURjo6ZGF0YUZpbGUoKSk7CisgICAgICAgIHByb2Zp
bGUuZHVtcChXVEY6OmRhdGFGaWxlKCkpOwogICAgICAgICBkYXRhTG9nRigiXG4iKTsKICAgICB9
CiAgICAgZGF0YUxvZygiUmFyZUNhc2VQcm9maWxlIGZvciAiLCAqdGhpcywgIjpcbiIpOwpAQCAt
MjczOSwxMSArMjczOSwxOSBAQCBTdHJpbmcgQ29kZUJsb2NrOjpuYW1lRm9yUmVnaXN0ZXIoVmly
dHVhCiAgICAgcmV0dXJuICIiOwogfQogCi1WYWx1ZVByb2ZpbGUqIENvZGVCbG9jazo6dmFsdWVQ
cm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KQorVmFsdWVQcm9maWxl
KiBDb2RlQmxvY2s6OnRyeUdldFZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRl
Y29kZU9mZnNldCkKK3sKKyAgICByZXR1cm4gdHJ5QmluYXJ5U2VhcmNoPFZhbHVlUHJvZmlsZSwg
aW50PigKKyAgICAgICAgbV92YWx1ZVByb2ZpbGVzLCBtX3ZhbHVlUHJvZmlsZXMuc2l6ZSgpLCBi
eXRlY29kZU9mZnNldCwKKyAgICAgICAgZ2V0VmFsdWVQcm9maWxlQnl0ZWNvZGVPZmZzZXQ8VmFs
dWVQcm9maWxlPik7Cit9CisKK1ZhbHVlUHJvZmlsZSYgQ29kZUJsb2NrOjp2YWx1ZVByb2ZpbGVG
b3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpCiB7CiAgICAgT3Bjb2RlSUQgb3Bj
b2RlSUQgPSBJbnRlcnByZXRlcjo6Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25zKClbYnl0ZWNvZGVP
ZmZzZXRdKTsKICAgICB1bnNpZ25lZCBsZW5ndGggPSBvcGNvZGVMZW5ndGgob3Bjb2RlSUQpOwot
ICAgIHJldHVybiBpbnN0cnVjdGlvbnMoKVtieXRlY29kZU9mZnNldCArIGxlbmd0aCAtIDFdLnUu
cHJvZmlsZTsKKyAgICBBU1NFUlQoISF0cnlHZXRWYWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNl
dChieXRlY29kZU9mZnNldCkpOworICAgIHJldHVybiAqaW5zdHJ1Y3Rpb25zKClbYnl0ZWNvZGVP
ZmZzZXQgKyBsZW5ndGggLSAxXS51LnByb2ZpbGU7CiB9CiAKIHZvaWQgQ29kZUJsb2NrOjp2YWxp
ZGF0ZSgpCkBAIC0yNzcwLDYgKzI3NzgsMTQgQEAgdm9pZCBDb2RlQmxvY2s6OnZhbGlkYXRlKCkK
ICAgICAgICAgICAgIGVuZFZhbGlkYXRpb25EaWRGYWlsKCk7CiAgICAgICAgIH0KICAgICB9CisK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICsgMSA8IG51bWJlck9mVmFsdWVQcm9maWxlcygp
OyArK2kpIHsKKyAgICAgICAgaWYgKHZhbHVlUHJvZmlsZShpKS5tX2J5dGVjb2RlT2Zmc2V0ID4g
dmFsdWVQcm9maWxlKGkgKyAxKS5tX2J5dGVjb2RlT2Zmc2V0KSB7CisgICAgICAgICAgICBiZWdp
blZhbGlkYXRpb25EaWRGYWlsKCk7CisgICAgICAgICAgICBkYXRhTG9nKCIgICAgVmFsdWUgcHJv
ZmlsZXMgYXJlIG5vdCBzb3J0ZWQuXG4iKTsKKyAgICAgICAgICAgIGVuZFZhbGlkYXRpb25EaWRG
YWlsKCk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIHZvaWQgQ29kZUJsb2NrOjpiZWdpblZhbGlk
YXRpb25EaWRGYWlsKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmgJKHJldmlzaW9uIDIyMDk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNDAxLDE5ICs0MDEsMjAgQEAgcHVi
bGljOgogICAgICAgICBBU1NFUlQobV9hcmd1bWVudFZhbHVlUHJvZmlsZXMuc2l6ZSgpID09IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihtX251bVBhcmFtZXRlcnMpKTsKICAgICAgICAgcmV0dXJuIG1f
YXJndW1lbnRWYWx1ZVByb2ZpbGVzLnNpemUoKTsKICAgICB9Ci0gICAgVmFsdWVQcm9maWxlKiB2
YWx1ZVByb2ZpbGVGb3JBcmd1bWVudCh1bnNpZ25lZCBhcmd1bWVudEluZGV4KQorICAgIFZhbHVl
UHJvZmlsZSYgdmFsdWVQcm9maWxlRm9yQXJndW1lbnQodW5zaWduZWQgYXJndW1lbnRJbmRleCkK
ICAgICB7Ci0gICAgICAgIFZhbHVlUHJvZmlsZSogcmVzdWx0ID0gJm1fYXJndW1lbnRWYWx1ZVBy
b2ZpbGVzW2FyZ3VtZW50SW5kZXhdOwotICAgICAgICBBU1NFUlQocmVzdWx0LT5tX2J5dGVjb2Rl
T2Zmc2V0ID09IC0xKTsKKyAgICAgICAgVmFsdWVQcm9maWxlJiByZXN1bHQgPSBtX2FyZ3VtZW50
VmFsdWVQcm9maWxlc1thcmd1bWVudEluZGV4XTsKKyAgICAgICAgQVNTRVJUKHJlc3VsdC5tX2J5
dGVjb2RlT2Zmc2V0ID09IC0xKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKICAg
ICB1bnNpZ25lZCBudW1iZXJPZlZhbHVlUHJvZmlsZXMoKSB7IHJldHVybiBtX3ZhbHVlUHJvZmls
ZXMuc2l6ZSgpOyB9Ci0gICAgVmFsdWVQcm9maWxlKiB2YWx1ZVByb2ZpbGUoaW50IGluZGV4KSB7
IHJldHVybiAmbV92YWx1ZVByb2ZpbGVzW2luZGV4XTsgfQotICAgIFZhbHVlUHJvZmlsZSogdmFs
dWVQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICBWYWx1
ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZShpbnQgaW5kZXgpIHsgcmV0dXJuIG1fdmFsdWVQcm9maWxl
c1tpbmRleF07IH0KKyAgICBWYWx1ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zm
c2V0KGludCBieXRlY29kZU9mZnNldCk7CisgICAgVmFsdWVQcm9maWxlKiB0cnlHZXRWYWx1ZVBy
b2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpOwogICAgIFNwZWN1bGF0
ZWRUeXBlIHZhbHVlUHJvZmlsZVByZWRpY3Rpb25Gb3JCeXRlY29kZU9mZnNldChjb25zdCBDb25j
dXJyZW50SlNMb2NrZXImIGxvY2tlciwgaW50IGJ5dGVjb2RlT2Zmc2V0KQogICAgIHsKLSAgICAg
ICAgaWYgKFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlID0gdmFsdWVQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKQorICAgICAgICBpZiAoVmFsdWVQcm9maWxlKiB2YWx1
ZVByb2ZpbGUgPSB0cnlHZXRWYWx1ZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChieXRlY29kZU9m
ZnNldCkpCiAgICAgICAgICAgICByZXR1cm4gdmFsdWVQcm9maWxlLT5jb21wdXRlVXBkYXRlZFBy
ZWRpY3Rpb24obG9ja2VyKTsKICAgICAgICAgcmV0dXJuIFNwZWNOb25lOwogICAgIH0KQEAgLTQy
Miw3ICs0MjMsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gbnVtYmVyT2ZBcmd1
bWVudFZhbHVlUHJvZmlsZXMoKSArIG51bWJlck9mVmFsdWVQcm9maWxlcygpOwogICAgIH0KLSAg
ICBWYWx1ZVByb2ZpbGUqIGdldEZyb21BbGxWYWx1ZVByb2ZpbGVzKHVuc2lnbmVkIGluZGV4KQor
ICAgIFZhbHVlUHJvZmlsZSYgZ2V0RnJvbUFsbFZhbHVlUHJvZmlsZXModW5zaWduZWQgaW5kZXgp
CiAgICAgewogICAgICAgICBpZiAoaW5kZXggPCBudW1iZXJPZkFyZ3VtZW50VmFsdWVQcm9maWxl
cygpKQogICAgICAgICAgICAgcmV0dXJuIHZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGluZGV4KTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCShyZXZpc2lvbiAyMjA5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkwOCw4ICsxOTA4LDggQEAgYm9v
bCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcoCiAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBjYWxscy4KICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlQmxvY2sgJiYgYXJn
dW1lbnQgPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tl
cihjb2RlQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFZh
bHVlUHJvZmlsZSogcHJvZmlsZSA9IGNvZGVCbG9jay0+dmFsdWVQcm9maWxlRm9yQXJndW1lbnQo
YXJndW1lbnQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZS0+cHJl
ZGljdChwcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVmFsdWVQcm9maWxlJiBwcm9maWxlID0gY29kZUJsb2NrLT52
YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmd1bWVudCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyaWFibGUtPnByZWRpY3QocHJvZmlsZS5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24o
bG9ja2VyKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgIE5vZGUqIHNldEFyZ3VtZW50ID0gYWRkVG9H
cmFwaChTZXRBcmd1bWVudCwgT3BJbmZvKHZhcmlhYmxlKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMjIwOTg1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MzIsNyArMTUz
Miw3IEBAIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgR3JhcGg6Om1ldGgKICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgICAgICAgICBpZiAo
bm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkgIT0gYXJndW1lbnROb2RlLT52YXJpYWJsZUFjY2Vz
c0RhdGEoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+dmFsdWVQcm9maWxlRm9yQXJndW1l
bnQoYXJndW1lbnQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gJnByb2ZpbGVkQmxvY2st
PnZhbHVlUHJvZmlsZUZvckFyZ3VtZW50KGFyZ3VtZW50KTsKICAgICAgICAgICAgICAgICB9KCk7
CiAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKQEAgLTE1NDYsNyArMTU0Niw3IEBAIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2Zp
bGUgR3JhcGg6Om1ldGgKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG5vZGUtPmhh
c0hlYXBQcmVkaWN0aW9uKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2st
PnZhbHVlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRl
Y29kZUluZGV4KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gJnByb2ZpbGVkQmxvY2stPnZhbHVl
UHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5ieXRlY29kZUlu
ZGV4KTsKIAogICAgICAgICAgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhhc0Jhc2VsaW5lSklUUHJv
ZmlsaW5nKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoQXJpdGhQcm9maWxlKiByZXN1bHQgPSBw
cm9maWxlZEJsb2NrLT5hcml0aFByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChub2RlLT5vcmlnaW4u
c2VtYW50aWMuYnl0ZWNvZGVJbmRleCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25JbmplY3Rpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwCShyZXZpc2lv
biAyMjA5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Jbmpl
Y3Rpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDEyICs1Miw5IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIocHJvZmlsZWRCbG9jaygpLT5t
X2xvY2spOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHNpemVfdCBhcmcgPSAwOyBh
cmcgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jaygpLT5udW1QYXJhbWV0ZXJzKCkpOyAr
K2FyZykgewotICAgICAgICAgICAgICAgIFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9IHByb2ZpbGVk
QmxvY2soKS0+dmFsdWVQcm9maWxlRm9yQXJndW1lbnQoYXJnKTsKLSAgICAgICAgICAgICAgICBp
ZiAoIXByb2ZpbGUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgVmFsdWVQcm9maWxlJiBwcm9maWxlID0gcHJvZmlsZWRCbG9jaygp
LT52YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChhcmcpOwogICAgICAgICAgICAgICAgIG1fZ3JhcGgu
bV9hcmd1bWVudHNbYXJnXS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPnByZWRpY3QoCi0gICAgICAg
ICAgICAgICAgICAgIHByb2ZpbGUtPmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihsb2NrZXIpKTsK
KyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZS5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9j
a2VyKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDIyMDk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTMzNCw3ICszMzQsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICAvLyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdmFsdWUgdG8gcHJvZmls
ZSBpcyBpbiByZWdUMCBhbmQgdGhhdCByZWdUMyBpcyBhdmFpbGFibGUgZm9yCiAgICAgICAgIC8v
IHNjcmF0Y2guCi0gICAgICAgIHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVByb2Zp
bGUqKTsKKyAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmlsZSYp
OwogICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUodW5zaWduZWQgYnl0ZWNvZGVP
ZmZzZXQpOwogICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICAgICAg
dm9pZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoUmVnaXN0ZXJJRCBjZWxsLCBSZWdp
c3RlcklEIGluZGV4aW5nVHlwZSwgQXJyYXlQcm9maWxlKik7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMjIwOTg1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk2OCw3ICs5Njgs
NyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSklUOjppc09wZXJhbmRDb25zdGFuCiAgICAgcmV0dXJu
IG1fY29kZUJsb2NrLT5pc0NvbnN0YW50UmVnaXN0ZXJJbmRleChzcmMpICYmIGdldENvbnN0YW50
T3BlcmFuZChzcmMpLmlzU3RyaW5nKCkgJiYgYXNTdHJpbmcoZ2V0Q29uc3RhbnRPcGVyYW5kKHNy
YykuYXNDZWxsKCkpLT5sZW5ndGgoKSA9PSAxOwogfQogCi1pbmxpbmUgdm9pZCBKSVQ6OmVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlKiB2YWx1ZVByb2ZpbGUpCitpbmxpbmUgdm9p
ZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiB2YWx1ZVByb2ZpbGUp
CiB7CiAgICAgQVNTRVJUKHNob3VsZEVtaXRQcm9maWxpbmcoKSk7CiAgICAgQVNTRVJUKHZhbHVl
UHJvZmlsZSk7CkBAIC05ODEsOSArOTgxLDkgQEAgaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKAogICAgIC8vIFdlJ3JlIGluIGEgc2ltcGxlIGNvbmZpZ3VyYXRpb246IG9u
bHkgb25lIGJ1Y2tldCwgc28gd2UgY2FuIGp1c3QgZG8gYSBkaXJlY3QKICAgICAvLyBzdG9yZS4K
ICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIHN0b3JlNjQodmFsdWUsIHZhbHVlUHJvZmlsZS0+bV9i
dWNrZXRzKTsKKyAgICBzdG9yZTY0KHZhbHVlLCB2YWx1ZVByb2ZpbGUubV9idWNrZXRzKTsKICNl
bHNlCi0gICAgRW5jb2RlZFZhbHVlRGVzY3JpcHRvciogZGVzY3JpcHRvciA9IGJpdHdpc2VfY2Fz
dDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4odmFsdWVQcm9maWxlLT5tX2J1Y2tldHMpOworICAg
IEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqIGRlc2NyaXB0b3IgPSBiaXR3aXNlX2Nhc3Q8RW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvcio+KHZhbHVlUHJvZmlsZS5tX2J1Y2tldHMpOwogICAgIHN0b3JlMzIo
dmFsdWUsICZkZXNjcmlwdG9yLT5hc0JpdHMucGF5bG9hZCk7CiAgICAgc3RvcmUzMih2YWx1ZVRh
ZywgJmRlc2NyaXB0b3ItPmFzQml0cy50YWcpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVl
bmNlLmNwcAkocmV2aXNpb24gMjIwOTg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcg
KzQxLDcgQEAgQnl0ZWNvZGVTZXF1ZW5jZTo6Qnl0ZWNvZGVTZXF1ZW5jZShDb2RlQgogICAgIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2RlQmxvY2stPm51bWJlck9mQXJndW1lbnRW
YWx1ZVByb2ZpbGVzKCk7ICsraSkgewogICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2Vy
KGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgQ1N0cmluZyBkZXNjcmlwdGlvbiA9IGNvZGVC
bG9jay0+dmFsdWVQcm9maWxlRm9yQXJndW1lbnQoaSktPmJyaWVmRGVzY3JpcHRpb24obG9ja2Vy
KTsKKyAgICAgICAgQ1N0cmluZyBkZXNjcmlwdGlvbiA9IGNvZGVCbG9jay0+dmFsdWVQcm9maWxl
Rm9yQXJndW1lbnQoaSkuYnJpZWZEZXNjcmlwdGlvbihsb2NrZXIpOwogICAgICAgICBpZiAoIWRl
c2NyaXB0aW9uLmxlbmd0aCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIG91dC5y
ZXNldCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJpZmllci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJpZmll
ci5jcHAJKHJldmlzaW9uIDIyMDk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9I
ZWFwVmVyaWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzEsOSArMzMxLDkgQEAgYm9vbCBI
ZWFwVmVyaWZpZXI6OnZhbGlkYXRlSlNDZWxsKFZNKiBleAogICAgICAgICBpZiAoVU5MSUtFTFko
Y29kZUJsb2NrKSkgewogICAgICAgICAgICAgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2RlQmxvY2stPnRvdGFsTnVtYmVyT2ZWYWx1
ZVByb2ZpbGVzKCk7ICsraSkgewotICAgICAgICAgICAgICAgIFZhbHVlUHJvZmlsZSogdmFsdWVQ
cm9maWxlID0gY29kZUJsb2NrLT5nZXRGcm9tQWxsVmFsdWVQcm9maWxlcyhpKTsKKyAgICAgICAg
ICAgICAgICBWYWx1ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZSA9IGNvZGVCbG9jay0+Z2V0RnJvbUFs
bFZhbHVlUHJvZmlsZXMoaSk7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IFZhbHVlUHJvZmlsZTo6dG90YWxOdW1iZXJPZkJ1Y2tldHM7ICsraSkgewotICAgICAgICAg
ICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlUHJvZmlsZS0+
bV9idWNrZXRzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFs
dWU6OmRlY29kZSh2YWx1ZVByb2ZpbGUubV9idWNrZXRzW2ldKTsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKCF2YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgICAgICAgICBpZiAoIXZhbHVlLmlzQ2VsbCgpKQo=
</data>
<flag name="review"
          id="339093"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>