<?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>29080</bug_id>
          
          <creation_ts>2009-09-09 05:02:41 -0700</creation_ts>
          <short_desc>Geolocation Coordinates::toString() prints bogus values for unspecified properties.</short_desc>
          <delta_ts>2009-09-10 12:39:15 -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="Steve Block">steveblock</assigned_to>
          <cc>andreip</cc>
    
    <cc>benm</cc>
    
    <cc>bolsinga</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145706</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-09 05:02:41 -0700</bug_when>
    <thetext>Geolocation Coordinates::toString() prints the values of all properties, even for optional properties which have not been specified. This means that it is not possible to determine which properties are valid.

Note that this affects the toString method in both C++ and JS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145709</commentid>
    <comment_count>1</comment_count>
      <attachid>39264</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-09 05:11:16 -0700</bug_when>
    <thetext>Created attachment 39264
Patch 1 for bug 29080

Fixes bug and adds LayoutTest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145741</commentid>
    <comment_count>2</comment_count>
      <attachid>39264</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-09 07:33:39 -0700</bug_when>
    <thetext>Comment on attachment 39264
Patch 1 for bug 29080

Coordinates::toString now does String appending, which requires new memory allocation for every single operation and is hence quite inefficient. It&apos;s a better idiom to use StringBuilder or Vector&lt;UChar&gt;. Same comment about the existing code in Geoposition::toString.

Does this textual version of the object match anyone else&apos;s Geolocation implementation? Is the behavior specified anywhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145783</commentid>
    <comment_count>3</comment_count>
      <attachid>39271</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-09 09:09:11 -0700</bug_when>
    <thetext>Created attachment 39271
Patch 2 for bug 29080

&gt; Coordinates::toString now does String appending, which requires new memory
&gt; allocation for every single operation and is hence quite inefficient.
Fixed

&gt; Does this textual version of the object match anyone else&apos;s Geolocation
&gt; implementation?
Neither Gears nor Firefox provide custom toString() methods for their JS position or coordinates objects.

&gt; Is the behavior specified anywhere?
No, the spec does not mention this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145836</commentid>
    <comment_count>4</comment_count>
      <attachid>39271</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-09 10:51:17 -0700</bug_when>
    <thetext>Comment on attachment 39271
Patch 2 for bug 29080

These results assume that the mock makes a synchronous callback.  Probably warrants a comment.

Also:
+    window.layoutTestController.notifyDone();
is not needed if this is sync.

Nit 4space indent:
+function shouldContainString(expression, string)
+{
+  var expressionResult = eval(expression);
+
+  if (expressionResult.indexOf(string) != -1)
+    testPassed(expression + &apos; contains &quot;&apos; + string + &apos;&quot;.&apos;);
+  else
+    testFailed(expression + &apos; should contain &quot;&apos; + string + &apos;&quot;. Was &quot;&apos; + stringify(expressionResult) + &apos;&quot;.&apos;);
+}

window. are not technically needed here, but certainly don&apos;t hurt:
+window.layoutTestController.setGeolocationPermission(true);
+window.layoutTestController.setMockGeolocationPosition(mockLatitude,

Probably needs a comment:
+    position = p;  // shouldBe can&apos;t use local variables yet.

Oh, I see.  You modified the template to not include js-post.  In that case, you really should add this script to the exclusion list for make-script-test-wrappers.  And possibly ignore my comments above about this being sync.

In general this looks good, but could use one more round.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145892</commentid>
    <comment_count>5</comment_count>
      <attachid>39292</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-09 12:13:31 -0700</bug_when>
    <thetext>Created attachment 39292
Patch 3 for bug 29080

&gt; Nit 4space indent:
Fixed

&gt;Probably needs a comment:
&gt; +    position = p;  // shouldBe can&apos;t use local variables yet.
Fixed

&gt; Oh, I see.  You modified the template to not include js-post.  In that case,
&gt; you really should add this script to the exclusion list for
&gt; make-script-test-wrappers.
Fixed, and also for asynchronous other Geolocation tests.

&gt;  And possibly ignore my comments above about this being sync.
Yes, it&apos;s asynchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145930</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-09-09 14:21:29 -0700</bug_when>
    <thetext>
&gt; &gt; Is the behavior specified anywhere?
&gt; No, the spec does not mention this.

If the spec does not mention this and we are the only ones who support it, we should just remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145949</commentid>
    <comment_count>7</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-09 14:50:36 -0700</bug_when>
    <thetext>&gt; If the spec does not mention this and we are the only ones who support it, we
&gt; should just remove it.
Sounds reasonable to me. Presumably we should remove the C++ side too, as it&apos;s only useful for logging?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145954</commentid>
    <comment_count>8</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-09 14:52:34 -0700</bug_when>
    <thetext>Sounds good to me; I has assumed things had to implement ::toString()!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145975</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-09-09 15:13:01 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; If the spec does not mention this and we are the only ones who support it, we
&gt; &gt; should just remove it.
&gt; Sounds reasonable to me. Presumably we should remove the C++ side too, as it&apos;s
&gt; only useful for logging?

Yeah, no reason to keep it around.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146019</commentid>
    <comment_count>10</comment_count>
      <attachid>39312</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-09 17:01:45 -0700</bug_when>
    <thetext>Created attachment 39312
Patch 4 for bug 29080

Removes Geoposition.toString and Coordinates.toString methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146169</commentid>
    <comment_count>11</comment_count>
      <attachid>39312</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-09-10 05:12:00 -0700</bug_when>
    <thetext>Comment on attachment 39312
Patch 4 for bug 29080

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146173</commentid>
    <comment_count>12</comment_count>
      <attachid>39312</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-10 05:28:54 -0700</bug_when>
    <thetext>Comment on attachment 39312
Patch 4 for bug 29080

Rejecting patch 39312 from commit-queue.

benm@google.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/modules/committers.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146174</commentid>
    <comment_count>13</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-09-10 05:33:45 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 39312 [details])
&gt; Rejecting patch 39312 from commit-queue.
&gt; 
&gt; benm@google.com does not have committer permissions according to
&gt; http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/modules/committers.py.

Will land manually and ask Eric why the commit queue thinks I&apos;m not a committer (I&apos;m on line 50 of committers.py)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146178</commentid>
    <comment_count>14</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2009-09-10 06:27:34 -0700</bug_when>
    <thetext>landed as r48252.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146295</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-10 12:39:15 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 39312 [details])
&gt; Rejecting patch 39312 from commit-queue.
&gt; 
&gt; benm@google.com does not have committer permissions according to
&gt; http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/modules/committers.py.

Probably we hit bug 29113.  It&apos;s possible the commit-queue was still running from an old copy of committers.py.  I&apos;ll check.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39264</attachid>
            <date>2009-09-09 05:11:16 -0700</date>
            <delta_ts>2009-09-09 12:13:31 -0700</delta_ts>
            <desc>Patch 1 for bug 29080</desc>
            <filename>fixCoordinatesToString.txt</filename>
            <type>text/plain</type>
            <size>7378</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODIwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDktMDkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEdlb2xvY2F0aW9uIENvb3JkaW5hdGVzOjp0b1N0cmluZygpIHByaW50cyBib2d1cyB2YWx1ZXMg
Zm9yIHVuc3BlY2lmaWVkIHByb3BlcnRpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA4MAorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xv
Y2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1sCisKKyAgICAgICAgKiBwYWdlL0Nvb3JkaW5hdGVz
LmNwcDogTW9kaWZpZWQuCisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlczo6dG9TdHJpbmcp
OiBNb2RpZmllZC4gUHJpbnRzIHRoZSBQb3NpdGlvbiBvYmplY3QgaW4gYSBzdHlsZSBzaW1pbGFy
IHRvIHRoZSBDb29yZGluYXRlcyBvYmplY3QuCisgICAgICAgICogcGFnZS9HZW9wb3NpdGlvbi5j
cHA6IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvcG9zaXRpb246OnRvU3RyaW5nKTog
TW9kaWZpZWQuIFByaW50cyBvbmx5IHNwZWNpZmllZCBwcm9wZXJ0aXMgb2YgdGhlIENvb3JkaW5h
dGVzIG9iamVjdCwgdXNpbmcgSlNPTi1zdHlsZSBzeW50YXguCisKIDIwMDktMDktMDkgIFJvaGlu
aSBBbmFudGggPHJvaGluaS5hbmFudGhAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuY3BwCShyZXZpc2lvbiA0ODE2NykK
KysrIFdlYkNvcmUvcGFnZS9Db29yZGluYXRlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkg
KzMwLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIENvb3JkaW5hdGVzOjp0b1N0
cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJjb29yZGluYXRlKCUu
NmxnLCAlLjZsZywgJS42bGcsICUuNmxnLCAlLjZsZywgJS42bGcsICUuNmxnKSIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fbGF0aXR1ZGUsIG1fbG9uZ2l0dWRlLCBtX2FsdGl0dWRlLCBt
X2FjY3VyYWN5LAotICAgICAgICAgICAgICAgICAgICAgICAgICBtX2FsdGl0dWRlQWNjdXJhY3ks
IG1faGVhZGluZywgbV9zcGVlZCk7CisgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJjb29yZGlu
YXRlcyhsYXRpdHVkZTolLjZsZywgbG9uZ2l0dWRlOiUuNmxnIiwgbV9sYXRpdHVkZSwgbV9sb25n
aXR1ZGUpCisgICAgICAgICsgKG1fY2FuUHJvdmlkZUFsdGl0dWRlID8gU3RyaW5nOjpmb3JtYXQo
IiwgYWx0aXR1ZGU6JS42bGciLCBtX2FsdGl0dWRlKSA6ICIiKQorICAgICAgICArIFN0cmluZzo6
Zm9ybWF0KCIsIGFjY3VyYWN5OiUuNmxnIiwgbV9hY2N1cmFjeSkKKyAgICAgICAgKyAobV9jYW5Q
cm92aWRlQWx0aXR1ZGVBY2N1cmFjeSA/IFN0cmluZzo6Zm9ybWF0KCIsIGFsdGl0dWRlQWNjdXJh
Y3k6JS42bGciLCBtX2FsdGl0dWRlQWNjdXJhY3kpIDogIiIpCisgICAgICAgICsgKG1fY2FuUHJv
dmlkZUhlYWRpbmcgPyBTdHJpbmc6OmZvcm1hdCgiLCBoZWFkaW5nOiUuNmxnIiwgbV9oZWFkaW5n
KSA6ICIiKQorICAgICAgICArIChtX2NhblByb3ZpZGVTcGVlZCA/IFN0cmluZzo6Zm9ybWF0KCIs
IHNwZWVkOiUuNmxnIiwgbV9zcGVlZCkgOiAiIikKKyAgICAgICAgKyAiKSI7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGFnZS9HZW9wb3NpdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0dlb3Bvc2l0aW9uLmNwcAkocmV2aXNpb24gNDgxNjcp
CisrKyBXZWJDb3JlL3BhZ2UvR2VvcG9zaXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3
ICszMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdlb3Bvc2l0aW9uOjp0b1N0
cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICJwb3NpdGlvbigiICsgbV9jb29yZGluYXRlcy0+
dG9TdHJpbmcoKSArIFN0cmluZzo6Zm9ybWF0KCIsICUubGxkKSIsIG1fdGltZXN0YW1wKTsKKyAg
ICByZXR1cm4gInBvc2l0aW9uKGNvb3JkaW5hdGVzOiIgKyBtX2Nvb3JkaW5hdGVzLT50b1N0cmlu
ZygpCisgICAgICAgICsgU3RyaW5nOjpmb3JtYXQoIiwgdGltZXN0YW1wOiUubGxkKSIsIG1fdGlt
ZXN0YW1wKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
NDgyMDQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNSBAQAorMjAwOS0wOS0wOSAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VvbG9j
YXRpb24gQ29vcmRpbmF0ZXM6OnRvU3RyaW5nKCkgcHJpbnRzIGJvZ3VzIHZhbHVlcyBmb3IgdW5z
cGVjaWZpZWQgcHJvcGVydGllcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI5MDgwCisKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNv
dXJjZXMvcG9zaXRpb24tc3RyaW5nLmpzOiBBZGRlZC4gVGVzdHMgZm9ybWF0dGluZyBvZiBwb3Np
dGlvbi50b1N0cmluZygpLgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9u
LXN0cmluZy5odG1sOiBBZGRlZC4gV3JhcHBlciBmb3IgYWJvdmUgdGVzdC4KKyAgICAgICAgKiBm
YXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4g
RXhwZWN0ZWQgcmVzdWx0IGZvciBhYm92ZSB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9T
a2lwcGVkOiBNb2RpZmllZC4gU2tpcHMgYWJvdmUgdGVzdC4KKwogMjAwOS0wOS0wOCAgT2xpdmVy
IEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBT
dGFjaG93aWFrLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRp
b24tc3RyaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgZm9ybWF0dGluZyBv
ZiBwb3NpdGlvbi50b1N0cmluZygpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGUgaXMgbW9ja0xhdGl0dWRlCitQQVNTIHBvc2l0
aW9uLmNvb3Jkcy5sb25naXR1ZGUgaXMgbW9ja0xvbmdpdHVkZQorUEFTUyBwb3NpdGlvbi5jb29y
ZHMuYWNjdXJhY3kgaXMgbW9ja0FjY3VyYWN5CitQQVNTIHBvc2l0aW9uLnRvU3RyaW5nKCkgY29u
dGFpbnMgInBvc2l0aW9uKGNvb3JkaW5hdGVzOiIuCitQQVNTIHBvc2l0aW9uLnRvU3RyaW5nKCkg
Y29udGFpbnMgIiksIHRpbWVzdGFtcDoiLgorUEFTUyBwb3NpdGlvbi5jb29yZHMudG9TdHJpbmco
KSBpcyAiY29vcmRpbmF0ZXMobGF0aXR1ZGU6IiArIG1vY2tMYXRpdHVkZSArICIsIGxvbmdpdHVk
ZToiICsgbW9ja0xvbmdpdHVkZSArICIsIGFjY3VyYWN5OiIgKyBtb2NrQWNjdXJhY3kgKyAiKSIK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi9wb3NpdGlvbi1zdHJpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Bvc2l0aW9uLXN0cmluZy5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNv
dXJjZXMvcG9zaXRpb24tc3RyaW5nLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9wb3NpdGlvbi1zdHJpbmcuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvcG9zaXRpb24t
c3RyaW5nLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACitkZXNjcmlwdGlvbigiVGVz
dHMgZm9ybWF0dGluZyBvZiBwb3NpdGlvbi50b1N0cmluZygpLiIpOworCitmdW5jdGlvbiBzaG91
bGRDb250YWluU3RyaW5nKGV4cHJlc3Npb24sIHN0cmluZykKK3sKKyAgdmFyIGV4cHJlc3Npb25S
ZXN1bHQgPSBldmFsKGV4cHJlc3Npb24pOworCisgIGlmIChleHByZXNzaW9uUmVzdWx0LmluZGV4
T2Yoc3RyaW5nKSAhPSAtMSkKKyAgICB0ZXN0UGFzc2VkKGV4cHJlc3Npb24gKyAnIGNvbnRhaW5z
ICInICsgc3RyaW5nICsgJyIuJyk7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKGV4cHJlc3Npb24g
KyAnIHNob3VsZCBjb250YWluICInICsgc3RyaW5nICsgJyIuIFdhcyAiJyArIHN0cmluZ2lmeShl
eHByZXNzaW9uUmVzdWx0KSArICciLicpOworfQorCit2YXIgbW9ja0xhdGl0dWRlID0gNTEuNDc4
OwordmFyIG1vY2tMb25naXR1ZGUgPSAtMC4xNjY7Cit2YXIgbW9ja0FjY3VyYWN5ID0gMTAwLjA7
CisKK3dpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5zZXRHZW9sb2NhdGlvblBlcm1pc3Npb24o
dHJ1ZSk7Cit3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja0dlb2xvY2F0aW9uUG9z
aXRpb24obW9ja0xhdGl0dWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vY2tMb25naXR1ZGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ja0FjY3VyYWN5KTsKKwordmFyIHBv
c2l0aW9uOworbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlv
bihwKSB7CisgICAgcG9zaXRpb24gPSBwCisgICAgc2hvdWxkQmUoJ3Bvc2l0aW9uLmNvb3Jkcy5s
YXRpdHVkZScsICdtb2NrTGF0aXR1ZGUnKTsKKyAgICBzaG91bGRCZSgncG9zaXRpb24uY29vcmRz
LmxvbmdpdHVkZScsICdtb2NrTG9uZ2l0dWRlJyk7CisgICAgc2hvdWxkQmUoJ3Bvc2l0aW9uLmNv
b3Jkcy5hY2N1cmFjeScsICdtb2NrQWNjdXJhY3knKTsKKyAgICBzaG91bGRDb250YWluU3RyaW5n
KCdwb3NpdGlvbi50b1N0cmluZygpJywgJ3Bvc2l0aW9uKGNvb3JkaW5hdGVzOicpOworICAgIHNo
b3VsZENvbnRhaW5TdHJpbmcoJ3Bvc2l0aW9uLnRvU3RyaW5nKCknLCAnKSwgdGltZXN0YW1wOicp
OworICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKScsICciY29vcmRpbmF0
ZXMobGF0aXR1ZGU6IiArIG1vY2tMYXRpdHVkZSArICIsIGxvbmdpdHVkZToiICsgbW9ja0xvbmdp
dHVkZSArICIsIGFjY3VyYWN5OiIgKyBtb2NrQWNjdXJhY3kgKyAiKSInKTsKKyAgICBkZWJ1Zygn
PGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7CisgICAgd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30sIGZ1bmN0aW9uKGUpIHsK
KyAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwor
ICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9KTsKK3dpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZAkocmV2aXNpb24gNDgxNjcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTU3MSw2ICsxNTcxLDcgQEAgZmFzdC9kb20v
Y3NzVGFyZ2V0LWNyYXNoLmh0bWwKIGZhc3QvZG9tL2ZyYW1lLWxvYWRpbmctdmlhLWRvY3VtZW50
LXdyaXRlLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLmh0bWwKIGZhc3QvZG9tL0dl
b2xvY2F0aW9uL3Blcm1pc3Npb24tZGVuaWVkLmh0bWwKK2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Bv
c2l0aW9uLXN0cmluZy5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9zdWNjZXNzLmh0bWwKIGZh
c3QvZG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5odG1sCiBmYXN0L2RvbS9udWxsLWRvY3VtZW50
LWxvY2F0aW9uLXB1dC1jcmFzaC5odG1sCg==
</data>
<flag name="review"
          id="20327"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39271</attachid>
            <date>2009-09-09 09:09:11 -0700</date>
            <delta_ts>2009-09-09 12:13:31 -0700</delta_ts>
            <desc>Patch 2 for bug 29080</desc>
            <filename>fixCoordinatesToString2.txt</filename>
            <type>text/plain</type>
            <size>7754</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODIwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDktMDkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEdlb2xvY2F0aW9uIENvb3JkaW5hdGVzOjp0b1N0cmluZygpIHByaW50cyBib2d1cyB2YWx1ZXMg
Zm9yIHVuc3BlY2lmaWVkIHByb3BlcnRpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA4MAorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xv
Y2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1sCisKKyAgICAgICAgKiBwYWdlL0Nvb3JkaW5hdGVz
LmNwcDogTW9kaWZpZWQuCisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlczo6dG9TdHJpbmcp
OiBNb2RpZmllZC4gUHJpbnRzIHRoZSBQb3NpdGlvbiBvYmplY3QgaW4gYSBzdHlsZSBzaW1pbGFy
IHRvIHRoZSBDb29yZGluYXRlcyBvYmplY3QuCisgICAgICAgICogcGFnZS9HZW9wb3NpdGlvbi5j
cHA6IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvcG9zaXRpb246OnRvU3RyaW5nKTog
TW9kaWZpZWQuIFByaW50cyBvbmx5IHNwZWNpZmllZCBwcm9wZXJ0aXMgb2YgdGhlIENvb3JkaW5h
dGVzIG9iamVjdCwgdXNpbmcgSlNPTi1zdHlsZSBzeW50YXguCisKIDIwMDktMDktMDkgIFJvaGlu
aSBBbmFudGggPHJvaGluaS5hbmFudGhAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuY3BwCShyZXZpc2lvbiA0ODE2NykK
KysrIFdlYkNvcmUvcGFnZS9Db29yZGluYXRlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEz
ICsyNiwyNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvb3JkaW5hdGVzLmgi
CiAKKyNpbmNsdWRlICJTdHJpbmdCdWlsZGVyLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
U3RyaW5nIENvb3JkaW5hdGVzOjp0b1N0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KCJjb29yZGluYXRlKCUuNmxnLCAlLjZsZywgJS42bGcsICUuNmxnLCAlLjZsZywg
JS42bGcsICUuNmxnKSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGF0aXR1ZGUsIG1f
bG9uZ2l0dWRlLCBtX2FsdGl0dWRlLCBtX2FjY3VyYWN5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2FsdGl0dWRlQWNjdXJhY3ksIG1faGVhZGluZywgbV9zcGVlZCk7CisgICAgU3RyaW5n
QnVpbGRlciB0ZXh0OworICAgIHRleHQuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJjb29yZGluYXRl
cyhsYXRpdHVkZTolLjZsZywgbG9uZ2l0dWRlOiUuNmxnIiwgbV9sYXRpdHVkZSwgbV9sb25naXR1
ZGUpKTsKKyAgICBpZiAobV9jYW5Qcm92aWRlQWx0aXR1ZGUpCisgICAgICAgIHRleHQuYXBwZW5k
KFN0cmluZzo6Zm9ybWF0KCIsIGFsdGl0dWRlOiUuNmxnIiwgbV9hbHRpdHVkZSkpOworICAgIHRl
eHQuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCIsIGFjY3VyYWN5OiUuNmxnIiwgbV9hY2N1cmFjeSkp
OworICAgIGlmIChtX2NhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5KQorICAgICAgICB0ZXh0LmFw
cGVuZChTdHJpbmc6OmZvcm1hdCgiLCBhbHRpdHVkZUFjY3VyYWN5OiUuNmxnIiwgbV9hbHRpdHVk
ZUFjY3VyYWN5KSk7CisgICAgaWYgKG1fY2FuUHJvdmlkZUhlYWRpbmcpCisgICAgICAgIHRleHQu
YXBwZW5kKFN0cmluZzo6Zm9ybWF0KCIsIGhlYWRpbmc6JS42bGciLCBtX2hlYWRpbmcpKTsKKyAg
ICBpZiAobV9jYW5Qcm92aWRlU3BlZWQpCisgICAgICAgIHRleHQuYXBwZW5kKFN0cmluZzo6Zm9y
bWF0KCIsIHNwZWVkOiUuNmxnIiwgbV9zcGVlZCkpOworICAgIHRleHQuYXBwZW5kKCIpIik7Cisg
ICAgcmV0dXJuIHRleHQudG9TdHJpbmcoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9wYWdlL0dlb3Bvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BhZ2UvR2VvcG9zaXRpb24uY3BwCShyZXZpc2lvbiA0ODE2NykKKysrIFdlYkNvcmUvcGFnZS9H
ZW9wb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiwxNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCiAKKyNpbmNsdWRlICJTdHJp
bmdCdWlsZGVyLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIEdlb3Bvc2l0aW9u
Ojp0b1N0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICJwb3NpdGlvbigiICsgbV9jb29yZGlu
YXRlcy0+dG9TdHJpbmcoKSArIFN0cmluZzo6Zm9ybWF0KCIsICUubGxkKSIsIG1fdGltZXN0YW1w
KTsKKyAgICBTdHJpbmdCdWlsZGVyIHRleHQ7CisgICAgdGV4dC5hcHBlbmQoInBvc2l0aW9uKGNv
b3JkaW5hdGVzOiIpOworICAgIHRleHQuYXBwZW5kKG1fY29vcmRpbmF0ZXMtPnRvU3RyaW5nKCkp
OworICAgIHRleHQuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCIsIHRpbWVzdGFtcDolLmxsZCkiLCBt
X3RpbWVzdGFtcCkpOworICAgIHJldHVybiB0ZXh0LnRvU3RyaW5nKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MjA0KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDktMDkgIFN0
ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlb2xvY2F0aW9uIENvb3JkaW5hdGVzOjp0b1N0
cmluZygpIHByaW50cyBib2d1cyB2YWx1ZXMgZm9yIHVuc3BlY2lmaWVkIHByb3BlcnRpZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA4MAorCisg
ICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL3Bvc2l0aW9uLXN0cmluZy5q
czogQWRkZWQuIFRlc3RzIGZvcm1hdHRpbmcgb2YgcG9zaXRpb24udG9TdHJpbmcoKS4KKyAgICAg
ICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbDogQWRkZWQuIFdy
YXBwZXIgZm9yIGFib3ZlIHRlc3QuCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vcG9z
aXRpb24tc3RyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuIEV4cGVjdGVkIHJlc3VsdCBmb3IgYWJv
dmUgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogTW9kaWZpZWQuIFNraXBz
IGFib3ZlIHRlc3QuCisKIDIwMDktMDktMDggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24t
c3RyaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTQgQEAKK1Rlc3RzIGZvcm1hdHRpbmcgb2YgcG9zaXRpb24udG9TdHJpbmcoKS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcG9zaXRpb24uY29vcmRzLmxh
dGl0dWRlIGlzIG1vY2tMYXRpdHVkZQorUEFTUyBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlIGlz
IG1vY2tMb25naXR1ZGUKK1BBU1MgcG9zaXRpb24uY29vcmRzLmFjY3VyYWN5IGlzIG1vY2tBY2N1
cmFjeQorUEFTUyBwb3NpdGlvbi50b1N0cmluZygpIGNvbnRhaW5zICJwb3NpdGlvbihjb29yZGlu
YXRlczoiLgorUEFTUyBwb3NpdGlvbi50b1N0cmluZygpIGNvbnRhaW5zICIpLCB0aW1lc3RhbXA6
Ii4KK1BBU1MgcG9zaXRpb24uY29vcmRzLnRvU3RyaW5nKCkgaXMgImNvb3JkaW5hdGVzKGxhdGl0
dWRlOiIgKyBtb2NrTGF0aXR1ZGUgKyAiLCBsb25naXR1ZGU6IiArIG1vY2tMb25naXR1ZGUgKyAi
LCBhY2N1cmFjeToiICsgbW9ja0FjY3VyYWN5ICsgIikiCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24t
c3RyaW5nLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2Nh
dGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b3NpdGlvbi1zdHJpbmcuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL3Bvc2l0aW9uLXN0cmluZy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJj
ZXMvcG9zaXRpb24tc3RyaW5nLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL3Bvc2l0aW9uLXN0cmluZy5qcwkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzNyBAQAorZGVzY3JpcHRpb24oIlRlc3RzIGZvcm1hdHRpbmcgb2YgcG9zaXRp
b24udG9TdHJpbmcoKS4iKTsKKworZnVuY3Rpb24gc2hvdWxkQ29udGFpblN0cmluZyhleHByZXNz
aW9uLCBzdHJpbmcpCit7CisgIHZhciBleHByZXNzaW9uUmVzdWx0ID0gZXZhbChleHByZXNzaW9u
KTsKKworICBpZiAoZXhwcmVzc2lvblJlc3VsdC5pbmRleE9mKHN0cmluZykgIT0gLTEpCisgICAg
dGVzdFBhc3NlZChleHByZXNzaW9uICsgJyBjb250YWlucyAiJyArIHN0cmluZyArICciLicpOwor
ICBlbHNlCisgICAgdGVzdEZhaWxlZChleHByZXNzaW9uICsgJyBzaG91bGQgY29udGFpbiAiJyAr
IHN0cmluZyArICciLiBXYXMgIicgKyBzdHJpbmdpZnkoZXhwcmVzc2lvblJlc3VsdCkgKyAnIi4n
KTsKK30KKwordmFyIG1vY2tMYXRpdHVkZSA9IDUxLjQ3ODsKK3ZhciBtb2NrTG9uZ2l0dWRlID0g
LTAuMTY2OwordmFyIG1vY2tBY2N1cmFjeSA9IDEwMC4wOworCit3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKHRydWUpOword2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyLnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKG1vY2tMYXRpdHVkZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Nr
TG9uZ2l0dWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1vY2tBY2N1cmFjeSk7CisKK3ZhciBwb3NpdGlvbjsKK25hdmlnYXRvci5nZW9s
b2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24ocCkgeworICAgIHBvc2l0aW9uID0g
cAorICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGUnLCAnbW9ja0xhdGl0dWRl
Jyk7CisgICAgc2hvdWxkQmUoJ3Bvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUnLCAnbW9ja0xvbmdp
dHVkZScpOworICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMuYWNjdXJhY3knLCAnbW9ja0Fj
Y3VyYWN5Jyk7CisgICAgc2hvdWxkQ29udGFpblN0cmluZygncG9zaXRpb24udG9TdHJpbmcoKScs
ICdwb3NpdGlvbihjb29yZGluYXRlczonKTsKKyAgICBzaG91bGRDb250YWluU3RyaW5nKCdwb3Np
dGlvbi50b1N0cmluZygpJywgJyksIHRpbWVzdGFtcDonKTsKKyAgICBzaG91bGRCZSgncG9zaXRp
b24uY29vcmRzLnRvU3RyaW5nKCknLCAnImNvb3JkaW5hdGVzKGxhdGl0dWRlOiIgKyBtb2NrTGF0
aXR1ZGUgKyAiLCBsb25naXR1ZGU6IiArIG1vY2tMb25naXR1ZGUgKyAiLCBhY2N1cmFjeToiICsg
bW9ja0FjY3VyYWN5ICsgIikiJyk7CisgICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNz
Ij5URVNUIENPTVBMRVRFPC9zcGFuPicpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9LCBmdW5jdGlvbihlKSB7CisgICAgdGVzdEZhaWxlZCgnRXJyb3Ig
Y2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSk7Cit3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHJldmlzaW9u
IDQ4MTY3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29w
eSkKQEAgLTE1NzEsNiArMTU3MSw3IEBAIGZhc3QvZG9tL2Nzc1RhcmdldC1jcmFzaC5odG1sCiBm
YXN0L2RvbS9mcmFtZS1sb2FkaW5nLXZpYS1kb2N1bWVudC13cml0ZS5odG1sCiBmYXN0L2RvbS9H
ZW9sb2NhdGlvbi9lcnJvci5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wZXJtaXNzaW9uLWRl
bmllZC5odG1sCitmYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbAogZmFz
dC9kb20vR2VvbG9jYXRpb24vc3VjY2Vzcy5odG1sCiBmYXN0L2RvbS9nZXRCb3VuZGluZ0NsaWVu
dFJlY3QuaHRtbAogZmFzdC9kb20vbnVsbC1kb2N1bWVudC1sb2NhdGlvbi1wdXQtY3Jhc2guaHRt
bAo=
</data>
<flag name="review"
          id="20339"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39292</attachid>
            <date>2009-09-09 12:13:31 -0700</date>
            <delta_ts>2009-09-09 17:01:45 -0700</delta_ts>
            <desc>Patch 3 for bug 29080</desc>
            <filename>fixCoordinatesToString3.txt</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39312</attachid>
            <date>2009-09-09 17:01:45 -0700</date>
            <delta_ts>2009-09-10 05:28:54 -0700</delta_ts>
            <desc>Patch 4 for bug 29080</desc>
            <filename>fixCoordinatesToString4.txt</filename>
            <type>text/plain</type>
            <size>24963</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODIzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMDktMDkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEdlb2xvY2F0aW9uIENvb3JkaW5hdGVzOjp0b1N0cmluZygpIHByaW50cyBib2d1cyB2YWx1ZXMg
Zm9yIHVuc3BlY2lmaWVkIHByb3BlcnRpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA4MAorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xv
Y2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1sCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTog
TW9kaWZpZWQuIFJlbW92ZXMgR2VvcG9zaXRpb24uY3BwIGFuZCBDb29yZGluYXRlcy5jcHAuCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBNb2RpZmllZC4gUmVtb3ZlcyBHZW9wb3NpdGlvbi5jcHAg
YW5kIENvb3JkaW5hdGVzLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLnBybzogTW9kaWZpZWQuIFJl
bW92ZXMgR2VvcG9zaXRpb24uY3BwIGFuZCBDb29yZGluYXRlcy5jcHAuCisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IE1vZGlmaWVkLiBSZW1vdmVzIEdlb3Bvc2l0aW9u
LmNwcCBhbmQgQ29vcmRpbmF0ZXMuY3BwLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajogTW9kaWZpZWQuIFJlbW92ZXMgR2VvcG9zaXRpb24uY3BwIGFuZCBDb29y
ZGluYXRlcy5jcHAuCisgICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOiBNb2RpZmllZC4gUmVt
b3ZlcyBHZW9wb3NpdGlvbi5jcHAgYW5kIENvb3JkaW5hdGVzLmNwcC4KKyAgICAgICAgKiBwYWdl
L0Nvb3JkaW5hdGVzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL0Nvb3JkaW5hdGVzLmg6
IE1vZGlmaWVkLiBSZW1vdmVzIHRvU3RyaW5nIG1ldGhvZC4KKyAgICAgICAgKiBwYWdlL0Nvb3Jk
aW5hdGVzLmlkbDogTW9kaWZpZWQuIFJlbW92ZXMgdG9TdHJpbmcgbWV0aG9kLgorICAgICAgICAq
IHBhZ2UvR2VvcG9zaXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBhZ2UvR2VvcG9zaXRp
b24uaDogTW9kaWZpZWQuIFJlbW92ZXMgdG9TdHJpbmcgbWV0aG9kLgorICAgICAgICAqIHBhZ2Uv
R2VvcG9zaXRpb24uaWRsOiBNb2RpZmllZC4gUmVtb3ZlcyB0b1N0cmluZyBtZXRob2QuCisKIDIw
MDktMDctMzAgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDQ4MjE4KQorKysgV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTI4OCw3ICsxMjg4LDYgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cCBcCiAJV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oIFwKIAlXZWJDb3JlL3Bh
Z2UvQ29vcmRpbmF0ZXMuaCBcCi0JV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVzLmNwcCBcCiAJV2Vi
Q29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAgXAogCVdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24u
aCBcCiAJV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBcCkBAIC0xMzE2LDcgKzEzMTUsNiBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBcCiAJV2ViQ29y
ZS9wYWdlL0dlb2xvY2F0aW9uLmNwcCBcCiAJV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmggXAot
CVdlYkNvcmUvcGFnZS9HZW9wb3NpdGlvbi5jcHAgXAogCVdlYkNvcmUvcGFnZS9HZW9wb3NpdGlv
bi5oIFwKIAlXZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAgXAogCVdlYkNvcmUvcGFnZS9IaXN0b3J5
LmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHJldmlzaW9uIDQ4MjE4KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdv
cmtpbmcgY29weSkKQEAgLTE2NDAsNyArMTY0MCw2IEBACiAgICAgICAgICAgICAncGFnZS9Db250
ZXh0TWVudUNsaWVudC5oJywKICAgICAgICAgICAgICdwYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgnLAotICAg
ICAgICAgICAgJ3BhZ2UvQ29vcmRpbmF0ZXMuY3BwJywKICAgICAgICAgICAgICdwYWdlL0RPTVNl
bGVjdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRE9NU2VsZWN0aW9uLmgnLAogICAgICAg
ICAgICAgJ3BhZ2UvRE9NVGltZXIuY3BwJywKQEAgLTE2NjYsNyArMTY2NSw2IEBACiAgICAgICAg
ICAgICAncGFnZS9GcmFtZVZpZXcuaCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbi5j
cHAnLAogICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb24uaCcsCi0gICAgICAgICAgICAncGFn
ZS9HZW9wb3NpdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvR2VvcG9zaXRpb24uaCcsCiAg
ICAgICAgICAgICAncGFnZS9IaXN0b3J5LmNwcCcsCiAgICAgICAgICAgICAncGFnZS9IaXN0b3J5
LmgnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUucHJvCShyZXZpc2lvbiA0ODIxOCkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtp
bmcgY29weSkKQEAgLTExMTMsNyArMTExMyw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvQ2hy
b21lLmNwcCBcCiAgICAgcGFnZS9Db25zb2xlLmNwcCBcCiAgICAgcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwIFwKLSAgICBwYWdlL0Nvb3JkaW5hdGVzLmNwcCBcCiAgICAgcGFnZS9ET01T
ZWxlY3Rpb24uY3BwIFwKICAgICBwYWdlL0RPTVRpbWVyLmNwcCBcCiAgICAgcGFnZS9ET01XaW5k
b3cuY3BwIFwKQEAgLTExMjcsNyArMTEyNiw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvRnJh
bWVUcmVlLmNwcCBcCiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwIFwKICAgICBwYWdlL0dlb2xvY2F0
aW9uLmNwcCBcCi0gICAgcGFnZS9HZW9wb3NpdGlvbi5jcHAgXAogICAgIHBhZ2UvSGlzdG9yeS5j
cHAgXAogICAgIHBhZ2UvTG9jYXRpb24uY3BwIFwKICAgICBwYWdlL01vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMuY3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCShyZXZpc2lvbiA0ODIxOCkKKysr
IFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCSh3b3JraW5nIGNvcHkpCkBAIC03NTUsNyArNzU1
LDYgQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZpbGVzIG5lZQogICAgICAgICBw
YWdlL0Nocm9tZS5jcHAKICAgICAgICAgcGFnZS9Db25zb2xlLmNwcAogICAgICAgICBwYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKLSAgICAgICAgcGFnZS9Db29yZGluYXRlcy5jcHAKICAg
ICAgICAgcGFnZS9ET01TZWxlY3Rpb24uY3BwCiAgICAgICAgIHBhZ2UvRE9NVGltZXIuY3BwCiAg
ICAgICAgIHBhZ2UvRE9NV2luZG93LmNwcApAQCAtNzY3LDcgKzc2Niw2IEBAIFRoaXMgZmlsZSBj
b250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBuZWUKICAgICAgICAgcGFnZS9GcmFtZVRyZWUuY3Bw
CiAgICAgICAgIHBhZ2UvRnJhbWVWaWV3LmNwcAogICAgICAgICBwYWdlL0dlb2xvY2F0aW9uLmNw
cAotICAgICAgICBwYWdlL0dlb3Bvc2l0aW9uLmNwcAogICAgICAgICBwYWdlL0hpc3RvcnkuY3Bw
CiAgICAgICAgIHBhZ2UvTG9jYXRpb24uY3BwCiAgICAgICAgIHBhZ2UvTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cy5jcHAKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agkocmV2aXNpb24gNDgyMTgpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgwOSwxMCArMTY4MDksNiBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXENvb3JkaW5hdGVz
LmNwcCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBhZ2VcQ29vcmRpbmF0ZXMuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0xNjkzMywx
MCArMTY5MjksNiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxwYWdlXEdlb3Bvc2l0aW9uLmNwcCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0J
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcR2VvcG9zaXRpb24uaCINCiAJCQkJ
Pg0KIAkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gNDgyMTgpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDY3OSw3ICs0Njc5LDYgQEAKIAkJRjkx
NkM0OEQwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhC
MERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgKi87
IH07CiAJCUY5MTZDNDhFMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjkxNkM0OEMwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmggKi87IH07CiAJCUY5RjBFRDdBMERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCAqLzsgfTsKLQkJRkU2RkQ0ODcwRjY3NkU1NzAwMDkyODczIC8qIENvb3JkaW5hdGVzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDg0
MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5jcHAgKi87IH07CiAJCUZFNkZENDg4MEY2
NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkU2RkQ0ODUwRjY3NkU1NzAwMDkyODczIC8qIENvb3JkaW5h
dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RkU2RkQ0OEQwRjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRpbmF0ZXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU2RkQ0OEIwRjY3NkU5MzAwMDky
ODczIC8qIEpTQ29vcmRpbmF0ZXMuY3BwICovOyB9OwogCQlGRTZGRDQ4RTBGNjc2RTkzMDAwOTI4
NzMgLyogSlNDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkU2RkQ0OEMwRjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRpbmF0ZXMuaCAq
LzsgfTsKQEAgLTQ2OTEsNyArNDY5MCw2IEBACiAJCUZFODBEN0FCMEU5QzFFRDIwMDBENkY3NSAv
KiBKU0dlb2xvY2F0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFODBEN0E2MEU5QzFFRDIwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9u
Q3VzdG9tLmNwcCAqLzsgfTsKIAkJRkU4MEQ3QzUwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
ODBEN0I3MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgKi87IH07CiAJCUZFODBE
N0M2MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MEQ3QjgwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdl
b2xvY2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJRkU4MEQ3QzgwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0JBMEU5QzFGMjUw
MDBENkY3NSAvKiBHZW9wb3NpdGlvbi5jcHAgKi87IH07CiAJCUZFODBEN0M5MEU5QzFGMjUwMDBE
NkY3NSAvKiBHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkU4MEQ3QkIwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU4MEQ3Q0Iw
RTlDMUYyNTAwMEQ2Rjc1IC8qIFBvc2l0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0JEMEU5QzFGMjUwMDBENkY3NSAvKiBQ
b3NpdGlvbkNhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRkU4MEQ3Q0QwRTlDMUYyNTAwMEQ2Rjc1IC8qIFBvc2l0aW9uRXJyb3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0JGMEU5
QzFGMjUwMDBENkY3NSAvKiBQb3NpdGlvbkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk4MDcsNyArOTgwNSw2IEBACiAJCUY5RjBFRDc3
MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUYwRUQ3ODBEQjUwQ0EyMDBEMTZEQjkg
LyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkU0OUVGOTcwREM1MTQ2MjAwNDI2NkUxIC8qIERhc2hib2FyZFN1cHBvcnRDU1NQ
cm9wZXJ0eU5hbWVzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhc2hib2FyZFN1cHBvcnRD
U1NQcm9wZXJ0eU5hbWVzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGRTZGRDQ4
NDBGNjc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ29vcmRpbmF0ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRTZGRDQ4NTBGNjc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29vcmRpbmF0ZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkU2RkQ0ODYwRjY3NkU1NzAwMDkyODczIC8qIENvb3JkaW5hdGVzLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb29yZGluYXRlcy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUZFNkZENDhCMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nvb3JkaW5hdGVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29vcmRpbmF0ZXMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTgyMSw3ICs5ODE4LDYgQEAKIAkJ
RkU4MEQ3QjcwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkU4MEQ3QjgwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFODBEN0I5MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2Nh
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb24uaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlGRTgwRDdCQTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9z
aXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvcG9zaXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTgwRDdCQjBFOUMxRjI1MDAw
RDZGNzUgLyogR2VvcG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R2VvcG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MEQ3QkMwRTlD
MUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBH
ZW9wb3NpdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFODBEN0JEMEU5
QzFGMjUwMDBENkY3NSAvKiBQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBvc2l0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwOTc2LDcgKzEwOTcyLDYgQEAKIAkJCQkwNjVBRDRGMjBCMEMyRURBMDA1QTJCMUQg
LyogQ29udGV4dE1lbnVDbGllbnQuaCAqLywKIAkJCQkwNjVBRDRGMzBCMEMyRURBMDA1QTJCMUQg
LyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCAqLywKIAkJCQkwNjVBRDRGNDBCMEMyRURBMDA1
QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggKi8sCi0JCQkJRkU2RkQ0ODQwRjY3NkU1
NzAwMDkyODczIC8qIENvb3JkaW5hdGVzLmNwcCAqLywKIAkJCQlGRTZGRDQ4NTBGNjc2RTU3MDAw
OTI4NzMgLyogQ29vcmRpbmF0ZXMuaCAqLywKIAkJCQlGRTZGRDQ4NjBGNjc2RTU3MDAwOTI4NzMg
LyogQ29vcmRpbmF0ZXMuaWRsICovLAogCQkJCUJDNUE4NjgxMEMzMzY3NjAwMEVFQTY0OSAvKiBE
T01TZWxlY3Rpb24uY3BwICovLApAQCAtMTEwMTAsNyArMTEwMDUsNiBAQAogCQkJCUZFODBEN0I3
MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJRkU4MEQ3QjgwRTlD
MUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmggKi8sCiAJCQkJRkU4MEQ3QjkwRTlDMUYyNTAw
MEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmlkbCAqLywKLQkJCQlGRTgwRDdCQTBFOUMxRjI1MDAwRDZG
NzUgLyogR2VvcG9zaXRpb24uY3BwICovLAogCQkJCUZFODBEN0JCMEU5QzFGMjUwMDBENkY3NSAv
KiBHZW9wb3NpdGlvbi5oICovLAogCQkJCUZFODBEN0JDMEU5QzFGMjUwMDBENkY3NSAvKiBHZW9w
b3NpdGlvbi5pZGwgKi8sCiAJCQkJQkM5NEQxNTAwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3Rvcnku
Y3BwICovLApAQCAtMTgxNTYsNyArMTgxNTAsNiBAQAogCQkJCTA2MDI3Q0IzMEIxQ0MwM0QwMDg4
NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0I2QTBF
QTBCMEJDQTg0MDBGNTAyN0EgLyogQ29udGV4dE1lbnVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5MzUyMDg3NzA5QkQ0NTM0MDBGMjAzOEQgLyogQ29va2llSmFyLm1tIGluIFNvdXJjZXMgKi8s
Ci0JCQkJRkU2RkQ0ODcwRjY3NkU1NzAwMDkyODczIC8qIENvb3JkaW5hdGVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTM3MjRDQTU4MEU2OEE3RTQwMERCNDM4NCAvKiBDb3JlVGV4dENvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI5NTAwRTgyMDU2QjAwQjI1OTY1IC8qIENv
dW50ZXJEaXJlY3RpdmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzOTJGMTUwMEFEMTg2MjMw
MDY5MUJENCAvKiBDb3VudGVyTm9kZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE4NTkzLDcgKzE4
NTg2LDYgQEAKIAkJCQlGRTgwRDdDNTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvbG9jYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRkVBQjkwMTIwRUE1MUI5QzAwNjM0OEMzIC8qIEdlb2xvY2F0
aW9uU2VydmljZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0U0OTRBQzBGNEY1RTlFMDA4NEUz
MTkgLyogR2VvbG9jYXRpb25TZXJ2aWNlTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJRkU4MEQ3
QzgwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUIyQzNEQTZEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMkFGRkM4MzBEMDBBNUMxMDAzMDA3NEQgLyogR2x5cGhQYWdlVHJlZU5v
ZGVNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNkYwRDAwNkNENjAwRUY2RjI2IC8q
IEdseXBoV2lkdGhNYXAuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ29v
cmRpbmF0ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Db29yZGluYXRlcy5jcHAJ
KHJldmlzaW9uIDQ4MjE4KQorKysgV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDb29yZGluYXRl
cy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDb29yZGluYXRlczo6dG9TdHJp
bmcoKSBjb25zdAotewotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiY29vcmRpbmF0ZSglLjZs
ZywgJS42bGcsICUuNmxnLCAlLjZsZywgJS42bGcsICUuNmxnLCAlLjZsZykiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX2xhdGl0dWRlLCBtX2xvbmdpdHVkZSwgbV9hbHRpdHVkZSwgbV9h
Y2N1cmFjeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbV9hbHRpdHVkZUFjY3VyYWN5LCBt
X2hlYWRpbmcsIG1fc3BlZWQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBX
ZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ29v
cmRpbmF0ZXMuaAkocmV2aXNpb24gNDgyMTgpCisrKyBXZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtNTEsOCArNTEsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5Q
cm92aWRlSGVhZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJvdmlkZUhlYWRpbmc7IH0KICAg
ICBib29sIGNhblByb3ZpZGVTcGVlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJvdmlkZVNwZWVk
OyB9CiAgICAgCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAg
Q29vcmRpbmF0ZXMoZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlk
ZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3Bl
ZWQpCiAgICAgICAgIDogbV9sYXRpdHVkZShsYXRpdHVkZSkKSW5kZXg6IFdlYkNvcmUvcGFnZS9D
b29yZGluYXRlcy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVzLmlk
bAkocmV2aXNpb24gNDgyMTgpCisrKyBXZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw5ICszMyw1IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtDdXN0b21dIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5OwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbV0gZG91YmxlIGhlYWRpbmc7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbQ3VzdG9tXSBkb3VibGUgc3BlZWQ7Ci0KLSNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgW0RvbnRFbnVt
XSBET01TdHJpbmcgdG9TdHJpbmcoKTsKLSNlbmRpZgogICAgIH07CiB9CkluZGV4OiBXZWJDb3Jl
L3BhZ2UvR2VvcG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9wb3Np
dGlvbi5jcHAJKHJldmlzaW9uIDQ4MjE4KQorKysgV2ViQ29yZS9wYWdlL0dlb3Bvc2l0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJH
ZW9wb3NpdGlvbi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBHZW9wb3NpdGlv
bjo6dG9TdHJpbmcoKSBjb25zdAotewotICAgIHJldHVybiAicG9zaXRpb24oIiArIG1fY29vcmRp
bmF0ZXMtPnRvU3RyaW5nKCkgKyBTdHJpbmc6OmZvcm1hdCgiLCAlLmxsZCkiLCBtX3RpbWVzdGFt
cCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGFnZS9HZW9w
b3NpdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9wb3NpdGlvbi5oCShyZXZp
c2lvbiA0ODIxOCkKKysrIFdlYkNvcmUvcGFnZS9HZW9wb3NpdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Miw4ICs0Miw2IEBAIHB1YmxpYzoKICAgICBET01UaW1lU3RhbXAgdGltZXN0YW1wKCkg
Y29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KICAgICBDb29yZGluYXRlcyogY29vcmRzKCkg
Y29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRlcy5nZXQoKTsgfQogICAgIAotICAgIFN0cmluZyB0
b1N0cmluZygpIGNvbnN0OwotCiBwcml2YXRlOgogICAgIEdlb3Bvc2l0aW9uKFBhc3NSZWZQdHI8
Q29vcmRpbmF0ZXM+IGNvb3JkaW5hdGVzLCBET01UaW1lU3RhbXAgdGltZXN0YW1wKQogICAgICAg
ICA6IG1fY29vcmRpbmF0ZXMoY29vcmRpbmF0ZXMpCkluZGV4OiBXZWJDb3JlL3BhZ2UvR2VvcG9z
aXRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9wb3NpdGlvbi5pZGwJKHJl
dmlzaW9uIDQ4MjE4KQorKysgV2ViQ29yZS9wYWdlL0dlb3Bvc2l0aW9uLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMjgsOSArMjgsNSBAQCBtb2R1bGUgY29yZSB7CiAgICAgaW50ZXJmYWNlIEdlb3Bv
c2l0aW9uIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENvb3JkaW5hdGVzIGNvb3JkczsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7Ci0KLSNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAg
ICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKLSNlbmRpZgogICAgIH07CiB9
CkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA0ODIzNikKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA5LTA5LTA5ICBTdGV2ZSBCbG9jayAgPHN0
ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBHZW9sb2NhdGlvbiBDb29yZGluYXRlczo6dG9TdHJpbmcoKSBwcmludHMg
Ym9ndXMgdmFsdWVzIGZvciB1bnNwZWNpZmllZCBwcm9wZXJ0aWVzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwODAKKworICAgICAgICAqIFNjcmlw
dHMvbWFrZS1zY3JpcHQtdGVzdC13cmFwcGVyczogTW9kaWZpZWQuIEFkZHMgYXN5bmNocm9ub3Vz
IEdlb2xvY2F0aW9uIHRlc3RzIHRvIGV4Y2x1c2lvbiBsaXN0LgorCiAyMDA5LTA5LTA5ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGNhbUBtY2MuaWQuYXU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL21ha2Utc2NyaXB0LXRlc3Qtd3Jh
cHBlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy9tYWtlLXNjcmlwdC10ZXN0
LXdyYXBwZXJzCShyZXZpc2lvbiA0ODIxOCkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMvbWFrZS1z
Y3JpcHQtdGVzdC13cmFwcGVycwkod29ya2luZyBjb3B5KQpAQCAtMTEzLDEyICsxMTMsMTYgQEAg
Zm9yIG15ICR0ZmlsZSAoQHRlbXBsYXRlcykgewogICAgICAgICBuZXh0IGlmICRmaWxlID1+IG06
cmVzb3VyY2VzL2NvZGVnZW4tdGVtcG9yYXJpZXMtbXVsdGlwbGUtZ2xvYmFsLWJsb2Nrcy0yXC5q
cyQ6OwogICAgICAgICBuZXh0IGlmICRmaWxlID1+IG06cmVzb3VyY2VzL2NvbnN0XC5qcyQ6Owog
ICAgICAgICBuZXh0IGlmICRmaWxlID1+IG06cmVzb3VyY2VzL2NvbnN0cnVjdG9ycy1jYWNoZWQt
bmF2aWdhdGVcLmpzJDo7CisgICAgICAgIG5leHQgaWYgJGZpbGUgPX4gbTpyZXNvdXJjZXMvZXJy
b3JcLmpzJDo7CiAgICAgICAgIG5leHQgaWYgJGZpbGUgPX4gbTpyZXNvdXJjZXMvZnJhbWUtbG9h
ZGluZy12aWEtZG9jdW1lbnQtd3JpdGVcLmpzJDo7CiAgICAgICAgIG5leHQgaWYgJGZpbGUgPX4g
bTpyZXNvdXJjZXMvaWQtZmFzdHBhdGgtYWxtb3N0LXN0cmljdFwuanMkOjsKICAgICAgICAgbmV4
dCBpZiAkZmlsZSA9fiBtOnJlc291cmNlcy9pZC1mYXN0cGF0aC1zdHJpY3RcLmpzJDo7CiAgICAg
ICAgIG5leHQgaWYgJGZpbGUgPX4gbTpyZXNvdXJjZXMvaW50ZXJzZWN0c05vZGVcLmpzJDo7CiAg
ICAgICAgIG5leHQgaWYgJGZpbGUgPX4gbTpyZXNvdXJjZXMvcC1pbi1zY29wZVwuanMkOjsKICAg
ICAgICAgbmV4dCBpZiAkZmlsZSA9fiBtOnJlc291cmNlcy9wYXN0ZS1ibG9ja3F1b3RlLWJlZm9y
ZS1ibG9ja3F1b3RlXC5qcyQ6OworICAgICAgICBuZXh0IGlmICRmaWxlID1+IG06cmVzb3VyY2Vz
L3Blcm1pc3Npb24tZGVuaWVkXC5qcyQ6OworICAgICAgICBuZXh0IGlmICRmaWxlID1+IG06cmVz
b3VyY2VzL3Blcm1pc3Npb24tZGVuaWVkLXN0b3BzLXdhdGNoZXNcLmpzJDo7CisgICAgICAgIG5l
eHQgaWYgJGZpbGUgPX4gbTpyZXNvdXJjZXMvcG9zaXRpb24tc3RyaW5nXC5qcyQ6OwogICAgICAg
ICBuZXh0IGlmICRmaWxlID1+IG06cmVzb3VyY2VzL3JlZmxlY3Rpb24tb3ZlcmZsb3ctc2Nyb2xs
XC5qcyQ6OwogICAgICAgICBuZXh0IGlmICRmaWxlID1+IG06cmVzb3VyY2VzL3NjcmlwdC1lbGVt
ZW50LWdjXC5qcyQ6OwogICAgICAgICBuZXh0IGlmICRmaWxlID1+IG06cmVzb3VyY2VzL3Njcmlw
dC1lbGVtZW50LWdjXC5qcyQ6OwpAQCAtMTI4LDkgKzEzMiwxMSBAQCBmb3IgbXkgJHRmaWxlIChA
dGVtcGxhdGVzKSB7CiAgICAgICAgIG5leHQgaWYgJGZpbGUgPX4gbTpyZXNvdXJjZXMvc2NyaXB0
ZWQtcmFuZG9tXC5qcyQ6OwogICAgICAgICBuZXh0IGlmICRmaWxlID1+IG06cmVzb3VyY2VzL3Nl
bGVjdC1vcHRpb25zLXJlbW92ZVwuanMkOjsKICAgICAgICAgbmV4dCBpZiAkZmlsZSA9fiBtOnJl
c291cmNlcy9zaGFkb3ctb2Zmc2V0XC5qcyQ6OworICAgICAgICBuZXh0IGlmICRmaWxlID1+IG06
cmVzb3VyY2VzL3N1Y2Nlc3NcLmpzJDo7CiAgICAgICAgIG5leHQgaWYgJGZpbGUgPX4gbTpyZXNv
dXJjZXMvdGFiaW5kZXgtZm9jdXMtYmx1ci1hbGxcLmpzJDo7CiAgICAgICAgIG5leHQgaWYgJGZp
bGUgPX4gbTpyZXNvdXJjZXMvdXNlLWluc3RhbmNlUm9vdC1ldmVudC1idWJibGluZ1wuanMkOjsK
ICAgICAgICAgbmV4dCBpZiAkZmlsZSA9fiBtOnJlc291cmNlcy91c2UtaW5zdGFuY2VSb290LWV2
ZW50LWxpc3RlbmVyc1wuanMkOjsKKyAgICAgICAgbmV4dCBpZiAkZmlsZSA9fiBtOnJlc291cmNl
cy93YXRjaFwuanMkOjsKICAgICAgICAgbmV4dCBpZiAkZmlsZSA9fiBtOnJlc291cmNlcy93aW5k
b3ctcHJvcGVydGllc1wuanMkOjsKICAgICAgICAgbmV4dCBpZiAkZmlsZSA9fiBtOnJlc291cmNl
cy93cmFwcGVyLWlkZW50aXR5LWJhc2VcLmpzJDo7CiAgICAgICAgIG5leHQgaWYgJGZpbGUgPX4g
bTpyZXNvdXJjZXMveGh0bWwtc2NyaXB0c1wuanMkOjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MjM2
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMDktMDktMDkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlb2xvY2F0aW9u
IENvb3JkaW5hdGVzOjp0b1N0cmluZygpIHByaW50cyBib2d1cyB2YWx1ZXMgZm9yIHVuc3BlY2lm
aWVkIHByb3BlcnRpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yOTA4MAorCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2Vz
L3Bvc2l0aW9uLXN0cmluZy5qczogQWRkZWQuIFRlc3RzIG91dHB1dCBvZiBwb3NpdGlvbi50b1N0
cmluZygpLgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5o
dG1sOiBBZGRlZC4gV3JhcHBlciBmb3IgYWJvdmUgdGVzdC4KKyAgICAgICAgKiBmYXN0L2RvbS9H
ZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4gRXhwZWN0ZWQg
cmVzdWx0IGZvciBhYm92ZSB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBN
b2RpZmllZC4gU2tpcHMgYWJvdmUgdGVzdC4KKwogMjAwOS0wOS0wOSAgSmVucyBBbGZrZSAgPHNu
ZWpAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9w
b3NpdGlvbi1zdHJpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgZm9ybWF0dGluZyBvZiBwb3NpdGlvbi50b1N0
cmluZygpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwb3NpdGlvbi5j
b29yZHMubGF0aXR1ZGUgaXMgbW9ja0xhdGl0dWRlCitQQVNTIHBvc2l0aW9uLmNvb3Jkcy5sb25n
aXR1ZGUgaXMgbW9ja0xvbmdpdHVkZQorUEFTUyBwb3NpdGlvbi5jb29yZHMuYWNjdXJhY3kgaXMg
bW9ja0FjY3VyYWN5CitQQVNTIHBvc2l0aW9uLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgR2VvcG9z
aXRpb25dIgorUEFTUyBwb3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKSBpcyAiW29iamVjdCBDb29y
ZGluYXRlc10iCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
R2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb3NpdGlvbi1zdHJpbmcuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9j
YXRpb24vcmVzb3VyY2VzL3Bvc2l0aW9uLXN0cmluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvcG9zaXRpb24tc3RyaW5nLmpzCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2Vz
L3Bvc2l0aW9uLXN0cmluZy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorZGVzY3Jp
cHRpb24oIlRlc3RzIGZvcm1hdHRpbmcgb2YgcG9zaXRpb24udG9TdHJpbmcoKS4iKTsKKwordmFy
IG1vY2tMYXRpdHVkZSA9IDUxLjQ3ODsKK3ZhciBtb2NrTG9uZ2l0dWRlID0gLTAuMTY2OwordmFy
IG1vY2tBY2N1cmFjeSA9IDEwMC4wOworCit3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
R2VvbG9jYXRpb25QZXJtaXNzaW9uKHRydWUpOword2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
LnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKG1vY2tMYXRpdHVkZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrTG9uZ2l0dWRlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
Y2tBY2N1cmFjeSk7CisKK3ZhciBwb3NpdGlvbjsKK25hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRD
dXJyZW50UG9zaXRpb24oZnVuY3Rpb24ocCkgeworICAgIC8vIHNob3VsZEJlIGNhbid0IHVzZSBs
b2NhbCB2YXJpYWJsZXMgeWV0LgorICAgIHBvc2l0aW9uID0gcAorICAgIHNob3VsZEJlKCdwb3Np
dGlvbi5jb29yZHMubGF0aXR1ZGUnLCAnbW9ja0xhdGl0dWRlJyk7CisgICAgc2hvdWxkQmUoJ3Bv
c2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUnLCAnbW9ja0xvbmdpdHVkZScpOworICAgIHNob3VsZEJl
KCdwb3NpdGlvbi5jb29yZHMuYWNjdXJhY3knLCAnbW9ja0FjY3VyYWN5Jyk7CisgICAgc2hvdWxk
QmUoJ3Bvc2l0aW9uLnRvU3RyaW5nKCknLCAnIltvYmplY3QgR2VvcG9zaXRpb25dIicpOworICAg
IHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKScsICciW29iamVjdCBDb29yZGlu
YXRlc10iJyk7CisgICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBM
RVRFPC9zcGFuPicpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7Cit9LCBmdW5jdGlvbihlKSB7CisgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52
b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworfSk7Cit3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHJldmlzaW9uIDQ4MjE4KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE1NzMs
NiArMTU3Myw3IEBAIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLWV4Y2VwdGlvbi4KIGZh
c3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Blcm1p
c3Npb24tZGVuaWVkLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Blcm1pc3Npb24tZGVuaWVk
LXN0b3BzLXdhdGNoZXMuaHRtbAorZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5n
Lmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3N1Y2Nlc3MuaHRtbAogZmFzdC9kb20vR2VvbG9j
YXRpb24vd2F0Y2guaHRtbAogZmFzdC9kb20vZ2V0Qm91bmRpbmdDbGllbnRSZWN0Lmh0bWwK
</data>
<flag name="review"
          id="20393"
          type_id="1"
          status="+"
          setter="mjs"
    />
    <flag name="commit-queue"
          id="20429"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>