<?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>80800</bug_id>
          
          <creation_ts>2012-03-11 18:44:13 -0700</creation_ts>
          <short_desc>[BlackBerry]Cookies shouldn&apos;t be set into each of webcore&apos;s request and platform&apos;s request. And this makes a regression.</short_desc>
          <delta_ts>2012-03-20 01:24:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>0</everconfirmed>
          <reporter name="Jason Liu">jasonliuwebkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>charles.wei</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>kpiascik</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>575880</commentid>
    <comment_count>0</comment_count>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-11 18:44:13 -0700</bug_when>
    <thetext>If cookies have been set into resource request of webcore, they shouldn&apos;t be
set into platform&apos;s request again.

This makes a regression of PR130055(UTF chars printed back from cookie through php shows as ???).
And there is also a performance issue to read cookies from DB two times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575924</commentid>
    <comment_count>1</comment_count>
      <attachid>131278</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-11 21:40:54 -0700</bug_when>
    <thetext>Created attachment 131278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576021</commentid>
    <comment_count>2</comment_count>
      <attachid>131300</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-12 02:31:59 -0700</bug_when>
    <thetext>Created attachment 131300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576098</commentid>
    <comment_count>3</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-03-12 06:40:40 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=131300&amp;action=review

&gt; Source/WebCore/ChangeLog:3
&gt; +        [BlackBerry]Cookies shouldn&apos;t be set into each of webcore&apos;s request and platform&apos;s request. And this makes a regression.

Can you clarify what the regression is in the commit message and how it is fixed.  I know its in the bug but it should also be in the commit message.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests.

There should be a UTF8 vs latin1 test you can add to test your fix.

&gt; Source/WebCore/platform/network/blackberry/ResourceRequestBlackBerry.cpp:183
&gt; +                if (key.contains(&quot;Cookie&quot;))

instead of checking for key.contains(&quot;Cookie&quot;), which you may want to verify if it&apos;s case sensitive or not, you could use String::fromUTF8WithLatin1Fallback similarly to how it&apos;s called in FrameLoaderClienBlackBerry::dispatchWillSendRequest().  This could be more efficient than a string comparison.

&gt; Source/WebCore/platform/network/blackberry/ResourceRequestBlackBerry.cpp:192
&gt; +        if (cookiesEnabled &amp;&amp; (isRedirect || !httpHeaderField(&quot;Cookie&quot;).length())) {

Can you elaborate on why this could happen?

&gt; Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp:212
&gt; +    request.initializePlatformRequest(platformRequest, cookiesEnabled(), false /*isInitial*/);

false /*isInitial*/
This doesn&apos;t need to be here since false is the default value.  Either it should be taken out for all the calls to initializePlatformRequest, or you should also add &quot;false /*isRedirect*/&quot; to each method call in FrameLoaderClientBlackBerry for consistency.

&gt; Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp:941
&gt; +    request.initializePlatformRequest(platformRequest, cookiesEnabled(), 0, false /*isInitial*/);

is this a typo?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576100</commentid>
    <comment_count>4</comment_count>
      <attachid>131300</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-12 06:42:31 -0700</bug_when>
    <thetext>Comment on attachment 131300
Patch

R- based on Konrad&apos;s concerns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577085</commentid>
    <comment_count>5</comment_count>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-12 23:26:25 -0700</bug_when>
    <thetext>&gt;&gt; Source/WebCore/platform/network/blackberry/ResourceRequestBlackBerry.cpp:183
&gt;&gt; +                if (key.contains(&quot;Cookie&quot;))

&gt;instead of checking for key.contains(&quot;Cookie&quot;), which you may want to verify &gt;if it&apos;s case sensitive or not, you could use &gt;String::fromUTF8WithLatin1Fallback similarly to how it&apos;s called in &gt;FrameLoaderClienBlackBerry::dispatchWillSendRequest().  This could be more &gt;efficient than a string comparison.

Joe Mason suggests to talk about checking all headers in another PR.
So I make an if() branch to ensure only check cookies.

And I don&apos;t know how to use String::fromUTF8WithLatin1Fallback instead of if(key.contains(&quot;Cookies&quot;).

Can you give me some detail information?

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577256</commentid>
    <comment_count>6</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-03-13 06:04:45 -0700</bug_when>
    <thetext>(In reply to comment #5)
  instead of if(key.contains(&quot;Cookies&quot;).
&gt; Can you give me some detail information?
&gt; 
&gt; Thanks.
I think I was confused in thinking that String::fromUTF8WithLatin1Fallback could be used to set the platformRequest header data but it appears its only used as a constructor.  Ignore my comment about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578264</commentid>
    <comment_count>7</comment_count>
      <attachid>131811</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-14 02:15:25 -0700</bug_when>
    <thetext>Created attachment 131811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578308</commentid>
    <comment_count>8</comment_count>
      <attachid>131827</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-14 04:45:28 -0700</bug_when>
    <thetext>Created attachment 131827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578829</commentid>
    <comment_count>9</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-03-14 15:09:11 -0700</bug_when>
    <thetext>I think key.contains(&quot;Cookie&quot;) should be more specific, since that will match headers like &quot;X-FreshBakedCookies&quot;.  It should check for the key to be exactly equal to &quot;Cookie&quot; (make sure to do a case-insensitive compare).

Also the layout tests should include dumpAsText (see dom/html/level2/html/HTMLBaseElement01.html for an example) so that the results are easier to read.

Otherwise looks good to me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579194</commentid>
    <comment_count>10</comment_count>
      <attachid>132001</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-15 01:23:07 -0700</bug_when>
    <thetext>Created attachment 132001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580235</commentid>
    <comment_count>11</comment_count>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-16 00:38:57 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=132001) [details]
&gt; Patch

Please help me to review the new patch.

Thanks a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580552</commentid>
    <comment_count>12</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-03-16 08:52:14 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=132001) [details]
&gt; Patch

r+ from me (need a real WebKit reviewer to look at it too, though)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580558</commentid>
    <comment_count>13</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-03-16 09:01:07 -0700</bug_when>
    <thetext>I&apos;ve filed bug 81356 to fix the pre-existing layering violation in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580569</commentid>
    <comment_count>14</comment_count>
      <attachid>132001</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 09:18:03 -0700</bug_when>
    <thetext>Comment on attachment 132001
Patch

Rejecting attachment 132001 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ing rejects to file Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp.rej
patching file LayoutTests/http/tests/cookies/resources/setUtf8Cookies-expected.txt
patching file LayoutTests/http/tests/cookies/resources/setUtf8Cookies-result.php
patching file LayoutTests/http/tests/cookies/resources/setUtf8Cookies.php

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;George Sta...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11967234</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582777</commentid>
    <comment_count>15</comment_count>
      <attachid>132764</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-19 22:45:43 -0700</bug_when>
    <thetext>Created attachment 132764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582779</commentid>
    <comment_count>16</comment_count>
      <attachid>132765</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-19 22:50:50 -0700</bug_when>
    <thetext>Created attachment 132765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582785</commentid>
    <comment_count>17</comment_count>
      <attachid>132766</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-19 23:05:55 -0700</bug_when>
    <thetext>Created attachment 132766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582808</commentid>
    <comment_count>18</comment_count>
      <attachid>132772</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-03-20 00:01:29 -0700</bug_when>
    <thetext>Created attachment 132772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582817</commentid>
    <comment_count>19</comment_count>
      <attachid>132772</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-03-20 00:37:42 -0700</bug_when>
    <thetext>Comment on attachment 132772
Patch

Sending the reabsed patch to cq ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582851</commentid>
    <comment_count>20</comment_count>
      <attachid>132772</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 01:24:52 -0700</bug_when>
    <thetext>Comment on attachment 132772
Patch

Clearing flags on attachment: 132772

Committed r111370: &lt;http://trac.webkit.org/changeset/111370&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582852</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 01:24:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131278</attachid>
            <date>2012-03-11 21:40:54 -0700</date>
            <delta_ts>2012-03-12 02:31:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80800-20120312124051.patch</filename>
            <type>text/plain</type>
            <size>12073</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJjNTFmNDJlNTU0Mzc5
OTZjNTEwYTI3NTc1NjliZDc2NzZmZTRjYi4uZDM3ZDg4ODA2MGNhY2QyMzFjYWFiZjU0N2VkZDY3
NGJkNzQzYzVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTExICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVl
c3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Lmg6Cisg
ICAgICAgIChSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdCk6CisKIDIwMTItMDMt
MTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTAzNTkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZwppbmRleCAyODMxN2Q4YWE4NjIzMDc1ZGZhNmYwNTc2MTJlNWI0YWNhMDQ5YTAyLi42YmRl
Y2M5ZmU0YTU0N2YyNzNiOTU3MmZmOGI2NzcwODVhNzNlMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMy0xMSAgSmFzb24gTGl1ICA8amFz
b24ubGl1QHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJyeV1Db29raWVz
IHNob3VsZG4ndCBiZSBzZXQgaW50byBlYWNoIG9mIHdlYmNvcmUncyByZXF1ZXN0IGFuZCBwbGF0
Zm9ybSdzIHJlcXVlc3QuIEFuZCB0aGlzIG1ha2VzIGEgcmVncmVzc2lvbi4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5
Rm9yRXh0ZXJuYWxMb2FkKToKKwogMjAxMi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVuYW1lIE5vdGlmaWNhdGlvblByZXNlbnRlciB0byBOb3RpZmljYXRp
b25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwCmluZGV4IDdjNjI4ZjAwNTdhN2RhZDA2
NDIwODBmMmYwNDk0NWE0OWQwOGY5NTkuLmUzODMyZTkzM2Y5MzBhZjg2OGRhZTU2NWZkNzY5YWMw
ZmQ2ZGE5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmNwcApAQCAtMjAsNyArMjAsNiBAQAog
I2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNs
dWRlICJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5o
IgpAQCAtNzMsNyArNzIsNyBAQCBib29sIE5ldHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxh
eWVySWQsIGNvbnN0IFN0cmluZyYgcGFnZUdyb3VwTmFtZSwgUGFzc1JlZgogICAgICAgICBtX2lu
aXRpYWxVUkwgPSBLVVJMKCk7CiAKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1Jl
cXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVx
dWVzdChwbGF0Zm9ybVJlcXVlc3QsIGlzSW5pdGlhbCk7CisgICAgcmVxdWVzdC5pbml0aWFsaXpl
UGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgZnJhbWUubG9hZGVyKCkgJiYgZnJhbWUu
bG9hZGVyKCktPmNsaWVudCgpICYmIHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tC
ZXJyeSo+KGZyYW1lLmxvYWRlcigpLT5jbGllbnQoKSktPmNvb2tpZXNFbmFibGVkKCksIGlzSW5p
dGlhbCwgcmVkaXJlY3RDb3VudCk7CiAKICAgICAvLyBBdHRhY2ggYW55IGFwcGxpY2FibGUgYXV0
aCBjcmVkZW50aWFscyB0byB0aGUgTmV0d29ya1JlcXVlc3QuCiAgICAgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGNoYWxsZW5nZSA9IGd1YXJkSm9iLT5nZXRJbnRlcm5hbCgpLT5tX2N1cnJlbnRX
ZWJDaGFsbGVuZ2U7CkBAIC0xMTcsMTYgKzExNiw2IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0
YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3QgU3RyaW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVm
CiAgICAgICAgICAgICBwbGF0Zm9ybVJlcXVlc3Quc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbC51
c2VyKCkudXRmOCgpLmRhdGEoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCks
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdDo6QXV0aEhUVFBCYXNpYyk7CiAg
ICAgfQogCi0gICAgaWYgKCgmZnJhbWUpICYmICgmZnJhbWUpLT5sb2FkZXIoKSAmJiAoJmZyYW1l
KS0+bG9hZGVyKCktPmNsaWVudCgpCi0gICAgICAgICYmIHN0YXRpY19jYXN0PEZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeSo+KCgmZnJhbWUpLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT5jb29raWVz
RW5hYmxlZCgpKSB7Ci0gICAgICAgIC8vIFByZXBhcmUgYSBjb29raWUgaGVhZGVyIGlmIHRoZXJl
IGFyZSBjb29raWVzIHJlbGF0ZWQgdG8gdGhpcyB1cmwuCi0gICAgICAgIFN0cmluZyBjb29raWVQ
YWlycyA9IGNvb2tpZU1hbmFnZXIoKS5nZXRDb29raWUodXJsLCBXaXRoSHR0cE9ubHlDb29raWVz
KTsKLSAgICAgICAgaWYgKCFjb29raWVQYWlycy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIC8v
IFdlIG5lZWQgdG8gY2hlY2sgdGhlIGVuY29kaW5nIGFuZCBlbmNvZGUgdGhlIGNvb2tpZSBoZWFk
ZXIgZGF0YSB1c2luZyBsYXRpbjEgb3IgdXRmOCB0byBzdXBwb3J0IHVuaWNvZGUgY2hhcmFjdGVy
cy4KLSAgICAgICAgICAgIHBsYXRmb3JtUmVxdWVzdC5zZXRDb29raWVEYXRhKGNvb2tpZVBhaXJz
LmNvbnRhaW5zT25seUxhdGluMSgpID8gY29va2llUGFpcnMubGF0aW4xKCkuZGF0YSgpIDogY29v
a2llUGFpcnMudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBpZiAoIXJl
cXVlc3Qub3ZlcnJpZGVDb250ZW50VHlwZSgpLmlzRW1wdHkoKSkKICAgICAgICAgcGxhdGZvcm1S
ZXF1ZXN0LnNldE92ZXJyaWRlQ29udGVudFR5cGUocmVxdWVzdC5vdmVycmlkZUNvbnRlbnRUeXBl
KCkubGF0aW4xKCkuZGF0YSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IDcwNzJl
YjFmMzUxMzRhZGMzNjQxYmQxNTQxYjE2Y2RhYzE4MDE3YWIuLmFkMTkxZmY4NDIzZTM3OGFmMDBk
YzhlN2VjMDQ1N2JmN2Y2YzA4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTExMCw3
ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNdXN0SGFuZGxlSW50ZXJuYWxseShib29s
IG11c3RIYW5kbGVJbnRlcm5hbGx5KSB7IG1fbXVzdEhhbmRsZUludGVybmFsbHkgPSBtdXN0SGFu
ZGxlSW50ZXJuYWxseTsgfQogICAgIGJvb2wgbXVzdEhhbmRsZUludGVybmFsbHkoKSBjb25zdCB7
IHJldHVybiBtX211c3RIYW5kbGVJbnRlcm5hbGx5OyB9CiAKLSAgICB2b2lkIGluaXRpYWxpemVQ
bGF0Zm9ybVJlcXVlc3QoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwgYm9v
bCBpc0luaXRpYWwgPSBmYWxzZSkgY29uc3Q7CisgICAgdm9pZCBpbml0aWFsaXplUGxhdGZvcm1S
ZXF1ZXN0KEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCYsIGJvb2wgY29va2ll
c0VuYWJsZWQsIGJvb2wgaXNJbml0aWFsID0gZmFsc2UsIGJvb2wgaXNSZWRpcmVjdCA9IGZhbHNl
KSBjb25zdDsKICAgICB2b2lkIHNldEZvcmNlRG93bmxvYWQoYm9vbCBmb3JjZURvd25sb2FkKSB7
IG1fZm9yY2VEb3dubG9hZCA9IHRydWU7IH0KICAgICBib29sIGZvcmNlRG93bmxvYWQoKSBjb25z
dCB7IHJldHVybiBtX2ZvcmNlRG93bmxvYWQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNl
UmVxdWVzdEJsYWNrQmVycnkuY3BwCmluZGV4IDViNjc5MmZhN2YxMjI2Y2QwOThiZTllZTI2Yjgy
YmQ3ZjNjZGJkZmQuLmQ1NzFlY2VlZjdhOTg0NzI1NzBiNjdkMTkzMGNkMmIwNmZiM2MyMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNv
dXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAKQEAgLTE3LDYg
KzE3LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29va2llTWFu
YWdlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogCiAjaW5jbHVkZSAiQmxvYlJl
Z2lzdHJ5SW1wbC5oIgpAQCAtMTI2LDcgKzEyNyw3IEBAIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0
VHlwZSBSZXNvdXJjZVJlcXVlc3Q6OnRhcmdldFR5cGVGcm9tTWltZVR5cGUoY29uc3QgU3RyaW5n
CiAgICAgcmV0dXJuIGl0ZXItPnNlY29uZDsKIH0KIAotdm9pZCBSZXNvdXJjZVJlcXVlc3Q6Omlu
aXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoTmV0d29ya1JlcXVlc3QmIHBsYXRmb3JtUmVxdWVzdCwg
Ym9vbCBpc0luaXRpYWwpIGNvbnN0Cit2b2lkIFJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBs
YXRmb3JtUmVxdWVzdChOZXR3b3JrUmVxdWVzdCYgcGxhdGZvcm1SZXF1ZXN0LCBib29sIGNvb2tp
ZXNFbmFibGVkLCBib29sIGlzSW5pdGlhbCwgYm9vbCBpc1JlZGlyZWN0KSBjb25zdAogewogICAg
IC8vIElmIHRoaXMgaXMgdGhlIGluaXRpYWwgbG9hZCwgc2tpcCB0aGUgcmVxdWVzdCBib2R5IGFu
ZCBoZWFkZXJzLgogICAgIGlmIChpc0luaXRpYWwpCkBAIC0xNzcsOCArMTc4LDIyIEBAIHZvaWQg
UmVzb3VyY2VSZXF1ZXN0Ojppbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KE5ldHdvcmtSZXF1ZXN0
JiBwbGF0Zm9ybVJlcXVlc3QsCiAgICAgICAgIGZvciAoSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBodHRwSGVhZGVyRmllbGRzKCkuYmVnaW4oKTsgaXQgIT0gaHR0cEhlYWRlckZp
ZWxkcygpLmVuZCgpOyArK2l0KSB7CiAgICAgICAgICAgICBTdHJpbmcga2V5ID0gaXQtPmZpcnN0
OwogICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gaXQtPnNlY29uZDsKLSAgICAgICAgICAgIGlm
ICgha2V5LmlzRW1wdHkoKSAmJiAhdmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHBs
YXRmb3JtUmVxdWVzdC5hZGRIZWFkZXIoa2V5LmxhdGluMSgpLmRhdGEoKSwgdmFsdWUubGF0aW4x
KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGlmICgha2V5LmlzRW1wdHkoKSAmJiAhdmFsdWUuaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayB0aGUgZW5jb2Rp
bmcgYW5kIGVuY29kZSB0aGUgY29va2llJ3MgdmFsdWUgdXNpbmcgbGF0aW4xIG9yIHV0ZjggdG8g
c3VwcG9ydCB1bmljb2RlIGNoYXJhY3RlcnMuCisgICAgICAgICAgICAgICAgaWYgKGtleS5jb250
YWlucygiQ29va2llIikpCisgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtUmVxdWVzdC5hZGRI
ZWFkZXIoa2V5LmxhdGluMSgpLmRhdGEoKSwgdmFsdWUuY29udGFpbnNPbmx5TGF0aW4xKCkgPyB2
YWx1ZS5sYXRpbjEoKS5kYXRhKCkgOiB2YWx1ZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtUmVxdWVzdC5hZGRIZWFkZXIo
a2V5LmxhdGluMSgpLmRhdGEoKSwgdmFsdWUubGF0aW4xKCkuZGF0YSgpKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFJlZGlyZWN0aW9uJ3MgcmVzcG9uc2UgbWF5IGNv
bnRhaW4gbmV3IGNvb2tpZXMsIHNvIGFkZCBjb29raWVzIGFnYWluLgorICAgICAgICAvLyBJZiB0
aGVyZSBhcmVuJ3QgY29va2llcyBpbiB0aGUgaGVhZGVyIGxpc3QsIHdlIG5lZWQgdHJ5aW5nIHRv
IGFkZCBjb29raWVzLgorICAgICAgICBpZiAoY29va2llc0VuYWJsZWQgJiYgKGlzUmVkaXJlY3Qg
fHwgIWh0dHBIZWFkZXJGaWVsZCgiQ29va2llIikubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICAg
ICAgLy8gUHJlcGFyZSBhIGNvb2tpZSBoZWFkZXIgaWYgdGhlcmUgYXJlIGNvb2tpZXMgcmVsYXRl
ZCB0byB0aGlzIHVybC4KKyAgICAgICAgICAgICAgICBTdHJpbmcgY29va2llUGFpcnMgPSBjb29r
aWVNYW5hZ2VyKCkuZ2V0Q29va2llKHVybCgpLCBXaXRoSHR0cE9ubHlDb29raWVzKTsKKyAgICAg
ICAgICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAg
ICAgcGxhdGZvcm1SZXF1ZXN0LmFkZEhlYWRlcigiQ29va2llIiwgY29va2llUGFpcnMuY29udGFp
bnNPbmx5TGF0aW4xKCkgPyBjb29raWVQYWlycy5sYXRpbjEoKS5kYXRhKCkgOiBjb29raWVQYWly
cy51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIExvY2FsZSBoYXMgdGhl
IGZvcm0gImVuLVVTIi4gQ29uc3RydWN0IGFjY2VwdCBsYW5ndWFnZSBsaWtlICJlbi1VUywgZW47
cT0wLjgiLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRl
eCAwZWVmMWYzZGFmNzhlYzJmYmU5YmViN2JmODY1NzM0NTdkODIxODMxLi5lMjg1YmUxZmFjNTA4
OTc4YTE5YmM3YjZjNDVkYmFmOWE3YTY3NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
RnJhbWVQCiAgICAgLy8gTGV0IHRoZSBjbGllbnQgaGF2ZSBhIGNoYW5jZSB0byBzYXkgd2hldGhl
ciB0aGlzIG5hdmlnYXRpb24gc2hvdWxkCiAgICAgLy8gYmUgaWdub3JlZCBvciBub3QuCiAgICAg
QmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0IHBsYXRmb3JtUmVxdWVzdDsKLSAg
ICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBmYWxz
ZSAvKmlzSW5pdGlhbCovKTsKKyAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3Qo
cGxhdGZvcm1SZXF1ZXN0LCBjb29raWVzRW5hYmxlZCgpLCBmYWxzZSAvKmlzSW5pdGlhbCovKTsK
ICAgICBpZiAoaXNNYWluRnJhbWUoKSAmJiAhbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmFj
Y2VwdE5hdmlnYXRpb25SZXF1ZXN0KAogICAgICAgICBwbGF0Zm9ybVJlcXVlc3QsIEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpOYXZpZ2F0aW9uVHlwZShhY3Rpb24udHlwZSgpKSkpIHsKICAgICAgICAg
aWYgKGFjdGlvbi50eXBlKCkgPT0gTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkCkBAIC0yODAs
NyArMjgwLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lUG8KICAgICAvLyBMZXQgdGhlIGNsaWVu
dCBoYXZlIGEgY2hhbmNlIHRvIHNheSB3aGV0aGVyIHRoaXMgbmF2aWdhdGlvbiBzaG91bGQKICAg
ICAvLyBiZSBpZ25vcmVkIG9yIG5vdC4KICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29y
a1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3Jt
UmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGZhbHNlIC8qaXNJbml0aWFsKi8pOworICAgIHJlcXVl
c3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGNvb2tpZXNFbmFi
bGVkKCksIGZhbHNlIC8qaXNJbml0aWFsKi8pOwogICAgIGlmIChpc01haW5GcmFtZSgpICYmICFt
X3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoCiAgICAg
ICAgIHBsYXRmb3JtUmVxdWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5hdmlnYXRpb25UeXBl
KGFjdGlvbi50eXBlKCkpKSkgewogICAgICAgICBpZiAoYWN0aW9uLnR5cGUoKSA9PSBOYXZpZ2F0
aW9uVHlwZUZvcm1TdWJtaXR0ZWQgfHwgYWN0aW9uLnR5cGUoKSA9PSBOYXZpZ2F0aW9uVHlwZUZv
cm1SZXN1Ym1pdHRlZCkKQEAgLTkzOCwyMSArOTM4LDE1IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciogZG9j
TG9hCiAKICAgICAvLyBBbnkgcHJvY2Vzc2luZyB3aGljaCBpcyBkb25lIGZvciBhbGwgbG9hZHMg
KGJvdGggbWFpbiBhbmQgc3VicmVzb3VyY2UpIHNob3VsZCBnbyBoZXJlLgogICAgIEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJlcXVlc3Q7Ci0gICAgcmVxdWVz
dC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgZmFsc2UgLyppc0lu
aXRpYWwqLyk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3Jt
UmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSwgMCwgZmFsc2UgLyppc0luaXRpYWwqLyk7CiAgICAg
bV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPnBvcHVsYXRlQ3VzdG9tSGVhZGVycyhwbGF0Zm9y
bVJlcXVlc3QpOwogICAgIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVz
dDo6SGVhZGVyTGlzdCYgaGVhZGVyTGlzdHMgPSBwbGF0Zm9ybVJlcXVlc3QuZ2V0SGVhZGVyTGlz
dFJlZigpOwogICAgIGZvciAoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpI
ZWFkZXJMaXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckxpc3RzLmJlZ2luKCk7IGl0ICE9
IGhlYWRlckxpc3RzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgIHN0ZDo6c3RyaW5nIGhlYWRlclN0
cmluZyA9IGl0LT5maXJzdDsKICAgICAgICAgc3RkOjpzdHJpbmcgaGVhZGVyVmFsdWVTdHJpbmcg
PSBpdC0+c2Vjb25kOwotICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmco
aGVhZGVyU3RyaW5nLmNfc3RyKCkpLCBTdHJpbmcoaGVhZGVyVmFsdWVTdHJpbmcuY19zdHIoKSkp
OwotICAgIH0KLSAgICBpZiAoY29va2llc0VuYWJsZWQoKSkgewotICAgICAgICBTdHJpbmcgY29v
a2llUGFpcnMgPSBjb29raWVNYW5hZ2VyKCkuZ2V0Q29va2llKHJlcXVlc3QudXJsKCksIFdpdGhI
dHRwT25seUNvb2tpZXMpOwotICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewot
ICAgICAgICAgICAgLy8gV2Ugb25seSBtb2RpZnkgdGhlIFdlYkNvcmUgcmVxdWVzdCB0byBtYWtl
IHRoZSBjb29raWVzIHZpc2libGUgaW4gaW5zcGVjdG9yLgotICAgICAgICAgICAgcmVxdWVzdC5z
ZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nKCJDb29raWUiKSwgY29va2llUGFpcnMpOwotICAgICAg
ICB9CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbVVURjhX
aXRoTGF0aW4xRmFsbGJhY2soaGVhZGVyU3RyaW5nLmRhdGEoKSwgaGVhZGVyU3RyaW5nLmxlbmd0
aCgpKSwgU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhoZWFkZXJWYWx1ZVN0cmlu
Zy5kYXRhKCksIGhlYWRlclZhbHVlU3RyaW5nLmxlbmd0aCgpKSk7CiAgICAgfQorCiAgICAgaWYg
KCFpc01haW5SZXNvdXJjZUxvYWQpIHsKICAgICAgICAgLy8gRG8gbm90aGluZyBmb3Igbm93Lgog
ICAgICAgICAvLyBBbnkgcHJvY2Vzc2luZyB3aGljaCBpcyBkb25lIG9ubHkgZm9yIHN1YnJlc291
cmNlcyBzaG91bGQgZ28gaGVyZS4KQEAgLTEwOTEsNyArMTA4NSw3IEBAIFBvbGljeUFjdGlvbiBG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRlY2lkZVBvbGljeUZvckV4dGVybmFsTG9hZChj
b25zdCBSZXNvCiAgICAgICAgICAgICAmJiAhcmVxdWVzdC5tdXN0SGFuZGxlSW50ZXJuYWxseSgp
CiAgICAgICAgICAgICAmJiAhaXNGcmFnbWVudFNjcm9sbCkgewogICAgICAgICBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwotICAgICAgICByZXF1
ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0KTsKKyAgICAgICAg
cmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2ll
c0VuYWJsZWQoKSk7CiAgICAgICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5oYW5kbGVF
eHRlcm5hbExpbmsocGxhdGZvcm1SZXF1ZXN0LCByZXF1ZXN0LmFuY2hvclRleHQoKS5jaGFyYWN0
ZXJzKCksIHJlcXVlc3QuYW5jaG9yVGV4dCgpLmxlbmd0aCgpLCBtX2NsaWVudFJlZGlyZWN0SXNQ
ZW5kaW5nKTsKICAgICAgICAgcmV0dXJuIFBvbGljeUlnbm9yZTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131300</attachid>
            <date>2012-03-12 02:31:59 -0700</date>
            <delta_ts>2012-03-14 02:14:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80800-20120312173157.patch</filename>
            <type>text/plain</type>
            <size>12155</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJjNTFmNDJlNTU0Mzc5
OTZjNTEwYTI3NTc1NjliZDc2NzZmZTRjYi4uMjFiNGVjYjNmZTk0OWIyN2IzZDM4ZWJiMTNlYWUz
YTU2Yzk1NTA0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTEyICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVl
c3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKyAg
ICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3
b3JrTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrTWFuYWdlcjo6c3RhcnRK
b2IpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVl
c3QuaDoKKyAgICAgICAgKFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojppbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KToKKwog
MjAxMi0wMy0xMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExMDM1OS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCmluZGV4IDI4MzE3ZDhhYTg2MjMwNzVkZmE2ZjA1NzYxMmU1YjRhY2EwNDlh
MDIuLjk4YzM3OWVjMzZlZDc5MGUxOGVjM2RiOTA3MThlNzg4MTgyMDFhNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTEyICBKYXNvbiBM
aXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5
XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVlc3Qg
YW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVy
cnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkZWNp
ZGVQb2xpY3lGb3JFeHRlcm5hbExvYWQpOgorCiAyMDEyLTAzLTA5ICBKb24gTGVlICA8am9ubGVl
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgTm90aWZpY2F0aW9uUHJlc2VudGVyIHRvIE5v
dGlmaWNhdGlvbkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAKaW5kZXggN2M2MjhmMDA1
N2E3ZGFkMDY0MjA4MGYyZjA0OTQ1YTQ5ZDA4Zjk1OS4uZTM4MzJlOTMzZjkzMGFmODY4ZGFlNTY1
ZmQ3NjlhYzBmZDZkYTk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwCkBAIC0yMCw3ICsy
MCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya01hbmFnZXIuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5o
IgotI2luY2x1ZGUgIkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFn
ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5LmgiCkBAIC03Myw3ICs3Miw3IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9i
KGludCBwbGF5ZXJJZCwgY29uc3QgU3RyaW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmCiAgICAg
ICAgIG1faW5pdGlhbFVSTCA9IEtVUkwoKTsKIAogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpO
ZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJlcXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxh
dGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgaXNJbml0aWFsKTsKKyAgICByZXF1ZXN0Lmlu
aXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBmcmFtZS5sb2FkZXIoKSAm
JiBmcmFtZS5sb2FkZXIoKS0+Y2xpZW50KCkgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5Kj4oZnJhbWUubG9hZGVyKCktPmNsaWVudCgpKS0+Y29va2llc0VuYWJsZWQo
KSwgaXNJbml0aWFsLCByZWRpcmVjdENvdW50KTsKIAogICAgIC8vIEF0dGFjaCBhbnkgYXBwbGlj
YWJsZSBhdXRoIGNyZWRlbnRpYWxzIHRvIHRoZSBOZXR3b3JrUmVxdWVzdC4KICAgICBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlID0gZ3VhcmRKb2ItPmdldEludGVybmFsKCktPm1f
Y3VycmVudFdlYkNoYWxsZW5nZTsKQEAgLTExNywxNiArMTE2LDYgQEAgYm9vbCBOZXR3b3JrTWFu
YWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklkLCBjb25zdCBTdHJpbmcmIHBhZ2VHcm91cE5hbWUs
IFBhc3NSZWYKICAgICAgICAgICAgIHBsYXRmb3JtUmVxdWVzdC5zZXRDcmVkZW50aWFscyhjcmVk
ZW50aWFsLnVzZXIoKS51dGY4KCkuZGF0YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgp
LmRhdGEoKSwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpBdXRoSFRUUEJh
c2ljKTsKICAgICB9CiAKLSAgICBpZiAoKCZmcmFtZSkgJiYgKCZmcmFtZSktPmxvYWRlcigpICYm
ICgmZnJhbWUpLT5sb2FkZXIoKS0+Y2xpZW50KCkKLSAgICAgICAgJiYgc3RhdGljX2Nhc3Q8RnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Kj4oKCZmcmFtZSktPmxvYWRlcigpLT5jbGllbnQoKSkt
PmNvb2tpZXNFbmFibGVkKCkpIHsKLSAgICAgICAgLy8gUHJlcGFyZSBhIGNvb2tpZSBoZWFkZXIg
aWYgdGhlcmUgYXJlIGNvb2tpZXMgcmVsYXRlZCB0byB0aGlzIHVybC4KLSAgICAgICAgU3RyaW5n
IGNvb2tpZVBhaXJzID0gY29va2llTWFuYWdlcigpLmdldENvb2tpZSh1cmwsIFdpdGhIdHRwT25s
eUNvb2tpZXMpOwotICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayB0aGUgZW5jb2RpbmcgYW5kIGVuY29kZSB0aGUgY29v
a2llIGhlYWRlciBkYXRhIHVzaW5nIGxhdGluMSBvciB1dGY4IHRvIHN1cHBvcnQgdW5pY29kZSBj
aGFyYWN0ZXJzLgotICAgICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LnNldENvb2tpZURhdGEoY29v
a2llUGFpcnMuY29udGFpbnNPbmx5TGF0aW4xKCkgPyBjb29raWVQYWlycy5sYXRpbjEoKS5kYXRh
KCkgOiBjb29raWVQYWlycy51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgfQotICAgIH0KLQogICAg
IGlmICghcmVxdWVzdC5vdmVycmlkZUNvbnRlbnRUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICBw
bGF0Zm9ybVJlcXVlc3Quc2V0T3ZlcnJpZGVDb250ZW50VHlwZShyZXF1ZXN0Lm92ZXJyaWRlQ29u
dGVudFR5cGUoKS5sYXRpbjEoKS5kYXRhKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKaW5k
ZXggNzA3MmViMWYzNTEzNGFkYzM2NDFiZDE1NDFiMTZjZGFjMTgwMTdhYi4uYWQxOTFmZjg0MjNl
Mzc4YWYwMGRjOGU3ZWMwNDU3YmY3ZjZjMDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3QuaApA
QCAtMTEwLDcgKzExMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE11c3RIYW5kbGVJbnRlcm5h
bGx5KGJvb2wgbXVzdEhhbmRsZUludGVybmFsbHkpIHsgbV9tdXN0SGFuZGxlSW50ZXJuYWxseSA9
IG11c3RIYW5kbGVJbnRlcm5hbGx5OyB9CiAgICAgYm9vbCBtdXN0SGFuZGxlSW50ZXJuYWxseSgp
IGNvbnN0IHsgcmV0dXJuIG1fbXVzdEhhbmRsZUludGVybmFsbHk7IH0KIAotICAgIHZvaWQgaW5p
dGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVl
c3QmLCBib29sIGlzSW5pdGlhbCA9IGZhbHNlKSBjb25zdDsKKyAgICB2b2lkIGluaXRpYWxpemVQ
bGF0Zm9ybVJlcXVlc3QoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwgYm9v
bCBjb29raWVzRW5hYmxlZCwgYm9vbCBpc0luaXRpYWwgPSBmYWxzZSwgYm9vbCBpc1JlZGlyZWN0
ID0gZmFsc2UpIGNvbnN0OwogICAgIHZvaWQgc2V0Rm9yY2VEb3dubG9hZChib29sIGZvcmNlRG93
bmxvYWQpIHsgbV9mb3JjZURvd25sb2FkID0gdHJ1ZTsgfQogICAgIGJvb2wgZm9yY2VEb3dubG9h
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2VEb3dubG9hZDsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Qmxh
Y2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkv
UmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAKaW5kZXggNWI2NzkyZmE3ZjEyMjZjZDA5OGJl
OWVlMjZiODJiZDdmM2NkYmRmZC4uYzNmNWZkZDNmZTY2MzgxNDJmYWIwMDg2ZmU4ZmM0YjRiZGJh
Njk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcApA
QCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogCiAjaW5jbHVk
ZSAiQmxvYlJlZ2lzdHJ5SW1wbC5oIgorI2luY2x1ZGUgIkNvb2tpZU1hbmFnZXIuaCIKICNpbmNs
dWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1DbGllbnQuaD4KICNpbmNsdWRlIDxuZXR3b3JrL05ldHdv
cmtSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTEyNiw3ICsxMjcsNyBA
QCBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgUmVzb3VyY2VSZXF1ZXN0Ojp0YXJnZXRUeXBl
RnJvbU1pbWVUeXBlKGNvbnN0IFN0cmluZwogICAgIHJldHVybiBpdGVyLT5zZWNvbmQ7CiB9CiAK
LXZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KE5ldHdvcmtS
ZXF1ZXN0JiBwbGF0Zm9ybVJlcXVlc3QsIGJvb2wgaXNJbml0aWFsKSBjb25zdAordm9pZCBSZXNv
dXJjZVJlcXVlc3Q6OmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoTmV0d29ya1JlcXVlc3QmIHBs
YXRmb3JtUmVxdWVzdCwgYm9vbCBjb29raWVzRW5hYmxlZCwgYm9vbCBpc0luaXRpYWwsIGJvb2wg
aXNSZWRpcmVjdCkgY29uc3QKIHsKICAgICAvLyBJZiB0aGlzIGlzIHRoZSBpbml0aWFsIGxvYWQs
IHNraXAgdGhlIHJlcXVlc3QgYm9keSBhbmQgaGVhZGVycy4KICAgICBpZiAoaXNJbml0aWFsKQpA
QCAtMTc3LDggKzE3OCwyMiBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBsYXRm
b3JtUmVxdWVzdChOZXR3b3JrUmVxdWVzdCYgcGxhdGZvcm1SZXF1ZXN0LAogICAgICAgICBmb3Ig
KEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaHR0cEhlYWRlckZpZWxkcygpLmJl
Z2luKCk7IGl0ICE9IGh0dHBIZWFkZXJGaWVsZHMoKS5lbmQoKTsgKytpdCkgewogICAgICAgICAg
ICAgU3RyaW5nIGtleSA9IGl0LT5maXJzdDsKICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGl0
LT5zZWNvbmQ7Ci0gICAgICAgICAgICBpZiAoIWtleS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgICAgICBwbGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKGtleS5sYXRp
bjEoKS5kYXRhKCksIHZhbHVlLmxhdGluMSgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoIWtl
eS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIFdl
IG5lZWQgdG8gY2hlY2sgdGhlIGVuY29kaW5nIGFuZCBlbmNvZGUgdGhlIGNvb2tpZSdzIHZhbHVl
IHVzaW5nIGxhdGluMSBvciB1dGY4IHRvIHN1cHBvcnQgdW5pY29kZSBjaGFyYWN0ZXJzLgorICAg
ICAgICAgICAgICAgIGlmIChrZXkuY29udGFpbnMoIkNvb2tpZSIpKQorICAgICAgICAgICAgICAg
ICAgICBwbGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKGtleS5sYXRpbjEoKS5kYXRhKCksIHZhbHVl
LmNvbnRhaW5zT25seUxhdGluMSgpID8gdmFsdWUubGF0aW4xKCkuZGF0YSgpIDogdmFsdWUudXRm
OCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBw
bGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKGtleS5sYXRpbjEoKS5kYXRhKCksIHZhbHVlLmxhdGlu
MSgpLmRhdGEoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBSZWRp
cmVjdGlvbidzIHJlc3BvbnNlIG1heSBjb250YWluIG5ldyBjb29raWVzLCBzbyBhZGQgY29va2ll
cyBhZ2Fpbi4KKyAgICAgICAgLy8gSWYgdGhlcmUgYXJlbid0IGNvb2tpZXMgaW4gdGhlIGhlYWRl
ciBsaXN0LCB3ZSBuZWVkIHRyeWluZyB0byBhZGQgY29va2llcy4KKyAgICAgICAgaWYgKGNvb2tp
ZXNFbmFibGVkICYmIChpc1JlZGlyZWN0IHx8ICFodHRwSGVhZGVyRmllbGQoIkNvb2tpZSIpLmxl
bmd0aCgpKSkgeworICAgICAgICAgICAgICAgIC8vIFByZXBhcmUgYSBjb29raWUgaGVhZGVyIGlm
IHRoZXJlIGFyZSBjb29raWVzIHJlbGF0ZWQgdG8gdGhpcyB1cmwuCisgICAgICAgICAgICAgICAg
U3RyaW5nIGNvb2tpZVBhaXJzID0gY29va2llTWFuYWdlcigpLmdldENvb2tpZSh1cmwoKSwgV2l0
aEh0dHBPbmx5Q29va2llcyk7CisgICAgICAgICAgICAgICAgaWYgKCFjb29raWVQYWlycy5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtUmVxdWVzdC5hZGRIZWFkZXIoIkNv
b2tpZSIsIGNvb2tpZVBhaXJzLmNvbnRhaW5zT25seUxhdGluMSgpID8gY29va2llUGFpcnMubGF0
aW4xKCkuZGF0YSgpIDogY29va2llUGFpcnMudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBMb2NhbGUgaGFzIHRoZSBmb3JtICJlbi1VUyIuIENvbnN0cnVjdCBhY2NlcHQg
bGFuZ3VhZ2UgbGlrZSAiZW4tVVMsIGVuO3E9MC44Ii4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
Y3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggMGVlZjFmM2RhZjc4ZWMyZmJlOWJlYjdiZjg2NTcz
NDU3ZDgyMTgzMS4uZTI4NWJlMWZhYzUwODk3OGExOWJjN2I2YzQ1ZGJhZjlhN2E2NzcyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTIwOSw3ICsy
MDksNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUAogICAgIC8vIExldCB0aGUgY2xpZW50IGhh
dmUgYSBjaGFuY2UgdG8gc2F5IHdoZXRoZXIgdGhpcyBuYXZpZ2F0aW9uIHNob3VsZAogICAgIC8v
IGJlIGlnbm9yZWQgb3Igbm90LgogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVx
dWVzdCBwbGF0Zm9ybVJlcXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1
ZXN0KHBsYXRmb3JtUmVxdWVzdCwgZmFsc2UgLyppc0luaXRpYWwqLyk7CisgICAgcmVxdWVzdC5p
bml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQo
KSwgZmFsc2UgLyppc0luaXRpYWwqLyk7CiAgICAgaWYgKGlzTWFpbkZyYW1lKCkgJiYgIW1fd2Vi
UGFnZVByaXZhdGUtPm1fY2xpZW50LT5hY2NlcHROYXZpZ2F0aW9uUmVxdWVzdCgKICAgICAgICAg
cGxhdGZvcm1SZXF1ZXN0LCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmF2aWdhdGlvblR5cGUoYWN0
aW9uLnR5cGUoKSkpKSB7CiAgICAgICAgIGlmIChhY3Rpb24udHlwZSgpID09IE5hdmlnYXRpb25U
eXBlRm9ybVN1Ym1pdHRlZApAQCAtMjgwLDcgKzI4MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFt
ZVBvCiAgICAgLy8gTGV0IHRoZSBjbGllbnQgaGF2ZSBhIGNoYW5jZSB0byBzYXkgd2hldGhlciB0
aGlzIG5hdmlnYXRpb24gc2hvdWxkCiAgICAgLy8gYmUgaWdub3JlZCBvciBub3QuCiAgICAgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0IHBsYXRmb3JtUmVxdWVzdDsKLSAgICBy
ZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBmYWxzZSAv
KmlzSW5pdGlhbCovKTsKKyAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxh
dGZvcm1SZXF1ZXN0LCBjb29raWVzRW5hYmxlZCgpLCBmYWxzZSAvKmlzSW5pdGlhbCovKTsKICAg
ICBpZiAoaXNNYWluRnJhbWUoKSAmJiAhbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmFjY2Vw
dE5hdmlnYXRpb25SZXF1ZXN0KAogICAgICAgICBwbGF0Zm9ybVJlcXVlc3QsIEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpOYXZpZ2F0aW9uVHlwZShhY3Rpb24udHlwZSgpKSkpIHsKICAgICAgICAgaWYg
KGFjdGlvbi50eXBlKCkgPT0gTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkIHx8IGFjdGlvbi50
eXBlKCkgPT0gTmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQpCkBAIC05MzgsMjEgKzkzOCwx
NSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU2VuZFJl
cXVlc3QoRG9jdW1lbnRMb2FkZXIqIGRvY0xvYQogCiAgICAgLy8gQW55IHByb2Nlc3Npbmcgd2hp
Y2ggaXMgZG9uZSBmb3IgYWxsIGxvYWRzIChib3RoIG1haW4gYW5kIHN1YnJlc291cmNlKSBzaG91
bGQgZ28gaGVyZS4KICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxh
dGZvcm1SZXF1ZXN0OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0
Zm9ybVJlcXVlc3QsIGZhbHNlIC8qaXNJbml0aWFsKi8pOworICAgIHJlcXVlc3QuaW5pdGlhbGl6
ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGNvb2tpZXNFbmFibGVkKCksIDAsIGZh
bHNlIC8qaXNJbml0aWFsKi8pOwogICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5wb3B1
bGF0ZUN1c3RvbUhlYWRlcnMocGxhdGZvcm1SZXF1ZXN0KTsKICAgICBjb25zdCBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3Q6OkhlYWRlckxpc3QmIGhlYWRlckxpc3RzID0gcGxh
dGZvcm1SZXF1ZXN0LmdldEhlYWRlckxpc3RSZWYoKTsKICAgICBmb3IgKEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpOZXR3b3JrUmVxdWVzdDo6SGVhZGVyTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBo
ZWFkZXJMaXN0cy5iZWdpbigpOyBpdCAhPSBoZWFkZXJMaXN0cy5lbmQoKTsgKytpdCkgewogICAg
ICAgICBzdGQ6OnN0cmluZyBoZWFkZXJTdHJpbmcgPSBpdC0+Zmlyc3Q7CiAgICAgICAgIHN0ZDo6
c3RyaW5nIGhlYWRlclZhbHVlU3RyaW5nID0gaXQtPnNlY29uZDsKLSAgICAgICAgcmVxdWVzdC5z
ZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nKGhlYWRlclN0cmluZy5jX3N0cigpKSwgU3RyaW5nKGhl
YWRlclZhbHVlU3RyaW5nLmNfc3RyKCkpKTsKLSAgICB9Ci0gICAgaWYgKGNvb2tpZXNFbmFibGVk
KCkpIHsKLSAgICAgICAgU3RyaW5nIGNvb2tpZVBhaXJzID0gY29va2llTWFuYWdlcigpLmdldENv
b2tpZShyZXF1ZXN0LnVybCgpLCBXaXRoSHR0cE9ubHlDb29raWVzKTsKLSAgICAgICAgaWYgKCFj
b29raWVQYWlycy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIG9ubHkgbW9kaWZ5IHRo
ZSBXZWJDb3JlIHJlcXVlc3QgdG8gbWFrZSB0aGUgY29va2llcyB2aXNpYmxlIGluIGluc3BlY3Rv
ci4KLSAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZygiQ29va2ll
IiksIGNvb2tpZVBhaXJzKTsKLSAgICAgICAgfQorICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFk
ZXJGaWVsZChTdHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxiYWNrKGhlYWRlclN0cmluZy5k
YXRhKCksIGhlYWRlclN0cmluZy5sZW5ndGgoKSksIFN0cmluZzo6ZnJvbVVURjhXaXRoTGF0aW4x
RmFsbGJhY2soaGVhZGVyVmFsdWVTdHJpbmcuZGF0YSgpLCBoZWFkZXJWYWx1ZVN0cmluZy5sZW5n
dGgoKSkpOwogICAgIH0KKwogICAgIGlmICghaXNNYWluUmVzb3VyY2VMb2FkKSB7CiAgICAgICAg
IC8vIERvIG5vdGhpbmcgZm9yIG5vdy4KICAgICAgICAgLy8gQW55IHByb2Nlc3Npbmcgd2hpY2gg
aXMgZG9uZSBvbmx5IGZvciBzdWJyZXNvdXJjZXMgc2hvdWxkIGdvIGhlcmUuCkBAIC0xMDkxLDcg
KzEwODUsNyBAQCBQb2xpY3lBY3Rpb24gRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkZWNp
ZGVQb2xpY3lGb3JFeHRlcm5hbExvYWQoY29uc3QgUmVzbwogICAgICAgICAgICAgJiYgIXJlcXVl
c3QubXVzdEhhbmRsZUludGVybmFsbHkoKQogICAgICAgICAgICAgJiYgIWlzRnJhZ21lbnRTY3Jv
bGwpIHsKICAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0IHBsYXRm
b3JtUmVxdWVzdDsKLSAgICAgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBs
YXRmb3JtUmVxdWVzdCk7CisgICAgICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVz
dChwbGF0Zm9ybVJlcXVlc3QsIGNvb2tpZXNFbmFibGVkKCkpOwogICAgICAgICBtX3dlYlBhZ2VQ
cml2YXRlLT5tX2NsaWVudC0+aGFuZGxlRXh0ZXJuYWxMaW5rKHBsYXRmb3JtUmVxdWVzdCwgcmVx
dWVzdC5hbmNob3JUZXh0KCkuY2hhcmFjdGVycygpLCByZXF1ZXN0LmFuY2hvclRleHQoKS5sZW5n
dGgoKSwgbV9jbGllbnRSZWRpcmVjdElzUGVuZGluZyk7CiAgICAgICAgIHJldHVybiBQb2xpY3lJ
Z25vcmU7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131811</attachid>
            <date>2012-03-14 02:15:25 -0700</date>
            <delta_ts>2012-03-14 04:33:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80800-20120314171520.patch</filename>
            <type>text/plain</type>
            <size>14827</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJjNTFmNDJlNTU0Mzc5
OTZjNTEwYTI3NTc1NjliZDc2NzZmZTRjYi4uZTYxNDg5YzQwZGVhZWJhM2Q2OTAyODYxNTg4MGZj
OGVlYjNjNjFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTEyICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVl
c3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKwor
ICAgICAgICBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0IHNldHMgY29va2llcyB0byByZXNvdXJjZVJlcXVlc3QncyBoZWFkZXIKKyAgICAgICAgbGlz
dCB0byBzaG93IGNvb2tpZXMgaW4gaW5zcGVjdG9yLiBBbmQgTmV0d29ya01hbmFnZXI6OnN0YXJ0
Sm9iIHdpbGwgc2V0IGNvb2tpZXMgdG8gcGxhdGZvcm1SZXF1ZXN0J3MKKyAgICAgICAgbV9jb29r
aWVEYXRhIGFnYWluLiBTbyBjb29raWVzIGFyZSBzZXQgdHdvIHRpbWVzLiBUaGlzIGNhdXNlcyBw
ZXJmb3JtYW5jZSBpc3N1ZS4KKworICAgICAgICBNb3Jlb3ZlciwgcGxhdGZvcm1SZXF1ZXN0IHdp
bGwgY29weSBjb29raWVzIGZyb20gdGhlIHJlc291cmNlUmVxdWVzdC4gQW5kIHRoZW4gcGxhdGZv
cm1SZXF1ZXN0IGhhcworICAgICAgICB0aGUgc2FtZSBjb29raWVzIGluIGl0cyBoZWFkZXIgbGlz
dCBhbmQgbV9jb29raWVEYXRhLiBOZXR3b3JrIHdpbGwgdXNlIGhlYWRlciBsaXN0J3MgY29va2ll
cyB3aGljaAorICAgICAgICBhcmUgb3V0cHV0IGFzIGxhdGluMSBvbmx5LiBUaGlzIGNhdXNlcyB0
aGUgcmVncmVzc2lvbiBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODAzMDcuCisKKyAgICAgICAgTm93LCBzZXQgY29va2llcyBpbiBpbml0aWFsaXplUGxhdGZvcm1S
ZXF1ZXN0IHRvIGVuc3VyZSBzZXR0aW5nIGNvb2tpZXMgb25seSBvbmNlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChSZXNvdXJjZVJlcXVlc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFj
a0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6
ZVBsYXRmb3JtUmVxdWVzdCk6CisKIDIwMTItMDMtMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MTAzNTkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyODMxN2Q4YWE4NjIzMDc1
ZGZhNmYwNTc2MTJlNWI0YWNhMDQ5YTAyLi45OGMzNzllYzM2ZWQ3OTBlMThlYzNkYjkwNzE4ZTc4
ODE4MjAxYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0wMy0xMiAgSmFzb24gTGl1ICA8amFzb24ubGl1QHRvcmNobW9iaWxlLmNvbS5jbj4K
KworICAgICAgICBbQmxhY2tCZXJyeV1Db29raWVzIHNob3VsZG4ndCBiZSBzZXQgaW50byBlYWNo
IG9mIHdlYmNvcmUncyByZXF1ZXN0IGFuZCBwbGF0Zm9ybSdzIHJlcXVlc3QuIEFuZCB0aGlzIG1h
a2VzIGEgcmVncmVzc2lvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwODAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKToKKwogMjAxMi0w
My0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE5vdGlm
aWNhdGlvblByZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFn
ZXIuY3BwCmluZGV4IDdjNjI4ZjAwNTdhN2RhZDA2NDIwODBmMmYwNDk0NWE0OWQwOGY5NTkuLmUz
ODMyZTkzM2Y5MzBhZjg2OGRhZTU2NWZkNzY5YWMwZmQ2ZGE5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcApAQCAtMjAsNyArMjAsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgi
CiAKICNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oIgpAQCAtNzMsNyArNzIsNyBAQCBib29sIE5l
dHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIGNvbnN0IFN0cmluZyYgcGFnZUdy
b3VwTmFtZSwgUGFzc1JlZgogICAgICAgICBtX2luaXRpYWxVUkwgPSBLVVJMKCk7CiAKICAgICBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwotICAg
IHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGlzSW5p
dGlhbCk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgZnJhbWUubG9hZGVyKCkgJiYgZnJhbWUubG9hZGVyKCktPmNsaWVudCgpICYmIHN0YXRp
Y19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSo+KGZyYW1lLmxvYWRlcigpLT5jbGll
bnQoKSktPmNvb2tpZXNFbmFibGVkKCksIGlzSW5pdGlhbCwgcmVkaXJlY3RDb3VudCk7CiAKICAg
ICAvLyBBdHRhY2ggYW55IGFwcGxpY2FibGUgYXV0aCBjcmVkZW50aWFscyB0byB0aGUgTmV0d29y
a1JlcXVlc3QuCiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSA9IGd1YXJk
Sm9iLT5nZXRJbnRlcm5hbCgpLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2U7CkBAIC0xMTcsMTYgKzEx
Niw2IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3Qg
U3RyaW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmCiAgICAgICAgICAgICBwbGF0Zm9ybVJlcXVl
c3Quc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbC51c2VyKCkudXRmOCgpLmRhdGEoKSwgY3JlZGVu
dGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCksIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3
b3JrUmVxdWVzdDo6QXV0aEhUVFBCYXNpYyk7CiAgICAgfQogCi0gICAgaWYgKCgmZnJhbWUpICYm
ICgmZnJhbWUpLT5sb2FkZXIoKSAmJiAoJmZyYW1lKS0+bG9hZGVyKCktPmNsaWVudCgpCi0gICAg
ICAgICYmIHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSo+KCgmZnJhbWUp
LT5sb2FkZXIoKS0+Y2xpZW50KCkpLT5jb29raWVzRW5hYmxlZCgpKSB7Ci0gICAgICAgIC8vIFBy
ZXBhcmUgYSBjb29raWUgaGVhZGVyIGlmIHRoZXJlIGFyZSBjb29raWVzIHJlbGF0ZWQgdG8gdGhp
cyB1cmwuCi0gICAgICAgIFN0cmluZyBjb29raWVQYWlycyA9IGNvb2tpZU1hbmFnZXIoKS5nZXRD
b29raWUodXJsLCBXaXRoSHR0cE9ubHlDb29raWVzKTsKLSAgICAgICAgaWYgKCFjb29raWVQYWly
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdGhlIGVuY29k
aW5nIGFuZCBlbmNvZGUgdGhlIGNvb2tpZSBoZWFkZXIgZGF0YSB1c2luZyBsYXRpbjEgb3IgdXRm
OCB0byBzdXBwb3J0IHVuaWNvZGUgY2hhcmFjdGVycy4KLSAgICAgICAgICAgIHBsYXRmb3JtUmVx
dWVzdC5zZXRDb29raWVEYXRhKGNvb2tpZVBhaXJzLmNvbnRhaW5zT25seUxhdGluMSgpID8gY29v
a2llUGFpcnMubGF0aW4xKCkuZGF0YSgpIDogY29va2llUGFpcnMudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KICAgICBpZiAoIXJlcXVlc3Qub3ZlcnJpZGVDb250ZW50VHlwZSgp
LmlzRW1wdHkoKSkKICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LnNldE92ZXJyaWRlQ29udGVudFR5
cGUocmVxdWVzdC5vdmVycmlkZUNvbnRlbnRUeXBlKCkubGF0aW4xKCkuZGF0YSgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291
cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IDcwNzJlYjFmMzUxMzRhZGMzNjQxYmQxNTQxYjE2Y2Rh
YzE4MDE3YWIuLmFkMTkxZmY4NDIzZTM3OGFmMDBkYzhlN2VjMDQ1N2JmN2Y2YzA4YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJj
ZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRNdXN0SGFuZGxlSW50ZXJuYWxseShib29sIG11c3RIYW5kbGVJbnRlcm5hbGx5KSB7IG1f
bXVzdEhhbmRsZUludGVybmFsbHkgPSBtdXN0SGFuZGxlSW50ZXJuYWxseTsgfQogICAgIGJvb2wg
bXVzdEhhbmRsZUludGVybmFsbHkoKSBjb25zdCB7IHJldHVybiBtX211c3RIYW5kbGVJbnRlcm5h
bGx5OyB9CiAKLSAgICB2b2lkIGluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoQmxhY2tCZXJyeTo6
UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwgYm9vbCBpc0luaXRpYWwgPSBmYWxzZSkgY29uc3Q7
CisgICAgdm9pZCBpbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpOZXR3b3JrUmVxdWVzdCYsIGJvb2wgY29va2llc0VuYWJsZWQsIGJvb2wgaXNJbml0aWFsID0g
ZmFsc2UsIGJvb2wgaXNSZWRpcmVjdCA9IGZhbHNlKSBjb25zdDsKICAgICB2b2lkIHNldEZvcmNl
RG93bmxvYWQoYm9vbCBmb3JjZURvd25sb2FkKSB7IG1fZm9yY2VEb3dubG9hZCA9IHRydWU7IH0K
ICAgICBib29sIGZvcmNlRG93bmxvYWQoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlRG93bmxvYWQ7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCmluZGV4
IDViNjc5MmZhN2YxMjI2Y2QwOThiZTllZTI2YjgyYmQ3ZjNjZGJkZmQuLmMzZjVmZGQzZmU2NjM4
MTQyZmFiMDA4NmZlOGZjNGI0YmRiYTY5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VS
ZXF1ZXN0QmxhY2tCZXJyeS5jcHAKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKIAogI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJD
b29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtQ2xpZW50Lmg+CiAj
aW5jbHVkZSA8bmV0d29yay9OZXR3b3JrUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CkBAIC0xMjYsNyArMTI3LDcgQEAgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIFJlc291
cmNlUmVxdWVzdDo6dGFyZ2V0VHlwZUZyb21NaW1lVHlwZShjb25zdCBTdHJpbmcKICAgICByZXR1
cm4gaXRlci0+c2Vjb25kOwogfQogCi12b2lkIFJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBs
YXRmb3JtUmVxdWVzdChOZXR3b3JrUmVxdWVzdCYgcGxhdGZvcm1SZXF1ZXN0LCBib29sIGlzSW5p
dGlhbCkgY29uc3QKK3ZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWFsaXplUGxhdGZvcm1SZXF1
ZXN0KE5ldHdvcmtSZXF1ZXN0JiBwbGF0Zm9ybVJlcXVlc3QsIGJvb2wgY29va2llc0VuYWJsZWQs
IGJvb2wgaXNJbml0aWFsLCBib29sIGlzUmVkaXJlY3QpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhp
cyBpcyB0aGUgaW5pdGlhbCBsb2FkLCBza2lwIHRoZSByZXF1ZXN0IGJvZHkgYW5kIGhlYWRlcnMu
CiAgICAgaWYgKGlzSW5pdGlhbCkKQEAgLTE3Nyw4ICsxNzgsMjIgQEAgdm9pZCBSZXNvdXJjZVJl
cXVlc3Q6OmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoTmV0d29ya1JlcXVlc3QmIHBsYXRmb3Jt
UmVxdWVzdCwKICAgICAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9
IGh0dHBIZWFkZXJGaWVsZHMoKS5iZWdpbigpOyBpdCAhPSBodHRwSGVhZGVyRmllbGRzKCkuZW5k
KCk7ICsraXQpIHsKICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBpdC0+Zmlyc3Q7CiAgICAgICAg
ICAgICBTdHJpbmcgdmFsdWUgPSBpdC0+c2Vjb25kOwotICAgICAgICAgICAgaWYgKCFrZXkuaXNF
bXB0eSgpICYmICF2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1
ZXN0LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5sYXRpbjEoKS5kYXRhKCkp
OworICAgICAgICAgICAgaWYgKCFrZXkuaXNFbXB0eSgpICYmICF2YWx1ZS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHRoZSBlbmNvZGluZyBhbmQgZW5j
b2RlIHRoZSBjb29raWUncyB2YWx1ZSB1c2luZyBsYXRpbjEgb3IgdXRmOCB0byBzdXBwb3J0IHVu
aWNvZGUgY2hhcmFjdGVycy4KKyAgICAgICAgICAgICAgICBpZiAoa2V5LmNvbnRhaW5zKCJDb29r
aWUiKSkKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LmFkZEhlYWRlcihrZXku
bGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5jb250YWluc09ubHlMYXRpbjEoKSA/IHZhbHVlLmxhdGlu
MSgpLmRhdGEoKSA6IHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LmFkZEhlYWRlcihrZXkubGF0aW4x
KCkuZGF0YSgpLCB2YWx1ZS5sYXRpbjEoKS5kYXRhKCkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgLy8gUmVkaXJlY3Rpb24ncyByZXNwb25zZSBtYXkgY29udGFpbiBuZXcg
Y29va2llcywgc28gYWRkIGNvb2tpZXMgYWdhaW4uCisgICAgICAgIC8vIElmIHRoZXJlIGFyZW4n
dCBjb29raWVzIGluIHRoZSBoZWFkZXIgbGlzdCwgd2UgbmVlZCB0cnlpbmcgdG8gYWRkIGNvb2tp
ZXMuCisgICAgICAgIGlmIChjb29raWVzRW5hYmxlZCAmJiAoaXNSZWRpcmVjdCB8fCAhaHR0cEhl
YWRlckZpZWxkKCJDb29raWUiKS5sZW5ndGgoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBQcmVw
YXJlIGEgY29va2llIGhlYWRlciBpZiB0aGVyZSBhcmUgY29va2llcyByZWxhdGVkIHRvIHRoaXMg
dXJsLgorICAgICAgICAgICAgICAgIFN0cmluZyBjb29raWVQYWlycyA9IGNvb2tpZU1hbmFnZXIo
KS5nZXRDb29raWUodXJsKCksIFdpdGhIdHRwT25seUNvb2tpZXMpOworICAgICAgICAgICAgICAg
IGlmICghY29va2llUGFpcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBwbGF0Zm9y
bVJlcXVlc3QuYWRkSGVhZGVyKCJDb29raWUiLCBjb29raWVQYWlycy5jb250YWluc09ubHlMYXRp
bjEoKSA/IGNvb2tpZVBhaXJzLmxhdGluMSgpLmRhdGEoKSA6IGNvb2tpZVBhaXJzLnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTG9jYWxlIGhhcyB0aGUgZm9ybSAiZW4t
VVMiLiBDb25zdHJ1Y3QgYWNjZXB0IGxhbmd1YWdlIGxpa2UgImVuLVVTLCBlbjtxPTAuOCIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDBlZWYxZjNk
YWY3OGVjMmZiZTliZWI3YmY4NjU3MzQ1N2Q4MjE4MzEuLjE1ZDkwNTJiN2Y1YjY3OWU4ZDJiOWJj
MDQzY2QwMGQyNTYwZjY5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnkuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihGcmFtZVAKICAg
ICAvLyBMZXQgdGhlIGNsaWVudCBoYXZlIGEgY2hhbmNlIHRvIHNheSB3aGV0aGVyIHRoaXMgbmF2
aWdhdGlvbiBzaG91bGQKICAgICAvLyBiZSBpZ25vcmVkIG9yIG5vdC4KICAgICBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwotICAgIHJlcXVlc3Qu
aW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGZhbHNlIC8qaXNJbml0
aWFsKi8pOworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJl
cXVlc3QsIGNvb2tpZXNFbmFibGVkKCkpOwogICAgIGlmIChpc01haW5GcmFtZSgpICYmICFtX3dl
YlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoCiAgICAgICAg
IHBsYXRmb3JtUmVxdWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5hdmlnYXRpb25UeXBlKGFj
dGlvbi50eXBlKCkpKSkgewogICAgICAgICBpZiAoYWN0aW9uLnR5cGUoKSA9PSBOYXZpZ2F0aW9u
VHlwZUZvcm1TdWJtaXR0ZWQKQEAgLTI4MCw3ICsyODAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJh
bWVQbwogICAgIC8vIExldCB0aGUgY2xpZW50IGhhdmUgYSBjaGFuY2UgdG8gc2F5IHdoZXRoZXIg
dGhpcyBuYXZpZ2F0aW9uIHNob3VsZAogICAgIC8vIGJlIGlnbm9yZWQgb3Igbm90LgogICAgIEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJlcXVlc3Q7Ci0gICAg
cmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgZmFsc2Ug
Lyppc0luaXRpYWwqLyk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBs
YXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgaWYgKGlzTWFpbkZyYW1lKCkg
JiYgIW1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5hY2NlcHROYXZpZ2F0aW9uUmVxdWVzdCgK
ICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmF2aWdhdGlv
blR5cGUoYWN0aW9uLnR5cGUoKSkpKSB7CiAgICAgICAgIGlmIChhY3Rpb24udHlwZSgpID09IE5h
dmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZCB8fCBhY3Rpb24udHlwZSgpID09IE5hdmlnYXRpb25U
eXBlRm9ybVJlc3VibWl0dGVkKQpAQCAtOTM4LDIxICs5MzgsMTUgQEAgdm9pZCBGcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVy
KiBkb2NMb2EKIAogICAgIC8vIEFueSBwcm9jZXNzaW5nIHdoaWNoIGlzIGRvbmUgZm9yIGFsbCBs
b2FkcyAoYm90aCBtYWluIGFuZCBzdWJyZXNvdXJjZSkgc2hvdWxkIGdvIGhlcmUuCiAgICAgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0IHBsYXRmb3JtUmVxdWVzdDsKLSAgICBy
ZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBmYWxzZSAv
KmlzSW5pdGlhbCovKTsKKyAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxh
dGZvcm1SZXF1ZXN0LCBjb29raWVzRW5hYmxlZCgpKTsKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5t
X2NsaWVudC0+cG9wdWxhdGVDdXN0b21IZWFkZXJzKHBsYXRmb3JtUmVxdWVzdCk7CiAgICAgY29u
c3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJMaXN0JiBoZWFk
ZXJMaXN0cyA9IHBsYXRmb3JtUmVxdWVzdC5nZXRIZWFkZXJMaXN0UmVmKCk7CiAgICAgZm9yIChC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3Q6OkhlYWRlckxpc3Q6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gaGVhZGVyTGlzdHMuYmVnaW4oKTsgaXQgIT0gaGVhZGVyTGlzdHMuZW5kKCk7
ICsraXQpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgaGVhZGVyU3RyaW5nID0gaXQtPmZpcnN0Owog
ICAgICAgICBzdGQ6OnN0cmluZyBoZWFkZXJWYWx1ZVN0cmluZyA9IGl0LT5zZWNvbmQ7Ci0gICAg
ICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJTdHJpbmcuY19zdHIo
KSksIFN0cmluZyhoZWFkZXJWYWx1ZVN0cmluZy5jX3N0cigpKSk7Ci0gICAgfQotICAgIGlmIChj
b29raWVzRW5hYmxlZCgpKSB7Ci0gICAgICAgIFN0cmluZyBjb29raWVQYWlycyA9IGNvb2tpZU1h
bmFnZXIoKS5nZXRDb29raWUocmVxdWVzdC51cmwoKSwgV2l0aEh0dHBPbmx5Q29va2llcyk7Ci0g
ICAgICAgIGlmICghY29va2llUGFpcnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAvLyBXZSBv
bmx5IG1vZGlmeSB0aGUgV2ViQ29yZSByZXF1ZXN0IHRvIG1ha2UgdGhlIGNvb2tpZXMgdmlzaWJs
ZSBpbiBpbnNwZWN0b3IuCi0gICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChT
dHJpbmcoIkNvb2tpZSIpLCBjb29raWVQYWlycyk7Ci0gICAgICAgIH0KKyAgICAgICAgcmVxdWVz
dC5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayho
ZWFkZXJTdHJpbmcuZGF0YSgpLCBoZWFkZXJTdHJpbmcubGVuZ3RoKCkpLCBTdHJpbmc6OmZyb21V
VEY4V2l0aExhdGluMUZhbGxiYWNrKGhlYWRlclZhbHVlU3RyaW5nLmRhdGEoKSwgaGVhZGVyVmFs
dWVTdHJpbmcubGVuZ3RoKCkpKTsKICAgICB9CisKICAgICBpZiAoIWlzTWFpblJlc291cmNlTG9h
ZCkgewogICAgICAgICAvLyBEbyBub3RoaW5nIGZvciBub3cuCiAgICAgICAgIC8vIEFueSBwcm9j
ZXNzaW5nIHdoaWNoIGlzIGRvbmUgb25seSBmb3Igc3VicmVzb3VyY2VzIHNob3VsZCBnbyBoZXJl
LgpAQCAtMTA5MSw3ICsxMDg1LDcgQEAgUG9saWN5QWN0aW9uIEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKGNvbnN0IFJlc28KICAgICAgICAg
ICAgICYmICFyZXF1ZXN0Lm11c3RIYW5kbGVJbnRlcm5hbGx5KCkKICAgICAgICAgICAgICYmICFp
c0ZyYWdtZW50U2Nyb2xsKSB7CiAgICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3Jr
UmVxdWVzdCBwbGF0Zm9ybVJlcXVlc3Q7Ci0gICAgICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRm
b3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QpOworICAgICAgICByZXF1ZXN0LmluaXRpYWxpemVQ
bGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBjb29raWVzRW5hYmxlZCgpKTsKICAgICAg
ICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmhhbmRsZUV4dGVybmFsTGluayhwbGF0Zm9y
bVJlcXVlc3QsIHJlcXVlc3QuYW5jaG9yVGV4dCgpLmNoYXJhY3RlcnMoKSwgcmVxdWVzdC5hbmNo
b3JUZXh0KCkubGVuZ3RoKCksIG1fY2xpZW50UmVkaXJlY3RJc1BlbmRpbmcpOwogICAgICAgICBy
ZXR1cm4gUG9saWN5SWdub3JlOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQxZjk5MGZlYTBjZjNiMzA2MmU3YWU0YzI2MzA4MjFhYjIx
YzVlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9y
ZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDYwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9j
b29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1yZXN1bHQucGhwIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1yZXN1bHQucGhwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE3YjdmODEwZWJmOWNkY2M3N2YyYTUwNWU5Nzc2YTg2NjQ3ZDI4NmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3Nl
dFV0ZjhDb29raWVzLXJlc3VsdC5waHAKQEAgLTAsMCArMSwxNyBAQAorPD9waHAgaGVhZGVyKCAn
Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnKTsgPz4KKzxodG1sPgorPGJv
ZHk+Cis8cD4KKzw/cGhwCisgICAgZWNobyAiPHA+cGhwOiBzb21lIHV0ZjggY2hhcmFjdGVyczog
VVRGLTggw6bDuMOlIOS4reWbvTwvcD4iOworICAgIGVjaG8gIjxwPmNvb2tpZSBzZXQgdGhyb3Vn
aCBwaHAsIHJlYWQgdGhyb3VnaCBwaHA6ICIuJF9DT09LSUVbInBocF9jb29raWUiXS4iPC9wPiI7
CisgICAgZWNobyAiPHA+Y29va2llIHNldCB0aHJvdWdoIGpzLCByZWFkIHRocm91Z2ggcGhwOiAi
LiRfQ09PS0lFWyJqc19jb29raWUiXS4iPC9wPiI7Cis/PgorPC9wPgorPHA+Cis8c2NyaXB0Pgor
ICAgIGRvY3VtZW50LndyaXRlKCJjb29raWVzIHJlYWQgdGhyb3VnaCBqczogIitkb2N1bWVudC5j
b29raWUpOworPC9zY3JpcHQ+Cis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLnBo
cCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tp
ZXMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ3ZGE3Y2FlN2Q4YWM0MzQ5NzUxYjY2MjQ5NTVlYTEzNTEzOGIx
NTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVz
b3VyY2VzL3NldFV0ZjhDb29raWVzLnBocApAQCAtMCwwICsxLDggQEAKKzxzY3JpcHQ+CisgICAg
ZG9jdW1lbnQuY29va2llPSJqc19jb29raWU9VVRGLTggw6bDuMOlIOS4reWbvTsgZXhwaXJlcz1N
b25kYXksIDA0LUFwci0yMDIwIDA1OjAwOjAwIEdNVCI7CisgICAgd2luZG93LmxvY2F0aW9uLmhy
ZWY9J3NldFV0ZjhDb29raWVzLXJlc3VsdC5waHAnCis8L3NjcmlwdD4KKzw/cGhwIAorICAgIHNl
dGNvb2tpZSgicGhwX2Nvb2tpZSIsICJVVEYtOCDDpsO4w6Ug5Lit5Zu9IiwgdGltZSgpKzM2MDAp
OworICAgIGhlYWRlciggJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04JyAp
OyAKKz8+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131827</attachid>
            <date>2012-03-14 04:45:28 -0700</date>
            <delta_ts>2012-03-15 01:22:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80800-20120314194518.patch</filename>
            <type>text/plain</type>
            <size>14828</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJjNTFmNDJlNTU0Mzc5
OTZjNTEwYTI3NTc1NjliZDc2NzZmZTRjYi4uZTYxNDg5YzQwZGVhZWJhM2Q2OTAyODYxNTg4MGZj
OGVlYjNjNjFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTEyICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVl
c3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKwor
ICAgICAgICBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0IHNldHMgY29va2llcyB0byByZXNvdXJjZVJlcXVlc3QncyBoZWFkZXIKKyAgICAgICAgbGlz
dCB0byBzaG93IGNvb2tpZXMgaW4gaW5zcGVjdG9yLiBBbmQgTmV0d29ya01hbmFnZXI6OnN0YXJ0
Sm9iIHdpbGwgc2V0IGNvb2tpZXMgdG8gcGxhdGZvcm1SZXF1ZXN0J3MKKyAgICAgICAgbV9jb29r
aWVEYXRhIGFnYWluLiBTbyBjb29raWVzIGFyZSBzZXQgdHdvIHRpbWVzLiBUaGlzIGNhdXNlcyBw
ZXJmb3JtYW5jZSBpc3N1ZS4KKworICAgICAgICBNb3Jlb3ZlciwgcGxhdGZvcm1SZXF1ZXN0IHdp
bGwgY29weSBjb29raWVzIGZyb20gdGhlIHJlc291cmNlUmVxdWVzdC4gQW5kIHRoZW4gcGxhdGZv
cm1SZXF1ZXN0IGhhcworICAgICAgICB0aGUgc2FtZSBjb29raWVzIGluIGl0cyBoZWFkZXIgbGlz
dCBhbmQgbV9jb29raWVEYXRhLiBOZXR3b3JrIHdpbGwgdXNlIGhlYWRlciBsaXN0J3MgY29va2ll
cyB3aGljaAorICAgICAgICBhcmUgb3V0cHV0IGFzIGxhdGluMSBvbmx5LiBUaGlzIGNhdXNlcyB0
aGUgcmVncmVzc2lvbiBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODAzMDcuCisKKyAgICAgICAgTm93LCBzZXQgY29va2llcyBpbiBpbml0aWFsaXplUGxhdGZvcm1S
ZXF1ZXN0IHRvIGVuc3VyZSBzZXR0aW5nIGNvb2tpZXMgb25seSBvbmNlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChSZXNvdXJjZVJlcXVlc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFj
a0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6
ZVBsYXRmb3JtUmVxdWVzdCk6CisKIDIwMTItMDMtMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MTAzNTkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyODMxN2Q4YWE4NjIzMDc1
ZGZhNmYwNTc2MTJlNWI0YWNhMDQ5YTAyLi45OGMzNzllYzM2ZWQ3OTBlMThlYzNkYjkwNzE4ZTc4
ODE4MjAxYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0wMy0xMiAgSmFzb24gTGl1ICA8amFzb24ubGl1QHRvcmNobW9iaWxlLmNvbS5jbj4K
KworICAgICAgICBbQmxhY2tCZXJyeV1Db29raWVzIHNob3VsZG4ndCBiZSBzZXQgaW50byBlYWNo
IG9mIHdlYmNvcmUncyByZXF1ZXN0IGFuZCBwbGF0Zm9ybSdzIHJlcXVlc3QuIEFuZCB0aGlzIG1h
a2VzIGEgcmVncmVzc2lvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwODAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKToKKwogMjAxMi0w
My0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE5vdGlm
aWNhdGlvblByZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFn
ZXIuY3BwCmluZGV4IDdjNjI4ZjAwNTdhN2RhZDA2NDIwODBmMmYwNDk0NWE0OWQwOGY5NTkuLmUz
ODMyZTkzM2Y5MzBhZjg2OGRhZTU2NWZkNzY5YWMwZmQ2ZGE5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcApAQCAtMjAsNyArMjAsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgi
CiAKICNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oIgpAQCAtNzMsNyArNzIsNyBAQCBib29sIE5l
dHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIGNvbnN0IFN0cmluZyYgcGFnZUdy
b3VwTmFtZSwgUGFzc1JlZgogICAgICAgICBtX2luaXRpYWxVUkwgPSBLVVJMKCk7CiAKICAgICBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwotICAg
IHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGlzSW5p
dGlhbCk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgZnJhbWUubG9hZGVyKCkgJiYgZnJhbWUubG9hZGVyKCktPmNsaWVudCgpICYmIHN0YXRp
Y19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSo+KGZyYW1lLmxvYWRlcigpLT5jbGll
bnQoKSktPmNvb2tpZXNFbmFibGVkKCksIGlzSW5pdGlhbCwgcmVkaXJlY3RDb3VudCk7CiAKICAg
ICAvLyBBdHRhY2ggYW55IGFwcGxpY2FibGUgYXV0aCBjcmVkZW50aWFscyB0byB0aGUgTmV0d29y
a1JlcXVlc3QuCiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSA9IGd1YXJk
Sm9iLT5nZXRJbnRlcm5hbCgpLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2U7CkBAIC0xMTcsMTYgKzEx
Niw2IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3Qg
U3RyaW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmCiAgICAgICAgICAgICBwbGF0Zm9ybVJlcXVl
c3Quc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbC51c2VyKCkudXRmOCgpLmRhdGEoKSwgY3JlZGVu
dGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCksIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3
b3JrUmVxdWVzdDo6QXV0aEhUVFBCYXNpYyk7CiAgICAgfQogCi0gICAgaWYgKCgmZnJhbWUpICYm
ICgmZnJhbWUpLT5sb2FkZXIoKSAmJiAoJmZyYW1lKS0+bG9hZGVyKCktPmNsaWVudCgpCi0gICAg
ICAgICYmIHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSo+KCgmZnJhbWUp
LT5sb2FkZXIoKS0+Y2xpZW50KCkpLT5jb29raWVzRW5hYmxlZCgpKSB7Ci0gICAgICAgIC8vIFBy
ZXBhcmUgYSBjb29raWUgaGVhZGVyIGlmIHRoZXJlIGFyZSBjb29raWVzIHJlbGF0ZWQgdG8gdGhp
cyB1cmwuCi0gICAgICAgIFN0cmluZyBjb29raWVQYWlycyA9IGNvb2tpZU1hbmFnZXIoKS5nZXRD
b29raWUodXJsLCBXaXRoSHR0cE9ubHlDb29raWVzKTsKLSAgICAgICAgaWYgKCFjb29raWVQYWly
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdGhlIGVuY29k
aW5nIGFuZCBlbmNvZGUgdGhlIGNvb2tpZSBoZWFkZXIgZGF0YSB1c2luZyBsYXRpbjEgb3IgdXRm
OCB0byBzdXBwb3J0IHVuaWNvZGUgY2hhcmFjdGVycy4KLSAgICAgICAgICAgIHBsYXRmb3JtUmVx
dWVzdC5zZXRDb29raWVEYXRhKGNvb2tpZVBhaXJzLmNvbnRhaW5zT25seUxhdGluMSgpID8gY29v
a2llUGFpcnMubGF0aW4xKCkuZGF0YSgpIDogY29va2llUGFpcnMudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KICAgICBpZiAoIXJlcXVlc3Qub3ZlcnJpZGVDb250ZW50VHlwZSgp
LmlzRW1wdHkoKSkKICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LnNldE92ZXJyaWRlQ29udGVudFR5
cGUocmVxdWVzdC5vdmVycmlkZUNvbnRlbnRUeXBlKCkubGF0aW4xKCkuZGF0YSgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291
cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IDcwNzJlYjFmMzUxMzRhZGMzNjQxYmQxNTQxYjE2Y2Rh
YzE4MDE3YWIuLmFkMTkxZmY4NDIzZTM3OGFmMDBkYzhlN2VjMDQ1N2JmN2Y2YzA4YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJj
ZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRNdXN0SGFuZGxlSW50ZXJuYWxseShib29sIG11c3RIYW5kbGVJbnRlcm5hbGx5KSB7IG1f
bXVzdEhhbmRsZUludGVybmFsbHkgPSBtdXN0SGFuZGxlSW50ZXJuYWxseTsgfQogICAgIGJvb2wg
bXVzdEhhbmRsZUludGVybmFsbHkoKSBjb25zdCB7IHJldHVybiBtX211c3RIYW5kbGVJbnRlcm5h
bGx5OyB9CiAKLSAgICB2b2lkIGluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoQmxhY2tCZXJyeTo6
UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwgYm9vbCBpc0luaXRpYWwgPSBmYWxzZSkgY29uc3Q7
CisgICAgdm9pZCBpbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpOZXR3b3JrUmVxdWVzdCYsIGJvb2wgY29va2llc0VuYWJsZWQsIGJvb2wgaXNJbml0aWFsID0g
ZmFsc2UsIGJvb2wgaXNSZWRpcmVjdCA9IGZhbHNlKSBjb25zdDsKICAgICB2b2lkIHNldEZvcmNl
RG93bmxvYWQoYm9vbCBmb3JjZURvd25sb2FkKSB7IG1fZm9yY2VEb3dubG9hZCA9IHRydWU7IH0K
ICAgICBib29sIGZvcmNlRG93bmxvYWQoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlRG93bmxvYWQ7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCmluZGV4
IDViNjc5MmZhN2YxMjI2Y2QwOThiZTllZTI2YjgyYmQ3ZjNjZGJkZmQuLmMzZjVmZGQzZmU2NjM4
MTQyZmFiMDA4NmZlOGZjNGI0YmRiYTY5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VS
ZXF1ZXN0QmxhY2tCZXJyeS5jcHAKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKIAogI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJD
b29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtQ2xpZW50Lmg+CiAj
aW5jbHVkZSA8bmV0d29yay9OZXR3b3JrUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CkBAIC0xMjYsNyArMTI3LDcgQEAgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIFJlc291
cmNlUmVxdWVzdDo6dGFyZ2V0VHlwZUZyb21NaW1lVHlwZShjb25zdCBTdHJpbmcKICAgICByZXR1
cm4gaXRlci0+c2Vjb25kOwogfQogCi12b2lkIFJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBs
YXRmb3JtUmVxdWVzdChOZXR3b3JrUmVxdWVzdCYgcGxhdGZvcm1SZXF1ZXN0LCBib29sIGlzSW5p
dGlhbCkgY29uc3QKK3ZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWFsaXplUGxhdGZvcm1SZXF1
ZXN0KE5ldHdvcmtSZXF1ZXN0JiBwbGF0Zm9ybVJlcXVlc3QsIGJvb2wgY29va2llc0VuYWJsZWQs
IGJvb2wgaXNJbml0aWFsLCBib29sIGlzUmVkaXJlY3QpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhp
cyBpcyB0aGUgaW5pdGlhbCBsb2FkLCBza2lwIHRoZSByZXF1ZXN0IGJvZHkgYW5kIGhlYWRlcnMu
CiAgICAgaWYgKGlzSW5pdGlhbCkKQEAgLTE3Nyw4ICsxNzgsMjIgQEAgdm9pZCBSZXNvdXJjZVJl
cXVlc3Q6OmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoTmV0d29ya1JlcXVlc3QmIHBsYXRmb3Jt
UmVxdWVzdCwKICAgICAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9
IGh0dHBIZWFkZXJGaWVsZHMoKS5iZWdpbigpOyBpdCAhPSBodHRwSGVhZGVyRmllbGRzKCkuZW5k
KCk7ICsraXQpIHsKICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBpdC0+Zmlyc3Q7CiAgICAgICAg
ICAgICBTdHJpbmcgdmFsdWUgPSBpdC0+c2Vjb25kOwotICAgICAgICAgICAgaWYgKCFrZXkuaXNF
bXB0eSgpICYmICF2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1
ZXN0LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5sYXRpbjEoKS5kYXRhKCkp
OworICAgICAgICAgICAgaWYgKCFrZXkuaXNFbXB0eSgpICYmICF2YWx1ZS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHRoZSBlbmNvZGluZyBhbmQgZW5j
b2RlIHRoZSBjb29raWUncyB2YWx1ZSB1c2luZyBsYXRpbjEgb3IgdXRmOCB0byBzdXBwb3J0IHVu
aWNvZGUgY2hhcmFjdGVycy4KKyAgICAgICAgICAgICAgICBpZiAoa2V5LmNvbnRhaW5zKCJDb29r
aWUiKSkKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LmFkZEhlYWRlcihrZXku
bGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5jb250YWluc09ubHlMYXRpbjEoKSA/IHZhbHVlLmxhdGlu
MSgpLmRhdGEoKSA6IHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LmFkZEhlYWRlcihrZXkubGF0aW4x
KCkuZGF0YSgpLCB2YWx1ZS5sYXRpbjEoKS5kYXRhKCkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgLy8gUmVkaXJlY3Rpb24ncyByZXNwb25zZSBtYXkgY29udGFpbiBuZXcg
Y29va2llcywgc28gYWRkIGNvb2tpZXMgYWdhaW4uCisgICAgICAgIC8vIElmIHRoZXJlIGFyZW4n
dCBjb29raWVzIGluIHRoZSBoZWFkZXIgbGlzdCwgd2UgbmVlZCB0cnlpbmcgdG8gYWRkIGNvb2tp
ZXMuCisgICAgICAgIGlmIChjb29raWVzRW5hYmxlZCAmJiAoaXNSZWRpcmVjdCB8fCAhaHR0cEhl
YWRlckZpZWxkKCJDb29raWUiKS5sZW5ndGgoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBQcmVw
YXJlIGEgY29va2llIGhlYWRlciBpZiB0aGVyZSBhcmUgY29va2llcyByZWxhdGVkIHRvIHRoaXMg
dXJsLgorICAgICAgICAgICAgICAgIFN0cmluZyBjb29raWVQYWlycyA9IGNvb2tpZU1hbmFnZXIo
KS5nZXRDb29raWUodXJsKCksIFdpdGhIdHRwT25seUNvb2tpZXMpOworICAgICAgICAgICAgICAg
IGlmICghY29va2llUGFpcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBwbGF0Zm9y
bVJlcXVlc3QuYWRkSGVhZGVyKCJDb29raWUiLCBjb29raWVQYWlycy5jb250YWluc09ubHlMYXRp
bjEoKSA/IGNvb2tpZVBhaXJzLmxhdGluMSgpLmRhdGEoKSA6IGNvb2tpZVBhaXJzLnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTG9jYWxlIGhhcyB0aGUgZm9ybSAiZW4t
VVMiLiBDb25zdHJ1Y3QgYWNjZXB0IGxhbmd1YWdlIGxpa2UgImVuLVVTLCBlbjtxPTAuOCIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDBlZWYxZjNk
YWY3OGVjMmZiZTliZWI3YmY4NjU3MzQ1N2Q4MjE4MzEuLjE1ZDkwNTJiN2Y1YjY3OWU4ZDJiOWJj
MDQzY2QwMGQyNTYwZjY5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnkuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihGcmFtZVAKICAg
ICAvLyBMZXQgdGhlIGNsaWVudCBoYXZlIGEgY2hhbmNlIHRvIHNheSB3aGV0aGVyIHRoaXMgbmF2
aWdhdGlvbiBzaG91bGQKICAgICAvLyBiZSBpZ25vcmVkIG9yIG5vdC4KICAgICBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwotICAgIHJlcXVlc3Qu
aW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGZhbHNlIC8qaXNJbml0
aWFsKi8pOworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJl
cXVlc3QsIGNvb2tpZXNFbmFibGVkKCkpOwogICAgIGlmIChpc01haW5GcmFtZSgpICYmICFtX3dl
YlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoCiAgICAgICAg
IHBsYXRmb3JtUmVxdWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5hdmlnYXRpb25UeXBlKGFj
dGlvbi50eXBlKCkpKSkgewogICAgICAgICBpZiAoYWN0aW9uLnR5cGUoKSA9PSBOYXZpZ2F0aW9u
VHlwZUZvcm1TdWJtaXR0ZWQKQEAgLTI4MCw3ICsyODAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJh
bWVQbwogICAgIC8vIExldCB0aGUgY2xpZW50IGhhdmUgYSBjaGFuY2UgdG8gc2F5IHdoZXRoZXIg
dGhpcyBuYXZpZ2F0aW9uIHNob3VsZAogICAgIC8vIGJlIGlnbm9yZWQgb3Igbm90LgogICAgIEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJlcXVlc3Q7Ci0gICAg
cmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgZmFsc2Ug
Lyppc0luaXRpYWwqLyk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBs
YXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgaWYgKGlzTWFpbkZyYW1lKCkg
JiYgIW1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5hY2NlcHROYXZpZ2F0aW9uUmVxdWVzdCgK
ICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmF2aWdhdGlv
blR5cGUoYWN0aW9uLnR5cGUoKSkpKSB7CiAgICAgICAgIGlmIChhY3Rpb24udHlwZSgpID09IE5h
dmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZCB8fCBhY3Rpb24udHlwZSgpID09IE5hdmlnYXRpb25U
eXBlRm9ybVJlc3VibWl0dGVkKQpAQCAtOTM4LDIxICs5MzgsMTUgQEAgdm9pZCBGcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVy
KiBkb2NMb2EKIAogICAgIC8vIEFueSBwcm9jZXNzaW5nIHdoaWNoIGlzIGRvbmUgZm9yIGFsbCBs
b2FkcyAoYm90aCBtYWluIGFuZCBzdWJyZXNvdXJjZSkgc2hvdWxkIGdvIGhlcmUuCiAgICAgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0IHBsYXRmb3JtUmVxdWVzdDsKLSAgICBy
ZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBmYWxzZSAv
KmlzSW5pdGlhbCovKTsKKyAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxh
dGZvcm1SZXF1ZXN0LCBjb29raWVzRW5hYmxlZCgpKTsKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5t
X2NsaWVudC0+cG9wdWxhdGVDdXN0b21IZWFkZXJzKHBsYXRmb3JtUmVxdWVzdCk7CiAgICAgY29u
c3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJMaXN0JiBoZWFk
ZXJMaXN0cyA9IHBsYXRmb3JtUmVxdWVzdC5nZXRIZWFkZXJMaXN0UmVmKCk7CiAgICAgZm9yIChC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3Q6OkhlYWRlckxpc3Q6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gaGVhZGVyTGlzdHMuYmVnaW4oKTsgaXQgIT0gaGVhZGVyTGlzdHMuZW5kKCk7
ICsraXQpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgaGVhZGVyU3RyaW5nID0gaXQtPmZpcnN0Owog
ICAgICAgICBzdGQ6OnN0cmluZyBoZWFkZXJWYWx1ZVN0cmluZyA9IGl0LT5zZWNvbmQ7Ci0gICAg
ICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJTdHJpbmcuY19zdHIo
KSksIFN0cmluZyhoZWFkZXJWYWx1ZVN0cmluZy5jX3N0cigpKSk7Ci0gICAgfQotICAgIGlmIChj
b29raWVzRW5hYmxlZCgpKSB7Ci0gICAgICAgIFN0cmluZyBjb29raWVQYWlycyA9IGNvb2tpZU1h
bmFnZXIoKS5nZXRDb29raWUocmVxdWVzdC51cmwoKSwgV2l0aEh0dHBPbmx5Q29va2llcyk7Ci0g
ICAgICAgIGlmICghY29va2llUGFpcnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAvLyBXZSBv
bmx5IG1vZGlmeSB0aGUgV2ViQ29yZSByZXF1ZXN0IHRvIG1ha2UgdGhlIGNvb2tpZXMgdmlzaWJs
ZSBpbiBpbnNwZWN0b3IuCi0gICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChT
dHJpbmcoIkNvb2tpZSIpLCBjb29raWVQYWlycyk7Ci0gICAgICAgIH0KKyAgICAgICAgcmVxdWVz
dC5zZXRIVFRQSGVhZGVyRmllbGQoU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayho
ZWFkZXJTdHJpbmcuZGF0YSgpLCBoZWFkZXJTdHJpbmcubGVuZ3RoKCkpLCBTdHJpbmc6OmZyb21V
VEY4V2l0aExhdGluMUZhbGxiYWNrKGhlYWRlclZhbHVlU3RyaW5nLmRhdGEoKSwgaGVhZGVyVmFs
dWVTdHJpbmcubGVuZ3RoKCkpKTsKICAgICB9CisKICAgICBpZiAoIWlzTWFpblJlc291cmNlTG9h
ZCkgewogICAgICAgICAvLyBEbyBub3RoaW5nIGZvciBub3cuCiAgICAgICAgIC8vIEFueSBwcm9j
ZXNzaW5nIHdoaWNoIGlzIGRvbmUgb25seSBmb3Igc3VicmVzb3VyY2VzIHNob3VsZCBnbyBoZXJl
LgpAQCAtMTA5MSw3ICsxMDg1LDcgQEAgUG9saWN5QWN0aW9uIEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKGNvbnN0IFJlc28KICAgICAgICAg
ICAgICYmICFyZXF1ZXN0Lm11c3RIYW5kbGVJbnRlcm5hbGx5KCkKICAgICAgICAgICAgICYmICFp
c0ZyYWdtZW50U2Nyb2xsKSB7CiAgICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3Jr
UmVxdWVzdCBwbGF0Zm9ybVJlcXVlc3Q7Ci0gICAgICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRm
b3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QpOworICAgICAgICByZXF1ZXN0LmluaXRpYWxpemVQ
bGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBjb29raWVzRW5hYmxlZCgpKTsKICAgICAg
ICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmhhbmRsZUV4dGVybmFsTGluayhwbGF0Zm9y
bVJlcXVlc3QsIHJlcXVlc3QuYW5jaG9yVGV4dCgpLmNoYXJhY3RlcnMoKSwgcmVxdWVzdC5hbmNo
b3JUZXh0KCkubGVuZ3RoKCksIG1fY2xpZW50UmVkaXJlY3RJc1BlbmRpbmcpOwogICAgICAgICBy
ZXR1cm4gUG9saWN5SWdub3JlOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQxZjk5MGZlYTBjZjNiMzA2MmU3YWU0YzI2MzA4MjFhYjIx
YzVlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9y
ZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDYwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9j
b29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1yZXN1bHQucGhwIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1yZXN1bHQucGhwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE3YjdmODEwZWJmOWNkY2M3N2YyYTUwNWU5Nzc2YTg2NjQ3ZDI4NmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3Nl
dFV0ZjhDb29raWVzLXJlc3VsdC5waHAKQEAgLTAsMCArMSwxNyBAQAorPD9waHAgaGVhZGVyKCAn
Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnKTsgPz4KKzxodG1sPgorPGJv
ZHk+Cis8cD4KKzw/cGhwCisgICAgZWNobyAiPHA+cGhwOiBzb21lIHV0ZjggY2hhcmFjdGVyczog
VVRGLTggw6bDuMOlIOS4reWbvTwvcD4iOworICAgIGVjaG8gIjxwPmNvb2tpZSBzZXQgdGhyb3Vn
aCBwaHAsIHJlYWQgdGhyb3VnaCBwaHA6ICIuJF9DT09LSUVbInBocF9jb29raWUiXS4iPC9wPiI7
CisgICAgZWNobyAiPHA+Y29va2llIHNldCB0aHJvdWdoIGpzLCByZWFkIHRocm91Z2ggcGhwOiAi
LiRfQ09PS0lFWyJqc19jb29raWUiXS4iPC9wPiI7Cis/PgorPC9wPgorPHA+Cis8c2NyaXB0Pgor
ICAgIGRvY3VtZW50LndyaXRlKCJjb29raWVzIHJlYWQgdGhyb3VnaCBqczogIitkb2N1bWVudC5j
b29raWUpOworPC9zY3JpcHQ+Cis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLnBo
cCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tp
ZXMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc3YTZmOTczMWU2OGE1ODFkYWI3MzMzZWExYTYyZjMzOWMwMTc2
MDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVz
b3VyY2VzL3NldFV0ZjhDb29raWVzLnBocApAQCAtMCwwICsxLDggQEAKKzxzY3JpcHQ+CisgICAg
ZG9jdW1lbnQuY29va2llPSJqc19jb29raWU9VVRGLTggw6bDuMOlIOS4reWbvTsgZXhwaXJlcz1N
b25kYXksIDA0LUFwci0yMDIwIDA1OjAwOjAwIEdNVCI7CisgICAgd2luZG93LmxvY2F0aW9uLmhy
ZWY9J3NldFV0ZjhDb29raWVzLXJlc3VsdC5waHAnOworPC9zY3JpcHQ+Cis8P3BocCAKKyAgICBz
ZXRjb29raWUoInBocF9jb29raWUiLCAiVVRGLTggw6bDuMOlIOS4reWbvSIsIHRpbWUoKSszNjAw
KTsKKyAgICBoZWFkZXIoICdDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCcg
KTsgCis/Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132001</attachid>
            <date>2012-03-15 01:23:07 -0700</date>
            <delta_ts>2012-03-19 22:45:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80800-20120315162305.patch</filename>
            <type>text/plain</type>
            <size>14798</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJjNTFmNDJlNTU0Mzc5
OTZjNTEwYTI3NTc1NjliZDc2NzZmZTRjYi4uZTYxNDg5YzQwZGVhZWJhM2Q2OTAyODYxNTg4MGZj
OGVlYjNjNjFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTEyICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVl
c3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKwor
ICAgICAgICBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0IHNldHMgY29va2llcyB0byByZXNvdXJjZVJlcXVlc3QncyBoZWFkZXIKKyAgICAgICAgbGlz
dCB0byBzaG93IGNvb2tpZXMgaW4gaW5zcGVjdG9yLiBBbmQgTmV0d29ya01hbmFnZXI6OnN0YXJ0
Sm9iIHdpbGwgc2V0IGNvb2tpZXMgdG8gcGxhdGZvcm1SZXF1ZXN0J3MKKyAgICAgICAgbV9jb29r
aWVEYXRhIGFnYWluLiBTbyBjb29raWVzIGFyZSBzZXQgdHdvIHRpbWVzLiBUaGlzIGNhdXNlcyBw
ZXJmb3JtYW5jZSBpc3N1ZS4KKworICAgICAgICBNb3Jlb3ZlciwgcGxhdGZvcm1SZXF1ZXN0IHdp
bGwgY29weSBjb29raWVzIGZyb20gdGhlIHJlc291cmNlUmVxdWVzdC4gQW5kIHRoZW4gcGxhdGZv
cm1SZXF1ZXN0IGhhcworICAgICAgICB0aGUgc2FtZSBjb29raWVzIGluIGl0cyBoZWFkZXIgbGlz
dCBhbmQgbV9jb29raWVEYXRhLiBOZXR3b3JrIHdpbGwgdXNlIGhlYWRlciBsaXN0J3MgY29va2ll
cyB3aGljaAorICAgICAgICBhcmUgb3V0cHV0IGFzIGxhdGluMSBvbmx5LiBUaGlzIGNhdXNlcyB0
aGUgcmVncmVzc2lvbiBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODAzMDcuCisKKyAgICAgICAgTm93LCBzZXQgY29va2llcyBpbiBpbml0aWFsaXplUGxhdGZvcm1S
ZXF1ZXN0IHRvIGVuc3VyZSBzZXR0aW5nIGNvb2tpZXMgb25seSBvbmNlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChSZXNvdXJjZVJlcXVlc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFj
a0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6
ZVBsYXRmb3JtUmVxdWVzdCk6CisKIDIwMTItMDMtMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MTAzNTkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyODMxN2Q4YWE4NjIzMDc1
ZGZhNmYwNTc2MTJlNWI0YWNhMDQ5YTAyLi45OGMzNzllYzM2ZWQ3OTBlMThlYzNkYjkwNzE4ZTc4
ODE4MjAxYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0wMy0xMiAgSmFzb24gTGl1ICA8amFzb24ubGl1QHRvcmNobW9iaWxlLmNvbS5jbj4K
KworICAgICAgICBbQmxhY2tCZXJyeV1Db29raWVzIHNob3VsZG4ndCBiZSBzZXQgaW50byBlYWNo
IG9mIHdlYmNvcmUncyByZXF1ZXN0IGFuZCBwbGF0Zm9ybSdzIHJlcXVlc3QuIEFuZCB0aGlzIG1h
a2VzIGEgcmVncmVzc2lvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwODAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKToKKwogMjAxMi0w
My0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE5vdGlm
aWNhdGlvblByZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFn
ZXIuY3BwCmluZGV4IDdjNjI4ZjAwNTdhN2RhZDA2NDIwODBmMmYwNDk0NWE0OWQwOGY5NTkuLmUz
ODMyZTkzM2Y5MzBhZjg2OGRhZTU2NWZkNzY5YWMwZmQ2ZGE5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcApAQCAtMjAsNyArMjAsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgi
CiAKICNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oIgpAQCAtNzMsNyArNzIsNyBAQCBib29sIE5l
dHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIGNvbnN0IFN0cmluZyYgcGFnZUdy
b3VwTmFtZSwgUGFzc1JlZgogICAgICAgICBtX2luaXRpYWxVUkwgPSBLVVJMKCk7CiAKICAgICBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwotICAg
IHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGlzSW5p
dGlhbCk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgZnJhbWUubG9hZGVyKCkgJiYgZnJhbWUubG9hZGVyKCktPmNsaWVudCgpICYmIHN0YXRp
Y19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSo+KGZyYW1lLmxvYWRlcigpLT5jbGll
bnQoKSktPmNvb2tpZXNFbmFibGVkKCksIGlzSW5pdGlhbCwgcmVkaXJlY3RDb3VudCk7CiAKICAg
ICAvLyBBdHRhY2ggYW55IGFwcGxpY2FibGUgYXV0aCBjcmVkZW50aWFscyB0byB0aGUgTmV0d29y
a1JlcXVlc3QuCiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSA9IGd1YXJk
Sm9iLT5nZXRJbnRlcm5hbCgpLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2U7CkBAIC0xMTcsMTYgKzEx
Niw2IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3Qg
U3RyaW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmCiAgICAgICAgICAgICBwbGF0Zm9ybVJlcXVl
c3Quc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbC51c2VyKCkudXRmOCgpLmRhdGEoKSwgY3JlZGVu
dGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCksIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3
b3JrUmVxdWVzdDo6QXV0aEhUVFBCYXNpYyk7CiAgICAgfQogCi0gICAgaWYgKCgmZnJhbWUpICYm
ICgmZnJhbWUpLT5sb2FkZXIoKSAmJiAoJmZyYW1lKS0+bG9hZGVyKCktPmNsaWVudCgpCi0gICAg
ICAgICYmIHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSo+KCgmZnJhbWUp
LT5sb2FkZXIoKS0+Y2xpZW50KCkpLT5jb29raWVzRW5hYmxlZCgpKSB7Ci0gICAgICAgIC8vIFBy
ZXBhcmUgYSBjb29raWUgaGVhZGVyIGlmIHRoZXJlIGFyZSBjb29raWVzIHJlbGF0ZWQgdG8gdGhp
cyB1cmwuCi0gICAgICAgIFN0cmluZyBjb29raWVQYWlycyA9IGNvb2tpZU1hbmFnZXIoKS5nZXRD
b29raWUodXJsLCBXaXRoSHR0cE9ubHlDb29raWVzKTsKLSAgICAgICAgaWYgKCFjb29raWVQYWly
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdGhlIGVuY29k
aW5nIGFuZCBlbmNvZGUgdGhlIGNvb2tpZSBoZWFkZXIgZGF0YSB1c2luZyBsYXRpbjEgb3IgdXRm
OCB0byBzdXBwb3J0IHVuaWNvZGUgY2hhcmFjdGVycy4KLSAgICAgICAgICAgIHBsYXRmb3JtUmVx
dWVzdC5zZXRDb29raWVEYXRhKGNvb2tpZVBhaXJzLmNvbnRhaW5zT25seUxhdGluMSgpID8gY29v
a2llUGFpcnMubGF0aW4xKCkuZGF0YSgpIDogY29va2llUGFpcnMudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KICAgICBpZiAoIXJlcXVlc3Qub3ZlcnJpZGVDb250ZW50VHlwZSgp
LmlzRW1wdHkoKSkKICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0LnNldE92ZXJyaWRlQ29udGVudFR5
cGUocmVxdWVzdC5vdmVycmlkZUNvbnRlbnRUeXBlKCkubGF0aW4xKCkuZGF0YSgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291
cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IDcwNzJlYjFmMzUxMzRhZGMzNjQxYmQxNTQxYjE2Y2Rh
YzE4MDE3YWIuLmFkMTkxZmY4NDIzZTM3OGFmMDBkYzhlN2VjMDQ1N2JmN2Y2YzA4YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJj
ZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRNdXN0SGFuZGxlSW50ZXJuYWxseShib29sIG11c3RIYW5kbGVJbnRlcm5hbGx5KSB7IG1f
bXVzdEhhbmRsZUludGVybmFsbHkgPSBtdXN0SGFuZGxlSW50ZXJuYWxseTsgfQogICAgIGJvb2wg
bXVzdEhhbmRsZUludGVybmFsbHkoKSBjb25zdCB7IHJldHVybiBtX211c3RIYW5kbGVJbnRlcm5h
bGx5OyB9CiAKLSAgICB2b2lkIGluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoQmxhY2tCZXJyeTo6
UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwgYm9vbCBpc0luaXRpYWwgPSBmYWxzZSkgY29uc3Q7
CisgICAgdm9pZCBpbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpOZXR3b3JrUmVxdWVzdCYsIGJvb2wgY29va2llc0VuYWJsZWQsIGJvb2wgaXNJbml0aWFsID0g
ZmFsc2UsIGJvb2wgaXNSZWRpcmVjdCA9IGZhbHNlKSBjb25zdDsKICAgICB2b2lkIHNldEZvcmNl
RG93bmxvYWQoYm9vbCBmb3JjZURvd25sb2FkKSB7IG1fZm9yY2VEb3dubG9hZCA9IHRydWU7IH0K
ICAgICBib29sIGZvcmNlRG93bmxvYWQoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlRG93bmxvYWQ7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCmluZGV4
IDViNjc5MmZhN2YxMjI2Y2QwOThiZTllZTI2YjgyYmQ3ZjNjZGJkZmQuLjViOGEyYTNhNWRmNzJj
NDA4MjY3NGVkN2FhNGM2NWQ2MzhkOTE0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VS
ZXF1ZXN0QmxhY2tCZXJyeS5jcHAKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKIAogI2luY2x1ZGUgIkJsb2JSZWdpc3RyeUltcGwuaCIKKyNpbmNsdWRlICJD
b29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtQ2xpZW50Lmg+CiAj
aW5jbHVkZSA8bmV0d29yay9OZXR3b3JrUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CkBAIC0xMjYsNyArMTI3LDcgQEAgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIFJlc291
cmNlUmVxdWVzdDo6dGFyZ2V0VHlwZUZyb21NaW1lVHlwZShjb25zdCBTdHJpbmcKICAgICByZXR1
cm4gaXRlci0+c2Vjb25kOwogfQogCi12b2lkIFJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBs
YXRmb3JtUmVxdWVzdChOZXR3b3JrUmVxdWVzdCYgcGxhdGZvcm1SZXF1ZXN0LCBib29sIGlzSW5p
dGlhbCkgY29uc3QKK3ZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWFsaXplUGxhdGZvcm1SZXF1
ZXN0KE5ldHdvcmtSZXF1ZXN0JiBwbGF0Zm9ybVJlcXVlc3QsIGJvb2wgY29va2llc0VuYWJsZWQs
IGJvb2wgaXNJbml0aWFsLCBib29sIGlzUmVkaXJlY3QpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhp
cyBpcyB0aGUgaW5pdGlhbCBsb2FkLCBza2lwIHRoZSByZXF1ZXN0IGJvZHkgYW5kIGhlYWRlcnMu
CiAgICAgaWYgKGlzSW5pdGlhbCkKQEAgLTE3Nyw4ICsxNzgsMjIgQEAgdm9pZCBSZXNvdXJjZVJl
cXVlc3Q6OmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoTmV0d29ya1JlcXVlc3QmIHBsYXRmb3Jt
UmVxdWVzdCwKICAgICAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9
IGh0dHBIZWFkZXJGaWVsZHMoKS5iZWdpbigpOyBpdCAhPSBodHRwSGVhZGVyRmllbGRzKCkuZW5k
KCk7ICsraXQpIHsKICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBpdC0+Zmlyc3Q7CiAgICAgICAg
ICAgICBTdHJpbmcgdmFsdWUgPSBpdC0+c2Vjb25kOwotICAgICAgICAgICAgaWYgKCFrZXkuaXNF
bXB0eSgpICYmICF2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1
ZXN0LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5sYXRpbjEoKS5kYXRhKCkp
OworICAgICAgICAgICAgaWYgKCFrZXkuaXNFbXB0eSgpICYmICF2YWx1ZS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHRoZSBlbmNvZGluZyBhbmQgZW5j
b2RlIHRoZSBjb29raWUncyB2YWx1ZSB1c2luZyBsYXRpbjEgb3IgdXRmOCB0byBzdXBwb3J0IHVu
aWNvZGUgY2hhcmFjdGVycy4KKyAgICAgICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
a2V5LCAiQ29va2llIikpCisgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtUmVxdWVzdC5hZGRI
ZWFkZXIoa2V5LmxhdGluMSgpLmRhdGEoKSwgdmFsdWUuY29udGFpbnNPbmx5TGF0aW4xKCkgPyB2
YWx1ZS5sYXRpbjEoKS5kYXRhKCkgOiB2YWx1ZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtUmVxdWVzdC5hZGRIZWFkZXIo
a2V5LmxhdGluMSgpLmRhdGEoKSwgdmFsdWUubGF0aW4xKCkuZGF0YSgpKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFJlZGlyZWN0aW9uJ3MgcmVzcG9uc2UgbWF5IGNv
bnRhaW4gbmV3IGNvb2tpZXMsIHNvIGFkZCBjb29raWVzIGFnYWluLgorICAgICAgICAvLyBJZiB0
aGVyZSBhcmVuJ3QgY29va2llcyBpbiB0aGUgaGVhZGVyIGxpc3QsIHdlIG5lZWQgdHJ5aW5nIHRv
IGFkZCBjb29raWVzLgorICAgICAgICBpZiAoY29va2llc0VuYWJsZWQgJiYgKGlzUmVkaXJlY3Qg
fHwgIWh0dHBIZWFkZXJGaWVsZHMoKS5jb250YWlucygiQ29va2llIikpKSB7CisgICAgICAgICAg
ICAgICAgLy8gUHJlcGFyZSBhIGNvb2tpZSBoZWFkZXIgaWYgdGhlcmUgYXJlIGNvb2tpZXMgcmVs
YXRlZCB0byB0aGlzIHVybC4KKyAgICAgICAgICAgICAgICBTdHJpbmcgY29va2llUGFpcnMgPSBj
b29raWVNYW5hZ2VyKCkuZ2V0Q29va2llKHVybCgpLCBXaXRoSHR0cE9ubHlDb29raWVzKTsKKyAg
ICAgICAgICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICAgICAgcGxhdGZvcm1SZXF1ZXN0LmFkZEhlYWRlcigiQ29va2llIiwgY29va2llUGFpcnMuY29u
dGFpbnNPbmx5TGF0aW4xKCkgPyBjb29raWVQYWlycy5sYXRpbjEoKS5kYXRhKCkgOiBjb29raWVQ
YWlycy51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIExvY2FsZSBoYXMg
dGhlIGZvcm0gImVuLVVTIi4gQ29uc3RydWN0IGFjY2VwdCBsYW5ndWFnZSBsaWtlICJlbi1VUywg
ZW47cT0wLjgiLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApp
bmRleCAwZWVmMWYzZGFmNzhlYzJmYmU5YmViN2JmODY1NzM0NTdkODIxODMxLi4xNWQ5MDUyYjdm
NWI2NzllOGQyYjliYzA0M2NkMDBkMjU2MGY2OTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oRnJhbWVQCiAgICAgLy8gTGV0IHRoZSBjbGllbnQgaGF2ZSBhIGNoYW5jZSB0byBzYXkgd2hl
dGhlciB0aGlzIG5hdmlnYXRpb24gc2hvdWxkCiAgICAgLy8gYmUgaWdub3JlZCBvciBub3QuCiAg
ICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0IHBsYXRmb3JtUmVxdWVzdDsK
LSAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBm
YWxzZSAvKmlzSW5pdGlhbCovKTsKKyAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVl
c3QocGxhdGZvcm1SZXF1ZXN0LCBjb29raWVzRW5hYmxlZCgpKTsKICAgICBpZiAoaXNNYWluRnJh
bWUoKSAmJiAhbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmFjY2VwdE5hdmlnYXRpb25SZXF1
ZXN0KAogICAgICAgICBwbGF0Zm9ybVJlcXVlc3QsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOYXZp
Z2F0aW9uVHlwZShhY3Rpb24udHlwZSgpKSkpIHsKICAgICAgICAgaWYgKGFjdGlvbi50eXBlKCkg
PT0gTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkCkBAIC0yODAsNyArMjgwLDcgQEAgdm9pZCBG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKEZyYW1lUG8KICAgICAvLyBMZXQgdGhlIGNsaWVudCBoYXZlIGEgY2hhbmNlIHRv
IHNheSB3aGV0aGVyIHRoaXMgbmF2aWdhdGlvbiBzaG91bGQKICAgICAvLyBiZSBpZ25vcmVkIG9y
IG5vdC4KICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1S
ZXF1ZXN0OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJl
cXVlc3QsIGZhbHNlIC8qaXNJbml0aWFsKi8pOworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRm
b3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGNvb2tpZXNFbmFibGVkKCkpOwogICAgIGlmIChp
c01haW5GcmFtZSgpICYmICFtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YWNjZXB0TmF2aWdh
dGlvblJlcXVlc3QoCiAgICAgICAgIHBsYXRmb3JtUmVxdWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZv
cm06Ok5hdmlnYXRpb25UeXBlKGFjdGlvbi50eXBlKCkpKSkgewogICAgICAgICBpZiAoYWN0aW9u
LnR5cGUoKSA9PSBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQgfHwgYWN0aW9uLnR5cGUoKSA9
PSBOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZCkKQEAgLTkzOCwyMSArOTM4LDE1IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChE
b2N1bWVudExvYWRlciogZG9jTG9hCiAKICAgICAvLyBBbnkgcHJvY2Vzc2luZyB3aGljaCBpcyBk
b25lIGZvciBhbGwgbG9hZHMgKGJvdGggbWFpbiBhbmQgc3VicmVzb3VyY2UpIHNob3VsZCBnbyBo
ZXJlLgogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJl
cXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgZmFsc2UgLyppc0luaXRpYWwqLyk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZv
cm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgbV93ZWJQ
YWdlUHJpdmF0ZS0+bV9jbGllbnQtPnBvcHVsYXRlQ3VzdG9tSGVhZGVycyhwbGF0Zm9ybVJlcXVl
c3QpOwogICAgIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdDo6SGVh
ZGVyTGlzdCYgaGVhZGVyTGlzdHMgPSBwbGF0Zm9ybVJlcXVlc3QuZ2V0SGVhZGVyTGlzdFJlZigp
OwogICAgIGZvciAoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJM
aXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckxpc3RzLmJlZ2luKCk7IGl0ICE9IGhlYWRl
ckxpc3RzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgIHN0ZDo6c3RyaW5nIGhlYWRlclN0cmluZyA9
IGl0LT5maXJzdDsKICAgICAgICAgc3RkOjpzdHJpbmcgaGVhZGVyVmFsdWVTdHJpbmcgPSBpdC0+
c2Vjb25kOwotICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVy
U3RyaW5nLmNfc3RyKCkpLCBTdHJpbmcoaGVhZGVyVmFsdWVTdHJpbmcuY19zdHIoKSkpOwotICAg
IH0KLSAgICBpZiAoY29va2llc0VuYWJsZWQoKSkgewotICAgICAgICBTdHJpbmcgY29va2llUGFp
cnMgPSBjb29raWVNYW5hZ2VyKCkuZ2V0Q29va2llKHJlcXVlc3QudXJsKCksIFdpdGhIdHRwT25s
eUNvb2tpZXMpOwotICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgLy8gV2Ugb25seSBtb2RpZnkgdGhlIFdlYkNvcmUgcmVxdWVzdCB0byBtYWtlIHRoZSBj
b29raWVzIHZpc2libGUgaW4gaW5zcGVjdG9yLgotICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nKCJDb29raWUiKSwgY29va2llUGFpcnMpOwotICAgICAgICB9Cisg
ICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbVVURjhXaXRoTGF0
aW4xRmFsbGJhY2soaGVhZGVyU3RyaW5nLmRhdGEoKSwgaGVhZGVyU3RyaW5nLmxlbmd0aCgpKSwg
U3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhoZWFkZXJWYWx1ZVN0cmluZy5kYXRh
KCksIGhlYWRlclZhbHVlU3RyaW5nLmxlbmd0aCgpKSk7CiAgICAgfQorCiAgICAgaWYgKCFpc01h
aW5SZXNvdXJjZUxvYWQpIHsKICAgICAgICAgLy8gRG8gbm90aGluZyBmb3Igbm93LgogICAgICAg
ICAvLyBBbnkgcHJvY2Vzc2luZyB3aGljaCBpcyBkb25lIG9ubHkgZm9yIHN1YnJlc291cmNlcyBz
aG91bGQgZ28gaGVyZS4KQEAgLTEwOTEsNyArMTA4NSw3IEBAIFBvbGljeUFjdGlvbiBGcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnk6OmRlY2lkZVBvbGljeUZvckV4dGVybmFsTG9hZChjb25zdCBS
ZXNvCiAgICAgICAgICAgICAmJiAhcmVxdWVzdC5tdXN0SGFuZGxlSW50ZXJuYWxseSgpCiAgICAg
ICAgICAgICAmJiAhaXNGcmFnbWVudFNjcm9sbCkgewogICAgICAgICBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwotICAgICAgICByZXF1ZXN0Lmlu
aXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0KTsKKyAgICAgICAgcmVxdWVz
dC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJs
ZWQoKSk7CiAgICAgICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5oYW5kbGVFeHRlcm5h
bExpbmsocGxhdGZvcm1SZXF1ZXN0LCByZXF1ZXN0LmFuY2hvclRleHQoKS5jaGFyYWN0ZXJzKCks
IHJlcXVlc3QuYW5jaG9yVGV4dCgpLmxlbmd0aCgpLCBtX2NsaWVudFJlZGlyZWN0SXNQZW5kaW5n
KTsKICAgICAgICAgcmV0dXJuIFBvbGljeUlnbm9yZTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRm
OENvb2tpZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMzFmYTEyOWYzZDk5ZmUzMzY0ZGNi
ZjhmOWViYTBhZWY2YTk3ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK3NvbWUgdXRmOCBjaGFyYWN0ZXJzOiBVVEYtOCDDpsO4w6Ug5Lit5Zu9CisKK3Bo
cF9jb29raWU6IFVURi04IMOmw7jDpSDkuK3lm70KKworY29va2llcyByZWFkIHRocm91Z2gganM6
IHBocF9jb29raWU9VVRGLTgrJUMzJUE2JUMzJUI4JUMzJUE1KyVFNCVCOCVBRCVFNSU5QiVCRDsg
anNfY29va2llPVVURi04IMOmw7jDpSDkuK3lm70KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtcmVzdWx0LnBocCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtcmVz
dWx0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMzMyYjRmNGUzZWNhYjk2YTkyZmY5YTRjY2FhYmI1YjkyYWUw
OGY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jl
c291cmNlcy9zZXRVdGY4Q29va2llcy1yZXN1bHQucGhwCkBAIC0wLDAgKzEsMTYgQEAKKzw/cGhw
IGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnKTsgPz4KKzxo
dG1sPgorPGJvZHk+Cis8cD4KKzw/cGhwCisgICAgZWNobyAiPHA+c29tZSB1dGY4IGNoYXJhY3Rl
cnM6IFVURi04IMOmw7jDpSDkuK3lm708L3A+IjsKKyAgICBlY2hvICI8cD5waHBfY29va2llOiAi
LiRfQ09PS0lFWyJwaHBfY29va2llIl0uIjwvcD4iOworPz4KKzxzY3JpcHQ+CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGRvY3VtZW50LmNvb2tpZT0ianNfY29va2llPVVURi04IMOmw7jD
pSDkuK3lm707IGV4cGlyZXM9TW9uZGF5LCAwNC1BcHItMjAyMCAwNTowMDowMCBHTVQiOworICAg
IGRvY3VtZW50LndyaXRlKCJjb29raWVzIHJlYWQgdGhyb3VnaCBqczogIitkb2N1bWVudC5jb29r
aWUpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLnBocCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNkNjJmNWFmZmFjMGE0OTRhOGZlZTg5Zjc5YzZhMmFkNzhmY2U0MzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3Nl
dFV0ZjhDb29raWVzLnBocApAQCAtMCwwICsxLDUgQEAKKzw/cGhwIAorICAgIHNldGNvb2tpZSgi
cGhwX2Nvb2tpZSIsICJVVEYtOCDDpsO4w6Ug5Lit5Zu9Iik7CisgICAgaGVhZGVyKCdDb250ZW50
LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCcpOyAKKyAgICBoZWFkZXIoJ0xvY2F0aW9u
OiBzZXRVdGY4Q29va2llcy1yZXN1bHQucGhwJyk7Cis/Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132764</attachid>
            <date>2012-03-19 22:45:43 -0700</date>
            <delta_ts>2012-03-19 22:50:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80800-20120320134541.patch</filename>
            <type>text/plain</type>
            <size>14840</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA1MTcyOWFhYzg0MjBh
ZWViN2MxMzRmNTZlNDRjMzhkOTFhMTc0ZS4uOGY5NDY5NDgwMGNjNTk5NDkyNDkwYmExM2FmNWYy
Y2U0ZDhkZGU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTE5ICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVl
c3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKwor
ICAgICAgICBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0IHNldHMgY29va2llcyB0byByZXNvdXJjZVJlcXVlc3QncyBoZWFkZXIKKyAgICAgICAgbGlz
dCB0byBzaG93IGNvb2tpZXMgaW4gaW5zcGVjdG9yLiBBbmQgTmV0d29ya01hbmFnZXI6OnN0YXJ0
Sm9iIHdpbGwgc2V0IGNvb2tpZXMgdG8gcGxhdGZvcm1SZXF1ZXN0J3MKKyAgICAgICAgbV9jb29r
aWVEYXRhIGFnYWluLiBTbyBjb29raWVzIGFyZSBzZXQgdHdvIHRpbWVzLiBUaGlzIGNhdXNlcyBw
ZXJmb3JtYW5jZSBpc3N1ZS4KKworICAgICAgICBNb3Jlb3ZlciwgcGxhdGZvcm1SZXF1ZXN0IHdp
bGwgY29weSBjb29raWVzIGZyb20gdGhlIHJlc291cmNlUmVxdWVzdC4gQW5kIHRoZW4gcGxhdGZv
cm1SZXF1ZXN0IGhhcworICAgICAgICB0aGUgc2FtZSBjb29raWVzIGluIGl0cyBoZWFkZXIgbGlz
dCBhbmQgbV9jb29raWVEYXRhLiBOZXR3b3JrIHdpbGwgdXNlIGhlYWRlciBsaXN0J3MgY29va2ll
cyB3aGljaAorICAgICAgICBhcmUgb3V0cHV0IGFzIGxhdGluMSBvbmx5LiBUaGlzIGNhdXNlcyB0
aGUgcmVncmVzc2lvbiBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODAzMDcuCisKKyAgICAgICAgTm93LCBzZXQgY29va2llcyBpbiBpbml0aWFsaXplUGxhdGZvcm1S
ZXF1ZXN0IHRvIGVuc3VyZSBzZXR0aW5nIGNvb2tpZXMgb25seSBvbmNlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChSZXNvdXJjZVJlcXVlc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFj
a0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6
ZVBsYXRmb3JtUmVxdWVzdCk6CisKIDIwMTItMDMtMTkgIEZsb3JpbiBNYWxpdGEgIDxmbWFsaXRh
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmVsYXRpdmUtaGVpZ2h0IGJsb2NrIFNWRyByb290IG5v
dCBsYXllZCBvdXQgb24gY29udGFpbmVyIGhlaWdodCBjaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IDk4NDk2OTVjM2QzMjBmOTdhNWU3Y2IwYjhjYWQ4MzI3ZjdhMWRlOTgu
Ljc3MmIwMmUzYmYyNWQyYzczM2I2YzRlM2E4MTI3ZTQ2NjhkYWQ3MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTE5ICBKYXNvbiBMaXUg
IDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5XUNv
b2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVlc3QgYW5k
IHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKToKKwogMjAxMi0w
My0xOSAgVHlsZXIgQWJib3R0ICA8dGFiYm90dEByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBzcGVlZCB1cCB0ZXh0IHNlbGVjdGlvbiBmb3IgbGFyZ2Ugc2VsZWN0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9O
ZXR3b3JrTWFuYWdlci5jcHAKaW5kZXggN2M2MjhmMDA1N2E3ZGFkMDY0MjA4MGYyZjA0OTQ1YTQ5
ZDA4Zjk1OS4uZTM4MzJlOTMzZjkzMGFmODY4ZGFlNTY1ZmQ3NjlhYzBmZDZkYTk3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya01hbmFnZXIuY3BwCkBAIC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSAiTmV0d29y
a01hbmFnZXIuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkNvb2tpZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCkBAIC03Myw3ICs3Miw3
IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3QgU3Ry
aW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmCiAgICAgICAgIG1faW5pdGlhbFVSTCA9IEtVUkwo
KTsKIAogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJl
cXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgaXNJbml0aWFsKTsKKyAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3Qo
cGxhdGZvcm1SZXF1ZXN0LCBmcmFtZS5sb2FkZXIoKSAmJiBmcmFtZS5sb2FkZXIoKS0+Y2xpZW50
KCkgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Kj4oZnJhbWUubG9h
ZGVyKCktPmNsaWVudCgpKS0+Y29va2llc0VuYWJsZWQoKSwgaXNJbml0aWFsLCByZWRpcmVjdENv
dW50KTsKIAogICAgIC8vIEF0dGFjaCBhbnkgYXBwbGljYWJsZSBhdXRoIGNyZWRlbnRpYWxzIHRv
IHRoZSBOZXR3b3JrUmVxdWVzdC4KICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxl
bmdlID0gZ3VhcmRKb2ItPmdldEludGVybmFsKCktPm1fY3VycmVudFdlYkNoYWxsZW5nZTsKQEAg
LTExNywxNiArMTE2LDYgQEAgYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXll
cklkLCBjb25zdCBTdHJpbmcmIHBhZ2VHcm91cE5hbWUsIFBhc3NSZWYKICAgICAgICAgICAgIHBs
YXRmb3JtUmVxdWVzdC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFsLnVzZXIoKS51dGY4KCkuZGF0
YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSwgQmxhY2tCZXJyeTo6UGxh
dGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpBdXRoSFRUUEJhc2ljKTsKICAgICB9CiAKLSAgICBpZiAo
KCZmcmFtZSkgJiYgKCZmcmFtZSktPmxvYWRlcigpICYmICgmZnJhbWUpLT5sb2FkZXIoKS0+Y2xp
ZW50KCkKLSAgICAgICAgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
Kj4oKCZmcmFtZSktPmxvYWRlcigpLT5jbGllbnQoKSktPmNvb2tpZXNFbmFibGVkKCkpIHsKLSAg
ICAgICAgLy8gUHJlcGFyZSBhIGNvb2tpZSBoZWFkZXIgaWYgdGhlcmUgYXJlIGNvb2tpZXMgcmVs
YXRlZCB0byB0aGlzIHVybC4KLSAgICAgICAgU3RyaW5nIGNvb2tpZVBhaXJzID0gY29va2llTWFu
YWdlcigpLmdldENvb2tpZSh1cmwsIFdpdGhIdHRwT25seUNvb2tpZXMpOwotICAgICAgICBpZiAo
IWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVj
ayB0aGUgZW5jb2RpbmcgYW5kIGVuY29kZSB0aGUgY29va2llIGhlYWRlciBkYXRhIHVzaW5nIGxh
dGluMSBvciB1dGY4IHRvIHN1cHBvcnQgdW5pY29kZSBjaGFyYWN0ZXJzLgotICAgICAgICAgICAg
cGxhdGZvcm1SZXF1ZXN0LnNldENvb2tpZURhdGEoY29va2llUGFpcnMuY29udGFpbnNPbmx5TGF0
aW4xKCkgPyBjb29raWVQYWlycy5sYXRpbjEoKS5kYXRhKCkgOiBjb29raWVQYWlycy51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIGlmICghcmVxdWVzdC5vdmVycmlkZUNv
bnRlbnRUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICBwbGF0Zm9ybVJlcXVlc3Quc2V0T3ZlcnJp
ZGVDb250ZW50VHlwZShyZXF1ZXN0Lm92ZXJyaWRlQ29udGVudFR5cGUoKS5sYXRpbjEoKS5kYXRh
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNzA3MmViMWYzNTEzNGFkYzM2NDFi
ZDE1NDFiMTZjZGFjMTgwMTdhYi4uYWQxOTFmZjg0MjNlMzc4YWYwMGRjOGU3ZWMwNDU3YmY3ZjZj
MDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMTEwLDcgKzExMCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE11c3RIYW5kbGVJbnRlcm5hbGx5KGJvb2wgbXVzdEhhbmRsZUludGVy
bmFsbHkpIHsgbV9tdXN0SGFuZGxlSW50ZXJuYWxseSA9IG11c3RIYW5kbGVJbnRlcm5hbGx5OyB9
CiAgICAgYm9vbCBtdXN0SGFuZGxlSW50ZXJuYWxseSgpIGNvbnN0IHsgcmV0dXJuIG1fbXVzdEhh
bmRsZUludGVybmFsbHk7IH0KIAotICAgIHZvaWQgaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QmLCBib29sIGlzSW5pdGlhbCA9IGZh
bHNlKSBjb25zdDsKKyAgICB2b2lkIGluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoQmxhY2tCZXJy
eTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwgYm9vbCBjb29raWVzRW5hYmxlZCwgYm9vbCBp
c0luaXRpYWwgPSBmYWxzZSwgYm9vbCBpc1JlZGlyZWN0ID0gZmFsc2UpIGNvbnN0OwogICAgIHZv
aWQgc2V0Rm9yY2VEb3dubG9hZChib29sIGZvcmNlRG93bmxvYWQpIHsgbV9mb3JjZURvd25sb2Fk
ID0gdHJ1ZTsgfQogICAgIGJvb2wgZm9yY2VEb3dubG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9y
Y2VEb3dubG9hZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJy
eS5jcHAKaW5kZXggNWI2NzkyZmE3ZjEyMjZjZDA5OGJlOWVlMjZiODJiZDdmM2NkYmRmZC4uNjU2
N2U5NTgwMzEzOTY2OGUxY2Q3ODMxMDhmNjVkOGM0YWI1YzlmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcApAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1
ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogCiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5SW1wbC5oIgor
I2luY2x1ZGUgIkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1D
bGllbnQuaD4KICNpbmNsdWRlIDxuZXR3b3JrL05ldHdvcmtSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KQEAgLTEyNiw3ICsxMjcsNyBAQCBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dFR5cGUgUmVzb3VyY2VSZXF1ZXN0Ojp0YXJnZXRUeXBlRnJvbU1pbWVUeXBlKGNvbnN0IFN0cmlu
ZwogICAgIHJldHVybiBpdGVyLT5zZWNvbmQ7CiB9CiAKLXZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpp
bml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KE5ldHdvcmtSZXF1ZXN0JiBwbGF0Zm9ybVJlcXVlc3Qs
IGJvb2wgaXNJbml0aWFsKSBjb25zdAordm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYWxpemVQ
bGF0Zm9ybVJlcXVlc3QoTmV0d29ya1JlcXVlc3QmIHBsYXRmb3JtUmVxdWVzdCwgYm9vbCBjb29r
aWVzRW5hYmxlZCwgYm9vbCBpc0luaXRpYWwsIGJvb2wgaXNSZWRpcmVjdCkgY29uc3QKIHsKICAg
ICAvLyBJZiB0aGlzIGlzIHRoZSBpbml0aWFsIGxvYWQsIHNraXAgdGhlIHJlcXVlc3QgYm9keSBh
bmQgaGVhZGVycy4KICAgICBpZiAoaXNJbml0aWFsKQpAQCAtMTc3LDggKzE3OCwyMiBAQCB2b2lk
IFJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChOZXR3b3JrUmVxdWVz
dCYgcGxhdGZvcm1SZXF1ZXN0LAogICAgICAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gaHR0cEhlYWRlckZpZWxkcygpLmJlZ2luKCk7IGl0ICE9IGh0dHBIZWFkZXJG
aWVsZHMoKS5lbmQoKTsgKytpdCkgewogICAgICAgICAgICAgU3RyaW5nIGtleSA9IGl0LT5maXJz
dDsKICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgICAgICBp
ZiAoIWtleS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBw
bGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKGtleS5sYXRpbjEoKS5kYXRhKCksIHZhbHVlLmxhdGlu
MSgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoIWtleS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlz
RW1wdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdGhlIGVuY29k
aW5nIGFuZCBlbmNvZGUgdGhlIGNvb2tpZSdzIHZhbHVlIHVzaW5nIGxhdGluMSBvciB1dGY4IHRv
IHN1cHBvcnQgdW5pY29kZSBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShrZXksICJDb29raWUiKSkKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1S
ZXF1ZXN0LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5jb250YWluc09ubHlM
YXRpbjEoKSA/IHZhbHVlLmxhdGluMSgpLmRhdGEoKSA6IHZhbHVlLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0
LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5sYXRpbjEoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgCisgICAgICAgIC8vIFJlZGlyZWN0aW9u
J3MgcmVzcG9uc2UgbWF5IGNvbnRhaW4gbmV3IGNvb2tpZXMsIHNvIGFkZCBjb29raWVzIGFnYWlu
LgorICAgICAgICAvLyBJZiB0aGVyZSBhcmVuJ3QgY29va2llcyBpbiB0aGUgaGVhZGVyIGxpc3Qs
IHdlIG5lZWQgdHJ5aW5nIHRvIGFkZCBjb29raWVzLgorICAgICAgICBpZiAoY29va2llc0VuYWJs
ZWQgJiYgKGlzUmVkaXJlY3QgfHwgIWh0dHBIZWFkZXJGaWVsZHMoKS5jb250YWlucygiQ29va2ll
IikpKSB7CisgICAgICAgICAgICAvLyBQcmVwYXJlIGEgY29va2llIGhlYWRlciBpZiB0aGVyZSBh
cmUgY29va2llcyByZWxhdGVkIHRvIHRoaXMgdXJsLgorICAgICAgICAgICAgU3RyaW5nIGNvb2tp
ZVBhaXJzID0gY29va2llTWFuYWdlcigpLmdldENvb2tpZSh1cmwoKSwgV2l0aEh0dHBPbmx5Q29v
a2llcyk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgICAgICBwbGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKCJDb29raWUiLCBjb29raWVQYWlycy5j
b250YWluc09ubHlMYXRpbjEoKSA/IGNvb2tpZVBhaXJzLmxhdGluMSgpLmRhdGEoKSA6IGNvb2tp
ZVBhaXJzLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTG9jYWxlIGhh
cyB0aGUgZm9ybSAiZW4tVVMiLiBDb25zdHJ1Y3QgYWNjZXB0IGxhbmd1YWdlIGxpa2UgImVuLVVT
LCBlbjtxPTAuOCIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
CmluZGV4IGM5Njk4NWI1OGI2YmMxNjM0MzA2NmFjZTYyOTUyMTVlZmExYTNiYzkuLmVkODE3OGM2
Yjk3NTJmMmIyOWMxNjU3MDQyNzY0YzNhNGQ0MmY4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihGcmFtZVAKICAgICAvLyBMZXQgdGhlIGNsaWVudCBoYXZlIGEgY2hhbmNlIHRvIHNheSB3
aGV0aGVyIHRoaXMgbmF2aWdhdGlvbiBzaG91bGQKICAgICAvLyBiZSBpZ25vcmVkIG9yIG5vdC4K
ICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0
OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3Qs
IGZhbHNlIC8qaXNJbml0aWFsKi8pOworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVx
dWVzdChwbGF0Zm9ybVJlcXVlc3QsIGNvb2tpZXNFbmFibGVkKCkpOwogICAgIGlmIChpc01haW5G
cmFtZSgpICYmICFtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YWNjZXB0TmF2aWdhdGlvblJl
cXVlc3QoCiAgICAgICAgIHBsYXRmb3JtUmVxdWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5h
dmlnYXRpb25UeXBlKGFjdGlvbi50eXBlKCkpKSkgewogICAgICAgICBpZiAoYWN0aW9uLnR5cGUo
KSA9PSBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQKQEAgLTkyMCwyMCArOTIwLDEzIEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChE
b2N1bWVudExvYWRlciogZG9jTG9hCiAKICAgICAvLyBBbnkgcHJvY2Vzc2luZyB3aGljaCBpcyBk
b25lIGZvciBhbGwgbG9hZHMgKGJvdGggbWFpbiBhbmQgc3VicmVzb3VyY2UpIHNob3VsZCBnbyBo
ZXJlLgogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJl
cXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgZmFsc2UgLyppc0luaXRpYWwqLyk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZv
cm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgbV93ZWJQ
YWdlUHJpdmF0ZS0+bV9jbGllbnQtPnBvcHVsYXRlQ3VzdG9tSGVhZGVycyhwbGF0Zm9ybVJlcXVl
c3QpOwogICAgIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdDo6SGVh
ZGVyTGlzdCYgaGVhZGVyTGlzdHMgPSBwbGF0Zm9ybVJlcXVlc3QuZ2V0SGVhZGVyTGlzdFJlZigp
OwogICAgIGZvciAoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJM
aXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckxpc3RzLmJlZ2luKCk7IGl0ICE9IGhlYWRl
ckxpc3RzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgIHN0ZDo6c3RyaW5nIGhlYWRlclN0cmluZyA9
IGl0LT5maXJzdDsKICAgICAgICAgc3RkOjpzdHJpbmcgaGVhZGVyVmFsdWVTdHJpbmcgPSBpdC0+
c2Vjb25kOwotICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVy
U3RyaW5nLmNfc3RyKCkpLCBTdHJpbmcoaGVhZGVyVmFsdWVTdHJpbmcuY19zdHIoKSkpOwotICAg
IH0KLSAgICBpZiAoY29va2llc0VuYWJsZWQoKSkgewotICAgICAgICBTdHJpbmcgY29va2llUGFp
cnMgPSBjb29raWVNYW5hZ2VyKCkuZ2V0Q29va2llKHJlcXVlc3QudXJsKCksIFdpdGhIdHRwT25s
eUNvb2tpZXMpOwotICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgLy8gV2Ugb25seSBtb2RpZnkgdGhlIFdlYkNvcmUgcmVxdWVzdCB0byBtYWtlIHRoZSBj
b29raWVzIHZpc2libGUgaW4gaW5zcGVjdG9yLgotICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nKCJDb29raWUiKSwgY29va2llUGFpcnMpOwotICAgICAgICB9Cisg
ICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbVVURjhXaXRoTGF0
aW4xRmFsbGJhY2soaGVhZGVyU3RyaW5nLmRhdGEoKSwgaGVhZGVyU3RyaW5nLmxlbmd0aCgpKSwg
U3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhoZWFkZXJWYWx1ZVN0cmluZy5kYXRh
KCksIGhlYWRlclZhbHVlU3RyaW5nLmxlbmd0aCgpKSk7CiAgICAgfQogICAgIGlmICghaXNNYWlu
UmVzb3VyY2VMb2FkKSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcgZm9yIG5vdy4KQEAgLTEwNzks
NyArMTA3Miw3IEBAIFBvbGljeUFjdGlvbiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRl
Y2lkZVBvbGljeUZvckV4dGVybmFsTG9hZChjb25zdCBSZXNvCiAgICAgICAgICAgICAmJiAhcmVx
dWVzdC5tdXN0SGFuZGxlSW50ZXJuYWxseSgpCiAgICAgICAgICAgICAmJiAhaXNGcmFnbWVudFNj
cm9sbCkgewogICAgICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxh
dGZvcm1SZXF1ZXN0OwotICAgICAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3Qo
cGxhdGZvcm1SZXF1ZXN0KTsKKyAgICAgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1
ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgICAgIG1fd2ViUGFn
ZVByaXZhdGUtPm1fY2xpZW50LT5oYW5kbGVFeHRlcm5hbExpbmsocGxhdGZvcm1SZXF1ZXN0LCBy
ZXF1ZXN0LmFuY2hvclRleHQoKS5jaGFyYWN0ZXJzKCksIHJlcXVlc3QuYW5jaG9yVGV4dCgpLmxl
bmd0aCgpLCBtX2NsaWVudFJlZGlyZWN0SXNQZW5kaW5nKTsKICAgICAgICAgcmV0dXJuIFBvbGlj
eUlnbm9yZTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmQ1NGFlM2E3Yzc0ZDY0MzNhNWE0N2EyNzliYTFlMjkw
M2NjMTY3My4uYTEwNGNhM2Q5OTg0NGQ4NGRmYzhmMGFhZmQ4NjFiYjUxZGJkMjE5YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTE5ICBKYXNvbiBMaXUgIDxqYXNvbi5saXVAdG9yY2ht
b2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJl
IHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVlc3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVz
dC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0
VXRmOENvb2tpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Nv
b2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLXJlc3VsdC5waHA6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwOiBBZGRl
ZC4KKwogMjAxMi0wMy0xOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBTdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2soKSBpbiBXS1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NDc5ZWJiMWZiNmUxNTQ3Mjc2MWQ1OTQ2OWQwZmU5ZTc2
YmYyMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMv
cmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK29t
ZSB1dGY4IGNoYXJhY3RlcnM6IFVURi04IMOmw7jDpSDkuK3lm70KKworcGhwX2Nvb2tpZTogVVRG
LTggw6bDuMOlIOS4reWbvQorCitjb29raWVzIHJlYWQgdGhyb3VnaCBqczogcGhwX2Nvb2tpZT1V
VEYtOCslQzMlQTYlQzMlQjglQzMlQTUrJUU0JUI4JUFEJUU1JTlCJUJEOyBqc19jb29raWU9VVRG
LTggw6bDuMOlIOS4reWbvQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29r
aWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1yZXN1bHQucGhwIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1yZXN1bHQucGhwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUzMzJiNGY0ZTNlY2FiOTZhOTJmZjlhNGNjYWFiYjViOTJhZTA4ZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0
ZjhDb29raWVzLXJlc3VsdC5waHAKQEAgLTAsMCArMSwxNiBAQAorPD9waHAgaGVhZGVyKCdDb250
ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCcpOyA/PgorPGh0bWw+Cis8Ym9keT4K
KzxwPgorPD9waHAKKyAgICBlY2hvICI8cD5zb21lIHV0ZjggY2hhcmFjdGVyczogVVRGLTggw6bD
uMOlIOS4reWbvTwvcD4iOworICAgIGVjaG8gIjxwPnBocF9jb29raWU6ICIuJF9DT09LSUVbInBo
cF9jb29raWUiXS4iPC9wPiI7Cis/PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgZG9jdW1lbnQuY29va2llPSJqc19jb29raWU9VVRGLTggw6bDuMOlIOS4reWbvTsgZXhw
aXJlcz1Nb25kYXksIDA0LUFwci0yMDIwIDA1OjAwOjAwIEdNVCI7CisgICAgZG9jdW1lbnQud3Jp
dGUoImNvb2tpZXMgcmVhZCB0aHJvdWdoIGpzOiAiK2RvY3VtZW50LmNvb2tpZSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy5waHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM3
MTRmZDg5YTY3ZDM5NzMxODQ0ODMwMjU2MDc1M2MxZGVkZDdmZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMu
cGhwCkBAIC0wLDAgKzEsNSBAQAorPD9waHAKKyAgICBzZXRjb29raWUoInBocF9jb29raWUiLCAi
VVRGLTggw6bDuMOlIOS4reWbvSIpOworICAgIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgnKTsKKyAgICBoZWFkZXIoJ0xvY2F0aW9uOiBzZXRVdGY4Q29va2ll
cy1yZXN1bHQucGhwJyk7Cis/Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132765</attachid>
            <date>2012-03-19 22:50:50 -0700</date>
            <delta_ts>2012-03-19 23:05:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80800-20120320135048.patch</filename>
            <type>text/plain</type>
            <size>14840</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA1MTcyOWFhYzg0MjBh
ZWViN2MxMzRmNTZlNDRjMzhkOTFhMTc0ZS4uOGY5NDY5NDgwMGNjNTk5NDkyNDkwYmExM2FmNWYy
Y2U0ZDhkZGU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTE5ICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVl
c3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKwor
ICAgICAgICBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0IHNldHMgY29va2llcyB0byByZXNvdXJjZVJlcXVlc3QncyBoZWFkZXIKKyAgICAgICAgbGlz
dCB0byBzaG93IGNvb2tpZXMgaW4gaW5zcGVjdG9yLiBBbmQgTmV0d29ya01hbmFnZXI6OnN0YXJ0
Sm9iIHdpbGwgc2V0IGNvb2tpZXMgdG8gcGxhdGZvcm1SZXF1ZXN0J3MKKyAgICAgICAgbV9jb29r
aWVEYXRhIGFnYWluLiBTbyBjb29raWVzIGFyZSBzZXQgdHdvIHRpbWVzLiBUaGlzIGNhdXNlcyBw
ZXJmb3JtYW5jZSBpc3N1ZS4KKworICAgICAgICBNb3Jlb3ZlciwgcGxhdGZvcm1SZXF1ZXN0IHdp
bGwgY29weSBjb29raWVzIGZyb20gdGhlIHJlc291cmNlUmVxdWVzdC4gQW5kIHRoZW4gcGxhdGZv
cm1SZXF1ZXN0IGhhcworICAgICAgICB0aGUgc2FtZSBjb29raWVzIGluIGl0cyBoZWFkZXIgbGlz
dCBhbmQgbV9jb29raWVEYXRhLiBOZXR3b3JrIHdpbGwgdXNlIGhlYWRlciBsaXN0J3MgY29va2ll
cyB3aGljaAorICAgICAgICBhcmUgb3V0cHV0IGFzIGxhdGluMSBvbmx5LiBUaGlzIGNhdXNlcyB0
aGUgcmVncmVzc2lvbiBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODAzMDcuCisKKyAgICAgICAgTm93LCBzZXQgY29va2llcyBpbiBpbml0aWFsaXplUGxhdGZvcm1S
ZXF1ZXN0IHRvIGVuc3VyZSBzZXR0aW5nIGNvb2tpZXMgb25seSBvbmNlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChSZXNvdXJjZVJlcXVlc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFj
a0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6
ZVBsYXRmb3JtUmVxdWVzdCk6CisKIDIwMTItMDMtMTkgIEZsb3JpbiBNYWxpdGEgIDxmbWFsaXRh
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmVsYXRpdmUtaGVpZ2h0IGJsb2NrIFNWRyByb290IG5v
dCBsYXllZCBvdXQgb24gY29udGFpbmVyIGhlaWdodCBjaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IDk4NDk2OTVjM2QzMjBmOTdhNWU3Y2IwYjhjYWQ4MzI3ZjdhMWRlOTgu
Ljc3MmIwMmUzYmYyNWQyYzczM2I2YzRlM2E4MTI3ZTQ2NjhkYWQ3MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTE5ICBKYXNvbiBMaXUg
IDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5XUNv
b2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVlc3QgYW5k
IHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKToKKwogMjAxMi0w
My0xOSAgVHlsZXIgQWJib3R0ICA8dGFiYm90dEByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBzcGVlZCB1cCB0ZXh0IHNlbGVjdGlvbiBmb3IgbGFyZ2Ugc2VsZWN0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9O
ZXR3b3JrTWFuYWdlci5jcHAKaW5kZXggN2M2MjhmMDA1N2E3ZGFkMDY0MjA4MGYyZjA0OTQ1YTQ5
ZDA4Zjk1OS4uZTM4MzJlOTMzZjkzMGFmODY4ZGFlNTY1ZmQ3NjlhYzBmZDZkYTk3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya01hbmFnZXIuY3BwCkBAIC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSAiTmV0d29y
a01hbmFnZXIuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkNvb2tpZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCkBAIC03Myw3ICs3Miw3
IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3QgU3Ry
aW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmCiAgICAgICAgIG1faW5pdGlhbFVSTCA9IEtVUkwo
KTsKIAogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJl
cXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgaXNJbml0aWFsKTsKKyAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3Qo
cGxhdGZvcm1SZXF1ZXN0LCBmcmFtZS5sb2FkZXIoKSAmJiBmcmFtZS5sb2FkZXIoKS0+Y2xpZW50
KCkgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Kj4oZnJhbWUubG9h
ZGVyKCktPmNsaWVudCgpKS0+Y29va2llc0VuYWJsZWQoKSwgaXNJbml0aWFsLCByZWRpcmVjdENv
dW50KTsKIAogICAgIC8vIEF0dGFjaCBhbnkgYXBwbGljYWJsZSBhdXRoIGNyZWRlbnRpYWxzIHRv
IHRoZSBOZXR3b3JrUmVxdWVzdC4KICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxl
bmdlID0gZ3VhcmRKb2ItPmdldEludGVybmFsKCktPm1fY3VycmVudFdlYkNoYWxsZW5nZTsKQEAg
LTExNywxNiArMTE2LDYgQEAgYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXll
cklkLCBjb25zdCBTdHJpbmcmIHBhZ2VHcm91cE5hbWUsIFBhc3NSZWYKICAgICAgICAgICAgIHBs
YXRmb3JtUmVxdWVzdC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFsLnVzZXIoKS51dGY4KCkuZGF0
YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSwgQmxhY2tCZXJyeTo6UGxh
dGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpBdXRoSFRUUEJhc2ljKTsKICAgICB9CiAKLSAgICBpZiAo
KCZmcmFtZSkgJiYgKCZmcmFtZSktPmxvYWRlcigpICYmICgmZnJhbWUpLT5sb2FkZXIoKS0+Y2xp
ZW50KCkKLSAgICAgICAgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
Kj4oKCZmcmFtZSktPmxvYWRlcigpLT5jbGllbnQoKSktPmNvb2tpZXNFbmFibGVkKCkpIHsKLSAg
ICAgICAgLy8gUHJlcGFyZSBhIGNvb2tpZSBoZWFkZXIgaWYgdGhlcmUgYXJlIGNvb2tpZXMgcmVs
YXRlZCB0byB0aGlzIHVybC4KLSAgICAgICAgU3RyaW5nIGNvb2tpZVBhaXJzID0gY29va2llTWFu
YWdlcigpLmdldENvb2tpZSh1cmwsIFdpdGhIdHRwT25seUNvb2tpZXMpOwotICAgICAgICBpZiAo
IWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVj
ayB0aGUgZW5jb2RpbmcgYW5kIGVuY29kZSB0aGUgY29va2llIGhlYWRlciBkYXRhIHVzaW5nIGxh
dGluMSBvciB1dGY4IHRvIHN1cHBvcnQgdW5pY29kZSBjaGFyYWN0ZXJzLgotICAgICAgICAgICAg
cGxhdGZvcm1SZXF1ZXN0LnNldENvb2tpZURhdGEoY29va2llUGFpcnMuY29udGFpbnNPbmx5TGF0
aW4xKCkgPyBjb29raWVQYWlycy5sYXRpbjEoKS5kYXRhKCkgOiBjb29raWVQYWlycy51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIGlmICghcmVxdWVzdC5vdmVycmlkZUNv
bnRlbnRUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICBwbGF0Zm9ybVJlcXVlc3Quc2V0T3ZlcnJp
ZGVDb250ZW50VHlwZShyZXF1ZXN0Lm92ZXJyaWRlQ29udGVudFR5cGUoKS5sYXRpbjEoKS5kYXRh
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNzA3MmViMWYzNTEzNGFkYzM2NDFi
ZDE1NDFiMTZjZGFjMTgwMTdhYi4uYWQxOTFmZjg0MjNlMzc4YWYwMGRjOGU3ZWMwNDU3YmY3ZjZj
MDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMTEwLDcgKzExMCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE11c3RIYW5kbGVJbnRlcm5hbGx5KGJvb2wgbXVzdEhhbmRsZUludGVy
bmFsbHkpIHsgbV9tdXN0SGFuZGxlSW50ZXJuYWxseSA9IG11c3RIYW5kbGVJbnRlcm5hbGx5OyB9
CiAgICAgYm9vbCBtdXN0SGFuZGxlSW50ZXJuYWxseSgpIGNvbnN0IHsgcmV0dXJuIG1fbXVzdEhh
bmRsZUludGVybmFsbHk7IH0KIAotICAgIHZvaWQgaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QmLCBib29sIGlzSW5pdGlhbCA9IGZh
bHNlKSBjb25zdDsKKyAgICB2b2lkIGluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoQmxhY2tCZXJy
eTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwgYm9vbCBjb29raWVzRW5hYmxlZCwgYm9vbCBp
c0luaXRpYWwgPSBmYWxzZSwgYm9vbCBpc1JlZGlyZWN0ID0gZmFsc2UpIGNvbnN0OwogICAgIHZv
aWQgc2V0Rm9yY2VEb3dubG9hZChib29sIGZvcmNlRG93bmxvYWQpIHsgbV9mb3JjZURvd25sb2Fk
ID0gdHJ1ZTsgfQogICAgIGJvb2wgZm9yY2VEb3dubG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9y
Y2VEb3dubG9hZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJy
eS5jcHAKaW5kZXggNWI2NzkyZmE3ZjEyMjZjZDA5OGJlOWVlMjZiODJiZDdmM2NkYmRmZC4uNjU2
N2U5NTgwMzEzOTY2OGUxY2Q3ODMxMDhmNjVkOGM0YWI1YzlmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcApAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1
ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogCiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5SW1wbC5oIgor
I2luY2x1ZGUgIkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1D
bGllbnQuaD4KICNpbmNsdWRlIDxuZXR3b3JrL05ldHdvcmtSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KQEAgLTEyNiw3ICsxMjcsNyBAQCBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dFR5cGUgUmVzb3VyY2VSZXF1ZXN0Ojp0YXJnZXRUeXBlRnJvbU1pbWVUeXBlKGNvbnN0IFN0cmlu
ZwogICAgIHJldHVybiBpdGVyLT5zZWNvbmQ7CiB9CiAKLXZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpp
bml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KE5ldHdvcmtSZXF1ZXN0JiBwbGF0Zm9ybVJlcXVlc3Qs
IGJvb2wgaXNJbml0aWFsKSBjb25zdAordm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYWxpemVQ
bGF0Zm9ybVJlcXVlc3QoTmV0d29ya1JlcXVlc3QmIHBsYXRmb3JtUmVxdWVzdCwgYm9vbCBjb29r
aWVzRW5hYmxlZCwgYm9vbCBpc0luaXRpYWwsIGJvb2wgaXNSZWRpcmVjdCkgY29uc3QKIHsKICAg
ICAvLyBJZiB0aGlzIGlzIHRoZSBpbml0aWFsIGxvYWQsIHNraXAgdGhlIHJlcXVlc3QgYm9keSBh
bmQgaGVhZGVycy4KICAgICBpZiAoaXNJbml0aWFsKQpAQCAtMTc3LDggKzE3OCwyMiBAQCB2b2lk
IFJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChOZXR3b3JrUmVxdWVz
dCYgcGxhdGZvcm1SZXF1ZXN0LAogICAgICAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gaHR0cEhlYWRlckZpZWxkcygpLmJlZ2luKCk7IGl0ICE9IGh0dHBIZWFkZXJG
aWVsZHMoKS5lbmQoKTsgKytpdCkgewogICAgICAgICAgICAgU3RyaW5nIGtleSA9IGl0LT5maXJz
dDsKICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgICAgICBp
ZiAoIWtleS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBw
bGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKGtleS5sYXRpbjEoKS5kYXRhKCksIHZhbHVlLmxhdGlu
MSgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoIWtleS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlz
RW1wdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdGhlIGVuY29k
aW5nIGFuZCBlbmNvZGUgdGhlIGNvb2tpZSdzIHZhbHVlIHVzaW5nIGxhdGluMSBvciB1dGY4IHRv
IHN1cHBvcnQgdW5pY29kZSBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShrZXksICJDb29raWUiKSkKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1S
ZXF1ZXN0LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5jb250YWluc09ubHlM
YXRpbjEoKSA/IHZhbHVlLmxhdGluMSgpLmRhdGEoKSA6IHZhbHVlLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0
LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5sYXRpbjEoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgCisgICAgICAgIC8vIFJlZGlyZWN0aW9u
J3MgcmVzcG9uc2UgbWF5IGNvbnRhaW4gbmV3IGNvb2tpZXMsIHNvIGFkZCBjb29raWVzIGFnYWlu
LgorICAgICAgICAvLyBJZiB0aGVyZSBhcmVuJ3QgY29va2llcyBpbiB0aGUgaGVhZGVyIGxpc3Qs
IHdlIG5lZWQgdHJ5aW5nIHRvIGFkZCBjb29raWVzLgorICAgICAgICBpZiAoY29va2llc0VuYWJs
ZWQgJiYgKGlzUmVkaXJlY3QgfHwgIWh0dHBIZWFkZXJGaWVsZHMoKS5jb250YWlucygiQ29va2ll
IikpKSB7CisgICAgICAgICAgICAvLyBQcmVwYXJlIGEgY29va2llIGhlYWRlciBpZiB0aGVyZSBh
cmUgY29va2llcyByZWxhdGVkIHRvIHRoaXMgdXJsLgorICAgICAgICAgICAgU3RyaW5nIGNvb2tp
ZVBhaXJzID0gY29va2llTWFuYWdlcigpLmdldENvb2tpZSh1cmwoKSwgV2l0aEh0dHBPbmx5Q29v
a2llcyk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgICAgICBwbGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKCJDb29raWUiLCBjb29raWVQYWlycy5j
b250YWluc09ubHlMYXRpbjEoKSA/IGNvb2tpZVBhaXJzLmxhdGluMSgpLmRhdGEoKSA6IGNvb2tp
ZVBhaXJzLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTG9jYWxlIGhh
cyB0aGUgZm9ybSAiZW4tVVMiLiBDb25zdHJ1Y3QgYWNjZXB0IGxhbmd1YWdlIGxpa2UgImVuLVVT
LCBlbjtxPTAuOCIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
CmluZGV4IGM5Njk4NWI1OGI2YmMxNjM0MzA2NmFjZTYyOTUyMTVlZmExYTNiYzkuLmVkODE3OGM2
Yjk3NTJmMmIyOWMxNjU3MDQyNzY0YzNhNGQ0MmY4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihGcmFtZVAKICAgICAvLyBMZXQgdGhlIGNsaWVudCBoYXZlIGEgY2hhbmNlIHRvIHNheSB3
aGV0aGVyIHRoaXMgbmF2aWdhdGlvbiBzaG91bGQKICAgICAvLyBiZSBpZ25vcmVkIG9yIG5vdC4K
ICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0
OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3Qs
IGZhbHNlIC8qaXNJbml0aWFsKi8pOworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVx
dWVzdChwbGF0Zm9ybVJlcXVlc3QsIGNvb2tpZXNFbmFibGVkKCkpOwogICAgIGlmIChpc01haW5G
cmFtZSgpICYmICFtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YWNjZXB0TmF2aWdhdGlvblJl
cXVlc3QoCiAgICAgICAgIHBsYXRmb3JtUmVxdWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5h
dmlnYXRpb25UeXBlKGFjdGlvbi50eXBlKCkpKSkgewogICAgICAgICBpZiAoYWN0aW9uLnR5cGUo
KSA9PSBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQKQEAgLTkyMCwyMCArOTIwLDEzIEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChE
b2N1bWVudExvYWRlciogZG9jTG9hCiAKICAgICAvLyBBbnkgcHJvY2Vzc2luZyB3aGljaCBpcyBk
b25lIGZvciBhbGwgbG9hZHMgKGJvdGggbWFpbiBhbmQgc3VicmVzb3VyY2UpIHNob3VsZCBnbyBo
ZXJlLgogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJl
cXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgZmFsc2UgLyppc0luaXRpYWwqLyk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZv
cm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgbV93ZWJQ
YWdlUHJpdmF0ZS0+bV9jbGllbnQtPnBvcHVsYXRlQ3VzdG9tSGVhZGVycyhwbGF0Zm9ybVJlcXVl
c3QpOwogICAgIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdDo6SGVh
ZGVyTGlzdCYgaGVhZGVyTGlzdHMgPSBwbGF0Zm9ybVJlcXVlc3QuZ2V0SGVhZGVyTGlzdFJlZigp
OwogICAgIGZvciAoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJM
aXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckxpc3RzLmJlZ2luKCk7IGl0ICE9IGhlYWRl
ckxpc3RzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgIHN0ZDo6c3RyaW5nIGhlYWRlclN0cmluZyA9
IGl0LT5maXJzdDsKICAgICAgICAgc3RkOjpzdHJpbmcgaGVhZGVyVmFsdWVTdHJpbmcgPSBpdC0+
c2Vjb25kOwotICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVy
U3RyaW5nLmNfc3RyKCkpLCBTdHJpbmcoaGVhZGVyVmFsdWVTdHJpbmcuY19zdHIoKSkpOwotICAg
IH0KLSAgICBpZiAoY29va2llc0VuYWJsZWQoKSkgewotICAgICAgICBTdHJpbmcgY29va2llUGFp
cnMgPSBjb29raWVNYW5hZ2VyKCkuZ2V0Q29va2llKHJlcXVlc3QudXJsKCksIFdpdGhIdHRwT25s
eUNvb2tpZXMpOwotICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgLy8gV2Ugb25seSBtb2RpZnkgdGhlIFdlYkNvcmUgcmVxdWVzdCB0byBtYWtlIHRoZSBj
b29raWVzIHZpc2libGUgaW4gaW5zcGVjdG9yLgotICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nKCJDb29raWUiKSwgY29va2llUGFpcnMpOwotICAgICAgICB9Cisg
ICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbVVURjhXaXRoTGF0
aW4xRmFsbGJhY2soaGVhZGVyU3RyaW5nLmRhdGEoKSwgaGVhZGVyU3RyaW5nLmxlbmd0aCgpKSwg
U3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhoZWFkZXJWYWx1ZVN0cmluZy5kYXRh
KCksIGhlYWRlclZhbHVlU3RyaW5nLmxlbmd0aCgpKSk7CiAgICAgfQogICAgIGlmICghaXNNYWlu
UmVzb3VyY2VMb2FkKSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcgZm9yIG5vdy4KQEAgLTEwNzks
NyArMTA3Miw3IEBAIFBvbGljeUFjdGlvbiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRl
Y2lkZVBvbGljeUZvckV4dGVybmFsTG9hZChjb25zdCBSZXNvCiAgICAgICAgICAgICAmJiAhcmVx
dWVzdC5tdXN0SGFuZGxlSW50ZXJuYWxseSgpCiAgICAgICAgICAgICAmJiAhaXNGcmFnbWVudFNj
cm9sbCkgewogICAgICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxh
dGZvcm1SZXF1ZXN0OwotICAgICAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3Qo
cGxhdGZvcm1SZXF1ZXN0KTsKKyAgICAgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1
ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgICAgIG1fd2ViUGFn
ZVByaXZhdGUtPm1fY2xpZW50LT5oYW5kbGVFeHRlcm5hbExpbmsocGxhdGZvcm1SZXF1ZXN0LCBy
ZXF1ZXN0LmFuY2hvclRleHQoKS5jaGFyYWN0ZXJzKCksIHJlcXVlc3QuYW5jaG9yVGV4dCgpLmxl
bmd0aCgpLCBtX2NsaWVudFJlZGlyZWN0SXNQZW5kaW5nKTsKICAgICAgICAgcmV0dXJuIFBvbGlj
eUlnbm9yZTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmQ1NGFlM2E3Yzc0ZDY0MzNhNWE0N2EyNzliYTFlMjkw
M2NjMTY3My4uYTEwNGNhM2Q5OTg0NGQ4NGRmYzhmMGFhZmQ4NjFiYjUxZGJkMjE5YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTE5ICBKYXNvbiBMaXUgIDxqYXNvbi5saXVAdG9yY2ht
b2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJl
IHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVlc3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVz
dC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0
VXRmOENvb2tpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Nv
b2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLXJlc3VsdC5waHA6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwOiBBZGRl
ZC4KKwogMjAxMi0wMy0xOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBTdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2soKSBpbiBXS1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NDc5ZWJiMWZiNmUxNTQ3Mjc2MWQ1OTQ2OWQwZmU5ZTc2
YmYyMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMv
cmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK29t
ZSB1dGY4IGNoYXJhY3RlcnM6IFVURi04IMOmw7jDpSDkuK3lm70KKworcGhwX2Nvb2tpZTogVVRG
LTggw6bDuMOlIOS4reWbvQorCitjb29raWVzIHJlYWQgdGhyb3VnaCBqczogcGhwX2Nvb2tpZT1V
VEYtOCslQzMlQTYlQzMlQjglQzMlQTUrJUU0JUI4JUFEJUU1JTlCJUJEOyBqc19jb29raWU9VVRG
LTggw6bDuMOlIOS4reWbvQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29r
aWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1yZXN1bHQucGhwIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy1yZXN1bHQucGhwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUzMzJiNGY0ZTNlY2FiOTZhOTJmZjlhNGNjYWFiYjViOTJhZTA4ZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0
ZjhDb29raWVzLXJlc3VsdC5waHAKQEAgLTAsMCArMSwxNiBAQAorPD9waHAgaGVhZGVyKCdDb250
ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCcpOyA/PgorPGh0bWw+Cis8Ym9keT4K
KzxwPgorPD9waHAKKyAgICBlY2hvICI8cD5zb21lIHV0ZjggY2hhcmFjdGVyczogVVRGLTggw6bD
uMOlIOS4reWbvTwvcD4iOworICAgIGVjaG8gIjxwPnBocF9jb29raWU6ICIuJF9DT09LSUVbInBo
cF9jb29raWUiXS4iPC9wPiI7Cis/PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgZG9jdW1lbnQuY29va2llPSJqc19jb29raWU9VVRGLTggw6bDuMOlIOS4reWbvTsgZXhw
aXJlcz1Nb25kYXksIDA0LUFwci0yMDIwIDA1OjAwOjAwIEdNVCI7CisgICAgZG9jdW1lbnQud3Jp
dGUoImNvb2tpZXMgcmVhZCB0aHJvdWdoIGpzOiAiK2RvY3VtZW50LmNvb2tpZSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRVdGY4Q29va2llcy5waHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM3
MTRmZDg5YTY3ZDM5NzMxODQ0ODMwMjU2MDc1M2MxZGVkZDdmZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMu
cGhwCkBAIC0wLDAgKzEsNSBAQAorPD9waHAKKyAgICBzZXRjb29raWUoInBocF9jb29raWUiLCAi
VVRGLTggw6bDuMOlIOS4reWbvSIpOworICAgIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLTgnKTsKKyAgICBoZWFkZXIoJ0xvY2F0aW9uOiBzZXRVdGY4Q29va2ll
cy1yZXN1bHQucGhwJyk7Cis/Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132766</attachid>
            <date>2012-03-19 23:05:55 -0700</date>
            <delta_ts>2012-03-20 00:01:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80800-20120320140553.patch</filename>
            <type>text/plain</type>
            <size>14841</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA1MTcyOWFhYzg0MjBh
ZWViN2MxMzRmNTZlNDRjMzhkOTFhMTc0ZS4uOGY5NDY5NDgwMGNjNTk5NDkyNDkwYmExM2FmNWYy
Y2U0ZDhkZGU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTE5ICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVl
c3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKwor
ICAgICAgICBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0IHNldHMgY29va2llcyB0byByZXNvdXJjZVJlcXVlc3QncyBoZWFkZXIKKyAgICAgICAgbGlz
dCB0byBzaG93IGNvb2tpZXMgaW4gaW5zcGVjdG9yLiBBbmQgTmV0d29ya01hbmFnZXI6OnN0YXJ0
Sm9iIHdpbGwgc2V0IGNvb2tpZXMgdG8gcGxhdGZvcm1SZXF1ZXN0J3MKKyAgICAgICAgbV9jb29r
aWVEYXRhIGFnYWluLiBTbyBjb29raWVzIGFyZSBzZXQgdHdvIHRpbWVzLiBUaGlzIGNhdXNlcyBw
ZXJmb3JtYW5jZSBpc3N1ZS4KKworICAgICAgICBNb3Jlb3ZlciwgcGxhdGZvcm1SZXF1ZXN0IHdp
bGwgY29weSBjb29raWVzIGZyb20gdGhlIHJlc291cmNlUmVxdWVzdC4gQW5kIHRoZW4gcGxhdGZv
cm1SZXF1ZXN0IGhhcworICAgICAgICB0aGUgc2FtZSBjb29raWVzIGluIGl0cyBoZWFkZXIgbGlz
dCBhbmQgbV9jb29raWVEYXRhLiBOZXR3b3JrIHdpbGwgdXNlIGhlYWRlciBsaXN0J3MgY29va2ll
cyB3aGljaAorICAgICAgICBhcmUgb3V0cHV0IGFzIGxhdGluMSBvbmx5LiBUaGlzIGNhdXNlcyB0
aGUgcmVncmVzc2lvbiBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODAzMDcuCisKKyAgICAgICAgTm93LCBzZXQgY29va2llcyBpbiBpbml0aWFsaXplUGxhdGZvcm1S
ZXF1ZXN0IHRvIGVuc3VyZSBzZXR0aW5nIGNvb2tpZXMgb25seSBvbmNlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChSZXNvdXJjZVJlcXVlc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFj
a0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6
ZVBsYXRmb3JtUmVxdWVzdCk6CisKIDIwMTItMDMtMTkgIEZsb3JpbiBNYWxpdGEgIDxmbWFsaXRh
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmVsYXRpdmUtaGVpZ2h0IGJsb2NrIFNWRyByb290IG5v
dCBsYXllZCBvdXQgb24gY29udGFpbmVyIGhlaWdodCBjaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IDk4NDk2OTVjM2QzMjBmOTdhNWU3Y2IwYjhjYWQ4MzI3ZjdhMWRlOTgu
Ljc3MmIwMmUzYmYyNWQyYzczM2I2YzRlM2E4MTI3ZTQ2NjhkYWQ3MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTE5ICBKYXNvbiBMaXUg
IDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5XUNv
b2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVlc3QgYW5k
IHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKToKKwogMjAxMi0w
My0xOSAgVHlsZXIgQWJib3R0ICA8dGFiYm90dEByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBzcGVlZCB1cCB0ZXh0IHNlbGVjdGlvbiBmb3IgbGFyZ2Ugc2VsZWN0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9O
ZXR3b3JrTWFuYWdlci5jcHAKaW5kZXggN2M2MjhmMDA1N2E3ZGFkMDY0MjA4MGYyZjA0OTQ1YTQ5
ZDA4Zjk1OS4uZTM4MzJlOTMzZjkzMGFmODY4ZGFlNTY1ZmQ3NjlhYzBmZDZkYTk3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya01hbmFnZXIuY3BwCkBAIC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSAiTmV0d29y
a01hbmFnZXIuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkNvb2tpZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCkBAIC03Myw3ICs3Miw3
IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3QgU3Ry
aW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmCiAgICAgICAgIG1faW5pdGlhbFVSTCA9IEtVUkwo
KTsKIAogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJl
cXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgaXNJbml0aWFsKTsKKyAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3Qo
cGxhdGZvcm1SZXF1ZXN0LCBmcmFtZS5sb2FkZXIoKSAmJiBmcmFtZS5sb2FkZXIoKS0+Y2xpZW50
KCkgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Kj4oZnJhbWUubG9h
ZGVyKCktPmNsaWVudCgpKS0+Y29va2llc0VuYWJsZWQoKSwgaXNJbml0aWFsLCByZWRpcmVjdENv
dW50KTsKIAogICAgIC8vIEF0dGFjaCBhbnkgYXBwbGljYWJsZSBhdXRoIGNyZWRlbnRpYWxzIHRv
IHRoZSBOZXR3b3JrUmVxdWVzdC4KICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxl
bmdlID0gZ3VhcmRKb2ItPmdldEludGVybmFsKCktPm1fY3VycmVudFdlYkNoYWxsZW5nZTsKQEAg
LTExNywxNiArMTE2LDYgQEAgYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXll
cklkLCBjb25zdCBTdHJpbmcmIHBhZ2VHcm91cE5hbWUsIFBhc3NSZWYKICAgICAgICAgICAgIHBs
YXRmb3JtUmVxdWVzdC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFsLnVzZXIoKS51dGY4KCkuZGF0
YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSwgQmxhY2tCZXJyeTo6UGxh
dGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpBdXRoSFRUUEJhc2ljKTsKICAgICB9CiAKLSAgICBpZiAo
KCZmcmFtZSkgJiYgKCZmcmFtZSktPmxvYWRlcigpICYmICgmZnJhbWUpLT5sb2FkZXIoKS0+Y2xp
ZW50KCkKLSAgICAgICAgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
Kj4oKCZmcmFtZSktPmxvYWRlcigpLT5jbGllbnQoKSktPmNvb2tpZXNFbmFibGVkKCkpIHsKLSAg
ICAgICAgLy8gUHJlcGFyZSBhIGNvb2tpZSBoZWFkZXIgaWYgdGhlcmUgYXJlIGNvb2tpZXMgcmVs
YXRlZCB0byB0aGlzIHVybC4KLSAgICAgICAgU3RyaW5nIGNvb2tpZVBhaXJzID0gY29va2llTWFu
YWdlcigpLmdldENvb2tpZSh1cmwsIFdpdGhIdHRwT25seUNvb2tpZXMpOwotICAgICAgICBpZiAo
IWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVj
ayB0aGUgZW5jb2RpbmcgYW5kIGVuY29kZSB0aGUgY29va2llIGhlYWRlciBkYXRhIHVzaW5nIGxh
dGluMSBvciB1dGY4IHRvIHN1cHBvcnQgdW5pY29kZSBjaGFyYWN0ZXJzLgotICAgICAgICAgICAg
cGxhdGZvcm1SZXF1ZXN0LnNldENvb2tpZURhdGEoY29va2llUGFpcnMuY29udGFpbnNPbmx5TGF0
aW4xKCkgPyBjb29raWVQYWlycy5sYXRpbjEoKS5kYXRhKCkgOiBjb29raWVQYWlycy51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIGlmICghcmVxdWVzdC5vdmVycmlkZUNv
bnRlbnRUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICBwbGF0Zm9ybVJlcXVlc3Quc2V0T3ZlcnJp
ZGVDb250ZW50VHlwZShyZXF1ZXN0Lm92ZXJyaWRlQ29udGVudFR5cGUoKS5sYXRpbjEoKS5kYXRh
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNzA3MmViMWYzNTEzNGFkYzM2NDFi
ZDE1NDFiMTZjZGFjMTgwMTdhYi4uYWQxOTFmZjg0MjNlMzc4YWYwMGRjOGU3ZWMwNDU3YmY3ZjZj
MDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMTEwLDcgKzExMCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE11c3RIYW5kbGVJbnRlcm5hbGx5KGJvb2wgbXVzdEhhbmRsZUludGVy
bmFsbHkpIHsgbV9tdXN0SGFuZGxlSW50ZXJuYWxseSA9IG11c3RIYW5kbGVJbnRlcm5hbGx5OyB9
CiAgICAgYm9vbCBtdXN0SGFuZGxlSW50ZXJuYWxseSgpIGNvbnN0IHsgcmV0dXJuIG1fbXVzdEhh
bmRsZUludGVybmFsbHk7IH0KIAotICAgIHZvaWQgaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QmLCBib29sIGlzSW5pdGlhbCA9IGZh
bHNlKSBjb25zdDsKKyAgICB2b2lkIGluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoQmxhY2tCZXJy
eTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwgYm9vbCBjb29raWVzRW5hYmxlZCwgYm9vbCBp
c0luaXRpYWwgPSBmYWxzZSwgYm9vbCBpc1JlZGlyZWN0ID0gZmFsc2UpIGNvbnN0OwogICAgIHZv
aWQgc2V0Rm9yY2VEb3dubG9hZChib29sIGZvcmNlRG93bmxvYWQpIHsgbV9mb3JjZURvd25sb2Fk
ID0gdHJ1ZTsgfQogICAgIGJvb2wgZm9yY2VEb3dubG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9y
Y2VEb3dubG9hZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJy
eS5jcHAKaW5kZXggNWI2NzkyZmE3ZjEyMjZjZDA5OGJlOWVlMjZiODJiZDdmM2NkYmRmZC4uNjU2
N2U5NTgwMzEzOTY2OGUxY2Q3ODMxMDhmNjVkOGM0YWI1YzlmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcApAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1
ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogCiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5SW1wbC5oIgor
I2luY2x1ZGUgIkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1D
bGllbnQuaD4KICNpbmNsdWRlIDxuZXR3b3JrL05ldHdvcmtSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KQEAgLTEyNiw3ICsxMjcsNyBAQCBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dFR5cGUgUmVzb3VyY2VSZXF1ZXN0Ojp0YXJnZXRUeXBlRnJvbU1pbWVUeXBlKGNvbnN0IFN0cmlu
ZwogICAgIHJldHVybiBpdGVyLT5zZWNvbmQ7CiB9CiAKLXZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpp
bml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KE5ldHdvcmtSZXF1ZXN0JiBwbGF0Zm9ybVJlcXVlc3Qs
IGJvb2wgaXNJbml0aWFsKSBjb25zdAordm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYWxpemVQ
bGF0Zm9ybVJlcXVlc3QoTmV0d29ya1JlcXVlc3QmIHBsYXRmb3JtUmVxdWVzdCwgYm9vbCBjb29r
aWVzRW5hYmxlZCwgYm9vbCBpc0luaXRpYWwsIGJvb2wgaXNSZWRpcmVjdCkgY29uc3QKIHsKICAg
ICAvLyBJZiB0aGlzIGlzIHRoZSBpbml0aWFsIGxvYWQsIHNraXAgdGhlIHJlcXVlc3QgYm9keSBh
bmQgaGVhZGVycy4KICAgICBpZiAoaXNJbml0aWFsKQpAQCAtMTc3LDggKzE3OCwyMiBAQCB2b2lk
IFJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChOZXR3b3JrUmVxdWVz
dCYgcGxhdGZvcm1SZXF1ZXN0LAogICAgICAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gaHR0cEhlYWRlckZpZWxkcygpLmJlZ2luKCk7IGl0ICE9IGh0dHBIZWFkZXJG
aWVsZHMoKS5lbmQoKTsgKytpdCkgewogICAgICAgICAgICAgU3RyaW5nIGtleSA9IGl0LT5maXJz
dDsKICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgICAgICBp
ZiAoIWtleS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBw
bGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKGtleS5sYXRpbjEoKS5kYXRhKCksIHZhbHVlLmxhdGlu
MSgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoIWtleS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlz
RW1wdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdGhlIGVuY29k
aW5nIGFuZCBlbmNvZGUgdGhlIGNvb2tpZSdzIHZhbHVlIHVzaW5nIGxhdGluMSBvciB1dGY4IHRv
IHN1cHBvcnQgdW5pY29kZSBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShrZXksICJDb29raWUiKSkKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1S
ZXF1ZXN0LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5jb250YWluc09ubHlM
YXRpbjEoKSA/IHZhbHVlLmxhdGluMSgpLmRhdGEoKSA6IHZhbHVlLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0
LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5sYXRpbjEoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgCisgICAgICAgIC8vIFJlZGlyZWN0aW9u
J3MgcmVzcG9uc2UgbWF5IGNvbnRhaW4gbmV3IGNvb2tpZXMsIHNvIGFkZCBjb29raWVzIGFnYWlu
LgorICAgICAgICAvLyBJZiB0aGVyZSBhcmVuJ3QgY29va2llcyBpbiB0aGUgaGVhZGVyIGxpc3Qs
IHdlIG5lZWQgdHJ5aW5nIHRvIGFkZCBjb29raWVzLgorICAgICAgICBpZiAoY29va2llc0VuYWJs
ZWQgJiYgKGlzUmVkaXJlY3QgfHwgIWh0dHBIZWFkZXJGaWVsZHMoKS5jb250YWlucygiQ29va2ll
IikpKSB7CisgICAgICAgICAgICAvLyBQcmVwYXJlIGEgY29va2llIGhlYWRlciBpZiB0aGVyZSBh
cmUgY29va2llcyByZWxhdGVkIHRvIHRoaXMgdXJsLgorICAgICAgICAgICAgU3RyaW5nIGNvb2tp
ZVBhaXJzID0gY29va2llTWFuYWdlcigpLmdldENvb2tpZSh1cmwoKSwgV2l0aEh0dHBPbmx5Q29v
a2llcyk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgICAgICBwbGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKCJDb29raWUiLCBjb29raWVQYWlycy5j
b250YWluc09ubHlMYXRpbjEoKSA/IGNvb2tpZVBhaXJzLmxhdGluMSgpLmRhdGEoKSA6IGNvb2tp
ZVBhaXJzLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTG9jYWxlIGhh
cyB0aGUgZm9ybSAiZW4tVVMiLiBDb25zdHJ1Y3QgYWNjZXB0IGxhbmd1YWdlIGxpa2UgImVuLVVT
LCBlbjtxPTAuOCIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
CmluZGV4IGM5Njk4NWI1OGI2YmMxNjM0MzA2NmFjZTYyOTUyMTVlZmExYTNiYzkuLmVkODE3OGM2
Yjk3NTJmMmIyOWMxNjU3MDQyNzY0YzNhNGQ0MmY4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihGcmFtZVAKICAgICAvLyBMZXQgdGhlIGNsaWVudCBoYXZlIGEgY2hhbmNlIHRvIHNheSB3
aGV0aGVyIHRoaXMgbmF2aWdhdGlvbiBzaG91bGQKICAgICAvLyBiZSBpZ25vcmVkIG9yIG5vdC4K
ICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0
OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3Qs
IGZhbHNlIC8qaXNJbml0aWFsKi8pOworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVx
dWVzdChwbGF0Zm9ybVJlcXVlc3QsIGNvb2tpZXNFbmFibGVkKCkpOwogICAgIGlmIChpc01haW5G
cmFtZSgpICYmICFtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YWNjZXB0TmF2aWdhdGlvblJl
cXVlc3QoCiAgICAgICAgIHBsYXRmb3JtUmVxdWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5h
dmlnYXRpb25UeXBlKGFjdGlvbi50eXBlKCkpKSkgewogICAgICAgICBpZiAoYWN0aW9uLnR5cGUo
KSA9PSBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQKQEAgLTkyMCwyMCArOTIwLDEzIEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChE
b2N1bWVudExvYWRlciogZG9jTG9hCiAKICAgICAvLyBBbnkgcHJvY2Vzc2luZyB3aGljaCBpcyBk
b25lIGZvciBhbGwgbG9hZHMgKGJvdGggbWFpbiBhbmQgc3VicmVzb3VyY2UpIHNob3VsZCBnbyBo
ZXJlLgogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJl
cXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgZmFsc2UgLyppc0luaXRpYWwqLyk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZv
cm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgbV93ZWJQ
YWdlUHJpdmF0ZS0+bV9jbGllbnQtPnBvcHVsYXRlQ3VzdG9tSGVhZGVycyhwbGF0Zm9ybVJlcXVl
c3QpOwogICAgIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdDo6SGVh
ZGVyTGlzdCYgaGVhZGVyTGlzdHMgPSBwbGF0Zm9ybVJlcXVlc3QuZ2V0SGVhZGVyTGlzdFJlZigp
OwogICAgIGZvciAoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJM
aXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckxpc3RzLmJlZ2luKCk7IGl0ICE9IGhlYWRl
ckxpc3RzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgIHN0ZDo6c3RyaW5nIGhlYWRlclN0cmluZyA9
IGl0LT5maXJzdDsKICAgICAgICAgc3RkOjpzdHJpbmcgaGVhZGVyVmFsdWVTdHJpbmcgPSBpdC0+
c2Vjb25kOwotICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVy
U3RyaW5nLmNfc3RyKCkpLCBTdHJpbmcoaGVhZGVyVmFsdWVTdHJpbmcuY19zdHIoKSkpOwotICAg
IH0KLSAgICBpZiAoY29va2llc0VuYWJsZWQoKSkgewotICAgICAgICBTdHJpbmcgY29va2llUGFp
cnMgPSBjb29raWVNYW5hZ2VyKCkuZ2V0Q29va2llKHJlcXVlc3QudXJsKCksIFdpdGhIdHRwT25s
eUNvb2tpZXMpOwotICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgLy8gV2Ugb25seSBtb2RpZnkgdGhlIFdlYkNvcmUgcmVxdWVzdCB0byBtYWtlIHRoZSBj
b29raWVzIHZpc2libGUgaW4gaW5zcGVjdG9yLgotICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nKCJDb29raWUiKSwgY29va2llUGFpcnMpOwotICAgICAgICB9Cisg
ICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbVVURjhXaXRoTGF0
aW4xRmFsbGJhY2soaGVhZGVyU3RyaW5nLmRhdGEoKSwgaGVhZGVyU3RyaW5nLmxlbmd0aCgpKSwg
U3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhoZWFkZXJWYWx1ZVN0cmluZy5kYXRh
KCksIGhlYWRlclZhbHVlU3RyaW5nLmxlbmd0aCgpKSk7CiAgICAgfQogICAgIGlmICghaXNNYWlu
UmVzb3VyY2VMb2FkKSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcgZm9yIG5vdy4KQEAgLTEwNzks
NyArMTA3Miw3IEBAIFBvbGljeUFjdGlvbiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRl
Y2lkZVBvbGljeUZvckV4dGVybmFsTG9hZChjb25zdCBSZXNvCiAgICAgICAgICAgICAmJiAhcmVx
dWVzdC5tdXN0SGFuZGxlSW50ZXJuYWxseSgpCiAgICAgICAgICAgICAmJiAhaXNGcmFnbWVudFNj
cm9sbCkgewogICAgICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxh
dGZvcm1SZXF1ZXN0OwotICAgICAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3Qo
cGxhdGZvcm1SZXF1ZXN0KTsKKyAgICAgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1
ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgICAgIG1fd2ViUGFn
ZVByaXZhdGUtPm1fY2xpZW50LT5oYW5kbGVFeHRlcm5hbExpbmsocGxhdGZvcm1SZXF1ZXN0LCBy
ZXF1ZXN0LmFuY2hvclRleHQoKS5jaGFyYWN0ZXJzKCksIHJlcXVlc3QuYW5jaG9yVGV4dCgpLmxl
bmd0aCgpLCBtX2NsaWVudFJlZGlyZWN0SXNQZW5kaW5nKTsKICAgICAgICAgcmV0dXJuIFBvbGlj
eUlnbm9yZTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmQ1NGFlM2E3Yzc0ZDY0MzNhNWE0N2EyNzliYTFlMjkw
M2NjMTY3My4uYTEwNGNhM2Q5OTg0NGQ4NGRmYzhmMGFhZmQ4NjFiYjUxZGJkMjE5YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTE5ICBKYXNvbiBMaXUgIDxqYXNvbi5saXVAdG9yY2ht
b2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJl
IHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVlc3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVz
dC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0
VXRmOENvb2tpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Nv
b2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLXJlc3VsdC5waHA6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwOiBBZGRl
ZC4KKwogMjAxMi0wMy0xOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBTdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2soKSBpbiBXS1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMzFmYTEyOWYzZDk5ZmUzMzY0ZGNiZjhmOWViYTBhZWY2
YTk3ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMv
cmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK3Nv
bWUgdXRmOCBjaGFyYWN0ZXJzOiBVVEYtOCDDpsO4w6Ug5Lit5Zu9CisKK3BocF9jb29raWU6IFVU
Ri04IMOmw7jDpSDkuK3lm70KKworY29va2llcyByZWFkIHRocm91Z2gganM6IHBocF9jb29raWU9
VVRGLTgrJUMzJUE2JUMzJUI4JUMzJUE1KyVFNCVCOCVBRCVFNSU5QiVCRDsganNfY29va2llPVVU
Ri04IMOmw7jDpSDkuK3lm70KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtcmVzdWx0LnBocCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtcmVzdWx0LnBocApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMzMyYjRmNGUzZWNhYjk2YTkyZmY5YTRjY2FhYmI1YjkyYWUwOGY4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRV
dGY4Q29va2llcy1yZXN1bHQucGhwCkBAIC0wLDAgKzEsMTYgQEAKKzw/cGhwIGhlYWRlcignQ29u
dGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnKTsgPz4KKzxodG1sPgorPGJvZHk+
Cis8cD4KKzw/cGhwCisgICAgZWNobyAiPHA+c29tZSB1dGY4IGNoYXJhY3RlcnM6IFVURi04IMOm
w7jDpSDkuK3lm708L3A+IjsKKyAgICBlY2hvICI8cD5waHBfY29va2llOiAiLiRfQ09PS0lFWyJw
aHBfY29va2llIl0uIjwvcD4iOworPz4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGRvY3VtZW50LmNvb2tpZT0ianNfY29va2llPVVURi04IMOmw7jDpSDkuK3lm707IGV4
cGlyZXM9TW9uZGF5LCAwNC1BcHItMjAyMCAwNTowMDowMCBHTVQiOworICAgIGRvY3VtZW50Lndy
aXRlKCJjb29raWVzIHJlYWQgdGhyb3VnaCBqczogIitkb2N1bWVudC5jb29raWUpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLnBocCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJj
NzE0ZmQ4OWE2N2QzOTczMTg0NDgzMDI1NjA3NTNjMWRlZGQ3ZmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVz
LnBocApAQCAtMCwwICsxLDUgQEAKKzw/cGhwCisgICAgc2V0Y29va2llKCJwaHBfY29va2llIiwg
IlVURi04IMOmw7jDpSDkuK3lm70iKTsKKyAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9o
dG1sOyBjaGFyc2V0PVVURi04Jyk7CisgICAgaGVhZGVyKCdMb2NhdGlvbjogc2V0VXRmOENvb2tp
ZXMtcmVzdWx0LnBocCcpOworPz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132772</attachid>
            <date>2012-03-20 00:01:29 -0700</date>
            <delta_ts>2012-03-20 01:24:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80800-20120320150127.patch</filename>
            <type>text/plain</type>
            <size>14841</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA1MTcyOWFhYzg0MjBh
ZWViN2MxMzRmNTZlNDRjMzhkOTFhMTc0ZS4uYmM0NGI5YzJiYWVlZTAzN2JhYmRjMTE0OTNlY2Nl
ZWVhYmQ3OTRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTE5ICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVl
c3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKwor
ICAgICAgICBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0IHNldHMgY29va2llcyB0byByZXNvdXJjZVJlcXVlc3QncyBoZWFkZXIKKyAgICAgICAgbGlz
dCB0byBzaG93IGNvb2tpZXMgaW4gaW5zcGVjdG9yLiBBbmQgTmV0d29ya01hbmFnZXI6OnN0YXJ0
Sm9iIHdpbGwgc2V0IGNvb2tpZXMgdG8gcGxhdGZvcm1SZXF1ZXN0J3MKKyAgICAgICAgbV9jb29r
aWVEYXRhIGFnYWluLiBTbyBjb29raWVzIGFyZSBzZXQgdHdvIHRpbWVzLiBUaGlzIGNhdXNlcyBw
ZXJmb3JtYW5jZSBpc3N1ZS4KKworICAgICAgICBNb3Jlb3ZlciwgcGxhdGZvcm1SZXF1ZXN0IHdp
bGwgY29weSBjb29raWVzIGZyb20gdGhlIHJlc291cmNlUmVxdWVzdC4gQW5kIHRoZW4gcGxhdGZv
cm1SZXF1ZXN0IGhhcworICAgICAgICB0aGUgc2FtZSBjb29raWVzIGluIGl0cyBoZWFkZXIgbGlz
dCBhbmQgbV9jb29raWVEYXRhLiBOZXR3b3JrIHdpbGwgdXNlIGhlYWRlciBsaXN0J3MgY29va2ll
cyB3aGljaAorICAgICAgICBhcmUgb3V0cHV0IGFzIGxhdGluMSBvbmx5LiBUaGlzIGNhdXNlcyB0
aGUgcmVncmVzc2lvbiBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODAzMDcuCisKKyAgICAgICAgTm93LCBzZXQgY29va2llcyBpbiBpbml0aWFsaXplUGxhdGZvcm1S
ZXF1ZXN0IHRvIGVuc3VyZSBzZXR0aW5nIGNvb2tpZXMgb25seSBvbmNlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEdlb3JnZSBTdGFpa29zLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChSZXNvdXJjZVJlcXVlc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFj
a0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6
ZVBsYXRmb3JtUmVxdWVzdCk6CisKIDIwMTItMDMtMTkgIEZsb3JpbiBNYWxpdGEgIDxmbWFsaXRh
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmVsYXRpdmUtaGVpZ2h0IGJsb2NrIFNWRyByb290IG5v
dCBsYXllZCBvdXQgb24gY29udGFpbmVyIGhlaWdodCBjaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IDk4NDk2OTVjM2QzMjBmOTdhNWU3Y2IwYjhjYWQ4MzI3ZjdhMWRlOTgu
LjY0OGNhMjNmZDg2NGU5NjcwMDkxODExOTRiMTQzYTAxOWJjYzYxMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTE5ICBKYXNvbiBMaXUg
IDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5XUNv
b2tpZXMgc2hvdWxkbid0IGJlIHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVlc3QgYW5k
IHBsYXRmb3JtJ3MgcmVxdWVzdC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBHZW9yZ2UgU3RhaWtvcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKToKKwogMjAxMi0w
My0xOSAgVHlsZXIgQWJib3R0ICA8dGFiYm90dEByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBzcGVlZCB1cCB0ZXh0IHNlbGVjdGlvbiBmb3IgbGFyZ2Ugc2VsZWN0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9O
ZXR3b3JrTWFuYWdlci5jcHAKaW5kZXggN2M2MjhmMDA1N2E3ZGFkMDY0MjA4MGYyZjA0OTQ1YTQ5
ZDA4Zjk1OS4uZTM4MzJlOTMzZjkzMGFmODY4ZGFlNTY1ZmQ3NjlhYzBmZDZkYTk3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya01hbmFnZXIuY3BwCkBAIC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSAiTmV0d29y
a01hbmFnZXIuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkNvb2tpZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCkBAIC03Myw3ICs3Miw3
IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3QgU3Ry
aW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmCiAgICAgICAgIG1faW5pdGlhbFVSTCA9IEtVUkwo
KTsKIAogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJl
cXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgaXNJbml0aWFsKTsKKyAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3Qo
cGxhdGZvcm1SZXF1ZXN0LCBmcmFtZS5sb2FkZXIoKSAmJiBmcmFtZS5sb2FkZXIoKS0+Y2xpZW50
KCkgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Kj4oZnJhbWUubG9h
ZGVyKCktPmNsaWVudCgpKS0+Y29va2llc0VuYWJsZWQoKSwgaXNJbml0aWFsLCByZWRpcmVjdENv
dW50KTsKIAogICAgIC8vIEF0dGFjaCBhbnkgYXBwbGljYWJsZSBhdXRoIGNyZWRlbnRpYWxzIHRv
IHRoZSBOZXR3b3JrUmVxdWVzdC4KICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxl
bmdlID0gZ3VhcmRKb2ItPmdldEludGVybmFsKCktPm1fY3VycmVudFdlYkNoYWxsZW5nZTsKQEAg
LTExNywxNiArMTE2LDYgQEAgYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXll
cklkLCBjb25zdCBTdHJpbmcmIHBhZ2VHcm91cE5hbWUsIFBhc3NSZWYKICAgICAgICAgICAgIHBs
YXRmb3JtUmVxdWVzdC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFsLnVzZXIoKS51dGY4KCkuZGF0
YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSwgQmxhY2tCZXJyeTo6UGxh
dGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpBdXRoSFRUUEJhc2ljKTsKICAgICB9CiAKLSAgICBpZiAo
KCZmcmFtZSkgJiYgKCZmcmFtZSktPmxvYWRlcigpICYmICgmZnJhbWUpLT5sb2FkZXIoKS0+Y2xp
ZW50KCkKLSAgICAgICAgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
Kj4oKCZmcmFtZSktPmxvYWRlcigpLT5jbGllbnQoKSktPmNvb2tpZXNFbmFibGVkKCkpIHsKLSAg
ICAgICAgLy8gUHJlcGFyZSBhIGNvb2tpZSBoZWFkZXIgaWYgdGhlcmUgYXJlIGNvb2tpZXMgcmVs
YXRlZCB0byB0aGlzIHVybC4KLSAgICAgICAgU3RyaW5nIGNvb2tpZVBhaXJzID0gY29va2llTWFu
YWdlcigpLmdldENvb2tpZSh1cmwsIFdpdGhIdHRwT25seUNvb2tpZXMpOwotICAgICAgICBpZiAo
IWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVj
ayB0aGUgZW5jb2RpbmcgYW5kIGVuY29kZSB0aGUgY29va2llIGhlYWRlciBkYXRhIHVzaW5nIGxh
dGluMSBvciB1dGY4IHRvIHN1cHBvcnQgdW5pY29kZSBjaGFyYWN0ZXJzLgotICAgICAgICAgICAg
cGxhdGZvcm1SZXF1ZXN0LnNldENvb2tpZURhdGEoY29va2llUGFpcnMuY29udGFpbnNPbmx5TGF0
aW4xKCkgPyBjb29raWVQYWlycy5sYXRpbjEoKS5kYXRhKCkgOiBjb29raWVQYWlycy51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIGlmICghcmVxdWVzdC5vdmVycmlkZUNv
bnRlbnRUeXBlKCkuaXNFbXB0eSgpKQogICAgICAgICBwbGF0Zm9ybVJlcXVlc3Quc2V0T3ZlcnJp
ZGVDb250ZW50VHlwZShyZXF1ZXN0Lm92ZXJyaWRlQ29udGVudFR5cGUoKS5sYXRpbjEoKS5kYXRh
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNzA3MmViMWYzNTEzNGFkYzM2NDFi
ZDE1NDFiMTZjZGFjMTgwMTdhYi4uYWQxOTFmZjg0MjNlMzc4YWYwMGRjOGU3ZWMwNDU3YmY3ZjZj
MDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMTEwLDcgKzExMCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE11c3RIYW5kbGVJbnRlcm5hbGx5KGJvb2wgbXVzdEhhbmRsZUludGVy
bmFsbHkpIHsgbV9tdXN0SGFuZGxlSW50ZXJuYWxseSA9IG11c3RIYW5kbGVJbnRlcm5hbGx5OyB9
CiAgICAgYm9vbCBtdXN0SGFuZGxlSW50ZXJuYWxseSgpIGNvbnN0IHsgcmV0dXJuIG1fbXVzdEhh
bmRsZUludGVybmFsbHk7IH0KIAotICAgIHZvaWQgaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QmLCBib29sIGlzSW5pdGlhbCA9IGZh
bHNlKSBjb25zdDsKKyAgICB2b2lkIGluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QoQmxhY2tCZXJy
eTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwgYm9vbCBjb29raWVzRW5hYmxlZCwgYm9vbCBp
c0luaXRpYWwgPSBmYWxzZSwgYm9vbCBpc1JlZGlyZWN0ID0gZmFsc2UpIGNvbnN0OwogICAgIHZv
aWQgc2V0Rm9yY2VEb3dubG9hZChib29sIGZvcmNlRG93bmxvYWQpIHsgbV9mb3JjZURvd25sb2Fk
ID0gdHJ1ZTsgfQogICAgIGJvb2wgZm9yY2VEb3dubG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9y
Y2VEb3dubG9hZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJy
eS5jcHAKaW5kZXggNWI2NzkyZmE3ZjEyMjZjZDA5OGJlOWVlMjZiODJiZDdmM2NkYmRmZC4uNjU2
N2U5NTgwMzEzOTY2OGUxY2Q3ODMxMDhmNjVkOGM0YWI1YzlmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcApAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1
ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogCiAjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5SW1wbC5oIgor
I2luY2x1ZGUgIkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1D
bGllbnQuaD4KICNpbmNsdWRlIDxuZXR3b3JrL05ldHdvcmtSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KQEAgLTEyNiw3ICsxMjcsNyBAQCBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dFR5cGUgUmVzb3VyY2VSZXF1ZXN0Ojp0YXJnZXRUeXBlRnJvbU1pbWVUeXBlKGNvbnN0IFN0cmlu
ZwogICAgIHJldHVybiBpdGVyLT5zZWNvbmQ7CiB9CiAKLXZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpp
bml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KE5ldHdvcmtSZXF1ZXN0JiBwbGF0Zm9ybVJlcXVlc3Qs
IGJvb2wgaXNJbml0aWFsKSBjb25zdAordm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYWxpemVQ
bGF0Zm9ybVJlcXVlc3QoTmV0d29ya1JlcXVlc3QmIHBsYXRmb3JtUmVxdWVzdCwgYm9vbCBjb29r
aWVzRW5hYmxlZCwgYm9vbCBpc0luaXRpYWwsIGJvb2wgaXNSZWRpcmVjdCkgY29uc3QKIHsKICAg
ICAvLyBJZiB0aGlzIGlzIHRoZSBpbml0aWFsIGxvYWQsIHNraXAgdGhlIHJlcXVlc3QgYm9keSBh
bmQgaGVhZGVycy4KICAgICBpZiAoaXNJbml0aWFsKQpAQCAtMTc3LDggKzE3OCwyMiBAQCB2b2lk
IFJlc291cmNlUmVxdWVzdDo6aW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChOZXR3b3JrUmVxdWVz
dCYgcGxhdGZvcm1SZXF1ZXN0LAogICAgICAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gaHR0cEhlYWRlckZpZWxkcygpLmJlZ2luKCk7IGl0ICE9IGh0dHBIZWFkZXJG
aWVsZHMoKS5lbmQoKTsgKytpdCkgewogICAgICAgICAgICAgU3RyaW5nIGtleSA9IGl0LT5maXJz
dDsKICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgICAgICBp
ZiAoIWtleS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBw
bGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKGtleS5sYXRpbjEoKS5kYXRhKCksIHZhbHVlLmxhdGlu
MSgpLmRhdGEoKSk7CisgICAgICAgICAgICBpZiAoIWtleS5pc0VtcHR5KCkgJiYgIXZhbHVlLmlz
RW1wdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdGhlIGVuY29k
aW5nIGFuZCBlbmNvZGUgdGhlIGNvb2tpZSdzIHZhbHVlIHVzaW5nIGxhdGluMSBvciB1dGY4IHRv
IHN1cHBvcnQgdW5pY29kZSBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShrZXksICJDb29raWUiKSkKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1S
ZXF1ZXN0LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5jb250YWluc09ubHlM
YXRpbjEoKSA/IHZhbHVlLmxhdGluMSgpLmRhdGEoKSA6IHZhbHVlLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1SZXF1ZXN0
LmFkZEhlYWRlcihrZXkubGF0aW4xKCkuZGF0YSgpLCB2YWx1ZS5sYXRpbjEoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgCisgICAgICAgIC8vIFJlZGlyZWN0aW9u
J3MgcmVzcG9uc2UgbWF5IGNvbnRhaW4gbmV3IGNvb2tpZXMsIHNvIGFkZCBjb29raWVzIGFnYWlu
LgorICAgICAgICAvLyBJZiB0aGVyZSBhcmVuJ3QgY29va2llcyBpbiB0aGUgaGVhZGVyIGxpc3Qs
IHdlIG5lZWQgdHJ5aW5nIHRvIGFkZCBjb29raWVzLgorICAgICAgICBpZiAoY29va2llc0VuYWJs
ZWQgJiYgKGlzUmVkaXJlY3QgfHwgIWh0dHBIZWFkZXJGaWVsZHMoKS5jb250YWlucygiQ29va2ll
IikpKSB7CisgICAgICAgICAgICAvLyBQcmVwYXJlIGEgY29va2llIGhlYWRlciBpZiB0aGVyZSBh
cmUgY29va2llcyByZWxhdGVkIHRvIHRoaXMgdXJsLgorICAgICAgICAgICAgU3RyaW5nIGNvb2tp
ZVBhaXJzID0gY29va2llTWFuYWdlcigpLmdldENvb2tpZSh1cmwoKSwgV2l0aEh0dHBPbmx5Q29v
a2llcyk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgICAgICBwbGF0Zm9ybVJlcXVlc3QuYWRkSGVhZGVyKCJDb29raWUiLCBjb29raWVQYWlycy5j
b250YWluc09ubHlMYXRpbjEoKSA/IGNvb2tpZVBhaXJzLmxhdGluMSgpLmRhdGEoKSA6IGNvb2tp
ZVBhaXJzLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTG9jYWxlIGhh
cyB0aGUgZm9ybSAiZW4tVVMiLiBDb25zdHJ1Y3QgYWNjZXB0IGxhbmd1YWdlIGxpa2UgImVuLVVT
LCBlbjtxPTAuOCIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3Bw
CmluZGV4IGM5Njk4NWI1OGI2YmMxNjM0MzA2NmFjZTYyOTUyMTVlZmExYTNiYzkuLmVkODE3OGM2
Yjk3NTJmMmIyOWMxNjU3MDQyNzY0YzNhNGQ0MmY4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihGcmFtZVAKICAgICAvLyBMZXQgdGhlIGNsaWVudCBoYXZlIGEgY2hhbmNlIHRvIHNheSB3
aGV0aGVyIHRoaXMgbmF2aWdhdGlvbiBzaG91bGQKICAgICAvLyBiZSBpZ25vcmVkIG9yIG5vdC4K
ICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0
OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3Qs
IGZhbHNlIC8qaXNJbml0aWFsKi8pOworICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVx
dWVzdChwbGF0Zm9ybVJlcXVlc3QsIGNvb2tpZXNFbmFibGVkKCkpOwogICAgIGlmIChpc01haW5G
cmFtZSgpICYmICFtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+YWNjZXB0TmF2aWdhdGlvblJl
cXVlc3QoCiAgICAgICAgIHBsYXRmb3JtUmVxdWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5h
dmlnYXRpb25UeXBlKGFjdGlvbi50eXBlKCkpKSkgewogICAgICAgICBpZiAoYWN0aW9uLnR5cGUo
KSA9PSBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQKQEAgLTkyMCwyMCArOTIwLDEzIEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChE
b2N1bWVudExvYWRlciogZG9jTG9hCiAKICAgICAvLyBBbnkgcHJvY2Vzc2luZyB3aGljaCBpcyBk
b25lIGZvciBhbGwgbG9hZHMgKGJvdGggbWFpbiBhbmQgc3VicmVzb3VyY2UpIHNob3VsZCBnbyBo
ZXJlLgogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJl
cXVlc3Q7Ci0gICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVx
dWVzdCwgZmFsc2UgLyppc0luaXRpYWwqLyk7CisgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZv
cm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgbV93ZWJQ
YWdlUHJpdmF0ZS0+bV9jbGllbnQtPnBvcHVsYXRlQ3VzdG9tSGVhZGVycyhwbGF0Zm9ybVJlcXVl
c3QpOwogICAgIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdDo6SGVh
ZGVyTGlzdCYgaGVhZGVyTGlzdHMgPSBwbGF0Zm9ybVJlcXVlc3QuZ2V0SGVhZGVyTGlzdFJlZigp
OwogICAgIGZvciAoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJM
aXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckxpc3RzLmJlZ2luKCk7IGl0ICE9IGhlYWRl
ckxpc3RzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgIHN0ZDo6c3RyaW5nIGhlYWRlclN0cmluZyA9
IGl0LT5maXJzdDsKICAgICAgICAgc3RkOjpzdHJpbmcgaGVhZGVyVmFsdWVTdHJpbmcgPSBpdC0+
c2Vjb25kOwotICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChTdHJpbmcoaGVhZGVy
U3RyaW5nLmNfc3RyKCkpLCBTdHJpbmcoaGVhZGVyVmFsdWVTdHJpbmcuY19zdHIoKSkpOwotICAg
IH0KLSAgICBpZiAoY29va2llc0VuYWJsZWQoKSkgewotICAgICAgICBTdHJpbmcgY29va2llUGFp
cnMgPSBjb29raWVNYW5hZ2VyKCkuZ2V0Q29va2llKHJlcXVlc3QudXJsKCksIFdpdGhIdHRwT25s
eUNvb2tpZXMpOwotICAgICAgICBpZiAoIWNvb2tpZVBhaXJzLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgLy8gV2Ugb25seSBtb2RpZnkgdGhlIFdlYkNvcmUgcmVxdWVzdCB0byBtYWtlIHRoZSBj
b29raWVzIHZpc2libGUgaW4gaW5zcGVjdG9yLgotICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoU3RyaW5nKCJDb29raWUiKSwgY29va2llUGFpcnMpOwotICAgICAgICB9Cisg
ICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbVVURjhXaXRoTGF0
aW4xRmFsbGJhY2soaGVhZGVyU3RyaW5nLmRhdGEoKSwgaGVhZGVyU3RyaW5nLmxlbmd0aCgpKSwg
U3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhoZWFkZXJWYWx1ZVN0cmluZy5kYXRh
KCksIGhlYWRlclZhbHVlU3RyaW5nLmxlbmd0aCgpKSk7CiAgICAgfQogICAgIGlmICghaXNNYWlu
UmVzb3VyY2VMb2FkKSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcgZm9yIG5vdy4KQEAgLTEwNzks
NyArMTA3Miw3IEBAIFBvbGljeUFjdGlvbiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRl
Y2lkZVBvbGljeUZvckV4dGVybmFsTG9hZChjb25zdCBSZXNvCiAgICAgICAgICAgICAmJiAhcmVx
dWVzdC5tdXN0SGFuZGxlSW50ZXJuYWxseSgpCiAgICAgICAgICAgICAmJiAhaXNGcmFnbWVudFNj
cm9sbCkgewogICAgICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxh
dGZvcm1SZXF1ZXN0OwotICAgICAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3Qo
cGxhdGZvcm1SZXF1ZXN0KTsKKyAgICAgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1
ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgICAgIG1fd2ViUGFn
ZVByaXZhdGUtPm1fY2xpZW50LT5oYW5kbGVFeHRlcm5hbExpbmsocGxhdGZvcm1SZXF1ZXN0LCBy
ZXF1ZXN0LmFuY2hvclRleHQoKS5jaGFyYWN0ZXJzKCksIHJlcXVlc3QuYW5jaG9yVGV4dCgpLmxl
bmd0aCgpLCBtX2NsaWVudFJlZGlyZWN0SXNQZW5kaW5nKTsKICAgICAgICAgcmV0dXJuIFBvbGlj
eUlnbm9yZTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmQ1NGFlM2E3Yzc0ZDY0MzNhNWE0N2EyNzliYTFlMjkw
M2NjMTY3My4uYThlZDJlNmY4MDYwYzY5NjkzYTBkM2YwMmM0ZWIwNTFiZGJiMGY3YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTE5ICBKYXNvbiBMaXUgIDxqYXNvbi5saXVAdG9yY2ht
b2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5XUNvb2tpZXMgc2hvdWxkbid0IGJl
IHNldCBpbnRvIGVhY2ggb2Ygd2ViY29yZSdzIHJlcXVlc3QgYW5kIHBsYXRmb3JtJ3MgcmVxdWVz
dC4gQW5kIHRoaXMgbWFrZXMgYSByZWdyZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4MDAKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9y
Z2UgU3RhaWtvcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0
VXRmOENvb2tpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Nv
b2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLXJlc3VsdC5waHA6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwOiBBZGRl
ZC4KKwogMjAxMi0wMy0xOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBTdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2soKSBpbiBXS1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMzFmYTEyOWYzZDk5ZmUzMzY0ZGNiZjhmOWViYTBhZWY2
YTk3ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMv
cmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK3Nv
bWUgdXRmOCBjaGFyYWN0ZXJzOiBVVEYtOCDDpsO4w6Ug5Lit5Zu9CisKK3BocF9jb29raWU6IFVU
Ri04IMOmw7jDpSDkuK3lm70KKworY29va2llcyByZWFkIHRocm91Z2gganM6IHBocF9jb29raWU9
VVRGLTgrJUMzJUE2JUMzJUI4JUMzJUE1KyVFNCVCOCVBRCVFNSU5QiVCRDsganNfY29va2llPVVU
Ri04IMOmw7jDpSDkuK3lm70KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtcmVzdWx0LnBocCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMtcmVzdWx0LnBocApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMzMyYjRmNGUzZWNhYjk2YTkyZmY5YTRjY2FhYmI1YjkyYWUwOGY4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9zZXRV
dGY4Q29va2llcy1yZXN1bHQucGhwCkBAIC0wLDAgKzEsMTYgQEAKKzw/cGhwIGhlYWRlcignQ29u
dGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnKTsgPz4KKzxodG1sPgorPGJvZHk+
Cis8cD4KKzw/cGhwCisgICAgZWNobyAiPHA+c29tZSB1dGY4IGNoYXJhY3RlcnM6IFVURi04IMOm
w7jDpSDkuK3lm708L3A+IjsKKyAgICBlY2hvICI8cD5waHBfY29va2llOiAiLiRfQ09PS0lFWyJw
aHBfY29va2llIl0uIjwvcD4iOworPz4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGRvY3VtZW50LmNvb2tpZT0ianNfY29va2llPVVURi04IMOmw7jDpSDkuK3lm707IGV4
cGlyZXM9TW9uZGF5LCAwNC1BcHItMjAyMCAwNTowMDowMCBHTVQiOworICAgIGRvY3VtZW50Lndy
aXRlKCJjb29raWVzIHJlYWQgdGhyb3VnaCBqczogIitkb2N1bWVudC5jb29raWUpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVzLnBocCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29va2llcy9yZXNvdXJjZXMvc2V0VXRmOENvb2tpZXMucGhwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJj
NzE0ZmQ4OWE2N2QzOTczMTg0NDgzMDI1NjA3NTNjMWRlZGQ3ZmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL3NldFV0ZjhDb29raWVz
LnBocApAQCAtMCwwICsxLDUgQEAKKzw/cGhwCisgICAgc2V0Y29va2llKCJwaHBfY29va2llIiwg
IlVURi04IMOmw7jDpSDkuK3lm70iKTsKKyAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9o
dG1sOyBjaGFyc2V0PVVURi04Jyk7CisgICAgaGVhZGVyKCdMb2NhdGlvbjogc2V0VXRmOENvb2tp
ZXMtcmVzdWx0LnBocCcpOworPz4K
</data>

          </attachment>
      

    </bug>

</bugzilla>