<?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>164614</bug_id>
          
          <creation_ts>2016-11-10 13:51:49 -0800</creation_ts>
          <short_desc>[Win][Direct2D] Add transparency layer support</short_desc>
          <delta_ts>2016-11-10 17:02:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>dino</cc>
    
    <cc>pvollan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1249963</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-10 13:51:49 -0800</bug_when>
    <thetext>The initial D2D implementation did not properly support the begin/end transparency layer logic, causing tests like &apos;fast/layers/opacity-stacking.html&apos; to fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249966</commentid>
    <comment_count>1</comment_count>
      <attachid>294411</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-10 14:01:19 -0800</bug_when>
    <thetext>Created attachment 294411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250063</commentid>
    <comment_count>2</comment_count>
      <attachid>294411</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-11-10 16:57:11 -0800</bug_when>
    <thetext>Comment on attachment 294411
Patch

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

&gt; Source/WebCore/platform/graphics/win/GraphicsContextDirect2D.cpp:513
&gt;      float colorAlpha = color.alpha() / 255.0f;

Please change this to color.alphaAsFloat()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250065</commentid>
    <comment_count>3</comment_count>
      <attachid>294411</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-10 17:01:47 -0800</bug_when>
    <thetext>Comment on attachment 294411
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/win/GraphicsContextDirect2D.cpp:513
&gt;&gt;      float colorAlpha = color.alpha() / 255.0f;
&gt; 
&gt; Please change this to color.alphaAsFloat()

Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250067</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-10 17:02:59 -0800</bug_when>
    <thetext>Committed r208573: &lt;http://trac.webkit.org/changeset/208573&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294411</attachid>
            <date>2016-11-10 14:01:19 -0800</date>
            <delta_ts>2016-11-10 16:57:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164614-20161110135707.patch</filename>
            <type>text/plain</type>
            <size>13033</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODU2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE2LTExLTEwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dW0RpcmVjdDJEXSBB
ZGQgdHJhbnNwYXJlbmN5IGxheWVyIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDYxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSBzdGFja2FibGUgaW1wbGVtZW50YXRpb24g
b2YgdHJhbnNwYXJlbmN5IGxheWVycyBzbyB0aGF0CisgICAgICAgIG11bHRpcGxlIGxheWVycyB3
aXRoIG9wYWNpdHkgZHJhdyBwcm9wZXJ5LgorCisgICAgICAgIFRlc3RlZCBieSBmYXN0L2xheWVy
cy9vcGFjaXR5LXN0YWNraW5nLmh0bWwgYW5kIG90aGVycy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCk6IFJlbW92ZSB1bm5lZWRlZCBh
c3NlcnRpb24uCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZh
dGU6OnJlbmRlclRhcmdldCk6IFJldHVybiBjdXJyZW50IGNvbnRleHQgdGFraW5nCisgICAgICAg
IGludG8gYWNjb3VudCB0aGUgcHJlc2VuY2Ugb2YgdHJhbnNwYXJlbmN5IGxheWVycy4KKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6c2V0QWxwaGEpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6
Y3VycmVudEdsb2JhbEFscGhhKTogR2V0IGN1cnJlbnQgZ2xvYmFsCisgICAgICAgIGFscGhhIGZv
ciBjdXJyZW50IGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpjb2xv
cldpdGhHbG9iYWxBbHBoYSk6IENvbXB1dGUgcHJvcGVyIGNvbG9yIHRha2luZyBpbnRvCisgICAg
ICAgIGFjY291bnQgdGhlIGN1cnJlbnQgbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpkcmF3V2l0
aFNoYWRvd0hlbHBlcik6IEhlbHBlciBmdW5jdGlvbiB0byBzaGFyZSBjb2RlLgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3V2l0aFNoYWRvdyk6IFVzZSBuZXcgaGVscGVy
IGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2
YXRlOjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lMYXllcik6IENhbGwgbmV3
IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZv
cm1Qcml2YXRlOjplbmRUcmFuc3BhcmVuY3lMYXllcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKTogQ2FsbCBu
ZXcgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNs
ZWFyUmVjdCk6IENsZWFyIHRvIHRyYW5zcGFyZW50IGNvbG9yLgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUFscGhhKTogUGFzcyBuZXcgYWxwaGEgb24gdG8g
YW55IGFjdGl2ZQorICAgICAgICB0cmFuc3BhcmVuY3kgbGF5ZXIuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZURpcmVjdDJELmg6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OnJlbmRl
clRhcmdldCk6IERlbGV0ZWQuCisKIDIwMTYtMTEtMTAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2Fy
bHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBhcHBseSBjb25zdHJhaW50
cyBwYXNzZWQgdG8gZ2V0VXNlck1lZGlhKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVj
dDJELmNwcAkocmV2aXNpb24gMjA4NTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTUxLDEwICsxNTEsMzEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRGVzdHJveSgp
CiBJRDJEMVJlbmRlclRhcmdldCogR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQoKSBj
b25zdAogewogICAgIEFTU0VSVCghcGFpbnRpbmdEaXNhYmxlZCgpKTsKLSAgICBBU1NFUlQobV9k
YXRhLT5yZW5kZXJUYXJnZXQoKSk7CiAgICAgcmV0dXJuIG1fZGF0YS0+cmVuZGVyVGFyZ2V0KCk7
CiB9CiAKK0lEMkQxUmVuZGVyVGFyZ2V0KiBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6
OnJlbmRlclRhcmdldCgpCit7CisgICAgaWYgKCFtX3RyYW5zcGFyZW5jeUxheWVyU3RhY2suaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gbV90cmFuc3BhcmVuY3lMYXllclN0YWNrLmxhc3QoKS5y
ZW5kZXJUYXJnZXQuZ2V0KCk7CisKKyAgICByZXR1cm4gbV9yZW5kZXJUYXJnZXQuZ2V0KCk7Cit9
CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpzZXRBbHBoYShmbG9hdCBh
bHBoYSkKK3sKKyAgICBBU1NFUlQobV90cmFuc3BhcmVuY3lMYXllclN0YWNrLmlzRW1wdHkoKSk7
CisgICAgbV9hbHBoYSA9IGFscGhhOworfQorCitmbG9hdCBHcmFwaGljc0NvbnRleHRQbGF0Zm9y
bVByaXZhdGU6OmN1cnJlbnRHbG9iYWxBbHBoYSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3RyYW5z
cGFyZW5jeUxheWVyU3RhY2suaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbV90cmFuc3BhcmVu
Y3lMYXllclN0YWNrLmxhc3QoKS5vcGFjaXR5OworCisgICAgcmV0dXJuIG1fYWxwaGE7Cit9CisK
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzYXZlUGxhdGZvcm1TdGF0ZSgpCiB7CiAgICAgQVNTRVJU
KCFwYWludGluZ0Rpc2FibGVkKCkpOwpAQCAtNDkwLDcgKzUxMSw3IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlOjpyb3QKIEQyRDFfQ09MT1JfRiBHcmFwaGljc0NvbnRleHQ6
OmNvbG9yV2l0aEdsb2JhbEFscGhhKGNvbnN0IENvbG9yJiBjb2xvcikgY29uc3QKIHsKICAgICBm
bG9hdCBjb2xvckFscGhhID0gY29sb3IuYWxwaGEoKSAvIDI1NS4wZjsKLSAgICBmbG9hdCBnbG9i
YWxBbHBoYSA9IG1fc3RhdGUuYWxwaGE7CisgICAgZmxvYXQgZ2xvYmFsQWxwaGEgPSBtX2RhdGEt
PmN1cnJlbnRHbG9iYWxBbHBoYSgpOwogCiAgICAgcmV0dXJuIEQyRDE6OkNvbG9yRihjb2xvci5y
Z2IoKSwgZ2xvYmFsQWxwaGEgKiBjb2xvckFscGhhKTsKIH0KQEAgLTkxOSwyNiArOTQwLDEwIEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3V2l0aG91dFNoYWRvdygKICAgICBkcmF3Q29tbWFu
ZHMocGxhdGZvcm1Db250ZXh0KCkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1dp
dGhTaGFkb3coY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IHN0ZDo6ZnVuY3Rp
b248dm9pZChJRDJEMVJlbmRlclRhcmdldCopPiYgZHJhd0NvbW1hbmRzKQorc3RhdGljIHZvaWQg
ZHJhd1dpdGhTaGFkb3dIZWxwZXIoSUQyRDFSZW5kZXJUYXJnZXQqIGNvbnRleHQsIElEMkQxQml0
bWFwKiBiaXRtYXAsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgY29uc3QgRmxvYXRTaXplJiBz
aGFkb3dPZmZzZXQsIGZsb2F0IHNoYWRvd0JsdXIpCiB7Ci0gICAgYXV0byBjb250ZXh0ID0gcGxh
dGZvcm1Db250ZXh0KCk7Ci0KLSAgICAvLyBSZW5kZXIgdGhlIGN1cnJlbnQgZ2VvbWV0cnkgdG8g
YSBiaXRtYXAgY29udGV4dAotICAgIENPTVB0cjxJRDJEMUJpdG1hcFJlbmRlclRhcmdldD4gYml0
bWFwVGFyZ2V0OwotICAgIEhSRVNVTFQgaHIgPSBjb250ZXh0LT5DcmVhdGVDb21wYXRpYmxlUmVu
ZGVyVGFyZ2V0KCZiaXRtYXBUYXJnZXQpOwotICAgIFJFTEVBU0VfQVNTRVJUKFNVQ0NFRURFRCho
cikpOwotCi0gICAgYml0bWFwVGFyZ2V0LT5CZWdpbkRyYXcoKTsKLSAgICBkcmF3Q29tbWFuZHMo
Yml0bWFwVGFyZ2V0LmdldCgpKTsKLSAgICBociA9IGJpdG1hcFRhcmdldC0+RW5kRHJhdygpOwot
ICAgIFJFTEVBU0VfQVNTRVJUKFNVQ0NFRURFRChocikpOwotCi0gICAgQ09NUHRyPElEMkQxQml0
bWFwPiBiaXRtYXA7Ci0gICAgaHIgPSBiaXRtYXBUYXJnZXQtPkdldEJpdG1hcCgmYml0bWFwKTsK
LSAgICBSRUxFQVNFX0FTU0VSVChTVUNDRUVERUQoaHIpKTsKLQogICAgIENPTVB0cjxJRDJEMURl
dmljZUNvbnRleHQ+IGRldmljZUNvbnRleHQ7Ci0gICAgaHIgPSBjb250ZXh0LT5RdWVyeUludGVy
ZmFjZSgmZGV2aWNlQ29udGV4dCk7CisgICAgSFJFU1VMVCBociA9IGNvbnRleHQtPlF1ZXJ5SW50
ZXJmYWNlKCZkZXZpY2VDb250ZXh0KTsKICAgICBSRUxFQVNFX0FTU0VSVChTVUNDRUVERUQoaHIp
KTsKIAogICAgIC8vIENyZWF0ZSB0aGUgc2hhZG93IGVmZmVjdApAQCAtOTQ2LDkgKzk1MSw5IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3V2l0aFNoYWRvdyhjb24KICAgICBociA9IGRldmlj
ZUNvbnRleHQtPkNyZWF0ZUVmZmVjdChDTFNJRF9EMkQxU2hhZG93LCAmc2hhZG93RWZmZWN0KTsK
ICAgICBSRUxFQVNFX0FTU0VSVChTVUNDRUVERUQoaHIpKTsKIAotICAgIHNoYWRvd0VmZmVjdC0+
U2V0SW5wdXQoMCwgYml0bWFwLmdldCgpKTsKLSAgICBzaGFkb3dFZmZlY3QtPlNldFZhbHVlKEQy
RDFfU0hBRE9XX1BST1BfQ09MT1IsIHN0YXRpY19jYXN0PEQyRDFfVkVDVE9SXzRGPihtX3N0YXRl
LnNoYWRvd0NvbG9yKSk7Ci0gICAgc2hhZG93RWZmZWN0LT5TZXRWYWx1ZShEMkQxX1NIQURPV19Q
Uk9QX0JMVVJfU1RBTkRBUkRfREVWSUFUSU9OLCBtX3N0YXRlLnNoYWRvd0JsdXIpOworICAgIHNo
YWRvd0VmZmVjdC0+U2V0SW5wdXQoMCwgYml0bWFwKTsKKyAgICBzaGFkb3dFZmZlY3QtPlNldFZh
bHVlKEQyRDFfU0hBRE9XX1BST1BfQ09MT1IsIHN0YXRpY19jYXN0PEQyRDFfVkVDVE9SXzRGPihz
aGFkb3dDb2xvcikpOworICAgIHNoYWRvd0VmZmVjdC0+U2V0VmFsdWUoRDJEMV9TSEFET1dfUFJP
UF9CTFVSX1NUQU5EQVJEX0RFVklBVElPTiwgc2hhZG93Qmx1cik7CiAKICAgICBDT01QdHI8SUQy
RDFFZmZlY3Q+IHRyYW5zZm9ybUVmZmVjdDsKICAgICBociA9IGRldmljZUNvbnRleHQtPkNyZWF0
ZUVmZmVjdChDTFNJRF9EMkQxMkRBZmZpbmVUcmFuc2Zvcm0sICZ0cmFuc2Zvcm1FZmZlY3QpOwpA
QCAtOTU2LDcgKzk2MSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3V2l0aFNoYWRvdyhj
b24KIAogICAgIHRyYW5zZm9ybUVmZmVjdC0+U2V0SW5wdXRFZmZlY3QoMCwgc2hhZG93RWZmZWN0
LmdldCgpKTsKIAotICAgIGF1dG8gdHJhbnNsYXRpb24gPSBEMkQxOjpNYXRyaXgzeDJGOjpUcmFu
c2xhdGlvbihtX3N0YXRlLnNoYWRvd09mZnNldC53aWR0aCgpLCBtX3N0YXRlLnNoYWRvd09mZnNl
dC5oZWlnaHQoKSk7CisgICAgYXV0byB0cmFuc2xhdGlvbiA9IEQyRDE6Ok1hdHJpeDN4MkY6OlRy
YW5zbGF0aW9uKHNoYWRvd09mZnNldC53aWR0aCgpLCBzaGFkb3dPZmZzZXQuaGVpZ2h0KCkpOwog
ICAgIHRyYW5zZm9ybUVmZmVjdC0+U2V0VmFsdWUoRDJEMV8yREFGRklORVRSQU5TRk9STV9QUk9Q
X1RSQU5TRk9STV9NQVRSSVgsIHRyYW5zbGF0aW9uKTsKIAogICAgIENPTVB0cjxJRDJEMUVmZmVj
dD4gY29tcG9zaXRvcjsKQEAgLTk2NCw3ICs5NjksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd1dpdGhTaGFkb3coY29uCiAgICAgUkVMRUFTRV9BU1NFUlQoU1VDQ0VFREVEKGhyKSk7CiAK
ICAgICBjb21wb3NpdG9yLT5TZXRJbnB1dEVmZmVjdCgwLCB0cmFuc2Zvcm1FZmZlY3QuZ2V0KCkp
OwotICAgIGNvbXBvc2l0b3ItPlNldElucHV0KDEsIGJpdG1hcC5nZXQoKSk7CisgICAgY29tcG9z
aXRvci0+U2V0SW5wdXQoMSwgYml0bWFwKTsKIAogICAgIC8vIEZsaXAgdGhlIGNvbnRleHQKICAg
ICBEMkQxX01BVFJJWF8zWDJfRiBjdG07CkBAIC05NzYsNiArOTgxLDI3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3V2l0aFNoYWRvdyhjb24KICAgICBkZXZpY2VDb250ZXh0LT5EcmF3SW1h
Z2UoY29tcG9zaXRvci5nZXQoKSwgRDJEMV9JTlRFUlBPTEFUSU9OX01PREVfTElORUFSKTsKIH0K
IAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdXaXRoU2hhZG93KGNvbnN0IEZsb2F0UmVjdCYg
Ym91bmRpbmdSZWN0LCBjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQoSUQyRDFSZW5kZXJUYXJnZXQq
KT4mIGRyYXdDb21tYW5kcykKK3sKKyAgICBhdXRvIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQo
KTsKKworICAgIC8vIFJlbmRlciB0aGUgY3VycmVudCBnZW9tZXRyeSB0byBhIGJpdG1hcCBjb250
ZXh0CisgICAgQ09NUHRyPElEMkQxQml0bWFwUmVuZGVyVGFyZ2V0PiBiaXRtYXBUYXJnZXQ7Cisg
ICAgSFJFU1VMVCBociA9IGNvbnRleHQtPkNyZWF0ZUNvbXBhdGlibGVSZW5kZXJUYXJnZXQoJmJp
dG1hcFRhcmdldCk7CisgICAgUkVMRUFTRV9BU1NFUlQoU1VDQ0VFREVEKGhyKSk7CisKKyAgICBi
aXRtYXBUYXJnZXQtPkJlZ2luRHJhdygpOworICAgIGRyYXdDb21tYW5kcyhiaXRtYXBUYXJnZXQu
Z2V0KCkpOworICAgIGhyID0gYml0bWFwVGFyZ2V0LT5FbmREcmF3KCk7CisgICAgUkVMRUFTRV9B
U1NFUlQoU1VDQ0VFREVEKGhyKSk7CisKKyAgICBDT01QdHI8SUQyRDFCaXRtYXA+IGJpdG1hcDsK
KyAgICBociA9IGJpdG1hcFRhcmdldC0+R2V0Qml0bWFwKCZiaXRtYXApOworICAgIFJFTEVBU0Vf
QVNTRVJUKFNVQ0NFRURFRChocikpOworCisgICAgZHJhd1dpdGhTaGFkb3dIZWxwZXIoY29udGV4
dCwgYml0bWFwLmdldCgpLCBtX3N0YXRlLnNoYWRvd0NvbG9yLCBtX3N0YXRlLnNoYWRvd09mZnNl
dCwgbV9zdGF0ZS5zaGFkb3dCbHVyKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxQ
YXRoKGNvbnN0IFBhdGgmIHBhdGgpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCBw
YXRoLmlzRW1wdHkoKSkKQEAgLTEzMzUsNiArMTM2MSwxOSBAQCBJbnRSZWN0IEdyYXBoaWNzQ29u
dGV4dDo6Y2xpcEJvdW5kcygpIGNvCiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoY2xpcEJv
dW5kcyk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpiZWdpblRy
YW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCit7CisgICAgVHJhbnNwYXJlbmN5TGF5ZXJT
dGF0ZSB0cmFuc3BhcmVuY3lMYXllcjsKKyAgICB0cmFuc3BhcmVuY3lMYXllci5vcGFjaXR5ID0g
b3BhY2l0eTsKKworICAgIEhSRVNVTFQgaHIgPSBtX3JlbmRlclRhcmdldC0+Q3JlYXRlQ29tcGF0
aWJsZVJlbmRlclRhcmdldCgmdHJhbnNwYXJlbmN5TGF5ZXIucmVuZGVyVGFyZ2V0KTsKKyAgICBS
RUxFQVNFX0FTU0VSVChTVUNDRUVERUQoaHIpKTsKKyAgICBtX3RyYW5zcGFyZW5jeUxheWVyU3Rh
Y2suYXBwZW5kKFdURk1vdmUodHJhbnNwYXJlbmN5TGF5ZXIpKTsKKworICAgIG1fdHJhbnNwYXJl
bmN5TGF5ZXJTdGFjay5sYXN0KCkucmVuZGVyVGFyZ2V0LT5CZWdpbkRyYXcoKTsKKyAgICBtX3Ry
YW5zcGFyZW5jeUxheWVyU3RhY2subGFzdCgpLnJlbmRlclRhcmdldC0+Q2xlYXIoRDJEMTo6Q29s
b3JGKDAsIDAsIDAsIDApKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZv
cm1UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQogewogICAgIGlmIChwYWludGluZ0Rp
c2FibGVkKCkpCkBAIC0xMzQ0LDcgKzEzODMsNDAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJl
Z2luUGxhdGZvcm1UcmFucwogCiAgICAgc2F2ZSgpOwogCi0gICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICBtX3N0YXRlLmFscGhhID0gb3BhY2l0eTsKKworICAgIG1fZGF0YS0+YmVnaW5UcmFuc3Bh
cmVuY3lMYXllcihvcGFjaXR5KTsKK30KKwordm9pZCBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVBy
aXZhdGU6OmVuZFRyYW5zcGFyZW5jeUxheWVyKCkKK3sKKyAgICBhdXRvIGN1cnJlbnRMYXllciA9
IG1fdHJhbnNwYXJlbmN5TGF5ZXJTdGFjay50YWtlTGFzdCgpOworICAgIGF1dG8gcmVuZGVyVGFy
Z2V0ID0gY3VycmVudExheWVyLnJlbmRlclRhcmdldDsKKyAgICBpZiAoIXJlbmRlclRhcmdldCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgSFJFU1VMVCBociA9IHJlbmRlclRhcmdldC0+RW5kRHJh
dygpOworICAgIFJFTEVBU0VfQVNTRVJUKFNVQ0NFRURFRChocikpOworCisgICAgQ09NUHRyPElE
MkQxQml0bWFwPiBiaXRtYXA7CisgICAgaHIgPSByZW5kZXJUYXJnZXQtPkdldEJpdG1hcCgmYml0
bWFwKTsKKyAgICBSRUxFQVNFX0FTU0VSVChTVUNDRUVERUQoaHIpKTsKKworICAgIGF1dG8gY29u
dGV4dCA9IHRoaXMtPnJlbmRlclRhcmdldCgpOworCisgICAgaWYgKGN1cnJlbnRMYXllci5oYXNT
aGFkb3cpCisgICAgICAgIGRyYXdXaXRoU2hhZG93SGVscGVyKGNvbnRleHQsIGJpdG1hcC5nZXQo
KSwgY3VycmVudExheWVyLnNoYWRvd0NvbG9yLCBjdXJyZW50TGF5ZXIuc2hhZG93T2Zmc2V0LCBj
dXJyZW50TGF5ZXIuc2hhZG93Qmx1cik7CisgICAgZWxzZSB7CisgICAgICAgIENPTVB0cjxJRDJE
MUJpdG1hcEJydXNoPiBiaXRtYXBCcnVzaDsKKyAgICAgICAgYXV0byBiaXRtYXBCcnVzaFByb3Bl
cnRpZXMgPSBEMkQxOjpCaXRtYXBCcnVzaFByb3BlcnRpZXMoKTsKKyAgICAgICAgYXV0byBicnVz
aFByb3BlcnRpZXMgPSBEMkQxOjpCcnVzaFByb3BlcnRpZXMoKTsKKyAgICAgICAgSFJFU1VMVCBo
ciA9IGNvbnRleHQtPkNyZWF0ZUJpdG1hcEJydXNoKGJpdG1hcC5nZXQoKSwgYml0bWFwQnJ1c2hQ
cm9wZXJ0aWVzLCBicnVzaFByb3BlcnRpZXMsICZiaXRtYXBCcnVzaCk7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUKFNVQ0NFRURFRChocikpOworCisgICAgICAgIGF1dG8gc2l6ZSA9IGJpdG1hcC0+
R2V0U2l6ZSgpOworICAgICAgICBhdXRvIHJlY3RJbkRJUCA9IEQyRDE6OlJlY3RGKDAsIDAsIHNp
emUud2lkdGgsIHNpemUuaGVpZ2h0KTsKKyAgICAgICAgY29udGV4dC0+RmlsbFJlY3RhbmdsZShy
ZWN0SW5ESVAsIGJpdG1hcEJydXNoLmdldCgpKTsKKyAgICB9CiB9CiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxheWVyKCkKQEAgLTEzNTIsOSArMTQyNCwx
MSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhCiAgICAgaWYgKHBh
aW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9kYXRhLT5lbmRUcmFu
c3BhcmVuY3lMYXllcigpOworCiAgICAgQVNTRVJUKCFpc1JlY29yZGluZygpKTsKIAotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgbV9zdGF0ZS5hbHBoYSA9IG1fZGF0YS0+Y3VycmVudEdsb2Jh
bEFscGhhKCk7CiAKICAgICByZXN0b3JlKCk7CiB9CkBAIC0xNDE3LDcgKzE0OTEsNyBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJSZWN0KGNvbnN0IEZsCiAKICAgICAgICAgaWYgKHJlY3RU
b0NsZWFyLmNvbnRhaW5zKHJlbmRlclRhcmdldFJlY3QpKSB7CiAgICAgICAgICAgICByZW5kZXJU
YXJnZXQtPlNldFRhZ3MoMSwgX19MSU5FX18pOwotICAgICAgICAgICAgcmVuZGVyVGFyZ2V0LT5D
bGVhcigpOworICAgICAgICAgICAgcmVuZGVyVGFyZ2V0LT5DbGVhcihEMkQxOjpDb2xvckYoMCwg
MCwgMCwgMCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTE0MjYsNyAr
MTUwMCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29uc3QgRmwKIAogICAg
ICAgICByZW5kZXJUYXJnZXQtPlNldFRhZ3MoMSwgX19MSU5FX18pOwogICAgICAgICByZWN0VG9D
bGVhci5pbnRlcnNlY3QocmVuZGVyVGFyZ2V0UmVjdCk7Ci0gICAgICAgIHJlbmRlclRhcmdldC0+
RmlsbFJlY3RhbmdsZShyZWN0VG9DbGVhciwgc29saWRGaWxsQnJ1c2goKSk7CisgICAgICAgIHJl
bmRlclRhcmdldC0+RmlsbFJlY3RhbmdsZShyZWN0VG9DbGVhciwgYnJ1c2hXaXRoQ29sb3IoQ29s
b3IoRDJEMTo6Q29sb3JGKDAsIDAsIDAsIDApKSkpOwogICAgIH0pOwogfQogCkBAIC0xNzg5LDkg
KzE4NjMsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hvdWxkUwogICAg
IHBsYXRmb3JtQ29udGV4dCgpLT5TZXRUZXh0QW50aWFsaWFzTW9kZShmb250U21vb3RoaW5nTW9k
ZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUFscGhhKGZsb2F0KQor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtQWxwaGEoZmxvYXQgYWxwaGEpCiB7Ci0g
ICAgLyogTm8tb3Agb24gdGhpcyBwbGF0Zm9ybSAqLworICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX3N0YXRlLmFscGhhID09IGFscGhh
KTsKKyAgICBtX2RhdGEtPnNldEFscGhhKGFscGhhKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtQ29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9yIG1vZGUs
IEJsZW5kTW9kZSBibGVuZE1vZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlRGlyZWN0MkQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250
ZXh0UGxhdGZvcm1Qcml2YXRlRGlyZWN0MkQuaAkocmV2aXNpb24gMjA4NTQ5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJp
dmF0ZURpcmVjdDJELmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDkgQEAgcHVibGljOgog
CiAgICAgZW51bSBEaXJlY3QyRExheWVyVHlwZSB7IEF4aXNBbGlnbmVkQ2xpcCwgTGF5ZXJDbGlw
IH07CiAKKyAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSk7Cisg
ICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpOworCiAgICAgdm9pZCBjbGlwKGNvbnN0IEZs
b2F0UmVjdCYpOwogICAgIHZvaWQgY2xpcChjb25zdCBQYXRoJik7CiAgICAgdm9pZCBjbGlwKElE
MkQxR2VvbWV0cnkqKTsKQEAgLTY4LDggKzcxLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGF0
dGVybk9mZnNldChmbG9hdCk7CiAgICAgdm9pZCBzZXRTdHJva2VUaGlja25lc3MoZmxvYXQpOwog
ICAgIHZvaWQgc2V0RGFzaGVzKGNvbnN0IERhc2hBcnJheSYpOworICAgIHZvaWQgc2V0QWxwaGEo
ZmxvYXQpOwogCi0gICAgSUQyRDFSZW5kZXJUYXJnZXQqIHJlbmRlclRhcmdldCgpIHsgcmV0dXJu
IG1fcmVuZGVyVGFyZ2V0LmdldCgpOyB9CisgICAgSUQyRDFSZW5kZXJUYXJnZXQqIHJlbmRlclRh
cmdldCgpOwogICAgIElEMkQxTGF5ZXIqIGNsaXBMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVu
ZGVyU3RhdGVzLmxhc3QoKS5tX2FjdGl2ZUxheWVyLmdldCgpOyB9CiAgICAgSUQyRDFTdHJva2VT
dHlsZSogc3Ryb2tlU3R5bGUoKTsKIApAQCAtODYsNiArOTAsOCBAQCBwdWJsaWM6CiAgICAgQ09N
UHRyPElEMkQxQml0bWFwQnJ1c2g+IG1fcGF0dGVyblN0cm9rZUJydXNoOwogICAgIENPTVB0cjxJ
RDJEMUJpdG1hcEJydXNoPiBtX3BhdHRlcm5GaWxsQnJ1c2g7CiAKKyAgICBmbG9hdCBjdXJyZW50
R2xvYmFsQWxwaGEoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB2b2lkIHJlY29tcHV0ZVN0cm9r
ZVN0eWxlKCk7CiAKQEAgLTEwMywxNSArMTA5LDI3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8
UmVuZGVyU3RhdGU+IG1fcmVuZGVyU3RhdGVzOwogCisgICAgc3RydWN0IFRyYW5zcGFyZW5jeUxh
eWVyU3RhdGUgeworICAgICAgICBDT01QdHI8SUQyRDFCaXRtYXBSZW5kZXJUYXJnZXQ+IHJlbmRl
clRhcmdldDsKKyAgICAgICAgQ29sb3Igc2hhZG93Q29sb3I7CisgICAgICAgIEZsb2F0U2l6ZSBz
aGFkb3dPZmZzZXQ7CisgICAgICAgIGZsb2F0IG9wYWNpdHkgeyAxLjAgfTsKKyAgICAgICAgZmxv
YXQgc2hhZG93Qmx1ciB7IDAgfTsKKyAgICAgICAgYm9vbCBoYXNTaGFkb3cgeyBmYWxzZSB9Owor
ICAgIH07CisgICAgVmVjdG9yPFRyYW5zcGFyZW5jeUxheWVyU3RhdGU+IG1fdHJhbnNwYXJlbmN5
TGF5ZXJTdGFjazsKKwogICAgIEQyRDFfQ0FQX1NUWUxFIG1fbGluZUNhcCB7IEQyRDFfQ0FQX1NU
WUxFX0ZMQVQgfTsKICAgICBEMkQxX0xJTkVfSk9JTiBtX2xpbmVKb2luIHsgRDJEMV9MSU5FX0pP
SU5fTUlURVIgfTsKICAgICBTdHJva2VTdHlsZSBtX3N0cm9rZVN0eWxlIHsgU29saWRTdHJva2Ug
fTsKICAgICBEYXNoQXJyYXkgbV9kYXNoZXM7CisKICAgICBmbG9hdCBtX21pdGVyTGltaXQgeyAx
LjBmIH07CiAgICAgZmxvYXQgbV9kYXNoT2Zmc2V0IHsgMCB9OwogICAgIGZsb2F0IG1fcGF0dGVy
bldpZHRoIHsgMS4wZiB9OwogICAgIGZsb2F0IG1fcGF0dGVybk9mZnNldCB7IDAgfTsKICAgICBm
bG9hdCBtX3N0cm9rZVRoaWNrbmVzcyB7IDAgfTsKKyAgICBmbG9hdCBtX2FscGhhIHsgMS4wIH07
CiB9OwogCiBjbGFzcyBEMkRDb250ZXh0U3RhdGVTYXZlciB7Cg==
</data>
<flag name="review"
          id="317095"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>