<?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>130312</bug_id>
          
          <creation_ts>2014-03-16 13:49:02 -0700</creation_ts>
          <short_desc>Use an anonymous union of std::unique_ptr members in SVGAnimatedType</short_desc>
          <delta_ts>2014-03-16 19:23:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991030</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-16 13:49:02 -0700</bug_when>
    <thetext>Use an anonymous union of std::unique_ptr members in SVGAnimatedType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991042</commentid>
    <comment_count>1</comment_count>
      <attachid>226861</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-16 14:49:57 -0700</bug_when>
    <thetext>Created attachment 226861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991067</commentid>
    <comment_count>2</comment_count>
      <attachid>226861</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-16 19:23:59 -0700</bug_when>
    <thetext>Comment on attachment 226861
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Make the union in SVGAnimatedType anonymous. The members of the union are now
&gt; +        std::unique_ptr objects instead of raw pointers, enabling simply moving the
&gt; +        passed-in std::unique_ptr objects in create*() methods.

Great idea, but looks like the Windows compiler does not support this advanced C++ feature yet.

Can’t do this unless we solve this problem on Windows.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226861</attachid>
            <date>2014-03-16 14:49:57 -0700</date>
            <delta_ts>2014-03-16 19:23:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130312-20140316144933.patch</filename>
            <type>text/plain</type>
            <size>22673</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NTcxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDE0LTAzLTE2ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVc2UgYW4gYW5vbnltb3Vz
IHVuaW9uIG9mIHN0ZDo6dW5pcXVlX3B0ciBtZW1iZXJzIGluIFNWR0FuaW1hdGVkVHlwZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMzEyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgdW5p
b24gaW4gU1ZHQW5pbWF0ZWRUeXBlIGFub255bW91cy4gVGhlIG1lbWJlcnMgb2YgdGhlIHVuaW9u
IGFyZSBub3cKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyIG9iamVjdHMgaW5zdGVhZCBvZiByYXcg
cG9pbnRlcnMsIGVuYWJsaW5nIHNpbXBseSBtb3ZpbmcgdGhlCisgICAgICAgIHBhc3NlZC1pbiBz
dGQ6OnVuaXF1ZV9wdHIgb2JqZWN0cyBpbiBjcmVhdGUqKCkgbWV0aG9kcy4KKworICAgICAgICBU
aGUgU1ZHQW5pbWF0ZWRUeXBlIGRlc3RydWN0b3IgaXMgZGV2aXJ0dWFsaXplZCBhbmQgbm93IGFz
c2lnbnMgYSBudWxscHRyIHRvCisgICAgICAgIGhlIHN0ZDo6dW5pcXVlX3B0ciBtZW1iZXIgZnJv
bSB0aGUgdW5pb24gdGhhdCB3YXMgaW4gdXNlIHRocm91Z2hvdXQgdGhlIG9iamVjdCdzCisgICAg
ICAgIGxpZmV0aW1lLCBtYXNraW5nIHRoZSBkZWxldGUgb3BlcmF0b3IuCisKKyAgICAgICAgKiBz
dmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6U1ZHQW5pbWF0ZWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
flNWR0FuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVCb29sZWFuKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVF
bnVtZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUlu
dGVnZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVu
Z3RoTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJl
cik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJPcHRpb25h
bE51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJh
dGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAgICogc3Zn
L1NWR0FuaW1hdGVkVHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjph
bmdsZUFuZEVudW1lcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
Ym9vbGVhbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNvbG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFR5cGU6Omxlbmd0aExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpu
dW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RSYXRpbyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OnJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpzdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0cmFuc2Zvcm1M
aXN0KToKKwogMjAxNC0wMy0xNiAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dm0oKSBzaG91bGQgcmV0dXJuIGEgcmVm
ZXJlbmNlLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAJKHJldmlz
aW9uIDE2NTcwOCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZH
QW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSkK
ICAgICA6IG1fdHlwZSh0eXBlKQorICAgICwgbV9hbmdsZUFuZEVudW1lcmF0aW9uKG51bGxwdHIp
CiB7CiB9CiAKQEAgLTM0LDU1ICszNSw1NSBAQCBTVkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRl
ZFR5cGUoKQogewogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBBbmltYXRlZEFuZ2xl
OgotICAgICAgICBkZWxldGUgbV9kYXRhLmFuZ2xlQW5kRW51bWVyYXRpb247CisgICAgICAgIG1f
YW5nbGVBbmRFbnVtZXJhdGlvbiA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QW5pbWF0ZWRCb29sZWFuOgotICAgICAgICBkZWxldGUgbV9kYXRhLmJvb2xlYW47CisgICAgICAg
IG1fYm9vbGVhbiA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRD
b2xvcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5jb2xvcjsKKyAgICAgICAgbV9jb2xvciA9IG51
bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAg
ICAgICAgZGVsZXRlIG1fZGF0YS5lbnVtZXJhdGlvbjsKKyAgICAgICAgbV9lbnVtZXJhdGlvbiA9
IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyOgotICAg
ICAgICBkZWxldGUgbV9kYXRhLmludGVnZXI7CisgICAgICAgIG1faW50ZWdlciA9IG51bGxwdHI7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
OgotICAgICAgICBkZWxldGUgbV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXI7CisgICAgICAg
IG1faW50ZWdlck9wdGlvbmFsSW50ZWdlciA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEubGVuZ3RoOworICAg
ICAgICBtX2xlbmd0aCA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0
ZWRMZW5ndGhMaXN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aExpc3Q7CisgICAgICAg
IG1fbGVuZ3RoTGlzdCA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0
ZWROdW1iZXI6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEubnVtYmVyOworICAgICAgICBtX251bWJl
ciA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0
OgotICAgICAgICBkZWxldGUgbV9kYXRhLm51bWJlckxpc3Q7CisgICAgICAgIG1fbnVtYmVyTGlz
dCA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRp
b25hbE51bWJlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsK
KyAgICAgICAgbV9udW1iZXJPcHRpb25hbE51bWJlciA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgotICAgICAgICBkZWxldGUgbV9kYXRhLnBhdGg7Cisg
ICAgICAgIG1fcGF0aCA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0
ZWRQb2ludHM6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucG9pbnRMaXN0OworICAgICAgICBtX3Bv
aW50TGlzdCA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvOgotICAgICAgICBkZWxldGUgbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0
aW87CisgICAgICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpbyA9IG51bGxwdHI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLnJlY3Q7
CisgICAgICAgIG1fcmVjdCA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5p
bWF0ZWRTdHJpbmc6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuc3RyaW5nOworICAgICAgICBtX3N0
cmluZyA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLnRyYW5zZm9ybUxpc3Q7CisgICAgICAgIG1f
dHJhbnNmb3JtTGlzdCA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0
ZWRVbmtub3duOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTk0LDcgKzk1LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbQogewogICAgIEFTU0VS
VChhbmdsZUFuZEVudW1lcmF0aW9uKTsKICAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFr
ZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEFuZ2xlKTsKLSAgICBhbmltYXRlZFR5
cGUtPm1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9uID0gYW5nbGVBbmRFbnVtZXJhdGlvbi5yZWxl
YXNlKCk7CisgICAgYW5pbWF0ZWRUeXBlLT5tX2FuZ2xlQW5kRW51bWVyYXRpb24gPSBzdGQ6Om1v
dmUoYW5nbGVBbmRFbnVtZXJhdGlvbik7CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKIH0KIApA
QCAtMTAyLDcgKzEwMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW0KIHsKICAgICBBU1NFUlQoYm9vbGVhbik7CiAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRCb29sZWFuKTsKLSAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5ib29sZWFuID0gYm9vbGVhbi5yZWxlYXNlKCk7CisgICAgYW5pbWF0
ZWRUeXBlLT5tX2Jvb2xlYW4gPSBzdGQ6Om1vdmUoYm9vbGVhbik7CiAgICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKIH0KIApAQCAtMTEwLDcgKzExMSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW0KIHsKICAgICBBU1NFUlQoY29sb3IpOwogICAgIGF1dG8gYW5pbWF0
ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkQ29sb3Ip
OwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmNvbG9yID0gY29sb3IucmVsZWFzZSgpOworICAg
IGFuaW1hdGVkVHlwZS0+bV9jb2xvciA9IHN0ZDo6bW92ZShjb2xvcik7CiAgICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKIH0KIApAQCAtMTE4LDcgKzExOSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW0KIHsKICAgICBBU1NFUlQoZW51bWVyYXRpb24pOwogICAgIGF1
dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1h
dGVkRW51bWVyYXRpb24pOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmVudW1lcmF0aW9uID0g
ZW51bWVyYXRpb24ucmVsZWFzZSgpOworICAgIGFuaW1hdGVkVHlwZS0+bV9lbnVtZXJhdGlvbiA9
IHN0ZDo6bW92ZShlbnVtZXJhdGlvbik7CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKIH0KIApA
QCAtMTI2LDcgKzEyNyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW0KIHsKICAgICBBU1NFUlQoaW50ZWdlcik7CiAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2VyKTsKLSAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyID0gaW50ZWdlci5yZWxlYXNlKCk7CisgICAgYW5pbWF0
ZWRUeXBlLT5tX2ludGVnZXIgPSBzdGQ6Om1vdmUoaW50ZWdlcik7CiAgICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKIH0KIApAQCAtMTM0LDcgKzEzNSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW0KIHsKICAgICBBU1NFUlQoaW50ZWdlck9wdGlvbmFsSW50ZWdlcik7
CiAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlw
ZT4oQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1f
ZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyID0gaW50ZWdlck9wdGlvbmFsSW50ZWdlci5yZWxl
YXNlKCk7CisgICAgYW5pbWF0ZWRUeXBlLT5tX2ludGVnZXJPcHRpb25hbEludGVnZXIgPSBzdGQ6
Om1vdmUoaW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
IH0KIApAQCAtMTQyLDcgKzE0Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW0KIHsKICAgICBBU1NFUlQobGVuZ3RoKTsKICAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZExlbmd0aCk7Ci0gICAg
YW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoID0gbGVuZ3RoLnJlbGVhc2UoKTsKKyAgICBhbmlt
YXRlZFR5cGUtPm1fbGVuZ3RoID0gc3RkOjptb3ZlKGxlbmd0aCk7CiAgICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKIH0KIApAQCAtMTUwLDcgKzE1MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW0KIHsKICAgICBBU1NFUlQobGVuZ3RoTGlzdCk7CiAgICAgYXV0byBh
bmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRM
ZW5ndGhMaXN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5sZW5ndGhMaXN0ID0gbGVuZ3Ro
TGlzdC5yZWxlYXNlKCk7CisgICAgYW5pbWF0ZWRUeXBlLT5tX2xlbmd0aExpc3QgPSBzdGQ6Om1v
dmUobGVuZ3RoTGlzdCk7CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKIH0KIApAQCAtMTU4LDcg
KzE1OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW0KIHsKICAg
ICBBU1NFUlQobnVtYmVyKTsKICAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEubnVtYmVyID0gbnVtYmVyLnJlbGVhc2UoKTsKKyAgICBhbmltYXRlZFR5cGUtPm1fbnVt
YmVyID0gc3RkOjptb3ZlKG51bWJlcik7CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKIH0KIApA
QCAtMTY2LDcgKzE2Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW0KIHsKICAgICBBU1NFUlQobnVtYmVyTGlzdCk7CiAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAg
ICBhbmltYXRlZFR5cGUtPm1fZGF0YS5udW1iZXJMaXN0ID0gbnVtYmVyTGlzdC5yZWxlYXNlKCk7
CisgICAgYW5pbWF0ZWRUeXBlLT5tX251bWJlckxpc3QgPSBzdGQ6Om1vdmUobnVtYmVyTGlzdCk7
CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKIH0KIApAQCAtMTc0LDcgKzE3NSw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW0KIHsKICAgICBBU1NFUlQobnVtYmVy
T3B0aW9uYWxOdW1iZXIpOwogICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1
ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgIGFu
aW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVyID0gbnVtYmVyT3B0aW9uYWxO
dW1iZXIucmVsZWFzZSgpOworICAgIGFuaW1hdGVkVHlwZS0+bV9udW1iZXJPcHRpb25hbE51bWJl
ciA9IHN0ZDo6bW92ZShudW1iZXJPcHRpb25hbE51bWJlcik7CiAgICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTsKIH0KIApAQCAtMTgyLDcgKzE4Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW0KIHsKICAgICBBU1NFUlQocGF0aCk7CiAgICAgYXV0byBhbmltYXRlZFR5
cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQYXRoKTsKLSAg
ICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wYXRoID0gcGF0aC5yZWxlYXNlKCk7CisgICAgYW5pbWF0
ZWRUeXBlLT5tX3BhdGggPSBzdGQ6Om1vdmUocGF0aCk7CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKIH0KIApAQCAtMTkwLDcgKzE5MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW0KIHsKICAgICBBU1NFUlQocG9pbnRMaXN0KTsKICAgICBhdXRvIGFuaW1hdGVk
VHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFBvaW50cyk7
Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucG9pbnRMaXN0ID0gcG9pbnRMaXN0LnJlbGVhc2Uo
KTsKKyAgICBhbmltYXRlZFR5cGUtPm1fcG9pbnRMaXN0ID0gc3RkOjptb3ZlKHBvaW50TGlzdCk7
CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKIH0KIApAQCAtMTk4LDcgKzE5OSw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW0KIHsKICAgICBBU1NFUlQocHJlc2Vy
dmVBc3BlY3RSYXRpbyk7CiAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVl
PFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJlc2VydmVBc3BlY3RSYXRp
by5yZWxlYXNlKCk7CisgICAgYW5pbWF0ZWRUeXBlLT5tX3ByZXNlcnZlQXNwZWN0UmF0aW8gPSBz
dGQ6Om1vdmUocHJlc2VydmVBc3BlY3RSYXRpbyk7CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
IH0KIApAQCAtMjA2LDcgKzIwNyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW0KIHsKICAgICBBU1NFUlQocmVjdCk7CiAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRSZWN0KTsKLSAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5yZWN0ID0gcmVjdC5yZWxlYXNlKCk7CisgICAgYW5pbWF0ZWRUeXBl
LT5tX3JlY3QgPSBzdGQ6Om1vdmUocmVjdCk7CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKIH0K
IApAQCAtMjE0LDcgKzIxNSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW0KIHsKICAgICBBU1NFUlQoc3RyaW5nKTsKICAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0
ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFN0cmluZyk7Ci0gICAgYW5p
bWF0ZWRUeXBlLT5tX2RhdGEuc3RyaW5nID0gc3RyaW5nLnJlbGVhc2UoKTsKKyAgICBhbmltYXRl
ZFR5cGUtPm1fc3RyaW5nID0gc3RkOjptb3ZlKHN0cmluZyk7CiAgICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTsKIH0KIApAQCAtMjIyLDcgKzIyMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW0KIHsKICAgICBBU1NFUlQodHJhbnNmb3JtTGlzdCk7CiAgICAgYXV0byBh
bmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS50cmFuc2Zvcm1MaXN0ID0g
dHJhbnNmb3JtTGlzdC5yZWxlYXNlKCk7CisgICAgYW5pbWF0ZWRUeXBlLT5tX3RyYW5zZm9ybUxp
c3QgPSBzdGQ6Om1vdmUodHJhbnNmb3JtTGlzdCk7CiAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
IH0KIApAQCAtMjMwLDI0ICsyMzEsMjQgQEAgU3RyaW5nIFNWR0FuaW1hdGVkVHlwZTo6dmFsdWVB
c1N0cmluZygpCiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNlIEFuaW1hdGVkQ29s
b3I6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuY29sb3IpOwotICAgICAgICByZXR1cm4gbV9kYXRh
LmNvbG9yLT5zZXJpYWxpemVkKCk7CisgICAgICAgIEFTU0VSVChtX2NvbG9yKTsKKyAgICAgICAg
cmV0dXJuIG1fY29sb3ItPnNlcmlhbGl6ZWQoKTsKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgot
ICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEubGVu
Z3RoLT52YWx1ZUFzU3RyaW5nKCk7CisgICAgICAgIEFTU0VSVChtX2xlbmd0aCk7CisgICAgICAg
IHJldHVybiBtX2xlbmd0aC0+dmFsdWVBc1N0cmluZygpOwogICAgIGNhc2UgQW5pbWF0ZWRMZW5n
dGhMaXN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aExpc3QpOwotICAgICAgICByZXR1
cm4gbV9kYXRhLmxlbmd0aExpc3QtPnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgQVNTRVJUKG1f
bGVuZ3RoTGlzdCk7CisgICAgICAgIHJldHVybiBtX2xlbmd0aExpc3QtPnZhbHVlQXNTdHJpbmco
KTsKICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBBU1NFUlQobV9kYXRhLm51bWJl
cik7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcigqbV9kYXRhLm51bWJlcik7CisgICAg
ICAgIEFTU0VSVChtX251bWJlcik7CisgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcigqbV9u
dW1iZXIpOwogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLnJl
Y3QpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPngoKSkgKyAn
ICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eSgpKSArICcgJwotICAgICAgICAgICAg
ICsgU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPndpZHRoKCkpICsgJyAnICsgU3RyaW5nOjpu
dW1iZXIobV9kYXRhLnJlY3QtPmhlaWdodCgpKTsKKyAgICAgICAgQVNTRVJUKG1fcmVjdCk7Cisg
ICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX3JlY3QtPngoKSkgKyAnICcgKyBTdHJpbmc6
Om51bWJlcihtX3JlY3QtPnkoKSkgKyAnICcKKyAgICAgICAgICAgICsgU3RyaW5nOjpudW1iZXIo
bV9yZWN0LT53aWR0aCgpKSArICcgJyArIFN0cmluZzo6bnVtYmVyKG1fcmVjdC0+aGVpZ2h0KCkp
OwogICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5n
KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuc3RyaW5nOworICAgICAgICBBU1NFUlQobV9zdHJp
bmcpOworICAgICAgICByZXR1cm4gKm1fc3RyaW5nOwogCiAgICAgLy8gVGhlc2UgdHlwZXMgZG9u
J3QgYXBwZWFyIGluIHRoZSB0YWJsZSBpbiBTVkdFbGVtZW50Ojpjc3NQcm9wZXJ0eVRvVHlwZU1h
cCgpIGFuZCB0aHVzIGRvbid0IG5lZWQgdmFsdWVBc1N0cmluZygpIHN1cHBvcnQuCiAgICAgY2Fz
ZSBBbmltYXRlZEFuZ2xlOgpAQCAtMjc0LDMwICsyNzUsMzAgQEAgYm9vbCBTVkdBbmltYXRlZFR5
cGU6OnNldFZhbHVlQXNTdHJpbmcoYwogewogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2Fz
ZSBBbmltYXRlZENvbG9yOgotICAgICAgICBBU1NFUlQobV9kYXRhLmNvbG9yKTsKLSAgICAgICAg
Km1fZGF0YS5jb2xvciA9IHZhbHVlLmlzRW1wdHkoKSA/IENvbG9yKCkgOiBTVkdDb2xvcjo6Y29s
b3JGcm9tUkdCQ29sb3JTdHJpbmcodmFsdWUpOworICAgICAgICBBU1NFUlQobV9jb2xvcik7Cisg
ICAgICAgICptX2NvbG9yID0gdmFsdWUuaXNFbXB0eSgpID8gQ29sb3IoKSA6IFNWR0NvbG9yOjpj
b2xvckZyb21SR0JDb2xvclN0cmluZyh2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QW5pbWF0ZWRMZW5ndGg6IHsKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOworICAgICAg
ICBBU1NFUlQobV9sZW5ndGgpOwogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAg
ICAgbV9kYXRhLmxlbmd0aC0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSwgU1ZHTGVuZ3RoOjpsZW5n
dGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpLCBlYyk7CisgICAgICAg
IG1fbGVuZ3RoLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLCBTVkdMZW5ndGg6Omxlbmd0aE1vZGVG
b3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSksIGVjKTsKICAgICAgICAgcmV0dXJu
ICFlYzsKICAgICB9CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIEFTU0VS
VChtX2RhdGEubGVuZ3RoTGlzdCk7Ci0gICAgICAgIG1fZGF0YS5sZW5ndGhMaXN0LT5wYXJzZSh2
YWx1ZSwgU1ZHTGVuZ3RoOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0
ck5hbWUpKTsKKyAgICAgICAgQVNTRVJUKG1fbGVuZ3RoTGlzdCk7CisgICAgICAgIG1fbGVuZ3Ro
TGlzdC0+cGFyc2UodmFsdWUsIFNWR0xlbmd0aDo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3Ro
QXR0cmlidXRlKGF0dHJOYW1lKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRO
dW1iZXI6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcGFyc2VOdW1i
ZXJGcm9tU3RyaW5nKHZhbHVlLCAqbV9kYXRhLm51bWJlcik7CisgICAgICAgIEFTU0VSVChtX251
bWJlcik7CisgICAgICAgIHBhcnNlTnVtYmVyRnJvbVN0cmluZyh2YWx1ZSwgKm1fbnVtYmVyKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFTU0VSVCht
X2RhdGEucmVjdCk7Ci0gICAgICAgIHBhcnNlUmVjdCh2YWx1ZSwgKm1fZGF0YS5yZWN0KTsKKyAg
ICAgICAgQVNTRVJUKG1fcmVjdCk7CisgICAgICAgIHBhcnNlUmVjdCh2YWx1ZSwgKm1fcmVjdCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VS
VChtX2RhdGEuc3RyaW5nKTsKLSAgICAgICAgKm1fZGF0YS5zdHJpbmcgPSB2YWx1ZTsKKyAgICAg
ICAgQVNTRVJUKG1fc3RyaW5nKTsKKyAgICAgICAgKm1fc3RyaW5nID0gdmFsdWU7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgLy8gVGhlc2UgdHlwZXMgZG9uJ3QgYXBwZWFyIGluIHRoZSB0YWJsZSBp
biBTVkdFbGVtZW50Ojpjc3NQcm9wZXJ0eVRvVHlwZU1hcCgpIGFuZCB0aHVzIGRvbid0IG5lZWQg
c2V0VmFsdWVBc1N0cmluZygpIHN1cHBvcnQuIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFR5cGUuaAkocmV2aXNpb24gMTY1NzA4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
U1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5SW5mby5oIgog
I2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3QuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNyArNDAsNyBAQCBjbGFzcyBTVkdBbmltYXRlZFR5cGUg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFNWR0FuaW1hdGVk
VHlwZShBbmltYXRlZFByb3BlcnR5VHlwZSk7Ci0gICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRUeXBl
KCk7CisgICAgflNWR0FuaW1hdGVkVHlwZSgpOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3RkOjp1bmlxdWVf
cHRyPHN0ZDo6cGFpcjxTVkdBbmdsZSwgdW5zaWduZWQ+Pik7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUJvb2xlYW4oc3RkOjp1bmlxdWVfcHRyPGJv
b2w+KTsKQEAgLTY2LDIwNiArNjcsMjA2IEBAIHB1YmxpYzoKICAgICBjb25zdCBzdGQ6OnBhaXI8
U1ZHQW5nbGUsIHVuc2lnbmVkPiYgYW5nbGVBbmRFbnVtZXJhdGlvbigpIGNvbnN0CiAgICAgewog
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQW5nbGUpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9uOworICAgICAgICByZXR1cm4gKm1fYW5nbGVBbmRF
bnVtZXJhdGlvbjsKICAgICB9CiAKICAgICBjb25zdCBib29sJiBib29sZWFuKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEuYm9vbGVhbjsKKyAgICAgICAgcmV0dXJuICptX2Jvb2xlYW47CiAgICAg
fQogCiAgICAgY29uc3QgQ29sb3ImIGNvbG9yKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWRDb2xvcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmNvbG9y
OworICAgICAgICByZXR1cm4gKm1fY29sb3I7CiAgICAgfQogCiAgICAgY29uc3QgdW5zaWduZWQm
IGVudW1lcmF0aW9uKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmVudW1lcmF0aW9uOwor
ICAgICAgICByZXR1cm4gKm1fZW51bWVyYXRpb247CiAgICAgfQogCiAgICAgY29uc3QgaW50JiBp
bnRlZ2VyKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJ
bnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlcjsKKyAgICAgICAgcmV0dXJu
ICptX2ludGVnZXI7CiAgICAgfQogCiAgICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgaW50
ZWdlck9wdGlvbmFsSW50ZWdlcigpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLmludGVnZXJPcHRpb25hbEludGVnZXI7CisgICAgICAgIHJldHVybiAqbV9pbnRlZ2VyT3B0
aW9uYWxJbnRlZ2VyOwogICAgIH0KIAogICAgIGNvbnN0IFNWR0xlbmd0aCYgbGVuZ3RoKCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGg7CisgICAgICAgIHJldHVybiAqbV9sZW5ndGg7CiAg
ICAgfQogCiAgICAgY29uc3QgU1ZHTGVuZ3RoTGlzdCYgbGVuZ3RoTGlzdCgpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLmxlbmd0aExpc3Q7CisgICAgICAgIHJldHVybiAqbV9sZW5ndGhMaXN0
OwogICAgIH0KIAogICAgIGNvbnN0IGZsb2F0JiBudW1iZXIoKSBjb25zdAogICAgIHsKICAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLm51bWJlcjsKKyAgICAgICAgcmV0dXJuICptX251bWJlcjsKICAgICB9CiAKICAgICBjb25z
dCBTVkdOdW1iZXJMaXN0JiBudW1iZXJMaXN0KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
bnVtYmVyTGlzdDsKKyAgICAgICAgcmV0dXJuICptX251bWJlckxpc3Q7CiAgICAgfQogCiAgICAg
Y29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIG51bWJlck9wdGlvbmFsTnVtYmVyKCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVyOwor
ICAgICAgICByZXR1cm4gKm1fbnVtYmVyT3B0aW9uYWxOdW1iZXI7CiAgICAgfQogCiAgICAgY29u
c3QgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGgoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZFBhdGgpOwotICAgICAgICByZXR1cm4gbV9kYXRhLnBhdGg7Cisg
ICAgICAgIHJldHVybiBtX3BhdGguZ2V0KCk7CiAgICAgfQogCiAgICAgY29uc3QgU1ZHUG9pbnRM
aXN0JiBwb2ludExpc3QoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBB
bmltYXRlZFBvaW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnBvaW50TGlzdDsKKyAgICAg
ICAgcmV0dXJuICptX3BvaW50TGlzdDsKICAgICB9CiAKICAgICBjb25zdCBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICAgICAgcmV0dXJuICptX3ByZXNl
cnZlQXNwZWN0UmF0aW87CiAgICAgfQogCiAgICAgY29uc3QgRmxvYXRSZWN0JiByZWN0KCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRSZWN0KTsKLSAgICAg
ICAgcmV0dXJuICptX2RhdGEucmVjdDsKKyAgICAgICAgcmV0dXJuICptX3JlY3Q7CiAgICAgfQog
CiAgICAgY29uc3QgU3RyaW5nJiBzdHJpbmcoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZFN0cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnN0cmlu
ZzsKKyAgICAgICAgcmV0dXJuICptX3N0cmluZzsKICAgICB9CiAKICAgICBjb25zdCBTVkdUcmFu
c2Zvcm1MaXN0JiB0cmFuc2Zvcm1MaXN0KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
dHJhbnNmb3JtTGlzdDsKKyAgICAgICAgcmV0dXJuICptX3RyYW5zZm9ybUxpc3Q7CiAgICAgfQog
CiAgICAgLy8gTXV0YWJsZSBhY2Nlc3NvcnMuCiAgICAgc3RkOjpwYWlyPFNWR0FuZ2xlLCB1bnNp
Z25lZD4mIGFuZ2xlQW5kRW51bWVyYXRpb24oKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYW5nbGVBbmRFbnVt
ZXJhdGlvbjsKKyAgICAgICAgcmV0dXJuICptX2FuZ2xlQW5kRW51bWVyYXRpb247CiAgICAgfQog
CiAgICAgYm9vbCYgYm9vbGVhbigpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkQm9vbGVhbik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmJvb2xlYW47CisgICAgICAg
IHJldHVybiAqbV9ib29sZWFuOwogICAgIH0KIAogICAgIENvbG9yJiBjb2xvcigpCiAgICAgewog
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQ29sb3IpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5jb2xvcjsKKyAgICAgICAgcmV0dXJuICptX2NvbG9yOwogICAgIH0KIAogICAgIHVu
c2lnbmVkJiBlbnVtZXJhdGlvbigpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkRW51bWVyYXRpb24pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5lbnVtZXJhdGlvbjsK
KyAgICAgICAgcmV0dXJuICptX2VudW1lcmF0aW9uOwogICAgIH0KIAogICAgIGludCYgaW50ZWdl
cigpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlcik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLmludGVnZXI7CisgICAgICAgIHJldHVybiAqbV9pbnRlZ2Vy
OwogICAgIH0KIAogICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIGludGVnZXJPcHRpb25hbEludGVn
ZXIoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXJPcHRp
b25hbEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRl
Z2VyOworICAgICAgICByZXR1cm4gKm1faW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKICAgICB9CiAK
ICAgICBTVkdMZW5ndGgmIGxlbmd0aCgpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09
IEFuaW1hdGVkTGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOworICAgICAg
ICByZXR1cm4gKm1fbGVuZ3RoOwogICAgIH0KIAogICAgIFNWR0xlbmd0aExpc3QmIGxlbmd0aExp
c3QoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aExpc3Qp
OwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGhMaXN0OworICAgICAgICByZXR1cm4gKm1f
bGVuZ3RoTGlzdDsKICAgICB9CiAKICAgICBmbG9hdCYgbnVtYmVyKCkKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5udW1iZXI7CisgICAgICAgIHJldHVybiAqbV9udW1iZXI7CiAgICAgfQogCiAgICAgU1ZHTnVt
YmVyTGlzdCYgbnVtYmVyTGlzdCgpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlckxpc3Q7Cisg
ICAgICAgIHJldHVybiAqbV9udW1iZXJMaXN0OwogICAgIH0KIAogICAgIHN0ZDo6cGFpcjxmbG9h
dCwgZmxvYXQ+JiBudW1iZXJPcHRpb25hbE51bWJlcigpCiAgICAgewogICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKKyAgICAgICAgcmV0dXJuICptX251bWJlck9w
dGlvbmFsTnVtYmVyOwogICAgIH0KIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBwYXRoKCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQYXRoKTsKLSAgICAgICAgcmV0
dXJuIG1fZGF0YS5wYXRoOworICAgICAgICByZXR1cm4gbV9wYXRoLmdldCgpOwogICAgIH0KIAog
ICAgIFNWR1BvaW50TGlzdCYgcG9pbnRMaXN0KCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRQb2ludHMpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5wb2ludExpc3Q7
CisgICAgICAgIHJldHVybiAqbV9wb2ludExpc3Q7CiAgICAgfQogCiAgICAgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpbyYgcHJlc2VydmVBc3BlY3RSYXRpbygpCiAgICAgewogICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgICAgIHJldHVybiAq
bV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgIHJldHVybiAqbV9wcmVzZXJ2ZUFz
cGVjdFJhdGlvOwogICAgIH0KIAogICAgIEZsb2F0UmVjdCYgcmVjdCgpCiAgICAgewogICAgICAg
ICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LnJlY3Q7CisgICAgICAgIHJldHVybiAqbV9yZWN0OwogICAgIH0KIAogICAgIFN0cmluZyYgc3Ry
aW5nKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRTdHJpbmcpOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAgIHJldHVybiAqbV9zdHJpbmc7
CiAgICAgfQogCiAgICAgU1ZHVHJhbnNmb3JtTGlzdCYgdHJhbnNmb3JtTGlzdCgpCiAgICAgewog
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLnRyYW5zZm9ybUxpc3Q7CisgICAgICAgIHJldHVybiAqbV90cmFuc2Zv
cm1MaXN0OwogICAgIH0KIAogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCk7CkBAIC0yNzQsMzAg
KzI3NSwyNSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIG1f
dHlwZTsKIAotICAgIHVuaW9uIERhdGFVbmlvbiB7Ci0gICAgICAgIERhdGFVbmlvbigpCi0gICAg
ICAgICAgICA6IGxlbmd0aCgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGQ6
OnBhaXI8U1ZHQW5nbGUsIHVuc2lnbmVkPiogYW5nbGVBbmRFbnVtZXJhdGlvbjsKLSAgICAgICAg
Ym9vbCogYm9vbGVhbjsKLSAgICAgICAgQ29sb3IqIGNvbG9yOwotICAgICAgICB1bnNpZ25lZCog
ZW51bWVyYXRpb247Ci0gICAgICAgIGludCogaW50ZWdlcjsKLSAgICAgICAgc3RkOjpwYWlyPGlu
dCwgaW50PiogaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICAgICAgU1ZHTGVuZ3RoKiBsZW5n
dGg7Ci0gICAgICAgIFNWR0xlbmd0aExpc3QqIGxlbmd0aExpc3Q7Ci0gICAgICAgIGZsb2F0KiBu
dW1iZXI7Ci0gICAgICAgIFNWR051bWJlckxpc3QqIG51bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6
cGFpcjxmbG9hdCwgZmxvYXQ+KiBudW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgU1ZHUGF0
aEJ5dGVTdHJlYW0qIHBhdGg7Ci0gICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8qIHByZXNl
cnZlQXNwZWN0UmF0aW87Ci0gICAgICAgIFNWR1BvaW50TGlzdCogcG9pbnRMaXN0OwotICAgICAg
ICBGbG9hdFJlY3QqIHJlY3Q7Ci0gICAgICAgIFN0cmluZyogc3RyaW5nOwotICAgICAgICBTVkdU
cmFuc2Zvcm1MaXN0KiB0cmFuc2Zvcm1MaXN0OwotICAgIH0gbV9kYXRhOworICAgIHVuaW9uIHsK
KyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxTVkdBbmdsZSwgdW5zaWduZWQ+PiBt
X2FuZ2xlQW5kRW51bWVyYXRpb247CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxib29sPiBtX2Jv
b2xlYW47CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvcj4gbV9jb2xvcjsKKyAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPHVuc2lnbmVkPiBtX2VudW1lcmF0aW9uOworICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8aW50PiBtX2ludGVnZXI7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBh
aXI8aW50LCBpbnQ+PiBtX2ludGVnZXJPcHRpb25hbEludGVnZXI7CisgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxTVkdMZW5ndGg+IG1fbGVuZ3RoOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
TGVuZ3RoTGlzdD4gbV9sZW5ndGhMaXN0OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8ZmxvYXQ+
IG1fbnVtYmVyOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHTnVtYmVyTGlzdD4gbV9udW1i
ZXJMaXN0OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+
IG1fbnVtYmVyT3B0aW9uYWxOdW1iZXI7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRo
Qnl0ZVN0cmVhbT4gbV9wYXRoOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUHJlc2VydmVB
c3BlY3RSYXRpbz4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHUG9pbnRMaXN0PiBtX3BvaW50TGlzdDsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEZs
b2F0UmVjdD4gbV9yZWN0OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPiBtX3N0cmlu
ZzsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR1RyYW5zZm9ybUxpc3Q+IG1fdHJhbnNmb3Jt
TGlzdDsKKyAgICB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="251100"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>