<?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>47076</bug_id>
          
          <creation_ts>2010-10-04 03:25:01 -0700</creation_ts>
          <short_desc>[cairo] Move some cairo functions to the CairoUtilities</short_desc>
          <delta_ts>2010-10-04 08:25:13 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>45902</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alejandro G. Castro">alex</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288860</commentid>
    <comment_count>0</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-04 03:25:01 -0700</bug_when>
    <thetext>We need to move some cairo functions to the CairoUtilities so we can use them outside GraphicsContextCairo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288867</commentid>
    <comment_count>1</comment_count>
      <attachid>69613</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-04 04:13:48 -0700</bug_when>
    <thetext>Created attachment 69613
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288933</commentid>
    <comment_count>2</comment_count>
      <attachid>69613</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-04 07:54:44 -0700</bug_when>
    <thetext>Comment on attachment 69613
Proposed patch

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

Looks great! Please fix the following small issues before landing though.

&gt; WebCore/platform/graphics/cairo/CairoUtilities.cpp:73
&gt; +// We apply the pending path built via addPath to the Cairo context
&gt; +// lazily. This prevents interaction between the path and other routines
&gt; +// such as fillRect.

This comment doesn&apos;t make quite as much sense now that this function is shared between different source files. It&apos;s probably safe just to remove it.

&gt; WebCore/platform/graphics/cairo/CairoUtilities.cpp:122
&gt; +void drawPatternCairo(cairo_t* cr, cairo_surface_t* image, const IntSize&amp; imageSize, const FloatRect&amp; tileRect,

I think it you should call this drawPatternToCairoContext to match the name of the other helper functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288942</commentid>
    <comment_count>3</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-10-04 08:25:13 -0700</bug_when>
    <thetext>Landed with the suggested modifications http://trac.webkit.org/changeset/69015</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69613</attachid>
            <date>2010-10-04 04:13:48 -0700</date>
            <delta_ts>2010-10-04 07:54:44 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>cairo_util.patch</filename>
            <type>text/plain</type>
            <size>12920</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">Y29tbWl0IDZkNDk3MmJjNzJmZTQ2YmJmNGRlZmYyNjQ5ZjZjZTIxZmNkNWNhZDAKQXV0aG9yOiBB
bGVqYW5kcm8gRy4gQ2FzdHJvIDxhbGV4QGlnYWxpYS5jb20+CkRhdGU6ICAgV2VkIFNlcCAyMiAx
Mzo0MTozNSAyMDEwICswMjAwCgogICAgMjAxMC0wOS0yNyAgQWxlamFuZHJvIEcuIENhc3RybyAg
PGFsZXhAaWdhbGlhLmNvbT4KICAgIAogICAgICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KICAgIAogICAgICAgICAgICBbY2Fpcm9dIE1vdmUgc29tZSBjYWlybyBmdW5jdGlvbnMg
dG8gdGhlIENhaXJvVXRpbGl0aWVzCiAgICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NzA3NgogICAgCiAgICAgICAgICAgIE1vdmVkIHNvbWUgY2Fpcm8g
ZnVuY3Rpb25zIHRvIHRoZSBDYWlyb1V0aWxpdGllcyBzbyB3ZSBjYW4gdXNlCiAgICAgICAgICAg
IHRoZW0gb3V0c2lkZSBHcmFwaGljc0NvbnRleHRDYWlyby4KICAgIAogICAgICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcDoKICAgICAgICAgICAgKFdl
YkNvcmU6OmFwcGVuZFBhdGhUb0NhaXJvQ29udGV4dCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpz
ZXRQYXRoT25DYWlyb0NvbnRleHQpOgogICAgICAgICAgICAoV2ViQ29yZTo6YXBwZW5kV2ViQ29y
ZVBhdGhUb0NhaXJvQ29udGV4dCk6CiAgICAgICAgICAgIChXZWJDb3JlOjp0b0NhaXJvT3BlcmF0
b3IpOgogICAgICAgICAgICAoV2ViQ29yZTo6ZHJhd1BhdHRlcm5DYWlybyk6CiAgICAgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaDoKICAgICAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHA6CiAgICAg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHA6CiAgICAgICAg
ICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhd1BhdHRlcm4pOgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk2MDJkYS4uYjcyYTlkZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxMC0wOS0yNyAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
Y2Fpcm9dIE1vdmUgc29tZSBjYWlybyBmdW5jdGlvbnMgdG8gdGhlIENhaXJvVXRpbGl0aWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzA3NgorCisg
ICAgICAgIE1vdmVkIHNvbWUgY2Fpcm8gZnVuY3Rpb25zIHRvIHRoZSBDYWlyb1V0aWxpdGllcyBz
byB3ZSBjYW4gdXNlCisgICAgICAgIHRoZW0gb3V0c2lkZSBHcmFwaGljc0NvbnRleHRDYWlyby4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZFBhdGhUb0NhaXJvQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRQYXRoT25DYWlyb0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5k
V2ViQ29yZVBhdGhUb0NhaXJvQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp0b0NhaXJvT3Bl
cmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd1BhdHRlcm5DYWlybyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZTo6ZHJhd1BhdHRlcm4pOgorCiAyMDEwLTEwLTAzICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggZm9yIHI2ODk5
Ni4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGls
aXRpZXMuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGll
cy5jcHAKaW5kZXggOGMyMDQ5Zi4uYTczOWY2NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKQEAgLTI2LDggKzI2LDE0IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKIAorI2luY2x1
ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIkNhaXJvUGF0aC5oIgogI2luY2x1ZGUg
IkNvbG9yLmgiCi0jaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBh
dGguaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Niw0ICs2Miw5OSBAQCB2b2lkIHNl
dFNvdXJjZVJHQkFGcm9tQ29sb3IoY2Fpcm9fdCogY29udGV4dCwgY29uc3QgQ29sb3ImIGNvbG9y
KQogICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiYShjb250ZXh0LCByZWQsIGdyZWVuLCBibHVlLCBh
bHBoYSk7CiB9CiAKK3ZvaWQgYXBwZW5kUGF0aFRvQ2Fpcm9Db250ZXh0KGNhaXJvX3QqIHRvLCBj
YWlyb190KiBmcm9tKQoreworICAgIE93blB0cjxjYWlyb19wYXRoX3Q+IGNhaXJvUGF0aChjYWly
b19jb3B5X3BhdGgoZnJvbSkpOworICAgIGNhaXJvX2FwcGVuZF9wYXRoKHRvLCBjYWlyb1BhdGgu
Z2V0KCkpOworfQorCisvLyBXZSBhcHBseSB0aGUgcGVuZGluZyBwYXRoIGJ1aWx0IHZpYSBhZGRQ
YXRoIHRvIHRoZSBDYWlybyBjb250ZXh0CisvLyBsYXppbHkuIFRoaXMgcHJldmVudHMgaW50ZXJh
Y3Rpb24gYmV0d2VlbiB0aGUgcGF0aCBhbmQgb3RoZXIgcm91dGluZXMKKy8vIHN1Y2ggYXMgZmls
bFJlY3QuCit2b2lkIHNldFBhdGhPbkNhaXJvQ29udGV4dChjYWlyb190KiB0bywgY2Fpcm9fdCog
ZnJvbSkKK3sKKyAgICBjYWlyb19uZXdfcGF0aCh0byk7CisgICAgYXBwZW5kUGF0aFRvQ2Fpcm9D
b250ZXh0KHRvLCBmcm9tKTsKK30KKwordm9pZCBhcHBlbmRXZWJDb3JlUGF0aFRvQ2Fpcm9Db250
ZXh0KGNhaXJvX3QqIGNvbnRleHQsIGNvbnN0IFBhdGgmIHBhdGgpCit7CisgICAgYXBwZW5kUGF0
aFRvQ2Fpcm9Db250ZXh0KGNvbnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSk7
Cit9CisKK2NhaXJvX29wZXJhdG9yX3QgdG9DYWlyb09wZXJhdG9yKENvbXBvc2l0ZU9wZXJhdG9y
IG9wKQoreworICAgIHN3aXRjaCAob3ApIHsKKyAgICBjYXNlIENvbXBvc2l0ZUNsZWFyOgorICAg
ICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfQ0xFQVI7CisgICAgY2FzZSBDb21wb3NpdGVDb3B5
OgorICAgICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfU09VUkNFOworICAgIGNhc2UgQ29tcG9z
aXRlU291cmNlT3ZlcjoKKyAgICAgICAgcmV0dXJuIENBSVJPX09QRVJBVE9SX09WRVI7CisgICAg
Y2FzZSBDb21wb3NpdGVTb3VyY2VJbjoKKyAgICAgICAgcmV0dXJuIENBSVJPX09QRVJBVE9SX0lO
OworICAgIGNhc2UgQ29tcG9zaXRlU291cmNlT3V0OgorICAgICAgICByZXR1cm4gQ0FJUk9fT1BF
UkFUT1JfT1VUOworICAgIGNhc2UgQ29tcG9zaXRlU291cmNlQXRvcDoKKyAgICAgICAgcmV0dXJu
IENBSVJPX09QRVJBVE9SX0FUT1A7CisgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI6
CisgICAgICAgIHJldHVybiBDQUlST19PUEVSQVRPUl9ERVNUX09WRVI7CisgICAgY2FzZSBDb21w
b3NpdGVEZXN0aW5hdGlvbkluOgorICAgICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfREVTVF9J
TjsKKyAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0OgorICAgICAgICByZXR1cm4gQ0FJ
Uk9fT1BFUkFUT1JfREVTVF9PVVQ7CisgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbkF0b3A6
CisgICAgICAgIHJldHVybiBDQUlST19PUEVSQVRPUl9ERVNUX0FUT1A7CisgICAgY2FzZSBDb21w
b3NpdGVYT1I6CisgICAgICAgIHJldHVybiBDQUlST19PUEVSQVRPUl9YT1I7CisgICAgY2FzZSBD
b21wb3NpdGVQbHVzRGFya2VyOgorICAgICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfU0FUVVJB
VEU7CisgICAgY2FzZSBDb21wb3NpdGVIaWdobGlnaHQ6CisgICAgICAgIC8vIFRoZXJlIGlzIG5v
IENhaXJvIGVxdWl2YWxlbnQgZm9yIENvbXBvc2l0ZUhpZ2hsaWdodC4KKyAgICAgICAgcmV0dXJu
IENBSVJPX09QRVJBVE9SX09WRVI7CisgICAgY2FzZSBDb21wb3NpdGVQbHVzTGlnaHRlcjoKKyAg
ICAgICAgcmV0dXJuIENBSVJPX09QRVJBVE9SX0FERDsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gQ0FJUk9fT1BFUkFUT1JfU09VUkNFOworICAgIH0KK30KKwordm9pZCBkcmF3UGF0dGVy
bkNhaXJvKGNhaXJvX3QqIGNyLCBjYWlyb19zdXJmYWNlX3QqIGltYWdlLCBjb25zdCBJbnRTaXpl
JiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsCisgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY2Fpcm9fb3BlcmF0b3JfdCBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCkKK3sKKyAgICAvLyBBdm9pZCBOYU4KKyAgICBpZiAoIWlzZmluaXRlKHBoYXNlLngoKSkg
fHwgIWlzZmluaXRlKHBoYXNlLnkoKSkpCisgICAgICAgcmV0dXJuOworCisgICAgY2Fpcm9fc2F2
ZShjcik7CisKKyAgICBQbGF0Zm9ybVJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNsaXBwZWRJbWFn
ZVN1cmZhY2UgPSAwOworICAgIGlmICh0aWxlUmVjdC5zaXplKCkgIT0gaW1hZ2VTaXplKSB7Cisg
ICAgICAgIEludFJlY3QgaW1hZ2VSZWN0ID0gZW5jbG9zaW5nSW50UmVjdCh0aWxlUmVjdCk7Cisg
ICAgICAgIGNsaXBwZWRJbWFnZVN1cmZhY2UgPSBhZG9wdFBsYXRmb3JtUmVmKGNhaXJvX2ltYWdl
X3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIGltYWdlUmVjdC53aWR0aCgpLCBp
bWFnZVJlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgUGxhdGZvcm1SZWZQdHI8Y2Fpcm9fdD4gY2xp
cHBlZEltYWdlQ29udGV4dChjYWlyb19jcmVhdGUoY2xpcHBlZEltYWdlU3VyZmFjZS5nZXQoKSkp
OworICAgICAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY2xpcHBlZEltYWdlQ29udGV4dC5n
ZXQoKSwgaW1hZ2UsIC10aWxlUmVjdC54KCksIC10aWxlUmVjdC55KCkpOworICAgICAgICBjYWly
b19wYWludChjbGlwcGVkSW1hZ2VDb250ZXh0LmdldCgpKTsKKyAgICAgICAgaW1hZ2UgPSBjbGlw
cGVkSW1hZ2VTdXJmYWNlLmdldCgpOworICAgIH0KKworICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0
dGVybiA9IGNhaXJvX3BhdHRlcm5fY3JlYXRlX2Zvcl9zdXJmYWNlKGltYWdlKTsKKyAgICBjYWly
b19wYXR0ZXJuX3NldF9leHRlbmQocGF0dGVybiwgQ0FJUk9fRVhURU5EX1JFUEVBVCk7CisKKyAg
ICBjYWlyb19tYXRyaXhfdCBwYXR0ZXJuTWF0cml4ID0gY2Fpcm9fbWF0cml4X3QocGF0dGVyblRy
YW5zZm9ybSk7CisgICAgY2Fpcm9fbWF0cml4X3QgcGhhc2VNYXRyaXggPSB7MSwgMCwgMCwgMSwg
cGhhc2UueCgpICsgdGlsZVJlY3QueCgpICogcGF0dGVyblRyYW5zZm9ybS5hKCksIHBoYXNlLnko
KSArIHRpbGVSZWN0LnkoKSAqIHBhdHRlcm5UcmFuc2Zvcm0uZCgpfTsKKyAgICBjYWlyb19tYXRy
aXhfdCBjb21iaW5lZDsKKyAgICBjYWlyb19tYXRyaXhfbXVsdGlwbHkoJmNvbWJpbmVkLCAmcGF0
dGVybk1hdHJpeCwgJnBoYXNlTWF0cml4KTsKKyAgICBjYWlyb19tYXRyaXhfaW52ZXJ0KCZjb21i
aW5lZCk7CisgICAgY2Fpcm9fcGF0dGVybl9zZXRfbWF0cml4KHBhdHRlcm4sICZjb21iaW5lZCk7
CisKKyAgICBjYWlyb19zZXRfb3BlcmF0b3IoY3IsIG9wKTsKKyAgICBjYWlyb19zZXRfc291cmNl
KGNyLCBwYXR0ZXJuKTsKKyAgICBjYWlyb19wYXR0ZXJuX2Rlc3Ryb3kocGF0dGVybik7CisgICAg
Y2Fpcm9fcmVjdGFuZ2xlKGNyLCBkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSwgZGVzdFJlY3Qu
d2lkdGgoKSwgZGVzdFJlY3QuaGVpZ2h0KCkpOworICAgIGNhaXJvX2ZpbGwoY3IpOworCisgICAg
Y2Fpcm9fcmVzdG9yZShjcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaAppbmRleCAwNjc1
YjkwLi40YTYzZTEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvVXRpbGl0aWVzLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5oCkBAIC0yNiwxMyArMjYsMjUgQEAKICNpZm5kZWYgQ2Fpcm9VdGlsaXRp
ZXNfaAogI2RlZmluZSBDYWlyb1V0aWxpdGllc19oCiAKLXR5cGVkZWYgc3RydWN0IF9jYWlybyBj
YWlyb190OworI2luY2x1ZGUgPEdyYXBoaWNzVHlwZXMuaD4KKyNpbmNsdWRlIDxjYWlyby5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBDb2xv
cjsKK2NsYXNzIEZsb2F0UmVjdDsKK2NsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBJbnRTaXplOwor
Y2xhc3MgUGF0aDsKIAogdm9pZCBjb3B5Q29udGV4dFByb3BlcnRpZXMoY2Fpcm9fdCogc3JjQ3Is
IGNhaXJvX3QqIGRzdENyKTsKIHZvaWQgc2V0U291cmNlUkdCQUZyb21Db2xvcihjYWlyb190Kiwg
Y29uc3QgQ29sb3ImKTsKK3ZvaWQgYXBwZW5kUGF0aFRvQ2Fpcm9Db250ZXh0KGNhaXJvX3QqIHRv
LCBjYWlyb190KiBmcm9tKTsKK3ZvaWQgc2V0UGF0aE9uQ2Fpcm9Db250ZXh0KGNhaXJvX3QqIHRv
LCBjYWlyb190KiBmcm9tKTsKK3ZvaWQgYXBwZW5kV2ViQ29yZVBhdGhUb0NhaXJvQ29udGV4dChj
YWlyb190KiBjb250ZXh0LCBjb25zdCBQYXRoJiBwYXRoKTsKK2NhaXJvX29wZXJhdG9yX3QgdG9D
YWlyb09wZXJhdG9yKENvbXBvc2l0ZU9wZXJhdG9yIG9wKTsKK3ZvaWQgZHJhd1BhdHRlcm5DYWly
byhjYWlyb190KiBjciwgY2Fpcm9fc3VyZmFjZV90KiBpbWFnZSwgY29uc3QgSW50U2l6ZSYgaW1h
Z2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LAorICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNhaXJvX29wZXJhdG9yX3Qgb3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qp
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggMDUwOTZh
OS4uZWQzYjMwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTEzMiwyNiArMTMyLDYgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGZpbGxSZWN0U291cmNlT3ZlcihjYWlyb190KiBjciwgY29uc3QgRmxvYXRS
ZWN0JiByZWN0LCBjb25zdAogICAgIGNhaXJvX2ZpbGwoY3IpOwogfQogCi1zdGF0aWMgdm9pZCBh
cHBlbmRQYXRoVG9DYWlyb0NvbnRleHQoY2Fpcm9fdCogdG8sIGNhaXJvX3QqIGZyb20pCi17Ci0g
ICAgT3duUHRyPGNhaXJvX3BhdGhfdD4gY2Fpcm9QYXRoKGNhaXJvX2NvcHlfcGF0aChmcm9tKSk7
Ci0gICAgY2Fpcm9fYXBwZW5kX3BhdGgodG8sIGNhaXJvUGF0aC5nZXQoKSk7Ci19Ci0KLS8vIFdl
IGFwcGx5IHRoZSBwZW5kaW5nIHBhdGggYnVpbHQgdmlhIGFkZFBhdGggdG8gdGhlIENhaXJvIGNv
bnRleHQKLS8vIGxhemlseS4gVGhpcyBwcmV2ZW50cyBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoZSBw
YXRoIGFuZCBvdGhlciByb3V0aW5lcwotLy8gc3VjaCBhcyBmaWxsUmVjdC4KLXN0YXRpYyB2b2lk
IHNldFBhdGhPbkNhaXJvQ29udGV4dChjYWlyb190KiB0bywgY2Fpcm9fdCogZnJvbSkKLXsKLSAg
ICBjYWlyb19uZXdfcGF0aCh0byk7Ci0gICAgYXBwZW5kUGF0aFRvQ2Fpcm9Db250ZXh0KHRvLCBm
cm9tKTsKLX0KLQotc3RhdGljIHZvaWQgYXBwZW5kV2ViQ29yZVBhdGhUb0NhaXJvQ29udGV4dChj
YWlyb190KiBjb250ZXh0LCBjb25zdCBQYXRoJiBwYXRoKQotewotICAgIGFwcGVuZFBhdGhUb0Nh
aXJvQ29udGV4dChjb250ZXh0LCBwYXRoLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCkpOwotfQot
CiBzdGF0aWMgdm9pZCBhZGRDb252ZXhQb2x5Z29uVG9Db250ZXh0KGNhaXJvX3QqIGNvbnRleHQs
IHNpemVfdCBudW1Qb2ludHMsIGNvbnN0IEZsb2F0UG9pbnQqIHBvaW50cykKIHsKICAgICBjYWly
b19tb3ZlX3RvKGNvbnRleHQsIHBvaW50c1swXS54KCksIHBvaW50c1swXS55KCkpOwpAQCAtMTA5
NSw0MyArMTA3NSw2IEBAIGZsb2F0IEdyYXBoaWNzQ29udGV4dDo6Z2V0QWxwaGEoKQogICAgIHJl
dHVybiBtX2NvbW1vbi0+c3RhdGUuZ2xvYmFsQWxwaGE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgY2Fp
cm9fb3BlcmF0b3JfdCB0b0NhaXJvT3BlcmF0b3IoQ29tcG9zaXRlT3BlcmF0b3Igb3ApCi17Ci0g
ICAgc3dpdGNoIChvcCkgewotICAgIGNhc2UgQ29tcG9zaXRlQ2xlYXI6Ci0gICAgICAgIHJldHVy
biBDQUlST19PUEVSQVRPUl9DTEVBUjsKLSAgICBjYXNlIENvbXBvc2l0ZUNvcHk6Ci0gICAgICAg
IHJldHVybiBDQUlST19PUEVSQVRPUl9TT1VSQ0U7Ci0gICAgY2FzZSBDb21wb3NpdGVTb3VyY2VP
dmVyOgotICAgICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfT1ZFUjsKLSAgICBjYXNlIENvbXBv
c2l0ZVNvdXJjZUluOgotICAgICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfSU47Ci0gICAgY2Fz
ZSBDb21wb3NpdGVTb3VyY2VPdXQ6Ci0gICAgICAgIHJldHVybiBDQUlST19PUEVSQVRPUl9PVVQ7
Ci0gICAgY2FzZSBDb21wb3NpdGVTb3VyY2VBdG9wOgotICAgICAgICByZXR1cm4gQ0FJUk9fT1BF
UkFUT1JfQVRPUDsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKLSAgICAgICAg
cmV0dXJuIENBSVJPX09QRVJBVE9SX0RFU1RfT1ZFUjsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3Rp
bmF0aW9uSW46Ci0gICAgICAgIHJldHVybiBDQUlST19PUEVSQVRPUl9ERVNUX0lOOwotICAgIGNh
c2UgQ29tcG9zaXRlRGVzdGluYXRpb25PdXQ6Ci0gICAgICAgIHJldHVybiBDQUlST19PUEVSQVRP
Ul9ERVNUX09VVDsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcDoKLSAgICAgICAg
cmV0dXJuIENBSVJPX09QRVJBVE9SX0RFU1RfQVRPUDsKLSAgICBjYXNlIENvbXBvc2l0ZVhPUjoK
LSAgICAgICAgcmV0dXJuIENBSVJPX09QRVJBVE9SX1hPUjsKLSAgICBjYXNlIENvbXBvc2l0ZVBs
dXNEYXJrZXI6Ci0gICAgICAgIHJldHVybiBDQUlST19PUEVSQVRPUl9TQVRVUkFURTsKLSAgICBj
YXNlIENvbXBvc2l0ZUhpZ2hsaWdodDoKLSAgICAgICAgLy8gVGhlcmUgaXMgbm8gQ2Fpcm8gZXF1
aXZhbGVudCBmb3IgQ29tcG9zaXRlSGlnaGxpZ2h0LgotICAgICAgICByZXR1cm4gQ0FJUk9fT1BF
UkFUT1JfT1ZFUjsKLSAgICBjYXNlIENvbXBvc2l0ZVBsdXNMaWdodGVyOgotICAgICAgICByZXR1
cm4gQ0FJUk9fT1BFUkFUT1JfQUREOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBDQUlS
T19PUEVSQVRPUl9TT1VSQ0U7Ci0gICAgfQotfQotCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0
Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9yIG9wKQogewogICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQ2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFn
ZUNhaXJvLmNwcAppbmRleCA5MDRlODE5Li5lODBjNzBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBQ
TEFURk9STShDQUlSTykKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUg
IkNhaXJvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVJlZlB0ckNhaXJvLmgiCkBAIC0xNzIsNDYgKzE3Mywx
NSBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiBkc3QsIGNvbnN0IEZsbwogfQogCiB2b2lkIEltYWdlOjpkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQogewogICAgIGNhaXJv
X3N1cmZhY2VfdCogaW1hZ2UgPSBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwogICAgIGlm
ICghaW1hZ2UpIC8vIElmIGl0J3MgdG9vIGVhcmx5IHdlIHdvbid0IGhhdmUgYW4gaW1hZ2UgeWV0
LgogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBBdm9pZCBOYU4KLSAgICBpZiAoIWlzZmluaXRl
KHBoYXNlLngoKSkgfHwgIWlzZmluaXRlKHBoYXNlLnkoKSkpCi0gICAgICAgcmV0dXJuOwotCiAg
ICAgY2Fpcm9fdCogY3IgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKLSAgICBjb250ZXh0
LT5zYXZlKCk7Ci0KLSAgICBQbGF0Zm9ybVJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNsaXBwZWRJ
bWFnZVN1cmZhY2UgPSAwOwotICAgIGlmICh0aWxlUmVjdC5zaXplKCkgIT0gc2l6ZSgpKSB7Ci0g
ICAgICAgIEludFJlY3QgaW1hZ2VTaXplID0gZW5jbG9zaW5nSW50UmVjdCh0aWxlUmVjdCk7Ci0g
ICAgICAgIGNsaXBwZWRJbWFnZVN1cmZhY2UgPSBhZG9wdFBsYXRmb3JtUmVmKGNhaXJvX2ltYWdl
X3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIGltYWdlU2l6ZS53aWR0aCgpLCBp
bWFnZVNpemUuaGVpZ2h0KCkpKTsKLSAgICAgICAgUGxhdGZvcm1SZWZQdHI8Y2Fpcm9fdD4gY2xp
cHBlZEltYWdlQ29udGV4dChjYWlyb19jcmVhdGUoY2xpcHBlZEltYWdlU3VyZmFjZS5nZXQoKSkp
OwotICAgICAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY2xpcHBlZEltYWdlQ29udGV4dC5n
ZXQoKSwgaW1hZ2UsIC10aWxlUmVjdC54KCksIC10aWxlUmVjdC55KCkpOwotICAgICAgICBjYWly
b19wYWludChjbGlwcGVkSW1hZ2VDb250ZXh0LmdldCgpKTsKLSAgICAgICAgaW1hZ2UgPSBjbGlw
cGVkSW1hZ2VTdXJmYWNlLmdldCgpOwotICAgIH0KLQotICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0
dGVybiA9IGNhaXJvX3BhdHRlcm5fY3JlYXRlX2Zvcl9zdXJmYWNlKGltYWdlKTsKLSAgICBjYWly
b19wYXR0ZXJuX3NldF9leHRlbmQocGF0dGVybiwgQ0FJUk9fRVhURU5EX1JFUEVBVCk7CiAKLSAg
ICBjYWlyb19tYXRyaXhfdCBwYXR0ZXJuX21hdHJpeCA9IGNhaXJvX21hdHJpeF90KHBhdHRlcm5U
cmFuc2Zvcm0pOwotICAgIGNhaXJvX21hdHJpeF90IHBoYXNlX21hdHJpeCA9IHsxLCAwLCAwLCAx
LCBwaGFzZS54KCkgKyB0aWxlUmVjdC54KCkgKiBwYXR0ZXJuVHJhbnNmb3JtLmEoKSwgcGhhc2Uu
eSgpICsgdGlsZVJlY3QueSgpICogcGF0dGVyblRyYW5zZm9ybS5kKCl9OwotICAgIGNhaXJvX21h
dHJpeF90IGNvbWJpbmVkOwotICAgIGNhaXJvX21hdHJpeF9tdWx0aXBseSgmY29tYmluZWQsICZw
YXR0ZXJuX21hdHJpeCwgJnBoYXNlX21hdHJpeCk7Ci0gICAgY2Fpcm9fbWF0cml4X2ludmVydCgm
Y29tYmluZWQpOwotICAgIGNhaXJvX3BhdHRlcm5fc2V0X21hdHJpeChwYXR0ZXJuLCAmY29tYmlu
ZWQpOwotCi0gICAgY29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKG9wKTsKLSAgICBjYWly
b19zZXRfc291cmNlKGNyLCBwYXR0ZXJuKTsKLSAgICBjYWlyb19wYXR0ZXJuX2Rlc3Ryb3kocGF0
dGVybik7Ci0gICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCBkZXN0UmVjdC54KCksIGRlc3RSZWN0Lnko
KSwgZGVzdFJlY3Qud2lkdGgoKSwgZGVzdFJlY3QuaGVpZ2h0KCkpOwotICAgIGNhaXJvX2ZpbGwo
Y3IpOwotCi0gICAgY29udGV4dC0+cmVzdG9yZSgpOworICAgIGRyYXdQYXR0ZXJuQ2Fpcm8oY3Is
IGltYWdlLCBzaXplKCksIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgdG9DYWly
b09wZXJhdG9yKG9wKSwgZGVzdFJlY3QpOwogCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAg
ICAgICAgaW1hZ2VPYnNlcnZlcigpLT5kaWREcmF3KHRoaXMpOwo=
</data>
<flag name="review"
          id="59325"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>