<?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>43088</bug_id>
          
          <creation_ts>2010-07-27 15:42:01 -0700</creation_ts>
          <short_desc>[GTK] Use GdkPixbuf for ImageBuffer::toDataURL</short_desc>
          <delta_ts>2010-08-03 05:32:31 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256900</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-07-27 15:42:01 -0700</bug_when>
    <thetext>Currently, this method is implemented via Cairo, and so does not have access to the richer set of image types that GdkPixbuf supports. Unfortunately, GdkPixbuf cannot write GIF files, so that format will still be unsupported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256914</commentid>
    <comment_count>1</comment_count>
      <attachid>62763</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-07-27 15:54:58 -0700</bug_when>
    <thetext>Created attachment 62763
Use GdkPixbuf for toDataURL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256917</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-27 15:57:05 -0700</bug_when>
    <thetext>Attachment 62763 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/graphics/gtk/CairoUtilities.h:29:  cairo_surface_t is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/platform/graphics/gtk/ImageBufferGtk.cpp:64:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/platform/graphics/gtk/ImageBufferGtk.cpp:66:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 3 in 9 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>256925</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-07-27 16:10:59 -0700</bug_when>
    <thetext>The first error is a false positive, because I just add the cairo typedef to avoid the include. The second error I&apos;ve filed a bug for here: https://bugs.webkit.org/show_bug.cgi?id=43090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259099</commentid>
    <comment_count>4</comment_count>
      <attachid>62763</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-08-02 14:03:48 -0700</bug_when>
    <thetext>Comment on attachment 62763
Use GdkPixbuf for toDataURL

The code in ImageBufferGtk should probably be LGPL, but other than that it looks OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259196</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-08-02 16:52:22 -0700</bug_when>
    <thetext>Committed r64506: &lt;http://trac.webkit.org/changeset/64506&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259217</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-02 17:31:53 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64506 might have broken GTK Linux 64-bit Debug
The following changes are on the blame list:
http://trac.webkit.org/changeset/64506
http://trac.webkit.org/changeset/64507</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259249</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-08-02 19:01:41 -0700</bug_when>
    <thetext>Committed r64521: &lt;http://trac.webkit.org/changeset/64521&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259391</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-03 05:32:31 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64521 might have broken Leopard Intel Debug (Tests)
The following changes are on the blame list:
http://trac.webkit.org/changeset/64517
http://trac.webkit.org/changeset/64518
http://trac.webkit.org/changeset/64519
http://trac.webkit.org/changeset/64520
http://trac.webkit.org/changeset/64521
http://trac.webkit.org/changeset/64522
http://trac.webkit.org/changeset/64523
http://trac.webkit.org/changeset/64524
http://trac.webkit.org/changeset/64525
http://trac.webkit.org/changeset/64526
http://trac.webkit.org/changeset/64527</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62763</attachid>
            <date>2010-07-27 15:54:58 -0700</date>
            <delta_ts>2010-08-02 14:03:48 -0700</delta_ts>
            <desc>Use GdkPixbuf for toDataURL</desc>
            <filename>bug-43088-20100727155458.patch</filename>
            <type>text/plain</type>
            <size>18807</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZjlhNTc0Y2IwN2VmZGQ0MDc5ODM1ODgzZjc1MzBiYTlhYzFhMzEyLi5mYTNiNDFh
ZTA4ZDgyMTI1ZjQ1ODA4YTI0NWJkYjdiODk1ZDRiNWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAK
IDIwMTAtMDctMjcgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFVzZSBH
ZGtQaXhidWYgZm9yIEltYWdlQnVmZmVyOjp0b0RhdGFVUkwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMDg4CisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvU2tpcHBlZDogR2VuZXJhdGUgcmVzdWx0cyBmb3IgYSB0b0RhdGFVUkwgdGVzdCBhbmQgdW5z
a2lwIGl0LgorCisyMDEwLTA3LTI3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLgogCiAgICAgICAgIFVuc2tpcCBhIHRlc3QgdGhh
dCBpcyBwYXNzaW5nIGFuZCBhZGQgZXhwZWN0ZWQgcmVzdWx0cyB0byBhbm90aGVyLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZAppbmRleCAzODk2ZjhiNDgwMGVkMzhmZGVlZDJlNDAwYmQ1YTQ2NTQ0
OTI2NTU5Li5hOTljZDE3YzU1Y2MzOTY0NmNhZWMyYWY3MWY2ZDAxMjgxZjI1MzZhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMTA4MSw3ICsxMDgxLDYgQEAgZmFzdC9jYW52YXMvY2Fu
dmFzLXRyYW5zZm9ybS1ub24taW52ZXJ0aWJsZS5odG1sCiBmYXN0L2NhbnZhcy9jYW52YXMtdHJh
bnNmb3JtLXNrZXdlZC5odG1sCiBmYXN0L2NhbnZhcy9jYW52YXMtem9vbS5odG1sCiBmYXN0L2Nh
bnZhcy9wb2ludEluUGF0aC5odG1sCi1mYXN0L2NhbnZhcy90b0RhdGFVUkwtc3VwcG9ydGVkVHlw
ZXMuaHRtbAogZmFzdC9jc3MvY3NzMV9mb3J3YXJkX2NvbXBhdGlibGVfcGFyc2luZy5odG1sCiBm
YXN0L2Nzcy9pbnZhbGlkLXBlcmNlbnRhZ2UtcHJvcGVydHkuaHRtbAogZmFzdC9jc3MvdGV4dC1h
bGlnbi5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGIzM2UxZmE1Y2Y0ZWQ2YWM2ZDAzYWQyM2YwMGY4YmIzNzE2NGY3ZWIuLmEyMWM4
MmNkNTYwZThkODJhMjJiNjE2YjA1YmZkYWRlYWI3MzM4YmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAt
MDctMjcgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFVzZSBHZGtQaXhi
dWYgZm9yIEltYWdlQnVmZmVyOjp0b0RhdGFVUkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMDg4CisKKyAgICAgICAgSW1wbGVtZW50IEltYWdlQnVm
ZmVyOjp0b0RhdGFVUkwgd2l0aCBHZGtQaXhidWYgaW5zdGVhZCBvZiBDYWlyby4gVGhpcworICAg
ICAgICBhbGxvd3MgdGhlIG1ldGhvZCB0byBzdXBwb3J0IGEgbGFyZ2VyIHZhcmlldHkgb2YgaW1h
Z2UgdHlwZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkIG5ldyBmaWxlcyB0byB0
aGUgc291cmNlIGxpc3QuCisgICAgICAgICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHA6
IAorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZVN1cHBvcnRlZEltYWdlTUlNRVR5cGVzRm9y
RW5jb2RpbmcpOgorICAgICAgICBBZGQgdGhlIGxpc3Qgb2YgaW1hZ2UgdHlwZXMgc3VwcG9ydGVk
IGJ5IEdUSy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNh
aXJvLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ2Fpcm9VdGlsaXRpZXMu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKGdldENhaXJvU3VyZmFjZVBpeGVsKTogTW92ZSB0aGlzIG1l
dGhvZCBmcm9tIEltYWdlR3RrLmNwcC4KKyAgICAgICAgKGdldEdka1BpeGJ1ZlBpeGVsKTogTW92
ZSB0aGlzIG1ldGhvZCBmcm9tIEltYWdlR3RrLmNwcC4KKyAgICAgICAgKGNhaXJvSW1hZ2VTdXJm
YWNlVG9HZGtQaXhidWYpOiBNb3ZlIHRoaXMgbWV0aG9kIGZyb20gSW1hZ2VHdGsuY3BwLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9DYWlyb1V0aWxpdGllcy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW1hZ2VCdWZmZXJHdGsuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjp0b0RhdGFVUkwpOiBVc2UgR2RrUGl4YnVm
IHRvIGRvIHRoZSBjb252ZXJzaW9uIHRvIGEgZGF0YSB1cmwuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3RrL0ltYWdlR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdl
OjpnZXRHZGtQaXhidWYpOiBVc2UgdGhlIG5ldyBoZWxwZXIgbWV0aG9kIGluIENhaXJvVXRpbGl0
aWVzLmguCisKIDIwMTAtMDctMjcgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCmluZGV4IDZmZWZjOGJhMzczZWFkZTY3YzUxZWRjZDVmZjE5MmI1ODY3ODA0ZWQuLjdiZTQ3
NTQ1ZWUxZmQ1ODU1NzgzNTVmNjNiMDlkNzJiZDFjYjUzMDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjQxOSw4ICsy
NDE5LDExIEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8uY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9Db2xvckd0ay5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0NhaXJvVXRpbGl0aWVzLmNwcCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
Q2Fpcm9VdGlsaXRpZXMuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEd0
ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ljb25HdGsuY3BwIFwKKwlX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbWFnZUJ1ZmZlckd0ay5jcHAgXAogCVdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ltYWdlR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvSW50UG9pbnRHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9JbnRSZWN0R3RrLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL01J
TUVUeXBlUmVnaXN0cnkuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNw
cAppbmRleCAzNzQwMTQ0YTk3M2I3MjQyNDg1YzFkNDkzYTFlMzQ2NmU1ZjRhYmViLi5iNGNjMmZh
NzJlNzAyZTVjZDM1NzE4OTVhZTIzYTQzNzZhMjc5NDEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5
cGVSZWdpc3RyeS5jcHAKQEAgLTE1Niw2ICsxNTYsMTIgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6
ZVN1cHBvcnRlZEltYWdlTUlNRVR5cGVzRm9yRW5jb2RpbmcoKQogICAgIH0KIAogICAgIHN1cHBv
cnRlZEltYWdlTUlNRVR5cGVzRm9yRW5jb2RpbmctPnJlbW92ZSgiYXBwbGljYXRpb24vb2N0ZXQt
c3RyZWFtIik7CisjZWxpZiBQTEFURk9STShHVEspCisgICAgc3VwcG9ydGVkSW1hZ2VNSU1FVHlw
ZXNGb3JFbmNvZGluZy0+YWRkKCJpbWFnZS9wbmciKTsKKyAgICBzdXBwb3J0ZWRJbWFnZU1JTUVU
eXBlc0ZvckVuY29kaW5nLT5hZGQoImltYWdlL2pwZWciKTsKKyAgICBzdXBwb3J0ZWRJbWFnZU1J
TUVUeXBlc0ZvckVuY29kaW5nLT5hZGQoImltYWdlL3RpZmYiKTsKKyAgICBzdXBwb3J0ZWRJbWFn
ZU1JTUVUeXBlc0ZvckVuY29kaW5nLT5hZGQoImltYWdlL2JtcCIpOworICAgIHN1cHBvcnRlZElt
YWdlTUlNRVR5cGVzRm9yRW5jb2RpbmctPmFkZCgiaW1hZ2UvaWNvIik7CiAjZWxpZiBQTEFURk9S
TShDQUlSTykKICAgICBzdXBwb3J0ZWRJbWFnZU1JTUVUeXBlc0ZvckVuY29kaW5nLT5hZGQoImlt
YWdlL3BuZyIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAppbmRleCBjMjk4ZTE4Yzg4ZmM4Njg2NTBjOTgyMTIz
ZmQwZWFiMDc2ZjEyZDIxLi4xYTQzZTU0YmFhNDFkYWU1ZTM3YzFiNTkxMGU1ZTNhYWNjOTU5ZTE3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZm
ZXJDYWlyby5jcHAKQEAgLTI3Nyw2ICsyNzcsNyBAQCB2b2lkIEltYWdlQnVmZmVyOjpwdXRQcmVt
dWx0aXBsaWVkSW1hZ2VEYXRhKEltYWdlRGF0YSogc291cmNlLCBjb25zdCBJbnRSZWN0JiBzbwog
ICAgIHB1dEltYWdlRGF0YTxQcmVtdWx0aXBsaWVkPihzb3VyY2UsIHNvdXJjZVJlY3QsIGRlc3RQ
b2ludCwgbV9kYXRhLCBtX3NpemUpOwogfQogCisjaWYgIVBMQVRGT1JNKEdUSykKIHN0YXRpYyBj
YWlyb19zdGF0dXNfdCB3cml0ZUZ1bmN0aW9uKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHVuc2lnbmVk
IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGludCBsZW5ndGgpCiB7CiAgICAgVmVjdG9yPGNoYXI+KiBp
biA9IHJlaW50ZXJwcmV0X2Nhc3Q8VmVjdG9yPGNoYXI+Kj4oY2xvc3VyZSk7CkBAIC0zMDMsNSAr
MzA0LDYgQEAgU3RyaW5nIEltYWdlQnVmZmVyOjp0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgY29uc3QgZG91YmxlKikgY29uc3QKIAogICAgIHJldHVybiAiZGF0YToiICsgYWN0dWFs
TWltZVR5cGUgKyAiO2Jhc2U2NCwiICsgU3RyaW5nKG91dC5kYXRhKCksIG91dC5zaXplKCkpOwog
fQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0NhaXJvVXRpbGl0aWVzLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0NhaXJvVXRpbGl0aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWUwMGYwODE1
ZGU3OTM3MzRlMTZiNmVkNDNjNjJhNGZlN2UwMTU2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ2Fpcm9VdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsOTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPGNh
aXJvLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNo
YXIqIGdldENhaXJvU3VyZmFjZVBpeGVsKHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIHgs
IHVuc2lnbmVkIHksIHVuc2lnbmVkIHJvd1N0cmlkZSkKK3sKKyAgICByZXR1cm4gZGF0YSArICh5
ICogcm93U3RyaWRlKSArIHggKiA0OworfQorCitzdGF0aWMgaW5saW5lIGd1Y2hhciogZ2V0R2Rr
UGl4YnVmUGl4ZWwoZ3VjaGFyKiBkYXRhLCB1bnNpZ25lZCB4LCB1bnNpZ25lZCB5LCB1bnNpZ25l
ZCByb3dTdHJpZGUpCit7CisgICAgcmV0dXJuIGRhdGEgKyAoeSAqIHJvd1N0cmlkZSkgKyB4ICog
NDsKK30KKworR2RrUGl4YnVmKiBjYWlyb0ltYWdlU3VyZmFjZVRvR2RrUGl4YnVmKGNhaXJvX3N1
cmZhY2VfdCogc3VyZmFjZSkKK3sKKyAgICBpbnQgd2lkdGggPSBjYWlyb19pbWFnZV9zdXJmYWNl
X2dldF93aWR0aChzdXJmYWNlKTsKKyAgICBpbnQgaGVpZ2h0ID0gY2Fpcm9faW1hZ2Vfc3VyZmFj
ZV9nZXRfaGVpZ2h0KHN1cmZhY2UpOworICAgIHVuc2lnbmVkIGNoYXIqIHN1cmZhY2VEYXRhID0g
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzdXJmYWNlKTsKKyAgICBpbnQgc3VyZmFjZVJv
d1N0cmlkZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlKTsKKworICAg
IEdka1BpeGJ1ZiogZGVzdCA9IGdka19waXhidWZfbmV3KEdES19DT0xPUlNQQUNFX1JHQiwgVFJV
RSwgOCwgd2lkdGgsIGhlaWdodCk7CisgICAgaWYgKCFkZXN0KQorICAgICAgICByZXR1cm4gMDsK
KworICAgIGd1Y2hhciogcGl4YnVmRGF0YSA9IGdka19waXhidWZfZ2V0X3BpeGVscyhkZXN0KTsK
KyAgICBpbnQgcGl4YnVmUm93U3RyaWRlID0gZ2RrX3BpeGJ1Zl9nZXRfcm93c3RyaWRlKGRlc3Qp
OworCisgICAgLyogRnJvbTogaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnL21hbnVhbC9jYWlyby1p
bWFnZS1zdXJmYWNlLmh0bWwjY2Fpcm8tZm9ybWF0LXQKKyAgICAgKiAiQ0FJUk9fRk9STUFUX0FS
R0IzMjogZWFjaCBwaXhlbCBpcyBhIDMyLWJpdCBxdWFudGl0eSwgd2l0aCBhbHBoYSBpbgorICAg
ICAqIHRoZSB1cHBlciA4IGJpdHMsIHRoZW4gcmVkLCB0aGVuIGdyZWVuLCB0aGVuIGJsdWUuIFRo
ZSAzMi1iaXQKKyAgICAgKiBxdWFudGl0aWVzIGFyZSBzdG9yZWQgbmF0aXZlLWVuZGlhbi4gUHJl
LW11bHRpcGxpZWQgYWxwaGEgaXMgdXNlZC4KKyAgICAgKiAoVGhhdCBpcywgNTAlIHRyYW5zcGFy
ZW50IHJlZCBpcyAweDgwODAwMDAwLCBub3QgMHg4MGZmMDAwMC4pIgorICAgICAqCisgICAgICog
U2VlIGh0dHA6Ly9kZXZlbG9wZXIuZ2ltcC5vcmcvYXBpLzIuMC9nZGstcGl4YnVmL2dkay1waXhi
dWYtZ2RrLXBpeGJ1Zi5odG1sI0dka1BpeGJ1ZgorICAgICAqIGZvciBpbmZvcm1hdGlvbiBvbiB0
aGUgc3RydWN0dXJlIG9mIEdka1BpeGJ1ZnMgc3RvcmVkIHdpdGggR0RLX0NPTE9SU1BBQ0VfUkdC
LgorICAgICAqCisgICAgICogUkdCIGNvbG9yIGNoYW5uZWxzIGluIENBSVJPX0ZPUk1BVF9BUkdC
MzIgYXJlIHN0b3JlZCBiYXNlZCBvbiB0aGUKKyAgICAgKiBlbmRpYW5uZXNzIG9mIHRoZSBtYWNo
aW5lIGFuZCBhcmUgYWxzbyBtdWx0aXBsaWVkIGJ5IHRoZSBhbHBoYSBjaGFubmVsLgorICAgICAq
IFRvIHByb3Blcmx5IHRyYW5zZmVyIHRoZSBkYXRhIGZyb20gdGhlIENhaXJvIHN1cmZhY2Ugd2Ug
bXVzdCBkaXZpZGUgZWFjaAorICAgICAqIG9mIHRoZSBSR0IgY2hhbm5lbHMgYnkgdGhlIGFscGhh
IGNoYW5uZWwgYW5kIHRoZW4gcmVvcmRlciBhbGwgY2hhbm5lbHMKKyAgICAgKiBpZiB0aGlzIG1h
Y2hpbmUgaXMgbGl0dGxlLWVuZGlhbi4KKyAgICAgKi8KKyAgICBmb3IgKGludCB5ID0gMDsgeSA8
IGhlaWdodDsgeSsrKSB7CisgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgd2lkdGg7IHgrKykg
eworICAgICAgICAgICAgdW5zaWduZWQgY2hhciogc291cmNlID0gZ2V0Q2Fpcm9TdXJmYWNlUGl4
ZWwoc3VyZmFjZURhdGEsIHgsIHksIHN1cmZhY2VSb3dTdHJpZGUpOworICAgICAgICAgICAgZ3Vj
aGFyKiBkZXN0ID0gZ2V0R2RrUGl4YnVmUGl4ZWwocGl4YnVmRGF0YSwgeCwgeSwgcGl4YnVmUm93
U3RyaWRlKTsKKworI2lmIEdfQllURV9PUkRFUiA9PSBHX0xJVFRMRV9FTkRJQU4KKyAgICAgICAg
ICAgIGd1Y2hhciBhbHBoYSA9IHNvdXJjZVszXTsKKyAgICAgICAgICAgIGRlc3RbMF0gPSBhbHBo
YSA/ICgoc291cmNlWzJdICogMjU1KSAvIGFscGhhKSA6IDA7CisgICAgICAgICAgICBkZXN0WzFd
ID0gYWxwaGEgPyAoKHNvdXJjZVsxXSAqIDI1NSkgLyBhbHBoYSkgOiAwOworICAgICAgICAgICAg
ZGVzdFsyXSA9IGFscGhhID8gKChzb3VyY2VbMF0gKiAyNTUpIC8gYWxwaGEpIDogMDsKKyAgICAg
ICAgICAgIGRlc3RbM10gPSBhbHBoYTsKKyNlbHNlCisgICAgICAgICAgICBndWNoYXIgYWxwaGEg
PSBzb3VyY2VbMF07CisgICAgICAgICAgICBkZXN0WzBdID0gYWxwaGEgPyAoKHNvdXJjZVsxXSAq
IDI1NSkgLyBhbHBoYSkgOiAwOworICAgICAgICAgICAgZGVzdFsxXSA9IGFscGhhID8gKChzb3Vy
Y2VbMl0gKiAyNTUpIC8gYWxwaGEpIDogMDsKKyAgICAgICAgICAgIGRlc3RbMl0gPSBhbHBoYSA/
ICgoc291cmNlWzNdICogMjU1KSAvIGFscGhhKSA6IDA7CisgICAgICAgICAgICBkZXN0WzNdID0g
YWxwaGE7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBkZXN0OworfQor
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9DYWlyb1V0aWxpdGll
cy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ2Fpcm9VdGlsaXRpZXMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44OWViNDU4NzRlNzkwZjQ1N2FlNTIwOGM1ZDJiMjgwYzYyYjc3MDdiCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ2Fpcm9VdGlsaXRpZXMu
aApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBDYWlyb1V0aWxpdGllc19oCisjZGVmaW5lIENhaXJvVXRpbGl0aWVz
X2gKKwordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFjZV90OwordHlw
ZWRlZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhidWY7CitHZGtQaXhidWYqIGNhaXJvSW1hZ2VT
dXJmYWNlVG9HZGtQaXhidWYoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKTsKKworI2VuZGlmIC8v
IENhaXJvVXRpbGl0aWVzX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0ltYWdlQnVmZmVyR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0lt
YWdlQnVmZmVyR3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjIyZmQyN2U1ODg0NzA2ZmQ5ZGZmZmRmOTQ0
ZTBhMjkwMzVmNTgwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvSW1hZ2VCdWZmZXJHdGsuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSW1hZ2VCdWZmZXIuaCIKKworI2luY2x1ZGUgIkJhc2U2NC5oIgorI2luY2x1ZGUgIkNh
aXJvVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiR093blB0ci5oIgorI2luY2x1ZGUgIkdSZWZQdHJH
dGsuaCIKKyNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSA8Y2Fpcm8uaD4K
KyNpbmNsdWRlIDxndGsvZ3RrLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBJbWFnZUJ1ZmZlcjo6dG9EYXRhVVJMKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IGRvdWJsZSogcXVhbGl0eSkgY29uc3QKK3sKKyAgICBB
U1NFUlQoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlRm9yRW5jb2Rp
bmcobWltZVR5cGUpKTsKKworICAgIGlmICghbWltZVR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikp
CisgICAgICAgIHJldHVybiAiZGF0YTosIjsKKworICAgIC8vIExpc3Qgb2Ygc3VwcG9ydGVkIGlt
YWdlIHR5cGVzIGNvbWVzIGZyb20gdGhlIEdka1BpeGJ1ZiBkb2N1bWVudGF0aW9uLgorICAgIC8v
IGh0dHA6Ly9saWJyYXJ5Lmdub21lLm9yZy9kZXZlbC9nZGstcGl4YnVmL3N0YWJsZS9nZGstcGl4
YnVmLWZpbGUtc2F2aW5nLmh0bWwjZ2RrLXBpeGJ1Zi1zYXZlLXRvLWJ1ZmZlcnYKKyAgICBTdHJp
bmcgdHlwZSA9IG1pbWVUeXBlLnN1YnN0cmluZyhzaXplb2YgImltYWdlIik7CisgICAgaWYgKHR5
cGUgIT0gImpwZWciICYmIHR5cGUgIT0gInBuZyIgJiYgdHlwZSAhPSAidGlmZiIgJiYgdHlwZSAh
PSAiaWNvIiAmJiB0eXBlICE9ICJibXAiKQorICAgICAgICByZXR1cm4gImRhdGE6LCI7CisKKyAg
ICBHUmVmUHRyPEdka1BpeGJ1Zj4gcGl4YnVmID0gY2Fpcm9JbWFnZVN1cmZhY2VUb0dka1BpeGJ1
ZihtX2RhdGEubV9zdXJmYWNlKTsKKyAgICBpZiAoIXBpeGJ1ZikKKyAgICAgICAgcmV0dXJuICJk
YXRhOiwiOworCisgICAgR093blB0cjxnY2hhcj4gYnVmZmVyKDApOworICAgIGdzaXplIGJ1ZmZl
clNpemU7CisgICAgR0Vycm9yKiBlcnJvciA9IDA7CisgICAgZ2Jvb2xlYW4gc3VjY2VzcyA9IEZB
TFNFOworICAgIGlmICh0eXBlID09ICJqcGVnIiAmJiBxdWFsaXR5ICYmICpxdWFsaXR5ID49IDAu
MCAmJiAqcXVhbGl0eSA8PSAxLjApIHsKKyAgICAgICAgU3RyaW5nIHF1YWxpdHlTdHJpbmcgPSBT
dHJpbmc6OmZvcm1hdCgiJWYiLCAqcXVhbGl0eSk7CisgICAgICAgIHN1Y2Nlc3MgPSBnZGtfcGl4
YnVmX3NhdmVfdG9fYnVmZmVyKHBpeGJ1Zi5nZXQoKSwgJmJ1ZmZlci5vdXRQdHIoKSwgJmJ1ZmZl
clNpemUsCisgICAgICAgICAgICB0eXBlLnV0ZjgoKS5kYXRhKCksICZlcnJvciwgInF1YWxpdHki
LCBxdWFsaXR5U3RyaW5nLnV0ZjgoKS5kYXRhKCksIE5VTEwpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHN1Y2Nlc3MgPSBnZGtfcGl4YnVmX3NhdmVfdG9fYnVmZmVyKHBpeGJ1Zi5nZXQoKSwgJmJ1
ZmZlci5vdXRQdHIoKSwgJmJ1ZmZlclNpemUsIHR5cGUudXRmOCgpLmRhdGEoKSwgJmVycm9yLCBO
VUxMKTsKKyAgICB9CisKKyAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgIHJldHVybiAiZGF0YTos
IjsKKworICAgIFZlY3RvcjxjaGFyPiBvdXQ7CisgICAgYmFzZTY0RW5jb2RlKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KGJ1ZmZlci5nZXQoKSksIGJ1ZmZlclNpemUsIG91dCk7CisgICAg
b3V0LmFwcGVuZCgnXDAnKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiZGF0YTolczti
YXNlNjQsJXMiLCBtaW1lVHlwZS51dGY4KCkuZGF0YSgpLCBvdXQuZGF0YSgpKTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW1hZ2VHdGsuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW1hZ2VHdGsuY3BwCmluZGV4IDNkZTg0OTU3
MmFkZWUwYTI1MDhkMTYwMmE3NzUyODFjMGJiYmIyMDUuLjMwZGI2ZDcwNzA5NGQwZWZmODZhYWNj
YWU2MzExMGE0ZjIzMzAyNDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0ltYWdlR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbWFn
ZUd0ay5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1
ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJHT3duUHRyLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgpAQCAtMTcyLDY3ICsxNzMsOSBAQCBQYXNzUmVmUHRyPEltYWdlPiBJbWFn
ZTo6bG9hZFBsYXRmb3JtVGhlbWVJY29uKGNvbnN0IGNoYXIqIG5hbWUsIGludCBzaXplKQogICAg
IHJldHVybiBsb2FkSW1hZ2VGcm9tRmlsZShnZXRUaGVtZUljb25GaWxlTmFtZShuYW1lLCBzaXpl
KSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciogZ2V0Q2Fpcm9TdXJmYWNlUGl4
ZWwodW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgeCwgdW5zaWduZWQgeSwgdW5zaWduZWQg
cm93U3RyaWRlKQotewotICAgIHJldHVybiBkYXRhICsgKHkgKiByb3dTdHJpZGUpICsgeCAqIDQ7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgZ3VjaGFyKiBnZXRHZGtQaXhidWZQaXhlbChndWNoYXIqIGRh
dGEsIHVuc2lnbmVkIHgsIHVuc2lnbmVkIHksIHVuc2lnbmVkIHJvd1N0cmlkZSkKLXsKLSAgICBy
ZXR1cm4gZGF0YSArICh5ICogcm93U3RyaWRlKSArIHggKiA0OwotfQotCiBHZGtQaXhidWYqIEJp
dG1hcEltYWdlOjpnZXRHZGtQaXhidWYoKQogewotICAgIGludCB3aWR0aCA9IGNhaXJvX2ltYWdl
X3N1cmZhY2VfZ2V0X3dpZHRoKGZyYW1lQXRJbmRleChjdXJyZW50RnJhbWUoKSkpOwotICAgIGlu
dCBoZWlnaHQgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoZnJhbWVBdEluZGV4KGN1
cnJlbnRGcmFtZSgpKSk7Ci0gICAgdW5zaWduZWQgY2hhciogc3VyZmFjZURhdGEgPSBjYWlyb19p
bWFnZV9zdXJmYWNlX2dldF9kYXRhKGZyYW1lQXRJbmRleChjdXJyZW50RnJhbWUoKSkpOwotICAg
IGludCBzdXJmYWNlUm93U3RyaWRlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRlKGZy
YW1lQXRJbmRleChjdXJyZW50RnJhbWUoKSkpOwotCi0gICAgR2RrUGl4YnVmKiBkZXN0ID0gZ2Rr
X3BpeGJ1Zl9uZXcoR0RLX0NPTE9SU1BBQ0VfUkdCLCBUUlVFLCA4LCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICBpZiAoIWRlc3QpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZ3VjaGFyKiBwaXhidWZE
YXRhID0gZ2RrX3BpeGJ1Zl9nZXRfcGl4ZWxzKGRlc3QpOwotICAgIGludCBwaXhidWZSb3dTdHJp
ZGUgPSBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUoZGVzdCk7Ci0KLSAgICAvKiBGcm9tOiBodHRw
Oi8vY2Fpcm9ncmFwaGljcy5vcmcvbWFudWFsL2NhaXJvLWltYWdlLXN1cmZhY2UuaHRtbCNjYWly
by1mb3JtYXQtdAotICAgICAqICJDQUlST19GT1JNQVRfQVJHQjMyOiBlYWNoIHBpeGVsIGlzIGEg
MzItYml0IHF1YW50aXR5LCB3aXRoIGFscGhhIGluCi0gICAgICogdGhlIHVwcGVyIDggYml0cywg
dGhlbiByZWQsIHRoZW4gZ3JlZW4sIHRoZW4gYmx1ZS4gVGhlIDMyLWJpdAotICAgICAqIHF1YW50
aXRpZXMgYXJlIHN0b3JlZCBuYXRpdmUtZW5kaWFuLiBQcmUtbXVsdGlwbGllZCBhbHBoYSBpcyB1
c2VkLgotICAgICAqIChUaGF0IGlzLCA1MCUgdHJhbnNwYXJlbnQgcmVkIGlzIDB4ODA4MDAwMDAs
IG5vdCAweDgwZmYwMDAwLikiCi0gICAgICoKLSAgICAgKiBTZWUgaHR0cDovL2RldmVsb3Blci5n
aW1wLm9yZy9hcGkvMi4wL2dkay1waXhidWYvZ2RrLXBpeGJ1Zi1nZGstcGl4YnVmLmh0bWwjR2Rr
UGl4YnVmCi0gICAgICogZm9yIGluZm9ybWF0aW9uIG9uIHRoZSBzdHJ1Y3R1cmUgb2YgR2RrUGl4
YnVmcyBzdG9yZWQgd2l0aCBHREtfQ09MT1JTUEFDRV9SR0IuCi0gICAgICoKLSAgICAgKiBSR0Ig
Y29sb3IgY2hhbm5lbHMgaW4gQ0FJUk9fRk9STUFUX0FSR0IzMiBhcmUgc3RvcmVkIGJhc2VkIG9u
IHRoZQotICAgICAqIGVuZGlhbm5lc3Mgb2YgdGhlIG1hY2hpbmUgYW5kIGFyZSBhbHNvIG11bHRp
cGxpZWQgYnkgdGhlIGFscGhhIGNoYW5uZWwuCi0gICAgICogVG8gcHJvcGVybHkgdHJhbnNmZXIg
dGhlIGRhdGEgZnJvbSB0aGUgQ2Fpcm8gc3VyZmFjZSB3ZSBtdXN0IGRpdmlkZSBlYWNoCi0gICAg
ICogb2YgdGhlIFJHQiBjaGFubmVscyBieSB0aGUgYWxwaGEgY2hhbm5lbCBhbmQgdGhlbiByZW9y
ZGVyIGFsbCBjaGFubmVscwotICAgICAqIGlmIHRoaXMgbWFjaGluZSBpcyBsaXR0bGUtZW5kaWFu
LgotICAgICAqLwotICAgIGZvciAoaW50IHkgPSAwOyB5IDwgaGVpZ2h0OyB5KyspIHsKLSAgICAg
ICAgZm9yIChpbnQgeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7Ci0gICAgICAgICAgICB1bnNpZ25l
ZCBjaGFyKiBzb3VyY2UgPSBnZXRDYWlyb1N1cmZhY2VQaXhlbChzdXJmYWNlRGF0YSwgeCwgeSwg
c3VyZmFjZVJvd1N0cmlkZSk7Ci0gICAgICAgICAgICBndWNoYXIqIGRlc3QgPSBnZXRHZGtQaXhi
dWZQaXhlbChwaXhidWZEYXRhLCB4LCB5LCBwaXhidWZSb3dTdHJpZGUpOwotCi0jaWYgR19CWVRF
X09SREVSID09IEdfTElUVExFX0VORElBTgotICAgICAgICAgICAgZ3VjaGFyIGFscGhhID0gc291
cmNlWzNdOwotICAgICAgICAgICAgZGVzdFswXSA9IGFscGhhID8gKChzb3VyY2VbMl0gKiAyNTUp
IC8gYWxwaGEpIDogMDsKLSAgICAgICAgICAgIGRlc3RbMV0gPSBhbHBoYSA/ICgoc291cmNlWzFd
ICogMjU1KSAvIGFscGhhKSA6IDA7Ci0gICAgICAgICAgICBkZXN0WzJdID0gYWxwaGEgPyAoKHNv
dXJjZVswXSAqIDI1NSkgLyBhbHBoYSkgOiAwOwotICAgICAgICAgICAgZGVzdFszXSA9IGFscGhh
OwotI2Vsc2UKLSAgICAgICAgICAgIGd1Y2hhciBhbHBoYSA9IHNvdXJjZVswXTsKLSAgICAgICAg
ICAgIGRlc3RbMF0gPSBhbHBoYSA/ICgoc291cmNlWzFdICogMjU1KSAvIGFscGhhKSA6IDA7Ci0g
ICAgICAgICAgICBkZXN0WzFdID0gYWxwaGEgPyAoKHNvdXJjZVsyXSAqIDI1NSkgLyBhbHBoYSkg
OiAwOwotICAgICAgICAgICAgZGVzdFsyXSA9IGFscGhhID8gKChzb3VyY2VbM10gKiAyNTUpIC8g
YWxwaGEpIDogMDsKLSAgICAgICAgICAgIGRlc3RbM10gPSBhbHBoYTsKLSNlbmRpZgotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIGRlc3Q7CisgICAgcmV0dXJuIGNhaXJvSW1hZ2VTdXJm
YWNlVG9HZGtQaXhidWYoZnJhbWVBdEluZGV4KGN1cnJlbnRGcmFtZSgpKSk7CiB9CiAKIH0K
</data>
<flag name="review"
          id="51002"
          type_id="1"
          status="+"
          setter="xan.lopez"
    />
          </attachment>
      

    </bug>

</bugzilla>