<?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>165768</bug_id>
          
          <creation_ts>2016-12-12 12:49:21 -0800</creation_ts>
          <short_desc>Rename BytecodeGenerator&apos;s m_symbolTableStack to m_lexicalScopeStack.</short_desc>
          <delta_ts>2016-12-12 13:04:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>160168</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1259159</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-12-12 12:49:21 -0800</bug_when>
    <thetext>The lexical scope in &quot;m_lexicalScopeStack&quot; here refers to a pair of { } in the source code that bounds the scope of variables.

There are 4 places in the code where we call m_symbolTableStack.append() to append a new stack entry.  In only 3 of the 4 cases, a symbol table is provided in the new stack entry.  In all 4 cases, a scope register is provided in the new stack entry.

Also, 3 of the 4 functions that appends an entry to this stack are named:
1. initializeVarLexicalEnvironment()
2. pushLexicalScopeInternal()
3. emitPushWithScope()

The 4th function is the BytecodeGenerator constructor where it pushes the scope for a module environment.

Based on these details, m_lexicalScopeStack is a better name for this stack than m_symbolTableStack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259163</commentid>
    <comment_count>1</comment_count>
      <attachid>296944</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-12-12 12:53:39 -0800</bug_when>
    <thetext>Created attachment 296944
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259172</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-12-12 13:04:59 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r209723: &lt;http://trac.webkit.org/r209723&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296944</attachid>
            <date>2016-12-12 12:53:39 -0800</date>
            <delta_ts>2016-12-12 12:57:24 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-165768.patch</filename>
            <type>text/plain</type>
            <size>17597</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5NzIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDE2LTEyLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgQnl0ZWNvZGVHZW5lcmF0b3IncyBtX3N5bWJvbFRhYmxlU3RhY2sgdG8gbV9sZXhpY2Fs
U2NvcGVTdGFjay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NTc2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBsZXhpY2FsIHNjb3BlIGluICJtX2xleGljYWxTY29wZVN0YWNrIiBoZXJlIHJlZmVy
cyB0byBhIHBhaXIgb2YgeyB9IGluIHRoZQorICAgICAgICBzb3VyY2UgY29kZSB0aGF0IGJvdW5k
cyB0aGUgc2NvcGUgb2YgdmFyaWFibGVzLgorCisgICAgICAgIFRoZXJlIGFyZSA0IHBsYWNlcyBp
biB0aGUgY29kZSB3aGVyZSB3ZSBjYWxsIG1fc3ltYm9sVGFibGVTdGFjay5hcHBlbmQoKSB0bwor
ICAgICAgICBhcHBlbmQgYSBuZXcgc3RhY2sgZW50cnkuICBJbiBvbmx5IDMgb2YgdGhlIDQgY2Fz
ZXMsIGEgc3ltYm9sIHRhYmxlIGlzIHByb3ZpZGVkCisgICAgICAgIGluIHRoZSBuZXcgc3RhY2sg
ZW50cnkuICBJbiBhbGwgNCBjYXNlcywgYSBzY29wZSByZWdpc3RlciBpcyBwcm92aWRlZCBpbiB0
aGUgbmV3CisgICAgICAgIHN0YWNrIGVudHJ5LgorCisgICAgICAgIEFsc28sIDMgb2YgdGhlIDQg
ZnVuY3Rpb25zIHRoYXQgYXBwZW5kcyBhbiBlbnRyeSB0byB0aGlzIHN0YWNrIGFyZSBuYW1lZDoK
KyAgICAgICAgMS4gaW5pdGlhbGl6ZVZhckxleGljYWxFbnZpcm9ubWVudCgpCisgICAgICAgIDIu
IHB1c2hMZXhpY2FsU2NvcGVJbnRlcm5hbCgpCisgICAgICAgIDMuIGVtaXRQdXNoV2l0aFNjb3Bl
KCkKKworICAgICAgICBUaGUgNHRoIGZ1bmN0aW9uIGlzIHRoZSBCeXRlY29kZUdlbmVyYXRvciBj
b25zdHJ1Y3RvciB3aGVyZSBpdCBwdXNoZXMgdGhlIHNjb3BlCisgICAgICAgIGZvciBhIG1vZHVs
ZSBlbnZpcm9ubWVudC4KKworICAgICAgICBCYXNlZCBvbiB0aGVzZSBkZXRhaWxzLCBtX2xleGlj
YWxTY29wZVN0YWNrIGlzIGEgYmV0dGVyIG5hbWUgZm9yIHRoaXMgc3RhY2sgdGhhbgorICAgICAg
ICBtX3N5bWJvbFRhYmxlU3RhY2suCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVH
ZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFy
cm93RnVuY3Rpb25Db250ZXh0U2NvcGVJZk5lZWRlZCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2Rl
R2VuZXJhdG9yOjppbml0aWFsaXplVmFyTGV4aWNhbEVudmlyb25tZW50KToKKyAgICAgICAgKEpT
Qzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OnB1c2hMZXhpY2FsU2NvcGVJbnRlcm5hbCk6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXplQmxvY2tTY29wZWRGdW5jdGlvbnMp
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6aG9pc3RTbG9wcHlNb2RlRnVuY3Rp
b25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpwb3BMZXhp
Y2FsU2NvcGVJbnRlcm5hbCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpwcmVw
YXJlTGV4aWNhbFNjb3BlRm9yTmV4dEZvckxvb3BJdGVyYXRpb24pOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6dmFyaWFibGUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6cmVzb2x2ZVR5cGUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dFJlc29sdmVTY29wZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVz
aFdpdGhTY29wZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UG9wV2l0
aFNjb3BlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OnB1c2hGaW5hbGx5Q29u
dGV4dCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoSXRlcmF0b3JDbG9z
ZUNvbnRleHQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbXBsZXhQ
b3BTY29wZXMpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6cG9wVHJ5QW5kRW1p
dENhdGNoKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXNoRnVuY3Rp
b25OYW1lU2NvcGUpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
OgorCiAyMDE2LTEyLTEyICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAg
ICAgICAgIEZUTDogRHVtcGluZyBkaXNhc3NlbWJseSByZXF1aXJlcyB0aGF0IGNvZGUgb3JpZ2lu
IGlzIHNldCB3aGVuIG1ha2luZyBwb2x5bW9ycGhpYyB0YWlsIGNhbGxzLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHAJKHJldmlzaW9uIDIwOTcxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NjksNyAr
ODY5LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogCiAgICAg
cHVzaFREWlZhcmlhYmxlcyhsZXhpY2FsVmFyaWFibGVzLCBURFpDaGVja09wdGltaXphdGlvbjo6
T3B0aW1pemUsIFREWlJlcXVpcmVtZW50OjpVbmRlclREWik7CiAgICAgYm9vbCBpc1dpdGhTY29w
ZSA9IGZhbHNlOwotICAgIG1fc3ltYm9sVGFibGVTdGFjay5hcHBlbmQoU3ltYm9sVGFibGVTdGFj
a0VudHJ5IHsgbW9kdWxlRW52aXJvbm1lbnRTeW1ib2xUYWJsZSwgbV90b3BNb3N0U2NvcGUsIGlz
V2l0aFNjb3BlLCBjb25zdGFudFN5bWJvbFRhYmxlLT5pbmRleCgpIH0pOworICAgIG1fbGV4aWNh
bFNjb3BlU3RhY2suYXBwZW5kKHsgbW9kdWxlRW52aXJvbm1lbnRTeW1ib2xUYWJsZSwgbV90b3BN
b3N0U2NvcGUsIGlzV2l0aFNjb3BlLCBjb25zdGFudFN5bWJvbFRhYmxlLT5pbmRleCgpIH0pOwog
ICAgIGVtaXRQcmVmaWxsU3RhY2tURFpWYXJpYWJsZXMobGV4aWNhbFZhcmlhYmxlcywgbW9kdWxl
RW52aXJvbm1lbnRTeW1ib2xUYWJsZSk7CiAKICAgICAvLyBtYWtlRnVuY3Rpb24gYXNzdW1lcyB0
aGF0IHRoZXJlJ3MgY29ycmVjdCBURFogc3RhY2sgZW50cmllcy4KQEAgLTEwNzMsMTIgKzEwNzMs
MTIgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFycm93RgogICAgIH0KIAog
ICAgIGlmIChlbnZpcm9ubWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgIHNpemVfdCBzaXplID0g
bV9zeW1ib2xUYWJsZVN0YWNrLnNpemUoKTsKKyAgICAgICAgc2l6ZV90IHNpemUgPSBtX2xleGlj
YWxTY29wZVN0YWNrLnNpemUoKTsKICAgICAgICAgcHVzaExleGljYWxTY29wZUludGVybmFsKGVu
dmlyb25tZW50LCBURFpDaGVja09wdGltaXphdGlvbjo6T3B0aW1pemUsIE5lc3RlZFNjb3BlVHlw
ZTo6SXNOb3ROZXN0ZWQsIG51bGxwdHIsIFREWlJlcXVpcmVtZW50OjpVbmRlclREWiwgU2NvcGVU
eXBlOjpMZXRDb25zdFNjb3BlLCBTY29wZVJlZ2lzdGVyVHlwZTo6QmxvY2spOwogCi0gICAgICAg
IEFTU0VSVF9VTlVTRUQoc2l6ZSwgbV9zeW1ib2xUYWJsZVN0YWNrLnNpemUoKSA9PSBzaXplICsg
MSk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoc2l6ZSwgbV9sZXhpY2FsU2NvcGVTdGFjay5zaXpl
KCkgPT0gc2l6ZSArIDEpOwogCi0gICAgICAgIG1fYXJyb3dGdW5jdGlvbkNvbnRleHRMZXhpY2Fs
RW52aXJvbm1lbnRSZWdpc3RlciA9IG1fc3ltYm9sVGFibGVTdGFjay5sYXN0KCkubV9zY29wZTsK
KyAgICAgICAgbV9hcnJvd0Z1bmN0aW9uQ29udGV4dExleGljYWxFbnZpcm9ubWVudFJlZ2lzdGVy
ID0gbV9sZXhpY2FsU2NvcGVTdGFjay5sYXN0KCkubV9zY29wZTsKICAgICB9CiB9CiAKQEAgLTEx
MjQsOCArMTEyNCw4IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmluaXRpYWxpemVWYXJMZXgK
ICAgICAgICAgcHVzaFNjb3BlZENvbnRyb2xGbG93Q29udGV4dCgpOwogICAgIH0KICAgICBib29s
IGlzV2l0aFNjb3BlID0gZmFsc2U7Ci0gICAgbV9zeW1ib2xUYWJsZVN0YWNrLmFwcGVuZChTeW1i
b2xUYWJsZVN0YWNrRW50cnl7IGZ1bmN0aW9uU3ltYm9sVGFibGUsIG1fbGV4aWNhbEVudmlyb25t
ZW50UmVnaXN0ZXIsIGlzV2l0aFNjb3BlLCBzeW1ib2xUYWJsZUNvbnN0YW50SW5kZXggfSk7Ci0g
ICAgbV92YXJTY29wZVN5bWJvbFRhYmxlSW5kZXggPSBtX3N5bWJvbFRhYmxlU3RhY2suc2l6ZSgp
IC0gMTsKKyAgICBtX2xleGljYWxTY29wZVN0YWNrLmFwcGVuZCh7IGZ1bmN0aW9uU3ltYm9sVGFi
bGUsIG1fbGV4aWNhbEVudmlyb25tZW50UmVnaXN0ZXIsIGlzV2l0aFNjb3BlLCBzeW1ib2xUYWJs
ZUNvbnN0YW50SW5kZXggfSk7CisgICAgbV92YXJTY29wZUxleGljYWxTY29wZVN0YWNrSW5kZXgg
PSBtX2xleGljYWxTY29wZVN0YWNrLnNpemUoKSAtIDE7CiB9CiAKIFVuaXF1ZWRTdHJpbmdJbXBs
KiBCeXRlY29kZUdlbmVyYXRvcjo6dmlzaWJsZU5hbWVGb3JQYXJhbWV0ZXIoRGVzdHJ1Y3R1cmlu
Z1BhdHRlcm5Ob2RlKiBwYXR0ZXJuKQpAQCAtMjA3MSw3ICsyMDcxLDcgQEAgdm9pZCBCeXRlY29k
ZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZQogICAgIH0KIAogICAgIGJvb2wgaXNXaXRoU2Nv
cGUgPSBmYWxzZTsKLSAgICBtX3N5bWJvbFRhYmxlU3RhY2suYXBwZW5kKFN5bWJvbFRhYmxlU3Rh
Y2tFbnRyeXsgc3ltYm9sVGFibGUsIG5ld1Njb3BlLCBpc1dpdGhTY29wZSwgc3ltYm9sVGFibGVD
b25zdGFudEluZGV4IH0pOworICAgIG1fbGV4aWNhbFNjb3BlU3RhY2suYXBwZW5kKHsgc3ltYm9s
VGFibGUsIG5ld1Njb3BlLCBpc1dpdGhTY29wZSwgc3ltYm9sVGFibGVDb25zdGFudEluZGV4IH0p
OwogICAgIHB1c2hURFpWYXJpYWJsZXMoZW52aXJvbm1lbnQsIHRkekNoZWNrT3B0aW1pemF0aW9u
LCB0ZHpSZXF1aXJlbWVudCk7CiAKICAgICBpZiAodGR6UmVxdWlyZW1lbnQgPT0gVERaUmVxdWly
ZW1lbnQ6OlVuZGVyVERaKQpAQCAtMjExNCw4ICsyMTE0LDggQEAgdm9pZCBCeXRlY29kZUdlbmVy
YXRvcjo6aW5pdGlhbGl6ZUJsb2NrUwogICAgIGlmICghZnVuY3Rpb25TdGFjay5zaXplKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9IG1fc3ltYm9s
VGFibGVTdGFjay5sYXN0KCkubV9zeW1ib2xUYWJsZTsKLSAgICBSZWdpc3RlcklEKiBzY29wZSA9
IG1fc3ltYm9sVGFibGVTdGFjay5sYXN0KCkubV9zY29wZTsKKyAgICBTeW1ib2xUYWJsZSogc3lt
Ym9sVGFibGUgPSBtX2xleGljYWxTY29wZVN0YWNrLmxhc3QoKS5tX3N5bWJvbFRhYmxlOworICAg
IFJlZ2lzdGVySUQqIHNjb3BlID0gbV9sZXhpY2FsU2NvcGVTdGFjay5sYXN0KCkubV9zY29wZTsK
ICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGVtcCA9IG5ld1RlbXBvcmFyeSgpOwogICAgIGludCBz
eW1ib2xUYWJsZUluZGV4ID0gY29uc3RhbnRTeW1ib2xUYWJsZSA/IGNvbnN0YW50U3ltYm9sVGFi
bGUtPmluZGV4KCkgOiAwOwogICAgIGZvciAoRnVuY3Rpb25NZXRhZGF0YU5vZGUqIGZ1bmN0aW9u
IDogZnVuY3Rpb25TdGFjaykgewpAQCAtMjE0NCw5ICsyMTQ0LDkgQEAgdm9pZCBCeXRlY29kZUdl
bmVyYXRvcjo6aG9pc3RTbG9wcHlNb2RlRgogICAgICAgICAgICAgY3VycmVudFZhbHVlID0gZW1p
dEdldEZyb21TY29wZShuZXdUZW1wb3JhcnkoKSwgc2NvcGUuZ2V0KCksIGN1cnJlbnRGdW5jdGlv
blZhcmlhYmxlLCBEb05vdFRocm93SWZOb3RGb3VuZCk7CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIEFTU0VSVChtX3ZhclNjb3BlU3ltYm9sVGFibGVJbmRleCk7Ci0gICAgICAgIEFTU0VS
VCgqbV92YXJTY29wZVN5bWJvbFRhYmxlSW5kZXggPCBtX3N5bWJvbFRhYmxlU3RhY2suc2l6ZSgp
KTsKLSAgICAgICAgU3ltYm9sVGFibGVTdGFja0VudHJ5JiB2YXJTY29wZSA9IG1fc3ltYm9sVGFi
bGVTdGFja1sqbV92YXJTY29wZVN5bWJvbFRhYmxlSW5kZXhdOworICAgICAgICBBU1NFUlQobV92
YXJTY29wZUxleGljYWxTY29wZVN0YWNrSW5kZXgpOworICAgICAgICBBU1NFUlQoKm1fdmFyU2Nv
cGVMZXhpY2FsU2NvcGVTdGFja0luZGV4IDwgbV9sZXhpY2FsU2NvcGVTdGFjay5zaXplKCkpOwor
ICAgICAgICBhdXRvJiB2YXJTY29wZSA9IG1fbGV4aWNhbFNjb3BlU3RhY2tbKm1fdmFyU2NvcGVM
ZXhpY2FsU2NvcGVTdGFja0luZGV4XTsKICAgICAgICAgU3ltYm9sVGFibGUqIHZhclN5bWJvbFRh
YmxlID0gdmFyU2NvcGUubV9zeW1ib2xUYWJsZTsKICAgICAgICAgQVNTRVJUKHZhclN5bWJvbFRh
YmxlLT5zY29wZVR5cGUoKSA9PSBTeW1ib2xUYWJsZTo6U2NvcGVUeXBlOjpWYXJTY29wZSk7CiAg
ICAgICAgIFN5bWJvbFRhYmxlRW50cnkgZW50cnkgPSB2YXJTeW1ib2xUYWJsZS0+Z2V0KE5vTG9j
a2luZ05lY2Vzc2FyeSwgZnVuY3Rpb25OYW1lLmltcGwoKSk7CkBAIC0yMTcyLDcgKzIxNzIsNyBA
QCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpwb3BMZXhpY2FsU2NvcGVJCiAgICAgaWYgKG1fc2hv
dWxkRW1pdERlYnVnSG9va3MpCiAgICAgICAgIGVudmlyb25tZW50Lm1hcmtBbGxWYXJpYWJsZXNB
c0NhcHR1cmVkKCk7CiAKLSAgICBTeW1ib2xUYWJsZVN0YWNrRW50cnkgc3RhY2tFbnRyeSA9IG1f
c3ltYm9sVGFibGVTdGFjay50YWtlTGFzdCgpOworICAgIGF1dG8gc3RhY2tFbnRyeSA9IG1fbGV4
aWNhbFNjb3BlU3RhY2sudGFrZUxhc3QoKTsKICAgICBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUg
PSBzdGFja0VudHJ5Lm1fc3ltYm9sVGFibGU7CiAgICAgYm9vbCBoYXNDYXB0dXJlZFZhcmlhYmxl
cyA9IGZhbHNlOwogICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnZpcm9ubWVudCkgewpAQCAtMjIx
Nyw3ICsyMjE3LDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6cHJlcGFyZUxleGljYWxTYwog
ICAgIC8vIGFjdGl2YXRpb24gaW50byB0aGUgbmV3IGFjdGl2YXRpb24gYmVjYXVzZSBlYWNoIGl0
ZXJhdGlvbiBvZiBhIGZvciBsb29wCiAgICAgLy8gZ2V0cyBhIG5ldyBhY3RpdmF0aW9uLgogCi0g
ICAgU3ltYm9sVGFibGVTdGFja0VudHJ5IHN0YWNrRW50cnkgPSBtX3N5bWJvbFRhYmxlU3RhY2su
bGFzdCgpOworICAgIGF1dG8gc3RhY2tFbnRyeSA9IG1fbGV4aWNhbFNjb3BlU3RhY2subGFzdCgp
OwogICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9IHN0YWNrRW50cnkubV9zeW1ib2xUYWJs
ZTsKICAgICBSZWdpc3RlcklEKiBsb29wU2NvcGUgPSBzdGFja0VudHJ5Lm1fc2NvcGU7CiAgICAg
QVNTRVJUKHN5bWJvbFRhYmxlLT5zY29wZVNpemUoKSk7CkBAIC0yMjk2LDggKzIyOTYsOCBAQCBW
YXJpYWJsZSBCeXRlY29kZUdlbmVyYXRvcjo6dmFyaWFibGUoY29uCiAgICAgLy8gICAgICAgICBk
b1NvbWV0aGluZ1dpdGgoeCk7CiAgICAgLy8gICAgIH0KICAgICAvLyB9Ci0gICAgZm9yICh1bnNp
Z25lZCBpID0gbV9zeW1ib2xUYWJsZVN0YWNrLnNpemUoKTsgaS0tOyApIHsKLSAgICAgICAgU3lt
Ym9sVGFibGVTdGFja0VudHJ5JiBzdGFja0VudHJ5ID0gbV9zeW1ib2xUYWJsZVN0YWNrW2ldOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IG1fbGV4aWNhbFNjb3BlU3RhY2suc2l6ZSgpOyBpLS07ICkg
eworICAgICAgICBhdXRvJiBzdGFja0VudHJ5ID0gbV9sZXhpY2FsU2NvcGVTdGFja1tpXTsKICAg
ICAgICAgaWYgKHN0YWNrRW50cnkubV9pc1dpdGhTY29wZSkKICAgICAgICAgICAgIHJldHVybiBW
YXJpYWJsZShwcm9wZXJ0eSk7CiAgICAgICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9IHN0
YWNrRW50cnkubV9zeW1ib2xUYWJsZTsKQEAgLTIzOTIsMTAgKzIzOTIsMTAgQEAgUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRPdmVycgogLy8gd2lsbCBzdGFydCB3aXRoIHRoaXMg
UmVzb2x2ZVR5cGUgYW5kIGNvbXB1dGUgdGhlIGxlYXN0IHVwcGVyIGJvdW5kIGluY2x1ZGluZyBp
bnRlcmNlcHRpbmcgc2NvcGVzLgogUmVzb2x2ZVR5cGUgQnl0ZWNvZGVHZW5lcmF0b3I6OnJlc29s
dmVUeXBlKCkKIHsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3N5bWJvbFRhYmxlU3RhY2suc2l6
ZSgpOyBpLS07ICkgewotICAgICAgICBpZiAobV9zeW1ib2xUYWJsZVN0YWNrW2ldLm1faXNXaXRo
U2NvcGUpCisgICAgZm9yICh1bnNpZ25lZCBpID0gbV9sZXhpY2FsU2NvcGVTdGFjay5zaXplKCk7
IGktLTsgKSB7CisgICAgICAgIGlmIChtX2xleGljYWxTY29wZVN0YWNrW2ldLm1faXNXaXRoU2Nv
cGUpCiAgICAgICAgICAgICByZXR1cm4gRHluYW1pYzsKLSAgICAgICAgaWYgKG1fdXNlc05vblN0
cmljdEV2YWwgJiYgbV9zeW1ib2xUYWJsZVN0YWNrW2ldLm1fc3ltYm9sVGFibGUtPnNjb3BlVHlw
ZSgpID09IFN5bWJvbFRhYmxlOjpTY29wZVR5cGU6OkZ1bmN0aW9uTmFtZVNjb3BlKSB7CisgICAg
ICAgIGlmIChtX3VzZXNOb25TdHJpY3RFdmFsICYmIG1fbGV4aWNhbFNjb3BlU3RhY2tbaV0ubV9z
eW1ib2xUYWJsZS0+c2NvcGVUeXBlKCkgPT0gU3ltYm9sVGFibGU6OlNjb3BlVHlwZTo6RnVuY3Rp
b25OYW1lU2NvcGUpIHsKICAgICAgICAgICAgIC8vIFdlIG5ldmVyIHdhbnQgdG8gYXNzaWduIHRv
IGEgRnVuY3Rpb25OYW1lU2NvcGUuIFJldHVybmluZyBEeW5hbWljIGhlcmUgYWNoaWV2ZXMgdGhp
cyBnb2FsLgogICAgICAgICAgICAgLy8gSWYgd2UgYXJlbid0IGluIG5vbi1zdHJpY3QgZXZhbCBt
b2RlLCB0aGVuIE5vZGVzQ29kZUdlbiBuZWVkcyB0byB0YWtlIGNhcmUgbm90IHRvIGVtaXQKICAg
ICAgICAgICAgIC8vIGEgcHV0X3RvX3Njb3BlIHdpdGggdGhlIGRlc3RpbmF0aW9uIGJlaW5nIHRo
ZSBmdW5jdGlvbiBuYW1lIHNjb3BlIHZhcmlhYmxlLgpAQCAtMjQyNCw4ICsyNDI0LDggQEAgUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXNvbAogICAgICAgICAvLyBkb24ndCBk
byB0aGF0IGFscmVhZHkgaXMgdGhhdCBtX2xleGljYWxFbnZpcm9ubWVudCBpcyByZXF1aXJlZCBi
eSBDb25zdERlY2xOb2RlLiBDb25zdERlY2xOb2RlCiAgICAgICAgIC8vIHJlcXVpcmVzIHdlaXJk
IHRoaW5ncyBiZWNhdXNlIGl0IGlzIGEgc2hhbWVmdWwgcGlsZSBvZiBub25zZW5zZSwgYnV0IGJs
b2NrIHNjb3Bpbmcgd291bGQgbWFrZQogICAgICAgICAvLyB0aGF0IGNvZGUgc2Vuc2libGUgYW5k
IG9idmlhdGUgdGhlIG5lZWQgZm9yIHVzIHRvIGRvIGJhZCB0aGluZ3MuCi0gICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IG1fc3ltYm9sVGFibGVTdGFjay5zaXplKCk7IGktLTsgKSB7Ci0gICAgICAg
ICAgICBTeW1ib2xUYWJsZVN0YWNrRW50cnkmIHN0YWNrRW50cnkgPSBtX3N5bWJvbFRhYmxlU3Rh
Y2tbaV07CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1fbGV4aWNhbFNjb3BlU3RhY2suc2l6
ZSgpOyBpLS07ICkgeworICAgICAgICAgICAgYXV0byYgc3RhY2tFbnRyeSA9IG1fbGV4aWNhbFNj
b3BlU3RhY2tbaV07CiAgICAgICAgICAgICAvLyBXZSBzaG91bGQgbm90IHJlc29sdmUgYSB2YXJp
YWJsZSB0byBWYXJLaW5kOjpTY29wZSBpZiBhICJ3aXRoIiBzY29wZSBsaWVzIGluIGJldHdlZW4g
dGhlIGN1cnJlbnQKICAgICAgICAgICAgIC8vIHNjb3BlIGFuZCB0aGUgcmVzb2x2ZWQgc2NvcGUu
CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghc3RhY2tFbnRyeS5tX2lzV2l0aFNjb3BlKTsK
QEAgLTM2MDksNyArMzYwOSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
UHVzaFcKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc2NvcGVSZWdpc3RlcigpLT5pbmRleCgp
KTsKIAogICAgIGVtaXRNb3ZlKHNjb3BlUmVnaXN0ZXIoKSwgbmV3U2NvcGUpOwotICAgIG1fc3lt
Ym9sVGFibGVTdGFjay5hcHBlbmQoU3ltYm9sVGFibGVTdGFja0VudHJ5eyBudWxscHRyLCBuZXdT
Y29wZSwgdHJ1ZSwgMCB9KTsKKyAgICBtX2xleGljYWxTY29wZVN0YWNrLmFwcGVuZCh7IG51bGxw
dHIsIG5ld1Njb3BlLCB0cnVlLCAwIH0pOwogCiAgICAgcmV0dXJuIG5ld1Njb3BlOwogfQpAQCAt
MzYzMiw3ICszNjMyLDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFBvcFdpdGhTY29w
ZQogewogICAgIGVtaXRQb3BTY29wZShzY29wZVJlZ2lzdGVyKCksIHNjb3BlUmVnaXN0ZXIoKSk7
CiAgICAgcG9wU2NvcGVkQ29udHJvbEZsb3dDb250ZXh0KCk7Ci0gICAgU3ltYm9sVGFibGVTdGFj
a0VudHJ5IHN0YWNrRW50cnkgPSBtX3N5bWJvbFRhYmxlU3RhY2sudGFrZUxhc3QoKTsKKyAgICBh
dXRvIHN0YWNrRW50cnkgPSBtX2xleGljYWxTY29wZVN0YWNrLnRha2VMYXN0KCk7CiAgICAgc3Rh
Y2tFbnRyeS5tX3Njb3BlLT5kZXJlZigpOwogICAgIFJFTEVBU0VfQVNTRVJUKHN0YWNrRW50cnku
bV9pc1dpdGhTY29wZSk7CiB9CkBAIC0zNjkwLDcgKzM2OTAsNyBAQCB2b2lkIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjpwdXNoRmluYWxseUNvbnRlCiAgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPiht
X2ZvckluQ29udGV4dFN0YWNrLnNpemUoKSksCiAgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihtX3RyeUNvbnRleHRTdGFjay5zaXplKCkpLAogICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4obV9sYWJlbFNjb3Blcy5zaXplKCkpLAotICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
bV9zeW1ib2xUYWJsZVN0YWNrLnNpemUoKSksCisgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihtX2xleGljYWxTY29wZVN0YWNrLnNpemUoKSksCiAgICAgICAgIG1fZmluYWxseURlcHRoLAog
ICAgICAgICBtX2xvY2FsU2NvcGVEZXB0aAogICAgIH07CkBAIC0zNzE2LDcgKzM3MTYsNyBAQCB2
b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoSXRlcmF0b3JDbG9zCiAgICAgICAgIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihtX2ZvckluQ29udGV4dFN0YWNrLnNpemUoKSksCiAgICAgICAgIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihtX3RyeUNvbnRleHRTdGFjay5zaXplKCkpLAogICAgICAgICBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4obV9sYWJlbFNjb3Blcy5zaXplKCkpLAotICAgICAgICBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4obV9zeW1ib2xUYWJsZVN0YWNrLnNpemUoKSksCisgICAgICAgIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihtX2xleGljYWxTY29wZVN0YWNrLnNpemUoKSksCiAgICAgICAgIG1f
ZmluYWxseURlcHRoLAogICAgICAgICBtX2xvY2FsU2NvcGVEZXB0aAogICAgIH07CkBAIC0zODc4
LDcgKzM4NzgsNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29tcGxleFBvcFNjCiAg
ICAgICAgIFZlY3RvcjxTd2l0Y2hJbmZvPiBzYXZlZFN3aXRjaENvbnRleHRTdGFjazsKICAgICAg
ICAgVmVjdG9yPFJlZlB0cjxGb3JJbkNvbnRleHQ+PiBzYXZlZEZvckluQ29udGV4dFN0YWNrOwog
ICAgICAgICBWZWN0b3I8VHJ5Q29udGV4dD4gcG9wcGVkVHJ5Q29udGV4dHM7Ci0gICAgICAgIFZl
Y3RvcjxTeW1ib2xUYWJsZVN0YWNrRW50cnk+IHNhdmVkU3ltYm9sVGFibGVTdGFjazsKKyAgICAg
ICAgVmVjdG9yPExleGljYWxTY29wZVN0YWNrRW50cnk+IHNhdmVkTGV4aWNhbFNjb3BlU3RhY2s7
CiAgICAgICAgIExhYmVsU2NvcGVTdG9yZSBzYXZlZExhYmVsU2NvcGVzOwogICAgICAgICB3aGls
ZSAodG9wU2NvcGUgPiBib3R0b21TY29wZSAmJiB0b3BTY29wZS0+aXNGaW5hbGx5QmxvY2spIHsK
ICAgICAgICAgICAgIFJlZlB0cjxMYWJlbD4gYmVmb3JlRmluYWxseSA9IGVtaXRMYWJlbChuZXdM
YWJlbCgpLmdldCgpKTsKQEAgLTM4OTEsNyArMzg5MSw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRDb21wbGV4UG9wU2MKICAgICAgICAgICAgIGJvb2wgZmxpcEZvcklucyA9IGZpbmFs
bHlDb250ZXh0LmZvckluQ29udGV4dFN0YWNrU2l6ZSAhPSBtX2ZvckluQ29udGV4dFN0YWNrLnNp
emUoKTsKICAgICAgICAgICAgIGJvb2wgZmxpcFRyaWVzID0gZmluYWxseUNvbnRleHQudHJ5Q29u
dGV4dFN0YWNrU2l6ZSAhPSBtX3RyeUNvbnRleHRTdGFjay5zaXplKCk7CiAgICAgICAgICAgICBi
b29sIGZsaXBMYWJlbFNjb3BlcyA9IGZpbmFsbHlDb250ZXh0LmxhYmVsU2NvcGVzU2l6ZSAhPSBt
X2xhYmVsU2NvcGVzLnNpemUoKTsKLSAgICAgICAgICAgIGJvb2wgZmxpcFN5bWJvbFRhYmxlU3Rh
Y2sgPSBmaW5hbGx5Q29udGV4dC5zeW1ib2xUYWJsZVN0YWNrU2l6ZSAhPSBtX3N5bWJvbFRhYmxl
U3RhY2suc2l6ZSgpOworICAgICAgICAgICAgYm9vbCBmbGlwTGV4aWNhbFNjb3BlU3RhY2sgPSBm
aW5hbGx5Q29udGV4dC5sZXhpY2FsU2NvcGVTdGFja1NpemUgIT0gbV9sZXhpY2FsU2NvcGVTdGFj
ay5zaXplKCk7CiAgICAgICAgICAgICBpbnQgdG9wU2NvcGVJbmRleCA9IC0xOwogICAgICAgICAg
ICAgaW50IGJvdHRvbVNjb3BlSW5kZXggPSAtMTsKICAgICAgICAgICAgIGlmIChmbGlwU2NvcGVz
KSB7CkBAIC0zOTI1LDkgKzM5MjUsOSBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29t
cGxleFBvcFNjCiAgICAgICAgICAgICAgICAgd2hpbGUgKG1fbGFiZWxTY29wZXMuc2l6ZSgpID4g
ZmluYWxseUNvbnRleHQubGFiZWxTY29wZXNTaXplKQogICAgICAgICAgICAgICAgICAgICBtX2xh
YmVsU2NvcGVzLnJlbW92ZUxhc3QoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChm
bGlwU3ltYm9sVGFibGVTdGFjaykgewotICAgICAgICAgICAgICAgIHNhdmVkU3ltYm9sVGFibGVT
dGFjayA9IG1fc3ltYm9sVGFibGVTdGFjazsKLSAgICAgICAgICAgICAgICBtX3N5bWJvbFRhYmxl
U3RhY2suc2hyaW5rKGZpbmFsbHlDb250ZXh0LnN5bWJvbFRhYmxlU3RhY2tTaXplKTsKKyAgICAg
ICAgICAgIGlmIChmbGlwTGV4aWNhbFNjb3BlU3RhY2spIHsKKyAgICAgICAgICAgICAgICBzYXZl
ZExleGljYWxTY29wZVN0YWNrID0gbV9sZXhpY2FsU2NvcGVTdGFjazsKKyAgICAgICAgICAgICAg
ICBtX2xleGljYWxTY29wZVN0YWNrLnNocmluayhmaW5hbGx5Q29udGV4dC5sZXhpY2FsU2NvcGVT
dGFja1NpemUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaW50IHNhdmVkRmluYWxseURl
cHRoID0gbV9maW5hbGx5RGVwdGg7CiAgICAgICAgICAgICBtX2ZpbmFsbHlEZXB0aCA9IGZpbmFs
bHlDb250ZXh0LmZpbmFsbHlEZXB0aDsKQEAgLTM5NjYsOCArMzk2Niw4IEBAIHZvaWQgQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRDb21wbGV4UG9wU2MKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGlmIChmbGlwTGFiZWxTY29wZXMpCiAgICAgICAgICAgICAgICAgbV9sYWJlbFNjb3BlcyA9IHNh
dmVkTGFiZWxTY29wZXM7Ci0gICAgICAgICAgICBpZiAoZmxpcFN5bWJvbFRhYmxlU3RhY2spCi0g
ICAgICAgICAgICAgICAgbV9zeW1ib2xUYWJsZVN0YWNrID0gc2F2ZWRTeW1ib2xUYWJsZVN0YWNr
OworICAgICAgICAgICAgaWYgKGZsaXBMZXhpY2FsU2NvcGVTdGFjaykKKyAgICAgICAgICAgICAg
ICBtX2xleGljYWxTY29wZVN0YWNrID0gc2F2ZWRMZXhpY2FsU2NvcGVTdGFjazsKICAgICAgICAg
ICAgIG1fZmluYWxseURlcHRoID0gc2F2ZWRGaW5hbGx5RGVwdGg7CiAgICAgICAgICAgICBtX2xv
Y2FsU2NvcGVEZXB0aCA9IHNhdmVkRHluYW1pY1Njb3BlRGVwdGg7CiAgICAgICAgICAgICAKQEAg
LTQwMzUsMTIgKzQwMzUsMTIgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6cG9wVHJ5QW5kRW1p
dENhdAogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0aHJvd25WYWx1ZVJlZ2lzdGVyLT5pbmRl
eCgpKTsKIAogICAgIGJvb2wgZm91bmRMb2NhbFNjb3BlID0gZmFsc2U7Ci0gICAgZm9yICh1bnNp
Z25lZCBpID0gbV9zeW1ib2xUYWJsZVN0YWNrLnNpemUoKTsgaS0tOyApIHsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSBtX2xleGljYWxTY29wZVN0YWNrLnNpemUoKTsgaS0tOyApIHsKICAgICAgICAg
Ly8gTm90ZSB0aGF0IGlmIHdlIGRvbid0IGZpbmQgYSBsb2NhbCBzY29wZSBpbiB0aGUgY3VycmVu
dCBmdW5jdGlvbi9wcm9ncmFtLCAKICAgICAgICAgLy8gd2UgbXVzdCBncmFiIHRoZSBvdXRlci1t
b3N0IHNjb3BlIG9mIHRoaXMgYnl0ZWNvZGUgZ2VuZXJhdGlvbi4KLSAgICAgICAgaWYgKG1fc3lt
Ym9sVGFibGVTdGFja1tpXS5tX3Njb3BlKSB7CisgICAgICAgIGlmIChtX2xleGljYWxTY29wZVN0
YWNrW2ldLm1fc2NvcGUpIHsKICAgICAgICAgICAgIGZvdW5kTG9jYWxTY29wZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbWl0TW92ZShzY29wZVJlZ2lzdGVyKCksIG1fc3ltYm9sVGFibGVTdGFja1tp
XS5tX3Njb3BlKTsKKyAgICAgICAgICAgIGVtaXRNb3ZlKHNjb3BlUmVnaXN0ZXIoKSwgbV9sZXhp
Y2FsU2NvcGVTdGFja1tpXS5tX3Njb3BlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgfQpAQCAtNDExOSw4ICs0MTE5LDggQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dFB1c2hGdW5jdGlvbgogICAgIHB1c2hMZXhpY2FsU2NvcGVJbnRlcm5hbChuYW1lU2NvcGVFbnZp
cm9ubWVudCwgVERaQ2hlY2tPcHRpbWl6YXRpb246Ok9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6
OklzTm90TmVzdGVkLCBudWxscHRyLCBURFpSZXF1aXJlbWVudDo6Tm90VW5kZXJURFosIFNjb3Bl
VHlwZTo6RnVuY3Rpb25OYW1lU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpWYXIpOwogICAgIEFT
U0VSVF9VTlVTRUQobnVtVmFycywgbV9jb2RlQmxvY2stPm1fbnVtVmFycyA9PSBzdGF0aWNfY2Fz
dDxpbnQ+KG51bVZhcnMgKyAxKSk7IC8vIFNob3VsZCBoYXZlIG9ubHkgY3JlYXRlZCBvbmUgbmV3
ICJ2YXIiIGZvciB0aGUgZnVuY3Rpb24gbmFtZSBzY29wZS4KICAgICBib29sIHNob3VsZFRyZWF0
QXNMZXhpY2FsVmFyaWFibGUgPSBpc1N0cmljdE1vZGUoKTsKLSAgICBWYXJpYWJsZSBmdW5jdGlv
blZhciA9IHZhcmlhYmxlRm9yTG9jYWxFbnRyeShwcm9wZXJ0eSwgbV9zeW1ib2xUYWJsZVN0YWNr
Lmxhc3QoKS5tX3N5bWJvbFRhYmxlLT5nZXQoTm9Mb2NraW5nTmVjZXNzYXJ5LCBwcm9wZXJ0eS5p
bXBsKCkpLCBtX3N5bWJvbFRhYmxlU3RhY2subGFzdCgpLm1fc3ltYm9sVGFibGVDb25zdGFudElu
ZGV4LCBzaG91bGRUcmVhdEFzTGV4aWNhbFZhcmlhYmxlKTsKLSAgICBlbWl0UHV0VG9TY29wZSht
X3N5bWJvbFRhYmxlU3RhY2subGFzdCgpLm1fc2NvcGUsIGZ1bmN0aW9uVmFyLCBjYWxsZWUsIFRo
cm93SWZOb3RGb3VuZCwgSW5pdGlhbGl6YXRpb25Nb2RlOjpOb3RJbml0aWFsaXphdGlvbik7Cisg
ICAgVmFyaWFibGUgZnVuY3Rpb25WYXIgPSB2YXJpYWJsZUZvckxvY2FsRW50cnkocHJvcGVydHks
IG1fbGV4aWNhbFNjb3BlU3RhY2subGFzdCgpLm1fc3ltYm9sVGFibGUtPmdldChOb0xvY2tpbmdO
ZWNlc3NhcnksIHByb3BlcnR5LmltcGwoKSksIG1fbGV4aWNhbFNjb3BlU3RhY2subGFzdCgpLm1f
c3ltYm9sVGFibGVDb25zdGFudEluZGV4LCBzaG91bGRUcmVhdEFzTGV4aWNhbFZhcmlhYmxlKTsK
KyAgICBlbWl0UHV0VG9TY29wZShtX2xleGljYWxTY29wZVN0YWNrLmxhc3QoKS5tX3Njb3BlLCBm
dW5jdGlvblZhciwgY2FsbGVlLCBUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6
Tm90SW5pdGlhbGl6YXRpb24pOwogfQogCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoU2Nv
cGVkQ29udHJvbEZsb3dDb250ZXh0KCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIwOTcx
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdW5zaWduZWQgZm9ySW5Db250ZXh0U3RhY2tTaXplOwogICAgICAgICB1bnNpZ25lZCB0
cnlDb250ZXh0U3RhY2tTaXplOwogICAgICAgICB1bnNpZ25lZCBsYWJlbFNjb3Blc1NpemU7Ci0g
ICAgICAgIHVuc2lnbmVkIHN5bWJvbFRhYmxlU3RhY2tTaXplOworICAgICAgICB1bnNpZ25lZCBs
ZXhpY2FsU2NvcGVTdGFja1NpemU7CiAgICAgICAgIGludCBmaW5hbGx5RGVwdGg7CiAgICAgICAg
IGludCBkeW5hbWljU2NvcGVEZXB0aDsKICAgICB9OwpAQCAtODk2LDEzICs4OTYsMTMgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgYm9vbCBtX3Nob3VsZEVtaXREZWJ1Z0hvb2tzOwogCi0g
ICAgICAgIHN0cnVjdCBTeW1ib2xUYWJsZVN0YWNrRW50cnkgeworICAgICAgICBzdHJ1Y3QgTGV4
aWNhbFNjb3BlU3RhY2tFbnRyeSB7CiAgICAgICAgICAgICBTeW1ib2xUYWJsZSogbV9zeW1ib2xU
YWJsZTsKICAgICAgICAgICAgIFJlZ2lzdGVySUQqIG1fc2NvcGU7CiAgICAgICAgICAgICBib29s
IG1faXNXaXRoU2NvcGU7CiAgICAgICAgICAgICBpbnQgbV9zeW1ib2xUYWJsZUNvbnN0YW50SW5k
ZXg7CiAgICAgICAgIH07Ci0gICAgICAgIFZlY3RvcjxTeW1ib2xUYWJsZVN0YWNrRW50cnk+IG1f
c3ltYm9sVGFibGVTdGFjazsKKyAgICAgICAgVmVjdG9yPExleGljYWxTY29wZVN0YWNrRW50cnk+
IG1fbGV4aWNhbFNjb3BlU3RhY2s7CiAgICAgICAgIGVudW0gY2xhc3MgVERaTmVjZXNzaXR5TGV2
ZWwgewogICAgICAgICAgICAgTm90TmVlZGVkLAogICAgICAgICAgICAgT3B0aW1pemUsCkBAIC05
MTAsNyArOTEwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH07CiAgICAgICAgIHR5cGVk
ZWYgSGFzaE1hcDxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+LCBURFpOZWNlc3NpdHlMZXZlbCwg
SWRlbnRpZmllclJlcEhhc2g+IFREWk1hcDsKICAgICAgICAgVmVjdG9yPFREWk1hcD4gbV9URFpT
dGFjazsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG1fdmFyU2NvcGVTeW1ib2xUYWJs
ZUluZGV4OworICAgICAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gbV92YXJTY29wZUxleGljYWxT
Y29wZVN0YWNrSW5kZXg7CiAgICAgICAgIHZvaWQgcHVzaFREWlZhcmlhYmxlcyhjb25zdCBWYXJp
YWJsZUVudmlyb25tZW50JiwgVERaQ2hlY2tPcHRpbWl6YXRpb24sIFREWlJlcXVpcmVtZW50KTsK
IAogICAgICAgICBTY29wZU5vZGUqIGNvbnN0IG1fc2NvcGVOb2RlOwo=
</data>
<flag name="review"
          id="319301"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>