<?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>60348</bug_id>
          
          <creation_ts>2011-05-06 00:23:51 -0700</creation_ts>
          <short_desc>WebSocket: Add run-time flag for new HyBi protocol</short_desc>
          <delta_ts>2011-06-24 05:18:38 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50099</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>mjs</cc>
    
    <cc>tkent</cc>
    
    <cc>ukai</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yuzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>399376</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-06 00:23:51 -0700</bug_when>
    <thetext>Add a run-time flag in Settings that will be used for switching WebSocket protocols.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399403</commentid>
    <comment_count>1</comment_count>
      <attachid>92555</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-06 00:49:08 -0700</bug_when>
    <thetext>Created attachment 92555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399412</commentid>
    <comment_count>2</comment_count>
      <attachid>92555</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-06 01:12:24 -0700</bug_when>
    <thetext>Comment on attachment 92555
Patch

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

&gt; Source/WebCore/ChangeLog:18
&gt; +        (WebCore::Settings::setUseNewHyBiWebSocketProtocol):
&gt; +        (WebCore::Settings::useNewHyBiWebSocketProtocol):

A drive-by comment.

Can you make the name more specific, instead of &apos;NewHyBi&apos;?
&apos;NewHyBi&apos; can be ambiguous.  If we introduced another incompatible protocol, &apos;new&apos; would not be identical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399415</commentid>
    <comment_count>3</comment_count>
      <attachid>92555</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2011-05-06 01:16:26 -0700</bug_when>
    <thetext>Comment on attachment 92555
Patch

Can we access (per page) Settings if WebSocket is used in worker context?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399419</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-06 01:20:29 -0700</bug_when>
    <thetext>Why are we adding a setting for enabling the new version?  It seems like this should either be an ENABLE macro or we should just replace the old version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399500</commentid>
    <comment_count>5</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-05-06 07:22:08 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Why are we adding a setting for enabling the new version?  It seems like this should either be an ENABLE macro or we should just replace the old version.

I agree.  It should be a compile-time switch for now, and eventually we should just remove the old version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400325</commentid>
    <comment_count>6</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-08 19:49:56 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Why are we adding a setting for enabling the new version?  It seems like this should either be an ENABLE macro or we should just replace the old version.

It was my intention to just replace the old version, but Alexey (ap) was not happy about it because of legacy servers.

ENABLE macro is fine with me, but I&apos;m a bit worried about testing. The new protocol requires a different set of tests by its nature, and I don&apos;t know how to test both versions when we create a new ENABLE macro. If we use a Setting flag, we can switch protocol versions via LayoutTestController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400329</commentid>
    <comment_count>7</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-08 19:57:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Can you make the name more specific, instead of &apos;NewHyBi&apos;?
&gt; &apos;NewHyBi&apos; can be ambiguous.  If we introduced another incompatible protocol, &apos;new&apos; would not be identical.

It&apos;s hard to name the new protocol; We may call it &quot;HyBi07&quot;, but the name is not very stable as we will have hybi-08 specification in the near future. Or we could just call it &quot;HyBi&quot;, but it is also ambiguous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400331</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-08 20:04:39 -0700</bug_when>
    <thetext>In WebKit, we always special case &quot;old&quot;, not &quot;new&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400351</commentid>
    <comment_count>9</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-08 23:10:54 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; In WebKit, we always special case &quot;old&quot;, not &quot;new&quot;.

Sure, I will update the patch to change the name of the flag to &quot;useHixie76WebSocketProtocol&quot;, which should be less ambiguous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400366</commentid>
    <comment_count>10</comment_count>
      <attachid>92762</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-09 00:04:09 -0700</bug_when>
    <thetext>Created attachment 92762
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400384</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-09 01:06:47 -0700</bug_when>
    <thetext>&gt; It was my intention to just replace the old version, but Alexey (ap) was not happy about it because of legacy servers.

I don&apos;t think we want to commit to supporting legacy servers.  My understanding is that none of the other browsers are going to either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400485</commentid>
    <comment_count>12</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-05-09 07:19:40 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; It was my intention to just replace the old version, but Alexey (ap) was not happy about it because of legacy servers.
&gt; 
&gt; I don&apos;t think we want to commit to supporting legacy servers.  My understanding is that none of the other browsers are going to either.

As soon as supporting both versions at once causes complications or slows down development, we should drop the old version.  But if it turns out to be simple to do, we might as well continue to support both until the new version is completely implemented and stable, and then make a political decision whether to drop support for the old version in core or leave it up to the browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400785</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-09 15:03:53 -0700</bug_when>
    <thetext>Nobody says that we should commit to eternally supporting the version that&apos;s used by 100% of sites utilizing WebSockets on the Web today, and implemented by all browsers that support WebSockets.

Dropping that support for a version that&apos;s not in use by anyone - and may never be in its current state - is a different thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400789</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-09 15:08:09 -0700</bug_when>
    <thetext>Isn&apos;t this a case of &quot;pay me now or pay me later&quot; ?  It&apos;s unclear what we gain by delaying paying off this compat monster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400815</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-09 15:29:25 -0700</bug_when>
    <thetext>Delaying switching at least until IE and/or Firefox ship the new version would mean that we won&apos;t have to switch again, to hybi-08 or whatever. Tracking the most recent specification only caused us and our users trouble - a lot of servers already have to support -75 and -76, and they will have to support the version that IE and Firefox decide to implement. Adding -07 to the mix would be extremely unhelpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400903</commentid>
    <comment_count>16</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-05-09 16:51:19 -0700</bug_when>
    <thetext>The spec churn is slow enough now that most of the work done to support HyBi-07 will still apply to HyBi-08 when it&apos;s out.  We shouldn&apos;t throw the switch to make the new version the default / shut off the old version until there&apos;s a consensus between several browser vendors on a stable supported version, but we can get started on implementing the new version now.

If it turns out to be too messy to support both in parallel in svn head, we could develop this as a clean replacement in a separate branch and not pull it into head until it&apos;s time to switch.  (Don&apos;t know how hard that would be using svn - I&apos;ve been using git so long that I&apos;ve forgotten svn&apos;s capabilities.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400906</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-09 16:55:09 -0700</bug_when>
    <thetext>Yes, that sounds good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401067</commentid>
    <comment_count>18</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-09 22:56:40 -0700</bug_when>
    <thetext>Hmm, to make a branch, do I need just to copy the trunk into &quot;branch/&quot; directory? Do I need any review to do that?

(I&apos;m going to have to fight against svn because I usually use git, but that&apos;s another story...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401086</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-10 01:05:42 -0700</bug_when>
    <thetext>You don&apos;t want to make a branch.  Approximately zero branches of WebKit have ever merged with trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401314</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-10 10:43:00 -0700</bug_when>
    <thetext>Depends on how long you plan to keep the branch around and how much you plan to change in your branch.  We&apos;ve had 3 instances of non-trunk changes merging into WebKit successfully.  SVG (which took me months), WebKit Windows (which took Apple months), and Chrome (which took me and others months again!).

If you need to make invasive changes to webkit, it&apos;s better for your sanity to do them behind an ENABLE_ flag (which, per our recent feature guildelines, should be announced on webkit-dev).
http://www.webkit.org/coding/adding-features.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401813</commentid>
    <comment_count>21</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-11 00:15:47 -0700</bug_when>
    <thetext>I think I prefer adding a run-time flag.

ENABLE macro could be fine, but we already have ENABLE(WEB_SOCKETS) macro and I don&apos;t know how to add exclusive options (new protocol vs old protocol) to WebKit.

Further, I don&apos;t know how to add tests for new protocol cleanly (without breaking existing ones).

Adding a branch may be fine too but working with a branch is very much like a mystery (to me).

Either way, I really want to move forward and implement new protocol...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417879</commentid>
    <comment_count>22</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-06-09 00:28:52 -0700</bug_when>
    <thetext>I think we need to make a consensus on this.

Here is my summary of strategies:

A. Just replacing old protocol with new one
  - Able to resolve a security concern raised for the old protocol.
  - Breaks existing sites immediately.
  - Affects all ports immediately.

B. Runtime switch
  - Able to test both protocols at the same time (by adding a method to LayoutTestController).
  - Code may look tedious.
  - Each port will be able to switch protocol versions easily.
  - Dead code will be included in executables.

C. Compile-time switch
  - It&apos;s probably hard to test both protocol implementations at the same time.
  - Each port will be able to switch protocol versions by changing compiler options.
  - We already have a flag ENABLE(WEB_SOCKETS). Adding another flag will make the code dirtier.

D. Using branch
  - Will not be ran by buildbots.
  - Each port can&apos;t get the new protocol before the code is merged to the mainline.

--

My preference is A, but ap has expressed his concern about breaking existing sites. My next preference is B, because I&apos;d like to keep test coverage for both protocol implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426110</commentid>
    <comment_count>23</comment_count>
      <attachid>98339</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-06-23 05:52:20 -0700</bug_when>
    <thetext>Created attachment 98339
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426239</commentid>
    <comment_count>24</comment_count>
      <attachid>98339</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-23 09:55:43 -0700</bug_when>
    <thetext>Comment on attachment 98339
Patch v3

Ok.  I probably would have called this &quot;Draft76&quot; instead of &quot;Hixie76&quot;, but I&apos;m not sure it matters that much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426240</commentid>
    <comment_count>25</comment_count>
      <attachid>98339</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-23 09:57:18 -0700</bug_when>
    <thetext>Comment on attachment 98339
Patch v3

This patch looks good to me. In addition, to meaningfully test new protocol implementation, we&apos;ll need WebKit2 support, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426833</commentid>
    <comment_count>26</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-06-24 04:37:12 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 98339 [details])
&gt; This patch looks good to me. In addition, to meaningfully test new protocol implementation, we&apos;ll need WebKit2 support, too.

I will add WebKit2 support in a later patch. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426847</commentid>
    <comment_count>27</comment_count>
      <attachid>98339</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-24 05:18:32 -0700</bug_when>
    <thetext>Comment on attachment 98339
Patch v3

Clearing flags on attachment: 98339

Committed r89669: &lt;http://trac.webkit.org/changeset/89669&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426848</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-24 05:18:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92555</attachid>
            <date>2011-05-06 00:49:08 -0700</date>
            <delta_ts>2011-05-09 00:04:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60348-20110506164906.patch</filename>
            <type>text/plain</type>
            <size>15041</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU4NjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNTIwM2NjYmVkY2RmNjY4
YzVhNzVlMzVkMWY0Njg3NWE4MzJiYzkzLi5lMTY4ZWFhMWYyYTgyMzEzMTE0OTg2YzljZjRmMzky
MTM1MzEzZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDUtMDYgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0OiBBZGQgcnVuLXRpbWUgZmxhZyBmb3Ig
bmV3IEh5QmkgcHJvdG9jb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYwMzQ4CisKKyAgICAgICAgQWRkIGEgZmxhZyBmb3IgU2V0dGluZ3MgdGhhdCBl
bmFibGVzIHRoZSBuZXcgV2ViU29ja2V0IHByb3RvY29sIGJlaW5nIGRpc2N1c3NlZAorICAgICAg
ICBhdCBJRVRGIEh5Qmkgd29ya2luZyBncm91cC4KKworICAgICAgICBUaGlzIHBhdGNoIGp1c3Qg
YWRkcyBhIGZsYWcuIFRoZSBmbGFnIGlzIG5vdCB1c2VkIHlldCwgc28gdGhlcmUgaXMgbm8gY2hh
bmdlCisgICAgICAgIGluIGZ1bmN0aW9uYWxpdHkuIFRodXMsIG5vIG5ldyB0ZXN0cyBhcmUgYWRk
ZWQuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OnNldFVzZU5ld0h5QmlXZWJTb2NrZXRQcm90b2NvbCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nczo6dXNlTmV3SHlCaVdlYlNvY2tldFByb3RvY29sKToKKwog
MjAxMS0wNS0wNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRl
eCAyYjllOGI3ZTE5MDliMjA3MGY3MzcwMDFhYjA1ODNkNjJkNGM5YTA1Li45NTMzMjVkNjc1ZDYw
Yjg1ZmY4YjU4ZGU4MmU0YjcyMDM0YWMzMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApA
QCAtMTgyLDYgKzE4Miw5IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwg
bV9zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQoZmFsc2UpCiAg
ICAgLCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpCiAgICAgLCBtX2FsbG93
UnVubmluZ09mSW5zZWN1cmVDb250ZW50KHRydWUpCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQor
ICAgICwgbV91c2VOZXdIeUJpV2ViU29ja2V0UHJvdG9jb2woZmFsc2UpCisjZW5kaWYKIHsKICAg
ICAvLyBBIEZyYW1lIG1heSBub3QgaGF2ZSBiZWVuIGNyZWF0ZWQgeWV0LCBzbyB3ZSBpbml0aWFs
aXplIHRoZSBBdG9taWNTdHJpbmcgCiAgICAgLy8gaGFzaCBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBp
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBmZmUxMDM3NzRiODUyMmRlOTdiOWMzNDViNjEy
MzdlODA5ZjY1M2M4Li5hYTU4ZjRlMTg0ZTliZTA0MGU2NTUxOWY0NDQyOWI3YTRmOTcwMjFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC00MDcsNiArNDA3LDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCBzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChib29s
IGZsYWcpIHsgbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCA9IGZsYWc7IH0KICAgICAg
ICAgYm9vbCBhbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQ7IH0KIAorI2lmIEVOQUJMRShXRUJfU09DS0VU
UykKKyAgICAgICAgdm9pZCBzZXRVc2VOZXdIeUJpV2ViU29ja2V0UHJvdG9jb2woYm9vbCBmbGFn
KSB7IG1fdXNlTmV3SHlCaVdlYlNvY2tldFByb3RvY29sID0gZmxhZzsgfQorICAgICAgICBib29s
IHVzZU5ld0h5QmlXZWJTb2NrZXRQcm90b2NvbCgpIHsgcmV0dXJuIG1fdXNlTmV3SHlCaVdlYlNv
Y2tldFByb3RvY29sOyB9CisjZW5kaWYKKwogICAgIHByaXZhdGU6CiAgICAgICAgIFBhZ2UqIG1f
cGFnZTsKIApAQCAtNTEzLDYgKzUxOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Ym9vbCBtX3Nob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudCA6IDE7
CiAgICAgICAgIGJvb2wgbV9hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCA6IDE7CiAgICAg
ICAgIGJvb2wgbV9hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCA6IDE7CisjaWYgRU5BQkxF
KFdFQl9TT0NLRVRTKQorICAgICAgICBib29sIG1fdXNlTmV3SHlCaVdlYlNvY2tldFByb3RvY29s
IDogMTsKKyNlbmRpZgogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKICAgICAgICAgc3RhdGljIGJv
b2wgZ0FWRm91bmRhdGlvbkVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDBm
ZDgzYWQ1YTdlY2ZkMjQ2ZWExNzg3N2U3MWRmZGZjZWU4NWRkNzUuLjY1NmUxMjBlNTU5YTQ3Nzg3
YTQ2ZjYzYWI4MmI0MjNjYzZkNWJkNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTEtMDUtMDYgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
U29ja2V0OiBBZGQgcnVuLXRpbWUgZmxhZyBmb3IgbmV3IEh5QmkgcHJvdG9jb2wKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwMzQ4CisKKyAgICAgICAg
KiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXROZXdIeUJpV2ViU29ja2V0
UHJvdG9jb2xFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisKIDIw
MTEtMDUtMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSb2xs
IENocm9taXVtIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGlu
Z3MuaAppbmRleCA1NzBjNjcyODQwNzI1ZDI5NzhlOTY1ZDc4NWI0YWUzOGRhOGNlNzE5Li43Njgy
N2JjZGY2ZGUyNGJmMTQ5Mjg1OGZjYzQzMTYwOWVmNjUzMDllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTEyMiw2ICsxMjIsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldEZ1bGxTY3JlZW5FbmFibGVkKGJvb2wpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQoYm9vbCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChib29sKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNldE5ld0h5QmlXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQo
Ym9vbCkgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlNldHRpbmdzKCkgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCBmOGUwOGQz
MjJhYWU2NGM5MDc5NTk4YzUxYmMzZjczNjRjNDczOWQwLi41N2ZmOGM5ZGM1Njc2ODAwMGJjNjlh
Y2FmNjAyMmI5MTdjNGI4MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHAKQEAgLTQxMiw0ICs0MTIsMTMgQEAgdm9pZCBXZWJTZXR0aW5nc0lt
cGw6OnNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZCkKICAgICBt
X3NldHRpbmdzLT5zZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChlbmFibGVkKTsKIH0K
IAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldE5ld0h5QmlXZWJTb2NrZXRQcm90b2NvbEVuYWJs
ZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEVOQUJMRShXRUJfU09DS0VUUykKKyAgICBtX3NldHRp
bmdzLT5zZXRVc2VOZXdIeUJpV2ViU29ja2V0UHJvdG9jb2woZW5hYmxlZCk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShlbmFibGVkKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXgg
ZTA3MjhkODNhMDRiMTlhNGQ0ZjRlYjAzNDYzOTVlY2Y0NmZmNDg2OC4uZGRlMDEwODcxMzgyNzky
MjNlMzU4NmMyYzBjNGE5ZGE3MGI3YWViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldEZ1bGxTY3JlZW5FbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0QWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lk
IHNldE5ld0h5QmlXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoYm9vbCk7CiAKIHByaXZhdGU6CiAg
ICAgV2ViQ29yZTo6U2V0dGluZ3MqIG1fc2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMWIy
MTNmMjcyNTRkODQ4ZDY5ZGE0NTdhN2ExNWYzMjAxNjMwY2FlNi4uMzllODBlYmVhMDQ3ZGUwNDMz
ZGRmZGMxZGIwZDkwMTBiNWNjODBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDExLTA1LTA2ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlNvY2tldDogQWRk
IHJ1bi10aW1lIGZsYWcgZm9yIG5ldyBIeUJpIHByb3RvY29sCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDM0OAorCisgICAgICAgICogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAg
ICgtW1dlYlByZWZlcmVuY2VzIHNldE5ld0h5QmlXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQ6XSk6
CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGlzTmV3SHlCaVdlYlNvY2tldFByb3RvY29sRW5h
YmxlZF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAg
ICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNl
c0NoYW5nZWQ6XSk6CisKIDIwMTEtMDUtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBhNDgy
MWJhOWUwM2Q5NDY0ZDU0OGQ5NTg0MDEwOGRlOTlkOGJiMjFmLi42ZWMyY2RjY2I5ZjZjMjIxNDFk
OWQ0NDAzYmU5YzhiYmZkN2E4MGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTEwOCw2ICsxMDgsNyBAQAogI2Rl
ZmluZSBXZWJLaXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRVc2VRdWlja0xvb2tSZXNv
dXJjZUNhY2hpbmdRdWlya3NQcmVmZXJlbmNlS2V5IEAiV2ViS2l0VXNlUXVpY2tMb29rUmVzb3Vy
Y2VDYWNoaW5nUXVpcmtzIgogI2RlZmluZSBXZWJLaXRBVkZvdW5kYXRpb25FbmFibGVkS2V5IEAi
V2ViS2l0QVZGb3VuZGF0aW9uRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0TmV3SHlCaVdlYlNvY2tl
dFByb3RvY29sRW5hYmxlZEtleSBAIldlYktpdE5ld0h5QmlXZWJTb2NrZXRQcm90b2NvbEVuYWJs
ZWQiCiAKIC8vIFRoZXNlIGFyZSBwcml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBi
ZSB1c2luZyB0aGUgY292ZXIgbWV0aG9kcyBhbmQgYmVjYXVzZSB0aGUKIC8vIGNvdmVyIG1ldGhv
ZHMgdGhlbXNlbHZlcyBhcmUgcHJpdmF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCmluZGV4IGM1ZjFlZWRhZmQ3ZTk5ZGIzY2JhZmNjYTNlMWQxYjY2OTg1
NWQzY2IuLmU5MDc1MTFkNGMxZWZlYjIzOWRmYzY4ZGI3YjEwMjAzY2M4ODg0MWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzkyLDYgKzM5Miw3
IEBAIHN0YXRpYyBib29sIHVzZVF1aWNrTG9va1F1aXJrcyh2b2lkKQogICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZFBy
ZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2Vi
S2l0VXNlUHJlSFRNTDVQYXJzZXJRdWlya3NLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJX
aXRoQm9vbDpZRVNdLCAgV2ViS2l0QVZGb3VuZGF0aW9uRW5hYmxlZEtleSwKKyAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXROZXdIeUJpV2ViU29ja2V0UHJvdG9j
b2xFbmFibGVkS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6dXNlUXVpY2tM
b29rUXVpcmtzKCldLCBXZWJLaXRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3NQcmVm
ZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aExvbmdMb25nOldlYkNvcmU6
OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCldLCBXZWJLaXRBcHBsaWNhdGlvbkNh
Y2hlVG90YWxRdW90YSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhMb25nTG9uZzpXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6bm9RdW90YSgpXSwgV2ViS2l0QXBwbGljYXRp
b25DYWNoZURlZmF1bHRPcmlnaW5RdW90YSwKQEAgLTE0OTQsNiArMTQ5NSwxNiBAQCBzdGF0aWMg
TlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiB7CiAgICAgcmV0dXJuIFtzZWxmIF9i
b29sVmFsdWVGb3JLZXk6V2ViS2l0QVZGb3VuZGF0aW9uRW5hYmxlZEtleV07CiB9CisKKy0gKHZv
aWQpc2V0TmV3SHlCaVdlYlNvY2tldFByb3RvY29sRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAg
W3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXROZXdIeUJpV2ViU29ja2V0UHJv
dG9jb2xFbmFibGVkS2V5XTsKK30KKworLSAoQk9PTClpc05ld0h5QmlXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXROZXdI
eUJpV2ViU29ja2V0UHJvdG9jb2xFbmFibGVkS2V5XTsKK30KIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYlByZWZlcmVuY2VzIChXZWJJbnRlcm5hbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGM0YjFiMmRhOWZkNTE4M2Vh
ZjRiN2Y2ZGUwNDY2YmQ2YTdmZWFjNjguLjU4MmIyNWZiOTQ4OTlkNTVjMjBlNjZkNjExN2FmNmI3
MzljMmM2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaApAQCAtMjQ4LDQgKzI0OCw4IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJl
ZmVyZW5jZXNDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb247CiAtICh2b2lkKXNldEFWRm91bmRh
dGlvbkVuYWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wpaXNBVkZvdW5kYXRpb25FbmFibGVkOwog
CisvLyBXZWJTb2NrZXQgc3VwcG9ydCBkZXBlbmRzIG9uIEVOQUJMRShXRUJfU09DS0VUUykuCist
ICh2b2lkKXNldE5ld0h5QmlXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQ6KEJPT0wpZmxhZzsKKy0g
KEJPT0wpaXNOZXdIeUJpV2ViU29ja2V0UHJvdG9jb2xFbmFibGVkOworCiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYTg3MmE3ZTgzODYxMjU2ZjUyZjNhNzM0OWFh
NjlkMmQwNWIzMzAzYy4uOTg3MWZjMmE3ODQ1ZTJhZjQ4ZGJhMGNlZDVjOTQzZjVhOTFhMjAyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTU1Myw2ICsxNTUzLDkgQEAg
c3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQogICAgIHNldHRp
bmdzLT5zZXRBVkZvdW5kYXRpb25FbmFibGVkKGZhbHNlKTsKICNlbmRpZgogI2VuZGlmCisjaWYg
RU5BQkxFKFdFQl9TT0NLRVRTKQorICAgIHNldHRpbmdzLT5zZXRVc2VOZXdIeUJpV2ViU29ja2V0
UHJvdG9jb2woW3ByZWZlcmVuY2VzIGlzTmV3SHlCaVdlYlNvY2tldFByb3RvY29sRW5hYmxlZF0p
OworI2VuZGlmCiAKICAgICAvLyBBcHBsaWNhdGlvbiBDYWNoZSBQcmVmZXJlbmNlcyBhcmUgc3Rv
cmVkIG9uIHRoZSBnbG9iYWwgY2FjaGUgc3RvcmFnZSBtYW5hZ2VyLCBub3QgaW4gU2V0dGluZ3Mu
CiAgICAgW1dlYkFwcGxpY2F0aW9uQ2FjaGUgc2V0RGVmYXVsdE9yaWdpblF1b3RhOltwcmVmZXJl
bmNlcyBhcHBsaWNhdGlvbkNhY2hlRGVmYXVsdE9yaWdpblF1b3RhXV07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggMmNiNzlkZWY4MDkwNzAzOGNkN2Q0YTgyNjdkODRkMWFhNDU1MDdmZS4uOTcwOTViYzEy
MTJkMjAwNjMyYjFiNzBlZDRkMWE4Mjk1MTc3MTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDExLTA1LTA2ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlNv
Y2tldDogQWRkIHJ1bi10aW1lIGZsYWcgZm9yIG5ldyBIeUJpIHByb3RvY29sCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDM0OAorCisgICAgICAgICog
SW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbDoKKyAgICAgICAgKiBXZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAg
ICAgIChXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncyk6CisgICAgICAg
IChXZWJQcmVmZXJlbmNlczo6c2V0TmV3SHlCaVdlYlNvY2tldFByb3RvY29sRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJQcmVmZXJlbmNlczo6bmV3SHlCaVdlYlNvY2tldFByb3RvY29sRW5hYmxlZCk6
CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMTEtMDUtMDUg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lX
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAppbmRleCAyN2NlODJmZTlkMDkxMDJmOWY5OWM4MzBh
N2M1OTg3ZTI5ZWI2ZGIyLi4xY2I0MmMwYmEwNjVhOWFlZmZjMzc2MTg1ODAzMDk0OGEwNjBkMTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZl
cmVuY2VzUHJpdmF0ZS5pZGwKQEAgLTEyNyw0ICsxMjcsNyBAQCBpbnRlcmZhY2UgSVdlYlByZWZl
cmVuY2VzUHJpdmF0ZSA6IElVbmtub3duCiAKICAgICBIUkVTVUxUIHNldEZ1bGxTY3JlZW5FbmFi
bGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGlzRnVsbFNjcmVlbkVuYWJsZWQo
W291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKKworICAgIEhSRVNVTFQgc2V0TmV3SHlCaVdl
YlNvY2tldFByb3RvY29sRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBu
ZXdIeUJpV2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCogZW5hYmxl
ZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmlu
ZGV4IDg5OTY5ZDQyNzM2YjZmNjQwZTYzMWJjNGVjZjA1ODhjMmYxMjgzYzUuLmEyZjBlMmRjNTYx
ZjlkZGNlODczODQ3OGEzZDI4MjgxOWU2ODcxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xNTIsMyArMTUyLDUgQEAKICNkZWZpbmUgV2Vi
S2l0TWVtb3J5SW5mb0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRNZW1vcnlJbmZvRW5hYmxl
ZCIKIAogI2RlZmluZSBXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktp
dEZ1bGxTY3JlZW5FbmFibGVkIgorCisjZGVmaW5lIFdlYktpdE5ld0h5QmlXZWJTb2NrZXRQcm90
b2NvbEVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXROZXdIeUJpV2ViU29ja2V0UHJvdG9jb2xF
bmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGUxYmU3ZWM5ZGVj
YzcxYTg4MzJiN2U4YWM5NTQwM2ZmYzcyOTA0YjYuLjU2YmE4YjI3NDU4OTNjZDNmMjY5NWI0NzFl
ZTkwNWNhZDU4MjY0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVu
Y2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTI2
Niw2ICsyNjYsNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRp
bmdzKCkKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRN
ZW1vcnlJbmZvRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRIeXBlcmxpbmtBdWRpdGlu
Z0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhblRydWUpOworICAgIENGRGljdGlvbmFy
eUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXROZXdIeUJpV2ViU29ja2V0UHJvdG9jb2xF
bmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAKICAgICBkZWZhdWx0U2V0
dGluZ3MgPSBkZWZhdWx0czsKIH0KQEAgLTk0Miw2ICs5NDMsMjAgQEAgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6bG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9h
ZGluZ1ByZWYKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBXZWJQcmVmZXJlbmNlczo6c2V0TmV3SHlCaVdlYlNvY2tldFByb3RvY29sRW5hYmxlZCgKKyAg
ICAvKiBbaW5dICovIEJPT0wgZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoQ0ZTVFIoV2Vi
S2l0TmV3SHlCaVdlYlNvY2tldFByb3RvY29sRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBlbmFibGVk
KTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQ
cmVmZXJlbmNlczo6bmV3SHlCaVdlYlNvY2tldFByb3RvY29sRW5hYmxlZCgKKyAgICAvKiBbcmV0
dmFsXVtvdXRdICovIEJPT0wqIGVuYWJsZWQpCit7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVG
b3JLZXkoQ0ZTVFIoV2ViS2l0TmV3SHlCaVdlYlNvY2tldFByb3RvY29sRW5hYmxlZFByZWZlcmVu
Y2VLZXkpKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBXZWJQcmVmZXJlbmNlczo6c2V0QXV0b3NhdmVzKCAKICAgICAvKiBbaW5dICovIEJPT0wgZW5h
YmxlZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDNiMjk0MGQ3ZDExOTgy
NzViOGYzMzBlYzNkNzdmOGEwYTdmZTEzYWMuLmE2NTU1YmJjNTU3OWVjNmFmOWI2NTMzMGY5NzQ4
ODFjMThiYmNlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2Vz
LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtNDM1LDYgKzQz
NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
RnVsbFNjcmVlbkVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGlzRnVsbFNjcmVlbkVuYWJsZWQoQk9PTCopOwogCisgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIG5ld0h5QmlXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoQk9PTCop
OworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXROZXdIeUJpV2ViU29j
a2V0UHJvdG9jb2xFbmFibGVkKEJPT0wpOworCiAgICAgLy8gV2ViUHJlZmVyZW5jZXMKIAogICAg
IC8vIFRoaXMgbWV0aG9kIGFjY2Vzc2VzIGEgZGlmZmVyZW50IHByZWZlcmVuY2Uga2V5IHRoYW4g
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggODk4MTVmOWI2
Njk5ZDU4ZWZiYjgzYjQ2YTYyZjM2YjdmYzJlNWY1Zi4uZDg3MDFhNTkzOTE0YmEwMzY0ZGVhNmZi
ZTk1MzhhYTEwNTQyZmFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTQ4NDgsNiArNDg0OCwx
MyBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZp
Y2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+
c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoISFlbmFibGVkKTsK
IAorI2lmIEVOQUJMRShXRUJfU09DS0VUUykKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+bmV3SHlC
aVdlYlNvY2tldFByb3RvY29sRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikp
CisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy0+c2V0VXNlTmV3SHlCaVdlYlNvY2tl
dFByb3RvY29sKGVuYWJsZWQpOworI2VuZGlmCisKICAgICBpZiAoIW1fY2xvc2VXaW5kb3dUaW1l
cikKICAgICAgICAgbV9tYWluRnJhbWUtPmludmFsaWRhdGUoKTsgLy8gRklYTUUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92762</attachid>
            <date>2011-05-09 00:04:09 -0700</date>
            <delta_ts>2011-06-23 05:52:13 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-60348-20110509160406.patch</filename>
            <type>text/plain</type>
            <size>15537</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYwMzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNTcwNDcwZjkxMTc4MDJl
NjdmNzhmZGMwMzI0YTVjYThjZDE2ZjM5Li4xZTViYTg4ZWM4OGFjYzhiNzVlN2I0MThkZmI3ZDQ0
YTc5OTZlMjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDUtMDggIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0OiBBZGQgcnVuLXRpbWUgZmxhZyBmb3Ig
bmV3IEh5QmkgcHJvdG9jb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYwMzQ4CisKKyAgICAgICAgQWRkIGEgZmxhZyBpbiBTZXR0aW5ncyBzbyB0aGF0
IHdlIGNhbiBzd2l0Y2ggdGhlIFdlYlNvY2tldCBwcm90b2NvbHMKKyAgICAgICAgZHluYW1pY2Fs
bHkuIFRoZSBwcm90b2NvbCB3ZSBoYXZlIGltcGxlbWVudGVkIHNvIGZhciBpcyBiYXNlZCBvbiBv
bGRlcgorICAgICAgICBIaXhpZS03NiBzcGVjaWZpY2F0aW9uLiBBIG5ldyBwcm90b2NvbCBpcyBi
ZWluZyBkaXNjdXNzZWQgaW4gSUVURiBIeUJpCisgICAgICAgIHdvcmtpbmcgZ3JvdXAsIGFuZCB3
ZSBwbGFuIHRvIGltcGxlbWVudCB0aGUgbmV3IHByb3RvY29sIGJlaGluZCB0aGlzCisgICAgICAg
IFNldHRpbmdzIGZsYWcuCisKKyAgICAgICAgV2Ugd2lsbCBhZGQgYSBtZXRob2QgdG8gTGF5b3V0
VGVzdENvbnRyb2xsZXIgd2hpY2ggZmxpcHMgdGhpcyBmbGFnIGluCisgICAgICAgIGEgbGF0ZXIg
cGF0Y2guIEluIHRoaXMgd2F5LCB3ZSBjYW4gcHV0IHRlc3RzIGZvciBib3RoIHByb3RvY29scyBp
bgorICAgICAgICB0aGUgc2FtZSBwbGFjZSBhbmQgdGVzdCBpbXBsZW1lbnRhdGlvbiBmb3IgYm90
aCBwcm90b2NvbHMgYXQgdGhlIHNhbWUgdGltZS4KKworICAgICAgICBUaGlzIHBhdGNoIGp1c3Qg
YWRkcyBhIGZsYWcuIFRoZSBmbGFnIGlzIG5vdCB1c2VkIHlldCwgc28gdGhlcmUgaXMgbm8gY2hh
bmdlCisgICAgICAgIGluIGZ1bmN0aW9uYWxpdHkuIFRodXMsIG5vIHRlc3RzIHdlcmUgYWRkZWQu
CisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzOjpTZXR0aW5ncyk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3M6OnNldFVzZUhpeGllNzZXZWJTb2NrZXRQcm90b2NvbCk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nczo6dXNlSGl4aWU3NldlYlNvY2tldFByb3RvY29sKToKKwogMjAx
MS0wNS0wOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCAyYjllOGI3
ZTE5MDliMjA3MGY3MzcwMDFhYjA1ODNkNjJkNGM5YTA1Li44ODhhNGMzZGUwZjQ4NjVlZjJkNThi
ZDRiMjk1ZmIyYmQzNjQ4ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTgyLDYg
KzE4Miw5IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9zaG91bGRJ
bmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQoZmFsc2UpCiAgICAgLCBtX2Fs
bG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpCiAgICAgLCBtX2FsbG93UnVubmluZ09m
SW5zZWN1cmVDb250ZW50KHRydWUpCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQorICAgICwgbV91
c2VIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2wodHJ1ZSkKKyNlbmRpZgogewogICAgIC8vIEEgRnJh
bWUgbWF5IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCB5ZXQsIHNvIHdlIGluaXRpYWxpemUgdGhlIEF0
b21pY1N0cmluZyAKICAgICAvLyBoYXNoIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCmluZGV4IGZmZTEwMzc3NGI4NTIyZGU5N2I5YzM0NWI2MTIzN2U4MDlmNjUz
YzguLjlhNzFhMmI1NGE3M2NmOWU5YmNmZWZlZDc5NzVjNTkyZGU4YWFkMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmgKQEAgLTQwNyw2ICs0MDcsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KGJvb2wgZmxhZykgeyBt
X2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50ID0gZmxhZzsgfQogICAgICAgICBib29sIGFs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1J1bm5p
bmdPZkluc2VjdXJlQ29udGVudDsgfQogCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQorICAgICAg
ICB2b2lkIHNldFVzZUhpeGllNzZXZWJTb2NrZXRQcm90b2NvbChib29sIGZsYWcpIHsgbV91c2VI
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2wgPSBmbGFnOyB9CisgICAgICAgIGJvb2wgdXNlSGl4aWU3
NldlYlNvY2tldFByb3RvY29sKCkgeyByZXR1cm4gbV91c2VIaXhpZTc2V2ViU29ja2V0UHJvdG9j
b2w7IH0KKyNlbmRpZgorCiAgICAgcHJpdmF0ZToKICAgICAgICAgUGFnZSogbV9wYWdlOwogCkBA
IC01MTMsNiArNTE4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fc2hv
dWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IDogMTsKICAgICAgICAg
Ym9vbCBtX2FsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IDogMTsKICAgICAgICAgYm9vbCBt
X2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50IDogMTsKKyNpZiBFTkFCTEUoV0VCX1NPQ0tF
VFMpCisgICAgICAgIGJvb2wgbV91c2VIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2wgOiAxOworI2Vu
ZGlmCiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgICAgICBzdGF0aWMgYm9vbCBnQVZGb3Vu
ZGF0aW9uRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOWU2N2NiMzFhYTIx
MzIxZDIzMTVkZWViNDg0M2M4YThlMzJjNjk2Ny4uNzg5YzU3YmRjMWNiNWRjY2YxMmJjNWJkNDg5
YWMzYjJiZGFmODQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxMS0wNS0wOCAgWXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJTb2NrZXQ6IEFk
ZCBydW4tdGltZSBmbGFnIGZvciBuZXcgSHlCaSBwcm90b2NvbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAzNDgKKworICAgICAgICAqIHB1YmxpYy9X
ZWJTZXR0aW5ncy5oOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVu
YWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKwogMjAxMS0wNS0wNyAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjg1OTc0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNldHRpbmdzLmgKaW5kZXggNTcwYzY3Mjg0MDcyNWQyOTc4ZTk2NWQ3ODViNGFlMzhk
YThjZTcxOS4uNDg5YjZiODVjMGRmN2Q1ZDlkMDhjN2FlNTUwZmJkZjBmZWNhNzM2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC0xMjIsNiArMTIy
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGdWxsU2NyZWVuRW5hYmxlZChib29s
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50
KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNv
bnRlbnQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRIaXhpZTc2V2ViU29ja2V0UHJv
dG9jb2xFbmFibGVkKGJvb2wpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIH5XZWJTZXR0aW5ncygp
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAK
aW5kZXggZjhlMDhkMzIyYWFlNjRjOTA3OTU5OGM1MWJjM2Y3MzY0YzQ3MzlkMC4uMzVjMWQyNWU2
YjZmZDkwYTcwNjZiYjNkYTk0NjU3Y2RjYzVmNTllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC00MTIsNCArNDEyLDEzIEBAIHZvaWQg
V2ViU2V0dGluZ3NJbXBsOjpzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChib29sIGVu
YWJsZWQpCiAgICAgbV9zZXR0aW5ncy0+c2V0QWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQo
ZW5hYmxlZCk7CiB9CiAKK3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRIaXhpZTc2V2ViU29ja2V0
UHJvdG9jb2xFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMp
CisgICAgbV9zZXR0aW5ncy0+c2V0VXNlSGl4aWU3NldlYlNvY2tldFByb3RvY29sKGVuYWJsZWQp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5oCmluZGV4IGUwNzI4ZDgzYTA0YjE5YTRkNGY0ZWIwMzQ2Mzk1ZWNmNDZmZjQ4NjguLmEz
YTc3Njk1ZjkxZTk1NTYwYzA4OTY1ZTc3MWRhM2U3MjVhYmJjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBAIC0xMTUsNiArMTE1LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGdWxsU2NyZWVuRW5hYmxlZChib29sKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQoYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KGJvb2wpOworICAg
IHZpcnR1YWwgdm9pZCBzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKGJvb2wpOwog
CiBwcml2YXRlOgogICAgIFdlYkNvcmU6OlNldHRpbmdzKiBtX3NldHRpbmdzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IGEwZWZiYWRiNTk5MzczZjk3OWIzNDI2NjI3NDI5Nzk3NWVjZTJhNTcuLjU2NzNk
Y2Q5NGViNDQxNDVmNWU5NmVlYTdhNTM1NDE1MDAwZGE2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMS0wNS0wOCAgWXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJTb2NrZXQ6IEFkZCBydW4tdGltZSBmbGFnIGZvciBuZXcgSHlCaSBwcm90b2NvbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAzNDgKKworICAgICAg
ICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6
ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9j
b2xFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBpc0hpeGllNzZXZWJTb2Nr
ZXRQcm90b2NvbEVuYWJsZWRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmll
dyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDExLTA1LTA0ICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEds
YXprb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaAppbmRleCBhNDgyMWJhOWUwM2Q5NDY0ZDU0OGQ5NTg0MDEwOGRlOTlkOGJi
MjFmLi44NmMyYzc4N2ViZDZlNWQ3MWQ1OTVjZmIzNDViMDJlZWRlNmM5NmQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
QEAgLTEwOCw2ICsxMDgsNyBAQAogI2RlZmluZSBXZWJLaXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRVc2VRdWlja0xvb2tSZXNvdXJjZUNhY2hpbmdRdWlya3NQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0VXNlUXVpY2tMb29rUmVzb3VyY2VDYWNoaW5nUXVpcmtzIgogI2RlZmluZSBXZWJLaXRB
VkZvdW5kYXRpb25FbmFibGVkS2V5IEAiV2ViS2l0QVZGb3VuZGF0aW9uRW5hYmxlZCIKKyNkZWZp
bmUgV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZEtleSBAIldlYktpdEhpeGll
NzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiCiAKIC8vIFRoZXNlIGFyZSBwcml2YXRlIGJvdGgg
YmVjYXVzZSBjYWxsZXJzIHNob3VsZCBiZSB1c2luZyB0aGUgY292ZXIgbWV0aG9kcyBhbmQgYmVj
YXVzZSB0aGUKIC8vIGNvdmVyIG1ldGhvZHMgdGhlbXNlbHZlcyBhcmUgcHJpdmF0ZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGM1ZjFlZWRhZmQ3
ZTk5ZGIzY2JhZmNjYTNlMWQxYjY2OTg1NWQzY2IuLjM2M2UzMGZiMTUzMDgzYmY3YTkzZDU5NDVj
NzA5OWZiMDE0OWMwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQpAQCAtMzkyLDYgKzM5Miw3IEBAIHN0YXRpYyBib29sIHVzZVF1aWNrTG9va1F1aXJr
cyh2b2lkKQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEh5
cGVybGlua0F1ZGl0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBu
dW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0VXNlUHJlSFRNTDVQYXJzZXJRdWlya3NLZXksCiAg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0QVZGb3VuZGF0aW9u
RW5hYmxlZEtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJL
aXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6dXNlUXVpY2tMb29rUXVpcmtzKCldLCBXZWJLaXRVc2VRdWlja0xvb2tS
ZXNvdXJjZUNhY2hpbmdRdWlya3NQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aExvbmdMb25nOldlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3Rh
KCldLCBXZWJLaXRBcHBsaWNhdGlvbkNhY2hlVG90YWxRdW90YSwKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhMb25nTG9uZzpXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6bm9R
dW90YSgpXSwgV2ViS2l0QXBwbGljYXRpb25DYWNoZURlZmF1bHRPcmlnaW5RdW90YSwKQEAgLTE0
OTQsNiArMTQ5NSwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7
CiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0QVZGb3VuZGF0aW9u
RW5hYmxlZEtleV07CiB9CisKKy0gKHZvaWQpc2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5h
YmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpX
ZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkS2V5XTsKK30KKworLSAoQk9PTClp
c0hpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jv
b2xWYWx1ZUZvcktleTpXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkS2V5XTsK
K30KIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlByZWZlcmVuY2VzIChXZWJJbnRlcm5hbCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CmluZGV4IGM0YjFiMmRhOWZkNTE4M2VhZjRiN2Y2ZGUwNDY2YmQ2YTdmZWFjNjguLjliMDhiMDA3
ZTEzNjQxYTRjMGU5NDhhODZhMTI3ZGI4ZTVjNDYyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMjQ4LDQgKzI0OCw4IEBA
IGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRp
b247CiAtICh2b2lkKXNldEFWRm91bmRhdGlvbkVuYWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wp
aXNBVkZvdW5kYXRpb25FbmFibGVkOwogCisvLyBXZWJTb2NrZXQgc3VwcG9ydCBkZXBlbmRzIG9u
IEVOQUJMRShXRUJfU09DS0VUUykuCistICh2b2lkKXNldEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQ6KEJPT0wpZmxhZzsKKy0gKEJPT0wpaXNIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xF
bmFibGVkOworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYTg3
MmE3ZTgzODYxMjU2ZjUyZjNhNzM0OWFhNjlkMmQwNWIzMzAzYy4uMmVjYzU1YzRhMjcxZDgwZjdi
NDMyNDcxMjQxNjMyMDMyYzNhYTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMTU1Myw2ICsxNTUzLDkgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVM
b2FkaW5nUXVpcmsoKQogICAgIHNldHRpbmdzLT5zZXRBVkZvdW5kYXRpb25FbmFibGVkKGZhbHNl
KTsKICNlbmRpZgogI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQorICAgIHNldHRpbmdz
LT5zZXRVc2VIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2woW3ByZWZlcmVuY2VzIGlzSGl4aWU3Nldl
YlNvY2tldFByb3RvY29sRW5hYmxlZF0pOworI2VuZGlmCiAKICAgICAvLyBBcHBsaWNhdGlvbiBD
YWNoZSBQcmVmZXJlbmNlcyBhcmUgc3RvcmVkIG9uIHRoZSBnbG9iYWwgY2FjaGUgc3RvcmFnZSBt
YW5hZ2VyLCBub3QgaW4gU2V0dGluZ3MuCiAgICAgW1dlYkFwcGxpY2F0aW9uQ2FjaGUgc2V0RGVm
YXVsdE9yaWdpblF1b3RhOltwcmVmZXJlbmNlcyBhcHBsaWNhdGlvbkNhY2hlRGVmYXVsdE9yaWdp
blF1b3RhXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDRmM2E1ZTcyODMzNjFkNzFjNjc2NzcxNDE5
NDRlZDk3MDhiMDM5OS4uMjE0NDEyNzcxNWJkYWM1OGU2MmVkMDMyMzhmY2U0ZWEwZjQwOTMxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA1LTA4ICBZdXRhIEtpdGFt
dXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYlNvY2tldDogQWRkIHJ1bi10aW1lIGZsYWcgZm9yIG5ldyBI
eUJpIHByb3RvY29sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MDM0OAorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmlkbDoKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBX
ZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURl
ZmF1bHRTZXR0aW5ncyk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6c2V0SGl4aWU3NldlYlNv
Y2tldFByb3RvY29sRW5hYmxlZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6aGl4aWU3Nldl
YlNvY2tldFByb3RvY29sRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuaDoKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2Vz
Q2hhbmdlZCk6CisKIDIwMTEtMDUtMDcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4NjAxNi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJp
dmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1By
aXZhdGUuaWRsCmluZGV4IDI3Y2U4MmZlOWQwOTEwMmY5Zjk5YzgzMGE3YzU5ODdlMjllYjZkYjIu
LmM4Mzc5NzBmYTRjMzM2ZDk3ZDE5MjdjZjlhZTVlYTcwY2QxZWVlYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysr
IGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlk
bApAQCAtMTI3LDQgKzEyNyw3IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlIDog
SVVua25vd24KIAogICAgIEhSRVNVTFQgc2V0RnVsbFNjcmVlbkVuYWJsZWQoW2luXSBCT09MIGVu
YWJsZWQpOwogICAgIEhSRVNVTFQgaXNGdWxsU2NyZWVuRW5hYmxlZChbb3V0LCByZXR2YWxdIEJP
T0wqIGVuYWJsZWQpOworCisgICAgSFJFU1VMVCBzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xF
bmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKyAgICBIUkVTVUxUIGhpeGllNzZXZWJTb2NrZXRQ
cm90b2NvbEVuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggODk5NjlkNDI3MzZi
NmY2NDBlNjMxYmM0ZWNmMDU4OGMyZjEyODNjNS4uNzIyYzMzZmNmZGQwNjgzMmU3MGQwMjE5ZGQ1
ZTIxNDVmZDk4Y2FiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmgKQEAgLTE1MiwzICsxNTIsNSBAQAogI2RlZmluZSBXZWJLaXRNZW1vcnlJbmZvRW5h
YmxlZFByZWZlcmVuY2VLZXkgIldlYktpdE1lbW9yeUluZm9FbmFibGVkIgogCiAjZGVmaW5lIFdl
YktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0RnVsbFNjcmVlbkVuYWJs
ZWQiCisKKyNkZWZpbmUgV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZFByZWZl
cmVuY2VLZXkgIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggZTFiZTdlYzlkZWNjNzFhODgzMmI3ZThhYzk1
NDAzZmZjNzI5MDRiNi4uZjJhMmZlYWFhOGRiNDcyNjc3Y2U4NDlhNzVjMjE2M2JjY2Q1ZTQ1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMjY2LDYgKzI2Niw3IEBAIHZv
aWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MoKQogCiAgICAgQ0ZE
aWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdE1lbW9yeUluZm9FbmFibGVk
UHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZFByZWZlcmVu
Y2VLZXkpLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVs
dHMsIENGU1RSKFdlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRQcmVmZXJlbmNl
S2V5KSwga0NGQm9vbGVhblRydWUpOwogCiAgICAgZGVmYXVsdFNldHRpbmdzID0gZGVmYXVsdHM7
CiB9CkBAIC05NDIsNiArOTQzLDIwIEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJl
ZmVyZW5jZXM6OmxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmCiAgICAgcmV0
dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6
OnNldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoCisgICAgLyogW2luXSAqLyBCT09M
IGVuYWJsZWQpCit7CisgICAgc2V0Qm9vbFZhbHVlKENGU1RSKFdlYktpdEhpeGllNzZXZWJTb2Nr
ZXRQcm90b2NvbEVuYWJsZWRQcmVmZXJlbmNlS2V5KSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNf
T0s7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OmhpeGll
NzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoCisgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09M
KiBlbmFibGVkKQoreworICAgICplbmFibGVkID0gYm9vbFZhbHVlRm9yS2V5KENGU1RSKFdlYktp
dEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRQcmVmZXJlbmNlS2V5KSk7CisgICAgcmV0
dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6
OnNldEF1dG9zYXZlcyggCiAgICAgLyogW2luXSAqLyBCT09MIGVuYWJsZWQpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC93
aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCAzYjI5NDBkN2QxMTk4Mjc1YjhmMzMwZWMzZDc3Zjhh
MGE3ZmUxM2FjLi5mYTE1MDE0NjZiMTVkZTE4NzQ2NDIwODZlNGNmMmQ5NTA1YWY4ODA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTQzNSw2ICs0MzUsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEZ1bGxTY3JlZW5FbmFibGVk
KEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpc0Z1bGxTY3Jl
ZW5FbmFibGVkKEJPT0wqKTsKIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBoaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKEJPT0wqKTsKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxl
ZChCT09MKTsKKwogICAgIC8vIFdlYlByZWZlcmVuY2VzCiAKICAgICAvLyBUaGlzIG1ldGhvZCBh
Y2Nlc3NlcyBhIGRpZmZlcmVudCBwcmVmZXJlbmNlIGtleSB0aGFuIGRldmVsb3BlckV4dHJhc0Vu
YWJsZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDg5ODE1ZjliNjY5OWQ1OGVmYmI4M2I0NmE2
MmYzNmI3ZmMyZTVmNWYuLjllN2RmYmJiOTcyY2Q1MmZiODE3ZTlkNTQ2YTNlOWQ4OTM0ZDQ4YjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC00ODQ4LDYgKzQ4NDgsMTMgQEAgSFJFU1VMVCBXZWJW
aWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0
aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzU2l0ZUljb25z
SWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKCEhZW5hYmxlZCk7CiAKKyNpZiBFTkFCTEUoV0VC
X1NPQ0tFVFMpCisgICAgaHIgPSBwcmVmc1ByaXZhdGUtPmhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQoJmVuYWJsZWQpOworICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4g
aHI7CisgICAgc2V0dGluZ3MtPnNldFVzZUhpeGllNzZXZWJTb2NrZXRQcm90b2NvbChlbmFibGVk
KTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX2Nsb3NlV2luZG93VGltZXIpCiAgICAgICAgIG1fbWFp
bkZyYW1lLT5pbnZhbGlkYXRlKCk7IC8vIEZJWE1FCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98339</attachid>
            <date>2011-06-23 05:52:20 -0700</date>
            <delta_ts>2011-06-24 05:18:32 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-60348-20110623215218.patch</filename>
            <type>text/plain</type>
            <size>12971</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk0OTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmYTE1NmZhNzcwZDU5MGIy
NjcxOThiMDQ2Mzg3NzU4MmIzMjFlMGIxLi45Njg2NWU1MTU0M2Q1ZTUzZTQ0MzhmYjI4Y2RlODM3
YWE1YzZhN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDYtMjMgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0OiBBZGQgcnVuLXRpbWUgZmxhZyBmb3Ig
bmV3IEh5QmkgcHJvdG9jb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYwMzQ4CisKKyAgICAgICAgQWRkIGEgZmxhZyBpbiBTZXR0aW5nIHNvIHRoYXQg
V2ViU29ja2V0IHByb3RvY29scyBjYW4gYmUgc3dpdGNoZWQKKyAgICAgICAgZHluYW1pY2FsbHku
IFRoZSBwcm90b2NvbCB3ZSBoYXZlIGltcGxlbWVudGVkIHNvIGZhciBpcyBiYXNlZCBvbgorICAg
ICAgICBvbGRlciBIaXhpZS03NiBzcGVjaWZpY2F0aW9uLiBBIG5ldyBwcm90b2NvbCBpcyBiZWlu
ZyBkaXNjdXNzZWQgaW4KKyAgICAgICAgSUVURiBIeUJpIHdvcmtpbmcgZ3JvdXAsIGFuZCBJJ20g
cGxhbm5pbmcgdG8gaW1wbGVtZW50IHRoZSBuZXcgcHJvdG9jb2wKKyAgICAgICAgYmVoaW5kIHRo
aXMgU2V0dGluZ3MgZmxhZy4KKworICAgICAgICBJIHdpbGwgYWRkIGEgbWV0aG9kIHRvIExheW91
dFRlc3RDb250cm9sbGVyIHdoaWNoIGZsaXBzIHRoaXMgZmxhZyBpbgorICAgICAgICBhIGxhdGVy
IHBhdGNoLiBJbiB0aGlzIHdheSwgd2UgY2FuIHB1dCB0ZXN0cyBmb3IgYm90aCBwcm90b2NvbHMg
aW4KKyAgICAgICAgdGhlIHNhbWUgcGxhY2UgYW5kIHRlc3QgaW1wbGVtZW50YXRpb24gZm9yIGJv
dGggcHJvdG9jb2xzIGF0IHRoZSBzYW1lIHRpbWUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBvbmx5
IGFkZHMgYSBmbGFnLiBUaGUgZmxhZyBpcyBub3QgdXNlZCB5ZXQsIHRodXMgdGhlcmUgaXMKKyAg
ICAgICAgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgbm8gdGVzdHMgd2Vy
ZSBhZGRlZC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlSGl4aWU3NldlYlNvY2tldFByb3RvY29sKToK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjp1c2VIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2wp
OgorCiAyMDExLTA2LTIyICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmlu
ZGV4IDM5MjZkZTU5ZjNhOTc1YTRhZjk0YjdkODg5N2Q3N2M2NTA1ZTUzM2EuLjBlOWRlNGQxOTlk
YmNkYTBlYmM3M2QwMzI3MTliMDBkZjYzNDQyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CkBAIC0xODUsNiArMTg1LDkgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAjaWYg
RU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgLCBtX3Njcm9sbEFuaW1hdG9yRW5hYmxlZChm
YWxzZSkKICNlbmRpZgorI2lmIEVOQUJMRShXRUJfU09DS0VUUykKKyAgICAsIG1fdXNlSGl4aWU3
NldlYlNvY2tldFByb3RvY29sKHRydWUpCisjZW5kaWYKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRv
bWF0aWNhbGx5VGltZXIodGhpcywgJlNldHRpbmdzOjpsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlU
aW1lckZpcmVkKQogewogICAgIC8vIEEgRnJhbWUgbWF5IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCB5
ZXQsIHNvIHdlIGluaXRpYWxpemUgdGhlIEF0b21pY1N0cmluZyAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAppbmRleCA3OGVhNTlhMzBkOThiYjA1NWFhNTFmZWMwM2M0OTNkMThlNmQwNjNhLi44MGI5Mjlk
OTI2ZDNhZjRlMzU5MTY4OTAwMmVjYzA2MjNkNjBkOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CkBAIC00MTMsNiArNDEzLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBz
ZXRFbmFibGVTY3JvbGxBbmltYXRvcihib29sIGZsYWcpIHsgbV9zY3JvbGxBbmltYXRvckVuYWJs
ZWQgPSBmbGFnOyB9CiAgICAgICAgIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxBbmltYXRvckVuYWJsZWQ7IH0KICNlbmRpZgorI2lmIEVOQUJMRShX
RUJfU09DS0VUUykKKyAgICAgICAgdm9pZCBzZXRVc2VIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2wo
Ym9vbCBmbGFnKSB7IG1fdXNlSGl4aWU3NldlYlNvY2tldFByb3RvY29sID0gZmxhZzsgfQorICAg
ICAgICBib29sIHVzZUhpeGllNzZXZWJTb2NrZXRQcm90b2NvbCgpIHsgcmV0dXJuIG1fdXNlSGl4
aWU3NldlYlNvY2tldFByb3RvY29sOyB9CisjZW5kaWYKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IFBhZ2UqIG1fcGFnZTsKQEAgLTUyMyw2ICs1MjcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
aWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAgICAgICAgIGJvb2wgbV9zY3JvbGxBbmltYXRv
ckVuYWJsZWQgOiAxOwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQorICAgICAgICBi
b29sIG1fdXNlSGl4aWU3NldlYlNvY2tldFByb3RvY29sIDogMTsKKyNlbmRpZgogCiAgICAgICAg
IFRpbWVyPFNldHRpbmdzPiBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyOwogICAgICAg
ICB2b2lkIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyRmlyZWQoVGltZXI8U2V0dGluZ3M+
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDlhZGJlNGIwMGI4MmU0ZTlmYWY5MjQyOWFkMmIwNjY3
MTVhMmY1OC4uY2IxOTczNTBlZmMzMDU5ODhhZGI1OTAzNDdkZTkwNzU5YjBlYzY1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTA2LTIzICBZdXRhIEtpdGFtdXJhICA8
eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlYlNvY2tldDogQWRkIHJ1bi10aW1lIGZsYWcgZm9yIG5ldyBIeUJpIHBy
b3RvY29sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MDM0OAorCisgICAgICAgIE1ha2UgYSBuZXcgZmxhZyAoU2V0dGluZzo6bV91c2VIaXhpZTc2V2Vi
U29ja2V0UHJvdG9jb2wpCisgICAgICAgIHN3aXRjaGFibGUgZnJvbSBXZWJWaWV3IGFuZCBXZWJQ
cmVmZXJlbmNlcy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
Lmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2Vi
UHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRI
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBpc0hpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDExLTA2
LTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGFkYjQyNTg2NTIxODU3ZjM4Yjc3YWFhODA0MTlmN2Nm
N2ZkYWY4NjcuLjg0MTlmOTdmNGFjYmU3YjRlYzAwOGE5NzAxNGE4Yjg2ZjEwZDRjNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaApAQCAtMTA3LDYgKzEwNyw3IEBACiAjZGVmaW5lIFdlYktpdE1lbW9yeUluZm9FbmFibGVk
UHJlZmVyZW5jZUtleSBAIldlYktpdE1lbW9yeUluZm9FbmFibGVkIgogI2RlZmluZSBXZWJLaXRI
eXBlcmxpbmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SHlwZXJsaW5rQXVk
aXRpbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRBVkZvdW5kYXRpb25FbmFibGVkS2V5IEAiV2Vi
S2l0QVZGb3VuZGF0aW9uRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0SGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZEtleSBAIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQi
CiAKIC8vIFRoZXNlIGFyZSBwcml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBiZSB1
c2luZyB0aGUgY292ZXIgbWV0aG9kcyBhbmQgYmVjYXVzZSB0aGUKIC8vIGNvdmVyIG1ldGhvZHMg
dGhlbXNlbHZlcyBhcmUgcHJpdmF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tCmluZGV4IGIyMjg2YjBjYWVmYjQ5ZDc5MmU4OWE3NjZkZGU4ZWVhMmQ2ZDMy
MDYuLmVlYTM4YTJkODE4NTBmNmU1NDExOWU4Mzg0YTZiYTEyZTA3MThkMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzc4LDYgKzM3OCw3IEBA
IHN0YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnVuZGxlKHZvaWQpCiAgICAg
ICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0VXNlUHJlSFRNTDVQYXJz
ZXJRdWlya3NLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnQ6V2Vi
Q29yZTo6U2V0dGluZ3M6OmRlZmF1bHRNYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aF0sIFdl
YktpdE1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEFWRm91bmRhdGlvbkVuYWJsZWRLZXksCisgICAg
ICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0SGl4aWU3NldlYlNvY2tl
dFByb3RvY29sRW5hYmxlZEtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhMb25nTG9u
ZzpXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6bm9RdW90YSgpXSwgV2ViS2l0QXBw
bGljYXRpb25DYWNoZVRvdGFsUXVvdGEsCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoTG9u
Z0xvbmc6V2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKV0sIFdlYktp
dEFwcGxpY2F0aW9uQ2FjaGVEZWZhdWx0T3JpZ2luUXVvdGEsCiAgICAgICAgIG5pbF07CkBAIC0x
NDg0LDYgKzE0ODUsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmls
OwogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdEFWRm91bmRhdGlv
bkVuYWJsZWRLZXldOwogfQorCistICh2b2lkKXNldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVu
YWJsZWQ6KEJPT0wpZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6
V2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZEtleV07Cit9CisKKy0gKEJPT0wp
aXNIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9i
b29sVmFsdWVGb3JLZXk6V2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZEtleV07
Cit9CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViSW50ZXJuYWwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aAppbmRleCBhOTgxNzhlY2ZmYzk0MTNmMWFjZDdlM2E5ODI1NzU0NmI3NDE1ZDIyLi40MDgzYzVk
NWY1MTllNTc2NmU0MTU3NGM5ZmVlZDdiN2Q3ZTIwODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTI0OSw0ICsyNDksOCBA
QCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2hhbmdlZEludGVybmFsTm90aWZpY2F0
aW9uOwogLSAodm9pZClzZXRBVkZvdW5kYXRpb25FbmFibGVkOihCT09MKWZsYWc7CiAtIChCT09M
KWlzQVZGb3VuZGF0aW9uRW5hYmxlZDsKIAorLy8gV2ViU29ja2V0IHN1cHBvcnQgZGVwZW5kcyBv
biBFTkFCTEUoV0VCX1NPQ0tFVFMpLgorLSAodm9pZClzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9j
b2xFbmFibGVkOihCT09MKWZsYWc7CistIChCT09MKWlzSGl4aWU3NldlYlNvY2tldFByb3RvY29s
RW5hYmxlZDsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGE1
N2M4NjI2MjJjMWQxZjlkODYwMzI4NjZkZGVhMWMxNWUyZjVlMGYuLmNiZGUyNjhjNTEyMmE4ZGE4
MTVhM2JmN2Y3YmI4ZTg4ZWIwNTI3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KQEAgLTE1ODEsNiArMTU4MSw5IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldoaWxl
TG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy0+c2V0QVZGb3VuZGF0aW9uRW5hYmxlZChmYWxz
ZSk7CiAjZW5kaWYKICNlbmRpZgorI2lmIEVOQUJMRShXRUJfU09DS0VUUykKKyAgICBzZXR0aW5n
cy0+c2V0VXNlSGl4aWU3NldlYlNvY2tldFByb3RvY29sKFtwcmVmZXJlbmNlcyBpc0hpeGllNzZX
ZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRdKTsKKyNlbmRpZgogCiAgICAgLy8gQXBwbGljYXRpb24g
Q2FjaGUgUHJlZmVyZW5jZXMgYXJlIHN0b3JlZCBvbiB0aGUgZ2xvYmFsIGNhY2hlIHN0b3JhZ2Ug
bWFuYWdlciwgbm90IGluIFNldHRpbmdzLgogICAgIFtXZWJBcHBsaWNhdGlvbkNhY2hlIHNldERl
ZmF1bHRPcmlnaW5RdW90YTpbcHJlZmVyZW5jZXMgYXBwbGljYXRpb25DYWNoZURlZmF1bHRPcmln
aW5RdW90YV1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDA2MjdhN2YwMWU5ODBmNDcxNjRiOGIyZDk5
ZjdlYzdmMjlhNjNlZWIuLjJkMjYwMGMxMmY0NWJmZmJjNGQwYTBkMmQ0MDc2NTk5ZjI0YWNhZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0wNi0yMyAgWXV0YSBLaXRh
bXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJTb2NrZXQ6IEFkZCBydW4tdGltZSBmbGFnIGZvciBuZXcg
SHlCaSBwcm90b2NvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjAzNDgKKworICAgICAgICBNYWtlIGEgbmV3IGZsYWcgKFNldHRpbmc6Om1fdXNlSGl4
aWU3NldlYlNvY2tldFByb3RvY29sKQorICAgICAgICBzd2l0Y2hhYmxlIGZyb20gV2ViVmlldyBh
bmQgV2ViUHJlZmVyZW5jZXMuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaWRsOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAg
ICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjppbml0
aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRIaXhp
ZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpo
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNl
cy5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJl
ZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxMS0wNi0yMCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXpr
b3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmlkbCBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJp
dmF0ZS5pZGwKaW5kZXggMjdjZTgyZmU5ZDA5MTAyZjlmOTljODMwYTdjNTk4N2UyOWViNmRiMi4u
YzgzNzk3MGZhNGMzMzZkOTdkMTkyN2NmOWFlNWVhNzBjZDFlZWVjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRs
CkBAIC0xMjcsNCArMTI3LDcgQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGUgOiBJ
VW5rbm93bgogCiAgICAgSFJFU1VMVCBzZXRGdWxsU2NyZWVuRW5hYmxlZChbaW5dIEJPT0wgZW5h
YmxlZCk7CiAgICAgSFJFU1VMVCBpc0Z1bGxTY3JlZW5FbmFibGVkKFtvdXQsIHJldHZhbF0gQk9P
TCogZW5hYmxlZCk7CisKKyAgICBIUkVTVUxUIHNldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVu
YWJsZWQoW2luXSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgaGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCA4OTk2OWQ0MjczNmI2
ZjY0MGU2MzFiYzRlY2YwNTg4YzJmMTI4M2M1Li43MjJjMzNmY2ZkZDA2ODMyZTcwZDAyMTlkZDVl
MjE0NWZkOThjYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaApAQCAtMTUyLDMgKzE1Miw1IEBACiAjZGVmaW5lIFdlYktpdE1lbW9yeUluZm9FbmFi
bGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0TWVtb3J5SW5mb0VuYWJsZWQiCiAKICNkZWZpbmUgV2Vi
S2l0RnVsbFNjcmVlbkVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRGdWxsU2NyZWVuRW5hYmxl
ZCIKKworI2RlZmluZSBXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkUHJlZmVy
ZW5jZUtleSAiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCBlMWJlN2VjOWRlY2M3MWE4ODMyYjdlOGFjOTU0
MDNmZmM3MjkwNGI2Li5mMmEyZmVhYWE4ZGI0NzI2NzdjZTg0OWE3NWMyMTYzYmNjZDVlNDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0yNjYsNiArMjY2LDcgQEAgdm9p
ZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0TWVtb3J5SW5mb0VuYWJsZWRQ
cmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1
ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5j
ZUtleSksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0
cywgQ0ZTVFIoV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZFByZWZlcmVuY2VL
ZXkpLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAKICAgICBkZWZhdWx0U2V0dGluZ3MgPSBkZWZhdWx0czsK
IH0KQEAgLTk0Miw2ICs5NDMsMjAgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVm
ZXJlbmNlczo6bG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWYKICAgICByZXR1
cm4gU19PSzsKIH0KIAorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6
c2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCgKKyAgICAvKiBbaW5dICovIEJPT0wg
ZW5hYmxlZCkKK3sKKyAgICBzZXRCb29sVmFsdWUoQ0ZTVFIoV2ViS2l0SGl4aWU3NldlYlNvY2tl
dFByb3RvY29sRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBlbmFibGVkKTsKKyAgICByZXR1cm4gU19P
SzsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6aGl4aWU3
NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCgKKyAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wq
IGVuYWJsZWQpCit7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoQ0ZTVFIoV2ViS2l0
SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZFByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1
cm4gU19PSzsKK30KKwogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6
c2V0QXV0b3NhdmVzKCAKICAgICAvKiBbaW5dICovIEJPT0wgZW5hYmxlZCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDNiMjk0MGQ3ZDExOTgyNzViOGYzMzBlYzNkNzdmOGEw
YTdmZTEzYWMuLmZhMTUwMTQ2NmIxNWRlMTg3NDY0MjA4NmU0Y2YyZDk1MDVhZjg4MDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dl
YktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtNDM1LDYgKzQzNSw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RnVsbFNjcmVlbkVuYWJsZWQo
Qk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGlzRnVsbFNjcmVl
bkVuYWJsZWQoQk9PTCopOwogCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IGhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoQk9PTCopOworICAgIHZpcnR1YWwgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVk
KEJPT0wpOworCiAgICAgLy8gV2ViUHJlZmVyZW5jZXMKIAogICAgIC8vIFRoaXMgbWV0aG9kIGFj
Y2Vzc2VzIGEgZGlmZmVyZW50IHByZWZlcmVuY2Uga2V5IHRoYW4gZGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggZjc3MTMzYzM4MzhmYzFmYjgyYTJkMThjNGIw
NDRkYWQwMjI0NzQ1Yy4uY2I1MWE1YWE3MDU0YWNkZmRiNzIxZjdiOTE2OTBiZjgzZGI1M2E5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTQ4NDksNiArNDg0OSwxMyBAQCBIUkVTVUxUIFdlYlZp
ZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRp
b24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNTaXRlSWNvbnNJ
Z25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoISFlbmFibGVkKTsKIAorI2lmIEVOQUJMRShXRUJf
U09DS0VUUykKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+aGl4aWU3NldlYlNvY2tldFByb3RvY29s
RW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBo
cjsKKyAgICBzZXR0aW5ncy0+c2V0VXNlSGl4aWU3NldlYlNvY2tldFByb3RvY29sKGVuYWJsZWQp
OworI2VuZGlmCisKICAgICBpZiAoIW1fY2xvc2VXaW5kb3dUaW1lcikKICAgICAgICAgbV9tYWlu
RnJhbWUtPmludmFsaWRhdGUoKTsgLy8gRklYTUUKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>