<?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>25512</bug_id>
          
          <creation_ts>2009-05-01 14:46:45 -0700</creation_ts>
          <short_desc>Texts in some unfinished tags aren&apos;t visible in view-source mode</short_desc>
          <delta_ts>2009-06-11 11:16:20 -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>DOM</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>data:text/html,&lt;textarea&gt;foobar</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinichiro Hamaji">hamaji</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>hamaji</cc>
    
    <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>119634</commentid>
    <comment_count>0</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-05-01 14:46:45 -0700</bug_when>
    <thetext>For HTML file whose content is &quot;&lt;textarea&gt;foobar&quot;, &quot;foobar&quot; isn&apos;t seen even with view-source mode. This problem happens with script, style, textarea, title, xmp, and iframe tags.

Related chromium bug: http://code.google.com/p/chromium/issues/detail?id=10686</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119636</commentid>
    <comment_count>1</comment_count>
      <attachid>29948</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-05-01 15:05:08 -0700</bug_when>
    <thetext>Created attachment 29948
Handle texts in unfinished special tags.

 LayoutTests/ChangeLog                              |   17 +++++++++
 .../fast/frames/resources/viewsource-frame-3.html  |    1 +
 .../frames/viewsource-unfinished-tags-expected.txt |    1 +
 .../fast/frames/viewsource-unfinished-tags.html    |   39 ++++++++++++++++++++
 WebCore/ChangeLog                                  |   16 ++++++++
 WebCore/html/HTMLTokenizer.cpp                     |   39 ++++++++++++--------
 6 files changed, 97 insertions(+), 16 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119664</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-05-02 02:32:43 -0700</bug_when>
    <thetext>Is this patch meant for review? Please mark it as such by clicking Edit link to the right of it if it is.

Briefly looking over the code, I think that &quot;specialTagParsed&quot; is not a great name for the variable. What do these tags have in common? Answering that question should help giving a more self-documanting name to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119701</commentid>
    <comment_count>3</comment_count>
      <attachid>29948</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-05-02 14:01:41 -0700</bug_when>
    <thetext>Comment on attachment 29948
Handle texts in unfinished special tags.

Thanks for the review! I forgot to change the flag for review, sorry.

Regarding the name &quot;special&quot;, I agree that this name isn&apos;t good, but it&apos;s a bit difficult to find a good name... How about &quot;non HTML text&quot; since these tags have non HTML text node as their child node? If it sounds good to you, I&apos;ll modify the patch in the beginning of the next week. I think we need to change the function name &quot;parseSpecial&quot; to &quot;parseNonHtmlText&quot; as well.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119919</commentid>
    <comment_count>4</comment_count>
      <attachid>30009</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-05-04 20:07:09 -0700</bug_when>
    <thetext>Created attachment 30009
fixes for layouttest and rename &quot;special tag&quot;

 LayoutTests/ChangeLog                              |   24 +++++++++
 ...tion-using-js-object-with-toString-expected.txt |    3 +
 ...dow-location-using-js-object-with-toString.html |    4 +-
 ...indow-shadow-location-using-string-expected.txt |    3 +
 .../window-shadow-location-using-string.html       |    4 +-
 .../viewsource-frame-unfinished-script.html        |    1 +
 .../viewsource-frame-unfinished-textarea.html      |    1 +
 .../frames/viewsource-unfinished-tags-expected.txt |    3 +
 .../fast/frames/viewsource-unfinished-tags.html    |   46 ++++++++++++++++++
 WebCore/ChangeLog                                  |   20 ++++++++
 WebCore/html/HTMLTokenizer.cpp                     |   50 ++++++++++----------
 WebCore/html/HTMLTokenizer.h                       |    4 +-
 12 files changed, 132 insertions(+), 31 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119920</commentid>
    <comment_count>5</comment_count>
      <attachid>30009</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-05-04 20:12:15 -0700</bug_when>
    <thetext>Comment on attachment 30009
fixes for layouttest and rename &quot;special tag&quot;

Updates from the previous patch were:

- Renamed functions which contain &quot;Special&quot; using  &quot;NonHTMLText.
- Fixed layouttest by using inAnyNonHTMLText().
- Added &lt;/iframe&gt; for two tests and fixed the expected output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120934</commentid>
    <comment_count>6</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-05-12 14:58:17 -0700</bug_when>
    <thetext>Ping for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122603</commentid>
    <comment_count>7</comment_count>
      <attachid>29948</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-22 01:18:07 -0700</bug_when>
    <thetext>Comment on attachment 29948
Handle texts in unfinished special tags.

In general the fix looks good, but I would suggest doing performance tests such as iBench HTML or other page load test benchmarks to confirm no regression, since the tokenizer is very performance-sensitive. Please repost with performance data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122620</commentid>
    <comment_count>8</comment_count>
      <attachid>30009</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-22 02:31:50 -0700</bug_when>
    <thetext>Comment on attachment 30009
fixes for layouttest and rename &quot;special tag&quot;

Looks great! Like I said in the other patch, though, I&apos;d like to see some perf testing of this. Please repost with perf testing results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122629</commentid>
    <comment_count>9</comment_count>
      <attachid>29948</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-05-22 03:19:17 -0700</bug_when>
    <thetext>Comment on attachment 29948
Handle texts in unfinished special tags.

Sorry, the next patch contains this patch and I should have marked this as obsolete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122630</commentid>
    <comment_count>10</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-05-22 03:31:41 -0700</bug_when>
    <thetext>&gt; In general the fix looks good, but I would suggest doing performance tests such
&gt; as iBench HTML or other page load test benchmarks to confirm no regression,
&gt; since the tokenizer is very performance-sensitive. Please repost with
&gt; performance data.

I see. Thanks for the advice! I&apos;ll learn the tool and update this patch.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123826</commentid>
    <comment_count>11</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-06-01 05:27:58 -0700</bug_when>
    <thetext>I ran iBench and there seem to be no performance regression. I ran HTML load speed test 3 times.

Before this patch:

HTML Load Speed   	  	  	  
   All iterations	  15.15	  	  
   First iteration (downloaded)	  2.07	  	  
   Subsequent iteration (cached)	  1.87

HTML Load Speed   	  	  	  
   All iterations	  14.63	  	  
   First iteration (downloaded)	  1.86	  	  
   Subsequent iteration (cached)	  1.82

HTML Load Speed   	  	  	  
   All iterations	  14.66	  	  
   First iteration (downloaded)	  1.9	  	  
   Subsequent iteration (cached)	  1.82

After this patch:

HTML Load Speed   	  	  	  
   All iterations	  15.51	  	  
   First iteration (downloaded)	  2.6	  	  
   Subsequent iteration (cached)	  1.84

HTML Load Speed   	  	  	  
   All iterations	  14.61	  	  
   First iteration (downloaded)	  1.86	  	  
   Subsequent iteration (cached)	  1.82

HTML Load Speed   	  	  	  
   All iterations	  14.53	  	  
   First iteration (downloaded)	  1.87	  	  
   Subsequent iteration (cached)	  1.81

It seems that the &quot;First iteration&quot; of the first trial has bigger variance than other tests due to network speed fluctuation. Other results show this patch don&apos;t introduce performance regression.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123833</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-01 07:02:57 -0700</bug_when>
    <thetext>See also: bug 8961 and its duplicates. Maybe this is a duplicate, too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123915</commentid>
    <comment_count>13</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-06-01 19:20:08 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; See also: bug 8961 and its duplicates. Maybe this is a duplicate, too?

I think this is not the duplicate of the bug 8961. Hyatt&apos;s patch didn&apos;t fix this bug and my patch didn&apos;t fix the bug 8961 as well.

By the way I&apos;ve just found that this is the duplicate of this bug: https://bugs.webkit.org/show_bug.cgi?id=24860
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123934</commentid>
    <comment_count>14</comment_count>
      <attachid>30856</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-06-01 22:55:18 -0700</bug_when>
    <thetext>Created attachment 30856
patch v3

 LayoutTests/ChangeLog                              |   20 ++++++++
 ...tion-using-js-object-with-toString-expected.txt |    3 +
 ...dow-location-using-js-object-with-toString.html |    4 +-
 ...indow-shadow-location-using-string-expected.txt |    3 +
 .../window-shadow-location-using-string.html       |    4 +-
 .../viewsource-frame-unfinished-script.html        |    1 +
 .../viewsource-frame-unfinished-textarea.html      |    1 +
 .../frames/viewsource-unfinished-tags-expected.txt |    3 +
 .../fast/frames/viewsource-unfinished-tags.html    |   46 ++++++++++++++++++
 WebCore/ChangeLog                                  |   18 +++++++
 WebCore/html/HTMLTokenizer.cpp                     |   50 ++++++++++----------
 WebCore/html/HTMLTokenizer.h                       |    4 +-
 12 files changed, 126 insertions(+), 31 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123936</commentid>
    <comment_count>15</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-06-01 22:59:31 -0700</bug_when>
    <thetext>As I&apos;ve found Ian is saying that re-parsing is invalid, I updated the patch so that this patch only affects for view-source mode and there should be no security issues.

https://bugs.webkit.org/show_bug.cgi?id=6314
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124276</commentid>
    <comment_count>16</comment_count>
      <attachid>30939</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-06-04 00:20:34 -0700</bug_when>
    <thetext>Created attachment 30939
patch v4

 LayoutTests/ChangeLog                              |   20 ++++++++
 ...tion-using-js-object-with-toString-expected.txt |    3 +
 ...dow-location-using-js-object-with-toString.html |    4 +-
 ...indow-shadow-location-using-string-expected.txt |    3 +
 .../window-shadow-location-using-string.html       |    4 +-
 .../viewsource-frame-unfinished-script.html        |    1 +
 .../viewsource-frame-unfinished-textarea.html      |    1 +
 .../frames/viewsource-unfinished-tags-expected.txt |    3 +
 .../fast/frames/viewsource-unfinished-tags.html    |   46 ++++++++++++++++++
 WebCore/ChangeLog                                  |   18 +++++++
 WebCore/html/HTMLTokenizer.cpp                     |   50 ++++++++++----------
 WebCore/html/HTMLTokenizer.h                       |    4 +-
 12 files changed, 126 insertions(+), 31 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124277</commentid>
    <comment_count>17</comment_count>
      <attachid>30939</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-06-04 00:21:40 -0700</bug_when>
    <thetext>Comment on attachment 30939
patch v4

Sorry, I fixed my email address in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124470</commentid>
    <comment_count>18</comment_count>
      <attachid>30990</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-06-04 21:52:08 -0700</bug_when>
    <thetext>Created attachment 30990
patch v5

 LayoutTests/ChangeLog                              |   22 +++++++++
 ...tion-using-js-object-with-toString-expected.txt |    3 +
 ...dow-location-using-js-object-with-toString.html |    4 +-
 ...indow-shadow-location-using-string-expected.txt |    3 +
 .../window-shadow-location-using-string.html       |    4 +-
 .../viewsource-frame-unfinished-script.html        |    1 +
 .../viewsource-frame-unfinished-textarea.html      |    1 +
 .../frames/viewsource-unfinished-tags-expected.txt |    3 +
 .../fast/frames/viewsource-unfinished-tags.html    |   46 ++++++++++++++++++
 WebCore/ChangeLog                                  |   20 ++++++++
 WebCore/html/HTMLTokenizer.cpp                     |   50 ++++++++++----------
 WebCore/html/HTMLTokenizer.h                       |    4 +-
 12 files changed, 130 insertions(+), 31 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124471</commentid>
    <comment_count>19</comment_count>
      <attachid>30990</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-06-04 21:53:09 -0700</bug_when>
    <thetext>Comment on attachment 30990
patch v5

I inserted some line breaks in ChangeLog as I was advised that we should keep lines in ChangeLog short.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124994</commentid>
    <comment_count>20</comment_count>
      <attachid>30990</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-06-09 12:42:23 -0700</bug_when>
    <thetext>Comment on attachment 30990
patch v5

I&apos;m not an expert in the HTML tokenizer, but this patch LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125348</commentid>
    <comment_count>21</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2009-06-11 11:16:20 -0700</bug_when>
    <thetext>Landed in @r44608.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29948</attachid>
            <date>2009-05-01 15:05:08 -0700</date>
            <delta_ts>2009-05-22 03:19:17 -0700</delta_ts>
            <desc>Handle texts in unfinished special tags.</desc>
            <filename>Handle-texts-in-unfinished-special-tags..patch</filename>
            <type>text/plain</type>
            <size>9534</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZTM1NDE0Nzg4YzRhYjRmY2M1NWFjN2Q2MDA0NWUwMzI4MTY0MGNlNApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJhODEwZGYu
LmJjOWYxYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAwOS0wNS0wMSAgU2hpbmljaGlybyBI
YW1hamkgIDxoYW1hamlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjU1MTIKKyAgICAgICAgSGFuZGxlIHRleHRzIGFmdGVyIHVuZmluaXNoZWQgc3BlY2lhbCB0
YWdzIChpLmUuLCBzY3JpcHQsIHN0eWxlLCB0ZXh0YXJlYSwgdGl0bGUsIHhtcCwgYW5kIGlmcmFt
ZSkgYXMgdGhlIHRleHQgbm9kZSB1bmRlciB0aGUgdGFncy4KKworICAgICAgICBUaGlzIHdhcyBh
bHJlYWR5IGRvbmUgb25seSBmb3IgdGl0bGUuIFRoaXMgY2hhbmdlIGFsbG93cyBvdGhlciBzcGVj
aWFsIHRhZ3MgdG8gYmUgaGFuZGxlZCBhcyB3ZWxsLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMg
ZXNwZWNpYWxseSBiZW5lZml0aWNhbCBmb3Igdmlldy1zb3VyY2UgbW9kZS4gQmVmb3JlIHRoaXMg
Y2hhbmdlLCBhbGwgdGV4dHMgaW4gdW5maW5pc2hlZCBzcGVjaWFsIHRhZ3MgY2Fubm90IGJlIHNl
ZW4gZXZlbiBpbiB2aWV3LXNvdXJjZSBtb2RlLgorCisgICAgICAgIFRoZSB0ZXN0IGNhc2UgdmVy
aWZpZXMgaWYgdGhlIHRleHRzIGluIHRoZSB1bmZpbmlzaGVkIHNwZWNpYWwgdGFncyBhcmUgdmlz
aWJsZSBpbiB2aWV3LXNvdXJjZSBtb2RlLgorCisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzb3Vy
Y2VzL3ZpZXdzb3VyY2UtZnJhbWUtMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZyYW1l
cy92aWV3c291cmNlLXVuZmluaXNoZWQtdGFncy1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNy
YXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmlu
aXNoZWQtdGFncy5odG1sOiBBZGRlZC4KKwogMjAwOS0wNC0zMCAgS2V2aW4gTWNDdWxsb3VnaCAg
PGttY2N1bGxvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGVsZSBQZXRl
cnNvbiBhbmQgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9yZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFtZS0zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9yZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFtZS0zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2VhMTFmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL3Jlc291cmNlcy92aWV3c291cmNlLWZyYW1lLTMuaHRtbApAQCAtMCwwICsx
IEBACis8c2NyaXB0PmZvb2JhcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
dmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZjIyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmluaXNoZWQtdGFncy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMGY1OTg1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLmh0bWwKQEAgLTAsMCArMSwz
OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiByZXBvcnQoZnJhbWUpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGZyYW1l
LmNvbnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MOworICAgICAgICB2YXIg
cmVnZXggPSBuZXcgUmVnRXhwKCJmb29iYXIiLCAiZyIpOworICAgICAgICBtYXRjaGVzID0gcmVz
dWx0Lm1hdGNoKHJlZ2V4KTsKKworICAgICAgICBpZiAobWF0Y2hlcykKKyAgICAgICAgICAgIHZh
ciByZXN1bHRUZXh0ID0gIlBBU1MiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YXIgcmVz
dWx0VGV4dCA9ICJGQUlMIjsKKworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgICAgICAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgICAgICAgICBkb2N1bWVu
dC53cml0ZShyZXN1bHRUZXh0KTsKKyAgICAgICAgICAgIGRvY3VtZW50LmNsb3NlKCk7CisKKyAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS50ZXh0
Q29udGVudCA9IHJlc3VsdFRleHQ7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+WW91IHNob3VsZCBzZWUgYSBmcmFtZSBpbiAndmlldyBzb3VyY2UnIG1v
ZGUgYmVsb3cuPC9wPgorPHA+ImZvb2JhciIgc2hvdWxkIGJlIHNlZW4gYWZ0ZXIgdGhlICZsdDtz
Y3JpcHQmZ3Q7IHRhZy48L3A+Cis8aHI+Cis8aWZyYW1lIHZpZXdzb3VyY2Ugc3JjPSJyZXNvdXJj
ZXMvdmlld3NvdXJjZS1mcmFtZS0zLmh0bWwiIGhlaWdodD0iMjUwIiBvbmxvYWQ9InJlcG9ydCh0
aGlzKSI+PC9pZnJhbWU+Cis8aHI+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA2MGQyYjA2Li5hM2YyOTlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDA5LTA1LTAxICBTaGlu
aWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNTUxMgorICAgICAgICBIYW5kbGUgdGV4dHMgYWZ0ZXIgdW5maW5pc2hlZCBz
cGVjaWFsIHRhZ3MgKGkuZS4sIHNjcmlwdCwgc3R5bGUsIHRleHRhcmVhLCB0aXRsZSwgeG1wLCBh
bmQgaWZyYW1lKSBhcyB0aGUgdGV4dCBub2RlIHVuZGVyIHRoZSB0YWdzLgorCisgICAgICAgIFRo
aXMgd2FzIGFscmVhZHkgZG9uZSBvbmx5IGZvciB0aXRsZS4gVGhpcyBjaGFuZ2UgYWxsb3dzIG90
aGVyIHNwZWNpYWwgdGFncyB0byBiZSBoYW5kbGVkIGFzIHdlbGwuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpcyBlc3BlY2lhbGx5IGJlbmVmaXRpY2FsIGZvciB2aWV3LXNvdXJjZSBtb2RlLiBCZWZv
cmUgdGhpcyBjaGFuZ2UsIGFsbCB0ZXh0cyBpbiB1bmZpbmlzaGVkIHNwZWNpYWwgdGFncyBjYW5u
b3QgYmUgc2VlbiBldmVuIGluIHZpZXctc291cmNlIG1vZGUuCisKKyAgICAgICAgVGVzdDogZmFz
dC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MuaHRtbAorCisgICAgICAgICogaHRt
bC9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnBh
cnNlVGFnKToKKwogMjAwOS0wNS0wMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29uLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6
ZXIuY3BwCmluZGV4IGZhMzJiODYuLjIzZTMzYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MVG9rZW5pemVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKQEAg
LTE0NzEsNiArMTQ3MSwxMCBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpw
YXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCiAgICAgICAgICAgICBS
ZWZQdHI8Tm9kZT4gbiA9IHByb2Nlc3NUb2tlbigpOwogICAgICAgICAgICAgbV9jQnVmZmVyUG9z
ID0gY0J1ZmZlclBvczsKICAgICAgICAgICAgIGlmIChuIHx8IGluVmlld1NvdXJjZU1vZGUoKSkg
eworICAgICAgICAgICAgICAgIFN0YXRlIHNhdmVkU3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgICAg
ICAgICBTZWdtZW50ZWRTdHJpbmcgc2F2ZWRTcmMgPSBzcmM7CisgICAgICAgICAgICAgICAgbG9u
ZyBzYXZlZExpbmVubyA9IG1fbGluZU51bWJlcjsKKyAgICAgICAgICAgICAgICBib29sIHNwZWNp
YWxUYWdQYXJzZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBpZiAoKHRhZ05hbWUgPT0gcHJl
VGFnIHx8IHRhZ05hbWUgPT0gbGlzdGluZ1RhZykgJiYgIWluVmlld1NvdXJjZU1vZGUoKSkgewog
ICAgICAgICAgICAgICAgICAgICBpZiAoYmVnaW5UYWcpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0ZS5zZXREaXNjYXJkTEYodHJ1ZSk7IC8vIERpc2NhcmQgdGhlIGZpcnN0IExGIGFmdGVy
IHdlIG9wZW4gYSBwcmUuCkBAIC0xNDgzLDYgKzE0ODcsNyBAQCBIVE1MVG9rZW5pemVyOjpTdGF0
ZSBIVE1MVG9rZW5pemVyOjpwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3Rh
dGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXIgPSBzY3JpcHRFbmQ7
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXJMZW5ndGggPSA4OwogICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5TY3JpcHQodHJ1ZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBzcGVjaWFsVGFnUGFyc2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOwogICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKGlzU2VsZkNsb3NpbmdTY3JpcHQpIHsgLy8gSGFuZGxlIDxzY3JpcHQg
c3JjPSJmb28iLz4KICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluU2NyaXB0KHRy
dWUpOwpAQCAtMTQ5Myw2ICsxNDk4LDcgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2Vu
aXplcjo6cGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQogICAgICAg
ICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0gc3R5bGVFbmQ7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXJMZW5ndGggPSA3OwogICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGUuc2V0SW5TdHlsZSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNwZWNpYWxUYWdQYXJzZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUg
PSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUgPT0gdGV4dGFyZWFUYWcpIHsKQEAgLTE1MDAs
MzYgKzE1MDYsMjMgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VU
YWcoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQogICAgICAgICAgICAgICAgICAg
ICAgICAgbV9zZWFyY2hTdG9wcGVyID0gdGV4dGFyZWFFbmQ7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3NlYXJjaFN0b3BwZXJMZW5ndGggPSAxMDsKICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRlLnNldEluVGV4dEFyZWEodHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcGVj
aWFsVGFnUGFyc2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcGFy
c2VTcGVjaWFsKHNyYywgc3RhdGUpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmICh0YWdOYW1lID09IHRpdGxlVGFnKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChiZWdpblRhZykgewogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9w
cGVyID0gdGl0bGVFbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXJM
ZW5ndGggPSA3OwotICAgICAgICAgICAgICAgICAgICAgICAgU3RhdGUgc2F2ZWRTdGF0ZSA9IHN0
YXRlOwotICAgICAgICAgICAgICAgICAgICAgICAgU2VnbWVudGVkU3RyaW5nIHNhdmVkU3JjID0g
c3JjOwotICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzYXZlZExpbmVubyA9IG1fbGluZU51
bWJlcjsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluVGl0bGUodHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWFsVGFnUGFyc2VkID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmluVGl0bGUoKSAmJiBzcmMuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UganVzdCBhdGUgdGhlIHJlc3Qgb2Yg
dGhlIGRvY3VtZW50IGFzIHRoZSB0aXRsZSAjdGV4dCBub2RlIQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIFJlc2V0IHRoZSBzdGF0ZSB0aGVuIHJldG9rZW5pemUgd2l0aG91dCBzcGVj
aWFsIHRpdGxlIGhhbmRsaW5nLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExldCB0
aGUgcGFyc2VyIGNsZWFuIHVwIHRoZSBtaXNzaW5nIDwvdGl0bGU+IHRhZy4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBpbmNvcnJlY3QsIGJlY2F1c2Ugc3Jj
LmlzRW1wdHkoKSBkb2Vzbid0IG1lYW4gd2UncmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCB1bmxlc3MgbV9ub01vcmVEYXRhIGlzIGFs
c28gdHJ1ZS4gV2UgbmVlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGRldGVj
dCB0aGlzIGNhc2UgZWxzZXdoZXJlLCBhbmQgc2F2ZSB0aGUgc3RhdGUgc29tZXdoZXJlIG90aGVy
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhbiBhIGxvY2FsIHZhcmlhYmxlLgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gc2F2ZWRTdGF0ZTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzcmMgPSBzYXZlZFNyYzsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2xpbmVOdW1iZXIgPSBzYXZlZExpbmVubzsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3NjcmlwdENvZGVTaXplID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFnTmFt
ZSA9PSB4bXBUYWcpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJlZ2luVGFnKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXIgPSB4bXBFbmQ7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXJMZW5ndGggPSA1OwogICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGUuc2V0SW5YbXAodHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBz
cGVjaWFsVGFnUGFyc2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0g
cGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmICh0YWdOYW1lID09IGlmcmFtZVRhZykgewpAQCAtMTUzNyw5ICsx
NTMwLDIzIEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlVGFnKFNl
Z21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKICAgICAgICAgICAgICAgICAgICAgICAg
IG1fc2VhcmNoU3RvcHBlciA9IGlmcmFtZUVuZDsKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
c2VhcmNoU3RvcHBlckxlbmd0aCA9IDg7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5z
ZXRJbklGcmFtZSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpYWxUYWdQYXJz
ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwo
c3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaWYgKHNwZWNpYWxUYWdQYXJzZWQgJiYgc3JjLmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IGF0ZSB0aGUgcmVzdCBvZiB0aGUgZG9jdW1l
bnQgYXMgdGhlICN0ZXh0IG5vZGUgdW5kZXIgdGhlIHNwZWNpYWwgdGFnIQorICAgICAgICAgICAg
ICAgICAgICAvLyBSZXNldCB0aGUgc3RhdGUgdGhlbiByZXRva2VuaXplIHdpdGhvdXQgc3BlY2lh
bCBoYW5kbGluZy4KKyAgICAgICAgICAgICAgICAgICAgLy8gTGV0IHRoZSBwYXJzZXIgY2xlYW4g
dXAgdGhlIG1pc3NpbmcgY2xvc2UgdGFnLgorICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
VGhpcyBpcyBpbmNvcnJlY3QsIGJlY2F1c2Ugc3JjLmlzRW1wdHkoKSBkb2Vzbid0IG1lYW4gd2Un
cmUKKyAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgdW5s
ZXNzIG1fbm9Nb3JlRGF0YSBpcyBhbHNvIHRydWUuIFdlIG5lZWQKKyAgICAgICAgICAgICAgICAg
ICAgLy8gdG8gZGV0ZWN0IHRoaXMgY2FzZSBlbHNld2hlcmUsIGFuZCBzYXZlIHRoZSBzdGF0ZSBz
b21ld2hlcmUgb3RoZXIKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhhbiBhIGxvY2FsIHZhcmlh
YmxlLgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHNhdmVkU3RhdGU7CisgICAgICAgICAg
ICAgICAgICAgIHNyYyA9IHNhdmVkU3JjOworICAgICAgICAgICAgICAgICAgICBtX2xpbmVOdW1i
ZXIgPSBzYXZlZExpbmVubzsKKyAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRDb2RlU2l6ZSA9
IDA7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHRh
Z05hbWUgPT0gcGxhaW50ZXh0VGFnKQogICAgICAgICAgICAgICAgIHN0YXRlLnNldEluUGxhaW5U
ZXh0KGJlZ2luVGFnKTsK
</data>
<flag name="review"
          id="15015"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30009</attachid>
            <date>2009-05-04 20:07:09 -0700</date>
            <delta_ts>2009-06-01 22:57:06 -0700</delta_ts>
            <desc>fixes for layouttest and rename &quot;special tag&quot;</desc>
            <filename>fixes-for-layouttest-and-rename-special-tag-.patch</filename>
            <type>text/plain</type>
            <size>16208</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">YTY0Yjc1M2Y2NTNlMWY1MmY2ZTA1NGFlNjU5MjE4OGMwNmNmNTQ1YgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJhODEwZGYu
LmU0OTM0NjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAwOS0wNS0wNCAgU2hpbmljaGlybyBI
YW1hamkgIDxzZXQgRU1BSUxfQUREUkVTUyBlbnZpcm9ubWVudCB2YXJpYWJsZT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MTIKKyAgICAgICAgSGFuZGxlIHRleHRzIGFmdGVy
IHVuZmluaXNoZWQgc3BlY2lhbCB0YWdzIChpLmUuLCBzY3JpcHQsIHN0eWxlLCB0ZXh0YXJlYSwg
dGl0bGUsIHhtcCwgYW5kIGlmcmFtZSkgYXMgdGhlIHRleHQgbm9kZSB1bmRlciB0aGUgdGFncy4K
KworICAgICAgICBUaGlzIHdhcyBhbHJlYWR5IGRvbmUgb25seSBmb3IgdGl0bGUuIFRoaXMgY2hh
bmdlIGFsbG93cyBvdGhlciBzcGVjaWFsIHRhZ3MgdG8gYmUgaGFuZGxlZCBhcyB3ZWxsLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaXMgZXNwZWNpYWxseSBiZW5lZml0aWNhbCBmb3Igdmlldy1zb3Vy
Y2UgbW9kZS4gQmVmb3JlIHRoaXMgY2hhbmdlLCBhbGwgdGV4dHMgaW4gdW5maW5pc2hlZCBzcGVj
aWFsIHRhZ3MgY2Fubm90IGJlIHNlZW4gZXZlbiBpbiB2aWV3LXNvdXJjZSBtb2RlLgorCisgICAg
ICAgIFRoZSB0ZXN0IGNhc2UgdmVyaWZpZXMgaWYgdGhlIHRleHRzIGluIHRoZSB1bmZpbmlzaGVk
IHNwZWNpYWwgdGFncyBhcmUgdmlzaWJsZSBpbiB2aWV3LXNvdXJjZSBtb2RlLgorCisJQWxzbywg
Zml4ZWQgd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy0qIHRlc3RzIHNvIHRoYXQgdGhleSBk
b24ndCB1c2UgdW5maW5pc2hlZCBpZnJhbWUgYW55bW9yZS4KKworICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13
aXRoLXRvU3RyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvTG9j
YXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10b1N0cmlu
Zy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93
LWxvY2F0aW9uLXVzaW5nLXN0cmluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20v
V2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLmh0bWw6
CisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzb3VyY2VzL3ZpZXdzb3VyY2UtZnJhbWUtdW5maW5p
c2hlZC1zY3JpcHQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzb3VyY2Vz
L3ZpZXdzb3VyY2UtZnJhbWUtdW5maW5pc2hlZC10ZXh0YXJlYS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmluaXNoZWQtdGFncy1leHBlY3RlZC50eHQ6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9pZnJhbWUtZG9tYWluLXRl
c3QtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5p
c2hlZC10YWdzLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA0LTMwICBLZXZpbiBNY0N1bGxvdWdoICA8
a21jY3VsbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVy
c29uIGFuZCBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRo
LXRvU3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2Nh
dGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5n
LWV4cGVjdGVkLnR4dAppbmRleCA5YzYyYWMwLi4xMTg5MTdkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2lu
Zy1qcy1vYmplY3Qtd2l0aC10b1N0cmluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMt
b2JqZWN0LXdpdGgtdG9TdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsNSBAQAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiBQQVNTIHJlc3VsdCBp
cyAncGFzcy5odG1sJwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
TG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10b1N0
cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1z
aGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJpbmcuaHRtbAppbmRleCBj
NzhiMjczLi4yMTk3YjFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
TG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10b1N0
cmluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5k
b3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLmh0bWwKQEAg
LTIyLDcgKzIyLDcgQEAKIAogICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3Njcmlw
dD4KLTxpZnJhbWUgb25sb2FkPSJmcmFtZUxvYWRlZCgpIiBzcmM9InJlc291cmNlcy93aW5kb3ct
c2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLWlmcmFtZS5odG1s
Ij4KKzxpZnJhbWUgb25sb2FkPSJmcmFtZUxvYWRlZCgpIiBzcmM9InJlc291cmNlcy93aW5kb3ct
c2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLWlmcmFtZS5odG1s
Ij48L2lmcmFtZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
TG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9j
YXRpb24tdXNpbmctc3RyaW5nLWV4cGVjdGVkLnR4dAppbmRleCA5YzYyYWMwLi4xMTg5MTdkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNo
YWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLXN0
cmluZy1leHBlY3RlZC50eHQKQEAgLTEsMiArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIFBBU1MgcmVzdWx0IGlzICdwYXNzLmh0bWwnCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ct
c2hhZG93LWxvY2F0aW9uLXVzaW5nLXN0cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLmh0bWwK
aW5kZXggNDBkY2YxOS4uYTVmMDUxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ct
bG9jYXRpb24tdXNpbmctc3RyaW5nLmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAKIAogICAgIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTxpZnJhbWUgb25sb2FkPSJmcmFtZUxv
YWRlZCgpIiBzcmM9InJlc291cmNlcy93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLXN0cmlu
Zy1pZnJhbWUuaHRtbCI+Cis8aWZyYW1lIG9ubG9hZD0iZnJhbWVMb2FkZWQoKSIgc3JjPSJyZXNv
dXJjZXMvd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmctaWZyYW1lLmh0bWwiPjwv
aWZyYW1lPgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNl
cy92aWV3c291cmNlLWZyYW1lLXVuZmluaXNoZWQtc2NyaXB0Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9yZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFtZS11bmZpbmlzaGVkLXNjcmlwdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZWFkNzkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvdmlld3NvdXJjZS1m
cmFtZS11bmZpbmlzaGVkLXNjcmlwdC5odG1sCkBAIC0wLDAgKzEgQEAKKzxzY3JpcHQ+Zm9vYmFy
IGluIHNjcmlwdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzb3VyY2Vz
L3ZpZXdzb3VyY2UtZnJhbWUtdW5maW5pc2hlZC10ZXh0YXJlYS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvcmVzb3VyY2VzL3ZpZXdzb3VyY2UtZnJhbWUtdW5maW5pc2hlZC10ZXh0YXJl
YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMWYzZmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvdmlld3NvdXJj
ZS1mcmFtZS11bmZpbmlzaGVkLXRleHRhcmVhLmh0bWwKQEAgLTAsMCArMSBAQAorPHRleHRhcmVh
PmZvb2JhciBpbiB0ZXh0YXJlYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
dmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0ZTE4MGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmluaXNoZWQtdGFncy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACitzY3JpcHQ6IFBBU1MKK3RleHRhcmVhOiBQQVNTCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10
YWdzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmluaXNoZWQt
dGFncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiYzc1OTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmlu
aXNoZWQtdGFncy5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgdmFyIHJlc3VsdHMgPSB7fTsKKyAgICBm
dW5jdGlvbiByZXBvcnQoZnJhbWUsIHRhZykgeworICAgICAgICB2YXIgcmVzdWx0ID0gZnJhbWUu
Y29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUw7CisgICAgICAgIHZhciBy
ZWdleCA9IG5ldyBSZWdFeHAoImZvb2JhciIsICJnIik7CisgICAgICAgIG1hdGNoZXMgPSByZXN1
bHQubWF0Y2gocmVnZXgpOworCisgICAgICAgIGlmIChtYXRjaGVzKQorICAgICAgICAgICAgdmFy
IHJlc3VsdFRleHQgPSAiUEFTUyI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhciByZXN1
bHRUZXh0ID0gIkZBSUwiOworCisgICAgICAgIHJlc3VsdHNbdGFnXSA9IHJlc3VsdFRleHQ7Cisg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgcmVzdWx0c1sic2NyaXB0
Il0gJiYgcmVzdWx0c1sidGV4dGFyZWEiXSkgeworICAgICAgICAgICAgZG9jdW1lbnQub3Blbigp
OworICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoInNjcmlwdDogIiArIHJlc3VsdHNbInNjcmlw
dCJdICsgIjxicj4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCJ0ZXh0YXJlYTogIiAr
IHJlc3VsdHNbInRleHRhcmVhIl0gKyAiPGJyPiIpOworICAgICAgICAgICAgZG9jdW1lbnQuY2xv
c2UoKTsKKworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFn
ICsgIl9yZXN1bHQiKS50ZXh0Q29udGVudCA9IHJlc3VsdFRleHQ7CisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+WW91IHNob3VsZCBzZWUgYSBmcmFtZSBp
biAndmlldyBzb3VyY2UnIG1vZGUgYmVsb3cuPC9wPgorPHA+ImZvb2JhciIgc2hvdWxkIGJlIHNl
ZW4gYWZ0ZXIgdGhlICZsdDtzY3JpcHQmZ3Q7IHRhZyBhbmQgJmx0O3RleHRhcmVhJmd0OyB0YWcu
PC9wPgorPGhyPgorPGlmcmFtZSB2aWV3c291cmNlIHNyYz0icmVzb3VyY2VzL3ZpZXdzb3VyY2Ut
ZnJhbWUtdW5maW5pc2hlZC1zY3JpcHQuaHRtbCIgaGVpZ2h0PSIyNTAiIG9ubG9hZD0icmVwb3J0
KHRoaXMsICdzY3JpcHQnKSI+PC9pZnJhbWU+Cis8aWZyYW1lIHZpZXdzb3VyY2Ugc3JjPSJyZXNv
dXJjZXMvdmlld3NvdXJjZS1mcmFtZS11bmZpbmlzaGVkLXRleHRhcmVhLmh0bWwiIGhlaWdodD0i
MjUwIiBvbmxvYWQ9InJlcG9ydCh0aGlzLCAndGV4dGFyZWEnKSI+PC9pZnJhbWU+Cis8aHI+Cis8
ZGl2IGlkPSJyZXN1bHQiPgorPGRpdiBpZD0ic2NyaXB0X3Jlc3VsdCI+PC9kaXY+Cis8ZGl2IGlk
PSJ0ZXh0YXJlYV9yZXN1bHQiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYwZDJi
MDYuLjdlOWZjOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMDUtMDQgIFNoaW5pY2hpcm8gSGFtYWpp
ICA8c2V0IEVNQUlMX0FERFJFU1MgZW52aXJvbm1lbnQgdmFyaWFibGU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI1NTEyCisgICAgICAgIEhhbmRsZSB0ZXh0cyBhZnRlciB1bmZp
bmlzaGVkIHNwZWNpYWwgdGFncyAoaS5lLiwgc2NyaXB0LCBzdHlsZSwgdGV4dGFyZWEsIHRpdGxl
LCB4bXAsIGFuZCBpZnJhbWUpIGFzIHRoZSB0ZXh0IG5vZGUgdW5kZXIgdGhlIHRhZ3MuCisKKyAg
ICAgICAgVGhpcyB3YXMgYWxyZWFkeSBkb25lIG9ubHkgZm9yIHRpdGxlLiBUaGlzIGNoYW5nZSBh
bGxvd3Mgb3RoZXIgc3BlY2lhbCB0YWdzIHRvIGJlIGhhbmRsZWQgYXMgd2VsbC4KKworICAgICAg
ICBUaGlzIHBhdGNoIGlzIGVzcGVjaWFsbHkgYmVuZWZpdGljYWwgZm9yIHZpZXctc291cmNlIG1v
ZGUuIEJlZm9yZSB0aGlzIGNoYW5nZSwgYWxsIHRleHRzIGluIHVuZmluaXNoZWQgc3BlY2lhbCB0
YWdzIGNhbm5vdCBiZSBzZWVuIGV2ZW4gaW4gdmlldy1zb3VyY2UgbW9kZS4KKworICAgICAgICBU
ZXN0OiBmYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmluaXNoZWQtdGFncy5odG1sCisKKyAgICAg
ICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2Vu
aXplcjo6cGFyc2VOb25IVE1MVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVy
OjpwYXJzZVRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjp3cml0ZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9r
ZW5pemVyOjpTdGF0ZTo6aW5BbnlOb25IVE1MVGV4dCk6CisKIDIwMDktMDUtMDEgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGVs
ZSBQZXRlcnNvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBi
L1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAppbmRleCBmYTMyYjg2Li4zMWU3ZWZhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0zMTQsNyArMzE0LDcgQEAgSFRNTFRva2VuaXplcjo6
U3RhdGUgSFRNTFRva2VuaXplcjo6cHJvY2Vzc0xpc3RpbmcoU2VnbWVudGVkU3RyaW5nIGxpc3Qs
IFN0YXRlIHMKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKLUhUTUxUb2tlbml6ZXI6OlN0YXRlIEhU
TUxUb2tlbml6ZXI6OnBhcnNlU3BlY2lhbChTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3Rh
dGUpCitIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZU5vbkhUTUxUZXh0
KFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKIHsKICAgICBBU1NFUlQoc3RhdGUu
aW5UZXh0QXJlYSgpIHx8IHN0YXRlLmluVGl0bGUoKSB8fCBzdGF0ZS5pbklGcmFtZSgpIHx8ICFz
dGF0ZS5oYXNFbnRpdHlTdGF0ZSgpKTsKICAgICBBU1NFUlQoIXN0YXRlLmhhc1RhZ1N0YXRlKCkp
OwpAQCAtMTQ3MSw2ICsxNDcxLDkgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXpl
cjo6cGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQogICAgICAgICAg
ICAgUmVmUHRyPE5vZGU+IG4gPSBwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgICAgIG1fY0J1ZmZl
clBvcyA9IGNCdWZmZXJQb3M7CiAgICAgICAgICAgICBpZiAobiB8fCBpblZpZXdTb3VyY2VNb2Rl
KCkpIHsKKyAgICAgICAgICAgICAgICBTdGF0ZSBzYXZlZFN0YXRlID0gc3RhdGU7CisgICAgICAg
ICAgICAgICAgU2VnbWVudGVkU3RyaW5nIHNhdmVkU3JjID0gc3JjOworICAgICAgICAgICAgICAg
IGxvbmcgc2F2ZWRMaW5lbm8gPSBtX2xpbmVOdW1iZXI7CiAgICAgICAgICAgICAgICAgaWYgKCh0
YWdOYW1lID09IHByZVRhZyB8fCB0YWdOYW1lID09IGxpc3RpbmdUYWcpICYmICFpblZpZXdTb3Vy
Y2VNb2RlKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJlZ2luVGFnKQogICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGUuc2V0RGlzY2FyZExGKHRydWUpOyAvLyBEaXNjYXJkIHRoZSBm
aXJzdCBMRiBhZnRlciB3ZSBvcGVuIGEgcHJlLgpAQCAtMTQ4Myw3ICsxNDg2LDcgQEAgSFRNTFRv
a2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nJiBz
cmMsIFN0YXRlIHN0YXRlKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVy
ID0gc2NyaXB0RW5kOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyTGVu
Z3RoID0gODsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluU2NyaXB0KHRydWUp
OwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3Jj
LCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTZWxmQ2xvc2luZ1Nj
cmlwdCkgeyAvLyBIYW5kbGUgPHNjcmlwdCBzcmM9ImZvbyIvPgogICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhdGUuc2V0SW5TY3JpcHQodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0ZSA9IHNjcmlwdEhhbmRsZXIoc3RhdGUpOwpAQCAtMTQ5Myw1MyArMTQ5Niw1MCBAQCBIVE1M
VG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcm
IHNyYywgU3RhdGUgc3RhdGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3Bw
ZXIgPSBzdHlsZUVuZDsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoU3RvcHBlckxl
bmd0aCA9IDc7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJblN0eWxlKHRydWUp
OwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3Jj
LCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKHRhZ05hbWUgPT0gdGV4dGFyZWFUYWcpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJl
Z2luVGFnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXIgPSB0ZXh0
YXJlYUVuZDsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoU3RvcHBlckxlbmd0aCA9
IDEwOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5UZXh0QXJlYSh0cnVlKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUp
OworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZU5vbkhUTUxUZXh0KHNyYywg
c3RhdGUpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlm
ICh0YWdOYW1lID09IHRpdGxlVGFnKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChiZWdpblRh
ZykgewogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0gdGl0bGVFbmQ7
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXJMZW5ndGggPSA3OwotICAg
ICAgICAgICAgICAgICAgICAgICAgU3RhdGUgc2F2ZWRTdGF0ZSA9IHN0YXRlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgU2VnbWVudGVkU3RyaW5nIHNhdmVkU3JjID0gc3JjOwotICAgICAgICAg
ICAgICAgICAgICAgICAgbG9uZyBzYXZlZExpbmVubyA9IG1fbGluZU51bWJlcjsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRlLnNldEluVGl0bGUodHJ1ZSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lhbChzcmMsIHN0YXRlKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChzdGF0ZS5pblRpdGxlKCkgJiYgc3JjLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGp1c3QgYXRlIHRoZSByZXN0IG9mIHRoZSBkb2N1
bWVudCBhcyB0aGUgdGl0bGUgI3RleHQgbm9kZSEKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBSZXNldCB0aGUgc3RhdGUgdGhlbiByZXRva2VuaXplIHdpdGhvdXQgc3BlY2lhbCB0aXRs
ZSBoYW5kbGluZy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZXQgdGhlIHBhcnNl
ciBjbGVhbiB1cCB0aGUgbWlzc2luZyA8L3RpdGxlPiB0YWcuCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgaW5jb3JyZWN0LCBiZWNhdXNlIHNyYy5pc0VtcHR5
KCkgZG9lc24ndCBtZWFuIHdlJ3JlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXQg
dGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgdW5sZXNzIG1fbm9Nb3JlRGF0YSBpcyBhbHNvIHRydWUu
IFdlIG5lZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBkZXRlY3QgdGhpcyBj
YXNlIGVsc2V3aGVyZSwgYW5kIHNhdmUgdGhlIHN0YXRlIHNvbWV3aGVyZSBvdGhlcgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYW4gYSBsb2NhbCB2YXJpYWJsZS4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHNhdmVkU3RhdGU7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3JjID0gc2F2ZWRTcmM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9saW5lTnVtYmVyID0gc2F2ZWRMaW5lbm87Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9zY3JpcHRDb2RlU2l6ZSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7CiAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUg
PT0geG1wVGFnKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChiZWdpblRhZykgewogICAgICAg
ICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0geG1wRW5kOwogICAgICAgICAgICAg
ICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyTGVuZ3RoID0gNTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlLnNldEluWG1wKHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUgPT0gaWZyYW1lVGFnKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChiZWdpblRhZykgewogICAgICAgICAgICAgICAgICAgICAg
ICAgbV9zZWFyY2hTdG9wcGVyID0gaWZyYW1lRW5kOwogICAgICAgICAgICAgICAgICAgICAgICAg
bV9zZWFyY2hTdG9wcGVyTGVuZ3RoID0gODsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRl
LnNldEluSUZyYW1lKHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJz
ZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBh
cnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHNyYy5pc0VtcHR5KCkgJiYgc3RhdGUu
aW5BbnlOb25IVE1MVGV4dCgpICYmICEoc3RhdGUuaW5TY3JpcHQoKSAmJiBtX2N1cnJlbnRTY3Jp
cHRUYWdTdGFydExpbmVOdW1iZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGp1c3Qg
YXRlIHRoZSByZXN0IG9mIHRoZSBkb2N1bWVudCBhcyB0aGUgI3RleHQgbm9kZSB1bmRlciB0aGUg
c3BlY2lhbCB0YWchCisgICAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBzdGF0ZSB0aGVu
IHJldG9rZW5pemUgd2l0aG91dCBzcGVjaWFsIGhhbmRsaW5nLgorICAgICAgICAgICAgICAgICAg
ICAvLyBMZXQgdGhlIHBhcnNlciBjbGVhbiB1cCB0aGUgbWlzc2luZyBjbG9zZSB0YWcuCisgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGluY29ycmVjdCwgYmVjYXVzZSBzcmMu
aXNFbXB0eSgpIGRvZXNuJ3QgbWVhbiB3ZSdyZQorICAgICAgICAgICAgICAgICAgICAvLyBhdCB0
aGUgZW5kIG9mIHRoZSBkb2N1bWVudCB1bmxlc3MgbV9ub01vcmVEYXRhIGlzIGFsc28gdHJ1ZS4g
V2UgbmVlZAorICAgICAgICAgICAgICAgICAgICAvLyB0byBkZXRlY3QgdGhpcyBjYXNlIGVsc2V3
aGVyZSwgYW5kIHNhdmUgdGhlIHN0YXRlIHNvbWV3aGVyZSBvdGhlcgorICAgICAgICAgICAgICAg
ICAgICAvLyB0aGFuIGEgbG9jYWwgdmFyaWFibGUuCisgICAgICAgICAgICAgICAgICAgIHN0YXRl
ID0gc2F2ZWRTdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgc3JjID0gc2F2ZWRTcmM7CisgICAg
ICAgICAgICAgICAgICAgIG1fbGluZU51bWJlciA9IHNhdmVkTGluZW5vOworICAgICAgICAgICAg
ICAgICAgICBtX3NjcmlwdENvZGVTaXplID0gMDsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBpZiAodGFnTmFtZSA9PSBwbGFpbnRleHRUYWcpCiAgICAgICAg
ICAgICAgICAgc3RhdGUuc2V0SW5QbGFpblRleHQoYmVnaW5UYWcpOwpAQCAtMTY1NSw4ICsxNjU1
LDggQEAgdm9pZCBIVE1MVG9rZW5pemVyOjp3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHN0
ciwgYm9vbCBhcHBlbmREYXRhKQogICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VFbnRpdHko
bV9zcmMsIG1fZGVzdCwgc3RhdGUsIG1fY0J1ZmZlclBvcywgZmFsc2UsIHN0YXRlLmhhc1RhZ1N0
YXRlKCkpOwogICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaW5QbGFpblRleHQoKSkKICAgICAg
ICAgICAgICAgICBzdGF0ZSA9IHBhcnNlVGV4dChtX3NyYywgc3RhdGUpOwotICAgICAgICAgICAg
ZWxzZSBpZiAoc3RhdGUuaW5BbnlTcGVjaWFsKCkpCi0gICAgICAgICAgICAgICAgc3RhdGUgPSBw
YXJzZVNwZWNpYWwobV9zcmMsIHN0YXRlKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmlu
QW55Tm9uSFRNTFRleHQoKSkKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRNTFRl
eHQobV9zcmMsIHN0YXRlKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmluQ29tbWVudCgp
KQogICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VDb21tZW50KG1fc3JjLCBzdGF0ZSk7CiAg
ICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pbkRvY3R5cGUoKSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MVG9rZW5pemVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oCmlu
ZGV4IDI4OTY5NzQuLjY2MTJhZjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5p
emVyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuaApAQCAtMTczLDcgKzE3Myw3
IEBAIHByaXZhdGU6CiAgICAgU3RhdGUgcGFyc2VEb2N0eXBlKFNlZ21lbnRlZFN0cmluZyYsIFN0
YXRlKTsKICAgICBTdGF0ZSBwYXJzZVNlcnZlcihTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAg
ICAgU3RhdGUgcGFyc2VUZXh0KFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKLSAgICBTdGF0ZSBw
YXJzZVNwZWNpYWwoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOworICAgIFN0YXRlIHBhcnNlTm9u
SFRNTFRleHQoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwogICAgIFN0YXRlIHBhcnNlVGFnKFNl
Z21lbnRlZFN0cmluZyYsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJzZUVudGl0eShTZWdtZW50ZWRT
dHJpbmcmLCBVQ2hhciomIGRlc3QsIFN0YXRlLCB1bnNpZ25lZCYgY0J1ZmZlclBvcywgYm9vbCBz
dGFydCwgYm9vbCBwYXJzaW5nVGFnKTsKICAgICBTdGF0ZSBwYXJzZVByb2Nlc3NpbmdJbnN0cnVj
dGlvbihTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CkBAIC0yODgsNyArMjg4LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgYm9vbCBmb3JjZVN5bmNocm9ub3VzKCkgY29uc3QgeyByZXR1cm4gdGVzdEJp
dChGb3JjZVN5bmNocm9ub3VzKTsgfQogICAgICAgICB2b2lkIHNldEZvcmNlU3luY2hyb25vdXMo
Ym9vbCB2KSB7IHNldEJpdChGb3JjZVN5bmNocm9ub3VzLCB2KTsgfQogCi0gICAgICAgIGJvb2wg
aW5BbnlTcGVjaWFsKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgKEluU2NyaXB0IHwgSW5TdHls
ZSB8IEluWG1wIHwgSW5UZXh0QXJlYSB8IEluVGl0bGUgfCBJbklGcmFtZSk7IH0KKyAgICAgICAg
Ym9vbCBpbkFueU5vbkhUTUxUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgKEluU2NyaXB0
IHwgSW5TdHlsZSB8IEluWG1wIHwgSW5UZXh0QXJlYSB8IEluVGl0bGUgfCBJbklGcmFtZSk7IH0K
ICAgICAgICAgYm9vbCBoYXNUYWdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIFRhZ01h
c2s7IH0KICAgICAgICAgYm9vbCBoYXNFbnRpdHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0
cyAmIEVudGl0eU1hc2s7IH0KIAo=
</data>
<flag name="review"
          id="15055"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30856</attachid>
            <date>2009-06-01 22:55:18 -0700</date>
            <delta_ts>2009-06-04 00:21:06 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>patch-v3.patch</filename>
            <type>text/plain</type>
            <size>16117</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ODY0YWRjYzUwOWRjZDQzOWI4NGEyMGMyNWQ1YWRmZGRkZTg4MTk1ZgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE5YjAwMTku
LjUxY2M1NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAwOS0wNi0wMSAgU2hpbmljaGlybyBI
YW1hamkgIDxoYW1hamlAZGhjcC0xNzItMzAtMTgtMTc4LnRvay5jb3JwLmdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NTEyCisgICAgICAgIEhhbmRsZSB0ZXh0
cyBhZnRlciB1bmZpbmlzaGVkIHNwZWNpYWwgdGFncyAoaS5lLiwgc2NyaXB0LCBzdHlsZSwgdGV4
dGFyZWEsIHRpdGxlLCB4bXAsIGFuZCBpZnJhbWUpIGFzIHRoZSB0ZXh0IG5vZGUgdW5kZXIgdGhl
IHRhZ3MgaW4gdmlldy1zb3VyY2UgbW9kZS4gQmVmb3JlIHRoaXMgY2hhbmdlLCBhbGwgdGV4dHMg
aW4gdW5maW5pc2hlZCBzcGVjaWFsIHRhZ3MgY2Fubm90IGJlIHNlZW4gZXZlbiBpbiB2aWV3LXNv
dXJjZSBtb2RlLgorCisgICAgICAgIFRoaXMgd2FzIGFscmVhZHkgZG9uZSBvbmx5IGZvciB0aXRs
ZS4gVGhpcyBjaGFuZ2UgYWxsb3dzIG90aGVyIHNwZWNpYWwgdGFncyB0byBiZSBoYW5kbGVkIGFz
IHdlbGwuCisKKyAgICAgICAgVGhlIHRlc3QgY2FzZSB2ZXJpZmllcyBpZiB0aGUgdGV4dHMgaW4g
dGhlIHVuZmluaXNoZWQgc3BlY2lhbCB0YWdzIGFyZSB2aXNpYmxlIGluIHZpZXctc291cmNlIG1v
ZGUuIEFsc28sIGZpeGVkIHdpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctKiB0ZXN0cyBzbyB0
aGF0IHRoZXkgZG9uJ3QgdXNlIHVuZmluaXNoZWQgaWZyYW1lIGFueW1vcmUuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1q
cy1vYmplY3Qtd2l0aC10b1N0cmluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20v
V2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2JqZWN0LXdp
dGgtdG9TdHJpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2lu
ZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLXN0
cmluZy5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL3Jlc291cmNlcy92aWV3c291cmNlLWZy
YW1lLXVuZmluaXNoZWQtc2NyaXB0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZnJhbWVz
L3Jlc291cmNlcy92aWV3c291cmNlLWZyYW1lLXVuZmluaXNoZWQtdGV4dGFyZWEuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmlu
aXNoZWQtdGFncy5odG1sOiBBZGRlZC4KKwogMjAwOS0wNi0wMSAgRHJldyBXaWxzb24gIDxhdHdp
bHNvbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLiAgTGFu
ZGVkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10
b1N0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRp
b24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10b1N0cmluZy1l
eHBlY3RlZC50eHQKaW5kZXggOWM2MmFjMC4uMTE4OTE3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmct
anMtb2JqZWN0LXdpdGgtdG9TdHJpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9i
amVjdC13aXRoLXRvU3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDUgQEAKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogUEFTUyByZXN1bHQgaXMg
J3Bhc3MuaHRtbCcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xv
Y2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJp
bmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hh
ZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLmh0bWwKaW5kZXggYzc4
YjI3My4uMjE5N2IxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xv
Y2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJp
bmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93
LXNoYWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10b1N0cmluZy5odG1sCkBAIC0y
Miw3ICsyMiw3IEBACiAKICAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+
Ci08aWZyYW1lIG9ubG9hZD0iZnJhbWVMb2FkZWQoKSIgc3JjPSJyZXNvdXJjZXMvd2luZG93LXNo
YWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10b1N0cmluZy1pZnJhbWUuaHRtbCI+
Cis8aWZyYW1lIG9ubG9hZD0iZnJhbWVMb2FkZWQoKSIgc3JjPSJyZXNvdXJjZXMvd2luZG93LXNo
YWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10b1N0cmluZy1pZnJhbWUuaHRtbCI+
PC9pZnJhbWU+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xv
Y2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0
aW9uLXVzaW5nLXN0cmluZy1leHBlY3RlZC50eHQKaW5kZXggOWM2MmFjMC4uMTE4OTE3ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFk
b3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJp
bmctZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiBQQVNTIHJlc3VsdCBpcyAncGFzcy5odG1sJwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNo
YWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLXN0cmluZy5odG1sCmlu
ZGV4IDQwZGNmMTkuLmE1ZjA1MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLXN0cmluZy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxv
Y2F0aW9uLXVzaW5nLXN0cmluZy5odG1sCkBAIC0yMiw3ICsyMiw3IEBACiAKICAgICBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08aWZyYW1lIG9ubG9hZD0iZnJhbWVMb2Fk
ZWQoKSIgc3JjPSJyZXNvdXJjZXMvd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmct
aWZyYW1lLmh0bWwiPgorPGlmcmFtZSBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiIHNyYz0icmVzb3Vy
Y2VzL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLWlmcmFtZS5odG1sIj48L2lm
cmFtZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMv
dmlld3NvdXJjZS1mcmFtZS11bmZpbmlzaGVkLXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvcmVzb3VyY2VzL3ZpZXdzb3VyY2UtZnJhbWUtdW5maW5pc2hlZC1zY3JpcHQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWVhZDc5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzb3VyY2VzL3ZpZXdzb3VyY2UtZnJh
bWUtdW5maW5pc2hlZC1zY3JpcHQuaHRtbApAQCAtMCwwICsxIEBACis8c2NyaXB0PmZvb2JhciBp
biBzY3JpcHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNlcy92
aWV3c291cmNlLWZyYW1lLXVuZmluaXNoZWQtdGV4dGFyZWEuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL3Jlc291cmNlcy92aWV3c291cmNlLWZyYW1lLXVuZmluaXNoZWQtdGV4dGFyZWEu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzFmM2ZhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzb3VyY2VzL3ZpZXdzb3VyY2Ut
ZnJhbWUtdW5maW5pc2hlZC10ZXh0YXJlYS5odG1sCkBAIC0wLDAgKzEgQEAKKzx0ZXh0YXJlYT5m
b29iYXIgaW4gdGV4dGFyZWEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Zp
ZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGUxODBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorc2NyaXB0OiBQQVNTCit0ZXh0YXJlYTogUEFTUworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmluaXNoZWQtdGFn
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRh
Z3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmM3NTk3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlz
aGVkLXRhZ3MuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4K
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIHZhciByZXN1bHRzID0ge307CisgICAgZnVu
Y3Rpb24gcmVwb3J0KGZyYW1lLCB0YWcpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGZyYW1lLmNv
bnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MOworICAgICAgICB2YXIgcmVn
ZXggPSBuZXcgUmVnRXhwKCJmb29iYXIiLCAiZyIpOworICAgICAgICBtYXRjaGVzID0gcmVzdWx0
Lm1hdGNoKHJlZ2V4KTsKKworICAgICAgICBpZiAobWF0Y2hlcykKKyAgICAgICAgICAgIHZhciBy
ZXN1bHRUZXh0ID0gIlBBU1MiOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YXIgcmVzdWx0
VGV4dCA9ICJGQUlMIjsKKworICAgICAgICByZXN1bHRzW3RhZ10gPSByZXN1bHRUZXh0OworICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHJlc3VsdHNbInNjcmlwdCJd
ICYmIHJlc3VsdHNbInRleHRhcmVhIl0pIHsKKyAgICAgICAgICAgIGRvY3VtZW50Lm9wZW4oKTsK
KyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCJzY3JpcHQ6ICIgKyByZXN1bHRzWyJzY3JpcHQi
XSArICI8YnI+Iik7CisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgidGV4dGFyZWE6ICIgKyBy
ZXN1bHRzWyJ0ZXh0YXJlYSJdICsgIjxicj4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmNsb3Nl
KCk7CisKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRhZyAr
ICJfcmVzdWx0IikudGV4dENvbnRlbnQgPSByZXN1bHRUZXh0OworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPllvdSBzaG91bGQgc2VlIGEgZnJhbWUgaW4g
J3ZpZXcgc291cmNlJyBtb2RlIGJlbG93LjwvcD4KKzxwPiJmb29iYXIiIHNob3VsZCBiZSBzZWVu
IGFmdGVyIHRoZSAmbHQ7c2NyaXB0Jmd0OyB0YWcgYW5kICZsdDt0ZXh0YXJlYSZndDsgdGFnLjwv
cD4KKzxocj4KKzxpZnJhbWUgdmlld3NvdXJjZSBzcmM9InJlc291cmNlcy92aWV3c291cmNlLWZy
YW1lLXVuZmluaXNoZWQtc2NyaXB0Lmh0bWwiIGhlaWdodD0iMjUwIiBvbmxvYWQ9InJlcG9ydCh0
aGlzLCAnc2NyaXB0JykiPjwvaWZyYW1lPgorPGlmcmFtZSB2aWV3c291cmNlIHNyYz0icmVzb3Vy
Y2VzL3ZpZXdzb3VyY2UtZnJhbWUtdW5maW5pc2hlZC10ZXh0YXJlYS5odG1sIiBoZWlnaHQ9IjI1
MCIgb25sb2FkPSJyZXBvcnQodGhpcywgJ3RleHRhcmVhJykiPjwvaWZyYW1lPgorPGhyPgorPGRp
diBpZD0icmVzdWx0Ij4KKzxkaXYgaWQ9InNjcmlwdF9yZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0i
dGV4dGFyZWFfcmVzdWx0Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNDg5OGRm
Li43MGU4MjQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDA5LTA2LTAxICBTaGluaWNoaXJvIEhhbWFqaSAg
PGhhbWFqaUBkaGNwLTE3Mi0zMC0xOC0xNzgudG9rLmNvcnAuZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MTIKKyAgICAgICAgSGFuZGxlIHRleHRzIGFmdGVy
IHVuZmluaXNoZWQgc3BlY2lhbCB0YWdzIChpLmUuLCBzY3JpcHQsIHN0eWxlLCB0ZXh0YXJlYSwg
dGl0bGUsIHhtcCwgYW5kIGlmcmFtZSkgYXMgdGhlIHRleHQgbm9kZSB1bmRlciB0aGUgdGFncyBp
biB2aWV3LXNvdXJjZSBtb2RlLiBCZWZvcmUgdGhpcyBjaGFuZ2UsIGFsbCB0ZXh0cyBpbiB1bmZp
bmlzaGVkIHNwZWNpYWwgdGFncyBjYW5ub3QgYmUgc2VlbiBldmVuIGluIHZpZXctc291cmNlIG1v
ZGUuCisKKyAgICAgICAgVGhpcyB3YXMgYWxyZWFkeSBkb25lIG9ubHkgZm9yIHRpdGxlLiBUaGlz
IGNoYW5nZSBhbGxvd3Mgb3RoZXIgc3BlY2lhbCB0YWdzIHRvIGJlIGhhbmRsZWQgYXMgd2VsbC4K
KworICAgICAgICBUZXN0OiBmYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmluaXNoZWQtdGFncy5o
dG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRva2VuaXplcjo6cGFyc2VOb25IVE1MVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVG9rZW5pemVyOjpwYXJzZVRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVy
Ojp3cml0ZSk6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVG9rZW5pemVyOjpTdGF0ZTo6aW5BbnlOb25IVE1MVGV4dCk6CisKIDIwMDktMDYt
MDEgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4gIExhbmRlZCAoYW5kIHR3ZWFrZWQpIGJ5IEFkYW0gQmFydGguCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAgYi9XZWJDb3JlL2h0bWwv
SFRNTFRva2VuaXplci5jcHAKaW5kZXggMzQxZWVjYy4uM2Y1MGU0ZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5p
emVyLmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tl
bml6ZXI6OnByb2Nlc3NMaXN0aW5nKFNlZ21lbnRlZFN0cmluZyBsaXN0LCBTdGF0ZSBzCiAgICAg
cmV0dXJuIHN0YXRlOwogfQogCi1IVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpw
YXJzZVNwZWNpYWwoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQorSFRNTFRva2Vu
aXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VOb25IVE1MVGV4dChTZWdtZW50ZWRTdHJp
bmcmIHNyYywgU3RhdGUgc3RhdGUpCiB7CiAgICAgQVNTRVJUKHN0YXRlLmluVGV4dEFyZWEoKSB8
fCBzdGF0ZS5pblRpdGxlKCkgfHwgc3RhdGUuaW5JRnJhbWUoKSB8fCAhc3RhdGUuaGFzRW50aXR5
U3RhdGUoKSk7CiAgICAgQVNTRVJUKCFzdGF0ZS5oYXNUYWdTdGF0ZSgpKTsKQEAgLTE0NzcsNiAr
MTQ3Nyw5IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlVGFnKFNl
Z21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKICAgICAgICAgICAgIFJlZlB0cjxOb2Rl
PiBuID0gcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgICAgICBtX2NCdWZmZXJQb3MgPSBjQnVmZmVy
UG9zOwogICAgICAgICAgICAgaWYgKG4gfHwgaW5WaWV3U291cmNlTW9kZSgpKSB7CisgICAgICAg
ICAgICAgICAgU3RhdGUgc2F2ZWRTdGF0ZSA9IHN0YXRlOworICAgICAgICAgICAgICAgIFNlZ21l
bnRlZFN0cmluZyBzYXZlZFNyYyA9IHNyYzsKKyAgICAgICAgICAgICAgICBsb25nIHNhdmVkTGlu
ZW5vID0gbV9saW5lTnVtYmVyOwogICAgICAgICAgICAgICAgIGlmICgodGFnTmFtZSA9PSBwcmVU
YWcgfHwgdGFnTmFtZSA9PSBsaXN0aW5nVGFnKSAmJiAhaW5WaWV3U291cmNlTW9kZSgpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChiZWdpblRhZykKICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRlLnNldERpc2NhcmRMRih0cnVlKTsgLy8gRGlzY2FyZCB0aGUgZmlyc3QgTEYgYWZ0ZXIg
d2Ugb3BlbiBhIHByZS4KQEAgLTE0ODksNyArMTQ5Miw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRl
IEhUTUxUb2tlbml6ZXI6OnBhcnNlVGFnKFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0
ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoU3RvcHBlciA9IHNjcmlwdEVuZDsK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoU3RvcHBlckxlbmd0aCA9IDg7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJblNjcmlwdCh0cnVlKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZU5vbkhUTUxUZXh0KHNyYywgc3RhdGUpOwogICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzU2VsZkNsb3NpbmdTY3JpcHQpIHsgLy8gSGFu
ZGxlIDxzY3JpcHQgc3JjPSJmb28iLz4KICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNl
dEluU2NyaXB0KHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBzY3JpcHRI
YW5kbGVyKHN0YXRlKTsKQEAgLTE0OTksNTMgKzE1MDIsNTAgQEAgSFRNTFRva2VuaXplcjo6U3Rh
dGUgSFRNTFRva2VuaXplcjo6cGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0
YXRlKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0gc3R5bGVFbmQ7
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXJMZW5ndGggPSA3OwogICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5TdHlsZSh0cnVlKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZU5vbkhUTUxUZXh0KHNyYywgc3RhdGUpOwogICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0YWdOYW1lID09
IHRleHRhcmVhVGFnKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChiZWdpblRhZykgewogICAg
ICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0gdGV4dGFyZWFFbmQ7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXJMZW5ndGggPSAxMDsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRlLnNldEluVGV4dEFyZWEodHJ1ZSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lhbChzcmMsIHN0YXRlKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VOb25IVE1MVGV4dChzcmMsIHN0YXRlKTsKICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFnTmFtZSA9PSB0
aXRsZVRhZykgewogICAgICAgICAgICAgICAgICAgICBpZiAoYmVnaW5UYWcpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fc2VhcmNoU3RvcHBlciA9IHRpdGxlRW5kOwogICAgICAgICAgICAg
ICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyTGVuZ3RoID0gNzsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFN0YXRlIHNhdmVkU3RhdGUgPSBzdGF0ZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IFNlZ21lbnRlZFN0cmluZyBzYXZlZFNyYyA9IHNyYzsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGxvbmcgc2F2ZWRMaW5lbm8gPSBtX2xpbmVOdW1iZXI7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0ZS5zZXRJblRpdGxlKHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUg
PSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
c3RhdGUuaW5UaXRsZSgpICYmIHNyYy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBXZSBqdXN0IGF0ZSB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQgYXMgdGhlIHRp
dGxlICN0ZXh0IG5vZGUhCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhl
IHN0YXRlIHRoZW4gcmV0b2tlbml6ZSB3aXRob3V0IHNwZWNpYWwgdGl0bGUgaGFuZGxpbmcuCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGV0IHRoZSBwYXJzZXIgY2xlYW4gdXAgdGhl
IG1pc3NpbmcgPC90aXRsZT4gdGFnLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGluY29ycmVjdCwgYmVjYXVzZSBzcmMuaXNFbXB0eSgpIGRvZXNuJ3QgbWVh
biB3ZSdyZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhl
IGRvY3VtZW50IHVubGVzcyBtX25vTW9yZURhdGEgaXMgYWxzbyB0cnVlLiBXZSBuZWVkCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gZGV0ZWN0IHRoaXMgY2FzZSBlbHNld2hlcmUs
IGFuZCBzYXZlIHRoZSBzdGF0ZSBzb21ld2hlcmUgb3RoZXIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyB0aGFuIGEgbG9jYWwgdmFyaWFibGUuCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhdGUgPSBzYXZlZFN0YXRlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNy
YyA9IHNhdmVkU3JjOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGluZU51bWJlciA9
IHNhdmVkTGluZW5vOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2NyaXB0Q29kZVNp
emUgPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdGUgPSBwYXJzZU5vbkhUTUxUZXh0KHNyYywgc3RhdGUpOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0YWdOYW1lID09IHhtcFRhZykgewog
ICAgICAgICAgICAgICAgICAgICBpZiAoYmVnaW5UYWcpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fc2VhcmNoU3RvcHBlciA9IHhtcEVuZDsKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
c2VhcmNoU3RvcHBlckxlbmd0aCA9IDU7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5z
ZXRJblhtcCh0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVj
aWFsKHNyYywgc3RhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZU5v
bkhUTUxUZXh0KHNyYywgc3RhdGUpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmICh0YWdOYW1lID09IGlmcmFtZVRhZykgewogICAgICAgICAgICAgICAg
ICAgICBpZiAoYmVnaW5UYWcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoU3Rv
cHBlciA9IGlmcmFtZUVuZDsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoU3RvcHBl
ckxlbmd0aCA9IDg7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJbklGcmFtZSh0
cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywg
c3RhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZU5vbkhUTUxUZXh0
KHNyYywgc3RhdGUpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGlmIChzcmMuaXNFbXB0eSgpICYmIChzdGF0ZS5pblRpdGxlKCkgfHwg
aW5WaWV3U291cmNlTW9kZSgpKSAmJiAhc3RhdGUuaW5Db21tZW50KCkgJiYgIShzdGF0ZS5pblNj
cmlwdCgpICYmIG1fY3VycmVudFNjcmlwdFRhZ1N0YXJ0TGluZU51bWJlcikpIHsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gV2UganVzdCBhdGUgdGhlIHJlc3Qgb2YgdGhlIGRvY3VtZW50IGFzIHRo
ZSAjdGV4dCBub2RlIHVuZGVyIHRoZSBzcGVjaWFsIHRhZyEKKyAgICAgICAgICAgICAgICAgICAg
Ly8gUmVzZXQgdGhlIHN0YXRlIHRoZW4gcmV0b2tlbml6ZSB3aXRob3V0IHNwZWNpYWwgaGFuZGxp
bmcuCisgICAgICAgICAgICAgICAgICAgIC8vIExldCB0aGUgcGFyc2VyIGNsZWFuIHVwIHRoZSBt
aXNzaW5nIGNsb3NlIHRhZy4KKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMg
aW5jb3JyZWN0LCBiZWNhdXNlIHNyYy5pc0VtcHR5KCkgZG9lc24ndCBtZWFuIHdlJ3JlCisgICAg
ICAgICAgICAgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50IHVubGVzcyBtX25v
TW9yZURhdGEgaXMgYWxzbyB0cnVlLiBXZSBuZWVkCisgICAgICAgICAgICAgICAgICAgIC8vIHRv
IGRldGVjdCB0aGlzIGNhc2UgZWxzZXdoZXJlLCBhbmQgc2F2ZSB0aGUgc3RhdGUgc29tZXdoZXJl
IG90aGVyCisgICAgICAgICAgICAgICAgICAgIC8vIHRoYW4gYSBsb2NhbCB2YXJpYWJsZS4KKyAg
ICAgICAgICAgICAgICAgICAgc3RhdGUgPSBzYXZlZFN0YXRlOworICAgICAgICAgICAgICAgICAg
ICBzcmMgPSBzYXZlZFNyYzsKKyAgICAgICAgICAgICAgICAgICAgbV9saW5lTnVtYmVyID0gc2F2
ZWRMaW5lbm87CisgICAgICAgICAgICAgICAgICAgIG1fc2NyaXB0Q29kZVNpemUgPSAwOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICh0YWdOYW1lID09
IHBsYWludGV4dFRhZykKICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJblBsYWluVGV4dChiZWdp
blRhZyk7CkBAIC0xNjYxLDggKzE2NjEsOCBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6OndyaXRlKGNv
bnN0IFNlZ21lbnRlZFN0cmluZyYgc3RyLCBib29sIGFwcGVuZERhdGEpCiAgICAgICAgICAgICAg
ICAgc3RhdGUgPSBwYXJzZUVudGl0eShtX3NyYywgbV9kZXN0LCBzdGF0ZSwgbV9jQnVmZmVyUG9z
LCBmYWxzZSwgc3RhdGUuaGFzVGFnU3RhdGUoKSk7CiAgICAgICAgICAgICBlbHNlIGlmIChzdGF0
ZS5pblBsYWluVGV4dCgpKQogICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VUZXh0KG1fc3Jj
LCBzdGF0ZSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pbkFueVNwZWNpYWwoKSkKLSAg
ICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lhbChtX3NyYywgc3RhdGUpOworICAgICAg
ICAgICAgZWxzZSBpZiAoc3RhdGUuaW5BbnlOb25IVE1MVGV4dCgpKQorICAgICAgICAgICAgICAg
IHN0YXRlID0gcGFyc2VOb25IVE1MVGV4dChtX3NyYywgc3RhdGUpOwogICAgICAgICAgICAgZWxz
ZSBpZiAoc3RhdGUuaW5Db21tZW50KCkpCiAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZUNv
bW1lbnQobV9zcmMsIHN0YXRlKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmluRG9jdHlw
ZSgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuaCBiL1dlYkNvcmUv
aHRtbC9IVE1MVG9rZW5pemVyLmgKaW5kZXggMjg5Njk3NC4uNjYxMmFmOCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRva2Vu
aXplci5oCkBAIC0xNzMsNyArMTczLDcgQEAgcHJpdmF0ZToKICAgICBTdGF0ZSBwYXJzZURvY3R5
cGUoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwogICAgIFN0YXRlIHBhcnNlU2VydmVyKFNlZ21l
bnRlZFN0cmluZyYsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJzZVRleHQoU2VnbWVudGVkU3RyaW5n
JiwgU3RhdGUpOwotICAgIFN0YXRlIHBhcnNlU3BlY2lhbChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0
ZSk7CisgICAgU3RhdGUgcGFyc2VOb25IVE1MVGV4dChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7
CiAgICAgU3RhdGUgcGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwogICAgIFN0YXRl
IHBhcnNlRW50aXR5KFNlZ21lbnRlZFN0cmluZyYsIFVDaGFyKiYgZGVzdCwgU3RhdGUsIHVuc2ln
bmVkJiBjQnVmZmVyUG9zLCBib29sIHN0YXJ0LCBib29sIHBhcnNpbmdUYWcpOwogICAgIFN0YXRl
IHBhcnNlUHJvY2Vzc2luZ0luc3RydWN0aW9uKFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKQEAg
LTI4OCw3ICsyODgsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIGZvcmNlU3luY2hyb25vdXMo
KSBjb25zdCB7IHJldHVybiB0ZXN0Qml0KEZvcmNlU3luY2hyb25vdXMpOyB9CiAgICAgICAgIHZv
aWQgc2V0Rm9yY2VTeW5jaHJvbm91cyhib29sIHYpIHsgc2V0Qml0KEZvcmNlU3luY2hyb25vdXMs
IHYpOyB9CiAKLSAgICAgICAgYm9vbCBpbkFueVNwZWNpYWwoKSBjb25zdCB7IHJldHVybiBtX2Jp
dHMgJiAoSW5TY3JpcHQgfCBJblN0eWxlIHwgSW5YbXAgfCBJblRleHRBcmVhIHwgSW5UaXRsZSB8
IEluSUZyYW1lKTsgfQorICAgICAgICBib29sIGluQW55Tm9uSFRNTFRleHQoKSBjb25zdCB7IHJl
dHVybiBtX2JpdHMgJiAoSW5TY3JpcHQgfCBJblN0eWxlIHwgSW5YbXAgfCBJblRleHRBcmVhIHwg
SW5UaXRsZSB8IEluSUZyYW1lKTsgfQogICAgICAgICBib29sIGhhc1RhZ1N0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9iaXRzICYgVGFnTWFzazsgfQogICAgICAgICBib29sIGhhc0VudGl0eVN0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgRW50aXR5TWFzazsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30939</attachid>
            <date>2009-06-04 00:20:34 -0700</date>
            <delta_ts>2009-06-04 21:52:33 -0700</delta_ts>
            <desc>patch v4</desc>
            <filename>patch-v4.patch</filename>
            <type>text/plain</type>
            <size>16065</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">MzgyZjUzNWZjNzFkNTczMjBmNGJjZjE3OTBjMGNmMzgyZmIzYmNkZgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE5YjAwMTku
Ljg4ODU1NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAwOS0wNi0wMSAgU2hpbmljaGlybyBI
YW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTUxMgorICAgICAgICBIYW5kbGUgdGV4dHMgYWZ0ZXIgdW5maW5pc2hlZCBzcGVjaWFs
IHRhZ3MgKGkuZS4sIHNjcmlwdCwgc3R5bGUsIHRleHRhcmVhLCB0aXRsZSwgeG1wLCBhbmQgaWZy
YW1lKSBhcyB0aGUgdGV4dCBub2RlIHVuZGVyIHRoZSB0YWdzIGluIHZpZXctc291cmNlIG1vZGUu
IEJlZm9yZSB0aGlzIGNoYW5nZSwgYWxsIHRleHRzIGluIHVuZmluaXNoZWQgc3BlY2lhbCB0YWdz
IGNhbm5vdCBiZSBzZWVuIGV2ZW4gaW4gdmlldy1zb3VyY2UgbW9kZS4KKworICAgICAgICBUaGlz
IHdhcyBhbHJlYWR5IGRvbmUgb25seSBmb3IgdGl0bGUuIFRoaXMgY2hhbmdlIGFsbG93cyBvdGhl
ciBzcGVjaWFsIHRhZ3MgdG8gYmUgaGFuZGxlZCBhcyB3ZWxsLgorCisgICAgICAgIFRoZSB0ZXN0
IGNhc2UgdmVyaWZpZXMgaWYgdGhlIHRleHRzIGluIHRoZSB1bmZpbmlzaGVkIHNwZWNpYWwgdGFn
cyBhcmUgdmlzaWJsZSBpbiB2aWV3LXNvdXJjZSBtb2RlLiBBbHNvLCBmaXhlZCB3aW5kb3ctc2hh
ZG93LWxvY2F0aW9uLXVzaW5nLSogdGVzdHMgc28gdGhhdCB0aGV5IGRvbid0IHVzZSB1bmZpbmlz
aGVkIGlmcmFtZSBhbnltb3JlLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L0xvY2F0aW9u
L3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJpbmctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hh
ZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLmh0bWw6CisgICAgICAg
ICogZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmct
c3RyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24v
d2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2ZyYW1lcy9yZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFtZS11bmZpbmlzaGVkLXNjcmlwdC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9yZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFt
ZS11bmZpbmlzaGVkLXRleHRhcmVhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZnJhbWVz
L3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MuaHRtbDogQWRkZWQuCisK
IDIwMDktMDYtMDEgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4gIExhbmRlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ct
bG9jYXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24t
dXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJpbmctZXhwZWN0ZWQudHh0CmluZGV4IDljNjJhYzAu
LjExODkxN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlv
bi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2lu
ZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10b1N0cmluZy1leHBlY3Rl
ZC50eHQKQEAgLTEsMiArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKIFBBU1MgcmVzdWx0IGlzICdwYXNzLmh0bWwnCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0
aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmpl
Y3Qtd2l0aC10b1N0cmluZy5odG1sCmluZGV4IGM3OGIyNzMuLjIxOTdiMWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0
aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMt
b2JqZWN0LXdpdGgtdG9TdHJpbmcuaHRtbApAQCAtMjIsNyArMjIsNyBAQAogCiAgICAgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPGlmcmFtZSBvbmxvYWQ9ImZyYW1lTG9h
ZGVkKCkiIHNyYz0icmVzb3VyY2VzL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2Jq
ZWN0LXdpdGgtdG9TdHJpbmctaWZyYW1lLmh0bWwiPgorPGlmcmFtZSBvbmxvYWQ9ImZyYW1lTG9h
ZGVkKCkiIHNyYz0icmVzb3VyY2VzL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2Jq
ZWN0LXdpdGgtdG9TdHJpbmctaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgogPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgot
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0
aW9uLXVzaW5nLXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmctZXhwZWN0ZWQu
dHh0CmluZGV4IDljNjJhYzAuLjExODkxN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLXN0cmluZy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dp
bmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtMSwyICsx
LDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQog
UEFTUyByZXN1bHQgaXMgJ3Bhc3MuaHRtbCcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRv
dy1sb2NhdGlvbi11c2luZy1zdHJpbmcuaHRtbAppbmRleCA0MGRjZjE5Li5hNWYwNTE5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRv
dy1sb2NhdGlvbi11c2luZy1zdHJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmcuaHRtbApA
QCAtMjIsNyArMjIsNyBAQAogCiAgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2Ny
aXB0PgotPGlmcmFtZSBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiIHNyYz0icmVzb3VyY2VzL3dpbmRv
dy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLWlmcmFtZS5odG1sIj4KKzxpZnJhbWUgb25s
b2FkPSJmcmFtZUxvYWRlZCgpIiBzcmM9InJlc291cmNlcy93aW5kb3ctc2hhZG93LWxvY2F0aW9u
LXVzaW5nLXN0cmluZy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+Ci08L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzb3VyY2VzL3ZpZXdzb3VyY2UtZnJhbWUtdW5maW5pc2hl
ZC1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNlcy92aWV3c291
cmNlLWZyYW1lLXVuZmluaXNoZWQtc2NyaXB0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNGFlYWQ3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL3Jlc291cmNlcy92aWV3c291cmNlLWZyYW1lLXVuZmluaXNoZWQtc2NyaXB0Lmh0bWwK
QEAgLTAsMCArMSBAQAorPHNjcmlwdD5mb29iYXIgaW4gc2NyaXB0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFtZS11bmZpbmlzaGVk
LXRleHRhcmVhLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvdmlld3Nv
dXJjZS1mcmFtZS11bmZpbmlzaGVkLXRleHRhcmVhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOWMxZjNmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL3Jlc291cmNlcy92aWV3c291cmNlLWZyYW1lLXVuZmluaXNoZWQtdGV4dGFyZWEu
aHRtbApAQCAtMCwwICsxIEBACis8dGV4dGFyZWE+Zm9vYmFyIGluIHRleHRhcmVhCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmluaXNoZWQtdGFncy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy92aWV3c291cmNlLXVuZmluaXNo
ZWQtdGFncy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzRlMTgwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3ZpZXdz
b3VyY2UtdW5maW5pc2hlZC10YWdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK3Njcmlw
dDogUEFTUwordGV4dGFyZWE6IFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYWJjNzU5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLmh0bWwKQEAgLTAsMCArMSw0
NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisK
KyAgICB2YXIgcmVzdWx0cyA9IHt9OworICAgIGZ1bmN0aW9uIHJlcG9ydChmcmFtZSwgdGFnKSB7
CisgICAgICAgIHZhciByZXN1bHQgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LmlubmVySFRNTDsKKyAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgiZm9vYmFyIiwg
ImciKTsKKyAgICAgICAgbWF0Y2hlcyA9IHJlc3VsdC5tYXRjaChyZWdleCk7CisKKyAgICAgICAg
aWYgKG1hdGNoZXMpCisgICAgICAgICAgICB2YXIgcmVzdWx0VGV4dCA9ICJQQVNTIjsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdmFyIHJlc3VsdFRleHQgPSAiRkFJTCI7CisKKyAgICAgICAg
cmVzdWx0c1t0YWddID0gcmVzdWx0VGV4dDsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlciAmJiByZXN1bHRzWyJzY3JpcHQiXSAmJiByZXN1bHRzWyJ0ZXh0YXJlYSJdKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgICAgICAgICBkb2N1bWVudC53cml0
ZSgic2NyaXB0OiAiICsgcmVzdWx0c1sic2NyaXB0Il0gKyAiPGJyPiIpOworICAgICAgICAgICAg
ZG9jdW1lbnQud3JpdGUoInRleHRhcmVhOiAiICsgcmVzdWx0c1sidGV4dGFyZWEiXSArICI8YnI+
Iik7CisgICAgICAgICAgICBkb2N1bWVudC5jbG9zZSgpOworCisgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YWcgKyAiX3Jlc3VsdCIpLnRleHRDb250ZW50ID0g
cmVzdWx0VGV4dDsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIGZyYW1lIGluICd2aWV3IHNvdXJjZScgbW9kZSBiZWxvdy48
L3A+Cis8cD4iZm9vYmFyIiBzaG91bGQgYmUgc2VlbiBhZnRlciB0aGUgJmx0O3NjcmlwdCZndDsg
dGFnIGFuZCAmbHQ7dGV4dGFyZWEmZ3Q7IHRhZy48L3A+Cis8aHI+Cis8aWZyYW1lIHZpZXdzb3Vy
Y2Ugc3JjPSJyZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFtZS11bmZpbmlzaGVkLXNjcmlwdC5odG1s
IiBoZWlnaHQ9IjI1MCIgb25sb2FkPSJyZXBvcnQodGhpcywgJ3NjcmlwdCcpIj48L2lmcmFtZT4K
KzxpZnJhbWUgdmlld3NvdXJjZSBzcmM9InJlc291cmNlcy92aWV3c291cmNlLWZyYW1lLXVuZmlu
aXNoZWQtdGV4dGFyZWEuaHRtbCIgaGVpZ2h0PSIyNTAiIG9ubG9hZD0icmVwb3J0KHRoaXMsICd0
ZXh0YXJlYScpIj48L2lmcmFtZT4KKzxocj4KKzxkaXYgaWQ9InJlc3VsdCI+Cis8ZGl2IGlkPSJz
Y3JpcHRfcmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9InRleHRhcmVhX3Jlc3VsdCI+PC9kaXY+Cis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ4OThkZi4uNmVlYjc3NiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAwOS0wNi0wMSAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUxMgorICAgICAgICBIYW5kbGUgdGV4dHMg
YWZ0ZXIgdW5maW5pc2hlZCBzcGVjaWFsIHRhZ3MgKGkuZS4sIHNjcmlwdCwgc3R5bGUsIHRleHRh
cmVhLCB0aXRsZSwgeG1wLCBhbmQgaWZyYW1lKSBhcyB0aGUgdGV4dCBub2RlIHVuZGVyIHRoZSB0
YWdzIGluIHZpZXctc291cmNlIG1vZGUuIEJlZm9yZSB0aGlzIGNoYW5nZSwgYWxsIHRleHRzIGlu
IHVuZmluaXNoZWQgc3BlY2lhbCB0YWdzIGNhbm5vdCBiZSBzZWVuIGV2ZW4gaW4gdmlldy1zb3Vy
Y2UgbW9kZS4KKworICAgICAgICBUaGlzIHdhcyBhbHJlYWR5IGRvbmUgb25seSBmb3IgdGl0bGUu
IFRoaXMgY2hhbmdlIGFsbG93cyBvdGhlciBzcGVjaWFsIHRhZ3MgdG8gYmUgaGFuZGxlZCBhcyB3
ZWxsLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10
YWdzLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpwYXJzZU5vbkhUTUxUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUb2tlbml6ZXI6OnBhcnNlVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tl
bml6ZXI6OndyaXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OlN0YXRlOjppbkFueU5vbkhUTUxUZXh0KToKKwogMjAw
OS0wNi0wMSAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLiAgTGFuZGVkIChhbmQgdHdlYWtlZCkgYnkgQWRhbSBCYXJ0
aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MVG9rZW5pemVyLmNwcAppbmRleCAzNDFlZWNjLi4zZjUwZTRmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxU
b2tlbml6ZXIuY3BwCkBAIC0zMTYsNyArMzE2LDcgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRN
TFRva2VuaXplcjo6cHJvY2Vzc0xpc3RpbmcoU2VnbWVudGVkU3RyaW5nIGxpc3QsIFN0YXRlIHMK
ICAgICByZXR1cm4gc3RhdGU7CiB9CiAKLUhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6
ZXI6OnBhcnNlU3BlY2lhbChTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCitIVE1M
VG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZU5vbkhUTUxUZXh0KFNlZ21lbnRl
ZFN0cmluZyYgc3JjLCBTdGF0ZSBzdGF0ZSkKIHsKICAgICBBU1NFUlQoc3RhdGUuaW5UZXh0QXJl
YSgpIHx8IHN0YXRlLmluVGl0bGUoKSB8fCBzdGF0ZS5pbklGcmFtZSgpIHx8ICFzdGF0ZS5oYXNF
bnRpdHlTdGF0ZSgpKTsKICAgICBBU1NFUlQoIXN0YXRlLmhhc1RhZ1N0YXRlKCkpOwpAQCAtMTQ3
Nyw2ICsxNDc3LDkgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VU
YWcoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQogICAgICAgICAgICAgUmVmUHRy
PE5vZGU+IG4gPSBwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgICAgIG1fY0J1ZmZlclBvcyA9IGNC
dWZmZXJQb3M7CiAgICAgICAgICAgICBpZiAobiB8fCBpblZpZXdTb3VyY2VNb2RlKCkpIHsKKyAg
ICAgICAgICAgICAgICBTdGF0ZSBzYXZlZFN0YXRlID0gc3RhdGU7CisgICAgICAgICAgICAgICAg
U2VnbWVudGVkU3RyaW5nIHNhdmVkU3JjID0gc3JjOworICAgICAgICAgICAgICAgIGxvbmcgc2F2
ZWRMaW5lbm8gPSBtX2xpbmVOdW1iZXI7CiAgICAgICAgICAgICAgICAgaWYgKCh0YWdOYW1lID09
IHByZVRhZyB8fCB0YWdOYW1lID09IGxpc3RpbmdUYWcpICYmICFpblZpZXdTb3VyY2VNb2RlKCkp
IHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJlZ2luVGFnKQogICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhdGUuc2V0RGlzY2FyZExGKHRydWUpOyAvLyBEaXNjYXJkIHRoZSBmaXJzdCBMRiBh
ZnRlciB3ZSBvcGVuIGEgcHJlLgpAQCAtMTQ4OSw3ICsxNDkyLDcgQEAgSFRNTFRva2VuaXplcjo6
U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRl
IHN0YXRlKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0gc2NyaXB0
RW5kOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyTGVuZ3RoID0gODsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluU2NyaXB0KHRydWUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7
CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTZWxmQ2xvc2luZ1NjcmlwdCkgeyAv
LyBIYW5kbGUgPHNjcmlwdCBzcmM9ImZvbyIvPgogICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGUuc2V0SW5TY3JpcHQodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHNj
cmlwdEhhbmRsZXIoc3RhdGUpOwpAQCAtMTQ5OSw1MyArMTUwMiw1MCBAQCBIVE1MVG9rZW5pemVy
OjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3Rh
dGUgc3RhdGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXIgPSBzdHls
ZUVuZDsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoU3RvcHBlckxlbmd0aCA9IDc7
CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZXRJblN0eWxlKHRydWUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ05h
bWUgPT0gdGV4dGFyZWFUYWcpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJlZ2luVGFnKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXIgPSB0ZXh0YXJlYUVuZDsK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoU3RvcHBlckxlbmd0aCA9IDEwOwogICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5UZXh0QXJlYSh0cnVlKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZU5vbkhUTUxUZXh0KHNyYywgc3RhdGUpOwog
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0YWdOYW1l
ID09IHRpdGxlVGFnKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChiZWdpblRhZykgewogICAg
ICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0gdGl0bGVFbmQ7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXJMZW5ndGggPSA3OwotICAgICAgICAgICAg
ICAgICAgICAgICAgU3RhdGUgc2F2ZWRTdGF0ZSA9IHN0YXRlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgU2VnbWVudGVkU3RyaW5nIHNhdmVkU3JjID0gc3JjOwotICAgICAgICAgICAgICAgICAg
ICAgICAgbG9uZyBzYXZlZExpbmVubyA9IG1fbGluZU51bWJlcjsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlLnNldEluVGl0bGUodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
dGF0ZSA9IHBhcnNlU3BlY2lhbChzcmMsIHN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChzdGF0ZS5pblRpdGxlKCkgJiYgc3JjLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIFdlIGp1c3QgYXRlIHRoZSByZXN0IG9mIHRoZSBkb2N1bWVudCBhcyB0
aGUgdGl0bGUgI3RleHQgbm9kZSEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNl
dCB0aGUgc3RhdGUgdGhlbiByZXRva2VuaXplIHdpdGhvdXQgc3BlY2lhbCB0aXRsZSBoYW5kbGlu
Zy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZXQgdGhlIHBhcnNlciBjbGVhbiB1
cCB0aGUgbWlzc2luZyA8L3RpdGxlPiB0YWcuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgaW5jb3JyZWN0LCBiZWNhdXNlIHNyYy5pc0VtcHR5KCkgZG9lc24n
dCBtZWFuIHdlJ3JlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhlIGVuZCBv
ZiB0aGUgZG9jdW1lbnQgdW5sZXNzIG1fbm9Nb3JlRGF0YSBpcyBhbHNvIHRydWUuIFdlIG5lZWQK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBkZXRlY3QgdGhpcyBjYXNlIGVsc2V3
aGVyZSwgYW5kIHNhdmUgdGhlIHN0YXRlIHNvbWV3aGVyZSBvdGhlcgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHRoYW4gYSBsb2NhbCB2YXJpYWJsZS4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0ZSA9IHNhdmVkU3RhdGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3JjID0gc2F2ZWRTcmM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9saW5lTnVt
YmVyID0gc2F2ZWRMaW5lbm87Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRD
b2RlU2l6ZSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUgPT0geG1wVGFn
KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChiZWdpblRhZykgewogICAgICAgICAgICAgICAg
ICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0geG1wRW5kOwogICAgICAgICAgICAgICAgICAgICAg
ICAgbV9zZWFyY2hTdG9wcGVyTGVuZ3RoID0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRlLnNldEluWG1wKHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJz
ZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBh
cnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUgPT0gaWZyYW1lVGFnKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChiZWdpblRhZykgewogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFy
Y2hTdG9wcGVyID0gaWZyYW1lRW5kOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hT
dG9wcGVyTGVuZ3RoID0gODsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluSUZy
YW1lKHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwo
c3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRN
TFRleHQoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgaWYgKHNyYy5pc0VtcHR5KCkgJiYgKHN0YXRlLmluVGl0bGUo
KSB8fCBpblZpZXdTb3VyY2VNb2RlKCkpICYmICFzdGF0ZS5pbkNvbW1lbnQoKSAmJiAhKHN0YXRl
LmluU2NyaXB0KCkgJiYgbV9jdXJyZW50U2NyaXB0VGFnU3RhcnRMaW5lTnVtYmVyKSkgeworICAg
ICAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IGF0ZSB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQg
YXMgdGhlICN0ZXh0IG5vZGUgdW5kZXIgdGhlIHNwZWNpYWwgdGFnIQorICAgICAgICAgICAgICAg
ICAgICAvLyBSZXNldCB0aGUgc3RhdGUgdGhlbiByZXRva2VuaXplIHdpdGhvdXQgc3BlY2lhbCBo
YW5kbGluZy4KKyAgICAgICAgICAgICAgICAgICAgLy8gTGV0IHRoZSBwYXJzZXIgY2xlYW4gdXAg
dGhlIG1pc3NpbmcgY2xvc2UgdGFnLgorICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhp
cyBpcyBpbmNvcnJlY3QsIGJlY2F1c2Ugc3JjLmlzRW1wdHkoKSBkb2Vzbid0IG1lYW4gd2UncmUK
KyAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgdW5sZXNz
IG1fbm9Nb3JlRGF0YSBpcyBhbHNvIHRydWUuIFdlIG5lZWQKKyAgICAgICAgICAgICAgICAgICAg
Ly8gdG8gZGV0ZWN0IHRoaXMgY2FzZSBlbHNld2hlcmUsIGFuZCBzYXZlIHRoZSBzdGF0ZSBzb21l
d2hlcmUgb3RoZXIKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhhbiBhIGxvY2FsIHZhcmlhYmxl
LgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHNhdmVkU3RhdGU7CisgICAgICAgICAgICAg
ICAgICAgIHNyYyA9IHNhdmVkU3JjOworICAgICAgICAgICAgICAgICAgICBtX2xpbmVOdW1iZXIg
PSBzYXZlZExpbmVubzsKKyAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRDb2RlU2l6ZSA9IDA7
CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHRhZ05h
bWUgPT0gcGxhaW50ZXh0VGFnKQogICAgICAgICAgICAgICAgIHN0YXRlLnNldEluUGxhaW5UZXh0
KGJlZ2luVGFnKTsKQEAgLTE2NjEsOCArMTY2MSw4IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6d3Jp
dGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzdHIsIGJvb2wgYXBwZW5kRGF0YSkKICAgICAgICAg
ICAgICAgICBzdGF0ZSA9IHBhcnNlRW50aXR5KG1fc3JjLCBtX2Rlc3QsIHN0YXRlLCBtX2NCdWZm
ZXJQb3MsIGZhbHNlLCBzdGF0ZS5oYXNUYWdTdGF0ZSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYg
KHN0YXRlLmluUGxhaW5UZXh0KCkpCiAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVRleHQo
bV9zcmMsIHN0YXRlKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmluQW55U3BlY2lhbCgp
KQotICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyc2VTcGVjaWFsKG1fc3JjLCBzdGF0ZSk7Cisg
ICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pbkFueU5vbkhUTUxUZXh0KCkpCisgICAgICAgICAg
ICAgICAgc3RhdGUgPSBwYXJzZU5vbkhUTUxUZXh0KG1fc3JjLCBzdGF0ZSk7CiAgICAgICAgICAg
ICBlbHNlIGlmIChzdGF0ZS5pbkNvbW1lbnQoKSkKICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBh
cnNlQ29tbWVudChtX3NyYywgc3RhdGUpOwogICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaW5E
b2N0eXBlKCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oIGIvV2Vi
Q29yZS9odG1sL0hUTUxUb2tlbml6ZXIuaAppbmRleCAyODk2OTc0Li42NjEyYWY4IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
VG9rZW5pemVyLmgKQEAgLTE3Myw3ICsxNzMsNyBAQCBwcml2YXRlOgogICAgIFN0YXRlIHBhcnNl
RG9jdHlwZShTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAgICAgU3RhdGUgcGFyc2VTZXJ2ZXIo
U2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwogICAgIFN0YXRlIHBhcnNlVGV4dChTZWdtZW50ZWRT
dHJpbmcmLCBTdGF0ZSk7Ci0gICAgU3RhdGUgcGFyc2VTcGVjaWFsKFNlZ21lbnRlZFN0cmluZyYs
IFN0YXRlKTsKKyAgICBTdGF0ZSBwYXJzZU5vbkhUTUxUZXh0KFNlZ21lbnRlZFN0cmluZyYsIFN0
YXRlKTsKICAgICBTdGF0ZSBwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAgICAg
U3RhdGUgcGFyc2VFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiwgVUNoYXIqJiBkZXN0LCBTdGF0ZSwg
dW5zaWduZWQmIGNCdWZmZXJQb3MsIGJvb2wgc3RhcnQsIGJvb2wgcGFyc2luZ1RhZyk7CiAgICAg
U3RhdGUgcGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUp
OwpAQCAtMjg4LDcgKzI4OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgZm9yY2VTeW5jaHJv
bm91cygpIGNvbnN0IHsgcmV0dXJuIHRlc3RCaXQoRm9yY2VTeW5jaHJvbm91cyk7IH0KICAgICAg
ICAgdm9pZCBzZXRGb3JjZVN5bmNocm9ub3VzKGJvb2wgdikgeyBzZXRCaXQoRm9yY2VTeW5jaHJv
bm91cywgdik7IH0KIAotICAgICAgICBib29sIGluQW55U3BlY2lhbCgpIGNvbnN0IHsgcmV0dXJu
IG1fYml0cyAmIChJblNjcmlwdCB8IEluU3R5bGUgfCBJblhtcCB8IEluVGV4dEFyZWEgfCBJblRp
dGxlIHwgSW5JRnJhbWUpOyB9CisgICAgICAgIGJvb2wgaW5BbnlOb25IVE1MVGV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fYml0cyAmIChJblNjcmlwdCB8IEluU3R5bGUgfCBJblhtcCB8IEluVGV4dEFy
ZWEgfCBJblRpdGxlIHwgSW5JRnJhbWUpOyB9CiAgICAgICAgIGJvb2wgaGFzVGFnU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX2JpdHMgJiBUYWdNYXNrOyB9CiAgICAgICAgIGJvb2wgaGFzRW50aXR5
U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2JpdHMgJiBFbnRpdHlNYXNrOyB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30990</attachid>
            <date>2009-06-04 21:52:08 -0700</date>
            <delta_ts>2009-06-09 12:42:23 -0700</delta_ts>
            <desc>patch v5</desc>
            <filename>patch-v5.patch</filename>
            <type>text/plain</type>
            <size>16101</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">MWY4OTIxMWMzYTk0NzMxMDgxYzM2YTc5NDVkZWJlY2VmNmRkMDQ2MwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE5YjAwMTku
Ljk4ZGU3NmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAwOS0wNi0wMSAgU2hpbmljaGlybyBI
YW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTUxMgorICAgICAgICBIYW5kbGUgdGV4dHMgYWZ0ZXIgdW5maW5pc2hlZCBzcGVjaWFs
IHRhZ3MgKGkuZS4sIHNjcmlwdCwgc3R5bGUsIHRleHRhcmVhLAorICAgICAgICB0aXRsZSwgeG1w
LCBhbmQgaWZyYW1lKSBhcyB0aGUgdGV4dCBub2RlIHVuZGVyIHRoZSB0YWdzIGluIHZpZXctc291
cmNlIG1vZGUuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgYWxsIHRleHRzIGluIHVuZmlu
aXNoZWQgc3BlY2lhbCB0YWdzIGNhbm5vdCBiZSBzZWVuIGV2ZW4gaW4gdmlldy1zb3VyY2UgbW9k
ZS4KKworICAgICAgICBUaGlzIHdhcyBhbHJlYWR5IGRvbmUgb25seSBmb3IgdGl0bGUuIFRoaXMg
Y2hhbmdlIGFsbG93cyBvdGhlciBzcGVjaWFsIHRhZ3MgdG8gYmUgaGFuZGxlZCBhcyB3ZWxsLgor
CisgICAgICAgIFRoZSB0ZXN0IGNhc2UgdmVyaWZpZXMgaWYgdGhlIHRleHRzIGluIHRoZSB1bmZp
bmlzaGVkIHNwZWNpYWwgdGFncyBhcmUgdmlzaWJsZSBpbiB2aWV3LXNvdXJjZSBtb2RlLiBBbHNv
LCBmaXhlZCB3aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLSogdGVzdHMgc28gdGhhdCB0aGV5
IGRvbid0IHVzZSB1bmZpbmlzaGVkIGlmcmFtZSBhbnltb3JlLgorCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2JqZWN0
LXdpdGgtdG9TdHJpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9M
b2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3Ry
aW5nLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFk
b3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmcuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9yZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFtZS11bmZp
bmlzaGVkLXNjcmlwdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9yZXNvdXJj
ZXMvdmlld3NvdXJjZS1mcmFtZS11bmZpbmlzaGVkLXRleHRhcmVhLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRh
Z3MuaHRtbDogQWRkZWQuCisKIDIwMDktMDYtMDEgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4gIExhbmRlZCBieSBB
ZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0
aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRv
dy1zaGFkb3ctbG9jYXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJpbmctZXhwZWN0ZWQu
dHh0CmluZGV4IDljNjJhYzAuLjExODkxN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVj
dC13aXRoLXRvU3RyaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1qcy1vYmplY3Qtd2l0
aC10b1N0cmluZy1leHBlY3RlZC50eHQKQEAgLTEsMiArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIFBBU1MgcmVzdWx0IGlzICdwYXNzLmh0
bWwnCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93
aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2Nh
dGlvbi11c2luZy1qcy1vYmplY3Qtd2l0aC10b1N0cmluZy5odG1sCmluZGV4IGM3OGIyNzMuLjIx
OTdiMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93
aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLWpzLW9iamVjdC13aXRoLXRvU3RyaW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ct
bG9jYXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJpbmcuaHRtbApAQCAtMjIsNyArMjIs
NyBAQAogCiAgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPGlmcmFt
ZSBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiIHNyYz0icmVzb3VyY2VzL3dpbmRvdy1zaGFkb3ctbG9j
YXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJpbmctaWZyYW1lLmh0bWwiPgorPGlmcmFt
ZSBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiIHNyYz0icmVzb3VyY2VzL3dpbmRvdy1zaGFkb3ctbG9j
YXRpb24tdXNpbmctanMtb2JqZWN0LXdpdGgtdG9TdHJpbmctaWZyYW1lLmh0bWwiPjwvaWZyYW1l
PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93
aW5kb3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2lu
Zy1zdHJpbmctZXhwZWN0ZWQudHh0CmluZGV4IDljNjJhYzAuLjExODkxN2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9Mb2NhdGlvbi93aW5kb3ctc2hhZG93LWxvY2F0
aW9uLXVzaW5nLXN0cmluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLWV4cGVj
dGVkLnR4dApAQCAtMSwyICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQogUEFTUyByZXN1bHQgaXMgJ3Bhc3MuaHRtbCcKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L0xvY2F0aW9uL3dpbmRvdy1zaGFkb3ctbG9j
YXRpb24tdXNpbmctc3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9j
YXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmcuaHRtbAppbmRleCA0MGRj
ZjE5Li5hNWYwNTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9j
YXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11c2luZy1zdHJpbmcuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvTG9jYXRpb24vd2luZG93LXNoYWRvdy1sb2NhdGlvbi11
c2luZy1zdHJpbmcuaHRtbApAQCAtMjIsNyArMjIsNyBAQAogCiAgICAgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPGlmcmFtZSBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiIHNy
Yz0icmVzb3VyY2VzL3dpbmRvdy1zaGFkb3ctbG9jYXRpb24tdXNpbmctc3RyaW5nLWlmcmFtZS5o
dG1sIj4KKzxpZnJhbWUgb25sb2FkPSJmcmFtZUxvYWRlZCgpIiBzcmM9InJlc291cmNlcy93aW5k
b3ctc2hhZG93LWxvY2F0aW9uLXVzaW5nLXN0cmluZy1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzb3VyY2VzL3ZpZXdzb3Vy
Y2UtZnJhbWUtdW5maW5pc2hlZC1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L3Jlc291cmNlcy92aWV3c291cmNlLWZyYW1lLXVuZmluaXNoZWQtc2NyaXB0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFlYWQ3OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNlcy92aWV3c291cmNlLWZyYW1lLXVuZmlu
aXNoZWQtc2NyaXB0Lmh0bWwKQEAgLTAsMCArMSBAQAorPHNjcmlwdD5mb29iYXIgaW4gc2NyaXB0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvdmlld3NvdXJj
ZS1mcmFtZS11bmZpbmlzaGVkLXRleHRhcmVhLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9yZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFtZS11bmZpbmlzaGVkLXRleHRhcmVhLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWMxZjNmYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNlcy92aWV3c291cmNlLWZyYW1lLXVu
ZmluaXNoZWQtdGV4dGFyZWEuaHRtbApAQCAtMCwwICsxIEBACis8dGV4dGFyZWE+Zm9vYmFyIGlu
IHRleHRhcmVhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy92aWV3c291cmNl
LXVuZmluaXNoZWQtdGFncy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy92
aWV3c291cmNlLXVuZmluaXNoZWQtdGFncy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMzRlMTgwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKK3NjcmlwdDogUEFTUwordGV4dGFyZWE6IFBBU1MKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvdmlld3NvdXJjZS11bmZpbmlzaGVkLXRhZ3MuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJjNzU5NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdz
Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB9CisKKyAgICB2YXIgcmVzdWx0cyA9IHt9OworICAgIGZ1bmN0aW9uIHJl
cG9ydChmcmFtZSwgdGFnKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBmcmFtZS5jb250ZW50RG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTDsKKyAgICAgICAgdmFyIHJlZ2V4ID0gbmV3
IFJlZ0V4cCgiZm9vYmFyIiwgImciKTsKKyAgICAgICAgbWF0Y2hlcyA9IHJlc3VsdC5tYXRjaChy
ZWdleCk7CisKKyAgICAgICAgaWYgKG1hdGNoZXMpCisgICAgICAgICAgICB2YXIgcmVzdWx0VGV4
dCA9ICJQQVNTIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdmFyIHJlc3VsdFRleHQgPSAi
RkFJTCI7CisKKyAgICAgICAgcmVzdWx0c1t0YWddID0gcmVzdWx0VGV4dDsKKyAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiByZXN1bHRzWyJzY3JpcHQiXSAmJiByZXN1
bHRzWyJ0ZXh0YXJlYSJdKSB7CisgICAgICAgICAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgICAg
ICAgICBkb2N1bWVudC53cml0ZSgic2NyaXB0OiAiICsgcmVzdWx0c1sic2NyaXB0Il0gKyAiPGJy
PiIpOworICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoInRleHRhcmVhOiAiICsgcmVzdWx0c1si
dGV4dGFyZWEiXSArICI8YnI+Iik7CisgICAgICAgICAgICBkb2N1bWVudC5jbG9zZSgpOworCisg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YWcgKyAiX3Jlc3Vs
dCIpLnRleHRDb250ZW50ID0gcmVzdWx0VGV4dDsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5Zb3Ugc2hvdWxkIHNlZSBhIGZyYW1lIGluICd2aWV3IHNv
dXJjZScgbW9kZSBiZWxvdy48L3A+Cis8cD4iZm9vYmFyIiBzaG91bGQgYmUgc2VlbiBhZnRlciB0
aGUgJmx0O3NjcmlwdCZndDsgdGFnIGFuZCAmbHQ7dGV4dGFyZWEmZ3Q7IHRhZy48L3A+Cis8aHI+
Cis8aWZyYW1lIHZpZXdzb3VyY2Ugc3JjPSJyZXNvdXJjZXMvdmlld3NvdXJjZS1mcmFtZS11bmZp
bmlzaGVkLXNjcmlwdC5odG1sIiBoZWlnaHQ9IjI1MCIgb25sb2FkPSJyZXBvcnQodGhpcywgJ3Nj
cmlwdCcpIj48L2lmcmFtZT4KKzxpZnJhbWUgdmlld3NvdXJjZSBzcmM9InJlc291cmNlcy92aWV3
c291cmNlLWZyYW1lLXVuZmluaXNoZWQtdGV4dGFyZWEuaHRtbCIgaGVpZ2h0PSIyNTAiIG9ubG9h
ZD0icmVwb3J0KHRoaXMsICd0ZXh0YXJlYScpIj48L2lmcmFtZT4KKzxocj4KKzxkaXYgaWQ9InJl
c3VsdCI+Cis8ZGl2IGlkPSJzY3JpcHRfcmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9InRleHRhcmVh
X3Jlc3VsdCI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ4OThkZi4uZjU5MDNm
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMyBAQAorMjAwOS0wNi0wMSAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUxMgorICAg
ICAgICBIYW5kbGUgdGV4dHMgYWZ0ZXIgdW5maW5pc2hlZCBzcGVjaWFsIHRhZ3MgKGkuZS4sIHNj
cmlwdCwgc3R5bGUsIHRleHRhcmVhLAorICAgICAgICB0aXRsZSwgeG1wLCBhbmQgaWZyYW1lKSBh
cyB0aGUgdGV4dCBub2RlIHVuZGVyIHRoZSB0YWdzIGluIHZpZXctc291cmNlIG1vZGUuCisgICAg
ICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgYWxsIHRleHRzIGluIHVuZmluaXNoZWQgc3BlY2lhbCB0
YWdzIGNhbm5vdCBiZSBzZWVuIGV2ZW4gaW4gdmlldy1zb3VyY2UgbW9kZS4KKworICAgICAgICBU
aGlzIHdhcyBhbHJlYWR5IGRvbmUgb25seSBmb3IgdGl0bGUuIFRoaXMgY2hhbmdlIGFsbG93cyBv
dGhlciBzcGVjaWFsIHRhZ3MgdG8gYmUgaGFuZGxlZCBhcyB3ZWxsLgorCisgICAgICAgIFRlc3Q6
IGZhc3QvZnJhbWVzL3ZpZXdzb3VyY2UtdW5maW5pc2hlZC10YWdzLmh0bWwKKworICAgICAgICAq
IGh0bWwvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVy
OjpwYXJzZU5vbkhUTUxUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnBh
cnNlVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OndyaXRlKToKKyAgICAg
ICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6
ZXI6OlN0YXRlOjppbkFueU5vbkhUTUxUZXh0KToKKwogMjAwOS0wNi0wMSAgRHJldyBXaWxzb24g
IDxhdHdpbHNvbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LiAgTGFuZGVkIChhbmQgdHdlYWtlZCkgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNw
cAppbmRleCAzNDFlZWNjLi4zZjUwZTRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRv
a2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0zMTYs
NyArMzE2LDcgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cHJvY2Vzc0xp
c3RpbmcoU2VnbWVudGVkU3RyaW5nIGxpc3QsIFN0YXRlIHMKICAgICByZXR1cm4gc3RhdGU7CiB9
CiAKLUhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnBhcnNlU3BlY2lhbChTZWdt
ZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCitIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1M
VG9rZW5pemVyOjpwYXJzZU5vbkhUTUxUZXh0KFNlZ21lbnRlZFN0cmluZyYgc3JjLCBTdGF0ZSBz
dGF0ZSkKIHsKICAgICBBU1NFUlQoc3RhdGUuaW5UZXh0QXJlYSgpIHx8IHN0YXRlLmluVGl0bGUo
KSB8fCBzdGF0ZS5pbklGcmFtZSgpIHx8ICFzdGF0ZS5oYXNFbnRpdHlTdGF0ZSgpKTsKICAgICBB
U1NFUlQoIXN0YXRlLmhhc1RhZ1N0YXRlKCkpOwpAQCAtMTQ3Nyw2ICsxNDc3LDkgQEAgSFRNTFRv
a2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6cGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nJiBz
cmMsIFN0YXRlIHN0YXRlKQogICAgICAgICAgICAgUmVmUHRyPE5vZGU+IG4gPSBwcm9jZXNzVG9r
ZW4oKTsKICAgICAgICAgICAgIG1fY0J1ZmZlclBvcyA9IGNCdWZmZXJQb3M7CiAgICAgICAgICAg
ICBpZiAobiB8fCBpblZpZXdTb3VyY2VNb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBTdGF0ZSBz
YXZlZFN0YXRlID0gc3RhdGU7CisgICAgICAgICAgICAgICAgU2VnbWVudGVkU3RyaW5nIHNhdmVk
U3JjID0gc3JjOworICAgICAgICAgICAgICAgIGxvbmcgc2F2ZWRMaW5lbm8gPSBtX2xpbmVOdW1i
ZXI7CiAgICAgICAgICAgICAgICAgaWYgKCh0YWdOYW1lID09IHByZVRhZyB8fCB0YWdOYW1lID09
IGxpc3RpbmdUYWcpICYmICFpblZpZXdTb3VyY2VNb2RlKCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKGJlZ2luVGFnKQogICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0RGlzY2Fy
ZExGKHRydWUpOyAvLyBEaXNjYXJkIHRoZSBmaXJzdCBMRiBhZnRlciB3ZSBvcGVuIGEgcHJlLgpA
QCAtMTQ4OSw3ICsxNDkyLDcgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRva2VuaXplcjo6
cGFyc2VUYWcoU2VnbWVudGVkU3RyaW5nJiBzcmMsIFN0YXRlIHN0YXRlKQogICAgICAgICAgICAg
ICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0gc2NyaXB0RW5kOwogICAgICAgICAgICAgICAg
ICAgICAgICAgbV9zZWFyY2hTdG9wcGVyTGVuZ3RoID0gODsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRlLnNldEluU2NyaXB0KHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAoaXNTZWxmQ2xvc2luZ1NjcmlwdCkgeyAvLyBIYW5kbGUgPHNjcmlwdCBzcmM9
ImZvbyIvPgogICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2V0SW5TY3JpcHQodHJ1ZSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHNjcmlwdEhhbmRsZXIoc3RhdGUpOwpA
QCAtMTQ5OSw1MyArMTUwMiw1MCBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVy
OjpwYXJzZVRhZyhTZWdtZW50ZWRTdHJpbmcmIHNyYywgU3RhdGUgc3RhdGUpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3NlYXJjaFN0b3BwZXIgPSBzdHlsZUVuZDsKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fc2VhcmNoU3RvcHBlckxlbmd0aCA9IDc7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0ZS5zZXRJblN0eWxlKHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUgPT0gdGV4dGFyZWFUYWcpIHsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKGJlZ2luVGFnKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3NlYXJjaFN0b3BwZXIgPSB0ZXh0YXJlYUVuZDsKICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fc2VhcmNoU3RvcHBlckxlbmd0aCA9IDEwOwogICAgICAgICAgICAgICAgICAgICAgICAg
c3RhdGUuc2V0SW5UZXh0QXJlYSh0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRl
ID0gcGFyc2VTcGVjaWFsKHNyYywgc3RhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGUgPSBwYXJzZU5vbkhUTUxUZXh0KHNyYywgc3RhdGUpOwogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0YWdOYW1lID09IHRpdGxlVGFnKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChiZWdpblRhZykgewogICAgICAgICAgICAgICAgICAgICAgICAg
bV9zZWFyY2hTdG9wcGVyID0gdGl0bGVFbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3Nl
YXJjaFN0b3BwZXJMZW5ndGggPSA3OwotICAgICAgICAgICAgICAgICAgICAgICAgU3RhdGUgc2F2
ZWRTdGF0ZSA9IHN0YXRlOwotICAgICAgICAgICAgICAgICAgICAgICAgU2VnbWVudGVkU3RyaW5n
IHNhdmVkU3JjID0gc3JjOwotICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzYXZlZExpbmVu
byA9IG1fbGluZU51bWJlcjsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluVGl0
bGUodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlU3BlY2lhbChz
cmMsIHN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5pblRpdGxlKCkg
JiYgc3JjLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGp1
c3QgYXRlIHRoZSByZXN0IG9mIHRoZSBkb2N1bWVudCBhcyB0aGUgdGl0bGUgI3RleHQgbm9kZSEK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgc3RhdGUgdGhlbiByZXRv
a2VuaXplIHdpdGhvdXQgc3BlY2lhbCB0aXRsZSBoYW5kbGluZy4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBMZXQgdGhlIHBhcnNlciBjbGVhbiB1cCB0aGUgbWlzc2luZyA8L3RpdGxl
PiB0YWcuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgaW5j
b3JyZWN0LCBiZWNhdXNlIHNyYy5pc0VtcHR5KCkgZG9lc24ndCBtZWFuIHdlJ3JlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgdW5sZXNz
IG1fbm9Nb3JlRGF0YSBpcyBhbHNvIHRydWUuIFdlIG5lZWQKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyB0byBkZXRlY3QgdGhpcyBjYXNlIGVsc2V3aGVyZSwgYW5kIHNhdmUgdGhlIHN0
YXRlIHNvbWV3aGVyZSBvdGhlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYW4g
YSBsb2NhbCB2YXJpYWJsZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHNh
dmVkU3RhdGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjID0gc2F2ZWRTcmM7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9saW5lTnVtYmVyID0gc2F2ZWRMaW5lbm87Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRDb2RlU2l6ZSA9IDA7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNl
Tm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKHRhZ05hbWUgPT0geG1wVGFnKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChiZWdpblRhZykgewogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9w
cGVyID0geG1wRW5kOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyTGVu
Z3RoID0gNTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluWG1wKHRydWUpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3JjLCBz
dGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KHRhZ05hbWUgPT0gaWZyYW1lVGFnKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChiZWdpblRh
ZykgewogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyID0gaWZyYW1lRW5k
OwogICAgICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hTdG9wcGVyTGVuZ3RoID0gODsKICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNldEluSUZyYW1lKHRydWUpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVNwZWNpYWwoc3JjLCBzdGF0ZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlTm9uSFRNTFRleHQoc3JjLCBzdGF0ZSk7CiAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
aWYgKHNyYy5pc0VtcHR5KCkgJiYgKHN0YXRlLmluVGl0bGUoKSB8fCBpblZpZXdTb3VyY2VNb2Rl
KCkpICYmICFzdGF0ZS5pbkNvbW1lbnQoKSAmJiAhKHN0YXRlLmluU2NyaXB0KCkgJiYgbV9jdXJy
ZW50U2NyaXB0VGFnU3RhcnRMaW5lTnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBX
ZSBqdXN0IGF0ZSB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQgYXMgdGhlICN0ZXh0IG5vZGUgdW5k
ZXIgdGhlIHNwZWNpYWwgdGFnIQorICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgc3Rh
dGUgdGhlbiByZXRva2VuaXplIHdpdGhvdXQgc3BlY2lhbCBoYW5kbGluZy4KKyAgICAgICAgICAg
ICAgICAgICAgLy8gTGV0IHRoZSBwYXJzZXIgY2xlYW4gdXAgdGhlIG1pc3NpbmcgY2xvc2UgdGFn
LgorICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBpbmNvcnJlY3QsIGJlY2F1
c2Ugc3JjLmlzRW1wdHkoKSBkb2Vzbid0IG1lYW4gd2UncmUKKyAgICAgICAgICAgICAgICAgICAg
Ly8gYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgdW5sZXNzIG1fbm9Nb3JlRGF0YSBpcyBhbHNv
IHRydWUuIFdlIG5lZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gZGV0ZWN0IHRoaXMgY2Fz
ZSBlbHNld2hlcmUsIGFuZCBzYXZlIHRoZSBzdGF0ZSBzb21ld2hlcmUgb3RoZXIKKyAgICAgICAg
ICAgICAgICAgICAgLy8gdGhhbiBhIGxvY2FsIHZhcmlhYmxlLgorICAgICAgICAgICAgICAgICAg
ICBzdGF0ZSA9IHNhdmVkU3RhdGU7CisgICAgICAgICAgICAgICAgICAgIHNyYyA9IHNhdmVkU3Jj
OworICAgICAgICAgICAgICAgICAgICBtX2xpbmVOdW1iZXIgPSBzYXZlZExpbmVubzsKKyAgICAg
ICAgICAgICAgICAgICAgbV9zY3JpcHRDb2RlU2l6ZSA9IDA7CisgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHRhZ05hbWUgPT0gcGxhaW50ZXh0VGFnKQog
ICAgICAgICAgICAgICAgIHN0YXRlLnNldEluUGxhaW5UZXh0KGJlZ2luVGFnKTsKQEAgLTE2NjEs
OCArMTY2MSw4IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3Ry
aW5nJiBzdHIsIGJvb2wgYXBwZW5kRGF0YSkKICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNl
RW50aXR5KG1fc3JjLCBtX2Rlc3QsIHN0YXRlLCBtX2NCdWZmZXJQb3MsIGZhbHNlLCBzdGF0ZS5o
YXNUYWdTdGF0ZSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmluUGxhaW5UZXh0KCkp
CiAgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZVRleHQobV9zcmMsIHN0YXRlKTsKLSAgICAg
ICAgICAgIGVsc2UgaWYgKHN0YXRlLmluQW55U3BlY2lhbCgpKQotICAgICAgICAgICAgICAgIHN0
YXRlID0gcGFyc2VTcGVjaWFsKG1fc3JjLCBzdGF0ZSk7CisgICAgICAgICAgICBlbHNlIGlmIChz
dGF0ZS5pbkFueU5vbkhUTUxUZXh0KCkpCisgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJzZU5v
bkhUTUxUZXh0KG1fc3JjLCBzdGF0ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5pbkNv
bW1lbnQoKSkKICAgICAgICAgICAgICAgICBzdGF0ZSA9IHBhcnNlQ29tbWVudChtX3NyYywgc3Rh
dGUpOwogICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaW5Eb2N0eXBlKCkpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6
ZXIuaAppbmRleCAyODk2OTc0Li42NjEyYWY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TFRva2VuaXplci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmgKQEAgLTE3Myw3
ICsxNzMsNyBAQCBwcml2YXRlOgogICAgIFN0YXRlIHBhcnNlRG9jdHlwZShTZWdtZW50ZWRTdHJp
bmcmLCBTdGF0ZSk7CiAgICAgU3RhdGUgcGFyc2VTZXJ2ZXIoU2VnbWVudGVkU3RyaW5nJiwgU3Rh
dGUpOwogICAgIFN0YXRlIHBhcnNlVGV4dChTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7Ci0gICAg
U3RhdGUgcGFyc2VTcGVjaWFsKFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKKyAgICBTdGF0ZSBw
YXJzZU5vbkhUTUxUZXh0KFNlZ21lbnRlZFN0cmluZyYsIFN0YXRlKTsKICAgICBTdGF0ZSBwYXJz
ZVRhZyhTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAgICAgU3RhdGUgcGFyc2VFbnRpdHkoU2Vn
bWVudGVkU3RyaW5nJiwgVUNoYXIqJiBkZXN0LCBTdGF0ZSwgdW5zaWduZWQmIGNCdWZmZXJQb3Ms
IGJvb2wgc3RhcnQsIGJvb2wgcGFyc2luZ1RhZyk7CiAgICAgU3RhdGUgcGFyc2VQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUpOwpAQCAtMjg4LDcgKzI4OCw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGJvb2wgZm9yY2VTeW5jaHJvbm91cygpIGNvbnN0IHsgcmV0dXJu
IHRlc3RCaXQoRm9yY2VTeW5jaHJvbm91cyk7IH0KICAgICAgICAgdm9pZCBzZXRGb3JjZVN5bmNo
cm9ub3VzKGJvb2wgdikgeyBzZXRCaXQoRm9yY2VTeW5jaHJvbm91cywgdik7IH0KIAotICAgICAg
ICBib29sIGluQW55U3BlY2lhbCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIChJblNjcmlwdCB8
IEluU3R5bGUgfCBJblhtcCB8IEluVGV4dEFyZWEgfCBJblRpdGxlIHwgSW5JRnJhbWUpOyB9Cisg
ICAgICAgIGJvb2wgaW5BbnlOb25IVE1MVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIChJ
blNjcmlwdCB8IEluU3R5bGUgfCBJblhtcCB8IEluVGV4dEFyZWEgfCBJblRpdGxlIHwgSW5JRnJh
bWUpOyB9CiAgICAgICAgIGJvb2wgaGFzVGFnU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2JpdHMg
JiBUYWdNYXNrOyB9CiAgICAgICAgIGJvb2wgaGFzRW50aXR5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX2JpdHMgJiBFbnRpdHlNYXNrOyB9CiAK
</data>
<flag name="review"
          id="15769"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>