<?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>27716</bug_id>
          
          <creation_ts>2009-07-27 10:17:17 -0700</creation_ts>
          <short_desc>Add Geolocation layout tests.</short_desc>
          <delta_ts>2009-08-13 12:30:40 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>andreip</cc>
    
    <cc>bolsinga</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134939</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-07-27 10:17:17 -0700</bug_when>
    <thetext>Geolocation was implemented in changeset http://trac.webkit.org/changeset/37854 (bug https://bugs.webkit.org/show_bug.cgi?id=21475). This initial changeset added a layout test to check that navigator.geolocation is not present, but this was later removed in changeset http://trac.webkit.org/changeset/41798.

Bug https://bugs.webkit.org/show_bug.cgi?id=21717 was created to track the need to test Geolocation when the platform does not provide an implementation. This is achieved using a mock Geolocation implementation, but is complicated as navigator.geolocation needs to be present for testing, but should not be present otherwise.

As an intermediate solution, I suggest that Geolocation is tested only on platforms where the platform provides an implementation and hence navigator.geolocation is present. On other platforms, we simply test that navigator.geolocation is absent.

What do people think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135188</commentid>
    <comment_count>1</comment_count>
      <attachid>33625</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-07-28 07:04:53 -0700</bug_when>
    <thetext>Created attachment 33625
Patch for bug 27716

A patch to add the first couple of unit tests, which simply test that navigator.geolocation is present only when is is supposed to be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135269</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 10:50:57 -0700</bug_when>
    <thetext>I think these tests are OK, but not really necessary.  I do think we should provide some sort of mock-geolocation system via DumpRenderTree and a geolocationController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135282</commentid>
    <comment_count>3</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-07-28 11:06:34 -0700</bug_when>
    <thetext>&gt; I do think we should
&gt; provide some sort of mock-geolocation system via DumpRenderTree and a
&gt; geolocationController.
Agreed. I&apos;m currently working on exactly this and will send patches.

What I wanted to get agreement on now, is that on platforms where Geolocation is not implemented, we should not test it via a mock implementation, but simply test that navigator.geolocation is not present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135287</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 11:11:22 -0700</bug_when>
    <thetext>It&apos;s the individual platforms responsibility to manage their skipped lists and turn on/off tests accordingly.  Platforms which want to test for missing geolocation can simply turn on the geolocation tests and check in failing results. :)

I thikn it&apos;s also OK to have a &quot;is geolocation enabled&quot; test, expect enabled, and check in &quot;PASS&quot; results on the platforms which have it, and skip it on all other platforms.  But that test is also implied by your more complicated tests you&apos;re about to add/write.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135392</commentid>
    <comment_count>5</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-07-28 15:20:56 -0700</bug_when>
    <thetext>&gt; It&apos;s the individual platforms responsibility to manage their skipped lists and
&gt; turn on/off tests accordingly.  Platforms which want to test for missing
&gt; geolocation can simply turn on the geolocation tests and check in failing
&gt; results. :)
OK, I&apos;ll dispense with the &apos;not-enabled&apos; test then.

&gt; I thikn it&apos;s also OK to have a &quot;is geolocation enabled&quot; test, expect enabled,
&gt; and check in &quot;PASS&quot; results on the platforms which have it, and skip it on all
&gt; other platforms.
I&apos;ll update the patch to add only the &apos;enabled&apos; test and not add it to any skip lists.

&gt;  But that test is also implied by your more complicated tests
&gt; you&apos;re about to add/write.
Sure, but I think there&apos;s value in testing that the geolocation object has the correct type and that the navigator object&apos;s properties enumerate correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135397</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 15:27:11 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt;  But that test is also implied by your more complicated tests
&gt; &gt; you&apos;re about to add/write.
&gt; Sure, but I think there&apos;s value in testing that the geolocation object has the
&gt; correct type and that the navigator object&apos;s properties enumerate correctly.

I certainly agree!  And I wish we had more tests of our DOM bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135599</commentid>
    <comment_count>7</comment_count>
      <attachid>33716</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-07-29 08:58:40 -0700</bug_when>
    <thetext>Created attachment 33716
Patch for bug 27716</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137854</commentid>
    <comment_count>8</comment_count>
      <attachid>33716</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-07 05:07:48 -0700</bug_when>
    <thetext>Comment on attachment 33716
Patch for bug 27716

It seems I forgot to set the review flag for this patch when I uploaded it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137855</commentid>
    <comment_count>9</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-07 05:08:50 -0700</bug_when>
    <thetext>Adding Greg to CC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137872</commentid>
    <comment_count>10</comment_count>
      <attachid>33716</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-07 07:35:49 -0700</bug_when>
    <thetext>Comment on attachment 33716
Patch for bug 27716

Please put these tests into fast/dom/Geolocation instead of a new top-level directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137908</commentid>
    <comment_count>11</comment_count>
      <attachid>34280</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-07 08:52:12 -0700</bug_when>
    <thetext>Created attachment 34280
Patch 3 for bug 27716

Moved test to fast/dom/Geolocation as requested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137929</commentid>
    <comment_count>12</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-08-07 09:45:04 -0700</bug_when>
    <thetext>I&apos;m not a reviewer, but looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137956</commentid>
    <comment_count>13</comment_count>
      <attachid>34280</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-07 10:25:40 -0700</bug_when>
    <thetext>Comment on attachment 34280
Patch 3 for bug 27716

This really should be a one of the new-style JS tests.  see fast/js/resources and make-js-test-wrappers.

That would give you shouldBe(), and debug(), etc. for free.

It looks like someone has duplicated at least part of that functionality with the &quot;utils.js&quot; file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137959</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-07 10:26:12 -0700</bug_when>
    <thetext>I think this patch is OK as is, but I&apos;d really rather see it using the same framework as most of the other new tests use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138429</commentid>
    <comment_count>15</comment_count>
      <attachid>34402</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-08 15:13:58 -0700</bug_when>
    <thetext>Created attachment 34402
Patch 4 for bug 27716

Now using JS test framework from fast/js/resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138433</commentid>
    <comment_count>16</comment_count>
      <attachid>34402</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-08 15:29:05 -0700</bug_when>
    <thetext>Comment on attachment 34402
Patch 4 for bug 27716

Hot hot hot! :)

hasGeolocationProperty() is really testing &quot;isGeolocationPropertyEnumerable&quot; :)

 13 shouldBeTrue(&quot;typeof navigator.geolocation == &apos;object&apos;&quot;);

could be written as:
shouldBeEqualToString(&quot;typeof navigator.geolocation&quot;, &quot;object&quot;);

But it looks great as is too! :)

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139126</commentid>
    <comment_count>17</comment_count>
      <attachid>34402</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-11 15:18:07 -0700</bug_when>
    <thetext>Comment on attachment 34402
Patch 4 for bug 27716

This is missing new results and cannot be landed by the commit-queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139321</commentid>
    <comment_count>18</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-12 07:33:52 -0700</bug_when>
    <thetext>&gt; This is missing new results and cannot be landed by the commit-queue.
The patch includes expected results for GTK at LayoutTests/platform/gtk/fast/dom/Geolocation/enabled-expected.txt.

Perhaps I misinterpreted your earlier comment ...
&gt; It&apos;s the individual platforms responsibility to manage their skipped lists and
&gt; turn on/off tests accordingly.
&gt;
&gt; I thikn it&apos;s also OK to have a &quot;is geolocation enabled&quot; test, expect enabled,
&gt; and check in &quot;PASS&quot; results on the platforms which have it, and skip it on all
&gt; other platforms.

Did you mean that it&apos;s the platform&apos;s responsibility for all platforms other than mac? Should I add a &apos;fail&apos; result for mac or add this test to the mac skipped list?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139343</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 09:08:44 -0700</bug_when>
    <thetext>The commit-queue runs from a mac.  Should these results be the same for all platforms?  If so, then they should be placed right next to the original test and platforms which want to check in platform-specific failing results can do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139345</commentid>
    <comment_count>20</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-12 09:15:51 -0700</bug_when>
    <thetext>&gt; The commit-queue runs from a mac.  Should these results be the same for all
&gt; platforms?
The &apos;pass&apos; results should be the same for all platforms that support Geolocation. Currently, this is only GTK. On platforms that don&apos;t support Geolocation (which includes mac), all tests will fail.

Should I add &apos;failed&apos; results to LayoutTests/fast/dom/ and &apos;pass&apos; results to LayoutTests/platform/gtk/fast/dom/Geolocation/? Or should I add the &apos;pass&apos; results to LayoutTests/fast/dom/ and add &apos;failed&apos; results to LayoutTests/platform/mac/fast/dom/Geolocation/ to keep the build happy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139348</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 09:18:36 -0700</bug_when>
    <thetext>The failure case seems uninteresting.  I would checkin the results next to the tests, and edit the skipped lists of all platforms you expect to fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139404</commentid>
    <comment_count>22</comment_count>
      <attachid>34671</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-12 10:34:38 -0700</bug_when>
    <thetext>Created attachment 34671
Patch 5 for bug 27716

&gt; The failure case seems uninteresting.  I would checkin the results next to the
&gt; tests, and edit the skipped lists of all platforms you expect to fail.
Done. I was confused by your earlier comments about maintenance of the skipped lists being the responsibility of the individual platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139416</commentid>
    <comment_count>23</comment_count>
      <attachid>34671</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 10:46:46 -0700</bug_when>
    <thetext>Comment on attachment 34671
Patch 5 for bug 27716

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139471</commentid>
    <comment_count>24</comment_count>
      <attachid>34671</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 12:29:28 -0700</bug_when>
    <thetext>Comment on attachment 34671
Patch 5 for bug 27716

Rejecting patch 34671 from commit-queue.  This patch will require manual commit.

Patch https://bugs.webkit.org/attachment.cgi?id=34671 from bug 27716 failed to download and apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139481</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 12:44:49 -0700</bug_when>
    <thetext>Applying 34671 from bug 27716.
[snip]
patching file LayoutTests/platform/mac/Skipped
Hunk #1 FAILED at 89.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/mac/Skipped.rej
patch -p0 &quot;LayoutTests/platform/mac/Skipped&quot; returned 1.  Pass --force to ignore patch failures.
Rejecting patch 34671 from commit-queue.  This patch will require manual commit.

mac/Skipped has changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139674</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 17:23:51 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/dom/Geolocation/enabled-expected.txt
	A	LayoutTests/fast/dom/Geolocation/enabled.html
	A	LayoutTests/fast/dom/Geolocation/resources/TEMPLATE.html
	A	LayoutTests/fast/dom/Geolocation/resources/enabled.js
	M	LayoutTests/platform/mac/Skipped
Committed r47168
	M	LayoutTests/platform/mac/Skipped
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/dom/Geolocation/enabled-expected.txt
	A	LayoutTests/fast/dom/Geolocation/resources/enabled.js
	A	LayoutTests/fast/dom/Geolocation/resources/TEMPLATE.html
	A	LayoutTests/fast/dom/Geolocation/enabled.html
r47168 = 4c2f9fcb3b4be28142507c551e59d825778c701a (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/47168</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139675</commentid>
    <comment_count>27</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-12 17:31:12 -0700</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/47168&gt; doesn&apos;t include the changes to qt/Skipped or win/Skipped.  Presumably this should also be skipped for GTK too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139676</commentid>
    <comment_count>28</comment_count>
      <attachid>34671</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-12 17:32:47 -0700</bug_when>
    <thetext>Comment on attachment 34671
Patch 5 for bug 27716

&gt; +    for (var property in navigator) {
&gt; +        if (property == &quot;geolocation&quot;) {
&gt; +            return true;
&gt; +        }
&gt; +    }

We don&apos;t include braces around the body of single-line if statements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139678</commentid>
    <comment_count>29</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 17:35:56 -0700</bug_when>
    <thetext>The patch has the changes, so I must have just applied it wrong somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139754</commentid>
    <comment_count>30</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-13 01:55:06 -0700</bug_when>
    <thetext>&gt; &lt;http://trac.webkit.org/changeset/47168&gt; doesn&apos;t include the changes to
&gt; qt/Skipped or win/Skipped.
&gt; We don&apos;t include braces around the body of single-line if statements.
Both of these are fixed in http://trac.webkit.org/changeset/47169. Thanks Eric!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139763</commentid>
    <comment_count>31</comment_count>
      <attachid>34725</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-13 02:35:22 -0700</bug_when>
    <thetext>Created attachment 34725
Disables Geolocation tests for GTK

Disables Geolocation tests for GTK, at the request of zecke@webkit.org.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139764</commentid>
    <comment_count>32</comment_count>
      <attachid>34725</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-13 02:49:59 -0700</bug_when>
    <thetext>Comment on attachment 34725
Disables Geolocation tests for GTK

&gt; Index: LayoutTests/platform/gtk/Skipped
&gt; @@ -5979,3 +5979,6 @@ editing/selection/find-in-text-control.h
&gt;  fast/harness/override-preferences.html
&gt;  fast/harness/override-preferences-2.html
&gt;  fast/harness/override-zzz-reset.html
&gt; +
&gt; +# This port doesn&apos;t support Geolocation.
&gt; +fast/dom/Geolocation

Two issues:
* According to comment at the top of the file: &quot;no grouping should occur. Every test for itself.&quot;

* This appears to be doing the addition in the section which is &quot;# Tests with bugs attached : Enable these tests again once these bugs are fixed.&quot; but this failure doesn&apos;t fit in that category.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139766</commentid>
    <comment_count>33</comment_count>
      <attachid>34727</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-13 03:08:04 -0700</bug_when>
    <thetext>Created attachment 34727
Disables Geolocation tests for GTK, Patch 2

Sorry, didn&apos;t see those rules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139836</commentid>
    <comment_count>34</comment_count>
      <attachid>34740</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-13 07:30:21 -0700</bug_when>
    <thetext>Created attachment 34740
Adds a mock Geolocation service, Patch 1

Adds a mock Geolocation service for use in LayoutTests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139839</commentid>
    <comment_count>35</comment_count>
      <attachid>34741</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-13 08:03:14 -0700</bug_when>
    <thetext>Created attachment 34741
Adds a mock Geolocation service, Patch 2

Patch now includes additions to makefiles, xcode project etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139861</commentid>
    <comment_count>36</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 09:01:01 -0700</bug_when>
    <thetext>In general we should use new bugs for new patches.  Twill be less confusing to reviewers and our tools. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139878</commentid>
    <comment_count>37</comment_count>
      <attachid>34727</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 09:43:28 -0700</bug_when>
    <thetext>Comment on attachment 34727
Disables Geolocation tests for GTK, Patch 2

Clearing flags on attachment: 34727

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/platform/gtk/Skipped
Committed r47204
	M	LayoutTests/platform/gtk/Skipped
	M	LayoutTests/ChangeLog
r47204 = 634ae99c08d1c4c5665a1e7608861c350d25570c (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/47204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139879</commentid>
    <comment_count>38</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 09:43:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139953</commentid>
    <comment_count>39</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 11:46:14 -0700</bug_when>
    <thetext>Case in point.  We were just bitten by bug 28230.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139975</commentid>
    <comment_count>40</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-13 12:30:40 -0700</bug_when>
    <thetext>I&apos;ve moved the patch to add the mock Geolocation service to a new bug - Bug 28264.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33625</attachid>
            <date>2009-07-28 07:04:53 -0700</date>
            <delta_ts>2009-07-29 08:58:40 -0700</delta_ts>
            <desc>Patch for bug 27716</desc>
            <filename>addGeolocationLayoutTests.txt</filename>
            <type>text/plain</type>
            <size>8795</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ2NDY5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMDktMDctMjggIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJ1ZyAyNzcxNjogQWRkIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzE2CisKKyAg
ICAgICAgQWRkcyB0aGUgZmlyc3QsIGJhc2ljIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4gVGhl
c2Ugc2ltcGx5IHRlc3QgdGhhdAorICAgICAgICBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gaXMgcHJl
c2VudCBvbmx5IHdoZW4gaXQgc2hvdWxkIGJlLgorCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBi
YXNlZCBoZWF2aWx5IG9uIHRob3NlIHByb3ZpZGVkIGJ5IEdyZWcgaW4KKyAgICAgICAgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMzc4NTQuCisKKyAgICAgICAgKiBnZW9sb2NhdGlv
bjogQWRkZWQuIERpcmVjdG9yeSBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgorICAgICAg
ICAqIGdlb2xvY2F0aW9uL2ltcGxlbWVudGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuIFRlc3RzIHRo
YXQgbmF2aWdhdG9yLmdlb2xvY2F0aW9uIGlzIHByZXNlbnQuCisgICAgICAgICogZ2VvbG9jYXRp
b24vaW1wbGVtZW50ZWQuaHRtbDogQWRkZWQuIERpdHRvLgorICAgICAgICAqIGdlb2xvY2F0aW9u
L25vdC1pbXBsZW1lbnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLiBUZXN0cyB0aGF0IG5hdmlnYXRv
ci5nZW9sb2NhdGlvbiBpcyBhYnNlbnQuCisgICAgICAgICogZ2VvbG9jYXRpb24vbm90LWltcGxl
bWVudGVkLmh0bWw6IEFkZGVkLiBEaXR0by4KKyAgICAgICAgKiBnZW9sb2NhdGlvbi91dGlscy5q
czogQWRkZWQuIFV0aWxpdGllcyB1c2VkIGJ5IHRoZSBhYm92ZSB0ZXN0cy4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAoZW5kVGVzdCk6CisgICAgICAgIChjb25zb2xlV3JpdGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBTa2lwcyBub3QtaW1wbGVtZW50ZWQuaHRtbCwgYXMg
R2VvbG9jYXRpb24gaXMgc3VwcG9ydGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy1sZW9wYXJk
L1NraXBwZWQ6IFNraXBzIGltcGxlbWVudGVkLmh0bWwsIGFzIEdlb2xvY2F0aW9uIGlzIG5vdCBz
dXBwb3J0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQ6IFNr
aXBzIG5vdC1pbXBsZW1lbnRlZC5odG1sLCBhcyBHZW9sb2NhdGlvbiBpcyBzdXBwb3J0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQ6IFNraXBzIGltcGxlbWVudGVkLmh0
bWwsIGFzIEdlb2xvY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
cXQvU2tpcHBlZDogU2tpcHMgaW1wbGVtZW50ZWQuaHRtbCwgYXMgR2VvbG9jYXRpb24gaXMgbm90
IHN1cHBvcnRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDogU2tpcHMgaW1wbGVt
ZW50ZWQuaHRtbCwgYXMgR2VvbG9jYXRpb24gaXMgbm90IHN1cHBvcnRlZC4KKwogMjAwOS0wNy0y
NyAgQW50b25pbyBHb21lcyAgIDxhbnRvbmlvLmdvbWVzQG9wZW5ib3NzYS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KSW5kZXg6IExheW91dFRlc3RzL2dlb2xvY2F0aW9u
L2ltcGxlbWVudGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9nZW9s
b2NhdGlvbi9pbXBsZW1lbnRlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9nZW9sb2NhdGlvbi9pbXBsZW1lbnRlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsOCBAQAorVGVzdHMgdGhhdCB0aGUgbmF2aWdhdG9yLmdlb2xvY2F0aW9uIG9iamVj
dCBpcyBwcmVzZW50LgorCitURVNUKHR5cGVvZiBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gPT0gJ29i
amVjdCcpIE9LCitURVNUKGhhc0dlb2xvY2F0aW9uUHJvcGVydHkgPT0gdHJ1ZSkgT0sKK1RFU1Qo
J2dlb2xvY2F0aW9uJyBpbiBuYXZpZ2F0b3IgPT0gdHJ1ZSkgT0sKK1RFU1QobmF2aWdhdG9yLmhh
c093blByb3BlcnR5KCdnZW9sb2NhdGlvbicpID09IHRydWUpIE9LCitFTkQgT0YgVEVTVAorCklu
ZGV4OiBMYXlvdXRUZXN0cy9nZW9sb2NhdGlvbi9pbXBsZW1lbnRlZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2dlb2xvY2F0aW9uL2ltcGxlbWVudGVkLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9nZW9sb2NhdGlvbi9pbXBsZW1lbnRlZC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDIwIEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdHMgdGhhdCB0aGUgbmF2
aWdhdG9yLmdlb2xvY2F0aW9uIG9iamVjdCBpcyBwcmVzZW50LjwvcD4KKzwvYm9keT4KKzxzY3Jp
cHQgc3JjPSJ1dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIHRlc3QoInR5cGVvZiBu
YXZpZ2F0b3IuZ2VvbG9jYXRpb24gPT0gJ29iamVjdCciKTsKKyAgICB2YXIgaGFzR2VvbG9jYXRp
b25Qcm9wZXJ0eSA9IGZhbHNlOworICAgIGZvciAodmFyIHByb3BlcnR5IGluIG5hdmlnYXRvcikg
eworICAgICAgICBpZiAocHJvcGVydHkgPT0gImdlb2xvY2F0aW9uIikgeworICAgICAgICAgICAg
aGFzR2VvbG9jYXRpb25Qcm9wZXJ0eSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKyAgICB0ZXN0KCJoYXNHZW9sb2NhdGlvblByb3BlcnR5ID09IHRydWUiKTsK
KyAgICB0ZXN0KCInZ2VvbG9jYXRpb24nIGluIG5hdmlnYXRvciA9PSB0cnVlIik7CisgICAgdGVz
dCgibmF2aWdhdG9yLmhhc093blByb3BlcnR5KCdnZW9sb2NhdGlvbicpID09IHRydWUiKTsKKyAg
ICBlbmRUZXN0KCk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2dlb2xv
Y2F0aW9uL25vdC1pbXBsZW1lbnRlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZ2VvbG9jYXRpb24vbm90LWltcGxlbWVudGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2dlb2xvY2F0aW9uL25vdC1pbXBsZW1lbnRlZC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgdGhlIG5hdmlnYXRv
ci5nZW9sb2NhdGlvbiBvYmplY3QgaXMgbm90IHByZXNlbnQuCisKK1RFU1QodHlwZW9mIG5hdmln
YXRvci5nZW9sb2NhdGlvbiA9PT0gJ3VuZGVmaW5lZCcpIE9LCitURVNUKG5hdmlnYXRvci5nZW9s
b2NhdGlvbiA9PT0gdW5kZWZpbmVkKSBPSworVEVTVChuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gPT0g
bnVsbCkgT0sKK1RFU1QoaGFzR2VvbG9jYXRpb25Qcm9wZXJ0eSA9PSBmYWxzZSkgT0sKK1RFU1Qo
J2dlb2xvY2F0aW9uJyBpbiBuYXZpZ2F0b3IgPT0gZmFsc2UpIE9LCitURVNUKG5hdmlnYXRvci5o
YXNPd25Qcm9wZXJ0eSgnZ2VvbG9jYXRpb24nKSA9PSBmYWxzZSkgT0sKK0VORCBPRiBURVNUCisK
SW5kZXg6IExheW91dFRlc3RzL2dlb2xvY2F0aW9uL25vdC1pbXBsZW1lbnRlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2dlb2xvY2F0aW9uL25vdC1pbXBsZW1lbnRlZC5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZ2VvbG9jYXRpb24vbm90LWltcGxlbWVudGVkLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0
cyB0aGF0IHRoZSBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gb2JqZWN0IGlzIG5vdCBwcmVzZW50Ljwv
cD4KKzwvYm9keT4KKzxzY3JpcHQgc3JjPSJ1dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ICAgIHRlc3QoInR5cGVvZiBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gPT09ICd1bmRlZmluZWQnIik7
CisgICAgdGVzdCgibmF2aWdhdG9yLmdlb2xvY2F0aW9uID09PSB1bmRlZmluZWQiKTsKKyAgICB0
ZXN0KCJuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gPT0gbnVsbCIpOworICAgIHZhciBoYXNHZW9sb2Nh
dGlvblByb3BlcnR5ID0gZmFsc2U7CisgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gbmF2aWdhdG9y
KSB7CisgICAgICAgIGlmIChwcm9wZXJ0eSA9PSAiZ2VvbG9jYXRpb24iKSB7CisgICAgICAgICAg
aGFzR2VvbG9jYXRpb25Qcm9wZXJ0eSA9IHRydWU7CisgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisgICAgdGVzdCgiaGFzR2VvbG9jYXRpb25Qcm9wZXJ0eSA9PSBmYWxzZSIpOwor
ICAgIHRlc3QoIidnZW9sb2NhdGlvbicgaW4gbmF2aWdhdG9yID09IGZhbHNlIik7CisgICAgdGVz
dCgibmF2aWdhdG9yLmhhc093blByb3BlcnR5KCdnZW9sb2NhdGlvbicpID09IGZhbHNlIik7Cisg
ICAgZW5kVGVzdCgpOworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9nZW9s
b2NhdGlvbi91dGlscy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9nZW9sb2NhdGlvbi91
dGlscy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2dlb2xvY2F0aW9uL3V0aWxzLmpz
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGNvbnNvbGUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Y29uc29sZSk7CisKK2Z1bmN0aW9uIHRlc3QodGVzdEZ1bmNTdHJpbmcpCit7CisgICAgaWYgKGV2
YWwodGVzdEZ1bmNTdHJpbmcpKQorICAgICAgICBjb25zb2xlV3JpdGUoIlRFU1QoIiArIHRlc3RG
dW5jU3RyaW5nICsgIikgPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz5PSzwvc3Bhbj4iKTsKKyAg
ICBlbHNlCisgICAgICAgIGNvbnNvbGVXcml0ZSgiVEVTVCgiICsgdGVzdEZ1bmNTdHJpbmcgKyAi
KSA8c3BhbiBzdHlsZT0nY29sb3I6cmVkJz5GQUlMPC9zcGFuPiIpOworfQorCitmdW5jdGlvbiBl
bmRUZXN0KCkKK3sKKyAgICBjb25zb2xlV3JpdGUoIkVORCBPRiBURVNUIik7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBjb25zb2xlV3JpdGUodGV4dCkK
K3sKKyAgICBjb25zb2xlLmlubmVySFRNTCArPSB0ZXh0ICsgIjxicj4iOworfQpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQJKHJldmlzaW9uIDQ2NDY0KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTU5OTMsMyArNTk5Myw1IEBAIGh0
dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3cKICMgTWlzc2luZyBEUlQgYWJp
bGl0eSByZXR1cm4gYSBudWxsIHJlcXVlc3QgZm9yIHdpbGxTZW5kUmVxdWVzdCByZWRpcmVjdCBj
YWxscwogaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1y
ZWRpcmVjdC5odG1sCiAKKyMgVGhpcyBwb3J0IHN1cHBvcnRzIEdlb2xvY2F0aW9uLgorZ2VvbG9j
YXRpb24vbm90LWltcGxlbWVudGVkLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1sZW9wYXJkL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LWxlb3BhcmQvU2tpcHBlZAkocmV2aXNpb24gNDY0NjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtbGVvcGFyZC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNCwzICsxNCw2IEBAIHBs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3RhYmxlLW11bHRpLWIKICMgVGVzdHMgb2YgZm9udCBm
ZWF0dXJlcyBub3Qgc3VwcG9ydGVkIGJ5IEFUU1VJCiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L215
YW5tYXItc2hhcGluZy5odG1sCiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L3RoYWktY29tYmluaW5n
LW1hcmstcG9zaXRpb25pbmcuaHRtbAorCisjIFRoaXMgcG9ydCBkb2VzIG5vdCB5ZXQgc3VwcG9y
dCBHZW9sb2NhdGlvbgorZ2VvbG9jYXRpb24vaW1wbGVtZW50ZWQuaHRtbApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQJKHJldmlzaW9uIDQ2NDY0
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDMgKzQ1LDYgQEAgbWVkaWEvdmlkZW8tY29udHJvbHMtdHJhbnNmb3Jt
ZWQuaHRtbAogbWVkaWEvdmlkZW8tY29udHJvbHMtdmlzaWJsZS1hdWRpby1vbmx5Lmh0bWwKIG1l
ZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sCiBtZWRpYS92aWRlby1kaXNwbGF5LXRvZ2ds
ZS5odG1sCisKKyMgVGhpcyBwb3J0IHN1cHBvcnRzIEdlb2xvY2F0aW9uCitnZW9sb2NhdGlvbi9u
b3QtaW1wbGVtZW50ZWQuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2Vy
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1Nr
aXBwZWQJKHJldmlzaW9uIDQ2NDY0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2Vy
L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTU0LDMgKzU0LDYgQEAgaHR0cC90ZXN0cy9jb29r
aWVzL2RvdWJsZS1xdW90ZWQtdmFsdWUtdwogCiAjIFRpZ2VyIGRvZXMgbm90IHN1cHBvcnQgY29u
bmVjdGlvblNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOiBkZWxlZ2F0ZSBjYWxsLgogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4tbm8tYXV0aG9yaXphdGlvbi5odG1sCisK
KyMgVGhpcyBwb3J0IGRvZXMgbm90IHlldCBzdXBwb3J0IEdlb2xvY2F0aW9uCitnZW9sb2NhdGlv
bi9pbXBsZW1lbnRlZC5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9u
IDQ2NDY0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5
KQpAQCAtNTEyMiwzICs1MTIyLDYgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxk
L3dpbmRvdwogCiAjIE1pc3NpbmcgRFJUIGFiaWxpdHkgcmV0dXJuIGEgbnVsbCByZXF1ZXN0IGZv
ciB3aWxsU2VuZFJlcXVlc3QgcmVkaXJlY3QgY2FsbHMKIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNl
bmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbAorCisjIFRoaXMgcG9ydCBk
b2VzIG5vdCB5ZXQgc3VwcG9ydCBHZW9sb2NhdGlvbgorZ2VvbG9jYXRpb24vaW1wbGVtZW50ZWQu
aHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHJldmlzaW9uIDQ2NDY0KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTY1MSwz
ICs2NTEsNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvbnVtYmVyCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvb2JqZWN0LXByb3RvdHlwZS5odG1sCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvc3RyaW5nLXByb3RvdHlwZS5odG1sCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvd2luZG93LXByb3BlcnRpZXMuaHRtbAorCisj
IFRoaXMgcG9ydCBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBHZW9sb2NhdGlvbgorZ2VvbG9jYXRpb24v
aW1wbGVtZW50ZWQuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33716</attachid>
            <date>2009-07-29 08:58:40 -0700</date>
            <delta_ts>2009-08-08 15:13:58 -0700</delta_ts>
            <desc>Patch for bug 27716</desc>
            <filename>addGeolocationLayoutTests2.txt</filename>
            <type>text/plain</type>
            <size>3253</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ2NTM4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMDctMjggIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJ1ZyAyNzcxNjogQWRkIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzE2CisKKyAg
ICAgICAgQWRkcyB0aGUgZmlyc3QsIGJhc2ljIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0LiBUaGlz
IHNpbXBseSB0ZXN0cyB0aGF0CisgICAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbiBpcyBwcmVz
ZW50IHdoZW4gaXQgc2hvdWxkIGJlLgorCisgICAgICAgIFRoaXMgdGVzdCBpcyBiYXNlZCBoZWF2
aWx5IG9uIHRlc3RzIHByb3ZpZGVkIGJ5IEdyZWcgaW4KKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMzc4NTQuCisKKyAgICAgICAgKiBnZW9sb2NhdGlvbjogQWRkZWQu
IERpcmVjdG9yeSBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgorICAgICAgICAqIGdlb2xv
Y2F0aW9uL2VuYWJsZWQuaHRtbDogQWRkZWQuIFRlc3RzIHRoYXQgbmF2aWdhdG9yLmdlb2xvY2F0
aW9uIGlzIHByZXNlbnQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2dlb2xvY2F0aW9uOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZ2VvbG9jYXRpb24vZW5hYmxlZC1leHBlY3RlZC50
eHQ6IEFkZGVkLiBFeHBlY3RlZCByZXN1bHQgZm9yIGFib3ZlIHRlc3QuCisKIDIwMDktMDctMjkg
IEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwgYW5kIFhhbiBMb3Blei4KSW5kZXg6IExheW91dFRlc3RzL2dl
b2xvY2F0aW9uL2VuYWJsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9nZW9sb2Nh
dGlvbi9lbmFibGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9nZW9sb2NhdGlv
bi9lbmFibGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGJv
ZHk+Cis8cD5UZXN0cyB0aGF0IHRoZSBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gb2JqZWN0IGlzIHBy
ZXNlbnQuPC9wPgorPC9ib2R5PgorPHNjcmlwdCBzcmM9InV0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICB2YXIgY29uc29sZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Y29uc29sZSk7CisKKyAgICBmdW5jdGlvbiB0ZXN0KHRlc3RGdW5jU3RyaW5nKQorICAgIHsKKyAg
ICAgICAgaWYgKGV2YWwodGVzdEZ1bmNTdHJpbmcpKQorICAgICAgICAgICAgY29uc29sZVdyaXRl
KCJURVNUKCIgKyB0ZXN0RnVuY1N0cmluZyArICIpIDxzcGFuIHN0eWxlPSdjb2xvcjpncmVlbic+
T0s8L3NwYW4+Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVEVT
VCgiICsgdGVzdEZ1bmNTdHJpbmcgKyAiKSA8c3BhbiBzdHlsZT0nY29sb3I6cmVkJz5GQUlMPC9z
cGFuPiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGVuZFRlc3QoKQorICAgIHsKKyAgICAgICAg
Y29uc29sZVdyaXRlKCJFTkQgT0YgVEVTVCIpOworICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gY29uc29sZVdyaXRl
KHRleHQpCisgICAgeworICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSB0ZXh0ICsgIjxicj4i
OworICAgIH0KKworICAgIHRlc3QoInR5cGVvZiBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gPT0gJ29i
amVjdCciKTsKKyAgICB2YXIgaGFzR2VvbG9jYXRpb25Qcm9wZXJ0eSA9IGZhbHNlOworICAgIGZv
ciAodmFyIHByb3BlcnR5IGluIG5hdmlnYXRvcikgeworICAgICAgICBpZiAocHJvcGVydHkgPT0g
Imdlb2xvY2F0aW9uIikgeworICAgICAgICAgICAgaGFzR2VvbG9jYXRpb25Qcm9wZXJ0eSA9IHRy
dWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICB0ZXN0KCJoYXNH
ZW9sb2NhdGlvblByb3BlcnR5ID09IHRydWUiKTsKKyAgICB0ZXN0KCInZ2VvbG9jYXRpb24nIGlu
IG5hdmlnYXRvciA9PSB0cnVlIik7CisgICAgdGVzdCgibmF2aWdhdG9yLmhhc093blByb3BlcnR5
KCdnZW9sb2NhdGlvbicpID09IHRydWUiKTsKKyAgICBlbmRUZXN0KCk7Cis8L3NjcmlwdD4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9nZW9sb2NhdGlvbi9lbmFibGVk
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZ2Vv
bG9jYXRpb24vZW5hYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvZ2VvbG9jYXRpb24vZW5hYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsOCBAQAorVGVzdHMgdGhhdCB0aGUgbmF2aWdhdG9yLmdlb2xvY2F0aW9u
IG9iamVjdCBpcyBwcmVzZW50LgorCitURVNUKHR5cGVvZiBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24g
PT0gJ29iamVjdCcpIE9LCitURVNUKGhhc0dlb2xvY2F0aW9uUHJvcGVydHkgPT0gdHJ1ZSkgT0sK
K1RFU1QoJ2dlb2xvY2F0aW9uJyBpbiBuYXZpZ2F0b3IgPT0gdHJ1ZSkgT0sKK1RFU1QobmF2aWdh
dG9yLmhhc093blByb3BlcnR5KCdnZW9sb2NhdGlvbicpID09IHRydWUpIE9LCitFTkQgT0YgVEVT
VAorCg==
</data>
<flag name="review"
          id="18433"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34280</attachid>
            <date>2009-08-07 08:52:12 -0700</date>
            <delta_ts>2009-08-08 15:13:58 -0700</delta_ts>
            <desc>Patch 3 for bug 27716</desc>
            <filename>addGeolocationLayoutTests3.txt</filename>
            <type>text/plain</type>
            <size>3372</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ2ODkxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDktMDgtMDcgIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJ1ZyAyNzcxNjogQWRkIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzE2CisKKyAg
ICAgICAgQWRkcyB0aGUgZmlyc3QsIGJhc2ljIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0LiBUaGlz
IHNpbXBseSB0ZXN0cyB0aGF0CisgICAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbiBpcyBwcmVz
ZW50IHdoZW4gaXQgc2hvdWxkIGJlLgorCisgICAgICAgIFRoaXMgdGVzdCBpcyBiYXNlZCBoZWF2
aWx5IG9uIHRlc3RzIHByb3ZpZGVkIGJ5IEdyZWcgaW4KKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMzc4NTQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlv
bjogQWRkZWQuIERpcmVjdG9yeSBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgorICAgICAg
ICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2VuYWJsZWQuaHRtbDogQWRkZWQuIFRlc3RzIHRoYXQg
bmF2aWdhdG9yLmdlb2xvY2F0aW9uIGlzIHByZXNlbnQuCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L2Zhc3QvZG9tOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9kb20vR2VvbG9j
YXRpb246IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L2RvbS9HZW9sb2NhdGlv
bi9lbmFibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuIEV4cGVjdGVkIHJlc3VsdCBmb3IgYWJvdmUg
dGVzdC4KKwogMjAwOS0wOC0wNyAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29uLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZW5hYmxlZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2VuYWJsZWQuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2VuYWJsZWQuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3RzIHRoYXQgdGhl
IG5hdmlnYXRvci5nZW9sb2NhdGlvbiBvYmplY3QgaXMgcHJlc2VudC48L3A+Cis8L2JvZHk+Cis8
c2NyaXB0IHNyYz0idXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgIH0KKworICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25zb2xlKTsKKworICAgIGZ1bmN0
aW9uIHRlc3QodGVzdEZ1bmNTdHJpbmcpCisgICAgeworICAgICAgICBpZiAoZXZhbCh0ZXN0RnVu
Y1N0cmluZykpCisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRFU1QoIiArIHRlc3RGdW5jU3Ry
aW5nICsgIikgPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz5PSzwvc3Bhbj4iKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgY29uc29sZVdyaXRlKCJURVNUKCIgKyB0ZXN0RnVuY1N0cmluZyAr
ICIpIDxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPkZBSUw8L3NwYW4+Iik7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gZW5kVGVzdCgpCisgICAgeworICAgICAgICBjb25zb2xlV3JpdGUoIkVORCBPRiBU
RVNUIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAg
IH0KKyAgICAKKyAgICBmdW5jdGlvbiBjb25zb2xlV3JpdGUodGV4dCkKKyAgICB7CisgICAgICAg
IGNvbnNvbGUuaW5uZXJIVE1MICs9IHRleHQgKyAiPGJyPiI7CisgICAgfQorCisgICAgdGVzdCgi
dHlwZW9mIG5hdmlnYXRvci5nZW9sb2NhdGlvbiA9PSAnb2JqZWN0JyIpOworICAgIHZhciBoYXNH
ZW9sb2NhdGlvblByb3BlcnR5ID0gZmFsc2U7CisgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gbmF2
aWdhdG9yKSB7CisgICAgICAgIGlmIChwcm9wZXJ0eSA9PSAiZ2VvbG9jYXRpb24iKSB7CisgICAg
ICAgICAgICBoYXNHZW9sb2NhdGlvblByb3BlcnR5ID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorICAgIHRlc3QoImhhc0dlb2xvY2F0aW9uUHJvcGVydHkgPT0g
dHJ1ZSIpOworICAgIHRlc3QoIidnZW9sb2NhdGlvbicgaW4gbmF2aWdhdG9yID09IHRydWUiKTsK
KyAgICB0ZXN0KCJuYXZpZ2F0b3IuaGFzT3duUHJvcGVydHkoJ2dlb2xvY2F0aW9uJykgPT0gdHJ1
ZSIpOworICAgIGVuZFRlc3QoKTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2VuYWJsZWQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9HZW9sb2Nh
dGlvbi9lbmFibGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9mYXN0L2RvbS9HZW9sb2NhdGlvbi9lbmFibGVkLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitUZXN0cyB0aGF0IHRoZSBuYXZpZ2F0b3IuZ2VvbG9j
YXRpb24gb2JqZWN0IGlzIHByZXNlbnQuCisKK1RFU1QodHlwZW9mIG5hdmlnYXRvci5nZW9sb2Nh
dGlvbiA9PSAnb2JqZWN0JykgT0sKK1RFU1QoaGFzR2VvbG9jYXRpb25Qcm9wZXJ0eSA9PSB0cnVl
KSBPSworVEVTVCgnZ2VvbG9jYXRpb24nIGluIG5hdmlnYXRvciA9PSB0cnVlKSBPSworVEVTVChu
YXZpZ2F0b3IuaGFzT3duUHJvcGVydHkoJ2dlb2xvY2F0aW9uJykgPT0gdHJ1ZSkgT0sKK0VORCBP
RiBURVNUCisK
</data>
<flag name="review"
          id="18442"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34402</attachid>
            <date>2009-08-08 15:13:58 -0700</date>
            <delta_ts>2009-08-12 10:34:38 -0700</delta_ts>
            <desc>Patch 4 for bug 27716</desc>
            <filename>addGeolocationLayoutTests4.txt</filename>
            <type>text/plain</type>
            <size>4162</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ2OTU3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDktMDgtMDggIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJ1ZyAyNzcxNjogQWRkIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzE2CisKKyAg
ICAgICAgQWRkcyB0aGUgZmlyc3QsIGJhc2ljIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0LiBUaGlz
IHNpbXBseSB0ZXN0cyB0aGF0CisgICAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbiBpcyBwcmVz
ZW50IHdoZW4gaXQgc2hvdWxkIGJlLgorCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb246
IEFkZGVkLiBEaXJlY3RvcnkgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KKyAgICAgICAg
KiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9lbmFibGVkLmh0bWw6IEFkZGVkLiBIVE1MIHdyYXBwZXIg
Zm9yIGVuYWJsZWQuanMgdGVzdC4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNv
dXJjZXM6IEFkZGVkLiBEaXJlY3RvcnkgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cyBKUyBz
b3VyY2UuCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2VuYWJsZWQu
anM6IEFkZGVkLiBUZXN0cyB0aGF0IG5hdmlnYXRvci5nZW9sb2NhdGlvbiBpcyBwcmVzZW50Lgor
ICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9URU1QTEFURS5odG1sOiBB
ZGRlZC4gVGVtcGxhdGUgZm9yIGNyZWF0aW5nIEhUTUwgd3JhcHBlciBmaWxlcyBmb3IgSlMgdGVz
dHMgd2l0aCBtYWtlLWpzLXRlc3Qtd3JhcHBlcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zh
c3QvZG9tOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC9kb20vR2VvbG9jYXRp
b246IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L2RvbS9HZW9sb2NhdGlvbi9l
bmFibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuIEV4cGVjdGVkIHJlc3VsdCBmb3IgYWJvdmUgdGVz
dC4KKwogMjAwOS0wOC0wOCAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9lbmFibGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZW5hYmxlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZW5hYmxlZC5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2VuYWJsZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2Vz
L1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9s
b2NhdGlvbi9yZXNvdXJjZXMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9I
RVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9lbmFibGVkLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9lbmFibGVkLmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2Vu
YWJsZWQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IHRoZSBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gb2JqZWN0IGlzIHByZXNlbnQuIik7CisK
K2Z1bmN0aW9uIGhhc0dlb2xvY2F0aW9uUHJvcGVydHkoKQoreworICAgIGZvciAodmFyIHByb3Bl
cnR5IGluIG5hdmlnYXRvcikgeworICAgICAgICBpZiAocHJvcGVydHkgPT0gImdlb2xvY2F0aW9u
IikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitzaG91bGRCZVRydWUoInR5cGVvZiBuYXZpZ2F0b3IuZ2VvbG9jYXRp
b24gPT0gJ29iamVjdCciKTsKK3Nob3VsZEJlVHJ1ZSgiaGFzR2VvbG9jYXRpb25Qcm9wZXJ0eSgp
Iik7CitzaG91bGRCZVRydWUoIidnZW9sb2NhdGlvbicgaW4gbmF2aWdhdG9yIik7CitzaG91bGRC
ZVRydWUoIm5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0eSgnZ2VvbG9jYXRpb24nKSIpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L2RvbS9HZW9sb2NhdGlvbi9lbmFibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vR2VvbG9jYXRpb24vZW5hYmxlZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFz
dC9kb20vR2VvbG9jYXRpb24vZW5hYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTMgQEAKK1Rlc3RzIHRoYXQgdGhlIG5hdmlnYXRvci5nZW9sb2NhdGlvbiBvYmplY3Qg
aXMgcHJlc2VudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdHlwZW9m
IG5hdmlnYXRvci5nZW9sb2NhdGlvbiA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIGhhc0dlb2xv
Y2F0aW9uUHJvcGVydHkoKSBpcyB0cnVlCitQQVNTICdnZW9sb2NhdGlvbicgaW4gbmF2aWdhdG9y
IGlzIHRydWUKK1BBU1MgbmF2aWdhdG9yLmhhc093blByb3BlcnR5KCdnZW9sb2NhdGlvbicpIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
Cg==
</data>
<flag name="review"
          id="18582"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="18584"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34671</attachid>
            <date>2009-08-12 10:34:38 -0700</date>
            <delta_ts>2009-08-12 17:32:47 -0700</delta_ts>
            <desc>Patch 5 for bug 27716</desc>
            <filename>addGeolocationLayoutTests5.txt</filename>
            <type>text/plain</type>
            <size>5654</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ3MTE4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMDgtMTIgIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJ1ZyAyNzcxNjogQWRkIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzE2CisKKyAg
ICAgICAgQWRkcyB0aGUgZmlyc3QsIGJhc2ljIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0LiBUaGlz
IHNpbXBseSB0ZXN0cyB0aGF0CisgICAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbiBpcyBwcmVz
ZW50IHdoZW4gaXQgc2hvdWxkIGJlLgorCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb246
IEFkZGVkLiBEaXJlY3RvcnkgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KKyAgICAgICAg
KiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9lbmFibGVkLmh0bWw6IEFkZGVkLiBIVE1MIHdyYXBwZXIg
Zm9yIGVuYWJsZWQuanMgdGVzdC4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNv
dXJjZXM6IEFkZGVkLiBEaXJlY3RvcnkgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cyBKUyBz
b3VyY2UuCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2VuYWJsZWQu
anM6IEFkZGVkLiBUZXN0cyB0aGF0IG5hdmlnYXRvci5nZW9sb2NhdGlvbiBpcyBwcmVzZW50Lgor
ICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9URU1QTEFURS5odG1sOiBB
ZGRlZC4gVGVtcGxhdGUgZm9yIGNyZWF0aW5nIEhUTUwgd3JhcHBlciBmaWxlcyBmb3IgSlMgdGVz
dHMgd2l0aCBtYWtlLWpzLXRlc3Qtd3JhcHBlcnMuCisgICAgICAgICogZmFzdC9kb20vR2VvbG9j
YXRpb24vZW5hYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLiBFeHBlY3RlZCByZXN1bHQgZm9yIGFi
b3ZlIHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6IE1vZGlmaWVkLiBTa2lw
IEdlb2xvY2F0aW9uIHRlc3RzLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6IE1vZGlm
aWVkLiBTa2lwIEdlb2xvY2F0aW9uIHRlc3RzLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lw
cGVkOiBNb2RpZmllZC4gU2tpcCBHZW9sb2NhdGlvbiB0ZXN0cy4KKwogMjAwOS0wOC0xMiAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBPbGl2ZXIgSHVudC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vu
YWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dl
b2xvY2F0aW9uL2VuYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZW5hYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRoYXQgdGhlIG5hdmlnYXRvci5nZW9sb2NhdGlvbiBv
YmplY3QgaXMgcHJlc2VudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
dHlwZW9mIG5hdmlnYXRvci5nZW9sb2NhdGlvbiA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIGhh
c0dlb2xvY2F0aW9uUHJvcGVydHkoKSBpcyB0cnVlCitQQVNTICdnZW9sb2NhdGlvbicgaW4gbmF2
aWdhdG9yIGlzIHRydWUKK1BBU1MgbmF2aWdhdG9yLmhhc093blByb3BlcnR5KCdnZW9sb2NhdGlv
bicpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9lbmFibGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZW5hYmxl
ZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24v
ZW5hYmxlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2VuYWJsZWQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRp
b24vcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvVEVNUExBVEUuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9l
bmFibGVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9u
L3Jlc291cmNlcy9lbmFibGVkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2VuYWJsZWQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTggQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBuYXZpZ2F0b3IuZ2VvbG9jYXRp
b24gb2JqZWN0IGlzIHByZXNlbnQuIik7CisKK2Z1bmN0aW9uIGhhc0dlb2xvY2F0aW9uUHJvcGVy
dHkoKQoreworICAgIGZvciAodmFyIHByb3BlcnR5IGluIG5hdmlnYXRvcikgeworICAgICAgICBp
ZiAocHJvcGVydHkgPT0gImdlb2xvY2F0aW9uIikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzaG91bGRCZVRydWUo
InR5cGVvZiBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gPT0gJ29iamVjdCciKTsKK3Nob3VsZEJlVHJ1
ZSgiaGFzR2VvbG9jYXRpb25Qcm9wZXJ0eSgpIik7CitzaG91bGRCZVRydWUoIidnZW9sb2NhdGlv
bicgaW4gbmF2aWdhdG9yIik7CitzaG91bGRCZVRydWUoIm5hdmlnYXRvci5oYXNPd25Qcm9wZXJ0
eSgnZ2VvbG9jYXRpb24nKSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShyZXZpc2lvbiA0NzExOCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC04OSwzICs4OSw2IEBA
IGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC93aW5kb3cKICMgTmV3IHRlc3Qgd2l0
aCBxdWVzdGlvbmFibGUgcmVzdWx0cwogIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI4MDc5IGZvciBleHBsYW5hdGlvbi4KIGZhc3QvZm9ybXMvbWVudWxpc3Qt
c3R5bGUtY29sb3IuaHRtbAorCisjIFRoaXMgcG9ydCBkb2Vzbid0IHN1cHBvcnQgR2VvbG9jYXRp
b24uCitmYXN0L2RvbS9HZW9sb2NhdGlvbgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCShy
ZXZpc2lvbiA0NzExOCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtp
bmcgY29weSkKQEAgLTUxMTMsMyArNTExMyw2IEBAIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0
YW5jZS0yLmh0bWwKIGZhc3QvaGFybmVzcy9vdmVycmlkZS1wcmVmZXJlbmNlcy5odG1sCiBmYXN0
L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sCiBmYXN0L2hhcm5lc3Mvb3ZlcnJp
ZGUtenp6LXJlc2V0Lmh0bWwKKworIyBUaGlzIHBvcnQgZG9lc24ndCBzdXBwb3J0IEdlb2xvY2F0
aW9uLgorZmFzdC9kb20vR2VvbG9jYXRpb24KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVk
CShyZXZpc2lvbiA0NzExOCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCSh3
b3JraW5nIGNvcHkpCkBAIC01NzgsMyArNTc4LDYgQEAgZmFzdC9mb3Jtcy9tZW51bGlzdC1zdHls
ZS1jb2xvci5odG1sCiAKICMgPHJkYXI6Ly83MTI3OTAyPiBodHRwL3Rlc3RzL21pc2MvZmF2aWNv
bi1sb2Fkcy13aXRoLWltYWdlcy1kaXNhYmxlZC5odG1sIGNyYXNoZXMgb24gV2luZG93cyBkZWJ1
ZwogaHR0cC90ZXN0cy9taXNjL2Zhdmljb24tbG9hZHMtd2l0aC1pbWFnZXMtZGlzYWJsZWQuaHRt
bAorCisjIFRoaXMgcG9ydCBkb2Vzbid0IHN1cHBvcnQgR2VvbG9jYXRpb24uCitmYXN0L2RvbS9H
ZW9sb2NhdGlvbgo=
</data>
<flag name="review"
          id="18827"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="18833"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34725</attachid>
            <date>2009-08-13 02:35:22 -0700</date>
            <delta_ts>2009-08-13 03:08:04 -0700</delta_ts>
            <desc>Disables Geolocation tests for GTK</desc>
            <filename>disableGeolocationTestsForGtk.txt</filename>
            <type>text/plain</type>
            <size>1118</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ3MTg3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMDgtMTMgIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERpc2FibGVzIEdlb2xvY2F0aW9uIHRlc3RzIGZvciBHVEsgcG9ydCwgYXMg
dGhlIEdUSyBHZW9sb2NhdGlvbiBpbXBsZW1lbnRhdGlvbiBpcyBpbmNvbXBsZXRlLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MTYKKworICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBNb2RpZmllZC4gRGlzYWJsZXMgR2VvbG9jYXRpb24g
dGVzdHMuCisKIDIwMDktMDgtMTIgIEFscGhhIExhbSA8IGhjbGFtQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBOb3QgcmV2aWV3ZWQsIFdpbmRvd3MgdGVzdCBmaXggYWZ0ZXIgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvNDcxNzEuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZAkocmV2aXNpb24gNDcxODcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtNTk3OSwzICs1OTc5LDYgQEAgZWRpdGluZy9zZWxlY3Rpb24vZmlu
ZC1pbi10ZXh0LWNvbnRyb2wuaAogZmFzdC9oYXJuZXNzL292ZXJyaWRlLXByZWZlcmVuY2VzLmh0
bWwKIGZhc3QvaGFybmVzcy9vdmVycmlkZS1wcmVmZXJlbmNlcy0yLmh0bWwKIGZhc3QvaGFybmVz
cy9vdmVycmlkZS16enotcmVzZXQuaHRtbAorCisjIFRoaXMgcG9ydCBkb2Vzbid0IHN1cHBvcnQg
R2VvbG9jYXRpb24uCitmYXN0L2RvbS9HZW9sb2NhdGlvbgo=
</data>
<flag name="review"
          id="18920"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34727</attachid>
            <date>2009-08-13 03:08:04 -0700</date>
            <delta_ts>2009-08-13 09:43:28 -0700</delta_ts>
            <desc>Disables Geolocation tests for GTK, Patch 2</desc>
            <filename>disableGeolocationTestsForGtk.txt</filename>
            <type>text/plain</type>
            <size>1231</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ3MTg3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMDgtMTMgIFN0ZXZlIEJsb2NrICA8c3Rl
dmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERpc2FibGVzIEdlb2xvY2F0aW9uICdlbmFibGVkJyB0ZXN0IGZvciBHVEsg
cG9ydCwgYXMgdGhlIEdUSyBHZW9sb2NhdGlvbiBpbXBsZW1lbnRhdGlvbiBpcyBpbmNvbXBsZXRl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MTYK
KworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBNb2RpZmllZC4gRGlzYWJsZXMgR2Vv
bG9jYXRpb24gJ2VuYWJsZWQnIHRlc3QuCisKIDIwMDktMDgtMTIgIEFscGhhIExhbSA8IGhjbGFt
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQsIFdpbmRvd3MgdGVzdCBmaXgg
YWZ0ZXIgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNDcxNzEuCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZAkocmV2aXNpb24gNDcxODcpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTYxNSw2ICsxNjE1LDcgQEAgZmFz
dC9kb20vY2xpZW50LXdpZHRoLWhlaWdodC1xdWlya3MuaHRtbAogZmFzdC9kb20vY2xpZW50LXdp
ZHRoLWhlaWdodC5odG1sCiBmYXN0L2RvbS9jc3NUYXJnZXQtY3Jhc2guaHRtbAogZmFzdC9kb20v
ZnJhbWUtbG9hZGluZy12aWEtZG9jdW1lbnQtd3JpdGUuaHRtbAorZmFzdC9kb20vR2VvbG9jYXRp
b24vZW5hYmxlZC5odG1sCiBmYXN0L2RvbS9nZXRCb3VuZGluZ0NsaWVudFJlY3QuaHRtbAogZmFz
dC9kb20vbG9jYXRpb24tbmV3LXdpbmRvdy1uby1jcmFzaC5odG1sCiBmYXN0L2RvbS9udWxsLWRv
Y3VtZW50LWxvY2F0aW9uLWFzc2lnbi1jcmFzaC5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34740</attachid>
            <date>2009-08-13 07:30:21 -0700</date>
            <delta_ts>2009-08-13 08:03:14 -0700</delta_ts>
            <desc>Adds a mock Geolocation service, Patch 1</desc>
            <filename>addMockGeolocationService.txt</filename>
            <type>text/plain</type>
            <size>17004</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzE5NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDggQEAKKzIwMDktMDgtMTMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHBy
b3ZpZGUgcHJlZGljdGFibGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIEFQ
SSBmb3IgdXNlIGluIExheW91dFRlc3RzLiBMYXRlciBjaGFuZ2VzIHdpbGwgaW5jb3Jwb3JhdGUg
dGhlIHRoZSBtb2NrCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2Ugd2l0aCBEdW1wUmVuZGVy
VHJlZS4KKworICAgICAgICBUaGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlIHJldHVybnMgYSBm
aXhlZCBwb3NpdGlvbiBvciBlcnJvci4gVGhpcyBwb3NpdGlvbiBvciBlcnJvciBjYW4gYmUKKyAg
ICAgICAgc2V0IHRocm91Z2ggc3RhdGljIG1ldGhvZHMgb24gdGhlIEdlb2xvY2F0aW9uU2Vydmlj
ZSBjbGFzcy4gVGhlIHBvc2l0aW9uIG9yIGVycm9yIGlzIHNoYXJlZAorICAgICAgICBiZXR3ZWVu
IGFsbCBpbnN0YW5jZXMgb2YgdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4KKworICAgICAg
ICBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBUaGUgR2VvbG9jYXRpb25TZXJ2aWNlIG9iamVjdCBt
YWludGFpbnMgYSBwb2ludGVyIHRvIGEgZmFjdG9yeSBmdW5jdGlvbiB3aGljaCBpdCB1c2VzIHRv
IGNyZWF0ZQorICAgICAgICBHZW9sb2NhdGlvbiBzZXJ2aWNlIGluc3RhbmNlcy4gRWFjaCBwbGF0
Zm9ybSBpbXBsZW1lbnRpbmcgR2VvbG9jYXRpb24gc2V0cyB0aGlzIHBvaW50ZXIKKyAgICAgICAg
dG8gdGhlIGZhY3RvcnkgZnVuY3Rpb24gZm9yIHRoZWlyIHBsYXRmb3JtJ3MgaW1wbGVtZW50YXRp
b24uIFdoZW4gdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZQorICAgICAgICBpcyBhY3RpdmF0
ZWQsIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50ZXIgaXMgcmVzZXQgdG8gdGhlIGZhY3Rvcnkg
ZnVuY3Rpb24gZm9yIHRoZSBtb2NrIHNlcnZpY2UuCisKKyAgICAgICAgTm8gdGVzdHMgYXQgcHJl
c2VudC4gVGhpcyBjb2RlIHdpbGwgc29vbiBiZSB1c2VkIGluIEdlb2xvY2F0aW9uIExheW91dFRl
c3RzLgorCisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcDogTW9kaWZp
ZWQuIAorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTnVsbEdlb2xvY2F0aW9uU2VydmljZSk6IEFk
ZGVkLiBSZXR1cm5zIG51bGwgaW4gcGxhY2Ugb2YgYSBHZW9sb2NhdGlvbiBzZXJ2aWNlLiBVc2Vk
IHRvIGF2b2lkIGxpbmsgZXJyb3JzIG9uIHBsYXRmb3JtcyB3aGVyZSBHZW9sb2NhdGlvbiBpcyBu
b3QgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2U6OmNy
ZWF0ZSk6IEFkZGVkLiBVc2VzIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50ZXIgdG8gY3JlYXRl
IGEgR2VvbG9jYXRpb24gc2VydmljZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uU2VydmljZTo6c2V0TW9ja1Bvc2l0aW9uKTogQWRkZWQuIEFjdGl2YXRlcyB0
aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlIGFuZCBzZXRzIHRoZSBwb3NpdGlvbiBpdCB3aWxs
IHJldHVybiB0byB0aGUgcG9zaXRpb24gc3VwcGxpZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvblNlcnZpY2U6OnNldE1vY2tFcnJvcik6IEFkZGVkLiBBY3RpdmF0ZXMgdGhlIG1vY2sg
R2VvbG9jYXRpb24gc2VydmljZSBhbmQgc2V0cyB0aGUgZXJyb3IgaXQgd2lsbCByZXR1cm4gdG8g
dGhlIGVycm9yIHN1cHBsaWVkLgorICAgICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2Vydmlj
ZS5oOiBNb2RpZmllZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNl
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpj
cmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhIE1vY2tHZW9sb2NhdGlvblNlcnZpY2Ugb2JqZWN0Lgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6TW9ja0dlb2xvY2F0aW9u
U2VydmljZSk6IEFkZGVkLiBDb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9s
b2NhdGlvblNlcnZpY2U6On5Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlKTogQWRkZWQuIERlc3RydWN0
b3IuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpzZXRQb3NpdGlv
bik6IEFkZGVkLiBTZXRzIHRoZSBwb3NpdGlvbiB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgYnkgdGhl
IG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldEVy
cm9yKTogQWRkZWQuIFNldHMgdGhlIGVycm9yIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBieSB0aGUg
b2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c3RhcnRV
cGRhdGluZyk6IEFkZGVkLiBHZW9sb2NhdGlvblNlcnZpY2UgaW1wbGVtZW50YXRpb24uIFN0YXJ0
cyB0aGUgc2VydmljZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6
OnRpbWVyRmlyZWQpOiBBZGRlZC4gVXNlZCB0byBwcm92aWRlIGFuIGFzeW5jaHJvbm91cyBjYWxs
YmFjayB3aGVuIHRoZSBzZXJ2aWNlIGlzIHN0YXJ0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2Nr
R2VvbG9jYXRpb25TZXJ2aWNlOjptYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5j
ZXMpOiBBZGRlZC4gVXNlZCB0byBjYWxsIGJhY2sgd2hlbiB0aGUgcG9zaXRpb24gb3IgZXJyb3Ig
aXMgdXBkYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6Om1h
a2VHZW9sb2NhdGlvbkNhbGxiYWNrKTogQWRkZWQuIFVzZWQgdG8gY2FsbCBiYWNrIHdoZW4gdGhl
IHNlcnZpY2Ugc3RhcnRzLgorICAgICAgICAqIHBsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZp
Y2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjps
YXN0UG9zaXRpb24pOiBBZGRlZC4gUmV0dXJucyB0aGUgZml4ZWQgcG9zaXRpb24uCisgICAgICAg
IChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpsYXN0RXJyb3IpOiBBZGRlZC4gUmV0
dXJucyB0aGUgZml4ZWQgZXJyb3IuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9u
U2VydmljZUd0ay5jcHA6IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25T
ZXJ2aWNlR3RrOjpjcmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBHZW9sb2Nh
dGlvblNlcnZpY2VHdGsuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2Vydmlj
ZUd0ay5oOiBNb2RpZmllZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvR2VvbG9jYXRpb25TZXJ2
aWNlTWFjLmg6IE1vZGlmaWVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNl
cnZpY2VNYWMubW06IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2
aWNlTWFjOjpjcmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBHZW9sb2NhdGlv
blNlcnZpY2VNYWMuCisKIDIwMDktMDgtMTMgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZlcnQgcjQ3MTg1LCB0aGUgZml4IGZvciA8aHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MTg1PiwgYXMgaXQgYnJva2UgdGhlCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCShyZXZpc2lvbiA0NzE4NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjAsMjMgKzIwLDQ1IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKKyNpbmNsdWRlICJHZW9wb3NpdGlv
bi5oIgorI2luY2x1ZGUgIk1vY2tHZW9sb2NhdGlvblNlcnZpY2UuaCIKKyNpbmNsdWRlICJQb3Np
dGlvbkVycm9yLmgiCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICNpZiAhRU5BQkxFKEdFT0xPQ0FUSU9OKQotR2VvbG9jYXRpb25TZXJ2aWNl
KiBHZW9sb2NhdGlvblNlcnZpY2U6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKQor
R2VvbG9jYXRpb25TZXJ2aWNlKiBjcmVhdGVOdWxsR2VvbG9jYXRpb25TZXJ2aWNlKEdlb2xvY2F0
aW9uU2VydmljZUNsaWVudCopCiB7CiAgICAgcmV0dXJuIDA7CiB9CisKK0dlb2xvY2F0aW9uU2Vy
dmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0
aW9uID0gJmNyZWF0ZU51bGxHZW9sb2NhdGlvblNlcnZpY2U7CiAjZW5kaWYKIAorR2VvbG9jYXRp
b25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2U6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VD
bGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gKCpzX2ZhY3RvcnlGdW5jdGlvbikoY2xpZW50
KTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2U6OnNldE1vY2tQb3NpdGlvbihQYXNzUmVm
UHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbikKK3sKKyAgICBzX2ZhY3RvcnlGdW5jdGlvbiA9ICZN
b2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGU7CisgICAgTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZTo6c2V0UG9zaXRpb24ocG9zaXRpb24pOworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZTo6
c2V0TW9ja0Vycm9yKFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvcj4gZXJyb3IpCit7CisgICAgc19m
YWN0b3J5RnVuY3Rpb24gPSAmTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlOworICAgIE1v
Y2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldEVycm9yKGVycm9yKTsKK30KKwogR2VvbG9jYXRpb25T
ZXJ2aWNlOjpHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGll
bnQpCiAgICAgOiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudChjbGllbnQpCiB7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmgJKHJldmlzaW9uIDQ3MTg3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsNyBAQAogI2RlZmluZSBHZW9sb2NhdGlvblNlcnZpY2VfaAogCiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC01OSwxMSArNjAsMTcgQEAgcHVibGljOgogICAgIHZvaWQgcG9zaXRp
b25DaGFuZ2VkKCk7CiAgICAgdm9pZCBlcnJvck9jY3VycmVkKCk7CiAKKyAgICBzdGF0aWMgdm9p
ZCBzZXRNb2NrUG9zaXRpb24oUGFzc1JlZlB0cjxHZW9wb3NpdGlvbj4pOworICAgIHN0YXRpYyB2
b2lkIHNldE1vY2tFcnJvcihQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+KTsKKwogcHJvdGVjdGVk
OgogICAgIEdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKIAog
cHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIG1fZ2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50OworCisgICAgdHlwZWRlZiBHZW9sb2NhdGlvblNlcnZpY2UqIChGYWN0b3J5RnVu
Y3Rpb24pKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0YXRpYyBGYWN0b3J5RnVu
Y3Rpb24qIHNfZmFjdG9yeUZ1bmN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZpY2UuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9ja0dl
b2xvY2F0aW9uU2VydmljZS5oIgorCisjaW5jbHVkZSAiR2VvcG9zaXRpb24uaCIKKyNpbmNsdWRl
ICJQb3NpdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiUG9zaXRpb25PcHRpb25zLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6TW9ja0dlb2xvY2F0aW9u
U2VydmljZVNldCBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2luc3RhbmNlczsKK1JlZlB0cjxH
ZW9wb3NpdGlvbj4gTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c19sYXN0UG9zaXRpb24gPSAwOwor
UmVmUHRyPFBvc2l0aW9uRXJyb3I+IE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNfbGFzdEVycm9y
ID0gMDsKKworR2VvbG9jYXRpb25TZXJ2aWNlKiBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVh
dGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIG5ldyBN
b2NrR2VvbG9jYXRpb25TZXJ2aWNlKGNsaWVudCk7Cit9CisKK01vY2tHZW9sb2NhdGlvblNlcnZp
Y2U6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGll
bnQpCisgICAgOiBHZW9sb2NhdGlvblNlcnZpY2UoY2xpZW50KQorICAgICwgbV90aW1lcih0aGlz
LCAmTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6dGltZXJGaXJlZCkKK3sKKyAgICBzX2luc3RhbmNl
cy5hZGQodGhpcyk7Cit9CisKK01vY2tHZW9sb2NhdGlvblNlcnZpY2U6On5Nb2NrR2VvbG9jYXRp
b25TZXJ2aWNlKCkKK3sKKyAgICBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlU2V0OjppdGVyYXRvciBp
dGVyID0gc19pbnN0YW5jZXMuZmluZCh0aGlzKTsKKyAgICBBU1NFUlQoaXRlciAhPSBzX2luc3Rh
bmNlcy5lbmQoKSk7CisgICAgc19pbnN0YW5jZXMucmVtb3ZlKGl0ZXIpOworfQorCit2b2lkIE1v
Y2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldFBvc2l0aW9uKFBhc3NSZWZQdHI8R2VvcG9zaXRpb24+
IHBvc2l0aW9uKQoreworICAgIHNfbGFzdFBvc2l0aW9uID0gcG9zaXRpb247CisgICAgc19sYXN0
RXJyb3IgPSAwOworICAgIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJvbUFsbEluc3RhbmNlcygp
OworfQorCit2b2lkIE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldEVycm9yKFBhc3NSZWZQdHI8
UG9zaXRpb25FcnJvcj4gZXJyb3IpCit7CisgICAgc19sYXN0RXJyb3IgPSBlcnJvcjsKKyAgICBz
X2xhc3RQb3NpdGlvbiA9IDA7CisgICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5z
dGFuY2VzKCk7Cit9CisKK2Jvb2wgTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c3RhcnRVcGRhdGlu
ZyhQb3NpdGlvbk9wdGlvbnMqIG9wdGlvbnMpCit7CisgICAgbV90aW1lci5zdGFydE9uZVNob3Qo
MCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6
dGltZXJGaXJlZChUaW1lcjxNb2NrR2VvbG9jYXRpb25TZXJ2aWNlPiogdGltZXIpCit7CisgICAg
QVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gbV90aW1lcik7CisgICAgbWFrZUdlb2xvY2F0
aW9uQ2FsbGJhY2soKTsKK30KKwordm9pZCBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjptYWtlR2Vv
bG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMoKQoreworICAgIE1vY2tHZW9sb2NhdGlv
blNlcnZpY2VTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHNfaW5zdGFuY2VzLmVuZCgpOworICAg
IGZvciAoTW9ja0dlb2xvY2F0aW9uU2VydmljZVNldDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IHNf
aW5zdGFuY2VzLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisgICAgICAgICgqaXRlcikt
Pm1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgTW9ja0dlb2xvY2F0aW9uU2Vy
dmljZTo6bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKQoreworICAgIGlmIChzX2xhc3RQb3NpdGlv
bikKKyAgICAgICAgcG9zaXRpb25DaGFuZ2VkKCk7CisgICAgZWxzZSBpZiAoc19sYXN0RXJyb3Ip
CisgICAgICAgIGVycm9yT2NjdXJyZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZpY2UuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgTW9ja0dlb2xvY2F0aW9uU2VydmljZV9oCisjZGVmaW5lIE1v
Y2tHZW9sb2NhdGlvblNlcnZpY2VfaAorCisjaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlLmgi
CisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKy8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBtb2NrIGltcGxlbWVudGF0aW9u
IG9mIGEgR2VvbG9jYXRpb25TZXJ2aWNlIGZvciB0ZXN0aW5nCisvLyBwdXJwb3Nlcy4gSXQgYWxs
b3dzIHRoZSBwb3NpdGlvbiBvciBlcnJvciB0aGF0IHdpbGwgYmUgcmVwb3J0ZWQgYnkgdGhpcyBj
bGFzcworLy8gdG8gYmUgc2V0IG1hbnVhbGx5IHVzaW5nIHRoZSBzZXRQb3NpdGlvbiBhbmQgc2V0
RXJyb3IgbWV0aG9kcy4gT2JqZWN0cyBvZgorLy8gdGhpcyBjbGFzcyBjYWxsIGJhY2sgdG8gdGhl
aXIgcmVzcGVjdGl2ZSBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQgd2l0aCB0aGUKKy8vIHBvc2l0
aW9uIG9yIGVycm9yIGV2ZXJ5IHRpbWUgZWl0aGVyIG9mIHRoZXNlIGlzIHVwZGF0ZWQuCitjbGFz
cyBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlIDogcHVibGljIEdlb2xvY2F0aW9uU2VydmljZSB7Cisg
IHB1YmxpYzoKKyAgICBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNlKiBjcmVhdGUoR2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50Kik7CisKKyAgICBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlKEdlb2xvY2F0
aW9uU2VydmljZUNsaWVudCopOworICAgIHZpcnR1YWwgfk1vY2tHZW9sb2NhdGlvblNlcnZpY2Uo
KTsKKworICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9ucyopOwor
CisgICAgc3RhdGljIHZvaWQgc2V0UG9zaXRpb24oUGFzc1JlZlB0cjxHZW9wb3NpdGlvbj4gcG9z
aXRpb24pOworICAgIHN0YXRpYyB2b2lkIHNldEVycm9yKFBhc3NSZWZQdHI8UG9zaXRpb25FcnJv
cj4gcG9zaXRpb24pOworCisgICAgdmlydHVhbCBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9uKCkg
Y29uc3QgeyByZXR1cm4gc19sYXN0UG9zaXRpb24uZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIFBvc2l0
aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0IHsgcmV0dXJuIHNfbGFzdEVycm9yLmdldCgpOyB9
CisKKyAgcHJpdmF0ZToKKyAgICBzdGF0aWMgdm9pZCBtYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zy
b21BbGxJbnN0YW5jZXMoKTsKKyAgICB2b2lkIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7CisK
KyAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8TW9ja0dlb2xvY2F0aW9uU2VydmljZT4qKTsKKwor
ICAgIHN0YXRpYyBSZWZQdHI8R2VvcG9zaXRpb24+IHNfbGFzdFBvc2l0aW9uOworICAgIHN0YXRp
YyBSZWZQdHI8UG9zaXRpb25FcnJvcj4gc19sYXN0RXJyb3I7CisKKyAgICB0eXBlZGVmIEhhc2hT
ZXQ8TW9ja0dlb2xvY2F0aW9uU2VydmljZSo+IE1vY2tHZW9sb2NhdGlvblNlcnZpY2VTZXQ7Cisg
ICAgc3RhdGljIE1vY2tHZW9sb2NhdGlvblNlcnZpY2VTZXQgc19pbnN0YW5jZXM7CisKKyAgICBU
aW1lcjxNb2NrR2VvbG9jYXRpb25TZXJ2aWNlPiBtX3RpbWVyOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9ja0dlb2xvY2F0aW9uU2VydmljZV9oCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5jcHAJKHJldmlz
aW9uIDQ3MTg3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3Rr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTEgKzM3LDEzIEBAIG5hbWVzcGFjZSBXVEYgewog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdlb2xvY2F0aW9uU2VydmljZSogR2VvbG9jYXRpb25T
ZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCitHZW9sb2Nh
dGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZUd0azo6Y3JlYXRlKEdlb2xvY2F0aW9uU2Vy
dmljZUNsaWVudCogY2xpZW50KQogewogICAgIHJldHVybiBuZXcgR2VvbG9jYXRpb25TZXJ2aWNl
R3RrKGNsaWVudCk7CiB9CiAKK0dlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBH
ZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9uID0gJkdlb2xvY2F0aW9uU2Vydmlj
ZUd0azo6Y3JlYXRlOworCiBHZW9sb2NhdGlvblNlcnZpY2VHdGs6Okdlb2xvY2F0aW9uU2Vydmlj
ZUd0ayhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKICAgICA6IEdlb2xvY2F0aW9u
U2VydmljZShjbGllbnQpCiAgICAgLCBtX2dlb2NsdWVDbGllbnQoMCkKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCShyZXZpc2lvbiA0NzE4NykK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
R2VvbG9jYXRpb25TZXJ2aWNlR3RrIDogcHVibGljIEdlb2xvY2F0aW9uU2VydmljZSB7CiAgICAg
cHVibGljOgotICAgICAgICBHZW9sb2NhdGlvblNlcnZpY2VHdGsoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50Kik7CisgICAgICAgIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0ZShHZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQqKTsKICAgICAgICAgfkdlb2xvY2F0aW9uU2VydmljZUd0aygp
OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9ucyop
OwpAQCAtNDQsNiArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBvc2l0aW9u
RXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgR2VvbG9j
YXRpb25TZXJ2aWNlR3RrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworCiAgICAgICAgIHZv
aWQgdXBkYXRlTG9jYXRpb25JbmZvcm1hdGlvbigpOwogICAgICAgICB2b2lkIHNldEVycm9yKFBv
c2l0aW9uRXJyb3I6OkVycm9yQ29kZSwgY29uc3QgY2hhciogbWVzc2FnZSk7CiAgICAgICAgIHZv
aWQgdXBkYXRlUG9zaXRpb24oKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xvY2F0
aW9uU2VydmljZU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xv
Y2F0aW9uU2VydmljZU1hYy5oCShyZXZpc2lvbiA0NzE4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0v
bWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlTWFjIDog
cHVibGljIEdlb2xvY2F0aW9uU2VydmljZSB7CiBwdWJsaWM6Ci0gICAgR2VvbG9jYXRpb25TZXJ2
aWNlTWFjKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0YXRpYyBHZW9sb2NhdGlv
blNlcnZpY2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKICAgICB2aXJ0dWFs
IH5HZW9sb2NhdGlvblNlcnZpY2VNYWMoKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc3RhcnRV
cGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogICAg
IHZvaWQgZXJyb3JPY2N1cnJlZChQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+KTsKIAogcHJpdmF0
ZToKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VNYWMoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7
CisKICAgICBSZXRhaW5QdHI8Q0xMb2NhdGlvbk1hbmFnZXI+IG1fbG9jYXRpb25NYW5hZ2VyOwog
ICAgIFJldGFpblB0cjxXZWJDb3JlQ29yZUxvY2F0aW9uT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVy
OwogICAgIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvR2VvbG9jYXRpb25TZXJ2aWNlTWFj
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2Vydmlj
ZU1hYy5tbQkocmV2aXNpb24gNDcxODcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9HZW9sb2Nh
dGlvblNlcnZpY2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1LDExICs2NSwxMyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HZW9sb2NhdGlv
blNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNs
aWVudCogY2xpZW50KQorR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2VNYWM6
OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKIHsKICAgICByZXR1cm4g
bmV3IEdlb2xvY2F0aW9uU2VydmljZU1hYyhjbGllbnQpOwogfQogCitHZW9sb2NhdGlvblNlcnZp
Y2U6OnNfZmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0
aW9uID0gJkdlb2xvY2F0aW9uU2VydmljZU1hYzo6Y3JlYXRlOworCiBHZW9sb2NhdGlvblNlcnZp
Y2VNYWM6Okdlb2xvY2F0aW9uU2VydmljZU1hYyhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNs
aWVudCkKICAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCiAgICAgLCBtX29iamNPYnNl
cnZlcihBZG9wdE5TLCBbW1dlYkNvcmVDb3JlTG9jYXRpb25PYnNlcnZlciBhbGxvY10gaW5pdFdp
dGhDYWxsYmFjazp0aGlzXSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34741</attachid>
            <date>2009-08-13 08:03:14 -0700</date>
            <delta_ts>2009-08-13 12:29:23 -0700</delta_ts>
            <desc>Adds a mock Geolocation service, Patch 2</desc>
            <filename>addMockGeolocationService2.txt</filename>
            <type>text/plain</type>
            <size>24372</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzE5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMDktMDgtMTMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHBy
b3ZpZGUgcHJlZGljdGFibGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIEFQ
SSBmb3IgdXNlIGluIExheW91dFRlc3RzLiBMYXRlciBjaGFuZ2VzIHdpbGwgaW5jb3Jwb3JhdGUg
dGhlIHRoZSBtb2NrCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2Ugd2l0aCBEdW1wUmVuZGVy
VHJlZS4KKworICAgICAgICBUaGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlIHJldHVybnMgYSBm
aXhlZCBwb3NpdGlvbiBvciBlcnJvci4gVGhpcyBwb3NpdGlvbiBvciBlcnJvciBjYW4gYmUKKyAg
ICAgICAgc2V0IHRocm91Z2ggc3RhdGljIG1ldGhvZHMgb24gdGhlIEdlb2xvY2F0aW9uU2Vydmlj
ZSBjbGFzcy4gVGhlIHBvc2l0aW9uIG9yIGVycm9yIGlzIHNoYXJlZAorICAgICAgICBiZXR3ZWVu
IGFsbCBpbnN0YW5jZXMgb2YgdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4KKworICAgICAg
ICBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBUaGUgR2VvbG9jYXRpb25TZXJ2aWNlIG9iamVjdCBt
YWludGFpbnMgYSBwb2ludGVyIHRvIGEgZmFjdG9yeSBmdW5jdGlvbiB3aGljaCBpdCB1c2VzIHRv
IGNyZWF0ZQorICAgICAgICBHZW9sb2NhdGlvbiBzZXJ2aWNlIGluc3RhbmNlcy4gRWFjaCBwbGF0
Zm9ybSBpbXBsZW1lbnRpbmcgR2VvbG9jYXRpb24gc2V0cyB0aGlzIHBvaW50ZXIKKyAgICAgICAg
dG8gdGhlIGZhY3RvcnkgZnVuY3Rpb24gZm9yIHRoZWlyIHBsYXRmb3JtJ3MgaW1wbGVtZW50YXRp
b24uIFdoZW4gdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZQorICAgICAgICBpcyBhY3RpdmF0
ZWQsIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50ZXIgaXMgcmVzZXQgdG8gdGhlIGZhY3Rvcnkg
ZnVuY3Rpb24gZm9yIHRoZSBtb2NrIHNlcnZpY2UuCisKKyAgICAgICAgTm8gdGVzdHMgYXQgcHJl
c2VudC4gVGhpcyBjb2RlIHdpbGwgc29vbiBiZSB1c2VkIGluIEdlb2xvY2F0aW9uIExheW91dFRl
c3RzLgorCisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcDogTW9kaWZp
ZWQuIAorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTnVsbEdlb2xvY2F0aW9uU2VydmljZSk6IEFk
ZGVkLiBSZXR1cm5zIG51bGwgaW4gcGxhY2Ugb2YgYSBHZW9sb2NhdGlvbiBzZXJ2aWNlLiBVc2Vk
IHRvIGF2b2lkIGxpbmsgZXJyb3JzIG9uIHBsYXRmb3JtcyB3aGVyZSBHZW9sb2NhdGlvbiBpcyBu
b3QgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2U6OmNy
ZWF0ZSk6IEFkZGVkLiBVc2VzIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50ZXIgdG8gY3JlYXRl
IGEgR2VvbG9jYXRpb24gc2VydmljZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uU2VydmljZTo6c2V0TW9ja1Bvc2l0aW9uKTogQWRkZWQuIEFjdGl2YXRlcyB0
aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlIGFuZCBzZXRzIHRoZSBwb3NpdGlvbiBpdCB3aWxs
IHJldHVybiB0byB0aGUgcG9zaXRpb24gc3VwcGxpZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvblNlcnZpY2U6OnNldE1vY2tFcnJvcik6IEFkZGVkLiBBY3RpdmF0ZXMgdGhlIG1vY2sg
R2VvbG9jYXRpb24gc2VydmljZSBhbmQgc2V0cyB0aGUgZXJyb3IgaXQgd2lsbCByZXR1cm4gdG8g
dGhlIGVycm9yIHN1cHBsaWVkLgorICAgICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2Vydmlj
ZS5oOiBNb2RpZmllZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNl
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpj
cmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhIE1vY2tHZW9sb2NhdGlvblNlcnZpY2Ugb2JqZWN0Lgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6TW9ja0dlb2xvY2F0aW9u
U2VydmljZSk6IEFkZGVkLiBDb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9s
b2NhdGlvblNlcnZpY2U6On5Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlKTogQWRkZWQuIERlc3RydWN0
b3IuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpzZXRQb3NpdGlv
bik6IEFkZGVkLiBTZXRzIHRoZSBwb3NpdGlvbiB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgYnkgdGhl
IG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldEVy
cm9yKTogQWRkZWQuIFNldHMgdGhlIGVycm9yIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBieSB0aGUg
b2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c3RhcnRV
cGRhdGluZyk6IEFkZGVkLiBHZW9sb2NhdGlvblNlcnZpY2UgaW1wbGVtZW50YXRpb24uIFN0YXJ0
cyB0aGUgc2VydmljZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6
OnRpbWVyRmlyZWQpOiBBZGRlZC4gVXNlZCB0byBwcm92aWRlIGFuIGFzeW5jaHJvbm91cyBjYWxs
YmFjayB3aGVuIHRoZSBzZXJ2aWNlIGlzIHN0YXJ0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2Nr
R2VvbG9jYXRpb25TZXJ2aWNlOjptYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5j
ZXMpOiBBZGRlZC4gVXNlZCB0byBjYWxsIGJhY2sgd2hlbiB0aGUgcG9zaXRpb24gb3IgZXJyb3Ig
aXMgdXBkYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6Om1h
a2VHZW9sb2NhdGlvbkNhbGxiYWNrKTogQWRkZWQuIFVzZWQgdG8gY2FsbCBiYWNrIHdoZW4gdGhl
IHNlcnZpY2Ugc3RhcnRzLgorICAgICAgICAqIHBsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZp
Y2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjps
YXN0UG9zaXRpb24pOiBBZGRlZC4gUmV0dXJucyB0aGUgZml4ZWQgcG9zaXRpb24uCisgICAgICAg
IChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpsYXN0RXJyb3IpOiBBZGRlZC4gUmV0
dXJucyB0aGUgZml4ZWQgZXJyb3IuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9u
U2VydmljZUd0ay5jcHA6IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25T
ZXJ2aWNlR3RrOjpjcmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBHZW9sb2Nh
dGlvblNlcnZpY2VHdGsuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2Vydmlj
ZUd0ay5oOiBNb2RpZmllZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvR2VvbG9jYXRpb25TZXJ2
aWNlTWFjLmg6IE1vZGlmaWVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNl
cnZpY2VNYWMubW06IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2
aWNlTWFjOjpjcmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBHZW9sb2NhdGlv
blNlcnZpY2VNYWMuCisgICAgICAgICogV2ViQ29yZS9XZWJDb3JlLnBybzogTW9kaWZpZWQuIEFk
ZGVkIG1vY2sgTW9ja0dlb2xvY2F0aW9uU2VydmljZSBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtOiBNb2RpZmllZC4gQWRkZWQgbW9jayBNb2NrR2VvbG9jYXRpb25TZXJ2
aWNlIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUvV2ViQ29yZS5neXBpOiBNb2RpZmllZC4gQWRk
ZWQgbW9jayBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBNb2RpZmllZC4gQWRkZWQgbW9jayBN
b2NrR2VvbG9jYXRpb25TZXJ2aWNlIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUvV2ViQ29yZVNv
dXJjZXMuYmtsOiBNb2RpZmllZC4gQWRkZWQgbW9jayBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlIGZp
bGVzLgorICAgICAgICAqIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IE1v
ZGlmaWVkLiBBZGRlZCBtb2NrIE1vY2tHZW9sb2NhdGlvblNlcnZpY2UgZmlsZXMuCisKIDIwMDkt
MDgtMTMgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjQ3
MTg1LCB0aGUgZml4IGZvciA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI4MTg1PiwgYXMgaXQgYnJva2UgdGhlCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDQ3MTk2KQorKysg
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTM3Miw2ICsxMzcyLDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5j
cHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5oIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL01J
TUVUeXBlUmVnaXN0cnkuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9Ob3RJbXBsZW1lbnRlZC5oIFwK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS5neXBpCShyZXZpc2lvbiA0NzE5NikKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTc3LDYgKzI1NzcsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xvZ2dp
bmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L01vY2tHZW9sb2NhdGlvblNlcnZpY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTm90SW1w
bGVtZW50ZWQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGFzdGVib2FyZC5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCcsCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9u
IDQ3MTk2KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTE2Myw2
ICsxMTYzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vTGVuZ3RoLmNwcCBcCiAgICAg
cGxhdGZvcm0vTGlua0hhc2guY3BwIFwKICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCisgICAg
cGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHAgXAogICAgIHBsYXRmb3JtL01JTUVU
eXBlUmVnaXN0cnkuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5jcHAgXApA
QCAtMTgzOCw2ICsxODM5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vTGVuZ3RoLmgg
XAogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmggXAogICAgIHBsYXRmb3JtL0xvZ2dpbmcuaCBcCisg
ICAgcGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5oIFwKICAgICBwbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5LmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VCYXNlLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5oIFwKSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZVNvdXJjZXMuYmtsCShyZXZpc2lvbiA0NzE5NikKKysrIFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMu
YmtsCSh3b3JraW5nIGNvcHkpCkBAIC04MDIsNiArODAyLDcgQEAgVGhpcyBmaWxlIGNvbnRhaW5z
IHRoZSBsaXN0IG9mIGZpbGVzIG5lZQogICAgICAgICBwbGF0Zm9ybS9MZW5ndGguY3BwCiAgICAg
ICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNwcAogICAgICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmNwcAor
ICAgICAgICBwbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAogICAgICAgICBwbGF0
Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAogICAgICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJF
eHByZXNzaW9uLmNwcAogICAgICAgICBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNDcxOTYpCisr
KyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtOTU0LDYgKzk1NCw4IEBACiAJCTU0QzUwRjdCMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxU
b2tlbml6ZXJMaWJ4bWwyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU0QzUwRjdBMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwy
LmNwcCAqLzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBC
QzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovOyB9OwogCQk1NTBBMEJD
QTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1
YWxpZmllZE5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk1OUQzQTg2ODEwMzQ1QzNGMDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUQz
QTg2NzEwMzQ1QzNGMDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHAgKi87IH07
CisJCTU5RDNBODZDMTAzNDVDNTYwMDRBNDYyNiAvKiBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUQzQTg2QjEw
MzQ1QzU2MDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2VydmljZS5oICovOyB9OwogCQk1RDE1
RTNBQjBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQxNUUzQTkwRjlFNkFDMTAwOUUw
RTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmNwcCAqLzsgfTsKIAkJNUQxNUUzQUMwRjlFNkFDMTAw
OUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1RDE1RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5p
emVyU2NvcGUuaCAqLzsgfTsKIAkJNUQ4NzRGMTMwRDE2MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlci5jcHAgKi87IH07CkBAIC02MDE2LDYgKzYwMTgsOCBAQAogCQk1NEM1MEY3QTBF
ODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmll
ZE5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyog
UXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQk1OUQzQTg2NzEwMzQ1QzNGMDA0QTQ2MjYgLyog
TW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTlEM0E4NkIxMDM0NUM1NjAwNEE0NjI2IC8qIE1vY2tHZW9sb2NhdGlvblNlcnZp
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0dlb2xvY2F0aW9uU2Vy
dmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDE1RTNBOTBGOUU2QUMxMDA5
RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gWE1MVG9rZW5pemVyU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1RDE1RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MVG9rZW5pemVyU2NvcGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ5MjVCNjUwRjY0RDRERDAwQjg0N0YwIC8qIFNj
cm9sbEJlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
cm9sbEJlaGF2aW9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MTY0LDYg
KzE0MTY4LDggQEAKIAkJCQk5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3Ry
aW5ncy5oICovLAogCQkJCUE4MjM5REZFMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmNwcCAq
LywKIAkJCQlBODIzOURGRjA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oICovLAorCQkJCTU5
RDNBODY3MTAzNDVDM0YwMDRBNDYyNiAvKiBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCAqLywK
KwkJCQk1OUQzQTg2QjEwMzQ1QzU2MDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2VydmljZS5o
ICovLAogCQkJCUJDNzcyQzRDMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNw
cCAqLywKIAkJCQlCQzc3MkM0RDBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5o
ICovLAogCQkJCTRCMjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi8sCkBA
IC0xNzI1OSw2ICsxNzI2NSw3IEBACiAJCQkJNDk0ODRGQ0UxMDJDRjIzQzAwMTg3REQzIC8qIENh
bnZhc1N0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUg
LyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1QzExMjNDMTAy
QjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1OUQzQTg2QzEwMzQ1QzU2MDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xOTMxOCw2ICsxOTMyNSw3IEBACiAJCQkJOTM5MjI2MkQx
MDMyMTA3QjAwNkU3RDVEIC8qIEpTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVDMTEyM0IxMDJCNkM0NjAwMDk2NTc4IC8qIFNR
TFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTlEM0E4Njgx
MDM0NUMzRjAwNEE0NjI2IC8qIE1vY2tHZW9sb2NhdGlvblNlcnZpY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCShyZXZpc2lv
biA0NzE5NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjAsMjMgKzIwLDQ1IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKKyNpbmNs
dWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIk1vY2tHZW9sb2NhdGlvblNlcnZpY2UuaCIK
KyNpbmNsdWRlICJQb3NpdGlvbkVycm9yLmgiCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhRU5BQkxFKEdFT0xPQ0FUSU9OKQotR2Vv
bG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2U6OmNyZWF0ZShHZW9sb2NhdGlvblNl
cnZpY2VDbGllbnQqKQorR2VvbG9jYXRpb25TZXJ2aWNlKiBjcmVhdGVOdWxsR2VvbG9jYXRpb25T
ZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopCiB7CiAgICAgcmV0dXJuIDA7CiB9CisK
K0dlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6
OnNfZmFjdG9yeUZ1bmN0aW9uID0gJmNyZWF0ZU51bGxHZW9sb2NhdGlvblNlcnZpY2U7CiAjZW5k
aWYKIAorR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2U6OmNyZWF0ZShHZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gKCpzX2ZhY3RvcnlG
dW5jdGlvbikoY2xpZW50KTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2U6OnNldE1vY2tQ
b3NpdGlvbihQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbikKK3sKKyAgICBzX2ZhY3Rv
cnlGdW5jdGlvbiA9ICZNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGU7CisgICAgTW9ja0dl
b2xvY2F0aW9uU2VydmljZTo6c2V0UG9zaXRpb24ocG9zaXRpb24pOworfQorCit2b2lkIEdlb2xv
Y2F0aW9uU2VydmljZTo6c2V0TW9ja0Vycm9yKFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvcj4gZXJy
b3IpCit7CisgICAgc19mYWN0b3J5RnVuY3Rpb24gPSAmTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6
Y3JlYXRlOworICAgIE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldEVycm9yKGVycm9yKTsKK30K
KwogR2VvbG9jYXRpb25TZXJ2aWNlOjpHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBjbGllbnQpCiAgICAgOiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudChjbGll
bnQpCiB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmgJKHJldmlzaW9u
IDQ3MTk2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBHZW9sb2NhdGlvblNlcnZpY2VfaAog
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSwxMSArNjAsMTcgQEAgcHVibGljOgog
ICAgIHZvaWQgcG9zaXRpb25DaGFuZ2VkKCk7CiAgICAgdm9pZCBlcnJvck9jY3VycmVkKCk7CiAK
KyAgICBzdGF0aWMgdm9pZCBzZXRNb2NrUG9zaXRpb24oUGFzc1JlZlB0cjxHZW9wb3NpdGlvbj4p
OworICAgIHN0YXRpYyB2b2lkIHNldE1vY2tFcnJvcihQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+
KTsKKwogcHJvdGVjdGVkOgogICAgIEdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZp
Y2VDbGllbnQqKTsKIAogcHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIG1f
Z2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50OworCisgICAgdHlwZWRlZiBHZW9sb2NhdGlvblNlcnZp
Y2UqIChGYWN0b3J5RnVuY3Rpb24pKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0
YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfZmFjdG9yeUZ1bmN0aW9uOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2
aWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNl
cnZpY2UuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRp
b25TZXJ2aWNlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTW9ja0dlb2xvY2F0aW9uU2VydmljZS5oIgorCisjaW5jbHVkZSAiR2VvcG9zaXRp
b24uaCIKKyNpbmNsdWRlICJQb3NpdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiUG9zaXRpb25PcHRp
b25zLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6
TW9ja0dlb2xvY2F0aW9uU2VydmljZVNldCBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2luc3Rh
bmNlczsKK1JlZlB0cjxHZW9wb3NpdGlvbj4gTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c19sYXN0
UG9zaXRpb24gPSAwOworUmVmUHRyPFBvc2l0aW9uRXJyb3I+IE1vY2tHZW9sb2NhdGlvblNlcnZp
Y2U6OnNfbGFzdEVycm9yID0gMDsKKworR2VvbG9jYXRpb25TZXJ2aWNlKiBNb2NrR2VvbG9jYXRp
b25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlKGNsaWVudCk7Cit9CisKK01vY2tH
ZW9sb2NhdGlvblNlcnZpY2U6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBjbGllbnQpCisgICAgOiBHZW9sb2NhdGlvblNlcnZpY2UoY2xpZW50KQorICAg
ICwgbV90aW1lcih0aGlzLCAmTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6dGltZXJGaXJlZCkKK3sK
KyAgICBzX2luc3RhbmNlcy5hZGQodGhpcyk7Cit9CisKK01vY2tHZW9sb2NhdGlvblNlcnZpY2U6
On5Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlKCkKK3sKKyAgICBNb2NrR2VvbG9jYXRpb25TZXJ2aWNl
U2V0OjppdGVyYXRvciBpdGVyID0gc19pbnN0YW5jZXMuZmluZCh0aGlzKTsKKyAgICBBU1NFUlQo
aXRlciAhPSBzX2luc3RhbmNlcy5lbmQoKSk7CisgICAgc19pbnN0YW5jZXMucmVtb3ZlKGl0ZXIp
OworfQorCit2b2lkIE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldFBvc2l0aW9uKFBhc3NSZWZQ
dHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uKQoreworICAgIHNfbGFzdFBvc2l0aW9uID0gcG9zaXRp
b247CisgICAgc19sYXN0RXJyb3IgPSAwOworICAgIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJv
bUFsbEluc3RhbmNlcygpOworfQorCit2b2lkIE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldEVy
cm9yKFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvcj4gZXJyb3IpCit7CisgICAgc19sYXN0RXJyb3Ig
PSBlcnJvcjsKKyAgICBzX2xhc3RQb3NpdGlvbiA9IDA7CisgICAgbWFrZUdlb2xvY2F0aW9uQ2Fs
bGJhY2tGcm9tQWxsSW5zdGFuY2VzKCk7Cit9CisKK2Jvb2wgTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZTo6c3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqIG9wdGlvbnMpCit7CisgICAgbV90aW1l
ci5zdGFydE9uZVNob3QoMCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTW9ja0dlb2xv
Y2F0aW9uU2VydmljZTo6dGltZXJGaXJlZChUaW1lcjxNb2NrR2VvbG9jYXRpb25TZXJ2aWNlPiog
dGltZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gbV90aW1lcik7Cisg
ICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKTsKK30KKwordm9pZCBNb2NrR2VvbG9jYXRpb25T
ZXJ2aWNlOjptYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMoKQoreworICAg
IE1vY2tHZW9sb2NhdGlvblNlcnZpY2VTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHNfaW5zdGFu
Y2VzLmVuZCgpOworICAgIGZvciAoTW9ja0dlb2xvY2F0aW9uU2VydmljZVNldDo6Y29uc3RfaXRl
cmF0b3IgaXRlciA9IHNfaW5zdGFuY2VzLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisg
ICAgICAgICgqaXRlciktPm1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgTW9j
a0dlb2xvY2F0aW9uU2VydmljZTo6bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKQoreworICAgIGlm
IChzX2xhc3RQb3NpdGlvbikKKyAgICAgICAgcG9zaXRpb25DaGFuZ2VkKCk7CisgICAgZWxzZSBp
ZiAoc19sYXN0RXJyb3IpCisgICAgICAgIGVycm9yT2NjdXJyZWQoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2
aWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2
aWNlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNl
cnZpY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZV9oCisjZGVmaW5lIE1vY2tHZW9sb2NhdGlvblNlcnZpY2VfaAorCisjaW5jbHVkZSAiR2VvbG9j
YXRpb25TZXJ2aWNlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBtb2Nr
IGltcGxlbWVudGF0aW9uIG9mIGEgR2VvbG9jYXRpb25TZXJ2aWNlIGZvciB0ZXN0aW5nCisvLyBw
dXJwb3Nlcy4gSXQgYWxsb3dzIHRoZSBwb3NpdGlvbiBvciBlcnJvciB0aGF0IHdpbGwgYmUgcmVw
b3J0ZWQgYnkgdGhpcyBjbGFzcworLy8gdG8gYmUgc2V0IG1hbnVhbGx5IHVzaW5nIHRoZSBzZXRQ
b3NpdGlvbiBhbmQgc2V0RXJyb3IgbWV0aG9kcy4gT2JqZWN0cyBvZgorLy8gdGhpcyBjbGFzcyBj
YWxsIGJhY2sgdG8gdGhlaXIgcmVzcGVjdGl2ZSBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQgd2l0
aCB0aGUKKy8vIHBvc2l0aW9uIG9yIGVycm9yIGV2ZXJ5IHRpbWUgZWl0aGVyIG9mIHRoZXNlIGlz
IHVwZGF0ZWQuCitjbGFzcyBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlIDogcHVibGljIEdlb2xvY2F0
aW9uU2VydmljZSB7CisgIHB1YmxpYzoKKyAgICBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNlKiBj
cmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CisKKyAgICBNb2NrR2VvbG9jYXRpb25T
ZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHZpcnR1YWwgfk1vY2tHZW9s
b2NhdGlvblNlcnZpY2UoKTsKKworICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBvc2l0
aW9uT3B0aW9ucyopOworCisgICAgc3RhdGljIHZvaWQgc2V0UG9zaXRpb24oUGFzc1JlZlB0cjxH
ZW9wb3NpdGlvbj4gcG9zaXRpb24pOworICAgIHN0YXRpYyB2b2lkIHNldEVycm9yKFBhc3NSZWZQ
dHI8UG9zaXRpb25FcnJvcj4gcG9zaXRpb24pOworCisgICAgdmlydHVhbCBHZW9wb3NpdGlvbiog
bGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gc19sYXN0UG9zaXRpb24uZ2V0KCk7IH0KKyAg
ICB2aXJ0dWFsIFBvc2l0aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0IHsgcmV0dXJuIHNfbGFz
dEVycm9yLmdldCgpOyB9CisKKyAgcHJpdmF0ZToKKyAgICBzdGF0aWMgdm9pZCBtYWtlR2VvbG9j
YXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMoKTsKKyAgICB2b2lkIG1ha2VHZW9sb2NhdGlv
bkNhbGxiYWNrKCk7CisKKyAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8TW9ja0dlb2xvY2F0aW9u
U2VydmljZT4qKTsKKworICAgIHN0YXRpYyBSZWZQdHI8R2VvcG9zaXRpb24+IHNfbGFzdFBvc2l0
aW9uOworICAgIHN0YXRpYyBSZWZQdHI8UG9zaXRpb25FcnJvcj4gc19sYXN0RXJyb3I7CisKKyAg
ICB0eXBlZGVmIEhhc2hTZXQ8TW9ja0dlb2xvY2F0aW9uU2VydmljZSo+IE1vY2tHZW9sb2NhdGlv
blNlcnZpY2VTZXQ7CisgICAgc3RhdGljIE1vY2tHZW9sb2NhdGlvblNlcnZpY2VTZXQgc19pbnN0
YW5jZXM7CisKKyAgICBUaW1lcjxNb2NrR2VvbG9jYXRpb25TZXJ2aWNlPiBtX3RpbWVyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9ja0dlb2xvY2F0aW9uU2Vy
dmljZV9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2Vydmlj
ZUd0ay5jcHAJKHJldmlzaW9uIDQ3MTk2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9j
YXRpb25TZXJ2aWNlR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTEgKzM3LDEzIEBAIG5h
bWVzcGFjZSBXVEYgewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdlb2xvY2F0aW9uU2Vydmlj
ZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBj
bGllbnQpCitHZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZUd0azo6Y3JlYXRl
KEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogewogICAgIHJldHVybiBuZXcgR2Vv
bG9jYXRpb25TZXJ2aWNlR3RrKGNsaWVudCk7CiB9CiAKK0dlb2xvY2F0aW9uU2VydmljZTo6RmFj
dG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9uID0gJkdl
b2xvY2F0aW9uU2VydmljZUd0azo6Y3JlYXRlOworCiBHZW9sb2NhdGlvblNlcnZpY2VHdGs6Okdl
b2xvY2F0aW9uU2VydmljZUd0ayhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKICAg
ICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCiAgICAgLCBtX2dlb2NsdWVDbGllbnQoMCkK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCShy
ZXZpc2lvbiA0NzE5NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2Vydmlj
ZUd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlR3RrIDogcHVibGljIEdlb2xvY2F0aW9u
U2VydmljZSB7CiAgICAgcHVibGljOgotICAgICAgICBHZW9sb2NhdGlvblNlcnZpY2VHdGsoR2Vv
bG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CisgICAgICAgIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZp
Y2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKICAgICAgICAgfkdlb2xvY2F0
aW9uU2VydmljZUd0aygpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBv
c2l0aW9uT3B0aW9ucyopOwpAQCAtNDQsNiArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFBvc2l0aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToK
KyAgICAgICAgR2VvbG9jYXRpb25TZXJ2aWNlR3RrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCop
OworCiAgICAgICAgIHZvaWQgdXBkYXRlTG9jYXRpb25JbmZvcm1hdGlvbigpOwogICAgICAgICB2
b2lkIHNldEVycm9yKFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSwgY29uc3QgY2hhciogbWVzc2Fn
ZSk7CiAgICAgICAgIHZvaWQgdXBkYXRlUG9zaXRpb24oKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCShyZXZpc2lvbiA0NzE5NikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRp
b25TZXJ2aWNlTWFjIDogcHVibGljIEdlb2xvY2F0aW9uU2VydmljZSB7CiBwdWJsaWM6Ci0gICAg
R2VvbG9jYXRpb25TZXJ2aWNlTWFjKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0
YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQq
KTsKICAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNlcnZpY2VNYWMoKTsKICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKQEAgLTYxLDYgKzYxLDgg
QEAgcHVibGljOgogICAgIHZvaWQgZXJyb3JPY2N1cnJlZChQYXNzUmVmUHRyPFBvc2l0aW9uRXJy
b3I+KTsKIAogcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VNYWMoR2VvbG9jYXRpb25T
ZXJ2aWNlQ2xpZW50Kik7CisKICAgICBSZXRhaW5QdHI8Q0xMb2NhdGlvbk1hbmFnZXI+IG1fbG9j
YXRpb25NYW5hZ2VyOwogICAgIFJldGFpblB0cjxXZWJDb3JlQ29yZUxvY2F0aW9uT2JzZXJ2ZXI+
IG1fb2JqY09ic2VydmVyOwogICAgIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvR2VvbG9j
YXRpb25TZXJ2aWNlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dl
b2xvY2F0aW9uU2VydmljZU1hYy5tbQkocmV2aXNpb24gNDcxOTYpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1LDEx
ICs2NSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1HZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xv
Y2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQorR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2Nh
dGlvblNlcnZpY2VNYWM6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkK
IHsKICAgICByZXR1cm4gbmV3IEdlb2xvY2F0aW9uU2VydmljZU1hYyhjbGllbnQpOwogfQogCitH
ZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6
OnNfZmFjdG9yeUZ1bmN0aW9uID0gJkdlb2xvY2F0aW9uU2VydmljZU1hYzo6Y3JlYXRlOworCiBH
ZW9sb2NhdGlvblNlcnZpY2VNYWM6Okdlb2xvY2F0aW9uU2VydmljZU1hYyhHZW9sb2NhdGlvblNl
cnZpY2VDbGllbnQqIGNsaWVudCkKICAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCiAg
ICAgLCBtX29iamNPYnNlcnZlcihBZG9wdE5TLCBbW1dlYkNvcmVDb3JlTG9jYXRpb25PYnNlcnZl
ciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>