<?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>81688</bug_id>
          
          <creation_ts>2012-03-20 11:57:09 -0700</creation_ts>
          <short_desc>Incremental cleanup of BitmapImage: inlined virtual functions</short_desc>
          <delta_ts>2012-03-21 10:44:11 -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>Images</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tom Hudson">tomhudson</reporter>
          <assigned_to name="Tom Hudson">tomhudson</assigned_to>
          <cc>jamesr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>583317</commentid>
    <comment_count>0</comment_count>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2012-03-20 11:57:09 -0700</bug_when>
    <thetext>In the review of https://bugs.webkit.org/show_bug.cgi?id=65063, Darin Adler pointed out that it&apos;s rarely useful to have a virtual function defined in the header. That pattern occurs all over BitmapImage.h and BitmapImageSingleFrameSkia.h; we should fix that by moving all virtual function definitions to cpp files (adding one for BitmapImageSingleFrameSkia).

https://bugs.webkit.org/show_bug.cgi?id=66597 tracks larger-scale refactoring that should be done in this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583325</commentid>
    <comment_count>1</comment_count>
      <attachid>132870</attachid>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2012-03-20 12:06:54 -0700</bug_when>
    <thetext>Created attachment 132870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583332</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 12:10:36 -0700</bug_when>
    <thetext>Attachment 132870 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/graphics/BitmapImage.cpp:534:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583349</commentid>
    <comment_count>3</comment_count>
      <attachid>132878</attachid>
    <who name="Tom Hudson">tomhudson</who>
    <bug_when>2012-03-20 12:24:55 -0700</bug_when>
    <thetext>Created attachment 132878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584188</commentid>
    <comment_count>4</comment_count>
      <attachid>132878</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-21 09:02:00 -0700</bug_when>
    <thetext>Comment on attachment 132878
Patch

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584325</commentid>
    <comment_count>5</comment_count>
      <attachid>132878</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 10:44:07 -0700</bug_when>
    <thetext>Comment on attachment 132878
Patch

Clearing flags on attachment: 132878

Committed r111572: &lt;http://trac.webkit.org/changeset/111572&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584326</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 10:44:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132870</attachid>
            <date>2012-03-20 12:06:54 -0700</date>
            <delta_ts>2012-03-20 12:24:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81688-20120320150653.patch</filename>
            <type>text/plain</type>
            <size>10142</size>
            <attacher name="Tom Hudson">tomhudson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTQyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAzLTIwICBUb20gSHVk
c29uICA8dG9taHVkc29uQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW5jcmVtZW50YWwgY2xlYW51
cCBvZiBCaXRtYXBJbWFnZTogaW5saW5lZCB2aXJ0dWFsIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2ODgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkK
KworICAgICAgICBNb3ZlIHZpcnR1YWwgZnVuY3Rpb25zIGRlZmluZWQgaW4gaGVhZGVycyBpbnRv
IC5jcHAgZmlsZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1h
Z2U6OmlzQml0bWFwSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCaXRtYXBJbWFnZTo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6Qml0bWFwSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcEltYWdlOjpjdXJyZW50RnJhbWVIYXNBbHBoYSk6CisgICAgICAgIChXZWJD
b3JlOjpCaXRtYXBJbWFnZTo6bm90U29saWRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBJbWFnZTo6ZGVjb2RlZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6Om1h
eUZpbGxXaXRoU29saWRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6c29s
aWRDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAg
ICAgICAgKEJpdG1hcEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0Jp
dG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhOjppc0JpdG1hcElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhOjpjdXJy
ZW50RnJhbWVIYXNBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZVNpbmdsZUZy
YW1lU2tpYTo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZVNpbmdsZUZyYW1l
U2tpYTo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdl
U2luZ2xlRnJhbWVTa2lhOjpkZWNvZGVkU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJ
bWFnZVNpbmdsZUZyYW1lU2tpYTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWE6Om5vdFNvbGlkQ29sb3IpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvQml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNr
aWEuaDoKKyAgICAgICAgKEJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhKToKKwogMjAxMi0wMy0y
MCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04g
KHIxMTEyMjkpOiBjc3MxL2Jhc2ljL2luaGVyaXRhbmNlLmh0bWwgaXMgZmFpbGluZwpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTEwNDUyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0zNzY5LDYgKzM3NjksNyBAQAogICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RpbGVRdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L1RyYW5zZm9ybWF0aW9uTWF0cml4UXQuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9xdC9UcmFuc3BhcmVuY3lMYXllci5oJywKKyAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9za2lhL0JpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9CaXRtYXBJbWFnZVNpbmdsZUZyYW1l
U2tpYS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0Zsb2F0UG9pbnRT
a2lhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9GbG9hdFJlY3RT
a2lhLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwCShyZXZpc2lvbiAxMTA0NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzcz
LDE3IEBAIEJpdG1hcEltYWdlOjp+Qml0bWFwSW1hZ2UoKQogICAgIHN0b3BBbmltYXRpb24oKTsK
IH0KIAorYm9vbCBCaXRtYXBJbWFnZTo6aXNCaXRtYXBJbWFnZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK2Jvb2wgQml0bWFwSW1hZ2U6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2lu
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCiB2b2lkIEJpdG1hcEltYWdlOjpk
ZXN0cm95RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsKQogewogICAgIGludCBmcmFtZXNDbGVh
cmVkID0gMDsKQEAgLTI5MCw2ICszMDEsMTEgQEAgZmxvYXQgQml0bWFwSW1hZ2U6OmZyYW1lRHVy
YXRpb25BdEluZGV4KAogICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9kdXJhdGlvbjsKIH0K
IAorTmF0aXZlSW1hZ2VQdHIgQml0bWFwSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
KCkKK3sKKyAgICByZXR1cm4gZnJhbWVBdEluZGV4KGN1cnJlbnRGcmFtZSgpKTsKK30KKwogYm9v
bCBCaXRtYXBJbWFnZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewogICAg
IGlmIChpbmRleCA+PSBmcmFtZUNvdW50KCkpCkBAIC0zMDEsNiArMzE3LDIwIEBAIGJvb2wgQml0
bWFwSW1hZ2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHMKICAgICByZXR1cm4gbV9mcmFtZXNbaW5k
ZXhdLm1faGFzQWxwaGE7CiB9CiAKK2Jvb2wgQml0bWFwSW1hZ2U6OmN1cnJlbnRGcmFtZUhhc0Fs
cGhhKCkKK3sKKyAgICByZXR1cm4gZnJhbWVIYXNBbHBoYUF0SW5kZXgoY3VycmVudEZyYW1lKCkp
OworfQorCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorYm9vbCBCaXRtYXBJbWFnZTo6bm90U29saWRD
b2xvcigpCit7CisgICAgcmV0dXJuIHNpemUoKS53aWR0aCgpICE9IDEgfHwgc2l6ZSgpLmhlaWdo
dCgpICE9IDEgfHwgZnJhbWVDb3VudCgpID4gMTsKK30KKyNlbmRpZgorCisKKwogaW50IEJpdG1h
cEltYWdlOjpyZXBldGl0aW9uQ291bnQoYm9vbCBpbWFnZUtub3duVG9CZUNvbXBsZXRlKQogewog
ICAgIGlmICgobV9yZXBldGl0aW9uQ291bnRTdGF0dXMgPT0gVW5rbm93bikgfHwgKChtX3JlcGV0
aXRpb25Db3VudFN0YXR1cyA9PSBVbmNlcnRhaW4pICYmIGltYWdlS25vd25Ub0JlQ29tcGxldGUp
KSB7CkBAIC00MzYsNiArNDY2LDEzIEBAIHZvaWQgQml0bWFwSW1hZ2U6OnJlc2V0QW5pbWF0aW9u
KCkKICAgICBkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeSh0cnVlKTsKIH0KIAordW5zaWdu
ZWQgQml0bWFwSW1hZ2U6OmRlY29kZWRTaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kZWNv
ZGVkU2l6ZTsKK30KKworCisKIHZvaWQgQml0bWFwSW1hZ2U6OmFkdmFuY2VBbmltYXRpb24oVGlt
ZXI8Qml0bWFwSW1hZ2U+KikKIHsKICAgICBpbnRlcm5hbEFkdmFuY2VBbmltYXRpb24oZmFsc2Up
OwpAQCAtNDg0LDQgKzUyMSwyMiBAQCBib29sIEJpdG1hcEltYWdlOjppbnRlcm5hbEFkdmFuY2VB
bmltYXRpCiAgICAgcmV0dXJuIGFkdmFuY2VkQW5pbWF0aW9uOwogfQogCitib29sIEJpdG1hcElt
YWdlOjptYXlGaWxsV2l0aFNvbGlkQ29sb3IoKQoreworICAgIGlmICghbV9jaGVja2VkRm9yU29s
aWRDb2xvciAmJiBmcmFtZUNvdW50KCkgPiAwKSB7CisgICAgICAgIGNoZWNrRm9yU29saWRDb2xv
cigpOworICAgICAgICAvLyBXSU5DRSBQT1JUOiBjaGVja0ZvclNvbGlkQ29sb3IoKSBkb2Vzbid0
IHNldCBtX2NoZWNrZWRGb3JTb2xpZENvbG9yIHVudGlsCisgICAgICAgIC8vIGl0IGdldHMgZW5v
dWdoIGluZm9ybWF0aW9uIHRvIG1ha2UgZmluYWwgZGVjaXNpb24uCisjaWYgIU9TKFdJTkNFKQor
ICAgICAgICBBU1NFUlQobV9jaGVja2VkRm9yU29saWRDb2xvcik7CisjZW5kaWYKKyAgICB9Cisg
ICAgcmV0dXJuIG1faXNTb2xpZENvbG9yICYmIG1fY3VycmVudEZyYW1lID09IDA7Cit9CisKK0Nv
bG9yIEJpdG1hcEltYWdlOjpzb2xpZENvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zb2xp
ZENvbG9yOworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmgJKHJldmlzaW9uIDExMDQ1MikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw5ICsx
MDgsOSBAQCBwdWJsaWM6CiAgICAgfQogICAgIH5CaXRtYXBJbWFnZSgpOwogICAgIAotICAgIHZp
cnR1YWwgYm9vbCBpc0JpdG1hcEltYWdlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc0JpdG1hcEltYWdlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFz
U2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIElu
dFNpemUgc2l6ZSgpIGNvbnN0OwogICAgIEludFNpemUgY3VycmVudEZyYW1lU2l6ZSgpIGNvbnN0
OwpAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1h
dGlvbigpOwogICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1hdGlvbigpOwogICAgIAotICAgIHZp
cnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdCB7IHJldHVybiBtX2RlY29kZWRTaXpl
OyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNvbnN0OwogCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIC8vIEFjY2Vzc29ycyBmb3IgbmF0aXZlIGltYWdlIGZvcm1hdHMuCkBA
IC0xNTEsMTUgKzE1MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBHZGtQaXhidWYqIGdldEdk
a1BpeGJ1ZigpOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCkgeyByZXR1cm4gZnJhbWVBdEluZGV4KGN1cnJlbnRGcmFtZSgp
KTsgfQorICAgIHZpcnR1YWwgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJh
bWUoKTsKICAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCk7Ci0gICAgdmlydHVh
bCBib29sIGN1cnJlbnRGcmFtZUhhc0FscGhhKCkgeyByZXR1cm4gZnJhbWVIYXNBbHBoYUF0SW5k
ZXgoY3VycmVudEZyYW1lKCkpOyB9CisgICAgdmlydHVhbCBib29sIGN1cnJlbnRGcmFtZUhhc0Fs
cGhhKCk7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgdmlydHVhbCBib29sIG5vdFNvbGlk
Q29sb3IoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHNpemUoKS53aWR0aCgpICE9IDEgfHwgc2l6
ZSgpLmhlaWdodCgpICE9IDEgfHwgZnJhbWVDb3VudCgpID4gMTsKLSAgICB9CisgICAgdmlydHVh
bCBib29sIG5vdFNvbGlkQ29sb3IoKTsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CkBAIC0yMzksMTkg
KzIzNiw4IEBAIHByb3RlY3RlZDoKICAgICAvLyBjaGFuZ2VkLgogICAgIHZvaWQgY2hlY2tGb3JT
b2xpZENvbG9yKCk7CiAgICAgCi0gICAgdmlydHVhbCBib29sIG1heUZpbGxXaXRoU29saWRDb2xv
cigpCi0gICAgewotICAgICAgICBpZiAoIW1fY2hlY2tlZEZvclNvbGlkQ29sb3IgJiYgZnJhbWVD
b3VudCgpID4gMCkgewotICAgICAgICAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7Ci0gICAgICAg
ICAgICAvLyBXSU5DRSBQT1JUOiBjaGVja0ZvclNvbGlkQ29sb3IoKSBkb2Vzbid0IHNldCBtX2No
ZWNrZWRGb3JTb2xpZENvbG9yIHVudGlsCi0gICAgICAgICAgICAvLyBpdCBnZXRzIGVub3VnaCBp
bmZvcm1hdGlvbiB0byBtYWtlIGZpbmFsIGRlY2lzaW9uLgotI2lmICFPUyhXSU5DRSkKLSAgICAg
ICAgICAgIEFTU0VSVChtX2NoZWNrZWRGb3JTb2xpZENvbG9yKTsKLSNlbmRpZgotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBtX2lzU29saWRDb2xvciAmJiBtX2N1cnJlbnRGcmFtZSA9PSAwOwot
ICAgIH0KLSAgICB2aXJ0dWFsIENvbG9yIHNvbGlkQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX3Nv
bGlkQ29sb3I7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWF5RmlsbFdpdGhTb2xpZENvbG9yKCk7Cisg
ICAgdmlydHVhbCBDb2xvciBzb2xpZENvbG9yKCkgY29uc3Q7CiAgICAgCiAgICAgSW1hZ2VTb3Vy
Y2UgbV9zb3VyY2U7CiAgICAgbXV0YWJsZSBJbnRTaXplIG1fc2l6ZTsgLy8gVGhlIHNpemUgdG8g
dXNlIGZvciB0aGUgb3ZlcmFsbCBpbWFnZSAod2lsbCBqdXN0IGJlIHRoZSBzaXplIG9mIHRoZSBm
aXJzdCBpbWFnZSkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0JpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0JpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
Qml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWEuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3
IEBACisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJCaXRtYXBJbWFnZVNpbmdsZUZy
YW1lU2tpYS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgQml0bWFwSW1hZ2VTaW5n
bGVGcmFtZVNraWE6OmlzQml0bWFwSW1hZ2UoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIEJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhOjpjdXJyZW50RnJhbWVIYXNBbHBo
YSgpCit7CisgICAgcmV0dXJuICFtX25hdGl2ZUltYWdlLmJpdG1hcCgpLmlzT3BhcXVlKCk7Cit9
CisKK0ludFNpemUgQml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWE6OnNpemUoKSBjb25zdAorewor
ICAgIHJldHVybiBJbnRTaXplKG1fbmF0aXZlSW1hZ2UuYml0bWFwKCkud2lkdGgoKSwgbV9uYXRp
dmVJbWFnZS5iaXRtYXAoKS5oZWlnaHQoKSk7Cit9CisKKy8vIERvIG5vdGhpbmcsIGFzIHdlIG9u
bHkgaGF2ZSB0aGUgb25lIHJlcHJlc2VudGF0aW9uIG9mIGRhdGEgKGRlY29kZWQpLgordm9pZCBC
aXRtYXBJbWFnZVNpbmdsZUZyYW1lU2tpYTo6ZGVzdHJveURlY29kZWREYXRhKGJvb2wgZGVzdHJv
eUFsbCkKK3sKKworfQorCit1bnNpZ25lZCBCaXRtYXBJbWFnZVNpbmdsZUZyYW1lU2tpYTo6ZGVj
b2RlZFNpemUoKSBjb25zdAoreworICAgIHJldHVybiBtX25hdGl2ZUltYWdlLmRlY29kZWRTaXpl
KCk7Cit9CisKKy8vIFdlIG9ubHkgaGF2ZSBhIHNpbmdsZSBmcmFtZS4KK05hdGl2ZUltYWdlUHRy
IEJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgp
Cit7CisgICAgcmV0dXJuICZtX25hdGl2ZUltYWdlOworfQorCisjaWYgIUFTU0VSVF9ESVNBQkxF
RAorYm9vbCBCaXRtYXBJbWFnZVNpbmdsZUZyYW1lU2tpYTo6bm90U29saWRDb2xvcigpCit7Cisg
ICAgcmV0dXJuIG1fbmF0aXZlSW1hZ2UuYml0bWFwKCkud2lkdGgoKSAhPSAxIHx8IG1fbmF0aXZl
SW1hZ2UuYml0bWFwKCkuaGVpZ2h0KCkgIT0gMTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
Qml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0JpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhLmgJKHJl
dmlzaW9uIDExMDQ1MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
Qml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWEuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsMzQgKzUx
LDIyIEBAIHB1YmxpYzoKICAgICAvLyByZWYnZWQpLgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJp
dG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhPiBjcmVhdGUoY29uc3QgU2tCaXRtYXAmLCBib29sIGNv
cHlQaXhlbHMpOwogCi0gICAgdmlydHVhbCBib29sIGlzQml0bWFwSW1hZ2UoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzQml0bWFwSW1hZ2UoKSBjb25zdDsKIAot
ICAgIHZpcnR1YWwgYm9vbCBjdXJyZW50RnJhbWVIYXNBbHBoYSgpIHsgcmV0dXJuICFtX25hdGl2
ZUltYWdlLmJpdG1hcCgpLmlzT3BhcXVlKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY3VycmVudEZy
YW1lSGFzQWxwaGEoKTsKIAotICAgIHZpcnR1YWwgSW50U2l6ZSBzaXplKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiBJbnRTaXplKG1fbmF0aXZlSW1hZ2UuYml0bWFwKCkud2lkdGgoKSwg
bV9uYXRpdmVJbWFnZS5iaXRtYXAoKS5oZWlnaHQoKSk7Ci0gICAgfQorICAgIHZpcnR1YWwgSW50
U2l6ZSBzaXplKCkgY29uc3Q7CiAKICAgICAvLyBEbyBub3RoaW5nLCBhcyB3ZSBvbmx5IGhhdmUg
dGhlIG9uZSByZXByZXNlbnRhdGlvbiBvZiBkYXRhIChkZWNvZGVkKS4KLSAgICB2aXJ0dWFsIHZv
aWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgZGVzdHJveUFsbCA9IHRydWUpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsID0gdHJ1ZSk7CiAK
LSAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBtX25hdGl2ZUltYWdlLmRlY29kZWRTaXplKCk7Ci0gICAgfQorICAgIHZpcnR1YWwg
dW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdDsKIAogICAgIC8vIFdlIG9ubHkgaGF2ZSBhIHNp
bmdsZSBmcmFtZS4KLSAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3Vy
cmVudEZyYW1lKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAmbV9uYXRpdmVJbWFnZTsKLSAgICB9
CisgICAgdmlydHVhbCBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgp
OwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgIHZpcnR1YWwgYm9vbCBub3RTb2xpZENvbG9y
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX25hdGl2ZUltYWdlLmJpdG1hcCgpLndpZHRoKCkg
IT0gMSB8fCBtX25hdGl2ZUltYWdlLmJpdG1hcCgpLmhlaWdodCgpICE9IDE7Ci0gICAgfQorICAg
IHZpcnR1YWwgYm9vbCBub3RTb2xpZENvbG9yKCk7CiAjZW5kaWYKIAogcHJvdGVjdGVkOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132878</attachid>
            <date>2012-03-20 12:24:55 -0700</date>
            <delta_ts>2012-03-21 10:44:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81688-20120320152454.patch</filename>
            <type>text/plain</type>
            <size>10161</size>
            <attacher name="Tom Hudson">tomhudson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTQyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAzLTIwICBUb20gSHVk
c29uICA8dG9taHVkc29uQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW5jcmVtZW50YWwgY2xlYW51
cCBvZiBCaXRtYXBJbWFnZTogaW5saW5lZCB2aXJ0dWFsIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2ODgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25h
bGl0eSwgc28gbm8gbmV3IHRlc3RzLgorCisgICAgICAgIE1vdmUgdmlydHVhbCBmdW5jdGlvbnMg
ZGVmaW5lZCBpbiBoZWFkZXJzIGludG8gLmNwcCBmaWxlcy4KKworICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aXNCaXRtYXBJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpoYXNTaW5nbGVTZWN1cml0eU9y
aWdpbik6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmN1cnJlbnRGcmFtZUhh
c0FscGhhKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpub3RTb2xpZENvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkZWNvZGVkU2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6bWF5RmlsbFdpdGhTb2xpZENvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcEltYWdlOjpzb2xpZENvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5oOgorICAgICAgICAoQml0bWFwSW1hZ2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3NraWEvQml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWEuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2VTaW5n
bGVGcmFtZVNraWE6OmlzQml0bWFwSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1h
Z2VTaW5nbGVGcmFtZVNraWE6OmN1cnJlbnRGcmFtZUhhc0FscGhhKToKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhOjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWE6OmRlY29kZWRTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhOjpuYXRpdmVJbWFnZUZv
ckN1cnJlbnRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZVNpbmdsZUZyYW1l
U2tpYTo6bm90U29saWRDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9C
aXRtYXBJbWFnZVNpbmdsZUZyYW1lU2tpYS5oOgorICAgICAgICAoQml0bWFwSW1hZ2VTaW5nbGVG
cmFtZVNraWEpOgorCiAyMDEyLTAzLTIwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjExMTIyOSk6IGNzczEvYmFzaWMvaW5oZXJpdGFuY2Uu
aHRtbCBpcyBmYWlsaW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMTA0NTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTM3NjksNiAr
Mzc2OSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGlsZVF0LmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvcXQvVHJhbnNmb3JtYXRpb25NYXRyaXhR
dC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RyYW5zcGFyZW5jeUxh
eWVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvQml0bWFwSW1hZ2VT
aW5nbGVGcmFtZVNraWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0JpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvRmxvYXRQb2ludFNraWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9za2lhL0Zsb2F0UmVjdFNraWEuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAJKHJldmlzaW9uIDExMDQ1MikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzMsNiArNzMsMTcgQEAgQml0bWFwSW1hZ2U6On5CaXRtYXBJbWFnZSgp
CiAgICAgc3RvcEFuaW1hdGlvbigpOwogfQogCitib29sIEJpdG1hcEltYWdlOjppc0JpdG1hcElt
YWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBCaXRtYXBJbWFnZTo6
aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQor
CisKIHZvaWQgQml0bWFwSW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YShib29sIGRlc3Ryb3lBbGwp
CiB7CiAgICAgaW50IGZyYW1lc0NsZWFyZWQgPSAwOwpAQCAtMjkwLDYgKzMwMSwxMSBAQCBmbG9h
dCBCaXRtYXBJbWFnZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoCiAgICAgcmV0dXJuIG1fZnJhbWVz
W2luZGV4XS5tX2R1cmF0aW9uOwogfQogCitOYXRpdmVJbWFnZVB0ciBCaXRtYXBJbWFnZTo6bmF0
aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKQoreworICAgIHJldHVybiBmcmFtZUF0SW5kZXgoY3Vy
cmVudEZyYW1lKCkpOworfQorCiBib29sIEJpdG1hcEltYWdlOjpmcmFtZUhhc0FscGhhQXRJbmRl
eChzaXplX3QgaW5kZXgpCiB7CiAgICAgaWYgKGluZGV4ID49IGZyYW1lQ291bnQoKSkKQEAgLTMw
MSw2ICszMTcsMjAgQEAgYm9vbCBCaXRtYXBJbWFnZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgocwog
ICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9oYXNBbHBoYTsKIH0KIAorYm9vbCBCaXRtYXBJ
bWFnZTo6Y3VycmVudEZyYW1lSGFzQWxwaGEoKQoreworICAgIHJldHVybiBmcmFtZUhhc0FscGhh
QXRJbmRleChjdXJyZW50RnJhbWUoKSk7Cit9CisKKyNpZiAhQVNTRVJUX0RJU0FCTEVECitib29s
IEJpdG1hcEltYWdlOjpub3RTb2xpZENvbG9yKCkKK3sKKyAgICByZXR1cm4gc2l6ZSgpLndpZHRo
KCkgIT0gMSB8fCBzaXplKCkuaGVpZ2h0KCkgIT0gMSB8fCBmcmFtZUNvdW50KCkgPiAxOworfQor
I2VuZGlmCisKKworCiBpbnQgQml0bWFwSW1hZ2U6OnJlcGV0aXRpb25Db3VudChib29sIGltYWdl
S25vd25Ub0JlQ29tcGxldGUpCiB7CiAgICAgaWYgKChtX3JlcGV0aXRpb25Db3VudFN0YXR1cyA9
PSBVbmtub3duKSB8fCAoKG1fcmVwZXRpdGlvbkNvdW50U3RhdHVzID09IFVuY2VydGFpbikgJiYg
aW1hZ2VLbm93blRvQmVDb21wbGV0ZSkpIHsKQEAgLTQzNiw2ICs0NjYsMTMgQEAgdm9pZCBCaXRt
YXBJbWFnZTo6cmVzZXRBbmltYXRpb24oKQogICAgIGRlc3Ryb3lEZWNvZGVkRGF0YUlmTmVjZXNz
YXJ5KHRydWUpOwogfQogCit1bnNpZ25lZCBCaXRtYXBJbWFnZTo6ZGVjb2RlZFNpemUoKSBjb25z
dAoreworICAgIHJldHVybiBtX2RlY29kZWRTaXplOworfQorCisKKwogdm9pZCBCaXRtYXBJbWFn
ZTo6YWR2YW5jZUFuaW1hdGlvbihUaW1lcjxCaXRtYXBJbWFnZT4qKQogewogICAgIGludGVybmFs
QWR2YW5jZUFuaW1hdGlvbihmYWxzZSk7CkBAIC00ODQsNCArNTIxLDIyIEBAIGJvb2wgQml0bWFw
SW1hZ2U6OmludGVybmFsQWR2YW5jZUFuaW1hdGkKICAgICByZXR1cm4gYWR2YW5jZWRBbmltYXRp
b247CiB9CiAKK2Jvb2wgQml0bWFwSW1hZ2U6Om1heUZpbGxXaXRoU29saWRDb2xvcigpCit7Cisg
ICAgaWYgKCFtX2NoZWNrZWRGb3JTb2xpZENvbG9yICYmIGZyYW1lQ291bnQoKSA+IDApIHsKKyAg
ICAgICAgY2hlY2tGb3JTb2xpZENvbG9yKCk7CisgICAgICAgIC8vIFdJTkNFIFBPUlQ6IGNoZWNr
Rm9yU29saWRDb2xvcigpIGRvZXNuJ3Qgc2V0IG1fY2hlY2tlZEZvclNvbGlkQ29sb3IgdW50aWwK
KyAgICAgICAgLy8gaXQgZ2V0cyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gbWFrZSBmaW5hbCBkZWNp
c2lvbi4KKyNpZiAhT1MoV0lOQ0UpCisgICAgICAgIEFTU0VSVChtX2NoZWNrZWRGb3JTb2xpZENv
bG9yKTsKKyNlbmRpZgorICAgIH0KKyAgICByZXR1cm4gbV9pc1NvbGlkQ29sb3IgJiYgIW1fY3Vy
cmVudEZyYW1lOworfQorCitDb2xvciBCaXRtYXBJbWFnZTo6c29saWRDb2xvcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fc29saWRDb2xvcjsKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCShyZXZpc2lvbiAxMTA0NTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsOSArMTA4LDkgQEAgcHVibGljOgogICAgIH0KICAgICB+Qml0bWFwSW1h
Z2UoKTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaXNCaXRtYXBJbWFnZSgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNCaXRtYXBJbWFnZSgpIGNvbnN0OwogCi0g
ICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0
OwogCiAgICAgdmlydHVhbCBJbnRTaXplIHNpemUoKSBjb25zdDsKICAgICBJbnRTaXplIGN1cnJl
bnRGcmFtZVNpemUoKSBjb25zdDsKQEAgLTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHN0b3BBbmltYXRpb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRp
b24oKTsKICAgICAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9kZWNvZGVkU2l6ZTsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgZGVjb2RlZFNpemUo
KSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBBY2Nlc3NvcnMgZm9yIG5hdGl2
ZSBpbWFnZSBmb3JtYXRzLgpAQCAtMTUxLDE1ICsxNTEsMTIgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgR2RrUGl4YnVmKiBnZXRHZGtQaXhidWYoKTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBOYXRp
dmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuIGZyYW1lQXRJ
bmRleChjdXJyZW50RnJhbWUoKSk7IH0KKyAgICB2aXJ0dWFsIE5hdGl2ZUltYWdlUHRyIG5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CiAgICAgYm9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChz
aXplX3QpOwotICAgIHZpcnR1YWwgYm9vbCBjdXJyZW50RnJhbWVIYXNBbHBoYSgpIHsgcmV0dXJu
IGZyYW1lSGFzQWxwaGFBdEluZGV4KGN1cnJlbnRGcmFtZSgpKTsgfQorICAgIHZpcnR1YWwgYm9v
bCBjdXJyZW50RnJhbWVIYXNBbHBoYSgpOwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgIHZp
cnR1YWwgYm9vbCBub3RTb2xpZENvbG9yKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzaXplKCku
d2lkdGgoKSAhPSAxIHx8IHNpemUoKS5oZWlnaHQoKSAhPSAxIHx8IGZyYW1lQ291bnQoKSA+IDE7
Ci0gICAgfQorICAgIHZpcnR1YWwgYm9vbCBub3RTb2xpZENvbG9yKCk7CiAjZW5kaWYKIAogcHJv
dGVjdGVkOgpAQCAtMjM5LDE5ICsyMzYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gY2hhbmdlZC4K
ICAgICB2b2lkIGNoZWNrRm9yU29saWRDb2xvcigpOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBt
YXlGaWxsV2l0aFNvbGlkQ29sb3IoKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2NoZWNrZWRGb3JT
b2xpZENvbG9yICYmIGZyYW1lQ291bnQoKSA+IDApIHsKLSAgICAgICAgICAgIGNoZWNrRm9yU29s
aWRDb2xvcigpOwotICAgICAgICAgICAgLy8gV0lOQ0UgUE9SVDogY2hlY2tGb3JTb2xpZENvbG9y
KCkgZG9lc24ndCBzZXQgbV9jaGVja2VkRm9yU29saWRDb2xvciB1bnRpbAotICAgICAgICAgICAg
Ly8gaXQgZ2V0cyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gbWFrZSBmaW5hbCBkZWNpc2lvbi4KLSNp
ZiAhT1MoV0lOQ0UpCi0gICAgICAgICAgICBBU1NFUlQobV9jaGVja2VkRm9yU29saWRDb2xvcik7
Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbV9pc1NvbGlkQ29sb3IgJiYgbV9j
dXJyZW50RnJhbWUgPT0gMDsKLSAgICB9Ci0gICAgdmlydHVhbCBDb2xvciBzb2xpZENvbG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9zb2xpZENvbG9yOyB9CisgICAgdmlydHVhbCBib29sIG1heUZpbGxX
aXRoU29saWRDb2xvcigpOworICAgIHZpcnR1YWwgQ29sb3Igc29saWRDb2xvcigpIGNvbnN0Owog
ICAgIAogICAgIEltYWdlU291cmNlIG1fc291cmNlOwogICAgIG11dGFibGUgSW50U2l6ZSBtX3Np
emU7IC8vIFRoZSBzaXplIHRvIHVzZSBmb3IgdGhlIG92ZXJhbGwgaW1hZ2UgKHdpbGwganVzdCBi
ZSB0aGUgc2l6ZSBvZiB0aGUgZmlyc3QgaW1hZ2UpLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9CaXRtYXBJbWFnZVNpbmdsZUZyYW1lU2tpYS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9CaXRtYXBJbWFn
ZVNpbmdsZUZyYW1lU2tpYS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0JpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NyBAQAorI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAi
Qml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWEuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCiti
b29sIEJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhOjppc0JpdG1hcEltYWdlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBCaXRtYXBJbWFnZVNpbmdsZUZyYW1lU2tpYTo6
Y3VycmVudEZyYW1lSGFzQWxwaGEoKQoreworICAgIHJldHVybiAhbV9uYXRpdmVJbWFnZS5iaXRt
YXAoKS5pc09wYXF1ZSgpOworfQorCitJbnRTaXplIEJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lh
OjpzaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gSW50U2l6ZShtX25hdGl2ZUltYWdlLmJpdG1h
cCgpLndpZHRoKCksIG1fbmF0aXZlSW1hZ2UuYml0bWFwKCkuaGVpZ2h0KCkpOworfQorCisvLyBE
byBub3RoaW5nLCBhcyB3ZSBvbmx5IGhhdmUgdGhlIG9uZSByZXByZXNlbnRhdGlvbiBvZiBkYXRh
IChkZWNvZGVkKS4KK3ZvaWQgQml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWE6OmRlc3Ryb3lEZWNv
ZGVkRGF0YShib29sIGRlc3Ryb3lBbGwpCit7CisKK30KKwordW5zaWduZWQgQml0bWFwSW1hZ2VT
aW5nbGVGcmFtZVNraWE6OmRlY29kZWRTaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uYXRp
dmVJbWFnZS5kZWNvZGVkU2l6ZSgpOworfQorCisvLyBXZSBvbmx5IGhhdmUgYSBzaW5nbGUgZnJh
bWUuCitOYXRpdmVJbWFnZVB0ciBCaXRtYXBJbWFnZVNpbmdsZUZyYW1lU2tpYTo6bmF0aXZlSW1h
Z2VGb3JDdXJyZW50RnJhbWUoKQoreworICAgIHJldHVybiAmbV9uYXRpdmVJbWFnZTsKK30KKwor
I2lmICFBU1NFUlRfRElTQUJMRUQKK2Jvb2wgQml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWE6Om5v
dFNvbGlkQ29sb3IoKQoreworICAgIHJldHVybiBtX25hdGl2ZUltYWdlLmJpdG1hcCgpLndpZHRo
KCkgIT0gMSB8fCBtX25hdGl2ZUltYWdlLmJpdG1hcCgpLmhlaWdodCgpICE9IDE7Cit9CisjZW5k
aWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0JpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9CaXRtYXBJbWFnZVNp
bmdsZUZyYW1lU2tpYS5oCShyZXZpc2lvbiAxMTA0NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0JpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDM0ICs1MSwyMiBAQCBwdWJsaWM6CiAgICAgLy8gcmVmJ2VkKS4KICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxCaXRtYXBJbWFnZVNpbmdsZUZyYW1lU2tpYT4gY3JlYXRlKGNvbnN0
IFNrQml0bWFwJiwgYm9vbCBjb3B5UGl4ZWxzKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0JpdG1h
cEltYWdlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0JpdG1h
cEltYWdlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY3VycmVudEZyYW1lSGFzQWxwaGEo
KSB7IHJldHVybiAhbV9uYXRpdmVJbWFnZS5iaXRtYXAoKS5pc09wYXF1ZSgpOyB9CisgICAgdmly
dHVhbCBib29sIGN1cnJlbnRGcmFtZUhhc0FscGhhKCk7CiAKLSAgICB2aXJ0dWFsIEludFNpemUg
c2l6ZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gSW50U2l6ZShtX25hdGl2ZUltYWdl
LmJpdG1hcCgpLndpZHRoKCksIG1fbmF0aXZlSW1hZ2UuYml0bWFwKCkuaGVpZ2h0KCkpOwotICAg
IH0KKyAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0OwogCiAgICAgLy8gRG8gbm90aGlu
ZywgYXMgd2Ugb25seSBoYXZlIHRoZSBvbmUgcmVwcmVzZW50YXRpb24gb2YgZGF0YSAoZGVjb2Rl
ZCkuCi0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29sIGRlc3Ryb3lBbGwg
PSB0cnVlKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgZGVz
dHJveUFsbCA9IHRydWUpOwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9uYXRpdmVJbWFnZS5kZWNvZGVkU2l6ZSgpOwot
ICAgIH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3Q7CiAKICAgICAv
LyBXZSBvbmx5IGhhdmUgYSBzaW5nbGUgZnJhbWUuCi0gICAgdmlydHVhbCBOYXRpdmVJbWFnZVB0
ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpCi0gICAgewotICAgICAgICByZXR1cm4gJm1f
bmF0aXZlSW1hZ2U7Ci0gICAgfQorICAgIHZpcnR1YWwgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1h
Z2VGb3JDdXJyZW50RnJhbWUoKTsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICB2aXJ0dWFs
IGJvb2wgbm90U29saWRDb2xvcigpCi0gICAgewotICAgICAgICByZXR1cm4gbV9uYXRpdmVJbWFn
ZS5iaXRtYXAoKS53aWR0aCgpICE9IDEgfHwgbV9uYXRpdmVJbWFnZS5iaXRtYXAoKS5oZWlnaHQo
KSAhPSAxOwotICAgIH0KKyAgICB2aXJ0dWFsIGJvb2wgbm90U29saWRDb2xvcigpOwogI2VuZGlm
CiAKIHByb3RlY3RlZDoK
</data>

          </attachment>
      

    </bug>

</bugzilla>