<?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>54559</bug_id>
          
          <creation_ts>2011-02-16 08:28:59 -0800</creation_ts>
          <short_desc>[chromium] Fix green pixels at edge of certain GPU-accelerated videos</short_desc>
          <delta_ts>2011-02-16 20:44:52 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>54484</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Victoria Kirst">vrk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>scherkus</cc>
    
    <cc>sjl</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>352090</commentid>
    <comment_count>0</comment_count>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-02-16 08:28:59 -0800</bug_when>
    <thetext>[chromium] Fix green pixels at edge of certain GPU-accelerated videos</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352092</commentid>
    <comment_count>1</comment_count>
      <attachid>82643</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-02-16 08:31:53 -0800</bug_when>
    <thetext>Created attachment 82643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352138</commentid>
    <comment_count>2</comment_count>
      <attachid>82643</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2011-02-16 09:35:44 -0800</bug_when>
    <thetext>Comment on attachment 82643
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp:316
&gt; +            float deadPixelsPerRow = planeTextureSize.width() - frameWidth;

does this need to be float?  I think planeTextureSize and frameWidth are both ints

&gt; Source/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp:394
&gt; +    // Artibitrarily take the u sizes because u and v dimensions are identical.

Artibitrarily -&gt; Arbitrarily</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352314</commentid>
    <comment_count>3</comment_count>
      <attachid>82687</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-02-16 13:55:51 -0800</bug_when>
    <thetext>Created attachment 82687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352323</commentid>
    <comment_count>4</comment_count>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-02-16 14:01:41 -0800</bug_when>
    <thetext>Updated patch to reflect Andrew&apos;s suggested changes, and subtracts 2 from Y plane&apos;s width instead of 1 in YV12 case.

Also moved some of the logic to VideoFrameChromium and did some refactoring there for a cleaner solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352328</commentid>
    <comment_count>5</comment_count>
      <attachid>82687</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-16 14:06:17 -0800</bug_when>
    <thetext>Comment on attachment 82687
Patch

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

I&apos;ll be happy to r+ this once a member of the video stack team signs off on it. One minor stylistic comment.

&gt; Source/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp:313
&gt; +                frameWidth--;

Prefer predecrement in WebKit. (i.e., --frameWidth)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352438</commentid>
    <comment_count>6</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2011-02-16 16:19:31 -0800</bug_when>
    <thetext>I ran some tests using a static YUV test image and this patch is good to go!

On width==stride videos we have pixel-accurate scaling as expected.

On width&lt;stride videos we _do_ end up scaling the video horizontally by one pixel (i.e., right-most pixel line is gone!) but Y and UV planes are still in sync which is the important part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352442</commentid>
    <comment_count>7</comment_count>
      <attachid>82719</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-02-16 16:26:17 -0800</bug_when>
    <thetext>Created attachment 82719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352452</commentid>
    <comment_count>8</comment_count>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2011-02-16 16:33:50 -0800</bug_when>
    <thetext>Thanks for all the help with the bug and for writing a way to test it, Andrew!

kbr: Thanks for reviewing! I fixed the nit in my latest uploaded patch. (Also made a minor adjustment to the CL description; otherwise kept the same.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352476</commentid>
    <comment_count>9</comment_count>
      <attachid>82719</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-16 17:10:27 -0800</bug_when>
    <thetext>Comment on attachment 82719
Patch

Sounds good. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352586</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-16 20:42:00 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 82719:

http/tests/websocket/tests/multiple-connections.html bug 53825 (author: abarth@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352587</commentid>
    <comment_count>11</comment_count>
      <attachid>82719</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-16 20:44:47 -0800</bug_when>
    <thetext>Comment on attachment 82719
Patch

Clearing flags on attachment: 82719

Committed r78787: &lt;http://trac.webkit.org/changeset/78787&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352588</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-16 20:44:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82643</attachid>
            <date>2011-02-16 08:31:53 -0800</date>
            <delta_ts>2011-02-16 13:55:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54559-20110216083152.patch</filename>
            <type>text/plain</type>
            <size>11332</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg2NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NmE3YjE0Yzk0NWIyZmQ2
NDJhNDYzZTM0N2Y0YjlmZTlkZjYwNWFhLi5jNjk0YTJhOTllYzJjNmZmNDhjN2Q5MGIwOWM0YWM1
ZjNhMDg2NTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMTYgIFZpY3Rv
cmlhIEtpcnN0ICA8dnJrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBGaXggZ3JlZW4gcGl4ZWxzIGF0IGVkZ2Ug
b2YgY2VydGFpbiBHUFUtYWNjZWxlcmF0ZWQgdmlkZW9zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU1OQorCisgICAgICAgIEFkZHMgbG9naWMgdG8g
cHJvcGVybHkgcmVzaXplIHRoZSByYW5nZSBvZiBVIGFuZCBWIHRleHR1cmVzIHRvIG9ubHkKKyAg
ICAgICAgc2VsZWN0IGxlZ2l0aW1hdGUgdmFsdWVzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6VmlkZW9MYXllckNocm9taXVtOjphbGxvY2F0ZVRleHR1cmVzSWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllckNocm9taXVtOjpkcmF3WVVWKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjp5V2lkdGhT
Y2FsZUZhY3RvckxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJvbWl1
bTo6U2hhcmVkVmFsdWVzOjp1dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbik6CisKIDIwMTEtMDIt
MTUgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHAKaW5kZXggNDFjZDE4MDJkMDI3MmFhYWVlY2MwZTQ1MTc4ZWFjY2I3ZTY0ZWI2NS4uMGE4YWQz
MjE4ZTBhMWRlMjQ1ZDFkMTM3MGRiODgzNjJkNzY3OTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVy
Q2hyb21pdW0uY3BwCkBAIC01Niw3ICs1Niw4IEBAIFZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVk
VmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAgLCBt
X3l1dlNoYWRlclByb2dyYW0oMCkKICAgICAsIG1fcmdiYVNoYWRlclByb2dyYW0oMCkKICAgICAs
IG1feXV2U2hhZGVyTWF0cml4TG9jYXRpb24oMCkKLSAgICAsIG1feXV2V2lkdGhTY2FsZUZhY3Rv
ckxvY2F0aW9uKDApCisgICAgLCBtX3lXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oMCkKKyAgICAs
IG1fdXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oMCkKICAgICAsIG1fcmdiYVNoYWRlck1hdHJp
eExvY2F0aW9uKDApCiAgICAgLCBtX3JnYmFXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oMCkKICAg
ICAsIG1fY2NNYXRyaXhMb2NhdGlvbigwKQpAQCAtODEsMTggKzgyLDIyIEBAIFZpZGVvTGF5ZXJD
aHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNv
bnRleHQpCiAgICAgICAgICJhdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOyAgIFxuIgogICAgICAg
ICAiYXR0cmlidXRlIHZlYzIgYV90ZXhDb29yZDsgICBcbiIKICAgICAgICAgInVuaWZvcm0gbWF0
NCBtYXRyaXg7ICAgICAgICAgXG4iCi0gICAgICAgICJ2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsg
ICAgIFxuIgotICAgICAgICAidW5pZm9ybSBmbG9hdCB3aWR0aFNjYWxlRmFjdG9yOyAgXG4iCisg
ICAgICAgICJ2YXJ5aW5nIHZlYzIgeV90ZXhDb29yZDsgICAgIFxuIgorICAgICAgICAidmFyeWlu
ZyB2ZWMyIHV2X3RleENvb3JkOyAgICBcbiIKKyAgICAgICAgInVuaWZvcm0gZmxvYXQgeV93aWR0
aFNjYWxlRmFjdG9yOyBcbiIKKyAgICAgICAgInVuaWZvcm0gZmxvYXQgdXZfd2lkdGhTY2FsZUZh
Y3RvcjsgXG4iCiAgICAgICAgICJ2b2lkIG1haW4oKSAgICAgICAgICAgICAgICAgIFxuIgogICAg
ICAgICAieyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKICAgICAgICAgIiAgZ2xfUG9z
aXRpb24gPSBtYXRyaXggKiBhX3Bvc2l0aW9uOyBcbiIKLSAgICAgICAgIiAgdl90ZXhDb29yZCA9
IHZlYzIod2lkdGhTY2FsZUZhY3RvciAqIGFfdGV4Q29vcmQueCwgYV90ZXhDb29yZC55KTsgXG4i
CisgICAgICAgICIgIHlfdGV4Q29vcmQgPSB2ZWMyKHlfd2lkdGhTY2FsZUZhY3RvciAqIGFfdGV4
Q29vcmQueCwgYV90ZXhDb29yZC55KTsgXG4iCisgICAgICAgICIgIHV2X3RleENvb3JkID0gdmVj
Mih1dl93aWR0aFNjYWxlRmFjdG9yICogYV90ZXhDb29yZC54LCBhX3RleENvb3JkLnkpOyBcbiIK
ICAgICAgICAgIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iOwogCiAgICAgY2hhciB5
dXZGcmFnbWVudFNoYWRlclN0cmluZ1tdID0KICAgICAgICAgInByZWNpc2lvbiBtZWRpdW1wIGZs
b2F0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCiAgICAgICAgICJwcmVjaXNpb24g
bWVkaXVtcCBpbnQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotICAgICAgICAi
dmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK
KyAgICAgICAgInZhcnlpbmcgdmVjMiB5X3RleENvb3JkOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXG4iCisgICAgICAgICJ2YXJ5aW5nIHZlYzIgdXZfdGV4Q29vcmQ7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFxuIgogICAgICAgICAidW5pZm9ybSBzYW1wbGVyMkQgeV90ZXh0dXJl
OyAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKICAgICAgICAgInVuaWZvcm0gc2FtcGxlcjJE
IHVfdGV4dHVyZTsgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCiAgICAgICAgICJ1bmlmb3Jt
IHNhbXBsZXIyRCB2X3RleHR1cmU7ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgpAQCAtMTAx
LDIxICsxMDYsMjEgQEAgVmlkZW9MYXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6OlNoYXJlZFZh
bHVlcyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICAgICAgInVuaWZvcm0gbWF0MyBj
Y19tYXRyaXg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCiAgICAgICAgICJ2b2lk
IG1haW4oKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgogICAg
ICAgICAieyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcbiIKLSAgICAgICAgIiAgZmxvYXQgeSA9IHRleHR1cmUyRCh5X3RleHR1cmUsIHZfdGV4Q29v
cmQpLng7ICAgICAgXG4iCi0gICAgICAgICIgIGZsb2F0IHUgPSB0ZXh0dXJlMkQodV90ZXh0dXJl
LCB2X3RleENvb3JkKS54IC0gYWRqOyBcbiIKLSAgICAgICAgIiAgZmxvYXQgdiA9IHRleHR1cmUy
RCh2X3RleHR1cmUsIHZfdGV4Q29vcmQpLnggLSBhZGo7IFxuIgorICAgICAgICAiICBmbG9hdCB5
ID0gdGV4dHVyZTJEKHlfdGV4dHVyZSwgeV90ZXhDb29yZCkueDsgICAgICBcbiIKKyAgICAgICAg
IiAgZmxvYXQgdSA9IHRleHR1cmUyRCh1X3RleHR1cmUsIHV2X3RleENvb3JkKS54IC0gYWRqOyBc
biIKKyAgICAgICAgIiAgZmxvYXQgdiA9IHRleHR1cmUyRCh2X3RleHR1cmUsIHV2X3RleENvb3Jk
KS54IC0gYWRqOyBcbiIKICAgICAgICAgIiAgdmVjMyByZ2IgPSBjY19tYXRyaXggKiB2ZWMzKHks
IHUsIHYpOyAgICAgICAgICAgICAgXG4iCiAgICAgICAgICIgIGdsX0ZyYWdDb2xvciA9IHZlYzQo
cmdiLCBmbG9hdCgxKSkgKiBhbHBoYTsgICAgICAgIFxuIgogICAgICAgICAifSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiI7CiAKICAgICBjaGFy
IHJnYmFGcmFnbWVudFNoYWRlclN0cmluZ1tdID0KICAgICAgICAgInByZWNpc2lvbiBtZWRpdW1w
IGZsb2F0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0gICAgICAgICJ2YXJ5aW5n
IHZlYzIgdl90ZXhDb29yZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICAg
ICAidmFyeWluZyB2ZWMyIHlfdGV4Q29vcmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
biIKICAgICAgICAgInVuaWZvcm0gc2FtcGxlcjJEIHJnYmFfdGV4dHVyZTsgICAgICAgICAgICAg
ICAgICAgICAgXG4iCiAgICAgICAgICJ1bmlmb3JtIGZsb2F0IGFscGhhOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFxuIgogICAgICAgICAidm9pZCBtYWluKCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKICAgICAgICAgInsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0gICAgICAgICIgIHZl
YzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQocmdiYV90ZXh0dXJlLCB2ZWMyKHZfdGV4Q29vcmQueCwg
ZmxvYXQoMSkgLSB2X3RleENvb3JkLnkpKTsgXG4iCisgICAgICAgICIgIHZlYzQgdGV4Q29sb3Ig
PSB0ZXh0dXJlMkQocmdiYV90ZXh0dXJlLCB2ZWMyKHlfdGV4Q29vcmQueCwgZmxvYXQoMSkgLSB5
X3RleENvb3JkLnkpKTsgXG4iCiAgICAgICAgICIgIGdsX0ZyYWdDb2xvciA9IHZlYzQodGV4Q29s
b3IueCwgdGV4Q29sb3IueSwgdGV4Q29sb3IueiwgdGV4Q29sb3IudykgKiBhbHBoYTsgXG4iCiAg
ICAgICAgICJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFxuIjsKIApAQCAtMTMyLDcgKzEzNyw4IEBAIFZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVk
VmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAgfQog
CiAgICAgbV95dXZTaGFkZXJNYXRyaXhMb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxv
Y2F0aW9uKG1feXV2U2hhZGVyUHJvZ3JhbSwgIm1hdHJpeCIpOwotICAgIG1feXV2V2lkdGhTY2Fs
ZUZhY3RvckxvY2F0aW9uID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24obV95dXZTaGFk
ZXJQcm9ncmFtLCAid2lkdGhTY2FsZUZhY3RvciIpOworICAgIG1feVdpZHRoU2NhbGVGYWN0b3JM
b2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1feXV2U2hhZGVyUHJvZ3Jh
bSwgInlfd2lkdGhTY2FsZUZhY3RvciIpOworICAgIG1fdXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRp
b24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3l1dlNoYWRlclByb2dyYW0sICJ1
dl93aWR0aFNjYWxlRmFjdG9yIik7CiAgICAgbV95VGV4dHVyZUxvY2F0aW9uID0gbV9jb250ZXh0
LT5nZXRVbmlmb3JtTG9jYXRpb24obV95dXZTaGFkZXJQcm9ncmFtLCAieV90ZXh0dXJlIik7CiAg
ICAgbV91VGV4dHVyZUxvY2F0aW9uID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24obV95
dXZTaGFkZXJQcm9ncmFtLCAidV90ZXh0dXJlIik7CiAgICAgbV92VGV4dHVyZUxvY2F0aW9uID0g
bV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24obV95dXZTaGFkZXJQcm9ncmFtLCAidl90ZXh0
dXJlIik7CkBAIC0xNDEsNyArMTQ3LDggQEAgVmlkZW9MYXllckNocm9taXVtOjpTaGFyZWRWYWx1
ZXM6OlNoYXJlZFZhbHVlcyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICBtX3l1dkFs
cGhhTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3l1dlNoYWRlclBy
b2dyYW0sICJhbHBoYSIpOwogCiAgICAgQVNTRVJUKG1feXV2U2hhZGVyTWF0cml4TG9jYXRpb24g
IT0gLTEpOwotICAgIEFTU0VSVChtX3l1dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbiAhPSAtMSk7
CisgICAgQVNTRVJUKG1feVdpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbiAhPSAtMSk7CisgICAgQVNT
RVJUKG1fdXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24gIT0gLTEpOwogICAgIEFTU0VSVChtX3lU
ZXh0dXJlTG9jYXRpb24gIT0gLTEpOwogICAgIEFTU0VSVChtX3VUZXh0dXJlTG9jYXRpb24gIT0g
LTEpOwogICAgIEFTU0VSVChtX3ZUZXh0dXJlTG9jYXRpb24gIT0gLTEpOwpAQCAtMTUxLDcgKzE1
OCw3IEBAIFZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAKICAgICBtX3JnYmFTaGFkZXJNYXRyaXhMb2NhdGlv
biA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1fcmdiYVNoYWRlclByb2dyYW0sICJt
YXRyaXgiKTsKICAgICBtX3JnYmFUZXh0dXJlTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldFVuaWZv
cm1Mb2NhdGlvbihtX3JnYmFTaGFkZXJQcm9ncmFtLCAicmdiYV90ZXh0dXJlIik7Ci0gICAgbV9y
Z2JhV2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRp
b24obV9yZ2JhU2hhZGVyUHJvZ3JhbSwgIndpZHRoU2NhbGVGYWN0b3IiKTsKKyAgICBtX3JnYmFX
aWR0aFNjYWxlRmFjdG9yTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbiht
X3JnYmFTaGFkZXJQcm9ncmFtLCAieV93aWR0aFNjYWxlRmFjdG9yIik7CiAgICAgbV9yZ2JhQWxw
aGFMb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1fcmdiYVNoYWRlclBy
b2dyYW0sICJhbHBoYSIpOwogCiAgICAgQVNTRVJUKG1fcmdiYVNoYWRlck1hdHJpeExvY2F0aW9u
ICE9IC0xKTsKQEAgLTI5Nyw3ICszMDQsMTkgQEAgYm9vbCBWaWRlb0xheWVyQ2hyb21pdW06OmFs
bG9jYXRlVGV4dHVyZXNJZk5lZWRlZChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgVmkKICAg
ICAgICAgaWYgKCFwbGFuZVRleHR1cmVTaXplLmlzWmVybygpICYmIHBsYW5lVGV4dHVyZVNpemUg
IT0gbV90ZXh0dXJlU2l6ZXNbcGxhbmVdKSB7CiAgICAgICAgICAgICBhbGxvY2F0ZVRleHR1cmUo
Y29udGV4dCwgbV90ZXh0dXJlc1twbGFuZV0sIHBsYW5lVGV4dHVyZVNpemUsIHRleHR1cmVGb3Jt
YXQpOwogICAgICAgICAgICAgbV90ZXh0dXJlU2l6ZXNbcGxhbmVdID0gcGxhbmVUZXh0dXJlU2l6
ZTsKLSAgICAgICAgICAgIG1fZnJhbWVTaXplc1twbGFuZV0gPSBJbnRTaXplKGZyYW1lLT53aWR0
aCgpLCBmcmFtZS0+aGVpZ2h0KCkpOworICAgICAgICAgICAgaW50IGZyYW1lV2lkdGggPSBmcmFt
ZS0+d2lkdGgoKTsKKyAgICAgICAgICAgIGludCBmcmFtZUhlaWdodCA9IGZyYW1lLT5oZWlnaHQo
KTsKKyAgICAgICAgICAgIGlmIChwbGFuZSA9PSBWaWRlb0ZyYW1lQ2hyb21pdW06OnVQbGFuZSB8
fCBwbGFuZSA9PSBWaWRlb0ZyYW1lQ2hyb21pdW06OnZQbGFuZSkgeworICAgICAgICAgICAgICAg
IGZyYW1lV2lkdGggLz0gMjsKKyAgICAgICAgICAgICAgICBmcmFtZUhlaWdodCAvPSAyOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgZGVhZCBwaXhlbHMgYXQg
dGhlIGVkZ2Ugb2YgdGhlIHRleHR1cmUsIGRlY3JlYXNlCisgICAgICAgICAgICAvLyB0aGUgZnJh
bWUgd2lkdGggYnkgMSB0byBwcmV2ZW50IHRoZSByaWdodG1vc3QgcGl4ZWxzIGZyb20KKyAgICAg
ICAgICAgIC8vIGludGVycG9sYXRpbmcgd2l0aCB0aGUgZGVhZCBwaXhlbHMuCisgICAgICAgICAg
ICBmbG9hdCBkZWFkUGl4ZWxzUGVyUm93ID0gcGxhbmVUZXh0dXJlU2l6ZS53aWR0aCgpIC0gZnJh
bWVXaWR0aDsKKyAgICAgICAgICAgIGlmIChkZWFkUGl4ZWxzUGVyUm93ID4gMCkKKyAgICAgICAg
ICAgICAgICBmcmFtZVdpZHRoLS07CisgICAgICAgICAgICBtX2ZyYW1lU2l6ZXNbcGxhbmVdID0g
SW50U2l6ZShmcmFtZVdpZHRoLCBmcmFtZUhlaWdodCk7CiAgICAgICAgIH0KICAgICB9CiAgICAg
cmV0dXJuIHRydWU7CkBAIC0zNzAsMTAgKzM4OSwxNiBAQCB2b2lkIFZpZGVvTGF5ZXJDaHJvbWl1
bTo6ZHJhd1lVVihjb25zdCBTaGFyZWRWYWx1ZXMqIHN2KQogICAgIEdMQyhjb250ZXh0LCBjb250
ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgbV90ZXh0dXJl
c1tWaWRlb0ZyYW1lQ2hyb21pdW06OnZQbGFuZV0pKTsKIAogICAgIGxheWVyUmVuZGVyZXIoKS0+
dXNlU2hhZGVyKHN2LT55dXZTaGFkZXJQcm9ncmFtKCkpOwotICAgIHVuc2lnbmVkIGZyYW1lV2lk
dGggPSBtX2ZyYW1lU2l6ZXNbVmlkZW9GcmFtZUNocm9taXVtOjp5UGxhbmVdLndpZHRoKCk7Ci0g
ICAgdW5zaWduZWQgdGV4dHVyZVdpZHRoID0gbV90ZXh0dXJlU2l6ZXNbVmlkZW9GcmFtZUNocm9t
aXVtOjp5UGxhbmVdLndpZHRoKCk7Ci0gICAgZmxvYXQgd2lkdGhTY2FsZUZhY3RvciA9IHN0YXRp
Y19jYXN0PGZsb2F0PihmcmFtZVdpZHRoKSAvIHRleHR1cmVXaWR0aDsKLSAgICBHTEMoY29udGV4
dCwgY29udGV4dC0+dW5pZm9ybTFmKHN2LT55dXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oKSwg
d2lkdGhTY2FsZUZhY3RvcikpOworICAgIHVuc2lnbmVkIHlGcmFtZVdpZHRoID0gbV9mcmFtZVNp
emVzW1ZpZGVvRnJhbWVDaHJvbWl1bTo6eVBsYW5lXS53aWR0aCgpOworICAgIHVuc2lnbmVkIHlU
ZXh0dXJlV2lkdGggPSBtX3RleHR1cmVTaXplc1tWaWRlb0ZyYW1lQ2hyb21pdW06OnlQbGFuZV0u
d2lkdGgoKTsKKyAgICAvLyBBcnRpYml0cmFyaWx5IHRha2UgdGhlIHUgc2l6ZXMgYmVjYXVzZSB1
IGFuZCB2IGRpbWVuc2lvbnMgYXJlIGlkZW50aWNhbC4KKyAgICB1bnNpZ25lZCB1dkZyYW1lV2lk
dGggPSBtX2ZyYW1lU2l6ZXNbVmlkZW9GcmFtZUNocm9taXVtOjp1UGxhbmVdLndpZHRoKCk7Cisg
ICAgdW5zaWduZWQgdXZUZXh0dXJlV2lkdGggPSBtX3RleHR1cmVTaXplc1tWaWRlb0ZyYW1lQ2hy
b21pdW06OnVQbGFuZV0ud2lkdGgoKTsKKworICAgIGZsb2F0IHlXaWR0aFNjYWxlRmFjdG9yID0g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHlGcmFtZVdpZHRoKSAvIHlUZXh0dXJlV2lkdGg7CisgICAgZmxv
YXQgdXZXaWR0aFNjYWxlRmFjdG9yID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHV2RnJhbWVXaWR0aCkg
LyB1dlRleHR1cmVXaWR0aDsKKyAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dW5pZm9ybTFmKHN2
LT55V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uKCksIHlXaWR0aFNjYWxlRmFjdG9yKSk7CisgICAg
R0xDKGNvbnRleHQsIGNvbnRleHQtPnVuaWZvcm0xZihzdi0+dXZXaWR0aFNjYWxlRmFjdG9yTG9j
YXRpb24oKSwgdXZXaWR0aFNjYWxlRmFjdG9yKSk7CiAKICAgICBHTEMoY29udGV4dCwgY29udGV4
dC0+dW5pZm9ybTFpKHN2LT55VGV4dHVyZUxvY2F0aW9uKCksIDEpKTsKICAgICBHTEMoY29udGV4
dCwgY29udGV4dC0+dW5pZm9ybTFpKHN2LT51VGV4dHVyZUxvY2F0aW9uKCksIDIpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5
ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VmlkZW9MYXllckNocm9taXVtLmgKaW5kZXggYWMzYmNhOWE2ZGI5MGQ2ZWE5OTgyM2M4NjYwYTRi
NzNhODViYWRhMy4uMzQ0OWI4MWJkZmM3MjcxNjYwOThiNWIwMWY1YTYzM2Q2ZGM4ZjFiYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9M
YXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVmlkZW9MYXllckNocm9taXVtLmgKQEAgLTYxLDcgKzYxLDggQEAgcHVibGljOgogICAg
ICAgICB1bnNpZ25lZCByZ2JhU2hhZGVyUHJvZ3JhbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmdiYVNo
YWRlclByb2dyYW07IH0KICAgICAgICAgaW50IHl1dlNoYWRlck1hdHJpeExvY2F0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV95dXZTaGFkZXJNYXRyaXhMb2NhdGlvbjsgfQogICAgICAgICBpbnQgcmdi
YVNoYWRlck1hdHJpeExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9yZ2JhU2hhZGVyTWF0cml4
TG9jYXRpb247IH0KLSAgICAgICAgaW50IHl1dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1feXV2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uOyB9CisgICAgICAgIGlu
dCB5V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV95V2lkdGhTY2Fs
ZUZhY3RvckxvY2F0aW9uOyB9CisgICAgICAgIGludCB1dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fdXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb247IH0KICAgICAg
ICAgaW50IHJnYmFXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Jn
YmFXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb247IH0KICAgICAgICAgaW50IHlUZXh0dXJlTG9jYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3lUZXh0dXJlTG9jYXRpb247IH0KICAgICAgICAgaW50IHVU
ZXh0dXJlTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3VUZXh0dXJlTG9jYXRpb247IH0KQEAg
LTc3LDcgKzc4LDggQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBtX3l1dlNoYWRlclByb2dy
YW07CiAgICAgICAgIHVuc2lnbmVkIG1fcmdiYVNoYWRlclByb2dyYW07CiAgICAgICAgIGludCBt
X3l1dlNoYWRlck1hdHJpeExvY2F0aW9uOwotICAgICAgICBpbnQgbV95dXZXaWR0aFNjYWxlRmFj
dG9yTG9jYXRpb247CisgICAgICAgIGludCBtX3lXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb247Cisg
ICAgICAgIGludCBtX3V2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uOwogICAgICAgICBpbnQgbV9y
Z2JhU2hhZGVyTWF0cml4TG9jYXRpb247CiAgICAgICAgIGludCBtX3JnYmFXaWR0aFNjYWxlRmFj
dG9yTG9jYXRpb247CiAgICAgICAgIGludCBtX2NjTWF0cml4TG9jYXRpb247Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82687</attachid>
            <date>2011-02-16 13:55:51 -0800</date>
            <delta_ts>2011-02-16 16:26:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54559-20110216135549.patch</filename>
            <type>text/plain</type>
            <size>16754</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg2NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NmE3YjE0Yzk0NWIyZmQ2
NDJhNDYzZTM0N2Y0YjlmZTlkZjYwNWFhLi4zZjcyMjZmMmYxYWVkNGUxNmY3ZDBhZjAyYzdhNmZj
YjU3OTg0ZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTYgIFZpY3Rv
cmlhIEtpcnN0ICA8dnJrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBGaXggZ3JlZW4gcGl4ZWxzIGF0IGVkZ2Ug
b2YgY2VydGFpbiBHUFUtYWNjZWxlcmF0ZWQgdmlkZW9zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU1OQorCisgICAgICAgIEFkZHMgbG9naWMgdG8g
cHJvcGVybHkgcmVzaXplIHRoZSByYW5nZSBvZiBVIGFuZCBWIHRleHR1cmVzIHRvIG9ubHkKKyAg
ICAgICAgc2VsZWN0IGxlZ2l0aW1hdGUgdmFsdWVzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVmlkZW9GcmFtZUNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9MYXllckNocm9taXVtOjphbGxvY2F0ZVRleHR1cmVzSWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllckNocm9taXVtOjpkcmF3WVVWKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaDoK
KyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjp5V2lk
dGhTY2FsZUZhY3RvckxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJv
bWl1bTo6U2hhcmVkVmFsdWVzOjp1dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbik6CisKIDIwMTEt
MDItMTUgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9GcmFtZUNocm9taXVtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0u
aAppbmRleCBlMTc2YjBjNzdmYTlmYjlmNTE4ZjYzNzRjMTllMjIwZGUwZGM3NDk3Li5hYjY2OWQx
ZDNlNDRiOTdkYjQ5MjViYjBkZGViODdjZWJhNDkyMjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hy
b21pdW0uaApAQCAtNjksMTIgKzY5LDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN1cmZhY2VU
eXBlIHN1cmZhY2VUeXBlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgRm9ybWF0IGZvcm1hdCgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgcGxhbmUpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVk
IGhlaWdodCh1bnNpZ25lZCBwbGFuZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdW5zaWduZWQg
cGxhbmVzKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IHN0cmlkZSh1bnNpZ25lZCBwbGFu
ZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogZGF0YSh1bnNpZ25lZCBwbGFu
ZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdW5zaWduZWQgdGV4dHVyZSh1bnNpZ25lZCBwbGFu
ZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgSW50U2l6ZSByZXF1aXJlZFRleHR1cmVT
aXplKHVuc2lnbmVkIHBsYW5lKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGhhc1BhZGRp
bmdCeXRlcyh1bnNpZ25lZCBwbGFuZSkgY29uc3QgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNDFjZDE4MDJkMDI3
MmFhYWVlY2MwZTQ1MTc4ZWFjY2I3ZTY0ZWI2NS4uZGFhMzExMjQ3NDk2NWNmMjY1NmQ5YzkwMzA2
MjdhMDJiYzMwMjhmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCkBAIC01Niw3
ICs1Niw4IEBAIFZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAgLCBtX3l1dlNoYWRlclByb2dyYW0oMCkK
ICAgICAsIG1fcmdiYVNoYWRlclByb2dyYW0oMCkKICAgICAsIG1feXV2U2hhZGVyTWF0cml4TG9j
YXRpb24oMCkKLSAgICAsIG1feXV2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uKDApCisgICAgLCBt
X3lXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oMCkKKyAgICAsIG1fdXZXaWR0aFNjYWxlRmFjdG9y
TG9jYXRpb24oMCkKICAgICAsIG1fcmdiYVNoYWRlck1hdHJpeExvY2F0aW9uKDApCiAgICAgLCBt
X3JnYmFXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oMCkKICAgICAsIG1fY2NNYXRyaXhMb2NhdGlv
bigwKQpAQCAtODEsMTggKzgyLDIyIEBAIFZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVz
OjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAgICAgICJhdHRy
aWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOyAgIFxuIgogICAgICAgICAiYXR0cmlidXRlIHZlYzIgYV90
ZXhDb29yZDsgICBcbiIKICAgICAgICAgInVuaWZvcm0gbWF0NCBtYXRyaXg7ICAgICAgICAgXG4i
Ci0gICAgICAgICJ2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsgICAgIFxuIgotICAgICAgICAidW5p
Zm9ybSBmbG9hdCB3aWR0aFNjYWxlRmFjdG9yOyAgXG4iCisgICAgICAgICJ2YXJ5aW5nIHZlYzIg
eV90ZXhDb29yZDsgICAgIFxuIgorICAgICAgICAidmFyeWluZyB2ZWMyIHV2X3RleENvb3JkOyAg
ICBcbiIKKyAgICAgICAgInVuaWZvcm0gZmxvYXQgeV93aWR0aFNjYWxlRmFjdG9yOyBcbiIKKyAg
ICAgICAgInVuaWZvcm0gZmxvYXQgdXZfd2lkdGhTY2FsZUZhY3RvcjsgXG4iCiAgICAgICAgICJ2
b2lkIG1haW4oKSAgICAgICAgICAgICAgICAgIFxuIgogICAgICAgICAieyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcbiIKICAgICAgICAgIiAgZ2xfUG9zaXRpb24gPSBtYXRyaXggKiBhX3Bv
c2l0aW9uOyBcbiIKLSAgICAgICAgIiAgdl90ZXhDb29yZCA9IHZlYzIod2lkdGhTY2FsZUZhY3Rv
ciAqIGFfdGV4Q29vcmQueCwgYV90ZXhDb29yZC55KTsgXG4iCisgICAgICAgICIgIHlfdGV4Q29v
cmQgPSB2ZWMyKHlfd2lkdGhTY2FsZUZhY3RvciAqIGFfdGV4Q29vcmQueCwgYV90ZXhDb29yZC55
KTsgXG4iCisgICAgICAgICIgIHV2X3RleENvb3JkID0gdmVjMih1dl93aWR0aFNjYWxlRmFjdG9y
ICogYV90ZXhDb29yZC54LCBhX3RleENvb3JkLnkpOyBcbiIKICAgICAgICAgIn0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXG4iOwogCiAgICAgY2hhciB5dXZGcmFnbWVudFNoYWRlclN0cmlu
Z1tdID0KICAgICAgICAgInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXG4iCiAgICAgICAgICJwcmVjaXNpb24gbWVkaXVtcCBpbnQ7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFxuIgotICAgICAgICAidmFyeWluZyB2ZWMyIHZfdGV4Q29v
cmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyAgICAgICAgInZhcnlpbmcgdmVj
MiB5X3RleENvb3JkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgICAgICJ2
YXJ5aW5nIHZlYzIgdXZfdGV4Q29vcmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgog
ICAgICAgICAidW5pZm9ybSBzYW1wbGVyMkQgeV90ZXh0dXJlOyAgICAgICAgICAgICAgICAgICAg
ICAgICBcbiIKICAgICAgICAgInVuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTsgICAgICAgICAg
ICAgICAgICAgICAgICAgXG4iCiAgICAgICAgICJ1bmlmb3JtIHNhbXBsZXIyRCB2X3RleHR1cmU7
ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgpAQCAtMTAxLDIxICsxMDYsMjEgQEAgVmlkZW9M
YXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6OlNoYXJlZFZhbHVlcyhHcmFwaGljc0NvbnRleHQz
RCogY29udGV4dCkKICAgICAgICAgInVuaWZvcm0gbWF0MyBjY19tYXRyaXg7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXG4iCiAgICAgICAgICJ2b2lkIG1haW4oKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgogICAgICAgICAieyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSAgICAgICAgIiAgZmxv
YXQgeSA9IHRleHR1cmUyRCh5X3RleHR1cmUsIHZfdGV4Q29vcmQpLng7ICAgICAgXG4iCi0gICAg
ICAgICIgIGZsb2F0IHUgPSB0ZXh0dXJlMkQodV90ZXh0dXJlLCB2X3RleENvb3JkKS54IC0gYWRq
OyBcbiIKLSAgICAgICAgIiAgZmxvYXQgdiA9IHRleHR1cmUyRCh2X3RleHR1cmUsIHZfdGV4Q29v
cmQpLnggLSBhZGo7IFxuIgorICAgICAgICAiICBmbG9hdCB5ID0gdGV4dHVyZTJEKHlfdGV4dHVy
ZSwgeV90ZXhDb29yZCkueDsgICAgICBcbiIKKyAgICAgICAgIiAgZmxvYXQgdSA9IHRleHR1cmUy
RCh1X3RleHR1cmUsIHV2X3RleENvb3JkKS54IC0gYWRqOyBcbiIKKyAgICAgICAgIiAgZmxvYXQg
diA9IHRleHR1cmUyRCh2X3RleHR1cmUsIHV2X3RleENvb3JkKS54IC0gYWRqOyBcbiIKICAgICAg
ICAgIiAgdmVjMyByZ2IgPSBjY19tYXRyaXggKiB2ZWMzKHksIHUsIHYpOyAgICAgICAgICAgICAg
XG4iCiAgICAgICAgICIgIGdsX0ZyYWdDb2xvciA9IHZlYzQocmdiLCBmbG9hdCgxKSkgKiBhbHBo
YTsgICAgICAgIFxuIgogICAgICAgICAifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcbiI7CiAKICAgICBjaGFyIHJnYmFGcmFnbWVudFNoYWRlclN0
cmluZ1tdID0KICAgICAgICAgInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXG4iCi0gICAgICAgICJ2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICAgICAidmFyeWluZyB2ZWMyIHlfdGV4
Q29vcmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKICAgICAgICAgInVuaWZvcm0g
c2FtcGxlcjJEIHJnYmFfdGV4dHVyZTsgICAgICAgICAgICAgICAgICAgICAgXG4iCiAgICAgICAg
ICJ1bmlmb3JtIGZsb2F0IGFscGhhOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu
IgogICAgICAgICAidm9pZCBtYWluKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcbiIKICAgICAgICAgInsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXG4iCi0gICAgICAgICIgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJl
MkQocmdiYV90ZXh0dXJlLCB2ZWMyKHZfdGV4Q29vcmQueCwgZmxvYXQoMSkgLSB2X3RleENvb3Jk
LnkpKTsgXG4iCisgICAgICAgICIgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQocmdiYV90ZXh0
dXJlLCB2ZWMyKHlfdGV4Q29vcmQueCwgZmxvYXQoMSkgLSB5X3RleENvb3JkLnkpKTsgXG4iCiAg
ICAgICAgICIgIGdsX0ZyYWdDb2xvciA9IHZlYzQodGV4Q29sb3IueCwgdGV4Q29sb3IueSwgdGV4
Q29sb3IueiwgdGV4Q29sb3IudykgKiBhbHBoYTsgXG4iCiAgICAgICAgICJ9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIjsKIApAQCAtMTMyLDcg
KzEzNyw4IEBAIFZpZGVvTGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAgfQogCiAgICAgbV95dXZTaGFkZXJNYXRy
aXhMb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1feXV2U2hhZGVyUHJv
Z3JhbSwgIm1hdHJpeCIpOwotICAgIG1feXV2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uID0gbV9j
b250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24obV95dXZTaGFkZXJQcm9ncmFtLCAid2lkdGhTY2Fs
ZUZhY3RvciIpOworICAgIG1feVdpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbiA9IG1fY29udGV4dC0+
Z2V0VW5pZm9ybUxvY2F0aW9uKG1feXV2U2hhZGVyUHJvZ3JhbSwgInlfd2lkdGhTY2FsZUZhY3Rv
ciIpOworICAgIG1fdXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldFVu
aWZvcm1Mb2NhdGlvbihtX3l1dlNoYWRlclByb2dyYW0sICJ1dl93aWR0aFNjYWxlRmFjdG9yIik7
CiAgICAgbV95VGV4dHVyZUxvY2F0aW9uID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24o
bV95dXZTaGFkZXJQcm9ncmFtLCAieV90ZXh0dXJlIik7CiAgICAgbV91VGV4dHVyZUxvY2F0aW9u
ID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24obV95dXZTaGFkZXJQcm9ncmFtLCAidV90
ZXh0dXJlIik7CiAgICAgbV92VGV4dHVyZUxvY2F0aW9uID0gbV9jb250ZXh0LT5nZXRVbmlmb3Jt
TG9jYXRpb24obV95dXZTaGFkZXJQcm9ncmFtLCAidl90ZXh0dXJlIik7CkBAIC0xNDEsNyArMTQ3
LDggQEAgVmlkZW9MYXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6OlNoYXJlZFZhbHVlcyhHcmFw
aGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICBtX3l1dkFscGhhTG9jYXRpb24gPSBtX2NvbnRl
eHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3l1dlNoYWRlclByb2dyYW0sICJhbHBoYSIpOwogCiAg
ICAgQVNTRVJUKG1feXV2U2hhZGVyTWF0cml4TG9jYXRpb24gIT0gLTEpOwotICAgIEFTU0VSVCht
X3l1dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbiAhPSAtMSk7CisgICAgQVNTRVJUKG1feVdpZHRo
U2NhbGVGYWN0b3JMb2NhdGlvbiAhPSAtMSk7CisgICAgQVNTRVJUKG1fdXZXaWR0aFNjYWxlRmFj
dG9yTG9jYXRpb24gIT0gLTEpOwogICAgIEFTU0VSVChtX3lUZXh0dXJlTG9jYXRpb24gIT0gLTEp
OwogICAgIEFTU0VSVChtX3VUZXh0dXJlTG9jYXRpb24gIT0gLTEpOwogICAgIEFTU0VSVChtX3ZU
ZXh0dXJlTG9jYXRpb24gIT0gLTEpOwpAQCAtMTUxLDcgKzE1OCw3IEBAIFZpZGVvTGF5ZXJDaHJv
bWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRl
eHQpCiAKICAgICBtX3JnYmFTaGFkZXJNYXRyaXhMb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5p
Zm9ybUxvY2F0aW9uKG1fcmdiYVNoYWRlclByb2dyYW0sICJtYXRyaXgiKTsKICAgICBtX3JnYmFU
ZXh0dXJlTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3JnYmFTaGFk
ZXJQcm9ncmFtLCAicmdiYV90ZXh0dXJlIik7Ci0gICAgbV9yZ2JhV2lkdGhTY2FsZUZhY3Rvckxv
Y2F0aW9uID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24obV9yZ2JhU2hhZGVyUHJvZ3Jh
bSwgIndpZHRoU2NhbGVGYWN0b3IiKTsKKyAgICBtX3JnYmFXaWR0aFNjYWxlRmFjdG9yTG9jYXRp
b24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3JnYmFTaGFkZXJQcm9ncmFtLCAi
eV93aWR0aFNjYWxlRmFjdG9yIik7CiAgICAgbV9yZ2JhQWxwaGFMb2NhdGlvbiA9IG1fY29udGV4
dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1fcmdiYVNoYWRlclByb2dyYW0sICJhbHBoYSIpOwogCiAg
ICAgQVNTRVJUKG1fcmdiYVNoYWRlck1hdHJpeExvY2F0aW9uICE9IC0xKTsKQEAgLTI5Nyw5ICsz
MDQsMjcgQEAgYm9vbCBWaWRlb0xheWVyQ2hyb21pdW06OmFsbG9jYXRlVGV4dHVyZXNJZk5lZWRl
ZChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgVmkKICAgICAgICAgaWYgKCFwbGFuZVRleHR1
cmVTaXplLmlzWmVybygpICYmIHBsYW5lVGV4dHVyZVNpemUgIT0gbV90ZXh0dXJlU2l6ZXNbcGxh
bmVdKSB7CiAgICAgICAgICAgICBhbGxvY2F0ZVRleHR1cmUoY29udGV4dCwgbV90ZXh0dXJlc1tw
bGFuZV0sIHBsYW5lVGV4dHVyZVNpemUsIHRleHR1cmVGb3JtYXQpOwogICAgICAgICAgICAgbV90
ZXh0dXJlU2l6ZXNbcGxhbmVdID0gcGxhbmVUZXh0dXJlU2l6ZTsKLSAgICAgICAgICAgIG1fZnJh
bWVTaXplc1twbGFuZV0gPSBJbnRTaXplKGZyYW1lLT53aWR0aCgpLCBmcmFtZS0+aGVpZ2h0KCkp
OworICAgICAgICAgICAgaW50IGZyYW1lV2lkdGggPSBmcmFtZS0+d2lkdGgocGxhbmUpOworICAg
ICAgICAgICAgaW50IGZyYW1lSGVpZ2h0ID0gZnJhbWUtPmhlaWdodChwbGFuZSk7CisgICAgICAg
ICAgICAvLyBXaGVuIHRoZXJlIGFyZSBkZWFkIHBpeGVscyBhdCB0aGUgZWRnZSBvZiB0aGUgdGV4
dHVyZSwgZGVjcmVhc2UKKyAgICAgICAgICAgIC8vIHRoZSBmcmFtZSB3aWR0aCBieSAxIHRvIHBy
ZXZlbnQgdGhlIHJpZ2h0bW9zdCBwaXhlbHMgZnJvbQorICAgICAgICAgICAgLy8gaW50ZXJwb2xh
dGluZyB3aXRoIHRoZSBkZWFkIHBpeGVscy4KKyAgICAgICAgICAgIGlmIChmcmFtZS0+aGFzUGFk
ZGluZ0J5dGVzKHBsYW5lKSkKKyAgICAgICAgICAgICAgICBmcmFtZVdpZHRoLS07CisgICAgICAg
ICAgICBtX2ZyYW1lU2l6ZXNbcGxhbmVdID0gSW50U2l6ZShmcmFtZVdpZHRoLCBmcmFtZUhlaWdo
dCk7CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvLyBJbiBZVjEyLCBldmVyeSAyeDIgc3F1YXJl
IG9mIFkgdmFsdWVzIGNvcnJlc3BvbmRzIHRvIG9uZSBVIGFuZAorICAgIC8vIG9uZSBWIHZhbHVl
LiBJZiB3ZSBkZWNyZWFzZSB0aGUgd2lkdGggb2YgdGhlIFVWIHBsYW5lLCB3ZSBtdXN0IGRlY3Jl
YXNlIHRoZQorICAgIC8vIHdpZHRoIG9mIHRoZSBZIHRleHR1cmUgYnkgMiBmb3IgcHJvcGVyIGFs
aWdubWVudC4gVGhpcyBtdXN0IGhhcHBlbgorICAgIC8vIGFsd2F5cywgZXZlbiBpZiBZJ3MgdGV4
dHVyZSBkb2VzIG5vdCBoYXZlIHBhZGRpbmcgYnl0ZXMuCisgICAgaWYgKGZyYW1lLT5mb3JtYXQo
KSA9PSBWaWRlb0ZyYW1lQ2hyb21pdW06OllWMTIpIHsKKyAgICAgICAgaW50IHlQbGFuZU9yaWdp
bmFsV2lkdGggPSBmcmFtZS0+d2lkdGgoVmlkZW9GcmFtZUNocm9taXVtOjp5UGxhbmUpOworICAg
ICAgICBpZiAoZnJhbWUtPmhhc1BhZGRpbmdCeXRlcyhWaWRlb0ZyYW1lQ2hyb21pdW06OnVQbGFu
ZSkpCisgICAgICAgICAgICBtX2ZyYW1lU2l6ZXNbVmlkZW9GcmFtZUNocm9taXVtOjp5UGxhbmVd
LnNldFdpZHRoKHlQbGFuZU9yaWdpbmFsV2lkdGggLSAyKTsKKyAgICB9CisKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtMzcwLDEwICszOTUsMTYgQEAgdm9pZCBWaWRlb0xheWVyQ2hyb21pdW06
OmRyYXdZVVYoY29uc3QgU2hhcmVkVmFsdWVzKiBzdikKICAgICBHTEMoY29udGV4dCwgY29udGV4
dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1fdGV4dHVyZXNb
VmlkZW9GcmFtZUNocm9taXVtOjp2UGxhbmVdKSk7CiAKICAgICBsYXllclJlbmRlcmVyKCktPnVz
ZVNoYWRlcihzdi0+eXV2U2hhZGVyUHJvZ3JhbSgpKTsKLSAgICB1bnNpZ25lZCBmcmFtZVdpZHRo
ID0gbV9mcmFtZVNpemVzW1ZpZGVvRnJhbWVDaHJvbWl1bTo6eVBsYW5lXS53aWR0aCgpOwotICAg
IHVuc2lnbmVkIHRleHR1cmVXaWR0aCA9IG1fdGV4dHVyZVNpemVzW1ZpZGVvRnJhbWVDaHJvbWl1
bTo6eVBsYW5lXS53aWR0aCgpOwotICAgIGZsb2F0IHdpZHRoU2NhbGVGYWN0b3IgPSBzdGF0aWNf
Y2FzdDxmbG9hdD4oZnJhbWVXaWR0aCkgLyB0ZXh0dXJlV2lkdGg7Ci0gICAgR0xDKGNvbnRleHQs
IGNvbnRleHQtPnVuaWZvcm0xZihzdi0+eXV2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uKCksIHdp
ZHRoU2NhbGVGYWN0b3IpKTsKKyAgICB1bnNpZ25lZCB5RnJhbWVXaWR0aCA9IG1fZnJhbWVTaXpl
c1tWaWRlb0ZyYW1lQ2hyb21pdW06OnlQbGFuZV0ud2lkdGgoKTsKKyAgICB1bnNpZ25lZCB5VGV4
dHVyZVdpZHRoID0gbV90ZXh0dXJlU2l6ZXNbVmlkZW9GcmFtZUNocm9taXVtOjp5UGxhbmVdLndp
ZHRoKCk7CisgICAgLy8gQXJiaXRyYXJpbHkgdGFrZSB0aGUgdSBzaXplcyBiZWNhdXNlIHUgYW5k
IHYgZGltZW5zaW9ucyBhcmUgaWRlbnRpY2FsLgorICAgIHVuc2lnbmVkIHV2RnJhbWVXaWR0aCA9
IG1fZnJhbWVTaXplc1tWaWRlb0ZyYW1lQ2hyb21pdW06OnVQbGFuZV0ud2lkdGgoKTsKKyAgICB1
bnNpZ25lZCB1dlRleHR1cmVXaWR0aCA9IG1fdGV4dHVyZVNpemVzW1ZpZGVvRnJhbWVDaHJvbWl1
bTo6dVBsYW5lXS53aWR0aCgpOworCisgICAgZmxvYXQgeVdpZHRoU2NhbGVGYWN0b3IgPSBzdGF0
aWNfY2FzdDxmbG9hdD4oeUZyYW1lV2lkdGgpIC8geVRleHR1cmVXaWR0aDsKKyAgICBmbG9hdCB1
dldpZHRoU2NhbGVGYWN0b3IgPSBzdGF0aWNfY2FzdDxmbG9hdD4odXZGcmFtZVdpZHRoKSAvIHV2
VGV4dHVyZVdpZHRoOworICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT51bmlmb3JtMWYoc3YtPnlX
aWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oKSwgeVdpZHRoU2NhbGVGYWN0b3IpKTsKKyAgICBHTEMo
Y29udGV4dCwgY29udGV4dC0+dW5pZm9ybTFmKHN2LT51dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlv
bigpLCB1dldpZHRoU2NhbGVGYWN0b3IpKTsKIAogICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT51
bmlmb3JtMWkoc3YtPnlUZXh0dXJlTG9jYXRpb24oKSwgMSkpOwogICAgIEdMQyhjb250ZXh0LCBj
b250ZXh0LT51bmlmb3JtMWkoc3YtPnVUZXh0dXJlTG9jYXRpb24oKSwgMikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNo
cm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRl
b0xheWVyQ2hyb21pdW0uaAppbmRleCBhYzNiY2E5YTZkYjkwZDZlYTk5ODIzYzg2NjBhNGI3M2E4
NWJhZGEzLi4zNDQ5YjgxYmRmYzcyNzE2NjA5OGI1YjAxZjVhNjMzZDZkYzhmMWJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVy
Q2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9WaWRlb0xheWVyQ2hyb21pdW0uaApAQCAtNjEsNyArNjEsOCBAQCBwdWJsaWM6CiAgICAgICAg
IHVuc2lnbmVkIHJnYmFTaGFkZXJQcm9ncmFtKCkgY29uc3QgeyByZXR1cm4gbV9yZ2JhU2hhZGVy
UHJvZ3JhbTsgfQogICAgICAgICBpbnQgeXV2U2hhZGVyTWF0cml4TG9jYXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3l1dlNoYWRlck1hdHJpeExvY2F0aW9uOyB9CiAgICAgICAgIGludCByZ2JhU2hh
ZGVyTWF0cml4TG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JnYmFTaGFkZXJNYXRyaXhMb2Nh
dGlvbjsgfQotICAgICAgICBpbnQgeXV2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV95dXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb247IH0KKyAgICAgICAgaW50IHlX
aWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3lXaWR0aFNjYWxlRmFj
dG9yTG9jYXRpb247IH0KKyAgICAgICAgaW50IHV2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV91dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbjsgfQogICAgICAgICBp
bnQgcmdiYVdpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmdiYVdp
ZHRoU2NhbGVGYWN0b3JMb2NhdGlvbjsgfQogICAgICAgICBpbnQgeVRleHR1cmVMb2NhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1feVRleHR1cmVMb2NhdGlvbjsgfQogICAgICAgICBpbnQgdVRleHR1
cmVMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdVRleHR1cmVMb2NhdGlvbjsgfQpAQCAtNzcs
NyArNzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIG1feXV2U2hhZGVyUHJvZ3JhbTsK
ICAgICAgICAgdW5zaWduZWQgbV9yZ2JhU2hhZGVyUHJvZ3JhbTsKICAgICAgICAgaW50IG1feXV2
U2hhZGVyTWF0cml4TG9jYXRpb247Ci0gICAgICAgIGludCBtX3l1dldpZHRoU2NhbGVGYWN0b3JM
b2NhdGlvbjsKKyAgICAgICAgaW50IG1feVdpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbjsKKyAgICAg
ICAgaW50IG1fdXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb247CiAgICAgICAgIGludCBtX3JnYmFT
aGFkZXJNYXRyaXhMb2NhdGlvbjsKICAgICAgICAgaW50IG1fcmdiYVdpZHRoU2NhbGVGYWN0b3JM
b2NhdGlvbjsKICAgICAgICAgaW50IG1fY2NNYXRyaXhMb2NhdGlvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggOTBlNmZkMTU5OGJiZjZiOWM3OGVmNmYxYzFhOTkyMGU3MWRiZjdkMC4u
ZGFlYWY4NTBiMTY1MWNiOGIxOTU1YTBhODNiYzU4ZGMxNmVmYzZiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMi0xNiAgVmljdG9yaWEgS2lyc3Qg
IDx2cmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBbY2hyb21pdW1dIEZpeCBncmVlbiBwaXhlbHMgYXQgZWRnZSBvZiBjZXJ0YWlu
IEdQVS1hY2NlbGVyYXRlZCB2aWRlb3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU0NTU5CisKKyAgICAgICAgKiBzcmMvVmlkZW9GcmFtZUNocm9taXVt
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnJhbWVDaHJvbWl1bUltcGw6OndpZHRo
KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GcmFtZUNocm9taXVtSW1wbDo6aGVpZ2h0KToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GcmFtZUNocm9taXVtSW1wbDo6cmVxdWlyZWRUZXh0dXJlU2l6
ZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnJhbWVDaHJvbWl1bUltcGw6Omhhc1BhZGRpbmdC
eXRlcyk6CisgICAgICAgICogc3JjL1ZpZGVvRnJhbWVDaHJvbWl1bUltcGwuaDoKKwogMjAxMS0w
Mi0xNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9WaWRlb0ZyYW1lQ2hyb21pdW1JbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1ZpZGVvRnJhbWVDaHJvbWl1bUltcGwuY3BwCmluZGV4IDg2NTQ1Yjc2N2RiNzhiMzEyNTM2
M2Q0NzYwMDA0MWI5Nzg3NzhiYzUuLjI3NzgzYWU1NTZjZTMxNjFiMzE1YTcyYmYzNjAzM2FkMGMz
YjcxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ZpZGVvRnJhbWVD
aHJvbWl1bUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ZpZGVvRnJh
bWVDaHJvbWl1bUltcGwuY3BwCkBAIC03Miw2ICs3MiwxNCBAQCB1bnNpZ25lZCBWaWRlb0ZyYW1l
Q2hyb21pdW1JbXBsOjp3aWR0aCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK3Vuc2lnbmVk
IFZpZGVvRnJhbWVDaHJvbWl1bUltcGw6OndpZHRoKHVuc2lnbmVkIHBsYW5lKSBjb25zdAorewor
ICAgIHVuc2lnbmVkIHBsYW5lV2lkdGggPSB3aWR0aCgpOworICAgIGlmIChmb3JtYXQoKSA9PSBZ
VjEyICYmIHBsYW5lICE9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih5UGxhbmUpKQorICAgICAgICBw
bGFuZVdpZHRoIC89IDI7CisgICAgcmV0dXJuIHBsYW5lV2lkdGg7Cit9CisKIHVuc2lnbmVkIFZp
ZGVvRnJhbWVDaHJvbWl1bUltcGw6OmhlaWdodCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fd2ViVmlk
ZW9GcmFtZSkKQEAgLTc5LDYgKzg3LDE0IEBAIHVuc2lnbmVkIFZpZGVvRnJhbWVDaHJvbWl1bUlt
cGw6OmhlaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK3Vuc2lnbmVkIFZpZGVvRnJh
bWVDaHJvbWl1bUltcGw6OmhlaWdodCh1bnNpZ25lZCBwbGFuZSkgY29uc3QKK3sKKyAgICB1bnNp
Z25lZCBwbGFuZUhlaWdodCA9IGhlaWdodCgpOworICAgIGlmIChmb3JtYXQoKSA9PSBZVjEyICYm
IHBsYW5lICE9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih5UGxhbmUpKQorICAgICAgICBwbGFuZUhl
aWdodCAvPSAyOworICAgIHJldHVybiBwbGFuZUhlaWdodDsKK30KKwogdW5zaWduZWQgVmlkZW9G
cmFtZUNocm9taXVtSW1wbDo6cGxhbmVzKCkgY29uc3QKIHsKICAgICBpZiAobV93ZWJWaWRlb0Zy
YW1lKQpAQCAtMTA5LDIxICsxMjUsMTQgQEAgdW5zaWduZWQgVmlkZW9GcmFtZUNocm9taXVtSW1w
bDo6dGV4dHVyZSh1bnNpZ25lZCBwbGFuZSkgY29uc3QKIAogY29uc3QgSW50U2l6ZSBWaWRlb0Zy
YW1lQ2hyb21pdW1JbXBsOjpyZXF1aXJlZFRleHR1cmVTaXplKHVuc2lnbmVkIHBsYW5lKSBjb25z
dAogewotICAgIHN3aXRjaCAoZm9ybWF0KCkpIHsKLSAgICBjYXNlIFJHQkE6Ci0gICAgY2FzZSBZ
VjE2OgotICAgICAgICByZXR1cm4gSW50U2l6ZShzdHJpZGUocGxhbmUpLCBoZWlnaHQoKSk7Ci0g
ICAgY2FzZSBZVjEyOgotICAgICAgICBpZiAocGxhbmUgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHlQbGFuZSkpCi0gICAgICAgICAgICByZXR1cm4gSW50U2l6ZShzdHJpZGUocGxhbmUpLCBoZWln
aHQoKSk7Ci0gICAgICAgIGVsc2UgaWYgKHBsYW5lID09IHN0YXRpY19jYXN0PHVuc2lnbmVkPih1
UGxhbmUpKQotICAgICAgICAgICAgcmV0dXJuIEludFNpemUoc3RyaWRlKHBsYW5lKSwgaGVpZ2h0
KCkgLyAyKTsKLSAgICAgICAgZWxzZSBpZiAocGxhbmUgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHZQbGFuZSkpCi0gICAgICAgICAgICByZXR1cm4gSW50U2l6ZShzdHJpZGUocGxhbmUpLCBoZWln
aHQoKSAvIDIpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1
cm4gSW50U2l6ZSgpOworICAgIHJldHVybiBJbnRTaXplKHN0cmlkZShwbGFuZSksIGhlaWdodChw
bGFuZSkpOworfQorCitib29sIFZpZGVvRnJhbWVDaHJvbWl1bUltcGw6Omhhc1BhZGRpbmdCeXRl
cyh1bnNpZ25lZCBwbGFuZSkgY29uc3QKK3sKKyAgICBpZiAobV93ZWJWaWRlb0ZyYW1lKQorICAg
ICAgICByZXR1cm4gc3RyaWRlKHBsYW5lKSAtIHdpZHRoKHBsYW5lKSA+IDA7CisgICAgcmV0dXJu
IGZhbHNlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1ZpZGVvRnJhbWVDaHJvbWl1bUltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1ZpZGVvRnJhbWVDaHJvbWl1bUltcGwuaAppbmRleCBmODZlZTFjMGQ1
MzIwYzc5NmRlMTNjZWVmMjRiNWRiODYwZWY2ZjkzLi5jYTdmODhiM2RmNjdmNjVkZTZhM2ExYjdi
MDA1MGZjMjllOTZiODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9W
aWRlb0ZyYW1lQ2hyb21pdW1JbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
VmlkZW9GcmFtZUNocm9taXVtSW1wbC5oCkBAIC01MiwxMiArNTIsMTUgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgU3VyZmFjZVR5cGUgc3VyZmFjZVR5cGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIEZv
cm1hdCBmb3JtYXQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7
CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBwbGFuZSkgY29uc3Q7CiAgICAg
dmlydHVhbCB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGhl
aWdodCh1bnNpZ25lZCBwbGFuZSkgY29uc3Q7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBwbGFuZXMo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzdHJpZGUodW5zaWduZWQgcGxhbmUpIGNvbnN0Owog
ICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogZGF0YSh1bnNpZ25lZCBwbGFuZSkgY29uc3Q7CiAgICAg
dmlydHVhbCB1bnNpZ25lZCB0ZXh0dXJlKHVuc2lnbmVkIHBsYW5lKSBjb25zdDsKICAgICB2aXJ0
dWFsIGNvbnN0IEludFNpemUgcmVxdWlyZWRUZXh0dXJlU2l6ZSh1bnNpZ25lZCBwbGFuZSkgY29u
c3Q7CisgICAgdmlydHVhbCBib29sIGhhc1BhZGRpbmdCeXRlcyh1bnNpZ25lZCBwbGFuZSkgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgV2ViVmlkZW9GcmFtZSogbV93ZWJWaWRlb0ZyYW1lOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82719</attachid>
            <date>2011-02-16 16:26:17 -0800</date>
            <delta_ts>2011-02-16 20:44:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54559-20110216162616.patch</filename>
            <type>text/plain</type>
            <size>16750</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg2NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NmE3YjE0Yzk0NWIyZmQ2
NDJhNDYzZTM0N2Y0YjlmZTlkZjYwNWFhLi5jOTIwYWMzZmNjMTdjZjg0N2E3OGEwNmQ3MTE5YmZl
MWM0ZTJhYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTYgIFZpY3Rv
cmlhIEtpcnN0ICA8dnJrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBGaXggZ3JlZW4gcGl4ZWxzIGF0IGVkZ2Ug
b2YgY2VydGFpbiBHUFUtYWNjZWxlcmF0ZWQgdmlkZW9zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU1OQorCisgICAgICAgIEFkZHMgbG9naWMgdG8g
cHJvcGVybHkgcmVzaXplIHRoZSByYW5nZSBvZiBZVVYgdGV4dHVyZXMgdG8gb25seQorICAgICAg
ICBzZWxlY3QgbGVnaXRpbWF0ZSB2YWx1ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9MYXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6OlNoYXJlZFZhbHVlcyk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OmFsbG9jYXRlVGV4dHVyZXNJZk5lZWRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OmRyYXdZVVYpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oOgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9MYXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6OnlXaWR0aFNj
YWxlRmFjdG9yTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllckNocm9taXVt
OjpTaGFyZWRWYWx1ZXM6OnV2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uKToKKwogMjAxMS0wMi0x
NSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVDaHJvbWl1bS5oCmlu
ZGV4IGUxNzZiMGM3N2ZhOWZiOWY1MThmNjM3NGMxOWUyMjBkZTBkYzc0OTcuLmFiNjY5ZDFkM2U0
NGI5N2RiNDkyNWJiMGRkZWI4N2NlYmE0OTIyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVDaHJvbWl1bS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVDaHJvbWl1
bS5oCkBAIC02OSwxMiArNjksMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3VyZmFjZVR5cGUg
c3VyZmFjZVR5cGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBGb3JtYXQgZm9ybWF0KCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBwbGFuZSkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdW5zaWduZWQgaGVp
Z2h0KHVuc2lnbmVkIHBsYW5lKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBwbGFu
ZXMoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgc3RyaWRlKHVuc2lnbmVkIHBsYW5lKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBjb25zdCB2b2lkKiBkYXRhKHVuc2lnbmVkIHBsYW5lKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCB0ZXh0dXJlKHVuc2lnbmVkIHBsYW5lKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBJbnRTaXplIHJlcXVpcmVkVGV4dHVyZVNpemUo
dW5zaWduZWQgcGxhbmUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGFkZGluZ0J5
dGVzKHVuc2lnbmVkIHBsYW5lKSBjb25zdCA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcAppbmRleCA0MWNkMTgwMmQwMjcyYWFh
ZWVjYzBlNDUxNzhlYWNjYjdlNjRlYjY1Li5kOTljYWQwYmEyMDU3ZTc2YWY0NDZmNzhkYjE2YWVk
Yzk0Yjk2ODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTU2LDcgKzU2
LDggQEAgVmlkZW9MYXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6OlNoYXJlZFZhbHVlcyhHcmFw
aGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICAsIG1feXV2U2hhZGVyUHJvZ3JhbSgwKQogICAg
ICwgbV9yZ2JhU2hhZGVyUHJvZ3JhbSgwKQogICAgICwgbV95dXZTaGFkZXJNYXRyaXhMb2NhdGlv
bigwKQotICAgICwgbV95dXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oMCkKKyAgICAsIG1feVdp
ZHRoU2NhbGVGYWN0b3JMb2NhdGlvbigwKQorICAgICwgbV91dldpZHRoU2NhbGVGYWN0b3JMb2Nh
dGlvbigwKQogICAgICwgbV9yZ2JhU2hhZGVyTWF0cml4TG9jYXRpb24oMCkKICAgICAsIG1fcmdi
YVdpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbigwKQogICAgICwgbV9jY01hdHJpeExvY2F0aW9uKDAp
CkBAIC04MSwxOCArODIsMjIgQEAgVmlkZW9MYXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6OlNo
YXJlZFZhbHVlcyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICAgICAgImF0dHJpYnV0
ZSB2ZWM0IGFfcG9zaXRpb247ICAgXG4iCiAgICAgICAgICJhdHRyaWJ1dGUgdmVjMiBhX3RleENv
b3JkOyAgIFxuIgogICAgICAgICAidW5pZm9ybSBtYXQ0IG1hdHJpeDsgICAgICAgICBcbiIKLSAg
ICAgICAgInZhcnlpbmcgdmVjMiB2X3RleENvb3JkOyAgICAgXG4iCi0gICAgICAgICJ1bmlmb3Jt
IGZsb2F0IHdpZHRoU2NhbGVGYWN0b3I7ICBcbiIKKyAgICAgICAgInZhcnlpbmcgdmVjMiB5X3Rl
eENvb3JkOyAgICAgXG4iCisgICAgICAgICJ2YXJ5aW5nIHZlYzIgdXZfdGV4Q29vcmQ7ICAgIFxu
IgorICAgICAgICAidW5pZm9ybSBmbG9hdCB5X3dpZHRoU2NhbGVGYWN0b3I7IFxuIgorICAgICAg
ICAidW5pZm9ybSBmbG9hdCB1dl93aWR0aFNjYWxlRmFjdG9yOyBcbiIKICAgICAgICAgInZvaWQg
bWFpbigpICAgICAgICAgICAgICAgICAgXG4iCiAgICAgICAgICJ7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFxuIgogICAgICAgICAiICBnbF9Qb3NpdGlvbiA9IG1hdHJpeCAqIGFfcG9zaXRp
b247IFxuIgotICAgICAgICAiICB2X3RleENvb3JkID0gdmVjMih3aWR0aFNjYWxlRmFjdG9yICog
YV90ZXhDb29yZC54LCBhX3RleENvb3JkLnkpOyBcbiIKKyAgICAgICAgIiAgeV90ZXhDb29yZCA9
IHZlYzIoeV93aWR0aFNjYWxlRmFjdG9yICogYV90ZXhDb29yZC54LCBhX3RleENvb3JkLnkpOyBc
biIKKyAgICAgICAgIiAgdXZfdGV4Q29vcmQgPSB2ZWMyKHV2X3dpZHRoU2NhbGVGYWN0b3IgKiBh
X3RleENvb3JkLngsIGFfdGV4Q29vcmQueSk7IFxuIgogICAgICAgICAifSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcbiI7CiAKICAgICBjaGFyIHl1dkZyYWdtZW50U2hhZGVyU3RyaW5nW10g
PQogICAgICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcbiIKICAgICAgICAgInByZWNpc2lvbiBtZWRpdW1wIGludDsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXG4iCi0gICAgICAgICJ2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICAgICAidmFyeWluZyB2ZWMyIHlf
dGV4Q29vcmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyAgICAgICAgInZhcnlp
bmcgdmVjMiB1dl90ZXhDb29yZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCiAgICAg
ICAgICJ1bmlmb3JtIHNhbXBsZXIyRCB5X3RleHR1cmU7ICAgICAgICAgICAgICAgICAgICAgICAg
IFxuIgogICAgICAgICAidW5pZm9ybSBzYW1wbGVyMkQgdV90ZXh0dXJlOyAgICAgICAgICAgICAg
ICAgICAgICAgICBcbiIKICAgICAgICAgInVuaWZvcm0gc2FtcGxlcjJEIHZfdGV4dHVyZTsgICAg
ICAgICAgICAgICAgICAgICAgICAgXG4iCkBAIC0xMDEsMjEgKzEwNiwyMSBAQCBWaWRlb0xheWVy
Q2hyb21pdW06OlNoYXJlZFZhbHVlczo6U2hhcmVkVmFsdWVzKEdyYXBoaWNzQ29udGV4dDNEKiBj
b250ZXh0KQogICAgICAgICAidW5pZm9ybSBtYXQzIGNjX21hdHJpeDsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcbiIKICAgICAgICAgInZvaWQgbWFpbigpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCiAgICAgICAgICJ7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotICAgICAgICAiICBmbG9hdCB5
ID0gdGV4dHVyZTJEKHlfdGV4dHVyZSwgdl90ZXhDb29yZCkueDsgICAgICBcbiIKLSAgICAgICAg
IiAgZmxvYXQgdSA9IHRleHR1cmUyRCh1X3RleHR1cmUsIHZfdGV4Q29vcmQpLnggLSBhZGo7IFxu
IgotICAgICAgICAiICBmbG9hdCB2ID0gdGV4dHVyZTJEKHZfdGV4dHVyZSwgdl90ZXhDb29yZCku
eCAtIGFkajsgXG4iCisgICAgICAgICIgIGZsb2F0IHkgPSB0ZXh0dXJlMkQoeV90ZXh0dXJlLCB5
X3RleENvb3JkKS54OyAgICAgIFxuIgorICAgICAgICAiICBmbG9hdCB1ID0gdGV4dHVyZTJEKHVf
dGV4dHVyZSwgdXZfdGV4Q29vcmQpLnggLSBhZGo7IFxuIgorICAgICAgICAiICBmbG9hdCB2ID0g
dGV4dHVyZTJEKHZfdGV4dHVyZSwgdXZfdGV4Q29vcmQpLnggLSBhZGo7IFxuIgogICAgICAgICAi
ICB2ZWMzIHJnYiA9IGNjX21hdHJpeCAqIHZlYzMoeSwgdSwgdik7ICAgICAgICAgICAgICBcbiIK
ICAgICAgICAgIiAgZ2xfRnJhZ0NvbG9yID0gdmVjNChyZ2IsIGZsb2F0KDEpKSAqIGFscGhhOyAg
ICAgICAgXG4iCiAgICAgICAgICJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFxuIjsKIAogICAgIGNoYXIgcmdiYUZyYWdtZW50U2hhZGVyU3RyaW5n
W10gPQogICAgICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcbiIKLSAgICAgICAgInZhcnlpbmcgdmVjMiB2X3RleENvb3JkOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgICAgICJ2YXJ5aW5nIHZlYzIgeV90ZXhDb29y
ZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgogICAgICAgICAidW5pZm9ybSBzYW1w
bGVyMkQgcmdiYV90ZXh0dXJlOyAgICAgICAgICAgICAgICAgICAgICBcbiIKICAgICAgICAgInVu
aWZvcm0gZmxvYXQgYWxwaGE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCiAg
ICAgICAgICJ2b2lkIG1haW4oKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFxuIgogICAgICAgICAieyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcbiIKLSAgICAgICAgIiAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChy
Z2JhX3RleHR1cmUsIHZlYzIodl90ZXhDb29yZC54LCBmbG9hdCgxKSAtIHZfdGV4Q29vcmQueSkp
OyBcbiIKKyAgICAgICAgIiAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChyZ2JhX3RleHR1cmUs
IHZlYzIoeV90ZXhDb29yZC54LCBmbG9hdCgxKSAtIHlfdGV4Q29vcmQueSkpOyBcbiIKICAgICAg
ICAgIiAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh0ZXhDb2xvci54LCB0ZXhDb2xvci55LCB0ZXhDb2xv
ci56LCB0ZXhDb2xvci53KSAqIGFscGhhOyBcbiIKICAgICAgICAgIn0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iOwogCkBAIC0xMzIsNyArMTM3
LDggQEAgVmlkZW9MYXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6OlNoYXJlZFZhbHVlcyhHcmFw
aGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICB9CiAKICAgICBtX3l1dlNoYWRlck1hdHJpeExv
Y2F0aW9uID0gbV9jb250ZXh0LT5nZXRVbmlmb3JtTG9jYXRpb24obV95dXZTaGFkZXJQcm9ncmFt
LCAibWF0cml4Iik7Ci0gICAgbV95dXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24gPSBtX2NvbnRl
eHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3l1dlNoYWRlclByb2dyYW0sICJ3aWR0aFNjYWxlRmFj
dG9yIik7CisgICAgbV95V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uID0gbV9jb250ZXh0LT5nZXRV
bmlmb3JtTG9jYXRpb24obV95dXZTaGFkZXJQcm9ncmFtLCAieV93aWR0aFNjYWxlRmFjdG9yIik7
CisgICAgbV91dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9y
bUxvY2F0aW9uKG1feXV2U2hhZGVyUHJvZ3JhbSwgInV2X3dpZHRoU2NhbGVGYWN0b3IiKTsKICAg
ICBtX3lUZXh0dXJlTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3l1
dlNoYWRlclByb2dyYW0sICJ5X3RleHR1cmUiKTsKICAgICBtX3VUZXh0dXJlTG9jYXRpb24gPSBt
X2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3l1dlNoYWRlclByb2dyYW0sICJ1X3RleHR1
cmUiKTsKICAgICBtX3ZUZXh0dXJlTG9jYXRpb24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2Nh
dGlvbihtX3l1dlNoYWRlclByb2dyYW0sICJ2X3RleHR1cmUiKTsKQEAgLTE0MSw3ICsxNDcsOCBA
QCBWaWRlb0xheWVyQ2hyb21pdW06OlNoYXJlZFZhbHVlczo6U2hhcmVkVmFsdWVzKEdyYXBoaWNz
Q29udGV4dDNEKiBjb250ZXh0KQogICAgIG1feXV2QWxwaGFMb2NhdGlvbiA9IG1fY29udGV4dC0+
Z2V0VW5pZm9ybUxvY2F0aW9uKG1feXV2U2hhZGVyUHJvZ3JhbSwgImFscGhhIik7CiAKICAgICBB
U1NFUlQobV95dXZTaGFkZXJNYXRyaXhMb2NhdGlvbiAhPSAtMSk7Ci0gICAgQVNTRVJUKG1feXV2
V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uICE9IC0xKTsKKyAgICBBU1NFUlQobV95V2lkdGhTY2Fs
ZUZhY3RvckxvY2F0aW9uICE9IC0xKTsKKyAgICBBU1NFUlQobV91dldpZHRoU2NhbGVGYWN0b3JM
b2NhdGlvbiAhPSAtMSk7CiAgICAgQVNTRVJUKG1feVRleHR1cmVMb2NhdGlvbiAhPSAtMSk7CiAg
ICAgQVNTRVJUKG1fdVRleHR1cmVMb2NhdGlvbiAhPSAtMSk7CiAgICAgQVNTRVJUKG1fdlRleHR1
cmVMb2NhdGlvbiAhPSAtMSk7CkBAIC0xNTEsNyArMTU4LDcgQEAgVmlkZW9MYXllckNocm9taXVt
OjpTaGFyZWRWYWx1ZXM6OlNoYXJlZFZhbHVlcyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkK
IAogICAgIG1fcmdiYVNoYWRlck1hdHJpeExvY2F0aW9uID0gbV9jb250ZXh0LT5nZXRVbmlmb3Jt
TG9jYXRpb24obV9yZ2JhU2hhZGVyUHJvZ3JhbSwgIm1hdHJpeCIpOwogICAgIG1fcmdiYVRleHR1
cmVMb2NhdGlvbiA9IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1fcmdiYVNoYWRlclBy
b2dyYW0sICJyZ2JhX3RleHR1cmUiKTsKLSAgICBtX3JnYmFXaWR0aFNjYWxlRmFjdG9yTG9jYXRp
b24gPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihtX3JnYmFTaGFkZXJQcm9ncmFtLCAi
d2lkdGhTY2FsZUZhY3RvciIpOworICAgIG1fcmdiYVdpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbiA9
IG1fY29udGV4dC0+Z2V0VW5pZm9ybUxvY2F0aW9uKG1fcmdiYVNoYWRlclByb2dyYW0sICJ5X3dp
ZHRoU2NhbGVGYWN0b3IiKTsKICAgICBtX3JnYmFBbHBoYUxvY2F0aW9uID0gbV9jb250ZXh0LT5n
ZXRVbmlmb3JtTG9jYXRpb24obV9yZ2JhU2hhZGVyUHJvZ3JhbSwgImFscGhhIik7CiAKICAgICBB
U1NFUlQobV9yZ2JhU2hhZGVyTWF0cml4TG9jYXRpb24gIT0gLTEpOwpAQCAtMjk3LDkgKzMwNCwy
NyBAQCBib29sIFZpZGVvTGF5ZXJDaHJvbWl1bTo6YWxsb2NhdGVUZXh0dXJlc0lmTmVlZGVkKEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBWaQogICAgICAgICBpZiAoIXBsYW5lVGV4dHVyZVNp
emUuaXNaZXJvKCkgJiYgcGxhbmVUZXh0dXJlU2l6ZSAhPSBtX3RleHR1cmVTaXplc1twbGFuZV0p
IHsKICAgICAgICAgICAgIGFsbG9jYXRlVGV4dHVyZShjb250ZXh0LCBtX3RleHR1cmVzW3BsYW5l
XSwgcGxhbmVUZXh0dXJlU2l6ZSwgdGV4dHVyZUZvcm1hdCk7CiAgICAgICAgICAgICBtX3RleHR1
cmVTaXplc1twbGFuZV0gPSBwbGFuZVRleHR1cmVTaXplOwotICAgICAgICAgICAgbV9mcmFtZVNp
emVzW3BsYW5lXSA9IEludFNpemUoZnJhbWUtPndpZHRoKCksIGZyYW1lLT5oZWlnaHQoKSk7Cisg
ICAgICAgICAgICBpbnQgZnJhbWVXaWR0aCA9IGZyYW1lLT53aWR0aChwbGFuZSk7CisgICAgICAg
ICAgICBpbnQgZnJhbWVIZWlnaHQgPSBmcmFtZS0+aGVpZ2h0KHBsYW5lKTsKKyAgICAgICAgICAg
IC8vIFdoZW4gdGhlcmUgYXJlIGRlYWQgcGl4ZWxzIGF0IHRoZSBlZGdlIG9mIHRoZSB0ZXh0dXJl
LCBkZWNyZWFzZQorICAgICAgICAgICAgLy8gdGhlIGZyYW1lIHdpZHRoIGJ5IDEgdG8gcHJldmVu
dCB0aGUgcmlnaHRtb3N0IHBpeGVscyBmcm9tCisgICAgICAgICAgICAvLyBpbnRlcnBvbGF0aW5n
IHdpdGggdGhlIGRlYWQgcGl4ZWxzLgorICAgICAgICAgICAgaWYgKGZyYW1lLT5oYXNQYWRkaW5n
Qnl0ZXMocGxhbmUpKQorICAgICAgICAgICAgICAgIC0tZnJhbWVXaWR0aDsKKyAgICAgICAgICAg
IG1fZnJhbWVTaXplc1twbGFuZV0gPSBJbnRTaXplKGZyYW1lV2lkdGgsIGZyYW1lSGVpZ2h0KTsK
ICAgICAgICAgfQogICAgIH0KKworICAgIC8vIEluIFlWMTIsIGV2ZXJ5IDJ4MiBzcXVhcmUgb2Yg
WSB2YWx1ZXMgY29ycmVzcG9uZHMgdG8gb25lIFUgYW5kCisgICAgLy8gb25lIFYgdmFsdWUuIElm
IHdlIGRlY3JlYXNlIHRoZSB3aWR0aCBvZiB0aGUgVVYgcGxhbmUsIHdlIG11c3QgZGVjcmVhc2Ug
dGhlCisgICAgLy8gd2lkdGggb2YgdGhlIFkgdGV4dHVyZSBieSAyIGZvciBwcm9wZXIgYWxpZ25t
ZW50LiBUaGlzIG11c3QgaGFwcGVuCisgICAgLy8gYWx3YXlzLCBldmVuIGlmIFkncyB0ZXh0dXJl
IGRvZXMgbm90IGhhdmUgcGFkZGluZyBieXRlcy4KKyAgICBpZiAoZnJhbWUtPmZvcm1hdCgpID09
IFZpZGVvRnJhbWVDaHJvbWl1bTo6WVYxMikgeworICAgICAgICBpbnQgeVBsYW5lT3JpZ2luYWxX
aWR0aCA9IGZyYW1lLT53aWR0aChWaWRlb0ZyYW1lQ2hyb21pdW06OnlQbGFuZSk7CisgICAgICAg
IGlmIChmcmFtZS0+aGFzUGFkZGluZ0J5dGVzKFZpZGVvRnJhbWVDaHJvbWl1bTo6dVBsYW5lKSkK
KyAgICAgICAgICAgIG1fZnJhbWVTaXplc1tWaWRlb0ZyYW1lQ2hyb21pdW06OnlQbGFuZV0uc2V0
V2lkdGgoeVBsYW5lT3JpZ2luYWxXaWR0aCAtIDIpOworICAgIH0KKwogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC0zNzAsMTAgKzM5NSwxNiBAQCB2b2lkIFZpZGVvTGF5ZXJDaHJvbWl1bTo6ZHJh
d1lVVihjb25zdCBTaGFyZWRWYWx1ZXMqIHN2KQogICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5i
aW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgbV90ZXh0dXJlc1tWaWRl
b0ZyYW1lQ2hyb21pdW06OnZQbGFuZV0pKTsKIAogICAgIGxheWVyUmVuZGVyZXIoKS0+dXNlU2hh
ZGVyKHN2LT55dXZTaGFkZXJQcm9ncmFtKCkpOwotICAgIHVuc2lnbmVkIGZyYW1lV2lkdGggPSBt
X2ZyYW1lU2l6ZXNbVmlkZW9GcmFtZUNocm9taXVtOjp5UGxhbmVdLndpZHRoKCk7Ci0gICAgdW5z
aWduZWQgdGV4dHVyZVdpZHRoID0gbV90ZXh0dXJlU2l6ZXNbVmlkZW9GcmFtZUNocm9taXVtOjp5
UGxhbmVdLndpZHRoKCk7Ci0gICAgZmxvYXQgd2lkdGhTY2FsZUZhY3RvciA9IHN0YXRpY19jYXN0
PGZsb2F0PihmcmFtZVdpZHRoKSAvIHRleHR1cmVXaWR0aDsKLSAgICBHTEMoY29udGV4dCwgY29u
dGV4dC0+dW5pZm9ybTFmKHN2LT55dXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oKSwgd2lkdGhT
Y2FsZUZhY3RvcikpOworICAgIHVuc2lnbmVkIHlGcmFtZVdpZHRoID0gbV9mcmFtZVNpemVzW1Zp
ZGVvRnJhbWVDaHJvbWl1bTo6eVBsYW5lXS53aWR0aCgpOworICAgIHVuc2lnbmVkIHlUZXh0dXJl
V2lkdGggPSBtX3RleHR1cmVTaXplc1tWaWRlb0ZyYW1lQ2hyb21pdW06OnlQbGFuZV0ud2lkdGgo
KTsKKyAgICAvLyBBcmJpdHJhcmlseSB0YWtlIHRoZSB1IHNpemVzIGJlY2F1c2UgdSBhbmQgdiBk
aW1lbnNpb25zIGFyZSBpZGVudGljYWwuCisgICAgdW5zaWduZWQgdXZGcmFtZVdpZHRoID0gbV9m
cmFtZVNpemVzW1ZpZGVvRnJhbWVDaHJvbWl1bTo6dVBsYW5lXS53aWR0aCgpOworICAgIHVuc2ln
bmVkIHV2VGV4dHVyZVdpZHRoID0gbV90ZXh0dXJlU2l6ZXNbVmlkZW9GcmFtZUNocm9taXVtOjp1
UGxhbmVdLndpZHRoKCk7CisKKyAgICBmbG9hdCB5V2lkdGhTY2FsZUZhY3RvciA9IHN0YXRpY19j
YXN0PGZsb2F0Pih5RnJhbWVXaWR0aCkgLyB5VGV4dHVyZVdpZHRoOworICAgIGZsb2F0IHV2V2lk
dGhTY2FsZUZhY3RvciA9IHN0YXRpY19jYXN0PGZsb2F0Pih1dkZyYW1lV2lkdGgpIC8gdXZUZXh0
dXJlV2lkdGg7CisgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnVuaWZvcm0xZihzdi0+eVdpZHRo
U2NhbGVGYWN0b3JMb2NhdGlvbigpLCB5V2lkdGhTY2FsZUZhY3RvcikpOworICAgIEdMQyhjb250
ZXh0LCBjb250ZXh0LT51bmlmb3JtMWYoc3YtPnV2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uKCks
IHV2V2lkdGhTY2FsZUZhY3RvcikpOwogCiAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnVuaWZv
cm0xaShzdi0+eVRleHR1cmVMb2NhdGlvbigpLCAxKSk7CiAgICAgR0xDKGNvbnRleHQsIGNvbnRl
eHQtPnVuaWZvcm0xaShzdi0+dVRleHR1cmVMb2NhdGlvbigpLCAyKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21p
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5
ZXJDaHJvbWl1bS5oCmluZGV4IGFjM2JjYTlhNmRiOTBkNmVhOTk4MjNjODY2MGE0YjczYTg1YmFk
YTMuLjM0NDliODFiZGZjNzI3MTY2MDk4YjViMDFmNWE2MzNkNmRjOGYxYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJv
bWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Zp
ZGVvTGF5ZXJDaHJvbWl1bS5oCkBAIC02MSw3ICs2MSw4IEBAIHB1YmxpYzoKICAgICAgICAgdW5z
aWduZWQgcmdiYVNoYWRlclByb2dyYW0oKSBjb25zdCB7IHJldHVybiBtX3JnYmFTaGFkZXJQcm9n
cmFtOyB9CiAgICAgICAgIGludCB5dXZTaGFkZXJNYXRyaXhMb2NhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1feXV2U2hhZGVyTWF0cml4TG9jYXRpb247IH0KICAgICAgICAgaW50IHJnYmFTaGFkZXJN
YXRyaXhMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmdiYVNoYWRlck1hdHJpeExvY2F0aW9u
OyB9Ci0gICAgICAgIGludCB5dXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3l1dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbjsgfQorICAgICAgICBpbnQgeVdpZHRo
U2NhbGVGYWN0b3JMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1feVdpZHRoU2NhbGVGYWN0b3JM
b2NhdGlvbjsgfQorICAgICAgICBpbnQgdXZXaWR0aFNjYWxlRmFjdG9yTG9jYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3V2V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uOyB9CiAgICAgICAgIGludCBy
Z2JhV2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9yZ2JhV2lkdGhT
Y2FsZUZhY3RvckxvY2F0aW9uOyB9CiAgICAgICAgIGludCB5VGV4dHVyZUxvY2F0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV95VGV4dHVyZUxvY2F0aW9uOyB9CiAgICAgICAgIGludCB1VGV4dHVyZUxv
Y2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV91VGV4dHVyZUxvY2F0aW9uOyB9CkBAIC03Nyw3ICs3
OCw4IEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgbV95dXZTaGFkZXJQcm9ncmFtOwogICAg
ICAgICB1bnNpZ25lZCBtX3JnYmFTaGFkZXJQcm9ncmFtOwogICAgICAgICBpbnQgbV95dXZTaGFk
ZXJNYXRyaXhMb2NhdGlvbjsKLSAgICAgICAgaW50IG1feXV2V2lkdGhTY2FsZUZhY3RvckxvY2F0
aW9uOworICAgICAgICBpbnQgbV95V2lkdGhTY2FsZUZhY3RvckxvY2F0aW9uOworICAgICAgICBp
bnQgbV91dldpZHRoU2NhbGVGYWN0b3JMb2NhdGlvbjsKICAgICAgICAgaW50IG1fcmdiYVNoYWRl
ck1hdHJpeExvY2F0aW9uOwogICAgICAgICBpbnQgbV9yZ2JhV2lkdGhTY2FsZUZhY3RvckxvY2F0
aW9uOwogICAgICAgICBpbnQgbV9jY01hdHJpeExvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCA5MGU2ZmQxNTk4YmJmNmI5Yzc4ZWY2ZjFjMWE5OTIwZTcxZGJmN2QwLi5kYWVh
Zjg1MGIxNjUxY2I4YjE5NTVhMGE4M2JjNThkYzE2ZWZjNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAyLTE2ICBWaWN0b3JpYSBLaXJzdCAgPHZy
a0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtjaHJvbWl1bV0gRml4IGdyZWVuIHBpeGVscyBhdCBlZGdlIG9mIGNlcnRhaW4gR1BV
LWFjY2VsZXJhdGVkIHZpZGVvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTQ1NTkKKworICAgICAgICAqIHNyYy9WaWRlb0ZyYW1lQ2hyb21pdW1JbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GcmFtZUNocm9taXVtSW1wbDo6d2lkdGgpOgor
ICAgICAgICAoV2ViS2l0OjpWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjpoZWlnaHQpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjpyZXF1aXJlZFRleHR1cmVTaXplKToK
KyAgICAgICAgKFdlYktpdDo6VmlkZW9GcmFtZUNocm9taXVtSW1wbDo6aGFzUGFkZGluZ0J5dGVz
KToKKyAgICAgICAgKiBzcmMvVmlkZW9GcmFtZUNocm9taXVtSW1wbC5oOgorCiAyMDExLTAyLTE0
ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1ZpZGVvRnJhbWVDaHJvbWl1bUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
VmlkZW9GcmFtZUNocm9taXVtSW1wbC5jcHAKaW5kZXggODY1NDViNzY3ZGI3OGIzMTI1MzYzZDQ3
NjAwMDQxYjk3ODc3OGJjNS4uMjc3ODNhZTU1NmNlMzE2MWIzMTVhNzJiZjM2MDMzYWQwYzNiNzE5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvVmlkZW9GcmFtZUNocm9t
aXVtSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvVmlkZW9GcmFtZUNo
cm9taXVtSW1wbC5jcHAKQEAgLTcyLDYgKzcyLDE0IEBAIHVuc2lnbmVkIFZpZGVvRnJhbWVDaHJv
bWl1bUltcGw6OndpZHRoKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAordW5zaWduZWQgVmlk
ZW9GcmFtZUNocm9taXVtSW1wbDo6d2lkdGgodW5zaWduZWQgcGxhbmUpIGNvbnN0Cit7CisgICAg
dW5zaWduZWQgcGxhbmVXaWR0aCA9IHdpZHRoKCk7CisgICAgaWYgKGZvcm1hdCgpID09IFlWMTIg
JiYgcGxhbmUgIT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHlQbGFuZSkpCisgICAgICAgIHBsYW5l
V2lkdGggLz0gMjsKKyAgICByZXR1cm4gcGxhbmVXaWR0aDsKK30KKwogdW5zaWduZWQgVmlkZW9G
cmFtZUNocm9taXVtSW1wbDo6aGVpZ2h0KCkgY29uc3QKIHsKICAgICBpZiAobV93ZWJWaWRlb0Zy
YW1lKQpAQCAtNzksNiArODcsMTQgQEAgdW5zaWduZWQgVmlkZW9GcmFtZUNocm9taXVtSW1wbDo6
aGVpZ2h0KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAordW5zaWduZWQgVmlkZW9GcmFtZUNo
cm9taXVtSW1wbDo6aGVpZ2h0KHVuc2lnbmVkIHBsYW5lKSBjb25zdAoreworICAgIHVuc2lnbmVk
IHBsYW5lSGVpZ2h0ID0gaGVpZ2h0KCk7CisgICAgaWYgKGZvcm1hdCgpID09IFlWMTIgJiYgcGxh
bmUgIT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHlQbGFuZSkpCisgICAgICAgIHBsYW5lSGVpZ2h0
IC89IDI7CisgICAgcmV0dXJuIHBsYW5lSGVpZ2h0OworfQorCiB1bnNpZ25lZCBWaWRlb0ZyYW1l
Q2hyb21pdW1JbXBsOjpwbGFuZXMoKSBjb25zdAogewogICAgIGlmIChtX3dlYlZpZGVvRnJhbWUp
CkBAIC0xMDksMjEgKzEyNSwxNCBAQCB1bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjp0
ZXh0dXJlKHVuc2lnbmVkIHBsYW5lKSBjb25zdAogCiBjb25zdCBJbnRTaXplIFZpZGVvRnJhbWVD
aHJvbWl1bUltcGw6OnJlcXVpcmVkVGV4dHVyZVNpemUodW5zaWduZWQgcGxhbmUpIGNvbnN0CiB7
Ci0gICAgc3dpdGNoIChmb3JtYXQoKSkgewotICAgIGNhc2UgUkdCQToKLSAgICBjYXNlIFlWMTY6
Ci0gICAgICAgIHJldHVybiBJbnRTaXplKHN0cmlkZShwbGFuZSksIGhlaWdodCgpKTsKLSAgICBj
YXNlIFlWMTI6Ci0gICAgICAgIGlmIChwbGFuZSA9PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oeVBs
YW5lKSkKLSAgICAgICAgICAgIHJldHVybiBJbnRTaXplKHN0cmlkZShwbGFuZSksIGhlaWdodCgp
KTsKLSAgICAgICAgZWxzZSBpZiAocGxhbmUgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHVQbGFu
ZSkpCi0gICAgICAgICAgICByZXR1cm4gSW50U2l6ZShzdHJpZGUocGxhbmUpLCBoZWlnaHQoKSAv
IDIpOwotICAgICAgICBlbHNlIGlmIChwbGFuZSA9PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odlBs
YW5lKSkKLSAgICAgICAgICAgIHJldHVybiBJbnRTaXplKHN0cmlkZShwbGFuZSksIGhlaWdodCgp
IC8gMik7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiBJ
bnRTaXplKCk7CisgICAgcmV0dXJuIEludFNpemUoc3RyaWRlKHBsYW5lKSwgaGVpZ2h0KHBsYW5l
KSk7Cit9CisKK2Jvb2wgVmlkZW9GcmFtZUNocm9taXVtSW1wbDo6aGFzUGFkZGluZ0J5dGVzKHVu
c2lnbmVkIHBsYW5lKSBjb25zdAoreworICAgIGlmIChtX3dlYlZpZGVvRnJhbWUpCisgICAgICAg
IHJldHVybiBzdHJpZGUocGxhbmUpIC0gd2lkdGgocGxhbmUpID4gMDsKKyAgICByZXR1cm4gZmFs
c2U7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvVmlkZW9GcmFtZUNocm9taXVtSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvVmlkZW9GcmFtZUNocm9taXVtSW1wbC5oCmluZGV4IGY4NmVlMWMwZDUzMjBj
Nzk2ZGUxM2NlZWYyNGI1ZGI4NjBlZjZmOTMuLmNhN2Y4OGIzZGY2N2Y2NWRlNmEzYTFiN2IwMDUw
ZmMyOWU5NmI4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ZpZGVv
RnJhbWVDaHJvbWl1bUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9WaWRl
b0ZyYW1lQ2hyb21pdW1JbXBsLmgKQEAgLTUyLDEyICs1MiwxNSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBTdXJmYWNlVHlwZSBzdXJmYWNlVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgRm9ybWF0
IGZvcm1hdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIHBsYW5lKSBjb25zdDsKICAgICB2aXJ0
dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0
KHVuc2lnbmVkIHBsYW5lKSBjb25zdDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHBsYW5lcygpIGNv
bnN0OwogICAgIHZpcnR1YWwgaW50IHN0cmlkZSh1bnNpZ25lZCBwbGFuZSkgY29uc3Q7CiAgICAg
dmlydHVhbCBjb25zdCB2b2lkKiBkYXRhKHVuc2lnbmVkIHBsYW5lKSBjb25zdDsKICAgICB2aXJ0
dWFsIHVuc2lnbmVkIHRleHR1cmUodW5zaWduZWQgcGxhbmUpIGNvbnN0OwogICAgIHZpcnR1YWwg
Y29uc3QgSW50U2l6ZSByZXF1aXJlZFRleHR1cmVTaXplKHVuc2lnbmVkIHBsYW5lKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgaGFzUGFkZGluZ0J5dGVzKHVuc2lnbmVkIHBsYW5lKSBjb25zdDsK
IAogcHJpdmF0ZToKICAgICBXZWJWaWRlb0ZyYW1lKiBtX3dlYlZpZGVvRnJhbWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>