<?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>140401</bug_id>
          
          <creation_ts>2015-01-13 11:45:14 -0800</creation_ts>
          <short_desc>Make WTF::Optional work with msvc 2013</short_desc>
          <delta_ts>2015-01-13 13:21:46 -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>Web Template Framework</component>
          <version>528+ (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>140347</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1060868</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-13 11:45:14 -0800</bug_when>
    <thetext>Make WTF::Optional work with mdvc 2013 by using std::aligned_memory instead of an unrestricted union internally. MSVC 2013 still does not support unrestricted unions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060876</commentid>
    <comment_count>1</comment_count>
      <attachid>244531</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-13 11:57:20 -0800</bug_when>
    <thetext>Created attachment 244531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060884</commentid>
    <comment_count>2</comment_count>
      <attachid>244531</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-01-13 12:02:43 -0800</bug_when>
    <thetext>Comment on attachment 244531
Patch

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

&gt; Source/WTF/wtf/Optional.h:65
&gt; +            new (&amp;m_value) T(*other.asPtr());

I still think you want NotNull here.

&gt; Source/WTF/wtf/Optional.h:72
&gt; +            new (&amp;m_value) T(WTF::move(*other.asPtr()));

I still think you want NotNull here.

&gt; Source/WTF/wtf/Optional.h:78
&gt; +        new (&amp;m_value) T(WTF::move(value));

NotNull.

&gt; Source/WTF/wtf/Optional.h:85
&gt; +        new (&amp;m_value) T(std::forward&lt;Args&gt;(args)...);

NotNull.

&gt; Source/WTF/wtf/Optional.h:106
&gt; +            new (&amp;m_value) T(*other.asPtr());

NotNull.

&gt; Source/WTF/wtf/Optional.h:-138
&gt; -    template&lt;typename U&gt;
&gt; -    Optional&amp; operator=(U&amp;&amp; u)

What happened to this overload?

&gt; Source/WTF/wtf/Optional.h:119
&gt; +            new (&amp;m_value) T(WTF::move(*other.asPtr()));

NotNull.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060894</commentid>
    <comment_count>3</comment_count>
      <attachid>244535</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-13 12:22:51 -0800</bug_when>
    <thetext>Created attachment 244535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060895</commentid>
    <comment_count>4</comment_count>
      <attachid>244531</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-13 12:24:15 -0800</bug_when>
    <thetext>Comment on attachment 244531
Patch

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

&gt;&gt; Source/WTF/wtf/Optional.h:65
&gt;&gt; +            new (&amp;m_value) T(*other.asPtr());
&gt; 
&gt; I still think you want NotNull here.

Right, done.

&gt;&gt; Source/WTF/wtf/Optional.h:-138
&gt;&gt; -    Optional&amp; operator=(U&amp;&amp; u)
&gt; 
&gt; What happened to this overload?

I had trouble getting it to build initially and forgot to add it back. It is back in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060905</commentid>
    <comment_count>5</comment_count>
      <attachid>244535</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-13 13:21:40 -0800</bug_when>
    <thetext>Comment on attachment 244535
Patch

Clearing flags on attachment: 244535

Committed r178372: &lt;http://trac.webkit.org/changeset/178372&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060906</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-13 13:21:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244531</attachid>
            <date>2015-01-13 11:57:20 -0800</date>
            <delta_ts>2015-01-13 12:22:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140401-20150113115725.patch</filename>
            <type>text/plain</type>
            <size>5264</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZiZjZmYTVjNjNiZTUwZDhhYjJmMGVk
MTViYjdkNGI1NzRkMDQ4YmQuLjFjMWE3OTBhNGY5ODAzNjQ3NTEzYzdiZTYxMTE5MmJmODM2YjVj
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTUtMDEtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFdURjo6T3B0aW9uYWwgd29yayB3aXRoIG1zdmMg
MjAxMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQw
NDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlIHRoZSBXVEY6Ok9wdGlvbmFsIGltcGxlbWVudGF0aW9uIHRvIHVzZSBzdGQ6OmFsaWduZWRf
bWVtb3J5IGFuZAorICAgICAgICBwbGFjZW1lbnQgbmV3IGluc3RlYWQgb2YgYW4gdW5yZXN0cmlj
dGVkIHVuaW9uIGJlY2F1c2UgbXN2YyAyMDEzIHN0aWxsCisgICAgICAgIGRvZXNuJ3Qgc3VwcG9y
dCB1bnJlc3RyaWN0ZWQgdW5pb25zLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGlzIGEgcHJlLXJl
cXVpcmVtZW50IHRvIGZpeCBCdWcgMTQwMzQ3IGFzIHRoaXMgY2hhbmdlIHVzZXMKKyAgICAgICAg
V1RGOjpPcHRpb25hbCB3aXRoIHR5cGVzIHRoYXQgaGF2ZSBub24tdHJpdmlhbCBjb3B5IGNvbnN0
cnVjdG9ycy4KKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBjb3ZlcmVkIGJ5IHRoZSBleGlzdGlu
ZyBPcHRpb25hbCBXVEYgdGVzdC4KKworICAgICAgICAqIHd0Zi9PcHRpb25hbC5oOgorICAgICAg
ICAoV1RGOjpPcHRpb25hbDo6T3B0aW9uYWwpOgorICAgICAgICAoV1RGOjpPcHRpb25hbDo6fk9w
dGlvbmFsKToKKyAgICAgICAgKFdURjo6T3B0aW9uYWw6Om9wZXJhdG9yPSk6CisgICAgICAgIChX
VEY6Ok9wdGlvbmFsOjp2YWx1ZSk6CisgICAgICAgIChXVEY6Ok9wdGlvbmFsOjp2YWx1ZU9yKToK
KyAgICAgICAgKFdURjo6T3B0aW9uYWw6OmFzUHRyKToKKyAgICAgICAgKFdURjo6T3B0aW9uYWw6
OmRlc3Ryb3kpOgorCiAyMDE1LTAxLTExICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIFNoYXJlZFdvcmtlcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL09wdGlvbmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCmluZGV4
IDU4NjJkZTY2MjhlZGQ3YTdjZjRmNDk0YjNkZmUwYjk5OWY1NWJiZGMuLjYwZjY5YWNiZDUzYjI5
NjRhMTFhZWFhZWFkYTc2MzRmOTg4N2IwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09w
dGlvbmFsLmgKKysrIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaApAQCAtNTQsOTYgKzU0LDcx
IEBAIHB1YmxpYzoKIAogICAgIE9wdGlvbmFsKGNvbnN0IFQmIHZhbHVlKQogICAgICAgICA6IG1f
aXNFbmdhZ2VkKHRydWUpCi0gICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CisgICAgICAg
IG5ldyAoJm1fdmFsdWUpIFQodmFsdWUpOwogICAgIH0KIAogICAgIE9wdGlvbmFsKGNvbnN0IE9w
dGlvbmFsJiBvdGhlcikKICAgICAgICAgOiBtX2lzRW5nYWdlZChvdGhlci5tX2lzRW5nYWdlZCkK
ICAgICB7CiAgICAgICAgIGlmIChtX2lzRW5nYWdlZCkKLSAgICAgICAgICAgIG5ldyAoTm90TnVs
bCwgc3RkOjphZGRyZXNzb2YobV92YWx1ZSkpIFQob3RoZXIubV92YWx1ZSk7CisgICAgICAgICAg
ICBuZXcgKCZtX3ZhbHVlKSBUKCpvdGhlci5hc1B0cigpKTsKICAgICB9CiAKICAgICBPcHRpb25h
bChPcHRpb25hbCYmIG90aGVyKQogICAgICAgICA6IG1faXNFbmdhZ2VkKG90aGVyLm1faXNFbmdh
Z2VkKQogICAgIHsKICAgICAgICAgaWYgKG1faXNFbmdhZ2VkKQotICAgICAgICAgICAgbmV3IChO
b3ROdWxsLCBzdGQ6OmFkZHJlc3NvZihtX3ZhbHVlKSkgVChXVEY6Om1vdmUob3RoZXIubV92YWx1
ZSkpOworICAgICAgICAgICAgbmV3ICgmbV92YWx1ZSkgVChXVEY6Om1vdmUoKm90aGVyLmFzUHRy
KCkpKTsKICAgICB9CiAKICAgICBPcHRpb25hbChUJiYgdmFsdWUpCiAgICAgICAgIDogbV9pc0Vu
Z2FnZWQodHJ1ZSkKLSAgICAgICAgLCBtX3ZhbHVlKFdURjo6bW92ZSh2YWx1ZSkpCiAgICAgewor
ICAgICAgICBuZXcgKCZtX3ZhbHVlKSBUKFdURjo6bW92ZSh2YWx1ZSkpOwogICAgIH0KIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CiAgICAgT3B0aW9uYWwoSW5QbGFjZVRhZywgQXJn
cyYmLi4uIGFyZ3MpCiAgICAgICAgIDogbV9pc0VuZ2FnZWQodHJ1ZSkKLSAgICAgICAgLCBtX3Zh
bHVlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikKICAgICB7CisgICAgICAgIG5ldyAoJm1f
dmFsdWUpIFQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICB9CiAKICAgICB+T3B0
aW9uYWwoKQogICAgIHsKLSAgICAgICAgaWYgKG1faXNFbmdhZ2VkKQotICAgICAgICAgICAgbV92
YWx1ZS5+VCgpOworICAgICAgICBkZXN0cm95KCk7CiAgICAgfQogCiAgICAgT3B0aW9uYWwmIG9w
ZXJhdG9yPShOdWxsb3B0VGFnKQogICAgIHsKLSAgICAgICAgaWYgKG1faXNFbmdhZ2VkKSB7Ci0g
ICAgICAgICAgICBtX3ZhbHVlLn5UKCk7Ci0gICAgICAgICAgICBtX2lzRW5nYWdlZCA9IGZhbHNl
OwotICAgICAgICB9CisgICAgICAgIGRlc3Ryb3koKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwog
ICAgIH0KIAogICAgIE9wdGlvbmFsJiBvcGVyYXRvcj0oY29uc3QgT3B0aW9uYWwmIG90aGVyKQog
ICAgIHsKLSAgICAgICAgaWYgKG1faXNFbmdhZ2VkID09IG90aGVyLm1faXNFbmdhZ2VkKSB7Ci0g
ICAgICAgICAgICBpZiAobV9pc0VuZ2FnZWQpCi0gICAgICAgICAgICAgICAgbV92YWx1ZSA9IG90
aGVyLm1fdmFsdWU7CisgICAgICAgIGlmICh0aGlzID09ICZvdGhlcikKICAgICAgICAgICAgIHJl
dHVybiAqdGhpczsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtX2lzRW5nYWdlZCkKLSAgICAg
ICAgICAgIG1fdmFsdWUuflQoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV3IChOb3RO
dWxsLCBzdGQ6OmFkZHJlc3NvZihtX3ZhbHVlKSkgVChvdGhlci5tX3ZhbHVlKTsKLSAgICAgICAg
bV9pc0VuZ2FnZWQgPSBvdGhlci5tX2lzRW5nYWdlZDsKIAorICAgICAgICBkZXN0cm95KCk7Cisg
ICAgICAgIGlmIChvdGhlci5tX2lzRW5nYWdlZCkgeworICAgICAgICAgICAgbmV3ICgmbV92YWx1
ZSkgVCgqb3RoZXIuYXNQdHIoKSk7CisgICAgICAgICAgICBtX2lzRW5nYWdlZCA9IHRydWU7Cisg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAogICAgIE9wdGlvbmFsJiBv
cGVyYXRvcj0oT3B0aW9uYWwmJiBvdGhlcikKICAgICB7Ci0gICAgICAgIGlmIChtX2lzRW5nYWdl
ZCA9PSBvdGhlci5tX2lzRW5nYWdlZCkgewotICAgICAgICAgICAgaWYgKG1faXNFbmdhZ2VkKQot
ICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBXVEY6Om1vdmUob3RoZXIubV92YWx1ZSk7CisgICAg
ICAgIGlmICh0aGlzID09ICZvdGhlcikKICAgICAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmIChtX2lzRW5nYWdlZCkKLSAgICAgICAgICAgIG1fdmFsdWUuflQo
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJlc3Nv
ZihtX3ZhbHVlKSkgVChXVEY6Om1vdmUob3RoZXIubV92YWx1ZSkpOwotICAgICAgICBtX2lzRW5n
YWdlZCA9IG90aGVyLm1faXNFbmdhZ2VkOwogCi0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9
Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgotICAgIE9wdGlvbmFsJiBvcGVyYXRvcj0oVSYm
IHUpCi0gICAgewotICAgICAgICBpZiAobV9pc0VuZ2FnZWQpIHsKLSAgICAgICAgICAgIG1fdmFs
dWUgPSBzdGQ6OmZvcndhcmQ8VT4odSk7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAg
ICAgIGRlc3Ryb3koKTsKKyAgICAgICAgaWYgKG90aGVyLm1faXNFbmdhZ2VkKSB7CisgICAgICAg
ICAgICBuZXcgKCZtX3ZhbHVlKSBUKFdURjo6bW92ZSgqb3RoZXIuYXNQdHIoKSkpOworICAgICAg
ICAgICAgbV9pc0VuZ2FnZWQgPSB0cnVlOwogICAgICAgICB9Ci0KLSAgICAgICAgbmV3IChOb3RO
dWxsLCBzdGQ6OmFkZHJlc3NvZihtX3ZhbHVlKSkgVChzdGQ6OmZvcndhcmQ8VT4odSkpOwotICAg
ICAgICBtX2lzRW5nYWdlZCA9IHRydWU7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAK
QEAgLTE1MiwyOSArMTI3LDM3IEBAIHB1YmxpYzoKICAgICBUJiB2YWx1ZSgpCiAgICAgewogICAg
ICAgICBBU1NFUlQobV9pc0VuZ2FnZWQpOwotICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICAg
ICAgcmV0dXJuICphc1B0cigpOwogICAgIH0KIAogICAgIGNvbnN0IFQmIHZhbHVlKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIEFTU0VSVChtX2lzRW5nYWdlZCk7Ci0gICAgICAgIHJldHVybiBtX3Zh
bHVlOworICAgICAgICByZXR1cm4gKmFzUHRyKCk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVT4KICAgICBUIHZhbHVlT3IoVSYmIHZhbHVlKSBjb25zdAogICAgIHsKICAgICAgICAg
aWYgKG1faXNFbmdhZ2VkKQotICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CisgICAgICAgICAg
ICByZXR1cm4gKmFzUHRyKCk7CiAKICAgICAgICAgcmV0dXJuIHN0ZDo6Zm9yd2FyZDxVPih2YWx1
ZSk7CiAgICAgfQogCiBwcml2YXRlOgorICAgIGNvbnN0IFQqIGFzUHRyKCkgY29uc3QgeyByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBUKj4oJm1fdmFsdWUpOyB9CisgICAgVCogYXNQdHIo
KSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFQqPigmbV92YWx1ZSk7IH0KKyAgICB2b2lkIGRl
c3Ryb3koKQorICAgIHsKKyAgICAgICAgaWYgKG1faXNFbmdhZ2VkKSB7CisgICAgICAgICAgICBh
c1B0cigpLT5+VCgpOworICAgICAgICAgICAgbV9pc0VuZ2FnZWQgPSBmYWxzZTsKKyAgICAgICAg
fQorICAgIH0KKwogICAgIGJvb2wgbV9pc0VuZ2FnZWQ7Ci0gICAgdW5pb24gewotICAgICAgICBU
IG1fdmFsdWU7Ci0gICAgfTsKKyAgICB0eXBlbmFtZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXpl
b2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZT46OnR5cGUgbV92YWx1ZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244535</attachid>
            <date>2015-01-13 12:22:51 -0800</date>
            <delta_ts>2015-01-13 13:21:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140401-20150113122256.patch</filename>
            <type>text/plain</type>
            <size>5166</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZiZjZmYTVjNjNiZTUwZDhhYjJmMGVk
MTViYjdkNGI1NzRkMDQ4YmQuLjY4ZTY0NDVmNTI2MjQyY2NhYWYzNjFjNzFlNjlmZDZmYjg2Mjdi
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDEtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFdURjo6T3B0aW9uYWwgd29yayB3aXRoIG1zdmMg
MjAxMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQw
NDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlIHRoZSBXVEY6Ok9wdGlvbmFsIGltcGxlbWVudGF0aW9uIHRvIHVzZSBzdGQ6OmFsaWduZWRf
bWVtb3J5IGFuZAorICAgICAgICBwbGFjZW1lbnQgbmV3IGluc3RlYWQgb2YgYW4gdW5yZXN0cmlj
dGVkIHVuaW9uIGJlY2F1c2UgbXN2YyAyMDEzIHN0aWxsCisgICAgICAgIGRvZXNuJ3Qgc3VwcG9y
dCB1bnJlc3RyaWN0ZWQgdW5pb25zLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGlzIGEgcHJlLXJl
cXVpcmVtZW50IHRvIGZpeCBCdWcgMTQwMzQ3IGFzIHRoaXMgY2hhbmdlIHVzZXMKKyAgICAgICAg
V1RGOjpPcHRpb25hbCB3aXRoIHR5cGVzIHRoYXQgaGF2ZSBub24tdHJpdmlhbCBjb3B5IGNvbnN0
cnVjdG9ycy4KKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBjb3ZlcmVkIGJ5IHRoZSBleGlzdGlu
ZyBPcHRpb25hbCBXVEYgdGVzdC4KKworICAgICAgICAqIHd0Zi9PcHRpb25hbC5oOgorCiAyMDE1
LTAxLTExICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHN1
cHBvcnQgZm9yIFNoYXJlZFdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL09wdGlv
bmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCmluZGV4IDU4NjJkZTY2MjhlZGQ3YTdj
ZjRmNDk0YjNkZmUwYjk5OWY1NWJiZGMuLmFmODQ2MTcxODU4MDQ5YTMxZTk3ZjRjYWMzMzRlODYz
MjlkNDA1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKKysrIGIvU291
cmNlL1dURi93dGYvT3B0aW9uYWwuaApAQCAtNTQsOTUgKzU0LDc5IEBAIHB1YmxpYzoKIAogICAg
IE9wdGlvbmFsKGNvbnN0IFQmIHZhbHVlKQogICAgICAgICA6IG1faXNFbmdhZ2VkKHRydWUpCi0g
ICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CisgICAgICAgIG5ldyAoTm90TnVsbCwgJm1f
dmFsdWUpIFQodmFsdWUpOwogICAgIH0KIAogICAgIE9wdGlvbmFsKGNvbnN0IE9wdGlvbmFsJiBv
dGhlcikKICAgICAgICAgOiBtX2lzRW5nYWdlZChvdGhlci5tX2lzRW5nYWdlZCkKICAgICB7CiAg
ICAgICAgIGlmIChtX2lzRW5nYWdlZCkKLSAgICAgICAgICAgIG5ldyAoTm90TnVsbCwgc3RkOjph
ZGRyZXNzb2YobV92YWx1ZSkpIFQob3RoZXIubV92YWx1ZSk7CisgICAgICAgICAgICBuZXcgKE5v
dE51bGwsICZtX3ZhbHVlKSBUKCpvdGhlci5hc1B0cigpKTsKICAgICB9CiAKICAgICBPcHRpb25h
bChPcHRpb25hbCYmIG90aGVyKQogICAgICAgICA6IG1faXNFbmdhZ2VkKG90aGVyLm1faXNFbmdh
Z2VkKQogICAgIHsKICAgICAgICAgaWYgKG1faXNFbmdhZ2VkKQotICAgICAgICAgICAgbmV3IChO
b3ROdWxsLCBzdGQ6OmFkZHJlc3NvZihtX3ZhbHVlKSkgVChXVEY6Om1vdmUob3RoZXIubV92YWx1
ZSkpOworICAgICAgICAgICAgbmV3IChOb3ROdWxsLCAmbV92YWx1ZSkgVChXVEY6Om1vdmUoKm90
aGVyLmFzUHRyKCkpKTsKICAgICB9CiAKICAgICBPcHRpb25hbChUJiYgdmFsdWUpCiAgICAgICAg
IDogbV9pc0VuZ2FnZWQodHJ1ZSkKLSAgICAgICAgLCBtX3ZhbHVlKFdURjo6bW92ZSh2YWx1ZSkp
CiAgICAgeworICAgICAgICBuZXcgKE5vdE51bGwsICZtX3ZhbHVlKSBUKFdURjo6bW92ZSh2YWx1
ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CiAgICAgT3B0aW9u
YWwoSW5QbGFjZVRhZywgQXJncyYmLi4uIGFyZ3MpCiAgICAgICAgIDogbV9pc0VuZ2FnZWQodHJ1
ZSkKLSAgICAgICAgLCBtX3ZhbHVlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikKICAgICB7
CisgICAgICAgIG5ldyAoTm90TnVsbCwgJm1fdmFsdWUpIFQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFy
Z3MpLi4uKTsKICAgICB9CiAKICAgICB+T3B0aW9uYWwoKQogICAgIHsKLSAgICAgICAgaWYgKG1f
aXNFbmdhZ2VkKQotICAgICAgICAgICAgbV92YWx1ZS5+VCgpOworICAgICAgICBkZXN0cm95KCk7
CiAgICAgfQogCiAgICAgT3B0aW9uYWwmIG9wZXJhdG9yPShOdWxsb3B0VGFnKQogICAgIHsKLSAg
ICAgICAgaWYgKG1faXNFbmdhZ2VkKSB7Ci0gICAgICAgICAgICBtX3ZhbHVlLn5UKCk7Ci0gICAg
ICAgICAgICBtX2lzRW5nYWdlZCA9IGZhbHNlOwotICAgICAgICB9CisgICAgICAgIGRlc3Ryb3ko
KTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAogICAgIE9wdGlvbmFsJiBvcGVyYXRv
cj0oY29uc3QgT3B0aW9uYWwmIG90aGVyKQogICAgIHsKLSAgICAgICAgaWYgKG1faXNFbmdhZ2Vk
ID09IG90aGVyLm1faXNFbmdhZ2VkKSB7Ci0gICAgICAgICAgICBpZiAobV9pc0VuZ2FnZWQpCi0g
ICAgICAgICAgICAgICAgbV92YWx1ZSA9IG90aGVyLm1fdmFsdWU7CisgICAgICAgIGlmICh0aGlz
ID09ICZvdGhlcikKICAgICAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgICAgfQotCi0gICAg
ICAgIGlmIChtX2lzRW5nYWdlZCkKLSAgICAgICAgICAgIG1fdmFsdWUuflQoKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgbmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJlc3NvZihtX3ZhbHVlKSkg
VChvdGhlci5tX3ZhbHVlKTsKLSAgICAgICAgbV9pc0VuZ2FnZWQgPSBvdGhlci5tX2lzRW5nYWdl
ZDsKIAorICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIGlmIChvdGhlci5tX2lzRW5nYWdlZCkg
eworICAgICAgICAgICAgbmV3IChOb3ROdWxsLCAmbV92YWx1ZSkgVCgqb3RoZXIuYXNQdHIoKSk7
CisgICAgICAgICAgICBtX2lzRW5nYWdlZCA9IHRydWU7CisgICAgICAgIH0KICAgICAgICAgcmV0
dXJuICp0aGlzOwogICAgIH0KIAogICAgIE9wdGlvbmFsJiBvcGVyYXRvcj0oT3B0aW9uYWwmJiBv
dGhlcikKICAgICB7Ci0gICAgICAgIGlmIChtX2lzRW5nYWdlZCA9PSBvdGhlci5tX2lzRW5nYWdl
ZCkgewotICAgICAgICAgICAgaWYgKG1faXNFbmdhZ2VkKQotICAgICAgICAgICAgICAgIG1fdmFs
dWUgPSBXVEY6Om1vdmUob3RoZXIubV92YWx1ZSk7CisgICAgICAgIGlmICh0aGlzID09ICZvdGhl
cikKICAgICAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICht
X2lzRW5nYWdlZCkKLSAgICAgICAgICAgIG1fdmFsdWUuflQoKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgbmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJlc3NvZihtX3ZhbHVlKSkgVChXVEY6Om1v
dmUob3RoZXIubV92YWx1ZSkpOwotICAgICAgICBtX2lzRW5nYWdlZCA9IG90aGVyLm1faXNFbmdh
Z2VkOwogCisgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgaWYgKG90aGVyLm1faXNFbmdhZ2Vk
KSB7CisgICAgICAgICAgICBuZXcgKE5vdE51bGwsICZtX3ZhbHVlKSBUKFdURjo6bW92ZSgqb3Ro
ZXIuYXNQdHIoKSkpOworICAgICAgICAgICAgbV9pc0VuZ2FnZWQgPSB0cnVlOworICAgICAgICB9
CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBV
PgogICAgIE9wdGlvbmFsJiBvcGVyYXRvcj0oVSYmIHUpCiAgICAgewotICAgICAgICBpZiAobV9p
c0VuZ2FnZWQpIHsKLSAgICAgICAgICAgIG1fdmFsdWUgPSBzdGQ6OmZvcndhcmQ8VT4odSk7Ci0g
ICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLQotICAgICAgICBuZXcgKE5vdE51
bGwsIHN0ZDo6YWRkcmVzc29mKG1fdmFsdWUpKSBUKHN0ZDo6Zm9yd2FyZDxVPih1KSk7CisgICAg
ICAgIGRlc3Ryb3koKTsKKyAgICAgICAgbmV3IChOb3ROdWxsLCAmbV92YWx1ZSkgVChzdGQ6OmZv
cndhcmQ8VT4odSkpOwogICAgICAgICBtX2lzRW5nYWdlZCA9IHRydWU7CiAgICAgICAgIHJldHVy
biAqdGhpczsKICAgICB9CkBAIC0xNTIsMjkgKzEzNiwzNyBAQCBwdWJsaWM6CiAgICAgVCYgdmFs
dWUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1faXNFbmdhZ2VkKTsKLSAgICAgICAgcmV0dXJu
IG1fdmFsdWU7CisgICAgICAgIHJldHVybiAqYXNQdHIoKTsKICAgICB9CiAKICAgICBjb25zdCBU
JiB2YWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9pc0VuZ2FnZWQpOwotICAg
ICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICAgICAgcmV0dXJuICphc1B0cigpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CiAgICAgVCB2YWx1ZU9yKFUmJiB2YWx1ZSkgY29uc3QK
ICAgICB7CiAgICAgICAgIGlmIChtX2lzRW5nYWdlZCkKLSAgICAgICAgICAgIHJldHVybiBtX3Zh
bHVlOworICAgICAgICAgICAgcmV0dXJuICphc1B0cigpOwogCiAgICAgICAgIHJldHVybiBzdGQ6
OmZvcndhcmQ8VT4odmFsdWUpOwogICAgIH0KIAogcHJpdmF0ZToKKyAgICBjb25zdCBUKiBhc1B0
cigpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVCo+KCZtX3ZhbHVlKTsg
fQorICAgIFQqIGFzUHRyKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUKj4oJm1fdmFsdWUp
OyB9CisgICAgdm9pZCBkZXN0cm95KCkKKyAgICB7CisgICAgICAgIGlmIChtX2lzRW5nYWdlZCkg
eworICAgICAgICAgICAgYXNQdHIoKS0+flQoKTsKKyAgICAgICAgICAgIG1faXNFbmdhZ2VkID0g
ZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKICAgICBib29sIG1faXNFbmdhZ2VkOwotICAgIHVu
aW9uIHsKLSAgICAgICAgVCBtX3ZhbHVlOwotICAgIH07CisgICAgdHlwZW5hbWUgc3RkOjphbGln
bmVkX3N0b3JhZ2U8c2l6ZW9mKFQpLCBzdGQ6OmFsaWdubWVudF9vZjxUPjo6dmFsdWU+Ojp0eXBl
IG1fdmFsdWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>

          </attachment>
      

    </bug>

</bugzilla>