<?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>73621</bug_id>
          
          <creation_ts>2011-12-01 22:11:41 -0800</creation_ts>
          <short_desc>[chromium] Use ANGLE&apos;s texture_usage and texture_storage extensions when allocating compositor textures</short_desc>
          <delta_ts>2011-12-05 15:44:17 -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>Layout and Rendering</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="Vangelis Kokkevis">vangelis</reporter>
          <assigned_to name="Vangelis Kokkevis">vangelis</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>513480</commentid>
    <comment_count>0</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-12-01 22:11:41 -0800</bug_when>
    <thetext>GL_ANGLE_texture_usage (http://angleproject.googlecode.com/svn/trunk/extensions/ANGLE_texture_usage.txt)
By calling glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_USAGE_ANGLE, GL_FRAMEBUFFER_ATTACHMENT_ANGLE) on textures used by RenderSurfaces, ANGLE can eliminate the allocation of a system memory buffer for the texture.

GL_EXT_texture_storage (http://angleproject.googlecode.com/svn/trunk/extensions/EXT_texture_storage.txt)
By switching texture allocation in the compositor to using  glTexStorage2DEXT instead of glTexImage2D we can eliminate the unnecessary allocation of additional mip levels for each texture.


The two extensions are exposed to the command buffer via:  http://codereview.chromium.org/8772033/ which must land first in the chromium tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513501</commentid>
    <comment_count>1</comment_count>
      <attachid>117568</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-12-01 22:32:20 -0800</bug_when>
    <thetext>Created attachment 117568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513508</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 22:35:51 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513518</commentid>
    <comment_count>3</comment_count>
      <attachid>117568</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-01 22:39:48 -0800</bug_when>
    <thetext>Comment on attachment 117568
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h:385
&gt; +    virtual void texStorage2DEXT(WGC3Denum target, WGC3Dint levels, WGC3Duint internalformat,

I defer to kbr@ for review of WebGC3D, but I see no issues with this change ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513538</commentid>
    <comment_count>4</comment_count>
      <attachid>117568</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 23:11:06 -0800</bug_when>
    <thetext>Comment on attachment 117568
Patch

Attachment 117568 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10703308</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515134</commentid>
    <comment_count>5</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-12-05 09:21:36 -0800</bug_when>
    <thetext>Ken, James: ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515221</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-05 11:10:27 -0800</bug_when>
    <thetext>What&apos;s the compile failure on the cr-linux bot? I saw that and assumed it&apos;d be addressed somehow so I haven&apos;t looked at the actual patch yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515238</commentid>
    <comment_count>7</comment_count>
      <attachid>117568</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-05 11:25:26 -0800</bug_when>
    <thetext>Comment on attachment 117568
Patch

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

Looks good overall. One minor issue that will fix the build failure. Please upload a revised patch and we can r+/cq+ it.

&gt; Source/WebKit/chromium/public/platform/WebGraphicsContext3D.h:386
&gt; +                                 WGC3Dint width, WGC3Dint height) = 0;

Give this an empty body like the method above. That will fix the cr-linux build failure. I gather from fishd@ that this is OK to leave in essentially permanently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515259</commentid>
    <comment_count>8</comment_count>
      <attachid>117910</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-12-05 12:01:37 -0800</bug_when>
    <thetext>Created attachment 117910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515260</commentid>
    <comment_count>9</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-12-05 12:02:33 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=117910) [details]
&gt; Patch

Fixed compile issue as per Ken&apos;s suggestion. James, would you mind taking a look at the compositor change?  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515269</commentid>
    <comment_count>10</comment_count>
      <attachid>117910</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-05 12:10:08 -0800</bug_when>
    <thetext>Comment on attachment 117910
Patch

Compositor changes LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515289</commentid>
    <comment_count>11</comment_count>
      <attachid>117910</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-05 12:28:02 -0800</bug_when>
    <thetext>Comment on attachment 117910
Patch

Looks fine; let this clear the cr-linux EWS bot before committing. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515302</commentid>
    <comment_count>12</comment_count>
      <attachid>117910</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-05 12:34:53 -0800</bug_when>
    <thetext>Comment on attachment 117910
Patch

Attachment 117910 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10729807

New failing tests:
svg/custom/linking-uri-01-b.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515461</commentid>
    <comment_count>13</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-12-05 15:44:17 -0800</bug_when>
    <thetext>Committed r102055: &lt;http://trac.webkit.org/changeset/102055&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117568</attachid>
            <date>2011-12-01 22:32:20 -0800</date>
            <delta_ts>2011-12-05 12:01:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73621-20111201223142.patch</filename>
            <type>text/plain</type>
            <size>14867</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDExLTEyLTAxICBWYW5nZWxp
cyBLb2trZXZpcyAgPHZhbmdlbGlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFVzZSBBTkdMRSdzIHRleHR1cmVfdXNhZ2UgYW5kIHRleHR1cmVfc3RvcmFnZSBleHRlbnNpb25z
IHdoZW4gYWxsb2NhdGluZyBjb21wb3NpdG9yIHRleHR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYyMQorCisgICAgICAgIFdoZW4gdGhlIGV4
dGVuc2lvbnMgYXJlIGF2YWlsYWJsZSwgY29tcG9zaXRvciB0ZXh0dXJlcyBhcmUgYWxsb2NhdGVk
IHZpYQorICAgICAgICBnbFRleFN0b3JhZ2UyREVYVCBpbnN0ZWFkIG9mIGdsVGV4SW1hZ2UyRCB0
byBlbGltaW5hdGUgY3JlYXRpb24gb2YgdW5uZWNlc3NhcnkKKyAgICAgICAgbWlwIGxldmVscyBv
biB0aGUgc2VydmljZSBzaWRlLiBJbiBhZGRpdGlvbiwgdGhlIEdMX0ZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfQU5HTEUKKyAgICAgICAgaXMgc3BlY2lmaWVkIGZvciBhbGwgdGV4dHVyZXMgdXNlZCBi
eSBSZW5kZXJTdXJmYWNlcyB0byBlbGltaW5hdGUgdGhlIG5lZWQgZm9yCisgICAgICAgIGEgc3lz
dGVtIG1lbW9yeSBiaXRtYXAgYWxsb2NhdGlvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVu
c2lvbnMzRENocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVy
ZXJDaHJvbWl1bTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVy
Q2hyb21pdW06OmluaXRpYWxpemVTaGFyZWRPYmplY3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9UcmFja2luZ1RleHR1cmVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9yOjpUcmFja2luZ1RleHR1cmVBbGxvY2F0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dHVyZVRvU3RvcmFnZUZvcm1hdCk6CisgICAgICAg
IChXZWJDb3JlOjppc1RleHR1cmVGb3JtYXRTdXBwb3J0ZWRGb3JTdG9yYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcjo6Y3JlYXRlVGV4dHVyZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpUcmFja2luZ1RleHR1cmVBbGxvY2F0b3I6OnNldFRleHR1
cmVVc2FnZUhpbnQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9y
OjpzZXRVc2VUZXh0dXJlU3RvcmFnZUV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJl
bmRlcmVyQ2FwYWJpbGl0aWVzOjpMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKToKKwogMjAxMS0x
Mi0wMSAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246IFJlbW92ZWQgdW51c2VkIG11bHRpTGVuZ3RoIGFyZ3VtZW50
IGluIHNldExlbmd0aFByb3BlcnR5KCkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9t
aXVtLmgJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDYgKzQ2LDggQEAgcHVibGljOgogICAgIC8vICAgR0xfQ0hST01JVU1fcmF0ZV9saW1pdF9vZmZz
Y3JlZW5fY29udGV4dAogICAgIC8vICAgR0xfQ0hST01JVU1fcGFpbnRfZnJhbWVidWZmZXJfY2Fu
dmFzCiAgICAgLy8gICBHTF9DSFJPTUlVTV9pb3N1cmZhY2UgKE1hYyBPUyBYIHNwZWNpZmljKQor
ICAgIC8vICAgR0xfQU5HTEVfdGV4dHVyZV91c2FnZQorICAgIC8vICAgR0xfRVhUX3RleHR1cmVf
c3RvcmFnZQogCiAgICAgLy8gRXh0ZW5zaW9uczNEIG1ldGhvZHMuCiAgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzKGNvbnN0IFN0cmluZyYpOwpAQCAtNjMsNyArNjUsMTQgQEAgcHVibGljOgogICAg
IGVudW0gewogICAgICAgICAvLyBHTF9DSFJPTUlVTV9tYXBfc3ViIChlbnVtcyBpbmhlcml0ZWQg
ZnJvbSBHTF9BUkJfdmVydGV4X2J1ZmZlcl9vYmplY3QpCiAgICAgICAgIFJFQURfT05MWSA9IDB4
ODhCOCwKLSAgICAgICAgV1JJVEVfT05MWSA9IDB4ODhCOQorICAgICAgICBXUklURV9PTkxZID0g
MHg4OEI5LAorCisgICAgICAgIC8vIEdMX0FOR0xFX3RleHR1cmVfdXNhZ2UKKyAgICAgICAgR0xf
VEVYVFVSRV9VU0FHRV9BTkdMRSA9IDB4OTNBMiwKKyAgICAgICAgR0xfRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9BTkdMRSA9IDB4OTNBMywKKworICAgICAgICAvLyBHTF9FWFRfdGV4dHVyZV9zdG9y
YWdlCisgICAgICAgIEJHUkE4X0VYVCA9IDB4OTNBMQogICAgIH07CiAKICAgICAvLyBHTF9DSFJP
TUlVTV9wb3N0X3N1Yl9idWZmZXIKQEAgLTk3LDYgKzEwNiw5IEBAIHB1YmxpYzoKICAgICAvLyBS
R0JBLCBmb3JtYXQgQkdSQSwgYW5kIHR5cGUgVU5TSUdORURfSU5UXzhfOF84XzhfUkVWLgogICAg
IHZvaWQgdGV4SW1hZ2VJT1N1cmZhY2UyRENIUk9NSVVNKHVuc2lnbmVkIHRhcmdldCwgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJfdCBpb1N1cmZhY2VJZCwgdW5zaWduZWQgcGxhbmUpOwog
CisgICAgLy8gR0xfRVhUX3RleHR1cmVfc3RvcmFnZQorICAgIHZvaWQgdGV4U3RvcmFnZTJERVhU
KHVuc2lnbmVkIHRhcmdldCwgaW50IGxldmVscywgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQsIGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CisKIHByaXZhdGU6CiAgICAgLy8gSW5zdGFuY2VzIG9mIHRo
aXMgY2xhc3MgYXJlIHN0cmljdGx5IG93bmVkIGJ5IHRoZSBHcmFwaGljc0NvbnRleHQzRCBpbXBs
ZW1lbnRhdGlvbiBhbmQgZG8gbm90CiAgICAgLy8gbmVlZCB0byBiZSBpbnN0YW50aWF0ZWQgYnkg
YW55IG90aGVyIGNvZGUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHAJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIy
MSw2ICsyMjEsMTQgQEAgYm9vbCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemUoKQog
ICAgICAgICBleHRlbnNpb25zLT5lbnN1cmVFbmFibGVkKCJHTF9DSFJPTUlVTV9pb3N1cmZhY2Ui
KTsKICAgICB9CiAKKyAgICBtX2NhcGFiaWxpdGllcy51c2luZ1RleHR1cmVVc2FnZUhpbnQgPSBl
eHRlbnNpb25zLT5zdXBwb3J0cygiR0xfQU5HTEVfdGV4dHVyZV91c2FnZSIpOworICAgIGlmICht
X2NhcGFiaWxpdGllcy51c2luZ1RleHR1cmVVc2FnZUhpbnQpCisgICAgICAgIGV4dGVuc2lvbnMt
PmVuc3VyZUVuYWJsZWQoIkdMX0FOR0xFX3RleHR1cmVfdXNhZ2UiKTsKKworICAgIG1fY2FwYWJp
bGl0aWVzLnVzaW5nVGV4dHVyZVN0b3JhZ2VFeHRlbnNpb24gPSBleHRlbnNpb25zLT5zdXBwb3J0
cygiR0xfRVhUX3RleHR1cmVfc3RvcmFnZSIpOworICAgIGlmIChtX2NhcGFiaWxpdGllcy51c2lu
Z1RleHR1cmVTdG9yYWdlRXh0ZW5zaW9uKQorICAgICAgICBleHRlbnNpb25zLT5lbnN1cmVFbmFi
bGVkKCJHTF9FWFRfdGV4dHVyZV9zdG9yYWdlIik7CisKICAgICBHTEMobV9jb250ZXh0LmdldCgp
LCBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfVEVYVFVSRV9T
SVpFLCAmbV9jYXBhYmlsaXRpZXMubWF4VGV4dHVyZVNpemUpKTsKICAgICBtX2NhcGFiaWxpdGll
cy5iZXN0VGV4dHVyZUZvcm1hdCA9IFBsYXRmb3JtQ29sb3I6OmJlc3RUZXh0dXJlRm9ybWF0KG1f
Y29udGV4dC5nZXQoKSk7CiAKQEAgLTY3Miw2ICs2ODAsMTMgQEAgYm9vbCBMYXllclJlbmRlcmVy
Q2hyb21pdW06OmluaXRpYWxpemVTaAogICAgIG1fcmVuZGVyU3VyZmFjZVRleHR1cmVNYW5hZ2Vy
ID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZShUZXh0dXJlTWFuYWdlcjo6aGlnaExpbWl0Qnl0ZXMo
KSwgbV9jYXBhYmlsaXRpZXMubWF4VGV4dHVyZVNpemUpOwogICAgIG1fY29udGVudHNUZXh0dXJl
QWxsb2NhdG9yID0gVHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9yOjpjcmVhdGUobV9jb250ZXh0Lmdl
dCgpKTsKICAgICBtX3JlbmRlclN1cmZhY2VUZXh0dXJlQWxsb2NhdG9yID0gVHJhY2tpbmdUZXh0
dXJlQWxsb2NhdG9yOjpjcmVhdGUobV9jb250ZXh0LmdldCgpKTsKKyAgICBpZiAobV9jYXBhYmls
aXRpZXMudXNpbmdUZXh0dXJlVXNhZ2VIaW50KQorICAgICAgICBtX3JlbmRlclN1cmZhY2VUZXh0
dXJlQWxsb2NhdG9yLT5zZXRUZXh0dXJlVXNhZ2VIaW50KFRyYWNraW5nVGV4dHVyZUFsbG9jYXRv
cjo6RnJhbWVidWZmZXJBdHRhY2htZW50KTsKKyAgICBpZiAobV9jYXBhYmlsaXRpZXMudXNpbmdU
ZXh0dXJlU3RvcmFnZUV4dGVuc2lvbikgeworICAgICAgICBtX2NvbnRlbnRzVGV4dHVyZUFsbG9j
YXRvci0+c2V0VXNlVGV4dHVyZVN0b3JhZ2VFeHQodHJ1ZSk7CisgICAgICAgIG1fcmVuZGVyU3Vy
ZmFjZVRleHR1cmVBbGxvY2F0b3ItPnNldFVzZVRleHR1cmVTdG9yYWdlRXh0KHRydWUpOworICAg
IH0KKwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9UcmFja2luZ1RleHR1cmVBbGxvY2F0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyYWNraW5n
VGV4dHVyZUFsbG9jYXRvci5jcHAJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyYWNraW5nVGV4dHVyZUFsbG9jYXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIlRyYWNraW5nVGV4
dHVyZUFsbG9jYXRvci5oIgogCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNEQ2hyb21pdW0uaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJlckNocm9taXVtLmgiIC8v
IEZvciB0aGUgR0xDKCkgbWFjcm8KIApAQCAtMzQsNiArMzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBUcmFja2luZ1RleHR1cmVBbGxvY2F0b3I6OlRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcihQ
YXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCiAgICAgLCBtX2N1cnJlbnRNZW1vcnlVc2VCeXRlcygwKQorICAgICwgbV90ZXh0dXJl
VXNhZ2VIaW50KEFueSkKKyAgICAsIG1fdXNlVGV4dHVyZVN0b3JhZ2VFeHQoZmFsc2UpCiB7CiB9
CiAKQEAgLTQyLDYgKzQ1LDI4IEBAIFRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcjo6flRyYWNraW5n
VGV4dHUKICAgICBBU1NFUlQoIW1fY3VycmVudE1lbW9yeVVzZUJ5dGVzKTsKIH0KIAorc3RhdGlj
IEdDM0RlbnVtIHRleHR1cmVUb1N0b3JhZ2VGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCkK
K3sKKyAgICBHQzNEZW51bSBzdG9yYWdlRm9ybWF0ID0gRXh0ZW5zaW9uczNEOjpSR0JBOF9PRVM7
CisgICAgc3dpdGNoICh0ZXh0dXJlRm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkJHUkFfRVhU
OgorICAgICAgICBzdG9yYWdlRm9ybWF0ID0gRXh0ZW5zaW9uczNEQ2hyb21pdW06OkJHUkE4X0VY
VDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBzdG9yYWdlRm9ybWF0
OworfQorCitzdGF0aWMgYm9vbCBpc1RleHR1cmVGb3JtYXRTdXBwb3J0ZWRGb3JTdG9yYWdlKEdD
M0RlbnVtIGZvcm1hdCkKK3sKKyAgICByZXR1cm4gKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQSB8fCBmb3JtYXQgPT0gRXh0ZW5zaW9uczNEOjpCR1JBX0VYVCk7Cit9CisKIHVuc2ln
bmVkIFRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcjo6Y3JlYXRlVGV4dHVyZShjb25zdCBJbnRTaXpl
JiBzaXplLCBHQzNEZW51bSBmb3JtYXQpCiB7CiAgICAgbV9jdXJyZW50TWVtb3J5VXNlQnl0ZXMg
Kz0gVGV4dHVyZU1hbmFnZXI6Om1lbW9yeVVzZUJ5dGVzKHNpemUsIGZvcm1hdCk7CkBAIC01NSw3
ICs4MCwxNSBAQCB1bnNpZ25lZCBUcmFja2luZ1RleHR1cmVBbGxvY2F0b3I6OmNyZWF0CiAgICAg
Ly8gTlBPVCB0ZXh0dXJlcyBpbiBHTCBFUyBvbmx5IHdvcmsgd2hlbiB0aGUgd3JhcCBtb2RlIGlz
IHNldCB0byBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRS4KICAgICBHTEMobV9jb250
ZXh0LmdldCgpLCBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250
ZXh0M0Q6OkNMQU1QX1RPX0VER0UpKTsKICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRl
eHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VE
R0UpKTsKLSAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPnRleEltYWdlMkRSZXNv
dXJjZVNhZmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIGZvcm1hdCwgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpLCAwLCBmb3JtYXQsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJ
R05FRF9CWVRFKSk7CisKKyAgICBpZiAobV90ZXh0dXJlVXNhZ2VIaW50ID09IEZyYW1lYnVmZmVy
QXR0YWNobWVudCkKKyAgICAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0LT50ZXhQ
YXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBFeHRlbnNpb25zM0RDaHJv
bWl1bTo6R0xfVEVYVFVSRV9VU0FHRV9BTkdMRSwgRXh0ZW5zaW9uczNEQ2hyb21pdW06OkdMX0ZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfQU5HTEUpKTsKKyAgICBpZiAobV91c2VUZXh0dXJlU3RvcmFn
ZUV4dCAmJiBpc1RleHR1cmVGb3JtYXRTdXBwb3J0ZWRGb3JTdG9yYWdlKGZvcm1hdCkpIHsKKyAg
ICAgICAgRXh0ZW5zaW9uczNEQ2hyb21pdW0qIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxFeHRl
bnNpb25zM0RDaHJvbWl1bSo+KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpKTsKKyAgICAgICAg
R0MzRGVudW0gc3RvcmFnZUZvcm1hdCA9IHRleHR1cmVUb1N0b3JhZ2VGb3JtYXQoZm9ybWF0KTsK
KyAgICAgICAgZXh0ZW5zaW9ucy0+dGV4U3RvcmFnZTJERVhUKEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFXzJELCAxLCBzdG9yYWdlRm9ybWF0LCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkp
OworICAgIH0gZWxzZQorICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPnRl
eEltYWdlMkRSZXNvdXJjZVNhZmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIGZv
cm1hdCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCAwLCBmb3JtYXQsIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9CWVRFKSk7CiAgICAgcmV0dXJuIHRleHR1cmVJZDsKIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVHJhY2tpbmdUZXh0
dXJlQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9yLmgJKHJldmlzaW9uIDEwMTc0
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyYWNraW5n
VGV4dHVyZUFsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMSArNDUsMTggQEAgcHVi
bGljOgogCiAgICAgc2l6ZV90IGN1cnJlbnRNZW1vcnlVc2VCeXRlcygpIGNvbnN0IHsgcmV0dXJu
IG1fY3VycmVudE1lbW9yeVVzZUJ5dGVzOyB9CiAKKyAgICBlbnVtIFRleHR1cmVVc2FnZUhpbnQg
eyBBbnksIEZyYW1lYnVmZmVyQXR0YWNobWVudCB9OworCisgICAgdm9pZCBzZXRUZXh0dXJlVXNh
Z2VIaW50KFRleHR1cmVVc2FnZUhpbnQgaGludCkgeyBtX3RleHR1cmVVc2FnZUhpbnQgPSBoaW50
OyB9CisgICAgdm9pZCBzZXRVc2VUZXh0dXJlU3RvcmFnZUV4dChib29sIHVzZVN0b3JhZ2VFeHQp
IHsgbV91c2VUZXh0dXJlU3RvcmFnZUV4dCA9IHVzZVN0b3JhZ2VFeHQ7IH0KKwogcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IFRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcihQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPik7CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4
dDsKICAgICBzaXplX3QgbV9jdXJyZW50TWVtb3J5VXNlQnl0ZXM7CisgICAgVGV4dHVyZVVzYWdl
SGludCBtX3RleHR1cmVVc2FnZUhpbnQ7CisgICAgYm9vbCBtX3VzZVRleHR1cmVTdG9yYWdlRXh0
OwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHJldmlzaW9uIDEw
MTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw4IEBAIHN0cnVjdCBM
YXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzIHsKICAgICAgICAgLCB1c2luZ0FjY2VsZXJhdGVkUGFp
bnRpbmcoZmFsc2UpCiAgICAgICAgICwgdXNpbmdTZXRWaXNpYmlsaXR5KGZhbHNlKQogICAgICAg
ICAsIHVzaW5nU3dhcENvbXBsZXRlQ2FsbGJhY2soZmFsc2UpCisgICAgICAgICwgdXNpbmdUZXh0
dXJlVXNhZ2VIaW50KGZhbHNlKQorICAgICAgICAsIHVzaW5nVGV4dHVyZVN0b3JhZ2VFeHRlbnNp
b24oZmFsc2UpCiAgICAgICAgICwgbWF4VGV4dHVyZVNpemUoMCkgeyB9CiAKICAgICBHQzNEZW51
bSBiZXN0VGV4dHVyZUZvcm1hdDsKQEAgLTEwNSw2ICsxMDcsOCBAQCBzdHJ1Y3QgTGF5ZXJSZW5k
ZXJlckNhcGFiaWxpdGllcyB7CiAgICAgYm9vbCB1c2luZ0FjY2VsZXJhdGVkUGFpbnRpbmc7CiAg
ICAgYm9vbCB1c2luZ1NldFZpc2liaWxpdHk7CiAgICAgYm9vbCB1c2luZ1N3YXBDb21wbGV0ZUNh
bGxiYWNrOworICAgIGJvb2wgdXNpbmdUZXh0dXJlVXNhZ2VIaW50OworICAgIGJvb2wgdXNpbmdU
ZXh0dXJlU3RvcmFnZUV4dGVuc2lvbjsKICAgICBpbnQgbWF4VGV4dHVyZVNpemU7CiB9OwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxNzQxKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBA
QAorMjAxMS0xMi0wMSAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgVXNlIEFOR0xFJ3MgdGV4dHVyZV91c2FnZSBhbmQgdGV4dHVyZV9zdG9yYWdl
IGV4dGVuc2lvbnMgd2hlbiBhbGxvY2F0aW5nIGNvbXBvc2l0b3IgdGV4dHVyZXMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYyMQorCisgICAgICAg
IEFkZCB0aGUgbmVjZXNzYXJ5IGVudHJ5IHBvaW50cyBhbmQgZW51bXMgdG8gR3JhcGhpY3NDb250
ZXh0M0QuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBzcmMv
RXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNE
Q2hyb21pdW06OnRleFN0b3JhZ2UyREVYVCk6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4
dDNEQ2hyb21pdW0uY3BwOgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
aDoKKyAgICAgICAgKiB0ZXN0cy9Nb2NrV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAg
KFdlYktpdDo6TW9ja1dlYkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhTdG9yYWdlMkRFWFQpOgorCiAy
MDExLTEyLTAxICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gYWRkIHJlZmVycmVyIHBvbGljeSB0byBXZWJDb250ZXh0TWVudURhdGEK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkdyYXBoaWNz
Q29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
cGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTAxNzQxKQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDYgKzM4MSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gR0xf
Q0hST01JVU1faW9zdXJmYWNlCiAgICAgdmlydHVhbCB2b2lkIHRleEltYWdlSU9TdXJmYWNlMkRD
SFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCB3aWR0aCwgV0dDM0RpbnQgaGVpZ2h0
LCBXR0MzRHVpbnQgaW9TdXJmYWNlSWQsIFdHQzNEdWludCBwbGFuZSkgeyB9CiAKKyAgICAvLyBH
TF9FWFRfdGV4dHVyZV9zdG9yYWdlCisgICAgdmlydHVhbCB2b2lkIHRleFN0b3JhZ2UyREVYVChX
R0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbHMsIFdHQzNEdWludCBpbnRlcm5hbGZvcm1h
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNEaW50IHdpZHRoLCBXR0Mz
RGludCBoZWlnaHQpID0gMDsKKworCiAjaWYgV0VCS0lUX1VTSU5HX1NLSUEKICAgICBHckdMSW50
ZXJmYWNlKiBjcmVhdGVHckdMSW50ZXJmYWNlKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENo
cm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUwLDYgKzE1MCwxMSBAQCB2b2lkIEV4dGVu
c2lvbnMzRENocm9taXVtOjp0ZXhJbWFnZUlPU3VyCiAgICAgbV9wcml2YXRlLT50ZXhJbWFnZUlP
U3VyZmFjZTJEQ0hST01JVU0odGFyZ2V0LCB3aWR0aCwgaGVpZ2h0LCBpb1N1cmZhY2VJZCwgcGxh
bmUpOwogfQogCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjp0ZXhTdG9yYWdlMkRFWFQodW5z
aWduZWQgaW50IHRhcmdldCwgaW50IGxldmVscywgdW5zaWduZWQgaW50IGludGVybmFsRm9ybWF0
LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgbV9wcml2YXRlLT50ZXhTdG9yYWdlMkRF
WFQodGFyZ2V0LCBsZXZlbHMsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0
M0RDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
MDcsNiArOTA3LDcgQEAgREVMRUdBVEVfVE9fSU1QTF9SKGdldEdyYXBoaWNzUmVzZXRTdGF0dQog
CiBERUxFR0FURV9UT19JTVBMXzFSKGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSwgUGxh
dGZvcm0zRE9iamVjdCwgU3RyaW5nKQogREVMRUdBVEVfVE9fSU1QTF81KHRleEltYWdlSU9TdXJm
YWNlMkRDSFJPTUlVTSwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RpbnQsIEdDM0R1aW50LCBHQzNE
dWludCkKK0RFTEVHQVRFX1RPX0lNUExfNSh0ZXhTdG9yYWdlMkRFWFQsIEdDM0RlbnVtLCBHQzNE
aW50LCBHQzNEdWludCwgR0MzRGludCwgR0MzRGludCkKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBH
cmFwaGljc0NvbnRleHQzRApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMTIsNiArMzEyLDkgQEAgcHVibGljOgogICAgIC8vIEdMX0NIUk9NSVVN
X2lvc3VyZmFjZQogICAgIHZvaWQgdGV4SW1hZ2VJT1N1cmZhY2UyRENIUk9NSVVNKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGludCB3aWR0aCwgR0MzRGludCBoZWlnaHQsIEdDM0R1aW50IGlvU3VyZmFj
ZUlkLCBHQzNEdWludCBwbGFuZSk7CiAKKyAgICAvLyBHTF9FWFRfdGV4dHVyZV9zdG9yYWdlCisg
ICAgdm9pZCB0ZXhTdG9yYWdlMkRFWFQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVscywg
R0MzRHVpbnQgaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgd2lkdGgsIEdDM0RpbnQgaGVpZ2h0KTsK
KwogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoV2ViS2l0OjpXZWJWaWV3
SW1wbCosIFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNz
Q29udGV4dDNEOjpBdHRyaWJ1dGVzKTsKIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9Nb2NrV2ViR3JhcGhpY3NDb250ZXh0M0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL01vY2tXZWJHcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiAx
MDE3NDEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01vY2tXZWJHcmFwaGljc0Nv
bnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVSZW5kZXJidWZmZXIoV2ViR0xJZCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZVNoYWRlcihXZWJHTElkKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
VGV4dHVyZShXZWJHTElkKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdG9yYWdlMkRFWFQo
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWxzLCBXR0MzRHVpbnQgaW50ZXJuYWxmb3Jt
YXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXR0MzRGludCB3aWR0aCwgV0dD
M0RpbnQgaGVpZ2h0KSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117910</attachid>
            <date>2011-12-05 12:01:37 -0800</date>
            <delta_ts>2011-12-05 12:34:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73621-20111205120055.patch</filename>
            <type>text/plain</type>
            <size>14866</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDExLTEyLTAxICBWYW5nZWxp
cyBLb2trZXZpcyAgPHZhbmdlbGlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFVzZSBBTkdMRSdzIHRleHR1cmVfdXNhZ2UgYW5kIHRleHR1cmVfc3RvcmFnZSBleHRlbnNpb25z
IHdoZW4gYWxsb2NhdGluZyBjb21wb3NpdG9yIHRleHR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYyMQorCisgICAgICAgIFdoZW4gdGhlIGV4
dGVuc2lvbnMgYXJlIGF2YWlsYWJsZSwgY29tcG9zaXRvciB0ZXh0dXJlcyBhcmUgYWxsb2NhdGVk
IHZpYQorICAgICAgICBnbFRleFN0b3JhZ2UyREVYVCBpbnN0ZWFkIG9mIGdsVGV4SW1hZ2UyRCB0
byBlbGltaW5hdGUgY3JlYXRpb24gb2YgdW5uZWNlc3NhcnkKKyAgICAgICAgbWlwIGxldmVscyBv
biB0aGUgc2VydmljZSBzaWRlLiBJbiBhZGRpdGlvbiwgdGhlIEdMX0ZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfQU5HTEUKKyAgICAgICAgaXMgc3BlY2lmaWVkIGZvciBhbGwgdGV4dHVyZXMgdXNlZCBi
eSBSZW5kZXJTdXJmYWNlcyB0byBlbGltaW5hdGUgdGhlIG5lZWQgZm9yCisgICAgICAgIGEgc3lz
dGVtIG1lbW9yeSBiaXRtYXAgYWxsb2NhdGlvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVu
c2lvbnMzRENocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVy
ZXJDaHJvbWl1bTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVy
Q2hyb21pdW06OmluaXRpYWxpemVTaGFyZWRPYmplY3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9UcmFja2luZ1RleHR1cmVBbGxvY2F0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9yOjpUcmFja2luZ1RleHR1cmVBbGxvY2F0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dHVyZVRvU3RvcmFnZUZvcm1hdCk6CisgICAgICAg
IChXZWJDb3JlOjppc1RleHR1cmVGb3JtYXRTdXBwb3J0ZWRGb3JTdG9yYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcjo6Y3JlYXRlVGV4dHVyZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpUcmFja2luZ1RleHR1cmVBbGxvY2F0b3I6OnNldFRleHR1
cmVVc2FnZUhpbnQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9y
OjpzZXRVc2VUZXh0dXJlU3RvcmFnZUV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJl
bmRlcmVyQ2FwYWJpbGl0aWVzOjpMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKToKKwogMjAxMS0x
Mi0wMSAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246IFJlbW92ZWQgdW51c2VkIG11bHRpTGVuZ3RoIGFyZ3VtZW50
IGluIHNldExlbmd0aFByb3BlcnR5KCkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9t
aXVtLmgJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDYgKzQ2LDggQEAgcHVibGljOgogICAgIC8vICAgR0xfQ0hST01JVU1fcmF0ZV9saW1pdF9vZmZz
Y3JlZW5fY29udGV4dAogICAgIC8vICAgR0xfQ0hST01JVU1fcGFpbnRfZnJhbWVidWZmZXJfY2Fu
dmFzCiAgICAgLy8gICBHTF9DSFJPTUlVTV9pb3N1cmZhY2UgKE1hYyBPUyBYIHNwZWNpZmljKQor
ICAgIC8vICAgR0xfQU5HTEVfdGV4dHVyZV91c2FnZQorICAgIC8vICAgR0xfRVhUX3RleHR1cmVf
c3RvcmFnZQogCiAgICAgLy8gRXh0ZW5zaW9uczNEIG1ldGhvZHMuCiAgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzKGNvbnN0IFN0cmluZyYpOwpAQCAtNjMsNyArNjUsMTQgQEAgcHVibGljOgogICAg
IGVudW0gewogICAgICAgICAvLyBHTF9DSFJPTUlVTV9tYXBfc3ViIChlbnVtcyBpbmhlcml0ZWQg
ZnJvbSBHTF9BUkJfdmVydGV4X2J1ZmZlcl9vYmplY3QpCiAgICAgICAgIFJFQURfT05MWSA9IDB4
ODhCOCwKLSAgICAgICAgV1JJVEVfT05MWSA9IDB4ODhCOQorICAgICAgICBXUklURV9PTkxZID0g
MHg4OEI5LAorCisgICAgICAgIC8vIEdMX0FOR0xFX3RleHR1cmVfdXNhZ2UKKyAgICAgICAgR0xf
VEVYVFVSRV9VU0FHRV9BTkdMRSA9IDB4OTNBMiwKKyAgICAgICAgR0xfRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9BTkdMRSA9IDB4OTNBMywKKworICAgICAgICAvLyBHTF9FWFRfdGV4dHVyZV9zdG9y
YWdlCisgICAgICAgIEJHUkE4X0VYVCA9IDB4OTNBMQogICAgIH07CiAKICAgICAvLyBHTF9DSFJP
TUlVTV9wb3N0X3N1Yl9idWZmZXIKQEAgLTk3LDYgKzEwNiw5IEBAIHB1YmxpYzoKICAgICAvLyBS
R0JBLCBmb3JtYXQgQkdSQSwgYW5kIHR5cGUgVU5TSUdORURfSU5UXzhfOF84XzhfUkVWLgogICAg
IHZvaWQgdGV4SW1hZ2VJT1N1cmZhY2UyRENIUk9NSVVNKHVuc2lnbmVkIHRhcmdldCwgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJfdCBpb1N1cmZhY2VJZCwgdW5zaWduZWQgcGxhbmUpOwog
CisgICAgLy8gR0xfRVhUX3RleHR1cmVfc3RvcmFnZQorICAgIHZvaWQgdGV4U3RvcmFnZTJERVhU
KHVuc2lnbmVkIHRhcmdldCwgaW50IGxldmVscywgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQsIGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CisKIHByaXZhdGU6CiAgICAgLy8gSW5zdGFuY2VzIG9mIHRo
aXMgY2xhc3MgYXJlIHN0cmljdGx5IG93bmVkIGJ5IHRoZSBHcmFwaGljc0NvbnRleHQzRCBpbXBs
ZW1lbnRhdGlvbiBhbmQgZG8gbm90CiAgICAgLy8gbmVlZCB0byBiZSBpbnN0YW50aWF0ZWQgYnkg
YW55IG90aGVyIGNvZGUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHAJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIy
MSw2ICsyMjEsMTQgQEAgYm9vbCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemUoKQog
ICAgICAgICBleHRlbnNpb25zLT5lbnN1cmVFbmFibGVkKCJHTF9DSFJPTUlVTV9pb3N1cmZhY2Ui
KTsKICAgICB9CiAKKyAgICBtX2NhcGFiaWxpdGllcy51c2luZ1RleHR1cmVVc2FnZUhpbnQgPSBl
eHRlbnNpb25zLT5zdXBwb3J0cygiR0xfQU5HTEVfdGV4dHVyZV91c2FnZSIpOworICAgIGlmICht
X2NhcGFiaWxpdGllcy51c2luZ1RleHR1cmVVc2FnZUhpbnQpCisgICAgICAgIGV4dGVuc2lvbnMt
PmVuc3VyZUVuYWJsZWQoIkdMX0FOR0xFX3RleHR1cmVfdXNhZ2UiKTsKKworICAgIG1fY2FwYWJp
bGl0aWVzLnVzaW5nVGV4dHVyZVN0b3JhZ2VFeHRlbnNpb24gPSBleHRlbnNpb25zLT5zdXBwb3J0
cygiR0xfRVhUX3RleHR1cmVfc3RvcmFnZSIpOworICAgIGlmIChtX2NhcGFiaWxpdGllcy51c2lu
Z1RleHR1cmVTdG9yYWdlRXh0ZW5zaW9uKQorICAgICAgICBleHRlbnNpb25zLT5lbnN1cmVFbmFi
bGVkKCJHTF9FWFRfdGV4dHVyZV9zdG9yYWdlIik7CisKICAgICBHTEMobV9jb250ZXh0LmdldCgp
LCBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfVEVYVFVSRV9T
SVpFLCAmbV9jYXBhYmlsaXRpZXMubWF4VGV4dHVyZVNpemUpKTsKICAgICBtX2NhcGFiaWxpdGll
cy5iZXN0VGV4dHVyZUZvcm1hdCA9IFBsYXRmb3JtQ29sb3I6OmJlc3RUZXh0dXJlRm9ybWF0KG1f
Y29udGV4dC5nZXQoKSk7CiAKQEAgLTY3Miw2ICs2ODAsMTMgQEAgYm9vbCBMYXllclJlbmRlcmVy
Q2hyb21pdW06OmluaXRpYWxpemVTaAogICAgIG1fcmVuZGVyU3VyZmFjZVRleHR1cmVNYW5hZ2Vy
ID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZShUZXh0dXJlTWFuYWdlcjo6aGlnaExpbWl0Qnl0ZXMo
KSwgbV9jYXBhYmlsaXRpZXMubWF4VGV4dHVyZVNpemUpOwogICAgIG1fY29udGVudHNUZXh0dXJl
QWxsb2NhdG9yID0gVHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9yOjpjcmVhdGUobV9jb250ZXh0Lmdl
dCgpKTsKICAgICBtX3JlbmRlclN1cmZhY2VUZXh0dXJlQWxsb2NhdG9yID0gVHJhY2tpbmdUZXh0
dXJlQWxsb2NhdG9yOjpjcmVhdGUobV9jb250ZXh0LmdldCgpKTsKKyAgICBpZiAobV9jYXBhYmls
aXRpZXMudXNpbmdUZXh0dXJlVXNhZ2VIaW50KQorICAgICAgICBtX3JlbmRlclN1cmZhY2VUZXh0
dXJlQWxsb2NhdG9yLT5zZXRUZXh0dXJlVXNhZ2VIaW50KFRyYWNraW5nVGV4dHVyZUFsbG9jYXRv
cjo6RnJhbWVidWZmZXJBdHRhY2htZW50KTsKKyAgICBpZiAobV9jYXBhYmlsaXRpZXMudXNpbmdU
ZXh0dXJlU3RvcmFnZUV4dGVuc2lvbikgeworICAgICAgICBtX2NvbnRlbnRzVGV4dHVyZUFsbG9j
YXRvci0+c2V0VXNlVGV4dHVyZVN0b3JhZ2VFeHQodHJ1ZSk7CisgICAgICAgIG1fcmVuZGVyU3Vy
ZmFjZVRleHR1cmVBbGxvY2F0b3ItPnNldFVzZVRleHR1cmVTdG9yYWdlRXh0KHRydWUpOworICAg
IH0KKwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9UcmFja2luZ1RleHR1cmVBbGxvY2F0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyYWNraW5n
VGV4dHVyZUFsbG9jYXRvci5jcHAJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyYWNraW5nVGV4dHVyZUFsbG9jYXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIlRyYWNraW5nVGV4
dHVyZUFsbG9jYXRvci5oIgogCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNEQ2hyb21pdW0uaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJlckNocm9taXVtLmgiIC8v
IEZvciB0aGUgR0xDKCkgbWFjcm8KIApAQCAtMzQsNiArMzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBUcmFja2luZ1RleHR1cmVBbGxvY2F0b3I6OlRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcihQ
YXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCiAgICAgLCBtX2N1cnJlbnRNZW1vcnlVc2VCeXRlcygwKQorICAgICwgbV90ZXh0dXJl
VXNhZ2VIaW50KEFueSkKKyAgICAsIG1fdXNlVGV4dHVyZVN0b3JhZ2VFeHQoZmFsc2UpCiB7CiB9
CiAKQEAgLTQyLDYgKzQ1LDI4IEBAIFRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcjo6flRyYWNraW5n
VGV4dHUKICAgICBBU1NFUlQoIW1fY3VycmVudE1lbW9yeVVzZUJ5dGVzKTsKIH0KIAorc3RhdGlj
IEdDM0RlbnVtIHRleHR1cmVUb1N0b3JhZ2VGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCkK
K3sKKyAgICBHQzNEZW51bSBzdG9yYWdlRm9ybWF0ID0gRXh0ZW5zaW9uczNEOjpSR0JBOF9PRVM7
CisgICAgc3dpdGNoICh0ZXh0dXJlRm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkJHUkFfRVhU
OgorICAgICAgICBzdG9yYWdlRm9ybWF0ID0gRXh0ZW5zaW9uczNEQ2hyb21pdW06OkJHUkE4X0VY
VDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBzdG9yYWdlRm9ybWF0
OworfQorCitzdGF0aWMgYm9vbCBpc1RleHR1cmVGb3JtYXRTdXBwb3J0ZWRGb3JTdG9yYWdlKEdD
M0RlbnVtIGZvcm1hdCkKK3sKKyAgICByZXR1cm4gKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQSB8fCBmb3JtYXQgPT0gRXh0ZW5zaW9uczNEOjpCR1JBX0VYVCk7Cit9CisKIHVuc2ln
bmVkIFRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcjo6Y3JlYXRlVGV4dHVyZShjb25zdCBJbnRTaXpl
JiBzaXplLCBHQzNEZW51bSBmb3JtYXQpCiB7CiAgICAgbV9jdXJyZW50TWVtb3J5VXNlQnl0ZXMg
Kz0gVGV4dHVyZU1hbmFnZXI6Om1lbW9yeVVzZUJ5dGVzKHNpemUsIGZvcm1hdCk7CkBAIC01NSw3
ICs4MCwxNSBAQCB1bnNpZ25lZCBUcmFja2luZ1RleHR1cmVBbGxvY2F0b3I6OmNyZWF0CiAgICAg
Ly8gTlBPVCB0ZXh0dXJlcyBpbiBHTCBFUyBvbmx5IHdvcmsgd2hlbiB0aGUgd3JhcCBtb2RlIGlz
IHNldCB0byBHcmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRS4KICAgICBHTEMobV9jb250
ZXh0LmdldCgpLCBtX2NvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250
ZXh0M0Q6OkNMQU1QX1RPX0VER0UpKTsKICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRl
eHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VE
R0UpKTsKLSAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPnRleEltYWdlMkRSZXNv
dXJjZVNhZmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIGZvcm1hdCwgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpLCAwLCBmb3JtYXQsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJ
R05FRF9CWVRFKSk7CisKKyAgICBpZiAobV90ZXh0dXJlVXNhZ2VIaW50ID09IEZyYW1lYnVmZmVy
QXR0YWNobWVudCkKKyAgICAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0LT50ZXhQ
YXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBFeHRlbnNpb25zM0RDaHJv
bWl1bTo6R0xfVEVYVFVSRV9VU0FHRV9BTkdMRSwgRXh0ZW5zaW9uczNEQ2hyb21pdW06OkdMX0ZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfQU5HTEUpKTsKKyAgICBpZiAobV91c2VUZXh0dXJlU3RvcmFn
ZUV4dCAmJiBpc1RleHR1cmVGb3JtYXRTdXBwb3J0ZWRGb3JTdG9yYWdlKGZvcm1hdCkpIHsKKyAg
ICAgICAgRXh0ZW5zaW9uczNEQ2hyb21pdW0qIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxFeHRl
bnNpb25zM0RDaHJvbWl1bSo+KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpKTsKKyAgICAgICAg
R0MzRGVudW0gc3RvcmFnZUZvcm1hdCA9IHRleHR1cmVUb1N0b3JhZ2VGb3JtYXQoZm9ybWF0KTsK
KyAgICAgICAgZXh0ZW5zaW9ucy0+dGV4U3RvcmFnZTJERVhUKEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFXzJELCAxLCBzdG9yYWdlRm9ybWF0LCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkp
OworICAgIH0gZWxzZQorICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPnRl
eEltYWdlMkRSZXNvdXJjZVNhZmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIGZv
cm1hdCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCAwLCBmb3JtYXQsIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9CWVRFKSk7CiAgICAgcmV0dXJuIHRleHR1cmVJZDsKIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVHJhY2tpbmdUZXh0
dXJlQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9yLmgJKHJldmlzaW9uIDEwMTc0
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyYWNraW5n
VGV4dHVyZUFsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMSArNDUsMTggQEAgcHVi
bGljOgogCiAgICAgc2l6ZV90IGN1cnJlbnRNZW1vcnlVc2VCeXRlcygpIGNvbnN0IHsgcmV0dXJu
IG1fY3VycmVudE1lbW9yeVVzZUJ5dGVzOyB9CiAKKyAgICBlbnVtIFRleHR1cmVVc2FnZUhpbnQg
eyBBbnksIEZyYW1lYnVmZmVyQXR0YWNobWVudCB9OworCisgICAgdm9pZCBzZXRUZXh0dXJlVXNh
Z2VIaW50KFRleHR1cmVVc2FnZUhpbnQgaGludCkgeyBtX3RleHR1cmVVc2FnZUhpbnQgPSBoaW50
OyB9CisgICAgdm9pZCBzZXRVc2VUZXh0dXJlU3RvcmFnZUV4dChib29sIHVzZVN0b3JhZ2VFeHQp
IHsgbV91c2VUZXh0dXJlU3RvcmFnZUV4dCA9IHVzZVN0b3JhZ2VFeHQ7IH0KKwogcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IFRyYWNraW5nVGV4dHVyZUFsbG9jYXRvcihQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPik7CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4
dDsKICAgICBzaXplX3QgbV9jdXJyZW50TWVtb3J5VXNlQnl0ZXM7CisgICAgVGV4dHVyZVVzYWdl
SGludCBtX3RleHR1cmVVc2FnZUhpbnQ7CisgICAgYm9vbCBtX3VzZVRleHR1cmVTdG9yYWdlRXh0
OwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHJldmlzaW9uIDEw
MTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw4IEBAIHN0cnVjdCBM
YXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzIHsKICAgICAgICAgLCB1c2luZ0FjY2VsZXJhdGVkUGFp
bnRpbmcoZmFsc2UpCiAgICAgICAgICwgdXNpbmdTZXRWaXNpYmlsaXR5KGZhbHNlKQogICAgICAg
ICAsIHVzaW5nU3dhcENvbXBsZXRlQ2FsbGJhY2soZmFsc2UpCisgICAgICAgICwgdXNpbmdUZXh0
dXJlVXNhZ2VIaW50KGZhbHNlKQorICAgICAgICAsIHVzaW5nVGV4dHVyZVN0b3JhZ2VFeHRlbnNp
b24oZmFsc2UpCiAgICAgICAgICwgbWF4VGV4dHVyZVNpemUoMCkgeyB9CiAKICAgICBHQzNEZW51
bSBiZXN0VGV4dHVyZUZvcm1hdDsKQEAgLTEwNSw2ICsxMDcsOCBAQCBzdHJ1Y3QgTGF5ZXJSZW5k
ZXJlckNhcGFiaWxpdGllcyB7CiAgICAgYm9vbCB1c2luZ0FjY2VsZXJhdGVkUGFpbnRpbmc7CiAg
ICAgYm9vbCB1c2luZ1NldFZpc2liaWxpdHk7CiAgICAgYm9vbCB1c2luZ1N3YXBDb21wbGV0ZUNh
bGxiYWNrOworICAgIGJvb2wgdXNpbmdUZXh0dXJlVXNhZ2VIaW50OworICAgIGJvb2wgdXNpbmdU
ZXh0dXJlU3RvcmFnZUV4dGVuc2lvbjsKICAgICBpbnQgbWF4VGV4dHVyZVNpemU7CiB9OwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxNzQxKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBA
QAorMjAxMS0xMi0wMSAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgVXNlIEFOR0xFJ3MgdGV4dHVyZV91c2FnZSBhbmQgdGV4dHVyZV9zdG9yYWdl
IGV4dGVuc2lvbnMgd2hlbiBhbGxvY2F0aW5nIGNvbXBvc2l0b3IgdGV4dHVyZXMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYyMQorCisgICAgICAg
IEFkZCB0aGUgbmVjZXNzYXJ5IGVudHJ5IHBvaW50cyBhbmQgZW51bXMgdG8gR3JhcGhpY3NDb250
ZXh0M0QuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBzcmMv
RXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNE
Q2hyb21pdW06OnRleFN0b3JhZ2UyREVYVCk6CisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4
dDNEQ2hyb21pdW0uY3BwOgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
aDoKKyAgICAgICAgKiB0ZXN0cy9Nb2NrV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAg
KFdlYktpdDo6TW9ja1dlYkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhTdG9yYWdlMkRFWFQpOgorCiAy
MDExLTEyLTAxICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gYWRkIHJlZmVycmVyIHBvbGljeSB0byBXZWJDb250ZXh0TWVudURhdGEK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkdyYXBoaWNz
Q29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
cGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTAxNzQxKQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDYgKzM4MSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gR0xf
Q0hST01JVU1faW9zdXJmYWNlCiAgICAgdmlydHVhbCB2b2lkIHRleEltYWdlSU9TdXJmYWNlMkRD
SFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCB3aWR0aCwgV0dDM0RpbnQgaGVpZ2h0
LCBXR0MzRHVpbnQgaW9TdXJmYWNlSWQsIFdHQzNEdWludCBwbGFuZSkgeyB9CiAKKyAgICAvLyBH
TF9FWFRfdGV4dHVyZV9zdG9yYWdlCisgICAgdmlydHVhbCB2b2lkIHRleFN0b3JhZ2UyREVYVChX
R0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbHMsIFdHQzNEdWludCBpbnRlcm5hbGZvcm1h
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNEaW50IHdpZHRoLCBXR0Mz
RGludCBoZWlnaHQpIHsgfQorCisKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogICAgIEdyR0xJbnRl
cmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAkocmV2aXNp
b24gMTAxNzQxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hy
b21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAsNiArMTUwLDExIEBAIHZvaWQgRXh0ZW5z
aW9uczNEQ2hyb21pdW06OnRleEltYWdlSU9TdXIKICAgICBtX3ByaXZhdGUtPnRleEltYWdlSU9T
dXJmYWNlMkRDSFJPTUlVTSh0YXJnZXQsIHdpZHRoLCBoZWlnaHQsIGlvU3VyZmFjZUlkLCBwbGFu
ZSk7CiB9CiAKK3ZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OnRleFN0b3JhZ2UyREVYVCh1bnNp
Z25lZCBpbnQgdGFyZ2V0LCBpbnQgbGV2ZWxzLCB1bnNpZ25lZCBpbnQgaW50ZXJuYWxGb3JtYXQs
IGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBtX3ByaXZhdGUtPnRleFN0b3JhZ2UyREVY
VCh0YXJnZXQsIGxldmVscywgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQz
RENocm9taXVtLmNwcAkocmV2aXNpb24gMTAxNzQxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkw
Nyw2ICs5MDcsNyBAQCBERUxFR0FURV9UT19JTVBMX1IoZ2V0R3JhcGhpY3NSZXNldFN0YXR1CiAK
IERFTEVHQVRFX1RPX0lNUExfMVIoZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLCBQbGF0
Zm9ybTNET2JqZWN0LCBTdHJpbmcpCiBERUxFR0FURV9UT19JTVBMXzUodGV4SW1hZ2VJT1N1cmZh
Y2UyRENIUk9NSVVNLCBHQzNEZW51bSwgR0MzRGludCwgR0MzRGludCwgR0MzRHVpbnQsIEdDM0R1
aW50KQorREVMRUdBVEVfVE9fSU1QTF81KHRleFN0b3JhZ2UyREVYVCwgR0MzRGVudW0sIEdDM0Rp
bnQsIEdDM0R1aW50LCBHQzNEaW50LCBHQzNEaW50KQogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIEdy
YXBoaWNzQ29udGV4dDNECkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkocmV2aXNpb24gMTAxNzQxKQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxMiw2ICszMTIsOSBAQCBwdWJsaWM6CiAgICAgLy8gR0xfQ0hST01JVU1f
aW9zdXJmYWNlCiAgICAgdm9pZCB0ZXhJbWFnZUlPU3VyZmFjZTJEQ0hST01JVU0oR0MzRGVudW0g
dGFyZ2V0LCBHQzNEaW50IHdpZHRoLCBHQzNEaW50IGhlaWdodCwgR0MzRHVpbnQgaW9TdXJmYWNl
SWQsIEdDM0R1aW50IHBsYW5lKTsKIAorICAgIC8vIEdMX0VYVF90ZXh0dXJlX3N0b3JhZ2UKKyAg
ICB2b2lkIHRleFN0b3JhZ2UyREVYVChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWxzLCBH
QzNEdWludCBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB3aWR0aCwgR0MzRGludCBoZWlnaHQpOwor
CiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShXZWJLaXQ6OldlYlZpZXdJ
bXBsKiwgUGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkF0dHJpYnV0ZXMpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL01vY2tXZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvTW9ja1dlYkdyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDEw
MTc0MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTW9ja1dlYkdyYXBoaWNzQ29u
dGV4dDNELmgJKHdvcmtpbmcgY29weSkKQEAgLTI1MSw2ICsyNTEsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZVJlbmRlcmJ1ZmZlcihXZWJHTElkKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlU2hhZGVyKFdlYkdMSWQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVU
ZXh0dXJlKFdlYkdMSWQpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHRleFN0b3JhZ2UyREVYVChX
R0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbHMsIFdHQzNEdWludCBpbnRlcm5hbGZvcm1h
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNEaW50IHdpZHRoLCBXR0Mz
RGludCBoZWlnaHQpIHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="117509"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="117521"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>