<?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>154385</bug_id>
          
          <creation_ts>2016-02-17 23:02:03 -0800</creation_ts>
          <short_desc>Proxy&apos;s don&apos;t properly handle Symbols as PropertyKeys.</short_desc>
          <delta_ts>2016-02-18 16:28:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1165943</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-02-17 23:02:03 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165944</commentid>
    <comment_count>1</comment_count>
      <attachid>271638</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-02-17 23:14:39 -0800</bug_when>
    <thetext>Created attachment 271638
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165951</commentid>
    <comment_count>2</comment_count>
      <attachid>271639</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-02-17 23:42:12 -0800</bug_when>
    <thetext>Created attachment 271639
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166046</commentid>
    <comment_count>3</comment_count>
      <attachid>271639</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-02-18 08:50:08 -0800</bug_when>
    <thetext>Comment on attachment 271639
patch

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

r=me

&gt; Source/JavaScriptCore/runtime/ProxyObject.cpp:30
&gt; +#include &quot;Identifier.h&quot;

Because you #include &quot;IdentifierInlines.h&quot;, you don&apos;t need this.  #include &quot;IdentifierInlines.h&quot; implies that you that #include&apos;d &quot;Identifier.h&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166047</commentid>
    <comment_count>4</comment_count>
      <attachid>271639</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-18 08:53:11 -0800</bug_when>
    <thetext>Comment on attachment 271639
patch

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

&gt; Source/JavaScriptCore/runtime/ProxyObject.cpp:113
&gt; +    arguments.append(identifierToJSValue(vm, Identifier::fromUid(&amp;vm, propertyName.uid())));

We should avoid leaking private symbols (used for JSC runtime) to users (e.g. @arrayIteratorNextIndex).
It offers an accessability to the private (unsafe) data structures in JSObject.
So if the given properyName is a private symbol, it should not be trapped by Proxies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166118</commentid>
    <comment_count>5</comment_count>
      <attachid>271678</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-02-18 11:55:32 -0800</bug_when>
    <thetext>Created attachment 271678
patch

updated with Yusuke&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166130</commentid>
    <comment_count>6</comment_count>
      <attachid>271678</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-18 12:24:28 -0800</bug_when>
    <thetext>Comment on attachment 271678
patch

Adding test for this would be nice :D (I think ArrayIterator.prototype.next can be used).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166135</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-02-18 12:30:26 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 271678 [details]
&gt; patch
&gt; 
&gt; Adding test for this would be nice :D (I think ArrayIterator.prototype.next
&gt; can be used).

Will add. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166247</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-02-18 16:28:02 -0800</bug_when>
    <thetext>landed in:
http://trac.webkit.org/changeset/196785</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271638</attachid>
            <date>2016-02-17 23:14:39 -0800</date>
            <delta_ts>2016-02-17 23:42:12 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>5058</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2NzQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE2LTAyLTE3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFByb3h5J3MgZG9uJ3QgcHJvcGVybHkgaGFuZGxlIFN5bWJvbHMgYXMgUHJvcGVydHlLZXlzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0Mzg1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugd2VyZSBj
b252ZXJ0aW5nIGFsbCBQcm9wZXJ0eUtleXMgdG8gc3RyaW5ncywgZXZlbiB3aGVuCisgICAgICAg
IHRoZSBQcm9wZXJ0eU5hbWUgd2FzIGEgU3ltYm9sLiBJbiB0aGUgc3BlYywgUHJvcGVydHlLZXlz
IGFyZQorICAgICAgICBlaXRoZXIgYSBTeW1ib2wgb3IgYSBTdHJpbmcuIFdlIG5vdyByZXNwZWN0
IHRoYXQgaW4gUHJveHkuW1tHZXRdXQorCisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNw
cDoKKyAgICAgICAgKEpTQzo6cHJvZmlsZWRFdmFsdWF0ZSk6CisgICAgICAgIChKU0M6OmNyZWF0
ZVN5bWJvbEZvckVudHJ5UG9pbnRNb2R1bGUpOgorICAgICAgICAoSlNDOjppZGVudGlmaWVyVG9K
U1ZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuaDoKKyAgICAg
ICAgKEpTQzo6cGFyc2VJbmRleCk6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKToKKyAgICAgICAgKEpT
Qzo6aWRlbnRpZmllclRvSlNWYWx1ZSk6CisgICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OnBlcmZvcm1Qcm94eUdldCk6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL3Byb3h5LWJhc2ljLmpzOgorCiAyMDE2LTAyLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBDYWxsZXJzIG9mIEpTU3RyaW5nOjp2YWx1ZSgpIHNob3VsZCBj
aGVjayBmb3IgZXhjZXB0aW9ucyB0aGVyZWFmdGVyLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAJKHJldmlzaW9uIDE5Njc0NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1ZGUgIkRl
YnVnZ2VyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiSWRlbnRpZmllcklu
bGluZXMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpAQCAtMTIwLDEzICsxMjEsNiBAQCBKU1Zh
bHVlIHByb2ZpbGVkRXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjCiAgICAgcmV0dXJuIGV2YWx1YXRl
KGV4ZWMsIHNvdXJjZSwgdGhpc1ZhbHVlLCByZXR1cm5lZEV4Y2VwdGlvbik7CiB9CiAKLXN0YXRp
YyBKU1ZhbHVlIGlkZW50aWZpZXJUb0pTVmFsdWUoVk0mIHZtLCBjb25zdCBJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKQotewotICAgIGlmIChpZGVudGlmaWVyLmlzU3ltYm9sKCkpCi0gICAgICAgIHJl
dHVybiBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1wbCY+KCppZGVudGlm
aWVyLmltcGwoKSkpOwotICAgIHJldHVybiBqc1N0cmluZygmdm0sIGlkZW50aWZpZXIuaW1wbCgp
KTsKLX0KLQogc3RhdGljIFN5bWJvbCogY3JlYXRlU3ltYm9sRm9yRW50cnlQb2ludE1vZHVsZShW
TSYgdm0pCiB7CiAgICAgLy8gR2VuZXJhdGUgdGhlIHVuaXF1ZSBrZXkgZm9yIHRoZSBzb3VyY2Ut
cHJvdmlkZWQgbW9kdWxlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRl
bnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lk
ZW50aWZpZXIuaAkocmV2aXNpb24gMTk2NzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsNiArMjgyLDggQEAgQUxX
QVlTX0lOTElORSBPcHRpb25hbDx1aW50MzJfdD4gcGFyc2VJbgogICAgIHJldHVybiBwYXJzZUlu
ZGV4KCp1aWQpOwogfQogCitKU1ZhbHVlIGlkZW50aWZpZXJUb0pTVmFsdWUoVk0mLCBjb25zdCBJ
ZGVudGlmaWVyJik7CisKIC8vIEZJWE1FOiBJdCBtYXkgYmUgYmV0dGVyIGZvciB0aGlzIHRvIGp1
c3QgYmUgYSB0eXBlZGVmIGZvciBQdHJIYXNoLCBzaW5jZSBQdHJIYXNoIG1heSBiZSBjaGVhcGVy
IHRvCiAvLyBjb21wdXRlIHRoYW4gbG9hZGluZyB0aGUgU3RyaW5nSW1wbCdzIGhhc2ggZnJvbSBt
ZW1vcnkuIFRoYXQgY2hhbmdlIHdvdWxkIGFsc28gcmVkdWNlIHRoZSBsaWtlbGlob29kIG9mCiAv
LyBjcmFzaGVzIGluIGNvZGUgdGhhdCBzb21laG93IGRhbmdsZWQgYSBTdHJpbmdJbXBsLgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllcklubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVySW5saW5l
cy5oCShyZXZpc2lvbiAxOTY3NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
ZGVudGlmaWVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAi
U3ltYm9sLmgiCiAKIG5hbWVzcGFjZSBKU0MgIHsKIApAQCAtMTM0LDYgKzEzNSwxMyBAQCBpbmxp
bmUgSWRlbnRpZmllciBJZGVudGlmaWVyOjpmcm9tU3RyaW5nCiAgICAgcmV0dXJuIElkZW50aWZp
ZXIoZXhlYywgQXRvbWljU3RyaW5nKHMpKTsKIH0KIAoraW5saW5lIEpTVmFsdWUgaWRlbnRpZmll
clRvSlNWYWx1ZShWTSYgdm0sIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCit7CisgICAg
aWYgKGlkZW50aWZpZXIuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIFN5bWJvbDo6Y3JlYXRl
KHZtLCBzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKmlkZW50aWZpZXIuaW1wbCgpKSk7CisgICAg
cmV0dXJuIGpzU3RyaW5nKCZ2bSwgaWRlbnRpZmllci5pbXBsKCkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBKU0MKIAogI2VuZGlmIC8vIElkZW50aWZpZXJJbmxpbmVzX2gKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAJKHJldmlzaW9uIDE5Njc0
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwZXJm
b3JtUHJveHlHZXQoRXgKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKICAg
ICBhcmd1bWVudHMuYXBwZW5kKHRhcmdldCk7Ci0gICAgYXJndW1lbnRzLmFwcGVuZChqc1N0cmlu
ZyhleGVjLCBwcm9wZXJ0eU5hbWUudWlkKCkpKTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKGlkZW50
aWZpZXJUb0pTVmFsdWUodm0sIHByb3BlcnR5TmFtZS51aWQoKSkpOwogICAgIGFyZ3VtZW50cy5h
cHBlbmQodGhpc09iamVjdCk7CiAgICAgSlNWYWx1ZSB0cmFwUmVzdWx0ID0gY2FsbChleGVjLCBn
ZXRIYW5kbGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIGhhbmRsZXIsIGFyZ3VtZW50cyk7CiAgICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9wcm94eS1iYXNpYy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWJhc2ljLmpzCShyZXZpc2lvbiAxOTY3NDYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWJhc2ljLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xODUsMyArMTg1LDIxIEBAIGFzc2VydChQcm94eS5wcm90b3R5cGUgPT09IHVu
ZGVmaW5lZCk7CiAgICAgICAgIGFzc2VydChwcm94eS54ID09PSA0MCk7CiAgICAgfQogfQorCit7
CisgICAgbGV0IGZpZWxkID0gU3ltYm9sKCk7CisgICAgbGV0IHRoZVRhcmdldCA9IHsKKyAgICAg
ICAgW2ZpZWxkXTogNDAKKyAgICB9OworICAgIGxldCBoYW5kbGVyID0geworICAgICAgICBnZXQ6
IGZ1bmN0aW9uKHRhcmdldCwgcHJvcE5hbWUsIHByb3h5QXJnKSB7CisgICAgICAgICAgICBhc3Nl
cnQocHJvcE5hbWUgPT09IGZpZWxkKTsKKyAgICAgICAgICAgIHJldHVybiB0YXJnZXRbZmllbGRd
OworICAgICAgICB9CisgICAgfTsKKworICAgIGxldCBwcm94eSA9IG5ldyBQcm94eSh0aGVUYXJn
ZXQsIGhhbmRsZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpKyspIHsKKyAgICAg
ICAgYXNzZXJ0KHByb3h5W2ZpZWxkXSA9PT0gNDApOworICAgIH0KK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271639</attachid>
            <date>2016-02-17 23:42:12 -0800</date>
            <delta_ts>2016-02-18 11:55:32 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>5911</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2NzQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE2LTAyLTE3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFByb3h5J3MgZG9uJ3QgcHJvcGVybHkgaGFuZGxlIFN5bWJvbHMgYXMgUHJvcGVydHlLZXlzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0Mzg1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugd2VyZSBj
b252ZXJ0aW5nIGFsbCBQcm9wZXJ0eUtleXMgdG8gc3RyaW5ncywgZXZlbiB3aGVuCisgICAgICAg
IHRoZSBQcm9wZXJ0eU5hbWUgd2FzIGEgU3ltYm9sLiBJbiB0aGUgc3BlYywgUHJvcGVydHlLZXlz
IGFyZQorICAgICAgICBlaXRoZXIgYSBTeW1ib2wgb3IgYSBTdHJpbmcuIFdlIG5vdyByZXNwZWN0
IHRoYXQgaW4gUHJveHkuW1tHZXRdXQorCisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNw
cDoKKyAgICAgICAgKEpTQzo6cHJvZmlsZWRFdmFsdWF0ZSk6CisgICAgICAgIChKU0M6OmNyZWF0
ZVN5bWJvbEZvckVudHJ5UG9pbnRNb2R1bGUpOgorICAgICAgICAoSlNDOjppZGVudGlmaWVyVG9K
U1ZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuaDoKKyAgICAg
ICAgKEpTQzo6cGFyc2VJbmRleCk6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKToKKyAgICAgICAgKEpT
Qzo6aWRlbnRpZmllclRvSlNWYWx1ZSk6CisgICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OnBlcmZvcm1Qcm94eUdldCk6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL3Byb3h5LWJhc2ljLmpzOgorCiAyMDE2LTAyLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBDYWxsZXJzIG9mIEpTU3RyaW5nOjp2YWx1ZSgpIHNob3VsZCBj
aGVjayBmb3IgZXhjZXB0aW9ucyB0aGVyZWFmdGVyLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAJKHJldmlzaW9uIDE5Njc0NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1ZGUgIkRl
YnVnZ2VyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiSWRlbnRpZmllci5o
IgorI2luY2x1ZGUgIklkZW50aWZpZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIu
aCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIK
QEAgLTEyMCwxMyArMTIyLDYgQEAgSlNWYWx1ZSBwcm9maWxlZEV2YWx1YXRlKEV4ZWNTdGF0ZSog
ZXhlYwogICAgIHJldHVybiBldmFsdWF0ZShleGVjLCBzb3VyY2UsIHRoaXNWYWx1ZSwgcmV0dXJu
ZWRFeGNlcHRpb24pOwogfQogCi1zdGF0aWMgSlNWYWx1ZSBpZGVudGlmaWVyVG9KU1ZhbHVlKFZN
JiB2bSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKLXsKLSAgICBpZiAoaWRlbnRpZmll
ci5pc1N5bWJvbCgpKQotICAgICAgICByZXR1cm4gU3ltYm9sOjpjcmVhdGUodm0sIHN0YXRpY19j
YXN0PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBsKCkpKTsKLSAgICByZXR1cm4ganNTdHJp
bmcoJnZtLCBpZGVudGlmaWVyLmltcGwoKSk7Ci19Ci0KIHN0YXRpYyBTeW1ib2wqIGNyZWF0ZVN5
bWJvbEZvckVudHJ5UG9pbnRNb2R1bGUoVk0mIHZtKQogewogICAgIC8vIEdlbmVyYXRlIHRoZSB1
bmlxdWUga2V5IGZvciB0aGUgc291cmNlLXByb3ZpZGVkIG1vZHVsZS4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgJKHJldmlzaW9uIDE5Njc0NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgyLDYgKzI4Miw4IEBAIEFMV0FZU19JTkxJTkUgT3B0aW9uYWw8dWludDMyX3Q+IHBh
cnNlSW4KICAgICByZXR1cm4gcGFyc2VJbmRleCgqdWlkKTsKIH0KIAorSlNWYWx1ZSBpZGVudGlm
aWVyVG9KU1ZhbHVlKFZNJiwgY29uc3QgSWRlbnRpZmllciYpOworCiAvLyBGSVhNRTogSXQgbWF5
IGJlIGJldHRlciBmb3IgdGhpcyB0byBqdXN0IGJlIGEgdHlwZWRlZiBmb3IgUHRySGFzaCwgc2lu
Y2UgUHRySGFzaCBtYXkgYmUgY2hlYXBlciB0bwogLy8gY29tcHV0ZSB0aGFuIGxvYWRpbmcgdGhl
IFN0cmluZ0ltcGwncyBoYXNoIGZyb20gbWVtb3J5LiBUaGF0IGNoYW5nZSB3b3VsZCBhbHNvIHJl
ZHVjZSB0aGUgbGlrZWxpaG9vZCBvZgogLy8gY3Jhc2hlcyBpbiBjb2RlIHRoYXQgc29tZWhvdyBk
YW5nbGVkIGEgU3RyaW5nSW1wbC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0lkZW50aWZpZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSWRlbnRpZmllcklubGluZXMuaAkocmV2aXNpb24gMTk2NzQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllcklubGluZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAi
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlN5bWJvbC5oIgogCiBuYW1lc3BhY2UgSlNDICB7CiAK
QEAgLTEzNCw2ICsxMzUsMTMgQEAgaW5saW5lIElkZW50aWZpZXIgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZwogICAgIHJldHVybiBJZGVudGlmaWVyKGV4ZWMsIEF0b21pY1N0cmluZyhzKSk7CiB9CiAK
K2lubGluZSBKU1ZhbHVlIGlkZW50aWZpZXJUb0pTVmFsdWUoVk0mIHZtLCBjb25zdCBJZGVudGlm
aWVyJiBpZGVudGlmaWVyKQoreworICAgIGlmIChpZGVudGlmaWVyLmlzU3ltYm9sKCkpCisgICAg
ICAgIHJldHVybiBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1wbCY+KCpp
ZGVudGlmaWVyLmltcGwoKSkpOworICAgIHJldHVybiBqc1N0cmluZygmdm0sIGlkZW50aWZpZXIu
aW1wbCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBJZGVudGlmaWVy
SW5saW5lc19oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlP
YmplY3QuY3BwCShyZXZpc2lvbiAxOTY3NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm94eU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAKICNp
bmNsdWRlICJQcm94eU9iamVjdC5oIgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJJ
ZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKICNpbmNsdWRlICJK
U0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRl
ICJTbG90VmlzaXRvcklubGluZXMuaCIKQEAgLTEwOCw3ICsxMTAsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgcGVyZm9ybVByb3h5R2V0KEV4CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBh
cmd1bWVudHM7CiAgICAgYXJndW1lbnRzLmFwcGVuZCh0YXJnZXQpOwotICAgIGFyZ3VtZW50cy5h
cHBlbmQoanNTdHJpbmcoZXhlYywgcHJvcGVydHlOYW1lLnVpZCgpKSk7CisgICAgYXJndW1lbnRz
LmFwcGVuZChpZGVudGlmaWVyVG9KU1ZhbHVlKHZtLCBJZGVudGlmaWVyOjpmcm9tVWlkKCZ2bSwg
cHJvcGVydHlOYW1lLnVpZCgpKSkpOwogICAgIGFyZ3VtZW50cy5hcHBlbmQodGhpc09iamVjdCk7
CiAgICAgSlNWYWx1ZSB0cmFwUmVzdWx0ID0gY2FsbChleGVjLCBnZXRIYW5kbGVyLCBjYWxsVHlw
ZSwgY2FsbERhdGEsIGhhbmRsZXIsIGFyZ3VtZW50cyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbAkocmV2aXNpb24g
MTk2NzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1sCSh3b3JraW5n
IGNvcHkpCkBAIC05NDksNyArOTQ5LDcgQEAKIC0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2Rl
bGV0ZVByb3BlcnR5X2NhbGxzX0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmpzCiAgIGNtZDogcnVu
RVM2IDpmYWlsCiAtIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkuZnJv
bS5qcwotICBjbWQ6IHJ1bkVTNiA6ZmFpbAorICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCiAtIHBhdGg6
IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLmNvbmNhdC5qcwog
ICBjbWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxz
X0FycmF5LnByb3RvdHlwZS5wb3AuanMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvcHJveHktYmFzaWMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1iYXNpYy5qcwkocmV2aXNpb24gMTk2NzQ2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1iYXNpYy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMTg1LDMgKzE4NSwyMSBAQCBhc3NlcnQoUHJveHkucHJvdG90eXBlID09PSB1bmRl
ZmluZWQpOwogICAgICAgICBhc3NlcnQocHJveHkueCA9PT0gNDApOwogICAgIH0KIH0KKworewor
ICAgIGxldCBmaWVsZCA9IFN5bWJvbCgpOworICAgIGxldCB0aGVUYXJnZXQgPSB7CisgICAgICAg
IFtmaWVsZF06IDQwCisgICAgfTsKKyAgICBsZXQgaGFuZGxlciA9IHsKKyAgICAgICAgZ2V0OiBm
dW5jdGlvbih0YXJnZXQsIHByb3BOYW1lLCBwcm94eUFyZykgeworICAgICAgICAgICAgYXNzZXJ0
KHByb3BOYW1lID09PSBmaWVsZCk7CisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W2ZpZWxkXTsK
KyAgICAgICAgfQorICAgIH07CisKKyAgICBsZXQgcHJveHkgPSBuZXcgUHJveHkodGhlVGFyZ2V0
LCBoYW5kbGVyKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgaSsrKSB7CisgICAgICAg
IGFzc2VydChwcm94eVtmaWVsZF0gPT09IDQwKTsKKyAgICB9Cit9Cg==
</data>
<flag name="review"
          id="296460"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271678</attachid>
            <date>2016-02-18 11:55:32 -0800</date>
            <delta_ts>2016-02-18 12:24:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>6380</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2NzQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE2LTAyLTE3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFByb3h5J3MgZG9uJ3QgcHJvcGVybHkgaGFuZGxlIFN5bWJvbHMgYXMgUHJvcGVydHlLZXlzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0Mzg1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugd2VyZSBj
b252ZXJ0aW5nIGFsbCBQcm9wZXJ0eUtleXMgdG8gc3RyaW5ncywgZXZlbiB3aGVuCisgICAgICAg
IHRoZSBQcm9wZXJ0eU5hbWUgd2FzIGEgU3ltYm9sLiBJbiB0aGUgc3BlYywgUHJvcGVydHlLZXlz
IGFyZQorICAgICAgICBlaXRoZXIgYSBTeW1ib2wgb3IgYSBTdHJpbmcuIFdlIG5vdyByZXNwZWN0
IHRoYXQgaW4gUHJveHkuW1tHZXRdXQorCisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNw
cDoKKyAgICAgICAgKEpTQzo6cHJvZmlsZWRFdmFsdWF0ZSk6CisgICAgICAgIChKU0M6OmNyZWF0
ZVN5bWJvbEZvckVudHJ5UG9pbnRNb2R1bGUpOgorICAgICAgICAoSlNDOjppZGVudGlmaWVyVG9K
U1ZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuaDoKKyAgICAg
ICAgKEpTQzo6cGFyc2VJbmRleCk6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKToKKyAgICAgICAgKEpT
Qzo6aWRlbnRpZmllclRvSlNWYWx1ZSk6CisgICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OnBlcmZvcm1Qcm94eUdldCk6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL3Byb3h5LWJhc2ljLmpzOgorCiAyMDE2LTAyLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBDYWxsZXJzIG9mIEpTU3RyaW5nOjp2YWx1ZSgpIHNob3VsZCBj
aGVjayBmb3IgZXhjZXB0aW9ucyB0aGVyZWFmdGVyLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAJKHJldmlzaW9uIDE5Njc0NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1ZGUgIkRl
YnVnZ2VyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiSWRlbnRpZmllcklu
bGluZXMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpAQCAtMTIwLDEzICsxMjEsNiBAQCBKU1Zh
bHVlIHByb2ZpbGVkRXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjCiAgICAgcmV0dXJuIGV2YWx1YXRl
KGV4ZWMsIHNvdXJjZSwgdGhpc1ZhbHVlLCByZXR1cm5lZEV4Y2VwdGlvbik7CiB9CiAKLXN0YXRp
YyBKU1ZhbHVlIGlkZW50aWZpZXJUb0pTVmFsdWUoVk0mIHZtLCBjb25zdCBJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKQotewotICAgIGlmIChpZGVudGlmaWVyLmlzU3ltYm9sKCkpCi0gICAgICAgIHJl
dHVybiBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1wbCY+KCppZGVudGlm
aWVyLmltcGwoKSkpOwotICAgIHJldHVybiBqc1N0cmluZygmdm0sIGlkZW50aWZpZXIuaW1wbCgp
KTsKLX0KLQogc3RhdGljIFN5bWJvbCogY3JlYXRlU3ltYm9sRm9yRW50cnlQb2ludE1vZHVsZShW
TSYgdm0pCiB7CiAgICAgLy8gR2VuZXJhdGUgdGhlIHVuaXF1ZSBrZXkgZm9yIHRoZSBzb3VyY2Ut
cHJvdmlkZWQgbW9kdWxlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRl
bnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lk
ZW50aWZpZXIuaAkocmV2aXNpb24gMTk2NzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsNiArMjgyLDExIEBAIEFM
V0FZU19JTkxJTkUgT3B0aW9uYWw8dWludDMyX3Q+IHBhcnNlSW4KICAgICByZXR1cm4gcGFyc2VJ
bmRleCgqdWlkKTsKIH0KIAorSlNWYWx1ZSBpZGVudGlmaWVyVG9KU1ZhbHVlKFZNJiwgY29uc3Qg
SWRlbnRpZmllciYpOworLy8gVGhpcyB3aWxsIHN0cmluZ2lmeSBwcml2YXRlIHN5bWJvbHMuIFdo
ZW4gbGVha2luZyBKU1ZhbHVlcyB0bworLy8gbm9uLWludGVybmFsIGNvZGUsIG1ha2Ugc3VyZSB0
byB1c2UgdGhpcyBmdW5jdGlvbiBhbmQgbm90IHRoZSBhYm92ZSBvbmUuCitKU1ZhbHVlIGlkZW50
aWZpZXJUb1NhZmVQdWJsaWNKU1ZhbHVlKFZNJiwgY29uc3QgSWRlbnRpZmllciYpOworCiAvLyBG
SVhNRTogSXQgbWF5IGJlIGJldHRlciBmb3IgdGhpcyB0byBqdXN0IGJlIGEgdHlwZWRlZiBmb3Ig
UHRySGFzaCwgc2luY2UgUHRySGFzaCBtYXkgYmUgY2hlYXBlciB0bwogLy8gY29tcHV0ZSB0aGFu
IGxvYWRpbmcgdGhlIFN0cmluZ0ltcGwncyBoYXNoIGZyb20gbWVtb3J5LiBUaGF0IGNoYW5nZSB3
b3VsZCBhbHNvIHJlZHVjZSB0aGUgbGlrZWxpaG9vZCBvZgogLy8gY3Jhc2hlcyBpbiBjb2RlIHRo
YXQgc29tZWhvdyBkYW5nbGVkIGEgU3RyaW5nSW1wbC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0lkZW50aWZpZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllcklubGluZXMuaAkocmV2aXNpb24gMTk2NzQ2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllcklubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgi
CiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlN5bWJvbC5oIgogCiBuYW1lc3Bh
Y2UgSlNDICB7CiAKQEAgLTEzNCw2ICsxMzUsMjAgQEAgaW5saW5lIElkZW50aWZpZXIgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZwogICAgIHJldHVybiBJZGVudGlmaWVyKGV4ZWMsIEF0b21pY1N0cmlu
ZyhzKSk7CiB9CiAKK2lubGluZSBKU1ZhbHVlIGlkZW50aWZpZXJUb0pTVmFsdWUoVk0mIHZtLCBj
b25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQoreworICAgIGlmIChpZGVudGlmaWVyLmlzU3lt
Ym9sKCkpCisgICAgICAgIHJldHVybiBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3lt
Ym9sSW1wbCY+KCppZGVudGlmaWVyLmltcGwoKSkpOworICAgIHJldHVybiBqc1N0cmluZygmdm0s
IGlkZW50aWZpZXIuaW1wbCgpKTsKK30KKworaW5saW5lIEpTVmFsdWUgaWRlbnRpZmllclRvU2Fm
ZVB1YmxpY0pTVmFsdWUoVk0mIHZtLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKSAKK3sK
KyAgICBpZiAoaWRlbnRpZmllci5pc1N5bWJvbCgpICYmICF2bS5wcm9wZXJ0eU5hbWVzLT5pc1By
aXZhdGVOYW1lKGlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gU3ltYm9sOjpjcmVhdGUodm0s
IHN0YXRpY19jYXN0PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBsKCkpKTsKKyAgICByZXR1
cm4ganNTdHJpbmcoJnZtLCBpZGVudGlmaWVyLmltcGwoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IEpTQwogCiAjZW5kaWYgLy8gSWRlbnRpZmllcklubGluZXNfaApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAkocmV2aXNpb24gMTk2NzQ2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJveHlPYmplY3QuaCIKIAogI2lu
Y2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKICNpbmNsdWRl
ICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNs
dWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKQEAgLTEwOCw3ICsxMDksNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgcGVyZm9ybVByb3h5R2V0KEV4CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmd1bWVudHM7CiAgICAgYXJndW1lbnRzLmFwcGVuZCh0YXJnZXQpOwotICAgIGFyZ3VtZW50
cy5hcHBlbmQoanNTdHJpbmcoZXhlYywgcHJvcGVydHlOYW1lLnVpZCgpKSk7CisgICAgYXJndW1l
bnRzLmFwcGVuZChpZGVudGlmaWVyVG9TYWZlUHVibGljSlNWYWx1ZSh2bSwgSWRlbnRpZmllcjo6
ZnJvbVVpZCgmdm0sIHByb3BlcnR5TmFtZS51aWQoKSkpKTsKICAgICBhcmd1bWVudHMuYXBwZW5k
KHRoaXNPYmplY3QpOwogICAgIEpTVmFsdWUgdHJhcFJlc3VsdCA9IGNhbGwoZXhlYywgZ2V0SGFu
ZGxlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBoYW5kbGVyLCBhcmd1bWVudHMpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2Lnlh
bWwJKHJldmlzaW9uIDE5Njc0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYu
eWFtbAkod29ya2luZyBjb3B5KQpAQCAtOTQ5LDcgKzk0OSw3IEBACiAtIHBhdGg6IGVzNi9Qcm94
eV9pbnRlcm5hbF9kZWxldGVQcm9wZXJ0eV9jYWxsc19BcnJheS5wcm90b3R5cGUudW5zaGlmdC5q
cwogICBjbWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxfZ2V0X2Nh
bGxzX0FycmF5LmZyb20uanMKLSAgY21kOiBydW5FUzYgOmZhaWwKKyAgY21kOiBydW5FUzYgOm5v
cm1hbAogLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0FycmF5LnByb3RvdHlw
ZS5jb25jYXQuanMKICAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5cGUucG9wLmpzCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWJhc2ljLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktYmFzaWMuanMJKHJldmlzaW9uIDE5
Njc0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktYmFzaWMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTE4NSwzICsxODUsMjEgQEAgYXNzZXJ0KFByb3h5LnByb3Rv
dHlwZSA9PT0gdW5kZWZpbmVkKTsKICAgICAgICAgYXNzZXJ0KHByb3h5LnggPT09IDQwKTsKICAg
ICB9CiB9CisKK3sKKyAgICBsZXQgZmllbGQgPSBTeW1ib2woKTsKKyAgICBsZXQgdGhlVGFyZ2V0
ID0geworICAgICAgICBbZmllbGRdOiA0MAorICAgIH07CisgICAgbGV0IGhhbmRsZXIgPSB7Cisg
ICAgICAgIGdldDogZnVuY3Rpb24odGFyZ2V0LCBwcm9wTmFtZSwgcHJveHlBcmcpIHsKKyAgICAg
ICAgICAgIGFzc2VydChwcm9wTmFtZSA9PT0gZmllbGQpOworICAgICAgICAgICAgcmV0dXJuIHRh
cmdldFtmaWVsZF07CisgICAgICAgIH0KKyAgICB9OworCisgICAgbGV0IHByb3h5ID0gbmV3IFBy
b3h5KHRoZVRhcmdldCwgaGFuZGxlcik7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7IGkr
KykgeworICAgICAgICBhc3NlcnQocHJveHlbZmllbGRdID09PSA0MCk7CisgICAgfQorfQo=
</data>
<flag name="review"
          id="296507"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>