<?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>154639</bug_id>
          
          <creation_ts>2016-02-24 04:10:51 -0800</creation_ts>
          <short_desc>[ES6] Arrow function. Some not used byte code is emited</short_desc>
          <delta_ts>2016-03-01 13:28:42 -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>
          
          <blocked>140855</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="GSkachkov">gskachkov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1167767</commentid>
    <comment_count>0</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-02-24 04:10:51 -0800</bug_when>
    <thetext>During checking arrow function I found that some unused byte code is emited:
for instance for:
var f2 = function () { return ()=&gt;&apos;test&apos;;}; 
f2()(); 
was generated:
....
f2#DrpDJu:[0x10de8f840-&gt;0x10de76f40, NoneFunctionCall, 20]: 20 m_instructions; 160 bytes; 1 parameter(s); 8 callee register(s); 7 variable(s)
[   0] enter             
[   1] get_scope         loc3
[   3] mov               loc4, loc3
[   6] create_lexical_environment loc5, loc3, Cell: 0x10de3bdd0 (0x10de27600:[SymbolTable, {}, NonArray, Leaf]), ID: 20(const0), Undefined(const1) // Not used create_lexical_environment byte code
[  11] mov               loc3, loc5
[  14] op_new_arrow_func_exp loc7, loc3, f0
[  18] ret               loc7

Constants:
   k0 = Cell: 0x10de3bdd0 (0x10de27600:[SymbolTable, {}, NonArray, Leaf]), ID: 20
   k1 = Undefined

#An0cos:[0x10de8f620-&gt;0x10de76e00, NoneFunctionCall, 10]: 10 m_instructions; 80 bytes; 1 parameter(s); 8 callee register(s); 6 variable(s)
[   0] enter             
[   1] get_scope         loc3
[   3] mov               loc4, loc3
[   6] ret               String (atomic) (identifier): test, ID: 4(const1)
[   8] ret               Undefined(const2) // Not used byte code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168608</commentid>
    <comment_count>1</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-02-26 11:49:13 -0800</bug_when>
    <thetext>Also TDZ is emited for &apos;this&apos; in arrow function that is invoked in class method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169386</commentid>
    <comment_count>2</comment_count>
      <attachid>272552</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-03-01 00:19:18 -0800</bug_when>
    <thetext>Created attachment 272552
Patch

Patch comming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169451</commentid>
    <comment_count>3</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-03-01 09:17:25 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Also TDZ is emited for &apos;this&apos; in arrow function that is invoked in class
&gt; method

I&apos;ve checked and seems that this TDZ is not related to the arrow function. It always add when we&apos;re accessing to the &apos;superProperty&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169510</commentid>
    <comment_count>4</comment_count>
      <attachid>272579</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-03-01 11:36:25 -0800</bug_when>
    <thetext>Created attachment 272579
Patch

Fix typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169525</commentid>
    <comment_count>5</comment_count>
      <attachid>272579</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-01 12:03:17 -0800</bug_when>
    <thetext>Comment on attachment 272579
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        1.create_lexical_environment not emited always for arrow function, only if some of 
&gt; +        features(this/super/arguments/eval) is used inside of the arrow function. 
&gt; +        2.load &apos;this&apos; from arrow function scope in constructor is done only if super 
&gt; +        contains in arrow function 

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169548</commentid>
    <comment_count>6</comment_count>
      <attachid>272579</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-01 13:28:38 -0800</bug_when>
    <thetext>Comment on attachment 272579
Patch

Clearing flags on attachment: 272579

Committed r197410: &lt;http://trac.webkit.org/changeset/197410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169549</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-01 13:28:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272552</attachid>
            <date>2016-03-01 00:19:18 -0800</date>
            <delta_ts>2016-03-01 11:36:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154639-20160301101902.patch</filename>
            <type>text/plain</type>
            <size>8088</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MDI1YTg0YTE1MDBmMGY0YTM3Mzc4Y2RmNTI1ZWNiY2Q5YmRkY2NiLi4xZDk3NmM3ZmNiNjJjMGU1
ZGIwMWQ1NjM0MjMzMDMzYjE0NTNiMzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNi0wMy0wMSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBBcnJvdyBmdW5jdGlvbi4gU29tZSBub3QgdXNlZCBi
eXRlIGNvZGUgaXMgZW1pdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTQ2MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDdXJyZW50bHkgYnl0ZWNvZGUgdGhhdCBpcyBnZW5lcmF0ZWQgZm9yIGFycm93
IGZ1bmN0aW9uIGlzIG5vdCBvcHRpbWFsLiBDdXJyZW50IGZpeCByZW1vdmVkIAorICAgICAgICBm
b2xsb3dpbmcgdW5uZWNlc3NhcnkgYnl0ZWNvZGU6CisgICAgICAgIDEuY3JlYXRlX2xleGljYWxf
ZW52aXJvbm1lbnQgbm90IGVtaXRlZCBhbHdheXMgZm9yIGFycm93IGZ1bmN0aW9uLCBvbmx5IGlm
IHNvbWUgb2YgCisgICAgICAgIGZlYXR1cmVzKHRoaXMvc3VwZXIvYXJndW1lbnRzL2V2YWwpIGlz
IHVzZWQgaW5zaWRlIG9mIHRoZSBhcnJvdyBmdW5jdGlvbi4gCisgICAgICAgIDIubG9hZCAndGhp
cycgZnJvbSBhcnJvdyBmdW5jdGlvbiBzY29wZSBpbiBjb25zdHJ1Y3RvciBpcyBkb25lIG9ubHkg
aWYgc3VwZXIgY29udGFpbnMgaW4gYXJyb3cgZnVuY3Rpb24gCisKKyAgICAgICAgKiBieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6aXNTdXBlckNhbGxVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24pOgorICAgICAgICAqIGJ5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpUaGlzTm9kZTo6ZW1pdEJ5dGVjb2RlKToK
KyAgICAgICAgKEpTQzo6RnVuY3Rpb25Ob2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIHBh
cnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpTY29wZU5vZGU6OmRvQW55SW5uZXJBcnJvd0Z1
bmN0aW9uc1VzZUFueUZlYXR1cmUpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0
aW9uLWxleGljYWwtYmluZC1zdXBlcmNhbGwtNC5qczoKKwogMjAxNi0wMi0yOCAgU2thY2hrb3Yg
T2xla3NhbmRyICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAogICAgICAgICBbRVM2XSBBcnJvdyBm
dW5jdGlvbiBzeW50YXguIEVtaXQgbG9hZGluZyZwdXR0aW5nIHRoaXMvc3VwZXIgb25seSBpZiB0
aGV5IGFyZSB1c2VkIGluIGFycm93IGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDExMTQ4
NTIzYjBjOGU0MDVhNjYwZDRmYmJlMmEwNTY1NzBjZjA4M2UuLjM4ODY0YmUxZWU0NGEwM2FhNjdh
Nzg3NzBiZDUyMDRhZmZhNjc2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC00MDU1LDYgKzQwNTUs
MTEgQEAgYm9vbCBCeXRlY29kZUdlbmVyYXRvcjo6aXNTdXBlclVzZWRJbklubmVyQXJyb3dGdW5j
dGlvbigpCiAgICAgcmV0dXJuIG1fc2NvcGVOb2RlLT5kb0FueUlubmVyQXJyb3dGdW5jdGlvbnNV
c2VTdXBlckNhbGwoKSB8fCBtX3Njb3BlTm9kZS0+ZG9BbnlJbm5lckFycm93RnVuY3Rpb25zVXNl
U3VwZXJQcm9wZXJ0eSgpOwogfQogCitib29sIEJ5dGVjb2RlR2VuZXJhdG9yOjppc1N1cGVyQ2Fs
bFVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigpCit7CisgICAgcmV0dXJuIG1fc2NvcGVOb2RlLT5k
b0FueUlubmVyQXJyb3dGdW5jdGlvbnNVc2VTdXBlckNhbGwoKTsKK30KKyAgICAKIHZvaWQgQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXROZXdUYXJnZXRUb0Fycm93RnVuY3Rpb25Db250ZXh0U2Nv
cGUoKQogewogICAgIGlmIChpc05ld1RhcmdldFVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmgKaW5kZXggNWY4YmExZTBmOWUwNTQxNTVhZjI2YjdjZTJjYTBjZjVkOWQxMGZj
Ny4uODBlZWU3Y2ViMmJmNWZiMmY1MzdjZTUyNmMwNDE3ODQ0NTk4ZWQ5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aApAQCAtNzIzLDYgKzcyMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIGlzQXJn
dW1lbnRzVXNlZEluSW5uZXJBcnJvd0Z1bmN0aW9uKCk7CiAKICAgICBwdWJsaWM6CisgICAgICAg
IGJvb2wgaXNTdXBlckNhbGxVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKTsKICAgICAgICAgYm9v
bCBpc1RoaXNVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKTsKICAgICAgICAgdm9pZCBwdXNoTGV4
aWNhbFNjb3BlKFZhcmlhYmxlRW52aXJvbm1lbnROb2RlKiwgVERaQ2hlY2tPcHRpbWl6YXRpb24s
IE5lc3RlZFNjb3BlVHlwZSA9IE5lc3RlZFNjb3BlVHlwZTo6SXNOb3ROZXN0ZWQsIFJlZ2lzdGVy
SUQqKiBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0ID0gbnVsbHB0cik7CiAgICAgICAgIHZvaWQg
cG9wTGV4aWNhbFNjb3BlKFZhcmlhYmxlRW52aXJvbm1lbnROb2RlKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggYzFk
OTU0NmU5NTk1NmU0OTk4ZWI1YjYwNGQyYTMzMzRmZmViYWM3ZC4uOWI4NGIwMGM3MzI4ZWJkZjJh
MDc4ZTE3MDYyZmRhYzZiYTE5YzYxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIFJlZ2lz
dGVySUQqIFJlZ0V4cE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJh
dG9yLCBSZWdpc3RlcklEKiBkCiAKIFJlZ2lzdGVySUQqIFRoaXNOb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewotICAgIGlm
IChnZW5lcmF0b3IuY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVk
ICYmIGdlbmVyYXRvci5uZWVkc1RvVXBkYXRlQXJyb3dGdW5jdGlvbkNvbnRleHQoKSAmJiBnZW5l
cmF0b3IuaXNUaGlzVXNlZEluSW5uZXJBcnJvd0Z1bmN0aW9uKCkpCisgICAgaWYgKGdlbmVyYXRv
ci5jb25zdHJ1Y3RvcktpbmQoKSA9PSBDb25zdHJ1Y3RvcktpbmQ6OkRlcml2ZWQgJiYgZ2VuZXJh
dG9yLm5lZWRzVG9VcGRhdGVBcnJvd0Z1bmN0aW9uQ29udGV4dCgpICYmIGdlbmVyYXRvci5pc1N1
cGVyQ2FsbFVzZWRJbklubmVyQXJyb3dGdW5jdGlvbigpKQogICAgICAgICBnZW5lcmF0b3IuZW1p
dExvYWRUaGlzRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKTsKIAogICAgIGlm
IChtX3Nob3VsZEFsd2F5c0VtaXRURFpDaGVjayB8fCBnZW5lcmF0b3IuY29uc3RydWN0b3JLaW5k
KCkgPT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkIHx8IGdlbmVyYXRvci5pc0Rlcml2ZWRDb25z
dHJ1Y3RvckNvbnRleHQoKSkKQEAgLTMxMzgsNyArMzEzOCw3IEBAIHZvaWQgRnVuY3Rpb25Ob2Rl
OjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCop
CiAKICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gcmV0dXJuIHdlIG11c3QgYXV0b21hdGljYWxs
eSBpbnNlcnQgb25lLgogICAgICAgICBpZiAoIXJldHVybk5vZGUpIHsKLSAgICAgICAgICAgIGlm
IChnZW5lcmF0b3IuY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVk
ICYmIGdlbmVyYXRvci5uZWVkc1RvVXBkYXRlQXJyb3dGdW5jdGlvbkNvbnRleHQoKSAmJiBnZW5l
cmF0b3IuaXNUaGlzVXNlZEluSW5uZXJBcnJvd0Z1bmN0aW9uKCkpCisgICAgICAgICAgICBpZiAo
Z2VuZXJhdG9yLmNvbnN0cnVjdG9yS2luZCgpID09IENvbnN0cnVjdG9yS2luZDo6RGVyaXZlZCAm
JiBnZW5lcmF0b3IubmVlZHNUb1VwZGF0ZUFycm93RnVuY3Rpb25Db250ZXh0KCkgJiYgZ2VuZXJh
dG9yLmlzU3VwZXJDYWxsVXNlZEluSW5uZXJBcnJvd0Z1bmN0aW9uKCkpCiAgICAgICAgICAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRMb2FkVGhpc0Zyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25t
ZW50KCk7IC8vIEFycm93IGZ1bmN0aW9uIGNhbiBpbnZva2UgJ3N1cGVyJyBpbiBjb25zdHJ1Y3Rv
ciBhbmQgYmVmb3JlIGxlYXZlIGNvbnN0cnVjdG9yIHdlIG5lZWQgbG9hZCAndGhpcycgZnJvbSBs
ZXhpY2FsIGFycm93IGZ1bmN0aW9uIGVudmlyb25tZW50CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIFJlZ2lzdGVySUQqIHIwID0gZ2VuZXJhdG9yLmlzQ29uc3RydWN0b3IoKSA/IGdlbmVyYXRv
ci50aGlzUmVnaXN0ZXIoKSA6IGdlbmVyYXRvci5lbWl0TG9hZCgwLCBqc1VuZGVmaW5lZCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCA1NzY4NmQ3ODE2N2M2NzhkMDA4
MWVmZDRkMzk1YTliZmY2ZjBlZmVkLi40NjEyMmJjODVmOGJhNjc5YzMwMjUwODYzZDIzOWVmYzE2
OWZkMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0xNTY5LDYgKzE1
NjksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRGZWF0dXJlcyhDb2RlRmVh
dHVyZXMgZmVhdHVyZXMpIHsgbV9mZWF0dXJlcyA9IGZlYXR1cmVzOyB9CiAgICAgICAgIENvZGVG
ZWF0dXJlcyBmZWF0dXJlcygpIHsgcmV0dXJuIG1fZmVhdHVyZXM7IH0KICAgICAgICAgSW5uZXJB
cnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVzIGlubmVyQXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJlcygp
IHsgcmV0dXJuIG1faW5uZXJBcnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVzOyB9CisgICAgICAgIGJv
b2wgZG9BbnlJbm5lckFycm93RnVuY3Rpb25zVXNlQW55RmVhdHVyZSgpIHsgcmV0dXJuIG1faW5u
ZXJBcnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVzICE9IE5vSW5uZXJBcnJvd0Z1bmN0aW9uRmVhdHVy
ZXM7IH0KICAgICAgICAgYm9vbCBkb0FueUlubmVyQXJyb3dGdW5jdGlvbnNVc2VBcmd1bWVudHMo
KSB7IHJldHVybiBtX2lubmVyQXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJlcyAmIEFyZ3VtZW50c0lu
bmVyQXJyb3dGdW5jdGlvbkZlYXR1cmU7IH0KICAgICAgICAgYm9vbCBkb0FueUlubmVyQXJyb3dG
dW5jdGlvbnNVc2VTdXBlckNhbGwoKSB7IHJldHVybiBtX2lubmVyQXJyb3dGdW5jdGlvbkNvZGVG
ZWF0dXJlcyAmIFN1cGVyQ2FsbElubmVyQXJyb3dGdW5jdGlvbkZlYXR1cmU7IH0KICAgICAgICAg
Ym9vbCBkb0FueUlubmVyQXJyb3dGdW5jdGlvbnNVc2VTdXBlclByb3BlcnR5KCkgeyByZXR1cm4g
bV9pbm5lckFycm93RnVuY3Rpb25Db2RlRmVhdHVyZXMgJiBTdXBlclByb3BlcnR5SW5uZXJBcnJv
d0Z1bmN0aW9uRmVhdHVyZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLWxleGljYWwtYmluZC1zdXBlcmNhbGwtNC5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlvbi1sZXhpY2FsLWJp
bmQtc3VwZXJjYWxsLTQuanMKaW5kZXggYjA2ZmZlZjQ3ZGEyMDBkZDI4ZDJkNGFlZjc1YzU1YmVj
OTUyM2E0MC4uZDkzYmUzODkxNTQyMTMxMDg1ZjBjYjhhNmY0ZWEyMGM4MWMyZmFlZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLWxl
eGljYWwtYmluZC1zdXBlcmNhbGwtNC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2Fycm93ZnVuY3Rpb24tbGV4aWNhbC1iaW5kLXN1cGVyY2FsbC00LmpzCkBAIC04
MiwzICs4Miw2MCBAQCB2YXIgdGVzdEV4Y2VwdGlvbiA9IGZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgp
IHsKIGZvciAodmFyIGk9MDsgaSA8IDEwMDA7IGkrKykgewogICAgIHRlc3RFeGNlcHRpb24oZmFs
c2UsIGkpOwogfQorCitjbGFzcyBGIGV4dGVuZHMgQSB7CisgICAgY29uc3RydWN0b3IoKSB7Cisg
ICAgICB2YXIgYXJyX2FmdGVyID0gKCkgPT4geworICAgICAgICB0aGlzLmlkVmFsdWUgID0gJ3Ro
aXMtdmFsdWUnOworICAgICAgfTsKKyAgICAgIHZhciBhcnJfYmVmb3JlID0gKCkgPT4geworICAg
ICAgICByZXR1cm4gJ25vdC1zb21lLXZhbHVlJzsKKyAgICAgIH07CisgICAgICBhcnJfYmVmb3Jl
KCk7CisgICAgICBzdXBlcigpOworICAgICAgYXJyX2FmdGVyKCk7CisgICAgfQorfQorCitsZXQg
ZiA9IG5ldyBGKCk7Cit0ZXN0Q2FzZShmLmlkVmFsdWUsICd0aGlzLXZhbHVlJywgJ0Vycm9yOiBu
b3QgY29ycmVjdCBiaW5kaW5nIG9mIHRoaXMgaW4gY29uc3RydWN0b3InKTsKKworY2xhc3MgRyBl
eHRlbmRzIEEgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICB2YXIgYXJyX3NpbXBsZSA9
ICgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiAnbm90LXNvbWUtdmFsdWUnOworICAgICAgICB9
OworICAgICAgICB2YXIgYXJyX3N1cGVyID0gKCkgPT4geworICAgICAgICAgICAgc3VwZXIoKTsK
KyAgICAgICAgfTsKKyAgICAgICAgYXJyX3NpbXBsZSgpOworICAgICAgICBhcnJfc3VwZXIoKTsK
KyAgICB9Cit9CisKK2xldCBnID0gbmV3IEcoKTsKK3Rlc3RDYXNlKGcuaWRWYWx1ZSwgdGVzdFZh
bHVlLCAnRXJyb3I6IG5vdCBjb3JyZWN0IGJpbmRpbmcgc3VwZXImdGhpcyBpbiBjb25zdHJ1Y3Rv
cicpOworCitjbGFzcyBBX3RoaXNfUHJvcCBleHRlbmRzIEEgeworICAgIGdldFZhbHVlICgpIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuaWRWYWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIEggZXh0ZW5k
cyBBX3RoaXNfUHJvcCB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHZhciBhcnJfc2lt
cGxlID0gKCkgPT4geworICAgICAgICAgICAgcmV0dXJuICdub3Qtc29tZS12YWx1ZSc7CisgICAg
ICAgIH07CisgICAgICAgIHZhciBhcnJfc3VwZXIgPSAoKSA9PiB7CisgICAgICAgICAgICBzdXBl
cigpOworICAgICAgICB9OworICAgICAgICB2YXIgYXJyX3ZhbHVlID0gKCkgPT4gc3VwZXIuZ2V0
VmFsdWUoKTsKKyAgICAgICAgYXJyX3NpbXBsZSgpOworICAgICAgICBhcnJfc3VwZXIoKTsKKyAg
ICAgICAgdGhpcy5zb21lVmFsdWUgPSBhcnJfdmFsdWUoKTsKKyAgICB9Cit9CisKK2xldCBoID0g
bmV3IEgoKTsKK3Rlc3RDYXNlKGguc29tZVZhbHVlLCB0ZXN0VmFsdWUsICdFcnJvcjogbm90IGNv
cnJlY3QgYmluZGluZyBzdXBlclByb3BlcnR5JnRoaXMgaW4gY29uc3RydWN0b3InKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272579</attachid>
            <date>2016-03-01 11:36:25 -0800</date>
            <delta_ts>2016-03-01 13:28:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154639-20160301213608.patch</filename>
            <type>text/plain</type>
            <size>9633</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
N2QyNThiNmExZTEzY2I0OGFlZGVkYTk5ZDUxZTQ2YzFlOWUzMDFiLi4zOWRhZjFiNDRhNWQzZDhm
NzdhZTVjMWRkYWE3ZDRiZTRlMmZjZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNi0wMy0wMSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBBcnJvdyBmdW5jdGlvbi4gU29tZSBub3QgdXNlZCBi
eXRlIGNvZGUgaXMgZW1pdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTQ2MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDdXJyZW50bHkgYnl0ZWNvZGUgdGhhdCBpcyBnZW5lcmF0ZWQgZm9yIGFycm93
IGZ1bmN0aW9uIGlzIG5vdCBvcHRpbWFsLiAKKyAgICAgICAgQ3VycmVudCBmaXggcmVtb3ZlZCBm
b2xsb3dpbmcgdW5uZWNlc3NhcnkgYnl0ZWNvZGU6CisgICAgICAgIDEuY3JlYXRlX2xleGljYWxf
ZW52aXJvbm1lbnQgbm90IGVtaXRlZCBhbHdheXMgZm9yIGFycm93IGZ1bmN0aW9uLCBvbmx5IGlm
IHNvbWUgb2YgCisgICAgICAgIGZlYXR1cmVzKHRoaXMvc3VwZXIvYXJndW1lbnRzL2V2YWwpIGlz
IHVzZWQgaW5zaWRlIG9mIHRoZSBhcnJvdyBmdW5jdGlvbi4gCisgICAgICAgIDIubG9hZCAndGhp
cycgZnJvbSBhcnJvdyBmdW5jdGlvbiBzY29wZSBpbiBjb25zdHJ1Y3RvciBpcyBkb25lIG9ubHkg
aWYgc3VwZXIgCisgICAgICAgIGNvbnRhaW5zIGluIGFycm93IGZ1bmN0aW9uIAorCisgICAgICAg
ICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0
ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVHZW5lcmF0b3I6OmlzU3VwZXJDYWxsVXNlZEluSW5uZXJBcnJvd0Z1bmN0aW9uKToKKyAgICAg
ICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6VGhpc05vZGU6OmVtaXRCeXRl
Y29kZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAg
ICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjpkb0FueUlubmVy
QXJyb3dGdW5jdGlvbnNVc2VBbnlGZWF0dXJlKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvYXJy
b3dmdW5jdGlvbi1sZXhpY2FsLWJpbmQtc3VwZXJjYWxsLTQuanM6CisKIDIwMTYtMDItMjkgIFNh
YW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW1tQcmV2ZW50RXh0ZW5z
aW9uc11dIHNob3VsZCBiZSBhIHZpcnR1YWwgbWV0aG9kIGluIHRoZSBtZXRob2QgdGFibGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuY3BwCmluZGV4IDExMTQ4NTIzYjBjOGU0MDVhNjYwZDRmYmJlMmEwNTY1NzBjZjA4
M2UuLjQyZjJhN2Y5N2NhOWQ4NWM5MTQ2YmI3ZmRkYTM0NGZjZWYxMGNiM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2Vu
ZXJhdG9yKFZNJiB2bSwgRnVuY3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2UKIAogICAg
IFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBjb2RlQmxvY2stPnBhcnNlTW9kZSgpOwogCi0g
ICAgYm9vbCBjb250YWluc0Fycm93T3JFdmFsQnV0Tm90SW5BcnJvd0Jsb2NrID0gKChmdW5jdGlv
bk5vZGUtPnVzZXNBcnJvd0Z1bmN0aW9uKCkgJiYgZnVuY3Rpb25Ob2RlLT5kb0FueUlubmVyQXJy
b3dGdW5jdGlvblVzZUFueUZlYXR1cmUoKSkgfHwgZnVuY3Rpb25Ob2RlLT51c2VzRXZhbCgpKSAm
JiAhbV9jb2RlQmxvY2stPmlzQXJyb3dGdW5jdGlvbigpOworICAgIGJvb2wgY29udGFpbnNBcnJv
d09yRXZhbEJ1dE5vdEluQXJyb3dCbG9jayA9ICgoZnVuY3Rpb25Ob2RlLT51c2VzQXJyb3dGdW5j
dGlvbigpICYmIGZ1bmN0aW9uTm9kZS0+ZG9BbnlJbm5lckFycm93RnVuY3Rpb25zVXNlQW55RmVh
dHVyZSgpKSB8fCBmdW5jdGlvbk5vZGUtPnVzZXNFdmFsKCkpICYmICFtX2NvZGVCbG9jay0+aXNB
cnJvd0Z1bmN0aW9uKCk7CiAgICAgYm9vbCBzaG91bGRDYXB0dXJlU29tZU9mVGhlVGhpbmdzID0g
bV9zaG91bGRFbWl0RGVidWdIb29rcyB8fCBmdW5jdGlvbk5vZGUtPm5lZWRzQWN0aXZhdGlvbigp
IHx8IGNvbnRhaW5zQXJyb3dPckV2YWxCdXROb3RJbkFycm93QmxvY2s7CiAKICAgICBib29sIHNo
b3VsZENhcHR1cmVBbGxPZlRoZVRoaW5ncyA9IG1fc2hvdWxkRW1pdERlYnVnSG9va3MgfHwgY29k
ZUJsb2NrLT51c2VzRXZhbCgpOwpAQCAtNDA1NSw2ICs0MDU1LDExIEBAIGJvb2wgQnl0ZWNvZGVH
ZW5lcmF0b3I6OmlzU3VwZXJVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKQogICAgIHJldHVybiBt
X3Njb3BlTm9kZS0+ZG9BbnlJbm5lckFycm93RnVuY3Rpb25zVXNlU3VwZXJDYWxsKCkgfHwgbV9z
Y29wZU5vZGUtPmRvQW55SW5uZXJBcnJvd0Z1bmN0aW9uc1VzZVN1cGVyUHJvcGVydHkoKTsKIH0K
IAorYm9vbCBCeXRlY29kZUdlbmVyYXRvcjo6aXNTdXBlckNhbGxVc2VkSW5Jbm5lckFycm93RnVu
Y3Rpb24oKQoreworICAgIHJldHVybiBtX3Njb3BlTm9kZS0+ZG9BbnlJbm5lckFycm93RnVuY3Rp
b25zVXNlU3VwZXJDYWxsKCk7Cit9CisgICAgCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
UHV0TmV3VGFyZ2V0VG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3BlKCkKIHsKICAgICBpZiAoaXNO
ZXdUYXJnZXRVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDVm
OGJhMWUwZjllMDU0MTU1YWYyNmI3Y2UyY2EwY2Y1ZDlkMTBmYzcuLjgwZWVlN2NlYjJiZjVmYjJm
NTM3Y2U1MjZjMDQxNzg0NDU5OGVkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTcyMyw2ICs3MjMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBpc0FyZ3VtZW50c1VzZWRJbklubmVyQXJy
b3dGdW5jdGlvbigpOwogCiAgICAgcHVibGljOgorICAgICAgICBib29sIGlzU3VwZXJDYWxsVXNl
ZEluSW5uZXJBcnJvd0Z1bmN0aW9uKCk7CiAgICAgICAgIGJvb2wgaXNUaGlzVXNlZEluSW5uZXJB
cnJvd0Z1bmN0aW9uKCk7CiAgICAgICAgIHZvaWQgcHVzaExleGljYWxTY29wZShWYXJpYWJsZUVu
dmlyb25tZW50Tm9kZSosIFREWkNoZWNrT3B0aW1pemF0aW9uLCBOZXN0ZWRTY29wZVR5cGUgPSBO
ZXN0ZWRTY29wZVR5cGU6OklzTm90TmVzdGVkLCBSZWdpc3RlcklEKiogY29uc3RhbnRTeW1ib2xU
YWJsZVJlc3VsdCA9IG51bGxwdHIpOwogICAgICAgICB2b2lkIHBvcExleGljYWxTY29wZShWYXJp
YWJsZUVudmlyb25tZW50Tm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IGMxZDk1NDZlOTU5NTZlNDk5OGViNWI2
MDRkMmEzMzM0ZmZlYmFjN2QuLjliODRiMDBjNzMyOGViZGYyYTA3OGUxNzA2MmZkYWM2YmExOWM2
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBSZWdpc3RlcklEKiBSZWdFeHBOb2RlOjpl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZAog
CiBSZWdpc3RlcklEKiBUaGlzTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBn
ZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICBpZiAoZ2VuZXJhdG9yLmNvbnN0cnVj
dG9yS2luZCgpID09IENvbnN0cnVjdG9yS2luZDo6RGVyaXZlZCAmJiBnZW5lcmF0b3IubmVlZHNU
b1VwZGF0ZUFycm93RnVuY3Rpb25Db250ZXh0KCkgJiYgZ2VuZXJhdG9yLmlzVGhpc1VzZWRJbklu
bmVyQXJyb3dGdW5jdGlvbigpKQorICAgIGlmIChnZW5lcmF0b3IuY29uc3RydWN0b3JLaW5kKCkg
PT0gQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkICYmIGdlbmVyYXRvci5uZWVkc1RvVXBkYXRlQXJy
b3dGdW5jdGlvbkNvbnRleHQoKSAmJiBnZW5lcmF0b3IuaXNTdXBlckNhbGxVc2VkSW5Jbm5lckFy
cm93RnVuY3Rpb24oKSkKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMb2FkVGhpc0Zyb21BcnJvd0Z1
bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCk7CiAKICAgICBpZiAobV9zaG91bGRBbHdheXNFbWl0
VERaQ2hlY2sgfHwgZ2VuZXJhdG9yLmNvbnN0cnVjdG9yS2luZCgpID09IENvbnN0cnVjdG9yS2lu
ZDo6RGVyaXZlZCB8fCBnZW5lcmF0b3IuaXNEZXJpdmVkQ29uc3RydWN0b3JDb250ZXh0KCkpCkBA
IC0zMTM4LDcgKzMxMzgsNyBAQCB2b2lkIEZ1bmN0aW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqKQogCiAgICAgICAgIC8vIElmIHRo
ZXJlIGlzIG5vIHJldHVybiB3ZSBtdXN0IGF1dG9tYXRpY2FsbHkgaW5zZXJ0IG9uZS4KICAgICAg
ICAgaWYgKCFyZXR1cm5Ob2RlKSB7Ci0gICAgICAgICAgICBpZiAoZ2VuZXJhdG9yLmNvbnN0cnVj
dG9yS2luZCgpID09IENvbnN0cnVjdG9yS2luZDo6RGVyaXZlZCAmJiBnZW5lcmF0b3IubmVlZHNU
b1VwZGF0ZUFycm93RnVuY3Rpb25Db250ZXh0KCkgJiYgZ2VuZXJhdG9yLmlzVGhpc1VzZWRJbklu
bmVyQXJyb3dGdW5jdGlvbigpKQorICAgICAgICAgICAgaWYgKGdlbmVyYXRvci5jb25zdHJ1Y3Rv
cktpbmQoKSA9PSBDb25zdHJ1Y3RvcktpbmQ6OkRlcml2ZWQgJiYgZ2VuZXJhdG9yLm5lZWRzVG9V
cGRhdGVBcnJvd0Z1bmN0aW9uQ29udGV4dCgpICYmIGdlbmVyYXRvci5pc1N1cGVyQ2FsbFVzZWRJ
bklubmVyQXJyb3dGdW5jdGlvbigpKQogICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TG9h
ZFRoaXNGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCgpOyAvLyBBcnJvdyBmdW5j
dGlvbiBjYW4gaW52b2tlICdzdXBlcicgaW4gY29uc3RydWN0b3IgYW5kIGJlZm9yZSBsZWF2ZSBj
b25zdHJ1Y3RvciB3ZSBuZWVkIGxvYWQgJ3RoaXMnIGZyb20gbGV4aWNhbCBhcnJvdyBmdW5jdGlv
biBlbnZpcm9ubWVudAogICAgICAgICAgICAgCiAgICAgICAgICAgICBSZWdpc3RlcklEKiByMCA9
IGdlbmVyYXRvci5pc0NvbnN0cnVjdG9yKCkgPyBnZW5lcmF0b3IudGhpc1JlZ2lzdGVyKCkgOiBn
ZW5lcmF0b3IuZW1pdExvYWQoMCwganNVbmRlZmluZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgKaW5kZXggNTc2ODZkNzgxNjdjNjc4ZDAwODFlZmQ0ZDM5NWE5YmZmNmYwZWZl
ZC4uNDQ5ZGQ4ODAyYjg1MjBhNDhhOGZiZWVmZjVkMWE1MGU2YThkN2MyNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMTU2OSwxMyArMTU2OSwxMyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdm9pZCBzZXRGZWF0dXJlcyhDb2RlRmVhdHVyZXMgZmVhdHVyZXMpIHsg
bV9mZWF0dXJlcyA9IGZlYXR1cmVzOyB9CiAgICAgICAgIENvZGVGZWF0dXJlcyBmZWF0dXJlcygp
IHsgcmV0dXJuIG1fZmVhdHVyZXM7IH0KICAgICAgICAgSW5uZXJBcnJvd0Z1bmN0aW9uQ29kZUZl
YXR1cmVzIGlubmVyQXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJlcygpIHsgcmV0dXJuIG1faW5uZXJB
cnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVzOyB9CisgICAgICAgIGJvb2wgZG9BbnlJbm5lckFycm93
RnVuY3Rpb25zVXNlQW55RmVhdHVyZSgpIHsgcmV0dXJuIG1faW5uZXJBcnJvd0Z1bmN0aW9uQ29k
ZUZlYXR1cmVzICE9IE5vSW5uZXJBcnJvd0Z1bmN0aW9uRmVhdHVyZXM7IH0KICAgICAgICAgYm9v
bCBkb0FueUlubmVyQXJyb3dGdW5jdGlvbnNVc2VBcmd1bWVudHMoKSB7IHJldHVybiBtX2lubmVy
QXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJlcyAmIEFyZ3VtZW50c0lubmVyQXJyb3dGdW5jdGlvbkZl
YXR1cmU7IH0KICAgICAgICAgYm9vbCBkb0FueUlubmVyQXJyb3dGdW5jdGlvbnNVc2VTdXBlckNh
bGwoKSB7IHJldHVybiBtX2lubmVyQXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJlcyAmIFN1cGVyQ2Fs
bElubmVyQXJyb3dGdW5jdGlvbkZlYXR1cmU7IH0KICAgICAgICAgYm9vbCBkb0FueUlubmVyQXJy
b3dGdW5jdGlvbnNVc2VTdXBlclByb3BlcnR5KCkgeyByZXR1cm4gbV9pbm5lckFycm93RnVuY3Rp
b25Db2RlRmVhdHVyZXMgJiBTdXBlclByb3BlcnR5SW5uZXJBcnJvd0Z1bmN0aW9uRmVhdHVyZTsg
fQogICAgICAgICBib29sIGRvQW55SW5uZXJBcnJvd0Z1bmN0aW9uc1VzZUV2YWwoKSB7IHJldHVy
biBtX2lubmVyQXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJlcyAmIEV2YWxJbm5lckFycm93RnVuY3Rp
b25GZWF0dXJlOyB9CiAgICAgICAgIGJvb2wgZG9BbnlJbm5lckFycm93RnVuY3Rpb25zVXNlVGhp
cygpIHsgcmV0dXJuIG1faW5uZXJBcnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVzICYgVGhpc0lubmVy
QXJyb3dGdW5jdGlvbkZlYXR1cmU7IH0KICAgICAgICAgYm9vbCBkb0FueUlubmVyQXJyb3dGdW5j
dGlvbnNVc2VOZXdUYXJnZXQoKSB7IHJldHVybiBtX2lubmVyQXJyb3dGdW5jdGlvbkNvZGVGZWF0
dXJlcyAmIE5ld1RhcmdldElubmVyQXJyb3dGdW5jdGlvbkZlYXR1cmU7IH0KLSAgICAgICAgYm9v
bCBkb0FueUlubmVyQXJyb3dGdW5jdGlvblVzZUFueUZlYXR1cmUoKSB7IHJldHVybiBtX2lubmVy
QXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJlcyAhPSBOb0lubmVyQXJyb3dGdW5jdGlvbkZlYXR1cmVz
OyB9CiAKICAgICAgICAgYm9vbCB1c2VzRXZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXMg
JiBFdmFsRmVhdHVyZTsgfQogICAgICAgICBib29sIHVzZXNBcmd1bWVudHMoKSBjb25zdCB7IHJl
dHVybiAobV9mZWF0dXJlcyAmIEFyZ3VtZW50c0ZlYXR1cmUpICYmICEobV9mZWF0dXJlcyAmIFNo
YWRvd3NBcmd1bWVudHNGZWF0dXJlKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLWxleGljYWwtYmluZC1zdXBlcmNhbGwtNC5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyb3dmdW5jdGlvbi1sZXhp
Y2FsLWJpbmQtc3VwZXJjYWxsLTQuanMKaW5kZXggYjA2ZmZlZjQ3ZGEyMDBkZDI4ZDJkNGFlZjc1
YzU1YmVjOTUyM2E0MC4uZDkzYmUzODkxNTQyMTMxMDg1ZjBjYjhhNmY0ZWEyMGM4MWMyZmFlZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0
aW9uLWxleGljYWwtYmluZC1zdXBlcmNhbGwtNC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Fycm93ZnVuY3Rpb24tbGV4aWNhbC1iaW5kLXN1cGVyY2FsbC00Lmpz
CkBAIC04MiwzICs4Miw2MCBAQCB2YXIgdGVzdEV4Y2VwdGlvbiA9IGZ1bmN0aW9uICh2YWx1ZSwg
aW5kZXgpIHsKIGZvciAodmFyIGk9MDsgaSA8IDEwMDA7IGkrKykgewogICAgIHRlc3RFeGNlcHRp
b24oZmFsc2UsIGkpOwogfQorCitjbGFzcyBGIGV4dGVuZHMgQSB7CisgICAgY29uc3RydWN0b3Io
KSB7CisgICAgICB2YXIgYXJyX2FmdGVyID0gKCkgPT4geworICAgICAgICB0aGlzLmlkVmFsdWUg
ID0gJ3RoaXMtdmFsdWUnOworICAgICAgfTsKKyAgICAgIHZhciBhcnJfYmVmb3JlID0gKCkgPT4g
eworICAgICAgICByZXR1cm4gJ25vdC1zb21lLXZhbHVlJzsKKyAgICAgIH07CisgICAgICBhcnJf
YmVmb3JlKCk7CisgICAgICBzdXBlcigpOworICAgICAgYXJyX2FmdGVyKCk7CisgICAgfQorfQor
CitsZXQgZiA9IG5ldyBGKCk7Cit0ZXN0Q2FzZShmLmlkVmFsdWUsICd0aGlzLXZhbHVlJywgJ0Vy
cm9yOiBub3QgY29ycmVjdCBiaW5kaW5nIG9mIHRoaXMgaW4gY29uc3RydWN0b3InKTsKKworY2xh
c3MgRyBleHRlbmRzIEEgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICB2YXIgYXJyX3Np
bXBsZSA9ICgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiAnbm90LXNvbWUtdmFsdWUnOworICAg
ICAgICB9OworICAgICAgICB2YXIgYXJyX3N1cGVyID0gKCkgPT4geworICAgICAgICAgICAgc3Vw
ZXIoKTsKKyAgICAgICAgfTsKKyAgICAgICAgYXJyX3NpbXBsZSgpOworICAgICAgICBhcnJfc3Vw
ZXIoKTsKKyAgICB9Cit9CisKK2xldCBnID0gbmV3IEcoKTsKK3Rlc3RDYXNlKGcuaWRWYWx1ZSwg
dGVzdFZhbHVlLCAnRXJyb3I6IG5vdCBjb3JyZWN0IGJpbmRpbmcgc3VwZXImdGhpcyBpbiBjb25z
dHJ1Y3RvcicpOworCitjbGFzcyBBX3RoaXNfUHJvcCBleHRlbmRzIEEgeworICAgIGdldFZhbHVl
ICgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuaWRWYWx1ZTsKKyAgICB9Cit9CisKK2NsYXNzIEgg
ZXh0ZW5kcyBBX3RoaXNfUHJvcCB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHZhciBh
cnJfc2ltcGxlID0gKCkgPT4geworICAgICAgICAgICAgcmV0dXJuICdub3Qtc29tZS12YWx1ZSc7
CisgICAgICAgIH07CisgICAgICAgIHZhciBhcnJfc3VwZXIgPSAoKSA9PiB7CisgICAgICAgICAg
ICBzdXBlcigpOworICAgICAgICB9OworICAgICAgICB2YXIgYXJyX3ZhbHVlID0gKCkgPT4gc3Vw
ZXIuZ2V0VmFsdWUoKTsKKyAgICAgICAgYXJyX3NpbXBsZSgpOworICAgICAgICBhcnJfc3VwZXIo
KTsKKyAgICAgICAgdGhpcy5zb21lVmFsdWUgPSBhcnJfdmFsdWUoKTsKKyAgICB9Cit9CisKK2xl
dCBoID0gbmV3IEgoKTsKK3Rlc3RDYXNlKGguc29tZVZhbHVlLCB0ZXN0VmFsdWUsICdFcnJvcjog
bm90IGNvcnJlY3QgYmluZGluZyBzdXBlclByb3BlcnR5JnRoaXMgaW4gY29uc3RydWN0b3InKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>