<?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>37505</bug_id>
          
          <creation_ts>2010-04-13 10:06:36 -0700</creation_ts>
          <short_desc>Enabling view modes to all platforms</short_desc>
          <delta_ts>2010-08-24 06:36:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Luiz Agostini">luiz</reporter>
          <assigned_to name="Luiz Agostini">luiz</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>211987</commentid>
    <comment_count>0</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-04-13 10:06:36 -0700</bug_when>
    <thetext>As implementations may not support certain view modes it is needed to check if a given viewMode is acceptable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212002</commentid>
    <comment_count>1</comment_count>
      <attachid>53261</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-04-13 10:45:49 -0700</bug_when>
    <thetext>Created attachment 53261
patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212005</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-13 10:49:12 -0700</bug_when>
    <thetext>Attachment 53261 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WARNING: File exempt from style guide. Skipping: &quot;WebKit/qt/Api/qwebpage.cpp&quot;
WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp:170:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WARNING: File exempt from style guide. Skipping: &quot;WebKit/qt/Api/qwebpage_p.h&quot;
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212007</commentid>
    <comment_count>3</comment_count>
      <attachid>53263</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-04-13 11:01:38 -0700</bug_when>
    <thetext>Created attachment 53263
patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212522</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-04-14 13:13:08 -0700</bug_when>
    <thetext>I heard that Simon Fraser disliked that you moved the methods to Page. Is it possible to modify the patch so that it does not do that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212584</commentid>
    <comment_count>5</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-04-14 14:43:39 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I heard that Simon Fraser disliked that you moved the methods to Page. Is it
&gt; possible to modify the patch so that it does not do that?

Yes, I had very quick a talk to him in IRC about it. I think that with no event and keeping viewMode in QWebPage as before there is almost nothing to do.

If QWebPage keeps the current viewMode value, is the only one that will possibly change it and no event need to be dispatched we just should keep things as they are now.

Validation can be done by the user before calling qt_wrt_setViewMode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222629</commentid>
    <comment_count>6</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-07 14:42:59 -0700</bug_when>
    <thetext>If QWebPage keeps the current viewMode value, is the only one that will
possibly change it and no event need to be dispatched we just should keep
things as they are now.

Validation can be done by the user before changing _q_viewMode property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223100</commentid>
    <comment_count>7</comment_count>
      <attachid>53263</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-09 15:28:18 -0700</bug_when>
    <thetext>Comment on attachment 53263
patch 2

Clearing r? since this bug has been closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255488</commentid>
    <comment_count>8</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-23 11:39:29 -0700</bug_when>
    <thetext>Now that view mode media feature specification has evolved it may be time to enable it to all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257736</commentid>
    <comment_count>9</comment_count>
      <attachid>62962</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-29 09:38:08 -0700</bug_when>
    <thetext>Created attachment 62962
patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257784</commentid>
    <comment_count>10</comment_count>
      <attachid>62972</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-29 11:21:25 -0700</bug_when>
    <thetext>Created attachment 62972
improving changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257807</commentid>
    <comment_count>11</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-07-29 12:30:53 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=62972) [details]
&gt; improving changelogs

Looks good to me: it cleans up Qt and WebCore related code, as well as removes unneeded DEFINEs and build guards.

@smfr, do you have objections?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257834</commentid>
    <comment_count>12</comment_count>
      <attachid>62972</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-29 13:22:25 -0700</bug_when>
    <thetext>Comment on attachment 62972
improving changelogs

I don&apos;t like how the view mode strings used in createViewModesSet(), and passed into setViewMode() from outside have to match. That makes it too easy for platforms to unintentionally diverge. I think I&apos;d prefer:

enum ViewMode {
...
};
void Page::viewModeChanged(ViewMode) which the platform calls when something changes that affects the view mode. Do the enum -&gt; string mapping in one place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257842</commentid>
    <comment_count>13</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-29 13:42:29 -0700</bug_when>
    <thetext>thanks for the comments and review. :)

(In reply to comment #12)
&gt; (From update of attachment 62972 [details])
&gt; I don&apos;t like how the view mode strings used in createViewModesSet(), and passed into setViewMode() from outside have to match. That makes it too easy for platforms to unintentionally diverge. I think I&apos;d prefer:

How would them diverge? Just the specified values are accepted by Page.

&gt; 
&gt; enum ViewMode {
&gt; ...
&gt; };
&gt; void Page::viewModeChanged(ViewMode) which the platform calls when something changes that affects the view mode. 

The problem with this approach is the string -&gt; enum mapping that must be used in:

1) in qwebpage because we expect our users to provide view mode strings.
2) in MediaQueryEvaluator because its parameter is a string.
3) in layout tests because a string is received from javascript.

Considering this I decided that String would be the most natural format to keep the current view mode value.

&gt; Do the enum -&gt; string mapping in one place.

Where would be that place?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257850</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-29 13:49:42 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; thanks for the comments and review. :)
&gt; 
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 62972 [details] [details])
&gt; &gt; I don&apos;t like how the view mode strings used in createViewModesSet(), and passed into setViewMode() from outside have to match. That makes it too easy for platforms to unintentionally diverge. I think I&apos;d prefer:
&gt; 
&gt; How would them diverge? Just the specified values are accepted by Page.

It would be too easy for someone to change the strings in WebCore without knowing, or even being able to change the strings in all clients who pass them in. You might not even have access to the code where the strings originate.

&gt; &gt; enum ViewMode {
&gt; &gt; ...
&gt; &gt; };
&gt; &gt; void Page::viewModeChanged(ViewMode) which the platform calls when something changes that affects the view mode. 
&gt; 
&gt; The problem with this approach is the string -&gt; enum mapping that must be used in:
&gt; 
&gt; 1) in qwebpage because we expect our users to provide view mode strings.

That&apos;s a Qt problem.

&gt; 2) in MediaQueryEvaluator because its parameter is a string.

You&apos;d call the same string-&gt;enum mapping (in Page, perhaps)

&gt; 3) in layout tests because a string is received from javascript.

At least the layout tests are in open source.

&gt; &gt; Do the enum -&gt; string mapping in one place.
&gt; 
&gt; Where would be that place?

Page?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257851</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-29 13:50:27 -0700</bug_when>
    <thetext>Another way to look at this is that the view mode strings should be AtomicStrings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258404</commentid>
    <comment_count>16</comment_count>
      <attachid>63105</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-07-30 14:55:00 -0700</bug_when>
    <thetext>Created attachment 63105
patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258412</commentid>
    <comment_count>17</comment_count>
      <attachid>63105</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-30 15:06:41 -0700</bug_when>
    <thetext>Comment on attachment 63105
patch 4

r=me

Please file bugs on each other platform to implement setViewMode().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258519</commentid>
    <comment_count>18</comment_count>
      <attachid>63105</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-30 19:46:28 -0700</bug_when>
    <thetext>Comment on attachment 63105
patch 4

Clearing flags on attachment: 63105

Committed r64401: &lt;http://trac.webkit.org/changeset/64401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258520</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-30 19:46:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262683</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-10 08:06:09 -0700</bug_when>
    <thetext>Revision r64401 cherry-picked into qtwebkit-2.1 with commit a4c6465389fd035ad56cc9276c3dd9f00973cdc3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263098</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-11 00:36:11 -0700</bug_when>
    <thetext>Revision r64401 cherry-picked into qtwebkit-2.1 with commit 881f10ac7626a4ad4585035218228d42386b5d19</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263701</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-12 03:34:05 -0700</bug_when>
    <thetext>Revision r64401 cherry-picked into qtwebkit-2.1 with commit 4395039b9d85191e4d00e41fb4099a0b94817b33</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53261</attachid>
            <date>2010-04-13 10:45:49 -0700</date>
            <delta_ts>2010-04-13 11:01:38 -0700</delta_ts>
            <desc>patch 1</desc>
            <filename>0001-Acceptable-view-modes.patch</filename>
            <type>text/plain</type>
            <size>27886</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBiMDIxOTk1ZjU1NzRlNzAyOWQxNTRiZDQzODY5YzJlZTcyMmUxMzcwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMTMgQXByIDIwMTAgMTQ6NDA6MjYgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBBY2NlcHRhYmxlIHZpZXcgbW9kZXMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzUwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoK
VGVzdDogZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS5o
dG1sCgpUaGUgdmlld01vZGUgbWVkaWEgZmVhdHVyZSB3YXMgaW1wbGVtZW50ZWQgaW4gcHJldmlv
dXMgcGF0Y2ggYnV0IHRoZSB2aWV3TW9kZQpzdHJpbmcgd2FzIGtlcHQgaW4gV2ViS2l0IGxheWVy
LiBUaGlzIHBhdGNoIG1vdmVzIGl0IHRvIFdlYkNvcmUgYWRkaW5nIHNvbWUgYXR0cmlidXRlcwp0
byB0aGUgY2xhc3MgUGFnZS4KCkl0IGFsc28gYWRkcyB0byBDaHJvbWUvQ2hyb21lQ2xpZW50IG5l
dyBtZXRob2RzIHRoYXQgYXJlIHVzZWQgdG8gYXNrIENocm9tZUNsaWVudCBpZiBhCmNlcnRhaW4g
dmlld01vZGUgaXMgYWNjZXB0YWJsZS4KCiogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgoo
V2ViQ29yZTo6dmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbCk6CiogcGFnZS9DaHJvbWUuY3BwOgoo
V2ViQ29yZTo6Q2hyb21lOjphY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3QpOgooV2ViQ29yZTo6
Q2hyb21lQ2xpZW50OjphY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3QpOgoqIHBhZ2UvQ2hyb21l
Lmg6CiogcGFnZS9DaHJvbWVDbGllbnQuaDoKKiBwYWdlL1BhZ2UuY3BwOgooV2ViQ29yZTo6UGFn
ZTo6c2V0Vmlld01vZGUpOgooV2ViQ29yZTo6UGFnZTo6aXNEb2NrZWQpOgooV2ViQ29yZTo6UGFn
ZTo6aXNGbG9hdGluZyk6CihXZWJDb3JlOjpQYWdlOjppc0FwcGxpY2F0aW9uKToKKFdlYkNvcmU6
OlBhZ2U6OmlzRnVsbHNjcmVlbik6CiogcGFnZS9QYWdlLmg6CihXZWJDb3JlOjpQYWdlOjp2aWV3
TW9kZSk6CgpXZWJLaXQvcXQ6CgpBcyBjbGFzcyBQYWdlIG5vdyBob2xkcyBjdXJyZW50IHZpZXdN
b2RlIHZhbHVlIHRoZSByZWxhdGVkIGNvZGUgd2FzIHJlbW92ZWQgZnJvbSBjbGFzc2VzClFXZWJQ
YWdlIGFuZCBDaHJvbWVDbGllbnRRdC4KCkEgbmV3IGhpZGRlbiBBUEkgd2FzIGFkZGVkIHRvIFFX
ZWJQYWdlLiBUaGlzIEFQSSBjYW4gYmUgdXNlZCB0byByZWNlaXZlIG5vdGlmaWNhdGlvbnMgYWJv
dXQKdmlldyBtb2RlIGNoYW5nZXMgYW5kIHRvIHZhbGlkYXRlIGEgdmlldyBtb2RlIGNoYW5nZSBy
ZXF1ZXN0LgoKKiBBcGkvcXdlYnBhZ2UuY3BwOgoocXRfd3J0X3NldFZpZXdNb2RlKToKKHF0X3dy
dF92aWV3TW9kZSk6CihxdF93cnRfc2V0Vmlld01vZGVIYW5kbGVyKToKKFFXZWJQYWdlUHJpdmF0
ZTo6UVdlYlBhZ2VQcml2YXRlKToKKFFXZWJQYWdlUHJpdmF0ZTo6YWNjZXB0Vmlld01vZGUpOgoq
IEFwaS9xd2VicGFnZV9wLmg6CiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgoo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVxdWVzdCk6Ciog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKCk1ldGhvZCBzZXRWaWV3TW9kZSByZW1v
dmVkIGZyb20gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQgYW5kIG1vdmVkIGJhY2sgdG8gcXdlYnBh
Z2UuY3BwCmFzIHF0X3dydF9zZXRWaWV3TW9kZS4KCiogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwOgooRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1lZGlhVHlw
ZSk6CiogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKCldlYktpdFRv
b2xzOgoKQWRkaW5nIG1ldGhvZCB0byBMYXlvdXRUZXN0Q29udHJvbGxlclF0IHRvIHN1cHBvcnQg
dGVzdGluZyBvZiB2aWV3IG1vZGUgY2hhbmdlCnByb2NlZHVyZS4gTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdCB1c2VzIGhpZGRlbiBBUEkgcHJvdmlkZWQgYnkgcXdlYnBhZ2UuY3BwIGZvciB0aGF0LgoK
KiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSk6CihMYXlvdXRUZXN0Q29udHJv
bGxlcjo6dmlld01vZGVNZWRpYUZlYXR1cmUpOgooY2hlY2tWaWV3TW9kZSk6CihMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YWRkQWNjZXB0YWJsZVZpZXdNb2RlKToKKExheW91dFRlc3RDb250cm9sbGVy
OjpyZW1vdmVBY2NlcHRhYmxlVmlld01vZGUpOgoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuaDoKCkxheW91dFRlc3RzOgoKVGVzdGluZyB0aGUgdmlldyBtb2RlIGNo
YW5nZSBwcm9jZWR1cmUuClNraXAgb24gYWxsIG90aGVyIHBsYXRmb3JtcyB0aGFuIFF0IHRoYXQg
aGFzIFNraXBwZWQgZmlsZXMuCgoqIGZhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3QtYWNjZXB0
YWJsZS12aWV3LW1vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLWZl
YXR1cmUtd2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLmh0bWw6IEFkZGVkLgoqIHBsYXRmb3JtL2d0
ay9Ta2lwcGVkOgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lwcGVk
OgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxNiArKysrCiAuLi5hLWZlYXR1cmUtd2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLWV4cGVj
dGVkLnR4dCB8ICAgIDYgKysKIC4uLi9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXct
bW9kZS5odG1sICAgIHwgICA3NCArKysrKysrKysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMyICsr
KysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgICAgICAgICAgICAg
ICAgfCAgIDIwICsrKy0tLQogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDE0ICsrKysKIFdlYkNvcmUvcGFnZS9DaHJvbWUuaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvcGFnZS9QYWdlLmNwcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MyArKysrKysrKysrKwogV2ViQ29yZS9w
YWdlL1BhZ2UuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysKIFdl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMiAr
KysrKysrKysKIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNyArKy0KIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAzMSArKysrKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcCAgICAgICAgfCAgIDI5ICsrLS0tLS0tCiBXZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAgICB8ICAgIDUgKy0KIC4uLi9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgIHwgICAgOSAtLS0KIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIHwgICAgMSAtCiBXZWJL
aXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKysr
KysKIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCAgIHwg
ICAzMyArKysrKysrKy0KIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmggICAgIHwgICAgNiArKy0KIDIzIGZpbGVzIGNoYW5nZWQsIDM0NiBpbnNlcnRpb25zKCsp
LCA1NiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLWZlYXR1cmUtd2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13
Z3QtYWNjZXB0YWJsZS12aWV3LW1vZGUuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYzQwMzk5Li45NTZiNjc2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDQtMTMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFn
b3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWNjZXB0YWJsZSB2aWV3IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzUwNQorCisgICAgICAgIFRlc3RpbmcgdGhl
IHZpZXcgbW9kZSBjaGFuZ2UgcHJvY2VkdXJlLgorICAgICAgICBTa2lwIG9uIGFsbCBvdGhlciBw
bGF0Zm9ybXMgdGhhbiBRdCB0aGF0IGhhcyBTa2lwcGVkIGZpbGVzLgorCisgICAgICAgICogZmFz
dC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3QtYWNjZXB0
YWJsZS12aWV3LW1vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0v
d2luL1NraXBwZWQ6CisKIDIwMTAtMDQtMTMgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZml4LCBwbGF0Zm9ybSBzcGVjaWZp
YyBleHBlY3RlZCBmaWxlIHVwZGF0ZWQgYWZ0ZXIgcjU3NTExLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LWFj
Y2VwdGFibGUtdmlldy1tb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41NmRjNzA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDYyMHg0MjAgW2JvcmRlcjogKDEwcHggc29saWQgIzAwODAwMCldCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LWFjY2VwdGFibGUt
dmlldy1tb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0
LWFjY2VwdGFibGUtdmlldy1tb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMWYxOTdiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtZmVhdHVyZS13Z3QtYWNjZXB0YWJsZS12aWV3LW1vZGUuaHRtbApAQCAtMCwwICsxLDc0
IEBACis8aHRtbD4KKworPHNjcmlwdD4KKworZnVuY3Rpb24gcnVuVGVzdHMoKQoreworICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICB2
YXIgZXJyb3IgPSBmYWxzZTsKKyAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZXN1bHRzJyk7CisKKyAgICB2YXIgbG9nID0gZnVuY3Rpb24gKHNlcSwgbXNnKSB7Cisg
ICAgICAgIHJlc3VsdHMuaW5uZXJIVE1MICs9ICJGQUlMOiAoIiArIHNlcSArICIpICIgKyBtc2cg
KyAiPGJyPiI7CisgICAgICAgIGlmICghZXJyb3IpIHsKKyAgICAgICAgICAgIGVycm9yID0gdHJ1
ZTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgfQorICAgIH07CisKKyAgICB2YXIgY2hlY2tWaWV3TW9kZSA9IGZ1bmN0aW9uIChzZXEsIGV4
cGVjdGVkKSB7CisgICAgICAgIHZhciBhY3R1YWwgPSBsYXlvdXRUZXN0Q29udHJvbGxlci52aWV3
TW9kZU1lZGlhRmVhdHVyZSgpOworICAgICAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgICAgIGxvZyhzZXEsICJ2aWV3IG1vZGUgaXMgZXhwZWN0ZWQgdG8gYmUgJyIgKyBleHBl
Y3RlZCArICInIGJ1dCBpcyAnIiArIGFjdHVhbCArICIuIik7CisgICAgfTsKKworICAgIHZhciBz
ZXRWaWV3TW9kZSA9IGZ1bmN0aW9uIChzZXEsIHZpZXdNb2RlLCBleHBlY3RlZFJlc3VsdCkgewor
ICAgICAgICB2YXIgcHJldmlvdXMgPSBsYXlvdXRUZXN0Q29udHJvbGxlci52aWV3TW9kZU1lZGlh
RmVhdHVyZSgpOworICAgICAgICB2YXIgcmVzdWx0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
Vmlld01vZGVNZWRpYUZlYXR1cmUodmlld01vZGUpOworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1
bHQgIT09IHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAg
ICBsb2coc2VxLCAidmlldyBtb2RlICciICsgdmlld01vZGUgKyAiJyBzaG91bGQgbm90IGJlIGFj
Y2VwdGVkIGJ1dCB3YXMuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9n
KHNlcSwgInZpZXcgbW9kZSAnIiArIHZpZXdNb2RlICsgIicgc2hvdWxkIGJlIGFjY2VwdGVkIGJ1
dCB3YXMgbm90LiIpOworICAgICAgICB9CisgICAgICAgIGNoZWNrVmlld01vZGUoc2VxLCByZXN1
bHQgPyB2aWV3TW9kZSA6IHByZXZpb3VzKTsKKyAgICB9OworCisgICAgc2V0Vmlld01vZGUoMSwg
J2FwcGxpY2F0aW9uJywgZmFsc2UpOworCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkQWNj
ZXB0YWJsZVZpZXdNb2RlKCdtaW5pJyk7CisgICAgc2V0Vmlld01vZGUoMiwgJ21pbmknLCB0cnVl
KTsKKyAgICBzZXRWaWV3TW9kZSgzLCAnYXBwbGljYXRpb24nLCBmYWxzZSk7CisKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5hZGRBY2NlcHRhYmxlVmlld01vZGUoJ2Zsb2F0aW5nJyk7CisgICAg
c2V0Vmlld01vZGUoNCwgJ21pbmknLCB0cnVlKTsKKyAgICBzZXRWaWV3TW9kZSg1LCAnZmxvYXRp
bmcnLCB0cnVlKTsKKyAgICBzZXRWaWV3TW9kZSg2LCAnYXBwbGljYXRpb24nLCBmYWxzZSk7CisK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZW1vdmVBY2NlcHRhYmxlVmlld01vZGUoJ2Zsb2F0
aW5nJyk7CisgICAgc2V0Vmlld01vZGUoNywgJ21pbmknLCB0cnVlKTsKKyAgICBzZXRWaWV3TW9k
ZSg4LCAnZmxvYXRpbmcnLCBmYWxzZSk7CisKKyAgICBjaGVja1ZpZXdNb2RlKDksICdtaW5pJyk7
Cit9CisKKzwvc2NyaXB0PjxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworZGl2IHsg
Ym9yZGVyOiAxcHggc29saWQgcmVkOyB9CisKK0BtZWRpYSAoLXdlYmtpdC12aWV3LW1vZGU6IG1p
bmkpIHsKKyAgICBkaXYgeyBib3JkZXI6IDEwcHggc29saWQgZ3JlZW47IH0KK30KKworQG1lZGlh
ICgtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIHsKKyAgICBkaXYgeyBib3JkZXI6IDUwcHgg
c29saWQgYmx1ZTsgfQorfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dHMoKSI+CisgICAgPGRpdiBpZD0icmVzdWx0cyIgc3R5bGU9IndpZHRoOjYwMHB4OyBoZWlnaHQ6
NDAwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
aW5kZXggN2IxZjhkNS4uNTcwYjg1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTU4
NzUsNiArNTg3NSw3IEBAIGh0dHAvdGVzdHMvbG9hZGluZy9zdGF0ZS1vYmplY3Qtc2VjdXJpdHkt
ZXhjZXB0aW9uLmh0bWwKIAogIyBObyBXaWRnZXRzIDEuMCBzdXBwb3J0CiBmYXN0L21lZGlhL21l
ZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCitmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUt
d2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLmh0bWwKIAogIyBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIgZG9lc24ndCByZXR1cm4gdG8gTkVUV09SS19JRExFIGFuZCBoZW5jZSBkb2Vzbid0IGZp
cmUgYSBzdXNwZW5kIGV2ZW50CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzAzNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA3NjI2ZGUzLi4xMzUyODRi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTQ3LDYgKzE0Nyw3IEBAIGZhc3QvbWVk
aWEvcHJpbnQtcmVzdG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwKIAogIyBObyBXaWRnZXRz
IDEuMCBzdXBwb3J0CiBmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1s
CitmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLmh0bWwK
IAogIyBUZXN0IGlzIGZsYWt5IGFuZCB0aHVzIG5vdCB1c2VmdWwgdW50aWwgZml4ZWQuCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjY0MgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAppbmRleCBmNmZiMzcxLi5kN2M4ODVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZApAQCAtODI1LDYgKzgyNSw3IEBAIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0
LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAogCiAjIE5vIFdpZGdldHMgMS4wIHN1cHBvcnQKIGZh
c3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKK2Zhc3QvbWVkaWEvbWVk
aWEtZmVhdHVyZS13Z3QtYWNjZXB0YWJsZS12aWV3LW1vZGUuaHRtbAogCiAjIE5lZWQgZXhwZWN0
YXRpb25zLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDYx
CiBmYXN0L3JlcGFpbnQvb3ZlcmZsb3ctc2Nyb2xsLWJvZHktYXBwZWFyLmh0bWwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDU3NmU5NS4u
MGQzMDNlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0wNC0xMyAgTHVpeiBBZ29zdGluaSAgPGx1aXou
YWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBY2NlcHRhYmxlIHZpZXcgbW9kZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTA1CisKKyAgICAgICAgVGVzdDogZmFz
dC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS5odG1sCisKKyAg
ICAgICAgVGhlIHZpZXdNb2RlIG1lZGlhIGZlYXR1cmUgd2FzIGltcGxlbWVudGVkIGluIHByZXZp
b3VzIHBhdGNoIGJ1dCB0aGUgdmlld01vZGUKKyAgICAgICAgc3RyaW5nIHdhcyBrZXB0IGluIFdl
YktpdCBsYXllci4gVGhpcyBwYXRjaCBtb3ZlcyBpdCB0byBXZWJDb3JlIGFkZGluZyBzb21lIGF0
dHJpYnV0ZXMKKyAgICAgICAgdG8gdGhlIGNsYXNzIFBhZ2UuCisKKyAgICAgICAgSXQgYWxzbyBh
ZGRzIHRvIENocm9tZS9DaHJvbWVDbGllbnQgbmV3IG1ldGhvZHMgdGhhdCBhcmUgdXNlZCB0byBh
c2sgQ2hyb21lQ2xpZW50IGlmIGEKKyAgICAgICAgY2VydGFpbiB2aWV3TW9kZSBpcyBhY2NlcHRh
YmxlLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgICogcGFnZS9DaHJv
bWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjphY2NlcHRWaWV3TW9kZUNoYW5nZVJl
cXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphY2NlcHRWaWV3TW9kZUNo
YW5nZVJlcXVlc3QpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9D
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2V0Vmlld01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNEb2NrZWQp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNGbG9hdGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjppc0FwcGxpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzRnVsbHNj
cmVlbik6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp2
aWV3TW9kZSk6CisKIDIwMTAtMDQtMTMgIFN0ZXBoYW4gQcOfbXVzICA8c3VwZXJzdGlwcGlAZ214
LmRlPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcAppbmRleCA0ZmRhMDc1Li42YzE3OTljIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcApAQCAtNTAwLDE3ICs1MDAsMTUgQEAgc3RhdGljIGJvb2wgdmlld19tb2Rl
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZy
YW0KIHsKICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgU3RyaW5nIG1vZGUgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5nVmFsdWUoKTsKLSAgICAgICAg
aWYgKENocm9tZUNsaWVudCogY2xpZW50ID0gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVu
dCgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAibWluaSIgJiYgY2xpZW50LT5pc0RvY2tl
ZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKG1vZGUg
PT0gImZsb2F0aW5nIiAmJiBjbGllbnQtPmlzRmxvYXRpbmcoKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtb2RlID09ICJhcHBsaWNhdGlvbiIgJiYgY2xp
ZW50LT5pc0FwcGxpY2F0aW9uKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgICAgICBpZiAobW9kZSA9PSAiZnVsbHNjcmVlbiIgJiYgY2xpZW50LT5pc0Z1bGxzY3JlZW4o
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQorICAgICAgICBpZiAobW9kZSA9PSAibWluaSIgJiYgZnJhbWUtPnBhZ2Uo
KS0+aXNEb2NrZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAobW9k
ZSA9PSAiZmxvYXRpbmciICYmIGZyYW1lLT5wYWdlKCktPmlzRmxvYXRpbmcoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAobW9kZSA9PSAiYXBwbGljYXRpb24iICYmIGZy
YW1lLT5wYWdlKCktPmlzQXBwbGljYXRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBpZiAobW9kZSA9PSAiZnVsbHNjcmVlbiIgJiYgZnJhbWUtPnBhZ2UoKS0+aXNGdWxs
c2NyZWVuKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggZjQyODYwOC4uNjhjNTY3
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKQEAgLTQ0Nyw2ICs0NDcsMTMgQEAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBD
aHJvbWU6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCitib29sIENocm9tZTo6YWNjZXB0Vmlld01vZGVDaGFu
Z2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdmlld01vZGUpCit7CisgICAgcmV0dXJuIG1fY2xpZW50
LT5hY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3Qodmlld01vZGUpOworfQorI2VuZGlmCisKIC8v
IC0tLS0tLS0tCiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCkBAIC00OTEsNSArNDk4
LDEyIEBAIGJvb2wgQ2hyb21lQ2xpZW50OjpwYWludEN1c3RvbVNjcm9sbENvcm5lcihHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lm
IEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCitib29sIENocm9tZUNsaWVudDo6YWNjZXB0Vmll
d01vZGVDaGFuZ2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdmlld01vZGUpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorI2VuZGlmCisKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDc2
YjQxNDkuLmQxZmNhYjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTU5LDYgKzU5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBDaHJvbWVDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9
CiAKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorICAgICAgICBib29sIGFjY2VwdFZp
ZXdNb2RlQ2hhbmdlUmVxdWVzdChjb25zdCBTdHJpbmcmIHZpZXdNb2RlKTsKKyNlbmRpZgorCiAg
ICAgICAgIC8vIEhvc3RXaW5kb3cgbWV0aG9kcy4KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXgg
NzBmNzRjNi4uNGY0YjQ0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjMxLDEwICsyMzEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBP
UlQpCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0RvY2tlZCgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAg
ICAgdmlydHVhbCBib29sIGlzQXBwbGljYXRpb24oKSB7IHJldHVybiBmYWxzZTsgfQotICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAg
dmlydHVhbCBib29sIGFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVxdWVzdChjb25zdCBTdHJpbmcmIHZp
ZXdNb2RlKTsKICNlbmRpZgogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGQ2NmU0OTcuLmQ4ZTI0
Y2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKQEAgLTIwOCw2ICsyMDgsNDkgQEAgUGFnZTo6flBhZ2UoKQogI2VuZGlmCiB9CiAK
KyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorYm9vbCBQYWdlOjpzZXRWaWV3TW9kZShj
b25zdCBTdHJpbmcmIHZpZXdNb2RlKQoreworICAgIGlmICghY2hyb21lKCktPmFjY2VwdFZpZXdN
b2RlQ2hhbmdlUmVxdWVzdCh2aWV3TW9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmIChtX3ZpZXdNb2RlID09IHZpZXdNb2RlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IG1fdmlld01vZGUgPSB2aWV3TW9kZTsKKworICAgIGlmICghbV9tYWluRnJhbWUgfHwgIW1fbWFp
bkZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIG1fbWFpbkZy
YW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZVNlbGVjdG9yKCk7CisKKyAgICBpZiAobV9tYWlu
RnJhbWUtPnZpZXcoKSkKKyAgICAgICAgbV9tYWluRnJhbWUtPnZpZXcoKS0+Zm9yY2VMYXlvdXQo
KTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFBhZ2U6OmlzRG9ja2VkKCkKK3sKKyAg
ICByZXR1cm4gbV92aWV3TW9kZSA9PSAibWluaSI7Cit9CisKK2Jvb2wgUGFnZTo6aXNGbG9hdGlu
ZygpCit7CisgICAgcmV0dXJuIG1fdmlld01vZGUgPT0gImZsb2F0aW5nIjsKK30KKworYm9vbCBQ
YWdlOjppc0FwcGxpY2F0aW9uKCkKK3sKKyAgICByZXR1cm4gbV92aWV3TW9kZSA9PSAiYXBwbGlj
YXRpb24iOworfQorCitib29sIFBhZ2U6OmlzRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIG1f
dmlld01vZGUgPT0gImZ1bGxzY3JlZW4iOworfQorI2VuZGlmCisKIHZvaWQgUGFnZTo6c2V0TWFp
bkZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+IG1haW5GcmFtZSkKIHsKICAgICBBU1NFUlQoIW1fbWFp
bkZyYW1lKTsgLy8gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIGR1cmluZyBpbml0aWFsaXphdGlvbgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggOTRlNmRkNS4uOWVhOWU1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMjIsNiArMTIyLDE2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgSGlzdG9yeUl0ZW0qIGdsb2JhbEhpc3RvcnlJdGVtKCkgY29uc3QgeyBy
ZXR1cm4gbV9nbG9iYWxIaXN0b3J5SXRlbS5nZXQoKTsgfQogICAgICAgICB2b2lkIHNldEdsb2Jh
bEhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKik7CiAKKworI2lmIEVOQUJMRShXSURHRVRTXzEwX1NV
UFBPUlQpCisgICAgICAgIGJvb2wgc2V0Vmlld01vZGUoY29uc3QgU3RyaW5nJiB2aWV3TW9kZSk7
CisgICAgICAgIFN0cmluZyB2aWV3TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld01vZGU7IH0K
KyAgICAgICAgdmlydHVhbCBib29sIGlzRG9ja2VkKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBp
c0Zsb2F0aW5nKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FwcGxpY2F0aW9uKCk7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3JlZW4oKTsKKyNlbmRpZgorCiAgICAgICAgIHZvaWQg
c2V0R3JvdXBOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBjb25zdCBTdHJpbmcmIGdyb3Vw
TmFtZSgpIGNvbnN0OwogCkBAIC0yNjcsNiArMjc3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICBFZGl0b3JDbGllbnQqIG1fZWRpdG9yQ2xpZW50OwogCisjaWYgRU5BQkxFKFdJ
REdFVFNfMTBfU1VQUE9SVCkKKyAgICAgICAgU3RyaW5nIG1fdmlld01vZGU7CisjZW5kaWYKKwog
ICAgICAgICBpbnQgbV9mcmFtZUNvdW50OwogICAgICAgICBTdHJpbmcgbV9ncm91cE5hbWU7CiAg
ICAgICAgIGJvb2wgbV9vcGVuZWRCeURPTTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdl
YnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggMTgwYzdhZi4uM2Q2
YmJhMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTEyMCw2ICsxMjAsMzEgQEAKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKK2Jvb2wgUVdFQktJVF9FWFBPUlQgcXRfd3J0X3NldFZpZXdNb2RlKFFX
ZWJQYWdlKiBwYWdlLCBjb25zdCBRU3RyaW5nJiBtb2RlKQoreworI2lmIEVOQUJMRShXSURHRVRT
XzEwX1NVUFBPUlQpCisgICAgV2ViQ29yZTo6UGFnZSogY29yZSA9IFFXZWJQYWdlUHJpdmF0ZTo6
Y29yZShwYWdlKTsKKyAgICByZXR1cm4gY29yZSAmJiBjb3JlLT5zZXRWaWV3TW9kZShtb2RlKTsK
KyNlbmRpZgorfQorCitRU3RyaW5nIFFXRUJLSVRfRVhQT1JUIHF0X3dydF92aWV3TW9kZShRV2Vi
UGFnZSogcGFnZSkKK3sKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorICAgIFdlYkNv
cmU6OlBhZ2UqIGNvcmUgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CisgICAgaWYgKGNv
cmUpCisgICAgICAgIHJldHVybiBjb3JlLT52aWV3TW9kZSgpOworI2VuZGlmCisgICAgcmV0dXJu
IFFTdHJpbmcoKTsKK30KKwordm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93cnRfc2V0Vmlld01vZGVI
YW5kbGVyKFFXZWJQYWdlKiBwYWdlLCBib29sICgqY2FsbGJhY2spKGNvbnN0IFFTdHJpbmcmLCB2
b2lkKiksIHZvaWQqIGRhdGEpCit7CisgICAgUVdlYlBhZ2VQcml2YXRlKiBkID0gUVdlYlBhZ2VQ
cml2YXRlOjpwcml2KHBhZ2UpOworICAgIGQtPnZpZXdNb2RlRGF0YSA9IGRhdGE7CisgICAgZC0+
dmlld01vZGVDYWxsYmFjayA9IGNhbGxiYWNrOworfQorCiBib29sIFFXZWJQYWdlUHJpdmF0ZTo6
ZHJ0UnVuID0gZmFsc2U7CiAKIGNsYXNzIFFXZWJQYWdlV2lkZ2V0Q2xpZW50IDogcHVibGljIFFX
ZWJQYWdlQ2xpZW50IHsKQEAgLTM3MCw2ICszOTUsOCBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQ
YWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCiAgICAgLCBpbnNwZWN0b3JGcm9udGVuZCgwKQogICAg
ICwgaW5zcGVjdG9yKDApCiAgICAgLCBpbnNwZWN0b3JJc0ludGVybmFsT25seShmYWxzZSkKKyAg
ICAsIHZpZXdNb2RlRGF0YSgwKQorICAgICwgdmlld01vZGVDYWxsYmFjaygwKQogewogICAgIFdl
YkNvcmU6OkluaXRpYWxpemVMb2dnaW5nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogICAgIEpTQzo6
aW5pdGlhbGl6ZVRocmVhZGluZygpOwpAQCAtNDI0LDYgKzQ1MSwxMSBAQCBRV2ViUGFnZVByaXZh
dGU6On5RV2ViUGFnZVByaXZhdGUoKQogI2VuZGlmCiB9CiAKK2Jvb2wgUVdlYlBhZ2VQcml2YXRl
OjphY2NlcHRWaWV3TW9kZShjb25zdCBRU3RyaW5nJiB2aWV3TW9kZSkKK3sKKyAgICByZXR1cm4g
dmlld01vZGVDYWxsYmFjayAmJiB2aWV3TW9kZUNhbGxiYWNrKHZpZXdNb2RlLCB2aWV3TW9kZURh
dGEpOworfQorCiBXZWJDb3JlOjpQYWdlKiBRV2ViUGFnZVByaXZhdGU6OmNvcmUoUVdlYlBhZ2Uq
IHBhZ2UpCiB7CiAgICAgcmV0dXJuIHBhZ2UtPmQtPnBhZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvQXBpL3F3ZWJwYWdlX3AuaCBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCmluZGV4IDE5
ODc4MDcuLjNiZGVlNDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCisr
KyBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgV2ViQ29yZTo6UGFnZSogY29yZShRV2ViUGFnZSopOwogICAgIHN0YXRpYyBR
V2ViUGFnZVByaXZhdGUqIHByaXYoUVdlYlBhZ2UqKTsKIAorICAgIGJvb2wgYWNjZXB0Vmlld01v
ZGUoY29uc3QgUVN0cmluZyYgdmlld01vZGUpOworCiAgICAgdm9pZCBjcmVhdGVNYWluRnJhbWUo
KTsKICNpZm5kZWYgUVRfTk9fQ09OVEVYVE1FTlUKICAgICBRTWVudSogY3JlYXRlQ29udGV4dE1l
bnUoY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnUqIHdlYmNvcmVNZW51LCBjb25zdCBRTGlzdDxX
ZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+KiBpdGVtcywgUUJpdEFycmF5KiB2aXNpdGVkV2ViQWN0
aW9ucyk7CkBAIC0xODksOSArMTkxLDEwIEBAIHB1YmxpYzoKICAgICAKICAgICBXZWJDb3JlOjpO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdCogbm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
OwogCi0gICAgUVN0cmluZyB2aWV3TW9kZTsKLQogICAgIHN0YXRpYyBib29sIGRydFJ1bjsKKwor
ICAgIHZvaWQqIHZpZXdNb2RlRGF0YTsKKyAgICBib29sICgqdmlld01vZGVDYWxsYmFjaykoY29u
c3QgUVN0cmluZyYsIHZvaWQqKTsKIH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMmQxZWJjMS4uMmNhNjM2ZiAx
MDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDQtMTMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0
aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWNjZXB0YWJsZSB2aWV3IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzUwNQorCisgICAgICAgIEFzIGNsYXNzIFBhZ2Ug
bm93IGhvbGRzIGN1cnJlbnQgdmlld01vZGUgdmFsdWUgdGhlIHJlbGF0ZWQgY29kZSB3YXMgcmVt
b3ZlZCBmcm9tIGNsYXNzZXMKKyAgICAgICAgUVdlYlBhZ2UgYW5kIENocm9tZUNsaWVudFF0Lgor
CisgICAgICAgIEEgbmV3IGhpZGRlbiBBUEkgd2FzIGFkZGVkIHRvIFFXZWJQYWdlLiBUaGlzIEFQ
SSBjYW4gYmUgdXNlZCB0byByZWNlaXZlIG5vdGlmaWNhdGlvbnMgYWJvdXQKKyAgICAgICAgdmll
dyBtb2RlIGNoYW5nZXMgYW5kIHRvIHZhbGlkYXRlIGEgdmlldyBtb2RlIGNoYW5nZSByZXF1ZXN0
LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHF0X3dydF9zZXRWaWV3
TW9kZSk6CisgICAgICAgIChxdF93cnRfdmlld01vZGUpOgorICAgICAgICAocXRfd3J0X3NldFZp
ZXdNb2RlSGFuZGxlcik6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0
ZSk6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmFjY2VwdFZpZXdNb2RlKToKKyAgICAgICAg
KiBBcGkvcXdlYnBhZ2VfcC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjphY2NlcHRWaWV3TW9k
ZUNoYW5nZVJlcXVlc3QpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
Lmg6CisKKyAgICAgICAgTWV0aG9kIHNldFZpZXdNb2RlIHJlbW92ZWQgZnJvbSBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdCBhbmQgbW92ZWQgYmFjayB0byBxd2VicGFnZS5jcHAKKyAgICAgICAgYXMg
cXRfd3J0X3NldFZpZXdNb2RlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNl
dE1lZGlhVHlwZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaDoKKwogMjAxMC0wNC0xMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjU3NDY4LgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggNjI4NmM1MS4u
NmZmN2FhNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
CkBAIC01NTIsNiArNTUyLDEzIEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNjaGVkdWxlQ29tcG9z
aXRpbmdMYXllclN5bmMoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQ
T1JUKQorYm9vbCBDaHJvbWVDbGllbnRRdDo6YWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KGNv
bnN0IFN0cmluZyYgdmlld01vZGUpCit7CisgICAgcmV0dXJuIFFXZWJQYWdlUHJpdmF0ZTo6cHJp
dihtX3dlYlBhZ2UpLT5hY2NlcHRWaWV3TW9kZSh2aWV3TW9kZSk7Cit9CisjZW5kaWYKKwogUXRB
YnN0cmFjdFdlYlBvcHVwKiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0UG9wdXAoKQogewog
I2lmIGRlZmluZWQoUV9XU19NQUVNT181KQpAQCAtNTYxLDI2ICs1NjgsNCBAQCBRdEFic3RyYWN0
V2ViUG9wdXAqIENocm9tZUNsaWVudFF0OjpjcmVhdGVTZWxlY3RQb3B1cCgpCiAjZW5kaWYKIH0K
IAotI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCi1ib29sIENocm9tZUNsaWVudFF0Ojpp
c0RvY2tlZCgpCi17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+ZC0+dmlld01vZGUgPT0gIm1pbmki
OwotfQotCi1ib29sIENocm9tZUNsaWVudFF0Ojppc0Zsb2F0aW5nKCkKLXsKLSAgICByZXR1cm4g
bV93ZWJQYWdlLT5kLT52aWV3TW9kZSA9PSAiZmxvYXRpbmciOwotfQotCi1ib29sIENocm9tZUNs
aWVudFF0Ojppc0FwcGxpY2F0aW9uKCkKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT52aWV3
TW9kZSA9PSAiYXBwbGljYXRpb24iOwotfQotCi1ib29sIENocm9tZUNsaWVudFF0Ojppc0Z1bGxz
Y3JlZW4oKQotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPnZpZXdNb2RlID09ICJmdWxsc2Ny
ZWVuIjsKLX0KLSNlbmRpZgotCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oCmluZGV4IDg1ZWI4NTQuLjNkMzdkYWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xNTksMTAgKzE1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgeyB9CiAKICNpZiBFTkFCTEUoV0lER0VU
U18xMF9TVVBQT1JUKQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEb2NrZWQoKTsKLSAgICAgICAg
dmlydHVhbCBib29sIGlzRmxvYXRpbmcoKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzQXBwbGlj
YXRpb24oKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlbigpOworICAgICAgICB2
aXJ0dWFsIGJvb2wgYWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdmll
d01vZGUpOwogI2VuZGlmCiAKICAgICAgICAgUXRBYnN0cmFjdFdlYlBvcHVwKiBjcmVhdGVTZWxl
Y3RQb3B1cCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNTJhMzkxZS4uMTg5ZWVjYyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC0z
NDIsMTIgKzM0MiwzIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1lZGlhVHlw
ZShRV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBRU3RyaW5nJiB0eXBlCiAgICAgY29yZUZyYW1lLT5k
b2N1bWVudCgpLT51cGRhdGVTdHlsZVNlbGVjdG9yKCk7CiAgICAgdmlldy0+Zm9yY2VMYXlvdXQo
KTsKIH0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0Vmlld01vZGUoUVdlYlBh
Z2UqIHBhZ2UsIGNvbnN0IFFTdHJpbmcmIG1vZGUpCi17Ci0gICAgUVdlYlBhZ2VQcml2YXRlOjpw
cml2KHBhZ2UpLT52aWV3TW9kZSA9IG1vZGU7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0g
UVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShwYWdlLT5tYWluRnJhbWUoKSk7Ci0gICAgV2ViQ29yZTo6
RnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKLSAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+
dXBkYXRlU3R5bGVTZWxlY3RvcigpOwotICAgIHZpZXctPmZvcmNlTGF5b3V0KCk7Ci19CmRpZmYg
LS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmlu
ZGV4IDdlMDNkN2MuLjI1NjI5N2YgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC02Niw3ICs2Niw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUVN0cmluZyBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChRV2ViRnJhbWUqIGZy
YW1lLCBjb25zdCBRU3RyaW5nJiBpZCk7CiAgICAgc3RhdGljIHZvaWQgd2ViUGFnZVNldEdyb3Vw
TmFtZShRV2ViUGFnZSogcGFnZSwgY29uc3QgUVN0cmluZyYgZ3JvdXBOYW1lKTsKICAgICBzdGF0
aWMgdm9pZCBjbGVhckZyYW1lTmFtZShRV2ViRnJhbWUqIGZyYW1lKTsKLSAgICBzdGF0aWMgdm9p
ZCBzZXRWaWV3TW9kZShRV2ViUGFnZSogcGFnZSwgY29uc3QgUVN0cmluZyYgbW9kZSk7CiAgICAg
c3RhdGljIHZvaWQgb3ZlcndyaXRlUGx1Z2luRGlyZWN0b3JpZXMoKTsKICAgICBzdGF0aWMgaW50
IG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhRV2ViRnJhbWUqKTsKICAgICBzdGF0aWMgaW50IG51
bWJlck9mUGFnZXMoUVdlYkZyYW1lKiBmcmFtZSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKaW5kZXggM2NlNGI5ZS4uNWFhOTE1MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA0
LTEzICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2VwdGFibGUgdmll
dyBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzc1MDUKKworICAgICAgICBBZGRpbmcgbWV0aG9kIHRvIExheW91dFRlc3RDb250cm9sbGVyUXQg
dG8gc3VwcG9ydCB0ZXN0aW5nIG9mIHZpZXcgbW9kZSBjaGFuZ2UKKyAgICAgICAgcHJvY2VkdXJl
LiBMYXlvdXRUZXN0Q29udHJvbGxlclF0IHVzZXMgaGlkZGVuIEFQSSBwcm92aWRlZCBieSBxd2Vi
cGFnZS5jcHAgZm9yIHRoYXQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6dmll
d01vZGVNZWRpYUZlYXR1cmUpOgorICAgICAgICAoY2hlY2tWaWV3TW9kZSk6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkQWNjZXB0YWJsZVZpZXdNb2RlKToKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVBY2NlcHRhYmxlVmlld01vZGUpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKwogMjAxMC0wNC0x
MyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IGJ1dCBhcHByb3ZlZCBieSBEdW1pdHJ1IERhbmlsaXVjLiAgKFRoaXMgcGF0Y2ggaXMgaW50ZW5k
ZWQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5jcHAKaW5kZXggM2NhZDViMi4uOWExYjc2NyAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHAKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNsdWRlIDxRTG9jYWxlPgogI2luY2x1ZGUgPHF3ZWJz
ZXR0aW5ncy5oPgogCitleHRlcm4gYm9vbCBxdF93cnRfc2V0Vmlld01vZGUoUVdlYlBhZ2UqLCBj
b25zdCBRU3RyaW5nJiBtb2RlKTsKK2V4dGVybiBRU3RyaW5nIHF0X3dydF92aWV3TW9kZShRV2Vi
UGFnZSogcGFnZSk7CitleHRlcm4gdm9pZCBxdF93cnRfc2V0Vmlld01vZGVIYW5kbGVyKFFXZWJQ
YWdlKiBwYWdlLCBib29sICgqY2FsbGJhY2spKGNvbnN0IFFTdHJpbmcmLCB2b2lkKiksIHZvaWQq
IGRhdGEpOwogZXh0ZXJuIHZvaWQgcXRfZHVtcF9lZGl0aW5nX2NhbGxiYWNrcyhib29sIGIpOwog
ZXh0ZXJuIHZvaWQgcXRfZHVtcF9mcmFtZV9sb2FkZXIoYm9vbCBiKTsKIGV4dGVybiB2b2lkIHF0
X2R1bXBfcmVzb3VyY2VfbG9hZF9jYWxsYmFja3MoYm9vbCBiKTsKQEAgLTEzNyw5ICsxNDAsMzUg
QEAgUVN0cmluZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoY29uc3QgUVN0cmluZyYgaWQpCiAgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
Ojpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUo
KSwgaWQpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRWaWV3TW9kZU1lZGlh
RmVhdHVyZShjb25zdCBRU3RyaW5nJiBtb2RlKQorYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3QgUVN0cmluZyYgbW9kZSkKIHsKLSAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0Vmlld01vZGUobV9kcnQtPndlYlBhZ2UoKSwgbW9kZSk7
CisgICAgcmV0dXJuIHF0X3dydF9zZXRWaWV3TW9kZShtX2RydC0+d2ViUGFnZSgpLCBtb2RlKTsK
K30KKworUVN0cmluZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6dmlld01vZGVNZWRpYUZlYXR1cmUo
KQoreworICAgIHJldHVybiBxdF93cnRfdmlld01vZGUobV9kcnQtPndlYlBhZ2UoKSk7Cit9CisK
K3N0YXRpYyBib29sIGNoZWNrVmlld01vZGUoY29uc3QgUVN0cmluZyYgdmlld01vZGUsIHZvaWQq
IGRhdGEpCit7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UVN0cmluZ0xpc3QqPihkYXRh
KS0+Y29udGFpbnModmlld01vZGUpOworfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjph
ZGRBY2NlcHRhYmxlVmlld01vZGUoY29uc3QgUVN0cmluZyYgdmlld01vZGUpCit7CisgICAgaWYg
KCFtX2FjY2VwdGFibGVWaWV3TW9kZXMuY29udGFpbnModmlld01vZGUpKSB7CisgICAgICAgIG1f
YWNjZXB0YWJsZVZpZXdNb2RlcyA8PCB2aWV3TW9kZTsKKyAgICAgICAgaWYgKG1fYWNjZXB0YWJs
ZVZpZXdNb2Rlcy5zaXplKCkgPT0gMSkKKyAgICAgICAgICAgIHF0X3dydF9zZXRWaWV3TW9kZUhh
bmRsZXIobV9kcnQtPndlYlBhZ2UoKSwgY2hlY2tWaWV3TW9kZSwgJm1fYWNjZXB0YWJsZVZpZXdN
b2Rlcyk7CisgICAgfQorfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVBY2Nl
cHRhYmxlVmlld01vZGUoY29uc3QgUVN0cmluZyYgdmlld01vZGUpCit7CisgICAgbV9hY2NlcHRh
YmxlVmlld01vZGVzLnJlbW92ZUFsbCh2aWV3TW9kZSk7CisgICAgaWYgKG1fYWNjZXB0YWJsZVZp
ZXdNb2Rlcy5zaXplKCkgPT0gMCkKKyAgICAgICAgcXRfd3J0X3NldFZpZXdNb2RlSGFuZGxlciht
X2RydC0+d2ViUGFnZSgpLCAwLCAwKTsKIH0KIAogaW50IExheW91dFRlc3RDb250cm9sbGVyOjp3
ZWJIaXN0b3J5SXRlbUNvdW50KCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCBhMjk5ZDgwLi4wNGFiYzkyIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5oCkBAIC0xNDUsNyArMTQ1LDEwIEBAIHB1YmxpYyBzbG90czoKICAgICB2b2lk
IHNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoYm9vbCBpc0ZpcnN0KTsKICAgICB2b2lkIHNl
dFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgZW5hYmxlKTsKICAgICB2b2lkIHNldENhcmV0QnJvd3Np
bmdFbmFibGVkKGJvb2wgZW5hYmxlKTsKLSAgICB2b2lkIHNldFZpZXdNb2RlTWVkaWFGZWF0dXJl
KGNvbnN0IFFTdHJpbmcmIG1vZGUpOworICAgIGJvb2wgc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUo
Y29uc3QgUVN0cmluZyYgbW9kZSk7CisgICAgUVN0cmluZyB2aWV3TW9kZU1lZGlhRmVhdHVyZSgp
OworICAgIHZvaWQgYWRkQWNjZXB0YWJsZVZpZXdNb2RlKGNvbnN0IFFTdHJpbmcmIHZpZXdNb2Rl
KTsKKyAgICB2b2lkIHJlbW92ZUFjY2VwdGFibGVWaWV3TW9kZShjb25zdCBRU3RyaW5nJiB2aWV3
TW9kZSk7CiAKICAgICBib29sIHBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGNv
bnN0IFFTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lLCBjb25zdCBRU3RyaW5nJiBl
bGVtZW50SWQpOwogICAgIGJvb2wgcGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElk
KGNvbnN0IFFTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IFFTdHJpbmcm
IGVsZW1lbnRJZCk7CkBAIC0yMDAsNiArMjAzLDcgQEAgcHJpdmF0ZToKICAgICBRV2ViRnJhbWUq
IG1fdG9wTG9hZGluZ0ZyYW1lOwogICAgIFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlKiBtX2RydDsK
ICAgICBRV2ViSGlzdG9yeSogbV93ZWJIaXN0b3J5OworICAgIFFTdHJpbmdMaXN0IG1fYWNjZXB0
YWJsZVZpZXdNb2RlczsKIH07CiAKICNlbmRpZiAvLyBMYXlvdXRUZXN0Q29udHJvbGxlclF0X2gK
LS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53263</attachid>
            <date>2010-04-13 11:01:38 -0700</date>
            <delta_ts>2010-07-29 09:38:08 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>0001-Acceptable-view-modes.patch</filename>
            <type>text/plain</type>
            <size>27882</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBlMWQ1NzBkOTRiY2RiNTgxNGE0ODRmMWZiZmFiMzliZmE0MDJlNDA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMTMgQXByIDIwMTAgMTQ6NTc6MTAgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBBY2NlcHRhYmxlIHZpZXcgbW9kZXMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzUwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoK
VGVzdDogZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS5o
dG1sCgpUaGUgdmlld01vZGUgbWVkaWEgZmVhdHVyZSB3YXMgaW1wbGVtZW50ZWQgaW4gcHJldmlv
dXMgcGF0Y2ggYnV0IHRoZSB2aWV3TW9kZQpzdHJpbmcgd2FzIGtlcHQgaW4gV2ViS2l0IGxheWVy
LiBUaGlzIHBhdGNoIG1vdmVzIGl0IHRvIFdlYkNvcmUgYWRkaW5nIHNvbWUgYXR0cmlidXRlcwp0
byB0aGUgY2xhc3MgUGFnZS4KCkl0IGFsc28gYWRkcyB0byBDaHJvbWUvQ2hyb21lQ2xpZW50IG5l
dyBtZXRob2RzIHRoYXQgYXJlIHVzZWQgdG8gYXNrIENocm9tZUNsaWVudCBpZiBhCmNlcnRhaW4g
dmlld01vZGUgaXMgYWNjZXB0YWJsZS4KCiogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgoo
V2ViQ29yZTo6dmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbCk6CiogcGFnZS9DaHJvbWUuY3BwOgoo
V2ViQ29yZTo6Q2hyb21lOjphY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3QpOgooV2ViQ29yZTo6
Q2hyb21lQ2xpZW50OjphY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3QpOgoqIHBhZ2UvQ2hyb21l
Lmg6CiogcGFnZS9DaHJvbWVDbGllbnQuaDoKKiBwYWdlL1BhZ2UuY3BwOgooV2ViQ29yZTo6UGFn
ZTo6c2V0Vmlld01vZGUpOgooV2ViQ29yZTo6UGFnZTo6aXNEb2NrZWQpOgooV2ViQ29yZTo6UGFn
ZTo6aXNGbG9hdGluZyk6CihXZWJDb3JlOjpQYWdlOjppc0FwcGxpY2F0aW9uKToKKFdlYkNvcmU6
OlBhZ2U6OmlzRnVsbHNjcmVlbik6CiogcGFnZS9QYWdlLmg6CihXZWJDb3JlOjpQYWdlOjp2aWV3
TW9kZSk6CgpXZWJLaXQvcXQ6CgpBcyBjbGFzcyBQYWdlIG5vdyBob2xkcyBjdXJyZW50IHZpZXdN
b2RlIHZhbHVlIHRoZSByZWxhdGVkIGNvZGUgd2FzIHJlbW92ZWQgZnJvbSBjbGFzc2VzClFXZWJQ
YWdlIGFuZCBDaHJvbWVDbGllbnRRdC4KCkEgbmV3IGhpZGRlbiBBUEkgd2FzIGFkZGVkIHRvIFFX
ZWJQYWdlLiBUaGlzIEFQSSBjYW4gYmUgdXNlZCB0byByZWNlaXZlIG5vdGlmaWNhdGlvbnMgYWJv
dXQKdmlldyBtb2RlIGNoYW5nZXMgYW5kIHRvIHZhbGlkYXRlIGEgdmlldyBtb2RlIGNoYW5nZSBy
ZXF1ZXN0LgoKKiBBcGkvcXdlYnBhZ2UuY3BwOgoocXRfd3J0X3NldFZpZXdNb2RlKToKKHF0X3dy
dF92aWV3TW9kZSk6CihxdF93cnRfc2V0Vmlld01vZGVIYW5kbGVyKToKKFFXZWJQYWdlUHJpdmF0
ZTo6UVdlYlBhZ2VQcml2YXRlKToKKFFXZWJQYWdlUHJpdmF0ZTo6YWNjZXB0Vmlld01vZGUpOgoq
IEFwaS9xd2VicGFnZV9wLmg6CiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgoo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVxdWVzdCk6Ciog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKCk1ldGhvZCBzZXRWaWV3TW9kZSByZW1v
dmVkIGZyb20gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQgYW5kIG1vdmVkIGJhY2sgdG8gcXdlYnBh
Z2UuY3BwCmFzIHF0X3dydF9zZXRWaWV3TW9kZS4KCiogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwOgooRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1lZGlhVHlw
ZSk6CiogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKCldlYktpdFRv
b2xzOgoKQWRkaW5nIG1ldGhvZCB0byBMYXlvdXRUZXN0Q29udHJvbGxlclF0IHRvIHN1cHBvcnQg
dGVzdGluZyBvZiB2aWV3IG1vZGUgY2hhbmdlCnByb2NlZHVyZS4gTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdCB1c2VzIGhpZGRlbiBBUEkgcHJvdmlkZWQgYnkgcXdlYnBhZ2UuY3BwIGZvciB0aGF0LgoK
KiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSk6CihMYXlvdXRUZXN0Q29udHJv
bGxlcjo6dmlld01vZGVNZWRpYUZlYXR1cmUpOgooY2hlY2tWaWV3TW9kZSk6CihMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YWRkQWNjZXB0YWJsZVZpZXdNb2RlKToKKExheW91dFRlc3RDb250cm9sbGVy
OjpyZW1vdmVBY2NlcHRhYmxlVmlld01vZGUpOgoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuaDoKCkxheW91dFRlc3RzOgoKVGVzdGluZyB0aGUgdmlldyBtb2RlIGNo
YW5nZSBwcm9jZWR1cmUuClNraXAgb24gYWxsIG90aGVyIHBsYXRmb3JtcyB0aGFuIFF0IHRoYXQg
aGFzIFNraXBwZWQgZmlsZXMuCgoqIGZhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3QtYWNjZXB0
YWJsZS12aWV3LW1vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLWZl
YXR1cmUtd2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLmh0bWw6IEFkZGVkLgoqIHBsYXRmb3JtL2d0
ay9Ta2lwcGVkOgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lwcGVk
OgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxNiArKysrCiAuLi5hLWZlYXR1cmUtd2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLWV4cGVj
dGVkLnR4dCB8ICAgIDYgKysKIC4uLi9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXct
bW9kZS5odG1sICAgIHwgICA3NCArKysrKysrKysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMyICsr
KysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgICAgICAgICAgICAg
ICAgfCAgIDIwICsrKy0tLQogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDE0ICsrKysKIFdlYkNvcmUvcGFnZS9DaHJvbWUuaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvcGFnZS9QYWdlLmNwcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MyArKysrKysrKysrKwogV2ViQ29yZS9w
YWdlL1BhZ2UuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysKIFdl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMiAr
KysrKysrKysKIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNyArKy0KIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAzMSArKysrKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcCAgICAgICAgfCAgIDI5ICsrLS0tLS0tCiBXZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgICAgICAgICB8ICAgIDUgKy0KIC4uLi9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgIHwgICAgOSAtLS0KIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIHwgICAgMSAtCiBXZWJL
aXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKysr
KysKIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCAgIHwg
ICAzMyArKysrKysrKy0KIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmggICAgIHwgICAgNiArKy0KIDIzIGZpbGVzIGNoYW5nZWQsIDM0NiBpbnNlcnRpb25zKCsp
LCA1NiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21lZGlhLWZlYXR1cmUtd2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13
Z3QtYWNjZXB0YWJsZS12aWV3LW1vZGUuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYzQwMzk5Li45NTZiNjc2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDQtMTMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFn
b3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWNjZXB0YWJsZSB2aWV3IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzUwNQorCisgICAgICAgIFRlc3RpbmcgdGhl
IHZpZXcgbW9kZSBjaGFuZ2UgcHJvY2VkdXJlLgorICAgICAgICBTa2lwIG9uIGFsbCBvdGhlciBw
bGF0Zm9ybXMgdGhhbiBRdCB0aGF0IGhhcyBTa2lwcGVkIGZpbGVzLgorCisgICAgICAgICogZmFz
dC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3QtYWNjZXB0
YWJsZS12aWV3LW1vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0v
d2luL1NraXBwZWQ6CisKIDIwMTAtMDQtMTMgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZml4LCBwbGF0Zm9ybSBzcGVjaWZp
YyBleHBlY3RlZCBmaWxlIHVwZGF0ZWQgYWZ0ZXIgcjU3NTExLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LWFj
Y2VwdGFibGUtdmlldy1tb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41NmRjNzA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDYyMHg0MjAgW2JvcmRlcjogKDEwcHggc29saWQgIzAwODAwMCldCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LWFjY2VwdGFibGUt
dmlldy1tb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0
LWFjY2VwdGFibGUtdmlldy1tb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMWYxOTdiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtZmVhdHVyZS13Z3QtYWNjZXB0YWJsZS12aWV3LW1vZGUuaHRtbApAQCAtMCwwICsxLDc0
IEBACis8aHRtbD4KKworPHNjcmlwdD4KKworZnVuY3Rpb24gcnVuVGVzdHMoKQoreworICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICB2
YXIgZXJyb3IgPSBmYWxzZTsKKyAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZXN1bHRzJyk7CisKKyAgICB2YXIgbG9nID0gZnVuY3Rpb24gKHNlcSwgbXNnKSB7Cisg
ICAgICAgIHJlc3VsdHMuaW5uZXJIVE1MICs9ICJGQUlMOiAoIiArIHNlcSArICIpICIgKyBtc2cg
KyAiPGJyPiI7CisgICAgICAgIGlmICghZXJyb3IpIHsKKyAgICAgICAgICAgIGVycm9yID0gdHJ1
ZTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgfQorICAgIH07CisKKyAgICB2YXIgY2hlY2tWaWV3TW9kZSA9IGZ1bmN0aW9uIChzZXEsIGV4
cGVjdGVkKSB7CisgICAgICAgIHZhciBhY3R1YWwgPSBsYXlvdXRUZXN0Q29udHJvbGxlci52aWV3
TW9kZU1lZGlhRmVhdHVyZSgpOworICAgICAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgICAgIGxvZyhzZXEsICJ2aWV3IG1vZGUgaXMgZXhwZWN0ZWQgdG8gYmUgJyIgKyBleHBl
Y3RlZCArICInIGJ1dCBpcyAnIiArIGFjdHVhbCArICIuIik7CisgICAgfTsKKworICAgIHZhciBz
ZXRWaWV3TW9kZSA9IGZ1bmN0aW9uIChzZXEsIHZpZXdNb2RlLCBleHBlY3RlZFJlc3VsdCkgewor
ICAgICAgICB2YXIgcHJldmlvdXMgPSBsYXlvdXRUZXN0Q29udHJvbGxlci52aWV3TW9kZU1lZGlh
RmVhdHVyZSgpOworICAgICAgICB2YXIgcmVzdWx0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
Vmlld01vZGVNZWRpYUZlYXR1cmUodmlld01vZGUpOworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1
bHQgIT09IHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAg
ICBsb2coc2VxLCAidmlldyBtb2RlICciICsgdmlld01vZGUgKyAiJyBzaG91bGQgbm90IGJlIGFj
Y2VwdGVkIGJ1dCB3YXMuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9n
KHNlcSwgInZpZXcgbW9kZSAnIiArIHZpZXdNb2RlICsgIicgc2hvdWxkIGJlIGFjY2VwdGVkIGJ1
dCB3YXMgbm90LiIpOworICAgICAgICB9CisgICAgICAgIGNoZWNrVmlld01vZGUoc2VxLCByZXN1
bHQgPyB2aWV3TW9kZSA6IHByZXZpb3VzKTsKKyAgICB9OworCisgICAgc2V0Vmlld01vZGUoMSwg
J2FwcGxpY2F0aW9uJywgZmFsc2UpOworCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkQWNj
ZXB0YWJsZVZpZXdNb2RlKCdtaW5pJyk7CisgICAgc2V0Vmlld01vZGUoMiwgJ21pbmknLCB0cnVl
KTsKKyAgICBzZXRWaWV3TW9kZSgzLCAnYXBwbGljYXRpb24nLCBmYWxzZSk7CisKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5hZGRBY2NlcHRhYmxlVmlld01vZGUoJ2Zsb2F0aW5nJyk7CisgICAg
c2V0Vmlld01vZGUoNCwgJ21pbmknLCB0cnVlKTsKKyAgICBzZXRWaWV3TW9kZSg1LCAnZmxvYXRp
bmcnLCB0cnVlKTsKKyAgICBzZXRWaWV3TW9kZSg2LCAnYXBwbGljYXRpb24nLCBmYWxzZSk7CisK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZW1vdmVBY2NlcHRhYmxlVmlld01vZGUoJ2Zsb2F0
aW5nJyk7CisgICAgc2V0Vmlld01vZGUoNywgJ21pbmknLCB0cnVlKTsKKyAgICBzZXRWaWV3TW9k
ZSg4LCAnZmxvYXRpbmcnLCBmYWxzZSk7CisKKyAgICBjaGVja1ZpZXdNb2RlKDksICdtaW5pJyk7
Cit9CisKKzwvc2NyaXB0PjxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworZGl2IHsg
Ym9yZGVyOiAxcHggc29saWQgcmVkOyB9CisKK0BtZWRpYSAoLXdlYmtpdC12aWV3LW1vZGU6IG1p
bmkpIHsKKyAgICBkaXYgeyBib3JkZXI6IDEwcHggc29saWQgZ3JlZW47IH0KK30KKworQG1lZGlh
ICgtd2Via2l0LXZpZXctbW9kZTogZmxvYXRpbmcpIHsKKyAgICBkaXYgeyBib3JkZXI6IDUwcHgg
c29saWQgYmx1ZTsgfQorfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dHMoKSI+CisgICAgPGRpdiBpZD0icmVzdWx0cyIgc3R5bGU9IndpZHRoOjYwMHB4OyBoZWlnaHQ6
NDAwcHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
aW5kZXggN2IxZjhkNS4uNTcwYjg1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTU4
NzUsNiArNTg3NSw3IEBAIGh0dHAvdGVzdHMvbG9hZGluZy9zdGF0ZS1vYmplY3Qtc2VjdXJpdHkt
ZXhjZXB0aW9uLmh0bWwKIAogIyBObyBXaWRnZXRzIDEuMCBzdXBwb3J0CiBmYXN0L21lZGlhL21l
ZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCitmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUt
d2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLmh0bWwKIAogIyBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIgZG9lc24ndCByZXR1cm4gdG8gTkVUV09SS19JRExFIGFuZCBoZW5jZSBkb2Vzbid0IGZp
cmUgYSBzdXNwZW5kIGV2ZW50CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzAzNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA3NjI2ZGUzLi4xMzUyODRi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTQ3LDYgKzE0Nyw3IEBAIGZhc3QvbWVk
aWEvcHJpbnQtcmVzdG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwKIAogIyBObyBXaWRnZXRz
IDEuMCBzdXBwb3J0CiBmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1s
CitmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LWFjY2VwdGFibGUtdmlldy1tb2RlLmh0bWwK
IAogIyBUZXN0IGlzIGZsYWt5IGFuZCB0aHVzIG5vdCB1c2VmdWwgdW50aWwgZml4ZWQuCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjY0MgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAppbmRleCBmNmZiMzcxLi5kN2M4ODVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZApAQCAtODI1LDYgKzgyNSw3IEBAIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0
LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbAogCiAjIE5vIFdpZGdldHMgMS4wIHN1cHBvcnQKIGZh
c3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKK2Zhc3QvbWVkaWEvbWVk
aWEtZmVhdHVyZS13Z3QtYWNjZXB0YWJsZS12aWV3LW1vZGUuaHRtbAogCiAjIE5lZWQgZXhwZWN0
YXRpb25zLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDYx
CiBmYXN0L3JlcGFpbnQvb3ZlcmZsb3ctc2Nyb2xsLWJvZHktYXBwZWFyLmh0bWwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDU3NmU5NS4u
MGQzMDNlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0wNC0xMyAgTHVpeiBBZ29zdGluaSAgPGx1aXou
YWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBY2NlcHRhYmxlIHZpZXcgbW9kZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTA1CisKKyAgICAgICAgVGVzdDogZmFz
dC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC1hY2NlcHRhYmxlLXZpZXctbW9kZS5odG1sCisKKyAg
ICAgICAgVGhlIHZpZXdNb2RlIG1lZGlhIGZlYXR1cmUgd2FzIGltcGxlbWVudGVkIGluIHByZXZp
b3VzIHBhdGNoIGJ1dCB0aGUgdmlld01vZGUKKyAgICAgICAgc3RyaW5nIHdhcyBrZXB0IGluIFdl
YktpdCBsYXllci4gVGhpcyBwYXRjaCBtb3ZlcyBpdCB0byBXZWJDb3JlIGFkZGluZyBzb21lIGF0
dHJpYnV0ZXMKKyAgICAgICAgdG8gdGhlIGNsYXNzIFBhZ2UuCisKKyAgICAgICAgSXQgYWxzbyBh
ZGRzIHRvIENocm9tZS9DaHJvbWVDbGllbnQgbmV3IG1ldGhvZHMgdGhhdCBhcmUgdXNlZCB0byBh
c2sgQ2hyb21lQ2xpZW50IGlmIGEKKyAgICAgICAgY2VydGFpbiB2aWV3TW9kZSBpcyBhY2NlcHRh
YmxlLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgICogcGFnZS9DaHJv
bWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjphY2NlcHRWaWV3TW9kZUNoYW5nZVJl
cXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphY2NlcHRWaWV3TW9kZUNo
YW5nZVJlcXVlc3QpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9D
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6c2V0Vmlld01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNEb2NrZWQp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNGbG9hdGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjppc0FwcGxpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzRnVsbHNj
cmVlbik6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp2
aWV3TW9kZSk6CisKIDIwMTAtMDQtMTMgIFN0ZXBoYW4gQcOfbXVzICA8c3VwZXJzdGlwcGlAZ214
LmRlPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcAppbmRleCA0ZmRhMDc1Li42YzE3OTljIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcApAQCAtNTAwLDE3ICs1MDAsMTUgQEAgc3RhdGljIGJvb2wgdmlld19tb2Rl
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZy
YW0KIHsKICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgU3RyaW5nIG1vZGUgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5nVmFsdWUoKTsKLSAgICAgICAg
aWYgKENocm9tZUNsaWVudCogY2xpZW50ID0gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVu
dCgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAibWluaSIgJiYgY2xpZW50LT5pc0RvY2tl
ZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKG1vZGUg
PT0gImZsb2F0aW5nIiAmJiBjbGllbnQtPmlzRmxvYXRpbmcoKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtb2RlID09ICJhcHBsaWNhdGlvbiIgJiYgY2xp
ZW50LT5pc0FwcGxpY2F0aW9uKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgICAgICBpZiAobW9kZSA9PSAiZnVsbHNjcmVlbiIgJiYgY2xpZW50LT5pc0Z1bGxzY3JlZW4o
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQorICAgICAgICBpZiAobW9kZSA9PSAibWluaSIgJiYgZnJhbWUtPnBhZ2Uo
KS0+aXNEb2NrZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAobW9k
ZSA9PSAiZmxvYXRpbmciICYmIGZyYW1lLT5wYWdlKCktPmlzRmxvYXRpbmcoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAobW9kZSA9PSAiYXBwbGljYXRpb24iICYmIGZy
YW1lLT5wYWdlKCktPmlzQXBwbGljYXRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBpZiAobW9kZSA9PSAiZnVsbHNjcmVlbiIgJiYgZnJhbWUtPnBhZ2UoKS0+aXNGdWxs
c2NyZWVuKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggZjQyODYwOC4uNjhjNTY3
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKQEAgLTQ0Nyw2ICs0NDcsMTMgQEAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBD
aHJvbWU6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCitib29sIENocm9tZTo6YWNjZXB0Vmlld01vZGVDaGFu
Z2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdmlld01vZGUpCit7CisgICAgcmV0dXJuIG1fY2xpZW50
LT5hY2NlcHRWaWV3TW9kZUNoYW5nZVJlcXVlc3Qodmlld01vZGUpOworfQorI2VuZGlmCisKIC8v
IC0tLS0tLS0tCiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCkBAIC00OTEsNSArNDk4
LDEyIEBAIGJvb2wgQ2hyb21lQ2xpZW50OjpwYWludEN1c3RvbVNjcm9sbENvcm5lcihHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lm
IEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCitib29sIENocm9tZUNsaWVudDo6YWNjZXB0Vmll
d01vZGVDaGFuZ2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdmlld01vZGUpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorI2VuZGlmCisKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDc2
YjQxNDkuLmQxZmNhYjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTU5LDYgKzU5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBDaHJvbWVDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9
CiAKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorICAgICAgICBib29sIGFjY2VwdFZp
ZXdNb2RlQ2hhbmdlUmVxdWVzdChjb25zdCBTdHJpbmcmIHZpZXdNb2RlKTsKKyNlbmRpZgorCiAg
ICAgICAgIC8vIEhvc3RXaW5kb3cgbWV0aG9kcy4KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXgg
NzBmNzRjNi4uNGY0YjQ0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjMxLDEwICsyMzEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBP
UlQpCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0RvY2tlZCgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAg
ICAgdmlydHVhbCBib29sIGlzQXBwbGljYXRpb24oKSB7IHJldHVybiBmYWxzZTsgfQotICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAg
dmlydHVhbCBib29sIGFjY2VwdFZpZXdNb2RlQ2hhbmdlUmVxdWVzdChjb25zdCBTdHJpbmcmIHZp
ZXdNb2RlKTsKICNlbmRpZgogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGQ2NmU0OTcuLmQ4ZTI0
Y2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKQEAgLTIwOCw2ICsyMDgsNDkgQEAgUGFnZTo6flBhZ2UoKQogI2VuZGlmCiB9CiAK
KyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorYm9vbCBQYWdlOjpzZXRWaWV3TW9kZShj
b25zdCBTdHJpbmcmIHZpZXdNb2RlKQoreworICAgIGlmICghY2hyb21lKCktPmFjY2VwdFZpZXdN
b2RlQ2hhbmdlUmVxdWVzdCh2aWV3TW9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmIChtX3ZpZXdNb2RlID09IHZpZXdNb2RlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IG1fdmlld01vZGUgPSB2aWV3TW9kZTsKKworICAgIGlmICghbV9tYWluRnJhbWUgfHwgIW1fbWFp
bkZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIG1fbWFpbkZy
YW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZVNlbGVjdG9yKCk7CisKKyAgICBpZiAobV9tYWlu
RnJhbWUtPnZpZXcoKSkKKyAgICAgICAgbV9tYWluRnJhbWUtPnZpZXcoKS0+Zm9yY2VMYXlvdXQo
KTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFBhZ2U6OmlzRG9ja2VkKCkKK3sKKyAg
ICByZXR1cm4gbV92aWV3TW9kZSA9PSAibWluaSI7Cit9CisKK2Jvb2wgUGFnZTo6aXNGbG9hdGlu
ZygpCit7CisgICAgcmV0dXJuIG1fdmlld01vZGUgPT0gImZsb2F0aW5nIjsKK30KKworYm9vbCBQ
YWdlOjppc0FwcGxpY2F0aW9uKCkKK3sKKyAgICByZXR1cm4gbV92aWV3TW9kZSA9PSAiYXBwbGlj
YXRpb24iOworfQorCitib29sIFBhZ2U6OmlzRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIG1f
dmlld01vZGUgPT0gImZ1bGxzY3JlZW4iOworfQorI2VuZGlmCisKIHZvaWQgUGFnZTo6c2V0TWFp
bkZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+IG1haW5GcmFtZSkKIHsKICAgICBBU1NFUlQoIW1fbWFp
bkZyYW1lKTsgLy8gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIGR1cmluZyBpbml0aWFsaXphdGlvbgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggOTRlNmRkNS4uOWVhOWU1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMjIsNiArMTIyLDE2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgSGlzdG9yeUl0ZW0qIGdsb2JhbEhpc3RvcnlJdGVtKCkgY29uc3QgeyBy
ZXR1cm4gbV9nbG9iYWxIaXN0b3J5SXRlbS5nZXQoKTsgfQogICAgICAgICB2b2lkIHNldEdsb2Jh
bEhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKik7CiAKKworI2lmIEVOQUJMRShXSURHRVRTXzEwX1NV
UFBPUlQpCisgICAgICAgIGJvb2wgc2V0Vmlld01vZGUoY29uc3QgU3RyaW5nJiB2aWV3TW9kZSk7
CisgICAgICAgIFN0cmluZyB2aWV3TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld01vZGU7IH0K
KyAgICAgICAgdmlydHVhbCBib29sIGlzRG9ja2VkKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBp
c0Zsb2F0aW5nKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FwcGxpY2F0aW9uKCk7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3JlZW4oKTsKKyNlbmRpZgorCiAgICAgICAgIHZvaWQg
c2V0R3JvdXBOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBjb25zdCBTdHJpbmcmIGdyb3Vw
TmFtZSgpIGNvbnN0OwogCkBAIC0yNjcsNiArMjc3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICBFZGl0b3JDbGllbnQqIG1fZWRpdG9yQ2xpZW50OwogCisjaWYgRU5BQkxFKFdJ
REdFVFNfMTBfU1VQUE9SVCkKKyAgICAgICAgU3RyaW5nIG1fdmlld01vZGU7CisjZW5kaWYKKwog
ICAgICAgICBpbnQgbV9mcmFtZUNvdW50OwogICAgICAgICBTdHJpbmcgbV9ncm91cE5hbWU7CiAg
ICAgICAgIGJvb2wgbV9vcGVuZWRCeURPTTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdl
YnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggMTgwYzdhZi4uM2Q2
YmJhMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTEyMCw2ICsxMjAsMzEgQEAKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKK2Jvb2wgUVdFQktJVF9FWFBPUlQgcXRfd3J0X3NldFZpZXdNb2RlKFFX
ZWJQYWdlKiBwYWdlLCBjb25zdCBRU3RyaW5nJiBtb2RlKQoreworI2lmIEVOQUJMRShXSURHRVRT
XzEwX1NVUFBPUlQpCisgICAgV2ViQ29yZTo6UGFnZSogY29yZSA9IFFXZWJQYWdlUHJpdmF0ZTo6
Y29yZShwYWdlKTsKKyAgICByZXR1cm4gY29yZSAmJiBjb3JlLT5zZXRWaWV3TW9kZShtb2RlKTsK
KyNlbmRpZgorfQorCitRU3RyaW5nIFFXRUJLSVRfRVhQT1JUIHF0X3dydF92aWV3TW9kZShRV2Vi
UGFnZSogcGFnZSkKK3sKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorICAgIFdlYkNv
cmU6OlBhZ2UqIGNvcmUgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CisgICAgaWYgKGNv
cmUpCisgICAgICAgIHJldHVybiBjb3JlLT52aWV3TW9kZSgpOworI2VuZGlmCisgICAgcmV0dXJu
IFFTdHJpbmcoKTsKK30KKwordm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93cnRfc2V0Vmlld01vZGVI
YW5kbGVyKFFXZWJQYWdlKiBwYWdlLCBib29sICgqY2FsbGJhY2spKGNvbnN0IFFTdHJpbmcmLCB2
b2lkKiksIHZvaWQqIGRhdGEpCit7CisgICAgUVdlYlBhZ2VQcml2YXRlKiBkID0gUVdlYlBhZ2VQ
cml2YXRlOjpwcml2KHBhZ2UpOworICAgIGQtPnZpZXdNb2RlRGF0YSA9IGRhdGE7CisgICAgZC0+
dmlld01vZGVDYWxsYmFjayA9IGNhbGxiYWNrOworfQorCiBib29sIFFXZWJQYWdlUHJpdmF0ZTo6
ZHJ0UnVuID0gZmFsc2U7CiAKIGNsYXNzIFFXZWJQYWdlV2lkZ2V0Q2xpZW50IDogcHVibGljIFFX
ZWJQYWdlQ2xpZW50IHsKQEAgLTM3MCw2ICszOTUsOCBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQ
YWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCiAgICAgLCBpbnNwZWN0b3JGcm9udGVuZCgwKQogICAg
ICwgaW5zcGVjdG9yKDApCiAgICAgLCBpbnNwZWN0b3JJc0ludGVybmFsT25seShmYWxzZSkKKyAg
ICAsIHZpZXdNb2RlRGF0YSgwKQorICAgICwgdmlld01vZGVDYWxsYmFjaygwKQogewogICAgIFdl
YkNvcmU6OkluaXRpYWxpemVMb2dnaW5nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogICAgIEpTQzo6
aW5pdGlhbGl6ZVRocmVhZGluZygpOwpAQCAtNDI0LDYgKzQ1MSwxMSBAQCBRV2ViUGFnZVByaXZh
dGU6On5RV2ViUGFnZVByaXZhdGUoKQogI2VuZGlmCiB9CiAKK2Jvb2wgUVdlYlBhZ2VQcml2YXRl
OjphY2NlcHRWaWV3TW9kZShjb25zdCBRU3RyaW5nJiB2aWV3TW9kZSkKK3sKKyAgICByZXR1cm4g
dmlld01vZGVDYWxsYmFjayAmJiB2aWV3TW9kZUNhbGxiYWNrKHZpZXdNb2RlLCB2aWV3TW9kZURh
dGEpOworfQorCiBXZWJDb3JlOjpQYWdlKiBRV2ViUGFnZVByaXZhdGU6OmNvcmUoUVdlYlBhZ2Uq
IHBhZ2UpCiB7CiAgICAgcmV0dXJuIHBhZ2UtPmQtPnBhZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvQXBpL3F3ZWJwYWdlX3AuaCBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCmluZGV4IDE5
ODc4MDcuLjNiZGVlNDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCisr
KyBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgV2ViQ29yZTo6UGFnZSogY29yZShRV2ViUGFnZSopOwogICAgIHN0YXRpYyBR
V2ViUGFnZVByaXZhdGUqIHByaXYoUVdlYlBhZ2UqKTsKIAorICAgIGJvb2wgYWNjZXB0Vmlld01v
ZGUoY29uc3QgUVN0cmluZyYgdmlld01vZGUpOworCiAgICAgdm9pZCBjcmVhdGVNYWluRnJhbWUo
KTsKICNpZm5kZWYgUVRfTk9fQ09OVEVYVE1FTlUKICAgICBRTWVudSogY3JlYXRlQ29udGV4dE1l
bnUoY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnUqIHdlYmNvcmVNZW51LCBjb25zdCBRTGlzdDxX
ZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0+KiBpdGVtcywgUUJpdEFycmF5KiB2aXNpdGVkV2ViQWN0
aW9ucyk7CkBAIC0xODksOSArMTkxLDEwIEBAIHB1YmxpYzoKICAgICAKICAgICBXZWJDb3JlOjpO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdCogbm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
OwogCi0gICAgUVN0cmluZyB2aWV3TW9kZTsKLQogICAgIHN0YXRpYyBib29sIGRydFJ1bjsKKwor
ICAgIHZvaWQqIHZpZXdNb2RlRGF0YTsKKyAgICBib29sICgqdmlld01vZGVDYWxsYmFjaykoY29u
c3QgUVN0cmluZyYsIHZvaWQqKTsKIH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMmQxZWJjMS4uMmNhNjM2ZiAx
MDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDQtMTMgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0
aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWNjZXB0YWJsZSB2aWV3IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzUwNQorCisgICAgICAgIEFzIGNsYXNzIFBhZ2Ug
bm93IGhvbGRzIGN1cnJlbnQgdmlld01vZGUgdmFsdWUgdGhlIHJlbGF0ZWQgY29kZSB3YXMgcmVt
b3ZlZCBmcm9tIGNsYXNzZXMKKyAgICAgICAgUVdlYlBhZ2UgYW5kIENocm9tZUNsaWVudFF0Lgor
CisgICAgICAgIEEgbmV3IGhpZGRlbiBBUEkgd2FzIGFkZGVkIHRvIFFXZWJQYWdlLiBUaGlzIEFQ
SSBjYW4gYmUgdXNlZCB0byByZWNlaXZlIG5vdGlmaWNhdGlvbnMgYWJvdXQKKyAgICAgICAgdmll
dyBtb2RlIGNoYW5nZXMgYW5kIHRvIHZhbGlkYXRlIGEgdmlldyBtb2RlIGNoYW5nZSByZXF1ZXN0
LgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHF0X3dydF9zZXRWaWV3
TW9kZSk6CisgICAgICAgIChxdF93cnRfdmlld01vZGUpOgorICAgICAgICAocXRfd3J0X3NldFZp
ZXdNb2RlSGFuZGxlcik6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0
ZSk6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmFjY2VwdFZpZXdNb2RlKToKKyAgICAgICAg
KiBBcGkvcXdlYnBhZ2VfcC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjphY2NlcHRWaWV3TW9k
ZUNoYW5nZVJlcXVlc3QpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
Lmg6CisKKyAgICAgICAgTWV0aG9kIHNldFZpZXdNb2RlIHJlbW92ZWQgZnJvbSBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdCBhbmQgbW92ZWQgYmFjayB0byBxd2VicGFnZS5jcHAKKyAgICAgICAgYXMg
cXRfd3J0X3NldFZpZXdNb2RlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNl
dE1lZGlhVHlwZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaDoKKwogMjAxMC0wNC0xMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjU3NDY4LgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggNjI4NmM1MS4u
NmZmN2FhNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
CkBAIC01NTIsNiArNTUyLDEzIEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNjaGVkdWxlQ29tcG9z
aXRpbmdMYXllclN5bmMoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQ
T1JUKQorYm9vbCBDaHJvbWVDbGllbnRRdDo6YWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KGNv
bnN0IFN0cmluZyYgdmlld01vZGUpCit7CisgICAgcmV0dXJuIFFXZWJQYWdlUHJpdmF0ZTo6cHJp
dihtX3dlYlBhZ2UpLT5hY2NlcHRWaWV3TW9kZSh2aWV3TW9kZSk7Cit9CisjZW5kaWYKKwogUXRB
YnN0cmFjdFdlYlBvcHVwKiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0UG9wdXAoKQogewog
I2lmIGRlZmluZWQoUV9XU19NQUVNT181KQpAQCAtNTYxLDI2ICs1NjgsNCBAQCBRdEFic3RyYWN0
V2ViUG9wdXAqIENocm9tZUNsaWVudFF0OjpjcmVhdGVTZWxlY3RQb3B1cCgpCiAjZW5kaWYKIH0K
IAotI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCi1ib29sIENocm9tZUNsaWVudFF0Ojpp
c0RvY2tlZCgpCi17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+ZC0+dmlld01vZGUgPT0gIm1pbmki
OwotfQotCi1ib29sIENocm9tZUNsaWVudFF0Ojppc0Zsb2F0aW5nKCkKLXsKLSAgICByZXR1cm4g
bV93ZWJQYWdlLT5kLT52aWV3TW9kZSA9PSAiZmxvYXRpbmciOwotfQotCi1ib29sIENocm9tZUNs
aWVudFF0Ojppc0FwcGxpY2F0aW9uKCkKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT52aWV3
TW9kZSA9PSAiYXBwbGljYXRpb24iOwotfQotCi1ib29sIENocm9tZUNsaWVudFF0Ojppc0Z1bGxz
Y3JlZW4oKQotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPnZpZXdNb2RlID09ICJmdWxsc2Ny
ZWVuIjsKLX0KLSNlbmRpZgotCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oCmluZGV4IDg1ZWI4NTQuLjNkMzdkYWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xNTksMTAgKzE1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgeyB9CiAKICNpZiBFTkFCTEUoV0lER0VU
U18xMF9TVVBQT1JUKQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEb2NrZWQoKTsKLSAgICAgICAg
dmlydHVhbCBib29sIGlzRmxvYXRpbmcoKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzQXBwbGlj
YXRpb24oKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlbigpOworICAgICAgICB2
aXJ0dWFsIGJvb2wgYWNjZXB0Vmlld01vZGVDaGFuZ2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdmll
d01vZGUpOwogI2VuZGlmCiAKICAgICAgICAgUXRBYnN0cmFjdFdlYlBvcHVwKiBjcmVhdGVTZWxl
Y3RQb3B1cCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNTJhMzkxZS4uMTg5ZWVjYyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC0z
NDIsMTIgKzM0MiwzIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1lZGlhVHlw
ZShRV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBRU3RyaW5nJiB0eXBlCiAgICAgY29yZUZyYW1lLT5k
b2N1bWVudCgpLT51cGRhdGVTdHlsZVNlbGVjdG9yKCk7CiAgICAgdmlldy0+Zm9yY2VMYXlvdXQo
KTsKIH0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0Vmlld01vZGUoUVdlYlBh
Z2UqIHBhZ2UsIGNvbnN0IFFTdHJpbmcmIG1vZGUpCi17Ci0gICAgUVdlYlBhZ2VQcml2YXRlOjpw
cml2KHBhZ2UpLT52aWV3TW9kZSA9IG1vZGU7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0g
UVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShwYWdlLT5tYWluRnJhbWUoKSk7Ci0gICAgV2ViQ29yZTo6
RnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKLSAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+
dXBkYXRlU3R5bGVTZWxlY3RvcigpOwotICAgIHZpZXctPmZvcmNlTGF5b3V0KCk7Ci19CmRpZmYg
LS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmlu
ZGV4IDdlMDNkN2MuLjI1NjI5N2YgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC02Niw3ICs2Niw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUVN0cmluZyBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChRV2ViRnJhbWUqIGZy
YW1lLCBjb25zdCBRU3RyaW5nJiBpZCk7CiAgICAgc3RhdGljIHZvaWQgd2ViUGFnZVNldEdyb3Vw
TmFtZShRV2ViUGFnZSogcGFnZSwgY29uc3QgUVN0cmluZyYgZ3JvdXBOYW1lKTsKICAgICBzdGF0
aWMgdm9pZCBjbGVhckZyYW1lTmFtZShRV2ViRnJhbWUqIGZyYW1lKTsKLSAgICBzdGF0aWMgdm9p
ZCBzZXRWaWV3TW9kZShRV2ViUGFnZSogcGFnZSwgY29uc3QgUVN0cmluZyYgbW9kZSk7CiAgICAg
c3RhdGljIHZvaWQgb3ZlcndyaXRlUGx1Z2luRGlyZWN0b3JpZXMoKTsKICAgICBzdGF0aWMgaW50
IG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhRV2ViRnJhbWUqKTsKICAgICBzdGF0aWMgaW50IG51
bWJlck9mUGFnZXMoUVdlYkZyYW1lKiBmcmFtZSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKaW5kZXggM2NlNGI5ZS4uNWFhOTE1MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA0
LTEzICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2VwdGFibGUgdmll
dyBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzc1MDUKKworICAgICAgICBBZGRpbmcgbWV0aG9kIHRvIExheW91dFRlc3RDb250cm9sbGVyUXQg
dG8gc3VwcG9ydCB0ZXN0aW5nIG9mIHZpZXcgbW9kZSBjaGFuZ2UKKyAgICAgICAgcHJvY2VkdXJl
LiBMYXlvdXRUZXN0Q29udHJvbGxlclF0IHVzZXMgaGlkZGVuIEFQSSBwcm92aWRlZCBieSBxd2Vi
cGFnZS5jcHAgZm9yIHRoYXQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRW
aWV3TW9kZU1lZGlhRmVhdHVyZSk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6dmll
d01vZGVNZWRpYUZlYXR1cmUpOgorICAgICAgICAoY2hlY2tWaWV3TW9kZSk6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkQWNjZXB0YWJsZVZpZXdNb2RlKToKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVBY2NlcHRhYmxlVmlld01vZGUpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKwogMjAxMC0wNC0x
MyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IGJ1dCBhcHByb3ZlZCBieSBEdW1pdHJ1IERhbmlsaXVjLiAgKFRoaXMgcGF0Y2ggaXMgaW50ZW5k
ZWQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5jcHAKaW5kZXggM2NhZDViMi4uNTNhNTVlOCAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHAKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNsdWRlIDxRTG9jYWxlPgogI2luY2x1ZGUgPHF3ZWJz
ZXR0aW5ncy5oPgogCitleHRlcm4gYm9vbCBxdF93cnRfc2V0Vmlld01vZGUoUVdlYlBhZ2UqLCBj
b25zdCBRU3RyaW5nJiBtb2RlKTsKK2V4dGVybiBRU3RyaW5nIHF0X3dydF92aWV3TW9kZShRV2Vi
UGFnZSogcGFnZSk7CitleHRlcm4gdm9pZCBxdF93cnRfc2V0Vmlld01vZGVIYW5kbGVyKFFXZWJQ
YWdlKiBwYWdlLCBib29sICgqY2FsbGJhY2spKGNvbnN0IFFTdHJpbmcmLCB2b2lkKiksIHZvaWQq
IGRhdGEpOwogZXh0ZXJuIHZvaWQgcXRfZHVtcF9lZGl0aW5nX2NhbGxiYWNrcyhib29sIGIpOwog
ZXh0ZXJuIHZvaWQgcXRfZHVtcF9mcmFtZV9sb2FkZXIoYm9vbCBiKTsKIGV4dGVybiB2b2lkIHF0
X2R1bXBfcmVzb3VyY2VfbG9hZF9jYWxsYmFja3MoYm9vbCBiKTsKQEAgLTEzNyw5ICsxNDAsMzUg
QEAgUVN0cmluZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoY29uc3QgUVN0cmluZyYgaWQpCiAgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
Ojpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUo
KSwgaWQpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRWaWV3TW9kZU1lZGlh
RmVhdHVyZShjb25zdCBRU3RyaW5nJiBtb2RlKQorYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3QgUVN0cmluZyYgbW9kZSkKIHsKLSAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0Vmlld01vZGUobV9kcnQtPndlYlBhZ2UoKSwgbW9kZSk7
CisgICAgcmV0dXJuIHF0X3dydF9zZXRWaWV3TW9kZShtX2RydC0+d2ViUGFnZSgpLCBtb2RlKTsK
K30KKworUVN0cmluZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6dmlld01vZGVNZWRpYUZlYXR1cmUo
KQoreworICAgIHJldHVybiBxdF93cnRfdmlld01vZGUobV9kcnQtPndlYlBhZ2UoKSk7Cit9CisK
K3N0YXRpYyBib29sIGNoZWNrVmlld01vZGUoY29uc3QgUVN0cmluZyYgdmlld01vZGUsIHZvaWQq
IGRhdGEpCit7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UVN0cmluZ0xpc3QqPihkYXRh
KS0+Y29udGFpbnModmlld01vZGUpOworfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjph
ZGRBY2NlcHRhYmxlVmlld01vZGUoY29uc3QgUVN0cmluZyYgdmlld01vZGUpCit7CisgICAgaWYg
KCFtX2FjY2VwdGFibGVWaWV3TW9kZXMuY29udGFpbnModmlld01vZGUpKSB7CisgICAgICAgIG1f
YWNjZXB0YWJsZVZpZXdNb2RlcyA8PCB2aWV3TW9kZTsKKyAgICAgICAgaWYgKG1fYWNjZXB0YWJs
ZVZpZXdNb2Rlcy5zaXplKCkgPT0gMSkKKyAgICAgICAgICAgIHF0X3dydF9zZXRWaWV3TW9kZUhh
bmRsZXIobV9kcnQtPndlYlBhZ2UoKSwgY2hlY2tWaWV3TW9kZSwgJm1fYWNjZXB0YWJsZVZpZXdN
b2Rlcyk7CisgICAgfQorfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVBY2Nl
cHRhYmxlVmlld01vZGUoY29uc3QgUVN0cmluZyYgdmlld01vZGUpCit7CisgICAgbV9hY2NlcHRh
YmxlVmlld01vZGVzLnJlbW92ZUFsbCh2aWV3TW9kZSk7CisgICAgaWYgKCFtX2FjY2VwdGFibGVW
aWV3TW9kZXMuc2l6ZSgpKQorICAgICAgICBxdF93cnRfc2V0Vmlld01vZGVIYW5kbGVyKG1fZHJ0
LT53ZWJQYWdlKCksIDAsIDApOwogfQogCiBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndlYkhp
c3RvcnlJdGVtQ291bnQoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IGEyOTlkODAuLjA0YWJjOTIgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmgKQEAgLTE0NSw3ICsxNDUsMTAgQEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgc2V0
TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlcihib29sIGlzRmlyc3QpOwogICAgIHZvaWQgc2V0WFNT
QXVkaXRvckVuYWJsZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0Vu
YWJsZWQoYm9vbCBlbmFibGUpOwotICAgIHZvaWQgc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29u
c3QgUVN0cmluZyYgbW9kZSk7CisgICAgYm9vbCBzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZShjb25z
dCBRU3RyaW5nJiBtb2RlKTsKKyAgICBRU3RyaW5nIHZpZXdNb2RlTWVkaWFGZWF0dXJlKCk7Cisg
ICAgdm9pZCBhZGRBY2NlcHRhYmxlVmlld01vZGUoY29uc3QgUVN0cmluZyYgdmlld01vZGUpOwor
ICAgIHZvaWQgcmVtb3ZlQWNjZXB0YWJsZVZpZXdNb2RlKGNvbnN0IFFTdHJpbmcmIHZpZXdNb2Rl
KTsKIAogICAgIGJvb2wgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29uc3Qg
UVN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IFFTdHJpbmcmIGVsZW1l
bnRJZCk7CiAgICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29u
c3QgUVN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwgY29uc3QgUVN0cmluZyYgZWxl
bWVudElkKTsKQEAgLTIwMCw2ICsyMDMsNyBAQCBwcml2YXRlOgogICAgIFFXZWJGcmFtZSogbV90
b3BMb2FkaW5nRnJhbWU7CiAgICAgV2ViQ29yZTo6RHVtcFJlbmRlclRyZWUqIG1fZHJ0OwogICAg
IFFXZWJIaXN0b3J5KiBtX3dlYkhpc3Rvcnk7CisgICAgUVN0cmluZ0xpc3QgbV9hY2NlcHRhYmxl
Vmlld01vZGVzOwogfTsKIAogI2VuZGlmIC8vIExheW91dFRlc3RDb250cm9sbGVyUXRfaAotLSAK
MS42LjMuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62962</attachid>
            <date>2010-07-29 09:38:08 -0700</date>
            <delta_ts>2010-07-29 11:21:25 -0700</delta_ts>
            <desc>patch 3</desc>
            <filename>0001-Enabling-view-modes-to-all-platforms.patch</filename>
            <type>text/plain</type>
            <size>20900</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBiN2E0YWMxY2MwM2Y2MjM2OTQ2MzFjZmUwM2JhNDcxNWRmYjYxMDhlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMjkgSnVsIDIwMTAgMTI6NTg6MjIgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBFbmFibGluZyB2aWV3IG1vZGVzIHRvIGFsbCBwbGF0Zm9ybXMKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzUwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpKYXZhU2NyaXB0Q29yZToKClJlbW92aW5nIEVOQUJMRV9XSURHRVRTXzEwX1NVUFBPUlQg
ZmxhZy4KCiogd3RmL1BsYXRmb3JtLmg6CgpXZWJDb3JlOgoKVmlldyBtb2RlIG1lZGlhIGZlYXR1
cmUgaW1wbGVtZW50YXRpb24gYXMgc3BlY2lmaWVkIGluIGh0dHA6Ly93d3cudzMub3JnL1RSL3Zp
ZXctbW9kZS4KClRoZSB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZSBsYXlvdXQgdGVzdHMgaXMgc3Rp
bCBza2lwcGVkIGZvciBhbGwgcGxhdGZvcm1zIGV4Y2VwdCBRdApiZWNhdXNlIG9mIHRoZSBsYWNr
IG9mIHN1cHBvcnQgb2YgTGF5b3V0VGVzdENvbnRyb2xsZXIgaW4gdGhvc2UgcGxhdGZvcm1zLgoK
VGVzdDogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sCgoqIGNzcy9NZWRp
YUZlYXR1cmVOYW1lcy5oOgoqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKFdlYkNvcmU6
OnZpZXdfbW9kZU1lZGlhRmVhdHVyZUV2YWwpOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CiogcGFn
ZS9QYWdlLmNwcDoKKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgooV2ViQ29yZTo6Y3JlYXRlVmlld01v
ZGVzU2V0KToKKFdlYkNvcmU6OlBhZ2U6OnNldFZpZXdNb2RlKToKKiBwYWdlL1BhZ2UuaDoKKFdl
YkNvcmU6OlBhZ2U6OnZpZXdNb2RlKToKCldlYktpdC9xdDoKCkFzIHZpZXcgbW9kZSBtZWRpYSBm
ZWF0dXJlIGlzIG5vdyBzdXBwb3J0ZWQgYnkgV2ViQ29yZSB0aGVyZSBpcyBubyBuZWVkCnRvIGtl
ZXAgaXRzIGltcGxlbWVudGF0aW9uIGhlcmUuIFF0V2ViS2l0IG5vdyB1c2VzIFdlYkNvcmUncyB2
aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQppbXBsZW1lbnRhdGlvbi4KCiogQXBpL3F3ZWJwYWdlLmNw
cDoKKFFXZWJQYWdlUHJpdmF0ZTo6ZHluYW1pY1Byb3BlcnR5Q2hhbmdlRXZlbnQpOgoqIEFwaS9x
d2VicGFnZV9wLmg6CiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgoqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CgpMYXlvdXRUZXN0czoKClJlbW92aW5nICd3aWRn
ZXQnIHJlZmVyZW5jZSBmcm9tIHRoZSBsYXlvdXQgdGVzdHMuIFRoZSB2aWV3IG1vZGUgbWVkaWEg
ZmVhdHVyZQpsYXlvdXQgdGVzdHMgaXMgc3RpbCBza2lwcGVkIGZvciBhbGwgcGxhdGZvcm1zIGV4
Y2VwdCBRdCBiZWNhdXNlIG9mIHRoZSBsYWNrIG9mIHN1cHBvcnQKb2YgTGF5b3V0VGVzdENvbnRy
b2xsZXIgaW4gdGhvc2UgcGxhdGZvcm1zLgoKKiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1m
ZWF0dXJlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLWV4cGVjdGVkLnR4dC4KKiBmYXN0L21lZGlhL3Zp
ZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sLgoqIHBsYXRmb3JtL2d0ay9T
a2lwcGVkOgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgot
LS0KIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMSArKysrKysrCiBKYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDcgLS0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysrKysrCiAuLi4vbWVkaWEvbWVkaWEtZmVhdHVy
ZS13Z3Qtdmlldy1tb2RlLWV4cGVjdGVkLnR4dCB8ICAgIDYgLS0tLQogLi4uL2Zhc3QvbWVkaWEv
bWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwgICAgfCAgIDI1IC0tLS0tLS0tLS0tLS0t
LS0KIC4uLi9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS1leHBlY3RlZC50eHQgICAgIHwg
ICAgNiArKysrCiAuLi4vZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sICAg
ICAgICB8ICAgMjUgKysrKysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIExheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI1ICsrKysrKysrKysr
KysrKysKIFdlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggICAgICAgICAgICAgICAgICAg
IHwgICAgOSArLS0tLS0KIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICAgICAg
ICAgICAgICAgIHwgICAyMyArKy0tLS0tLS0tLS0tLQogV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4IC0tLS0tCiBXZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysrKysrKysrKysrKysr
KysrKysKIFdlYkNvcmUvcGFnZS9QYWdlLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNSArKysKIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgOSArLS0tLS0KIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMiAtCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKysrKysrKysKIFdlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgICAgICAgIHwgICAyNyAtLS0tLS0tLS0tLS0tLS0t
LQogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggICAgICAgICAgfCAg
ICA4IC0tLS0tCiAyMSBmaWxlcyBjaGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgMTI0IGRlbGV0
aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
ZmVhdHVyZS13Z3Qtdmlldy1tb2RlLWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1m
ZWF0dXJlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbAoKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0MDQ3NDZj
Li4wZDdiMDE1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDctMjkgIEx1aXog
QWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxpbmcgdmlldyBtb2RlcyB0byBh
bGwgcGxhdGZvcm1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzUwNQorCisgICAgICAgIFJlbW92aW5nIEVOQUJMRV9XSURHRVRTXzEwX1NVUFBPUlQg
ZmxhZy4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEwLTA3LTI3ICBLaW51a28g
WWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFu
IFZhZmFpLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9KYXZh
U2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCBmNGE3MWIwLi41MWJmOTJkIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaApAQCAtNTcxLDkgKzU3MSw2IEBACiAKICNpZiBQTEFURk9STShRVCkKICNk
ZWZpbmUgV1RGX1VTRV9RVDRfVU5JQ09ERSAxCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dJREdFVFNf
MTBfU1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX1dJREdFVFNfMTBfU1VQUE9SVCAxCi0jZW5kaWYK
ICNlbGlmIE9TKFdJTkNFKQogI2RlZmluZSBXVEZfVVNFX1dJTkNFX1VOSUNPREUgMQogI2VsaWYg
UExBVEZPUk0oR1RLKQpAQCAtODM3LDEwICs4MzQsNiBAQAogI2RlZmluZSBFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfV0lER0VUU18xMF9T
VVBQT1JUKQotI2RlZmluZSBFTkFCTEVfV0lER0VUU18xMF9TVVBQT1JUIDAKLSNlbmRpZgotCiAj
aWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUikKICNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUiAx
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA0MWM2YzYxLi5kNmUyMDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDctMjkgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxp
bmcgdmlldyBtb2RlcyB0byBhbGwgcGxhdGZvcm1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzUwNQorCisgICAgICAgIFJlbW92aW5nICd3aWRnZXQn
IHJlZmVyZW5jZSBmcm9tIHRoZSBsYXlvdXQgdGVzdHMuIFRoZSB2aWV3IG1vZGUgbWVkaWEgZmVh
dHVyZQorICAgICAgICBsYXlvdXQgdGVzdHMgaXMgc3RpbCBza2lwcGVkIGZvciBhbGwgcGxhdGZv
cm1zIGV4Y2VwdCBRdCBiZWNhdXNlIG9mIHRoZSBsYWNrIG9mIHN1cHBvcnQKKyAgICAgICAgb2Yg
TGF5b3V0VGVzdENvbnRyb2xsZXIgaW4gdGhvc2UgcGxhdGZvcm1zLgorCisgICAgICAgICogZmFz
dC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS1leHBl
Y3RlZC50eHQuCisgICAgICAgICogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdn
dC12aWV3LW1vZGUuaHRtbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBl
ZDoKKwogMjAxMC0wNy0yOCAgVmljdG9yIFdhbmcgIDx2aWN0b3J3QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgY2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbnMgZm9y
IHRlc3Q6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUt
d2d0LXZpZXctbW9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlh
LWZlYXR1cmUtd2d0LXZpZXctbW9kZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGY2NzEzMjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
ZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNiArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0IFtiZ2NvbG9yPSMwMDAwRkZdCi0gICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIwMHgyMDAgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2Rl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9k
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWRkMDY3Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08aGVhZD4KLSAgICA8dGl0bGU+VGVz
dGluZyBXaWRnZXRzIDEuMCBWaWV3IE1vZGUgTWVkaWEgRmVhdHVyZTwvdGl0bGU+Ci0gICAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgICAgZGl2IHsKLSAgICAgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IHJlZDsKLSAgICAgICAgfQotICAgICAgICBAbWVkaWEgKC13ZWJraXQtdmlldy1t
b2RlOiBtaW5pbWl6ZWQpIHsKLSAgICAgICAgICAgIGJvZHkgewotICAgICAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg
QG1lZGlhICgtd2Via2l0LXZpZXctbW9kZSkgewotICAgICAgICAgICAgZGl2IHsKLSAgICAgICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIDwvc3R5bGU+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdN
b2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKLSAgICA8L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDA7IGhlaWdodDogMjAwOyJcPgotPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVh
dHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRp
YS1mZWF0dXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mNjcxMzIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS92aWV3
LW1vZGUtbWVkaWEtZmVhdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4
NTg0IFtiZ2NvbG9yPSMwMDAwRkZdCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBz
aXplIDIwMHgyMDAgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi40ZWRkMDY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzxo
ZWFkPgorICAgIDx0aXRsZT5UZXN0aW5nIFdpZGdldHMgMS4wIFZpZXcgTW9kZSBNZWRpYSBGZWF0
dXJlPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICBkaXYgewor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICB9CisgICAgICAgIEBt
ZWRpYSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgeworICAgICAgICAgICAgYm9keSB7
CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICBAbWVkaWEgKC13ZWJraXQtdmlldy1tb2RlKSB7CisgICAgICAg
ICAgICBkaXYgeworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDsgaGVp
Z2h0OiAyMDA7Ilw+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDM4OTZm
OGIuLjZlMzliZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC01NDU4LDggKzU0NTgs
OCBAQCBmYXN0L3J1bmluL2dlbmVyYXRlZDIuaHRtbAogZmFzdC9ydW5pbi9nZW5lcmF0ZWQzLmh0
bWwKIGZhc3QvcnVuaW4vZ2VuZXJhdGVkNC5odG1sCiAKLSMgTm8gV2lkZ2V0cyAxLjAgc3VwcG9y
dAotZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbAorIyB2aWV3IG1v
ZGUgbWVkaWEgZmVhdHVyZQorZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1s
CiAKICMgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIGRvZXNuJ3QgcmV0dXJuIHRvIE5FVFdP
UktfSURMRSBhbmQgaGVuY2UgZG9lc24ndCBmaXJlIGEgc3VzcGVuZCBldmVudAogIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcwMzQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQKaW5kZXggMTA0NGZiYy4uZWJhMTExZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQK
QEAgLTEzOSw4ICsxMzksOCBAQCBodHRwL3Rlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWhh
cy1mb2N1cy5odG1sCiAjIE1pc3NlcyBzZXRNZWRpYVR5cGUoKSBhbmQgaW1wbGVtZW50YXRpb24K
IGZhc3QvbWVkaWEvcHJpbnQtcmVzdG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwKIAotIyBO
byBXaWRnZXRzIDEuMCBzdXBwb3J0Ci1mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXct
bW9kZS5odG1sCisjIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCitmYXN0L21lZGlhL3ZpZXctbW9k
ZS1tZWRpYS1mZWF0dXJlLmh0bWwKIAogIyBUZXN0IGlzIGZsYWt5IGFuZCB0aHVzIG5vdCB1c2Vm
dWwgdW50aWwgZml4ZWQuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNjY0MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAyMjY5YjljLi4xNTRhZjRjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODM3LDggKzgzNyw4IEBAIGZhc3QvZG9tL0hU
TUxNZXRlckVsZW1lbnQvbWV0ZXItb3B0aW11bXMuaHRtbAogZmFzdC9kb20vSFRNTE1ldGVyRWxl
bWVudC9tZXRlci1zdHlsZXMuaHRtbAogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1z
dHlsZXMtY2hhbmdpbmctcHNldWRvLmh0bWwKIAotIyBObyBXaWRnZXRzIDEuMCBzdXBwb3J0Ci1m
YXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCisjIHZpZXcgbW9kZSBt
ZWRpYSBmZWF0dXJlCitmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKIAog
IyBOZWVkIGV4cGVjdGF0aW9ucy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNjQ2MQogZmFzdC9yZXBhaW50L292ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVhci5o
dG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDMyZTU1YzAuLjg0ZmIzMWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDctMjkgIEx1aXogQWdv
c3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxpbmcgdmlldyBtb2RlcyB0byBhbGwg
cGxhdGZvcm1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNzUwNQorCisgICAgICAgIFZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGltcGxlbWVudGF0aW9u
IGFzIHNwZWNpZmllZCBpbiBodHRwOi8vd3d3LnczLm9yZy9UUi92aWV3LW1vZGUuCisKKyAgICAg
ICAgVGhlIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGxheW91dCB0ZXN0cyBpcyBzdGlsIHNraXBw
ZWQgZm9yIGFsbCBwbGF0Zm9ybXMgZXhjZXB0IFF0IAorICAgICAgICBiZWNhdXNlIG9mIHRoZSBs
YWNrIG9mIHN1cHBvcnQgb2YgTGF5b3V0VGVzdENvbnRyb2xsZXIgaW4gdGhvc2UgcGxhdGZvcm1z
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRt
bAorCisgICAgICAgICogY3NzL01lZGlhRmVhdHVyZU5hbWVzLmg6CisgICAgICAgICogY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmlld19tb2RlTWVkaWFG
ZWF0dXJlRXZhbCk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBw
YWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVWaWV3TW9kZXNTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0
Vmlld01vZGUpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6dmlld01vZGUpOgorCiAyMDEwLTA3LTI4ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggYi9XZWJDb3JlL2Nzcy9NZWRpYUZl
YXR1cmVOYW1lcy5oCmluZGV4IDhhYWVkYjIuLmI4ZjI3MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Y3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFt
ZXMuaApAQCAtMjUsMTMgKzI1LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBuYW1lc3Bh
Y2UgTWVkaWFGZWF0dXJlTmFtZXMgewogCi0jaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkK
LSNkZWZpbmUgQ1NTX01FRElBUVVFUllfTkFNRVNfRk9SX1dJREdFVFNfMTBfTUVESUFGRUFUVVJF
KG1hY3JvKSBcCi0gICAgbWFjcm8odmlld19tb2RlLCAiLXdlYmtpdC12aWV3LW1vZGUiKQotI2Vs
c2UKLSNkZWZpbmUgQ1NTX01FRElBUVVFUllfTkFNRVNfRk9SX1dJREdFVFNfMTBfTUVESUFGRUFU
VVJFKG1hY3JvKQotI2VuZGlmCi0KICNkZWZpbmUgQ1NTX01FRElBUVVFUllfTkFNRVNfRk9SX0VB
Q0hfTUVESUFGRUFUVVJFKG1hY3JvKSBcCiAgICAgbWFjcm8oY29sb3IsICJjb2xvciIpIFwKICAg
ICBtYWNybyhncmlkLCAiZ3JpZCIpIFwKQEAgLTY2LDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIG1hY3JvKHRyYW5zZm9ybV8zZCwgIi13ZWJraXQtdHJhbnNmb3JtLTNkIikgXAog
ICAgIG1hY3JvKHRyYW5zaXRpb24sICItd2Via2l0LXRyYW5zaXRpb24iKSBcCiAgICAgbWFjcm8o
YW5pbWF0aW9uLCAiLXdlYmtpdC1hbmltYXRpb24iKSBcCi0gICAgQ1NTX01FRElBUVVFUllfTkFN
RVNfRk9SX1dJREdFVFNfMTBfTUVESUFGRUFUVVJFKG1hY3JvKQorICAgIG1hY3JvKHZpZXdfbW9k
ZSwgIi13ZWJraXQtdmlldy1tb2RlIikKIAogLy8gZW5kIG9mIG1hY3JvCiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAKaW5kZXggOWQ1ODIyZi4uM2U4MzE5OSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAKQEAgLTQ5OCwyOCArNDk4LDEzIEBAIHN0YXRpYyBib29sIHRyYW5z
Zm9ybV8zZE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZy
YW1lKiBmCiAgICAgcmV0dXJuIHJldHVyblZhbHVlSWZOb1BhcmFtZXRlcjsKIH0KIAotI2lmIEVO
QUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCiBzdGF0aWMgYm9vbCB2aWV3X21vZGVNZWRpYUZlYXR1
cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlh
RmVhdHVyZVByZWZpeCBvcCkKIHsKLSAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgU3RyaW5nIG1v
ZGUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5nVmFs
dWUoKTsKLSAgICAgICAgaWYgKENocm9tZUNsaWVudCogY2xpZW50ID0gZnJhbWUtPnBhZ2UoKS0+
Y2hyb21lKCktPmNsaWVudCgpKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAid2luZG93ZWQi
ICYmIGNsaWVudC0+aXNXaW5kb3dlZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICAgICAgaWYgKG1vZGUgPT0gImZsb2F0aW5nIiAmJiBjbGllbnQtPmlzRmxvYXRpbmco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtb2RlID09
ICJmdWxsc2NyZWVuIiAmJiBjbGllbnQtPmlzRnVsbHNjcmVlbigpKQotICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKG1vZGUgPT0gIm1heGltaXplZCIgJiYgY2xp
ZW50LT5pc01heGltaXplZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICAgICAgaWYgKG1vZGUgPT0gIm1pbmltaXplZCIgJiYgY2xpZW50LT5pc01pbmltaXplZCgpKQot
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0cnVlOworICAgIFVOVVNFRF9QQVJBTShvcCk7
CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRTdHJpbmdWYWx1ZSgpID09IGZy
YW1lLT5wYWdlKCktPnZpZXdNb2RlKCk7CiB9Ci0jZW5kaWYKIAogc3RhdGljIHZvaWQgY3JlYXRl
RnVuY3Rpb25NYXAoKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDc5NWIyNWMuLjNjYjU4YTkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKQEAgLTI0NCwxNCArMjQ0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpID0gMDsKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKLSAgICAgICAgdmlydHVhbCBib29sIGlz
V2luZG93ZWQoKSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNGbG9h
dGluZygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3Jl
ZW4oKSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNYXhpbWl6ZWQo
KSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNaW5pbWl6ZWQoKSB7
IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0KICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1
YWwgfkNocm9tZUNsaWVudCgpIHsgfQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNDU3ODY0OC4uYjlhNmUyMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMTY3LDYgKzE2Nyw3IEBAIFBhZ2U6OlBhZ2UoY29uc3QgUGFnZUNsaWVudHMmIHBh
Z2VDbGllbnRzKQogICAgICwgbV9jdXN0b21IVE1MVG9rZW5pemVyVGltZURlbGF5KC0xKQogICAg
ICwgbV9jdXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKC0xKQogICAgICwgbV9jYW5TdGFydE1l
ZGlhKHRydWUpCisgICAgLCBtX3ZpZXdNb2RlKCJ3aW5kb3dlZCIpCiB7CiAgICAgaWYgKCFhbGxQ
YWdlcykgewogICAgICAgICBhbGxQYWdlcyA9IG5ldyBIYXNoU2V0PFBhZ2UqPjsKQEAgLTIxNyw2
ICsyMTgsMzYgQEAgUGFnZTo6flBhZ2UoKQogI2VuZGlmCiB9CiAKK3N0YXRpYyBIYXNoU2V0PFN0
cmluZz4qIGNyZWF0ZVZpZXdNb2Rlc1NldCgpCit7CisgICAgSGFzaFNldDxTdHJpbmc+KiByZXN1
bHQgPSBuZXcgSGFzaFNldDxTdHJpbmc+KCk7CisgICAgcmVzdWx0LT5hZGQoIndpbmRvd2VkIik7
CisgICAgcmVzdWx0LT5hZGQoImZsb2F0aW5nIik7CisgICAgcmVzdWx0LT5hZGQoImZ1bGxzY3Jl
ZW4iKTsKKyAgICByZXN1bHQtPmFkZCgibWF4aW1pemVkIik7CisgICAgcmVzdWx0LT5hZGQoIm1p
bmltaXplZCIpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgUGFnZTo6c2V0Vmlld01v
ZGUoY29uc3QgU3RyaW5nJiB2aWV3TW9kZSkKK3sKKyAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmc+
KiB2YWxpZE9wdGlvbnMgPSBjcmVhdGVWaWV3TW9kZXNTZXQoKTsKKworICAgIGlmICh2aWV3TW9k
ZSA9PSBtX3ZpZXdNb2RlIHx8ICF2YWxpZE9wdGlvbnMtPmNvbnRhaW5zKHZpZXdNb2RlKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV92aWV3TW9kZSA9IHZpZXdNb2RlOworCisgICAgaWYgKCFt
X21haW5GcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fbWFpbkZyYW1lLT52aWV3
KCkpCisgICAgICAgIG1fbWFpbkZyYW1lLT52aWV3KCktPmZvcmNlTGF5b3V0KCk7CisKKyAgICBp
ZiAobV9tYWluRnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgIG1fbWFpbkZyYW1lLT5kb2N1bWVu
dCgpLT51cGRhdGVTdHlsZVNlbGVjdG9yKCk7Cit9CisKIHZvaWQgUGFnZTo6c2V0TWFpbkZyYW1l
KFBhc3NSZWZQdHI8RnJhbWU+IG1haW5GcmFtZSkKIHsKICAgICBBU1NFUlQoIW1fbWFpbkZyYW1l
KTsgLy8gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIGR1cmluZyBpbml0aWFsaXphdGlvbgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYWFi
OTVmMy4uZDFmM2Q0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0xODYsNiArMTg2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
I2VuZGlmCiAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fc2V0
dGluZ3MuZ2V0KCk7IH0KICAgICAgICAgUHJvZ3Jlc3NUcmFja2VyKiBwcm9ncmVzcygpIGNvbnN0
IHsgcmV0dXJuIG1fcHJvZ3Jlc3MuZ2V0KCk7IH0KKworICAgICAgICBTdHJpbmcgdmlld01vZGUo
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdNb2RlOyB9CisgICAgICAgIHZvaWQgc2V0Vmlld01vZGUo
Y29uc3QgU3RyaW5nJik7CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldFRhYktleUN5Y2xlc1Ro
cm91Z2hFbGVtZW50cyhib29sIGIpIHsgbV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMgPSBi
OyB9CiAgICAgICAgIGJvb2wgdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHM7IH0KQEAgLTM2MSw2ICszNjQsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgICAg
IE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9ub3RpZmljYXRpb25QcmVzZW50ZXI7CiAjZW5kaWYK
KworICAgICAgICBTdHJpbmcgbV92aWV3TW9kZTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9x
dC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDQzZWIwNDYuLjllYmRkZWUgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCisrKyBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3Bw
CkBAIC0xMjE4LDE0ICsxMjE4LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgewogdm9pZCBRV2ViUGFnZVBy
aXZhdGU6OmR5bmFtaWNQcm9wZXJ0eUNoYW5nZUV2ZW50KFFEeW5hbWljUHJvcGVydHlDaGFuZ2VF
dmVudCogZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50LT5wcm9wZXJ0eU5hbWUoKSA9PSAiX3Ffdmll
d01vZGUiKSB7Ci0gICAgICAgIFFTdHJpbmcgbW9kZSA9IHEtPnByb3BlcnR5KCJfcV92aWV3TW9k
ZSIpLnRvU3RyaW5nKCk7Ci0gICAgICAgIGlmIChtb2RlICE9IHZpZXdNb2RlKSB7Ci0gICAgICAg
ICAgICB2aWV3TW9kZSA9IG1vZGU7Ci0gICAgICAgICAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUg
PSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKHEtPm1haW5GcmFtZSgpKTsKLSAgICAgICAgICAgIFdl
YkNvcmU6OkZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7Ci0gICAgICAgICAgICBmcmFt
ZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVTZWxlY3RvcigpOwotICAgICAgICAgICAgdmlldy0+
bGF5b3V0KCk7Ci0gICAgICAgIH0KKyAgICAgICAgcGFnZS0+c2V0Vmlld01vZGUocS0+cHJvcGVy
dHkoIl9xX3ZpZXdNb2RlIikudG9TdHJpbmcoKSk7CiAgICAgfSBlbHNlIGlmIChldmVudC0+cHJv
cGVydHlOYW1lKCkgPT0gIl9xX0hUTUxUb2tlbml6ZXJDaHVua1NpemUiKSB7CiAgICAgICAgIGlu
dCBjaHVua1NpemUgPSBxLT5wcm9wZXJ0eSgiX3FfSFRNTFRva2VuaXplckNodW5rU2l6ZSIpLnRv
SW50KCk7CiAgICAgICAgIHEtPmhhbmRsZSgpLT5wYWdlLT5zZXRDdXN0b21IVE1MVG9rZW5pemVy
Q2h1bmtTaXplKGNodW5rU2l6ZSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
X3AuaCBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCmluZGV4IDNkZjIwMDQuLjZlOGZhMDgg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCisrKyBiL1dlYktpdC9xdC9B
cGkvcXdlYnBhZ2VfcC5oCkBAIC0yMDAsOCArMjAwLDYgQEAgcHVibGljOgogICAgIFFXZWJJbnNw
ZWN0b3IqIGluc3BlY3RvcjsKICAgICBib29sIGluc3BlY3RvcklzSW50ZXJuYWxPbmx5OyAvLyBU
cnVlIGlmIGNyZWF0ZWQgdGhyb3VnaCB0aGUgSW5zcGVjdCBjb250ZXh0IG1lbnUgYWN0aW9uCiAg
ICAgUXQ6OkRyb3BBY3Rpb24gbV9sYXN0RHJvcEFjdGlvbjsKLSAgICAKLSAgICBRU3RyaW5nIHZp
ZXdNb2RlOwogCiAgICAgc3RhdGljIGJvb2wgZHJ0UnVuOwogfTsKZGlmZiAtLWdpdCBhL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGMzNWUwY2YuLjQ1NzJm
NjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA3LTI5ICBMdWl6IEFnb3N0aW5pICA8bHVpei5h
Z29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVuYWJsaW5nIHZpZXcgbW9kZXMgdG8gYWxsIHBsYXRmb3JtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc1MDUKKworICAg
ICAgICBBcyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZSBpcyBub3cgc3VwcG9ydGVkIGJ5IFdlYkNv
cmUgdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICB0byBrZWVwIGl0cyBpbXBsZW1lbnRhdGlvbiBo
ZXJlLiBRdFdlYktpdCBub3cgdXNlcyBXZWJDb3JlJ3MgdmlldyBtb2RlIG1lZGlhIGZlYXR1cmUK
KyAgICAgICAgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgor
ICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpkeW5hbWljUHJvcGVydHlDaGFuZ2VFdmVudCk6Cisg
ICAgICAgICogQXBpL3F3ZWJwYWdlX3AuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aDoKKwogMjAxMC0wNy0yNiAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggMmM2NGE3OC4uYjdhZjNlMiAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC01OTgsMzMgKzU5OCw2
IEBAIFF0QWJzdHJhY3RXZWJQb3B1cCogQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVw
KCkKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKLWJvb2wgQ2hy
b21lQ2xpZW50UXQ6OmlzV2luZG93ZWQoKQotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPnZp
ZXdNb2RlID09ICJ3aW5kb3dlZCI7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzRmxvYXRp
bmcoKQotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPnZpZXdNb2RlID09ICJmbG9hdGluZyI7
Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJu
IG1fd2ViUGFnZS0+ZC0+dmlld01vZGUgPT0gImZ1bGxzY3JlZW4iOwotfQotCi1ib29sIENocm9t
ZUNsaWVudFF0Ojppc01heGltaXplZCgpCi17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+ZC0+dmll
d01vZGUgPT0gIm1heGltaXplZCI7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzTWluaW1p
emVkKCkKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT52aWV3TW9kZSA9PSAibWluaW1pemVk
IjsKLX0KLSNlbmRpZgotCiB2b2lkIENocm9tZUNsaWVudFF0OjpkaWRSZWNlaXZlVmlld3BvcnRB
cmd1bWVudHMoRnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRz
KSBjb25zdAogewogICAgIGlmIChtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5kLT5pbml0aWFsTGF5
b3V0Q29tcGxldGUpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmlu
ZGV4IDcwYjRhMjUuLmI3ZTlkMTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCkBAIC0xNjgsMTQgKzE2OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQogCi0j
aWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKLSAgICAgICAgdmlydHVhbCBib29sIGlzV2lu
ZG93ZWQoKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzRmxvYXRpbmcoKTsKLSAgICAgICAgdmly
dHVhbCBib29sIGlzRnVsbHNjcmVlbigpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNYXhpbWl6
ZWQoKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzTWluaW1pemVkKCk7Ci0jZW5kaWYKLQogICAg
ICAgICBRdEFic3RyYWN0V2ViUG9wdXAqIGNyZWF0ZVNlbGVjdFBvcHVwKCk7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSosIGNvbnN0IFZp
ZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62972</attachid>
            <date>2010-07-29 11:21:25 -0700</date>
            <delta_ts>2010-07-30 14:55:00 -0700</delta_ts>
            <desc>improving changelogs</desc>
            <filename>0001-Enabling-view-modes-to-all-platforms.patch</filename>
            <type>text/plain</type>
            <size>21575</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA2NTkzMTkwMDA3YmU5Y2FjNDQ4ZGU3YmM0Zjc3M2VjYTM0NTViOWM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMjkgSnVsIDIwMTAgMTU6MTA6MDkgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBFbmFibGluZyB2aWV3IG1vZGVzIHRvIGFsbCBwbGF0Zm9ybXMKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzUwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpKYXZhU2NyaXB0Q29yZToKClJlbW92aW5nIEVOQUJMRV9XSURHRVRTXzEwX1NVUFBPUlQg
ZmxhZy4KCkFzIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGlzIG5vdCBwYXJ0IG9mIHdpZGdldCAx
LjAgc3BlY2lmaWNhdGlvbgphbnkgbW9yZSB0aGUgRU5BQkxFX1dJREdFVFNfMTBfU1VQUE9SVCBm
bGFnIG1heSBiZSByZW1vdmVkLiBUaGUgb25seSB1c2UKb2YgdGhpcyBmbGFnIHdhcyByZWxhdGVk
IHRvIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGltcGxlbWVudGF0aW9uIGluIFF0LgoKKiB3dGYv
UGxhdGZvcm0uaDoKCldlYkNvcmU6CgpWaWV3IG1vZGUgbWVkaWEgZmVhdHVyZSBpbXBsZW1lbnRh
dGlvbiBhcyBzcGVjaWZpZWQgaW4gaHR0cDovL3d3dy53My5vcmcvVFIvdmlldy1tb2RlLgoKVGhl
IHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGxheW91dCB0ZXN0cyBhcmUgc3RpbCBza2lwcGVkIGZv
ciBhbGwgcGxhdGZvcm1zIGV4Y2VwdCBRdApiZWNhdXNlIG9mIHRoZSBsYWNrIG9mIHN1cHBvcnQg
b2YgTGF5b3V0VGVzdENvbnRyb2xsZXIgaW4gdGhvc2UgcGxhdGZvcm1zLgoKVGVzdDogZmFzdC9t
ZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sCgoqIGNzcy9NZWRpYUZlYXR1cmVOYW1l
cy5oOgoqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKFdlYkNvcmU6OnZpZXdfbW9kZU1l
ZGlhRmVhdHVyZUV2YWwpOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CiogcGFnZS9QYWdlLmNwcDoK
KFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgooV2ViQ29yZTo6Y3JlYXRlVmlld01vZGVzU2V0KToKKFdl
YkNvcmU6OlBhZ2U6OnNldFZpZXdNb2RlKToKKiBwYWdlL1BhZ2UuaDoKKFdlYkNvcmU6OlBhZ2U6
OnZpZXdNb2RlKToKCldlYktpdC9xdDoKCkFzIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGlzIG5v
dyBzdXBwb3J0ZWQgYnkgV2ViQ29yZSB0aGVyZSBpcyBubyBuZWVkCnRvIGtlZXAgaXRzIGltcGxl
bWVudGF0aW9uIGhlcmUuIFF0V2ViS2l0IG5vdyB1c2VzIFdlYkNvcmUncyB2aWV3IG1vZGUgbWVk
aWEgZmVhdHVyZQppbXBsZW1lbnRhdGlvbi4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKFFXZWJQYWdl
UHJpdmF0ZTo6ZHluYW1pY1Byb3BlcnR5Q2hhbmdlRXZlbnQpOgoqIEFwaS9xd2VicGFnZV9wLmg6
CiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgoqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0Lmg6CgpMYXlvdXRUZXN0czoKClJlbW92aW5nICd3aWRnZXQnIHJlZmVyZW5j
ZSBmcm9tIHRoZSBsYXlvdXQgdGVzdHMgYmVjYXVzZSB0aGUgdmlldyBtb2RlIG1lZGlhIGZlYXR1
cmUKaXMgbm90IHBhcnQgb2Ygd2lkZ2V0IDEuMCBzcGVjaWZpY2F0aW9uIGFueSBtb3JlLgoKVGhl
IGxheW91dCB0ZXN0cyBhcmUgc3RpbCBza2lwcGVkIGZvciBhbGwgcGxhdGZvcm1zIGV4Y2VwdCBR
dCBiZWNhdXNlIG9mIHRoZSBsYWNrCm9mIHN1cHBvcnQgb2YgTGF5b3V0VGVzdENvbnRyb2xsZXIg
aW4gdGhvc2UgcGxhdGZvcm1zLgoKKiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJl
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
ZmVhdHVyZS13Z3Qtdmlldy1tb2RlLWV4cGVjdGVkLnR4dC4KKiBmYXN0L21lZGlhL3ZpZXctbW9k
ZS1tZWRpYS1mZWF0dXJlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sLgoqIHBsYXRmb3JtL2d0ay9Ta2lwcGVk
OgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgotLS0KIEph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSAr
KysrKysrKysKIEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNyAtLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTkgKysrKysrKysrKysrCiAuLi4vbWVkaWEvbWVkaWEtZmVhdHVyZS13
Z3Qtdmlldy1tb2RlLWV4cGVjdGVkLnR4dCB8ICAgIDYgLS0tLQogLi4uL2Zhc3QvbWVkaWEvbWVk
aWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwgICAgfCAgIDI1IC0tLS0tLS0tLS0tLS0tLS0K
IC4uLi9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS1leHBlY3RlZC50eHQgICAgIHwgICAg
NiArKysrCiAuLi4vZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sICAgICAg
ICB8ICAgMjUgKysrKysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI1ICsrKysrKysrKysrKysr
KysKIFdlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggICAgICAgICAgICAgICAgICAgIHwg
ICAgOSArLS0tLS0KIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICAgICAgICAg
ICAgICAgIHwgICAyMyArKy0tLS0tLS0tLS0tLQogV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4IC0tLS0tCiBXZWJDb3JlL3BhZ2UvUGFnZS5j
cHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysrKysrKysrKysrKysrKysr
KysKIFdlYkNvcmUvcGFnZS9QYWdlLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgNSArKysKIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgOSArLS0tLS0KIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgMiAtCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKysrKysrKysKIFdlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgICAgICAgIHwgICAyNyAtLS0tLS0tLS0tLS0tLS0tLQog
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggICAgICAgICAgfCAgICA4
IC0tLS0tCiAyMSBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgMTI0IGRlbGV0aW9u
cygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVh
dHVyZS13Z3Qtdmlldy1tb2RlLWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0
dXJlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvbWVk
aWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbAoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0Y2E3NjNjLi5h
MmIyY2RmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDctMjkgIEx1aXogQWdv
c3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxpbmcgdmlldyBtb2RlcyB0byBhbGwg
cGxhdGZvcm1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNzUwNQorCisgICAgICAgIFJlbW92aW5nIEVOQUJMRV9XSURHRVRTXzEwX1NVUFBPUlQgZmxh
Zy4KKworICAgICAgICBBcyB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZSBpcyBub3QgcGFydCBvZiB3
aWRnZXQgMS4wIHNwZWNpZmljYXRpb24KKyAgICAgICAgYW55IG1vcmUgdGhlIEVOQUJMRV9XSURH
RVRTXzEwX1NVUFBPUlQgZmxhZyBtYXkgYmUgcmVtb3ZlZC4gVGhlIG9ubHkgdXNlCisgICAgICAg
IG9mIHRoaXMgZmxhZyB3YXMgcmVsYXRlZCB0byB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZSBpbXBs
ZW1lbnRhdGlvbiBpbiBRdC4gCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMC0w
Ny0yOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxh
dGZvcm0uaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGY0YTcxYjAuLjUx
YmY5MmQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC01NzEsOSArNTcxLDYgQEAKIAogI2lmIFBM
QVRGT1JNKFFUKQogI2RlZmluZSBXVEZfVVNFX1FUNF9VTklDT0RFIDEKLSNpZiAhZGVmaW5lZChF
TkFCTEVfV0lER0VUU18xMF9TVVBQT1JUKQotI2RlZmluZSBFTkFCTEVfV0lER0VUU18xMF9TVVBQ
T1JUIDEKLSNlbmRpZgogI2VsaWYgT1MoV0lOQ0UpCiAjZGVmaW5lIFdURl9VU0VfV0lOQ0VfVU5J
Q09ERSAxCiAjZWxpZiBQTEFURk9STShHVEspCkBAIC04MzcsMTAgKzgzNCw2IEBACiAjZGVmaW5l
IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJM
RV9XSURHRVRTXzEwX1NVUFBPUlQpCi0jZGVmaW5lIEVOQUJMRV9XSURHRVRTXzEwX1NVUFBPUlQg
MAotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SKQogI2RlZmluZSBFTkFC
TEVfSU5TUEVDVE9SIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk4NDhjYzEuLmEwMzQwNTkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMC0wNy0yOSAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFbmFibGluZyB2aWV3IG1vZGVzIHRvIGFsbCBwbGF0Zm9ybXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTA1CisKKyAgICAgICAgUmVt
b3ZpbmcgJ3dpZGdldCcgcmVmZXJlbmNlIGZyb20gdGhlIGxheW91dCB0ZXN0cyBiZWNhdXNlIHRo
ZSB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorICAgICAgICBpcyBub3QgcGFydCBvZiB3aWRnZXQg
MS4wIHNwZWNpZmljYXRpb24gYW55IG1vcmUuCisKKyAgICAgICAgVGhlIGxheW91dCB0ZXN0cyBh
cmUgc3RpbCBza2lwcGVkIGZvciBhbGwgcGxhdGZvcm1zIGV4Y2VwdCBRdCBiZWNhdXNlIG9mIHRo
ZSBsYWNrCisgICAgICAgIG9mIHN1cHBvcnQgb2YgTGF5b3V0VGVzdENvbnRyb2xsZXIgaW4gdGhv
c2UgcGxhdGZvcm1zLgorCisgICAgICAgICogZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVh
dHVyZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS1leHBlY3RlZC50eHQuCisgICAgICAgICogZmFzdC9t
ZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0wNy0yOSAgSmVyZW15IE9y
bG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJp
IEdsYXprb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1
cmUtd2d0LXZpZXctbW9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGY2NzEzMjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNiArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0IFtiZ2NvbG9yPSMwMDAwRkZdCi0gICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIwMHgyMDAgW2JnY29sb3I9IzAwODAwMF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1t
b2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXct
bW9kZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWRkMDY3Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2Rl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08aGVhZD4KLSAgICA8dGl0bGU+
VGVzdGluZyBXaWRnZXRzIDEuMCBWaWV3IE1vZGUgTWVkaWEgRmVhdHVyZTwvdGl0bGU+Ci0gICAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgICAgZGl2IHsKLSAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHJlZDsKLSAgICAgICAgfQotICAgICAgICBAbWVkaWEgKC13ZWJraXQtdmll
dy1tb2RlOiBtaW5pbWl6ZWQpIHsKLSAgICAgICAgICAgIGJvZHkgewotICAgICAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgQG1lZGlhICgtd2Via2l0LXZpZXctbW9kZSkgewotICAgICAgICAgICAgZGl2IHsKLSAgICAg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZp
ZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5pbWl6ZWQiKTsKLSAgICA8L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDA7IGhlaWdodDogMjAwOyJcPgotPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEt
ZmVhdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3ZpZXctbW9kZS1t
ZWRpYS1mZWF0dXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mNjcxMzIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS92
aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3
ODR4NTg0IFtiZ2NvbG9yPSMwMDAwRkZdCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCww
KSBzaXplIDIwMHgyMDAgW2JnY29sb3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi40ZWRkMDY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sCkBAIC0wLDAgKzEsMjUgQEAK
KzxoZWFkPgorICAgIDx0aXRsZT5UZXN0aW5nIFdpZGdldHMgMS4wIFZpZXcgTW9kZSBNZWRpYSBG
ZWF0dXJlPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICBkaXYg
eworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICB9CisgICAgICAg
IEBtZWRpYSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmltaXplZCkgeworICAgICAgICAgICAgYm9k
eSB7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICBAbWVkaWEgKC13ZWJraXQtdmlldy1tb2RlKSB7CisgICAg
ICAgICAgICBkaXYgeworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmltaXplZCIpOworICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDIwMDsg
aGVpZ2h0OiAyMDA7Ilw+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDg5
ZTcxNTguLmU0ODc0ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC01NDU5LDggKzU0
NTksOCBAQCBmYXN0L3J1bmluL2dlbmVyYXRlZDIuaHRtbAogZmFzdC9ydW5pbi9nZW5lcmF0ZWQz
Lmh0bWwKIGZhc3QvcnVuaW4vZ2VuZXJhdGVkNC5odG1sCiAKLSMgTm8gV2lkZ2V0cyAxLjAgc3Vw
cG9ydAotZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbAorIyB2aWV3
IG1vZGUgbWVkaWEgZmVhdHVyZQorZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5o
dG1sCiAKICMgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIGRvZXNuJ3QgcmV0dXJuIHRvIE5F
VFdPUktfSURMRSBhbmQgaGVuY2UgZG9lc24ndCBmaXJlIGEgc3VzcGVuZCBldmVudAogIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcwMzQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQKaW5kZXggNDdjNTM3ZC4uY2Y0OWZjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKQEAgLTEzOSw4ICsxMzksOCBAQCBodHRwL3Rlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50
LWhhcy1mb2N1cy5odG1sCiAjIE1pc3NlcyBzZXRNZWRpYVR5cGUoKSBhbmQgaW1wbGVtZW50YXRp
b24KIGZhc3QvbWVkaWEvcHJpbnQtcmVzdG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwKIAot
IyBObyBXaWRnZXRzIDEuMCBzdXBwb3J0Ci1mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZp
ZXctbW9kZS5odG1sCisjIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCitmYXN0L21lZGlhL3ZpZXct
bW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKIAogIyBUZXN0IGlzIGZsYWt5IGFuZCB0aHVzIG5vdCB1
c2VmdWwgdW50aWwgZml4ZWQuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjY0MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA0NzY4MzM1Li43YzhkYTNl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODM3LDggKzgzNyw4IEBAIGZhc3QvZG9t
L0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItb3B0aW11bXMuaHRtbAogZmFzdC9kb20vSFRNTE1ldGVy
RWxlbWVudC9tZXRlci1zdHlsZXMuaHRtbAogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRl
ci1zdHlsZXMtY2hhbmdpbmctcHNldWRvLmh0bWwKIAotIyBObyBXaWRnZXRzIDEuMCBzdXBwb3J0
Ci1mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCisjIHZpZXcgbW9k
ZSBtZWRpYSBmZWF0dXJlCitmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwK
IAogIyBOZWVkIGV4cGVjdGF0aW9ucy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNjQ2MQogZmFzdC9yZXBhaW50L292ZXJmbG93LXNjcm9sbC1ib2R5LWFwcGVh
ci5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGYwNjdiOGMuLjEzZGM3ODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDctMjkgIEx1aXog
QWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxpbmcgdmlldyBtb2RlcyB0byBh
bGwgcGxhdGZvcm1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzUwNQorCisgICAgICAgIFZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGltcGxlbWVudGF0
aW9uIGFzIHNwZWNpZmllZCBpbiBodHRwOi8vd3d3LnczLm9yZy9UUi92aWV3LW1vZGUuCisKKyAg
ICAgICAgVGhlIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGxheW91dCB0ZXN0cyBhcmUgc3RpbCBz
a2lwcGVkIGZvciBhbGwgcGxhdGZvcm1zIGV4Y2VwdCBRdAorICAgICAgICBiZWNhdXNlIG9mIHRo
ZSBsYWNrIG9mIHN1cHBvcnQgb2YgTGF5b3V0VGVzdENvbnRyb2xsZXIgaW4gdGhvc2UgcGxhdGZv
cm1zLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUu
aHRtbAorCisgICAgICAgICogY3NzL01lZGlhRmVhdHVyZU5hbWVzLmg6CisgICAgICAgICogY3Nz
L01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmlld19tb2RlTWVk
aWFGZWF0dXJlRXZhbCk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVWaWV3TW9kZXNTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c2V0Vmlld01vZGUpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6dmlld01vZGUpOgorCiAyMDEwLTA3LTI5ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemlt
bWVybWFubkByaW0uY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gRml4IHJlbGVhc2UgYnVp
bGRzLCBieSByZW1vdmluZyB1bnVzZWQgdmFyaWFibGVzLCB0aGF0IG9ubHkgc2VydmVkIGZvciBB
U1NFUlRzIHRoYXQgYXJlIG5vIGxvbmdlciBuZWVkZWQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy9NZWRpYUZlYXR1cmVOYW1lcy5oIGIvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaApp
bmRleCA4YWFlZGIyLi5iOGYyNzIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1
cmVOYW1lcy5oCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKQEAgLTI1LDEz
ICsyNSw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbmFtZXNwYWNlIE1lZGlhRmVhdHVy
ZU5hbWVzIHsKIAotI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCi0jZGVmaW5lIENTU19N
RURJQVFVRVJZX05BTUVTX0ZPUl9XSURHRVRTXzEwX01FRElBRkVBVFVSRShtYWNybykgXAotICAg
IG1hY3JvKHZpZXdfbW9kZSwgIi13ZWJraXQtdmlldy1tb2RlIikKLSNlbHNlCi0jZGVmaW5lIENT
U19NRURJQVFVRVJZX05BTUVTX0ZPUl9XSURHRVRTXzEwX01FRElBRkVBVFVSRShtYWNybykKLSNl
bmRpZgotCiAjZGVmaW5lIENTU19NRURJQVFVRVJZX05BTUVTX0ZPUl9FQUNIX01FRElBRkVBVFVS
RShtYWNybykgXAogICAgIG1hY3JvKGNvbG9yLCAiY29sb3IiKSBcCiAgICAgbWFjcm8oZ3JpZCwg
ImdyaWQiKSBcCkBAIC02Niw3ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNy
byh0cmFuc2Zvcm1fM2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBtYWNybyh0cmFu
c2l0aW9uLCAiLXdlYmtpdC10cmFuc2l0aW9uIikgXAogICAgIG1hY3JvKGFuaW1hdGlvbiwgIi13
ZWJraXQtYW5pbWF0aW9uIikgXAotICAgIENTU19NRURJQVFVRVJZX05BTUVTX0ZPUl9XSURHRVRT
XzEwX01FRElBRkVBVFVSRShtYWNybykKKyAgICBtYWNybyh2aWV3X21vZGUsICItd2Via2l0LXZp
ZXctbW9kZSIpCiAKIC8vIGVuZCBvZiBtYWNybwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
Y3BwCmluZGV4IDlkNTgyMmYuLjNlODMxOTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
Y3BwCkBAIC00OTgsMjggKzQ5OCwxMyBAQCBzdGF0aWMgYm9vbCB0cmFuc2Zvcm1fM2RNZWRpYUZl
YXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZgogICAgIHJl
dHVybiByZXR1cm5WYWx1ZUlmTm9QYXJhbWV0ZXI7CiB9CiAKLSNpZiBFTkFCTEUoV0lER0VUU18x
MF9TVVBQT1JUKQogc3RhdGljIGJvb2wgdmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgg
b3ApCiB7Ci0gICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgIFN0cmluZyBtb2RlID0gc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldFN0cmluZ1ZhbHVlKCk7Ci0gICAgICAg
IGlmIChDaHJvbWVDbGllbnQqIGNsaWVudCA9IGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jbGll
bnQoKSkgewotICAgICAgICAgICAgaWYgKG1vZGUgPT0gIndpbmRvd2VkIiAmJiBjbGllbnQtPmlz
V2luZG93ZWQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlm
IChtb2RlID09ICJmbG9hdGluZyIgJiYgY2xpZW50LT5pc0Zsb2F0aW5nKCkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAiZnVsbHNjcmVlbiIg
JiYgY2xpZW50LT5pc0Z1bGxzY3JlZW4oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgICAgIGlmIChtb2RlID09ICJtYXhpbWl6ZWQiICYmIGNsaWVudC0+aXNNYXhpbWl6
ZWQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtb2Rl
ID09ICJtaW5pbWl6ZWQiICYmIGNsaWVudC0+aXNNaW5pbWl6ZWQoKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAg
IH0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBVTlVTRURfUEFSQU0ob3ApOworICAgIGlmICghdmFs
dWUpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5nVmFsdWUoKSA9PSBmcmFtZS0+cGFnZSgpLT52
aWV3TW9kZSgpOwogfQotI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZ1bmN0aW9uTWFwKCkK
IHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAppbmRleCA3OTViMjVjLi4zY2I1OGE5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CkBAIC0yNDQsMTQgKzI0NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSA9IDA7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShX
SURHRVRTXzEwX1NVUFBPUlQpCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc1dpbmRvd2VkKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzRmxvYXRpbmcoKSB7IHJldHVy
biBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCkgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzTWF4aW1pemVkKCkgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzTWluaW1pemVkKCkgeyByZXR1cm4gZmFsc2U7
IH0KLSNlbmRpZgotCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIH5DaHJvbWVDbGll
bnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDQ1Nzg2NDguLmI5YTZlMjIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2Nyw2
ICsxNjcsNyBAQCBQYWdlOjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICAg
ICAsIG1fY3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheSgtMSkKICAgICAsIG1fY3VzdG9tSFRN
TFRva2VuaXplckNodW5rU2l6ZSgtMSkKICAgICAsIG1fY2FuU3RhcnRNZWRpYSh0cnVlKQorICAg
ICwgbV92aWV3TW9kZSgid2luZG93ZWQiKQogewogICAgIGlmICghYWxsUGFnZXMpIHsKICAgICAg
ICAgYWxsUGFnZXMgPSBuZXcgSGFzaFNldDxQYWdlKj47CkBAIC0yMTcsNiArMjE4LDM2IEBAIFBh
Z2U6On5QYWdlKCkKICNlbmRpZgogfQogCitzdGF0aWMgSGFzaFNldDxTdHJpbmc+KiBjcmVhdGVW
aWV3TW9kZXNTZXQoKQoreworICAgIEhhc2hTZXQ8U3RyaW5nPiogcmVzdWx0ID0gbmV3IEhhc2hT
ZXQ8U3RyaW5nPigpOworICAgIHJlc3VsdC0+YWRkKCJ3aW5kb3dlZCIpOworICAgIHJlc3VsdC0+
YWRkKCJmbG9hdGluZyIpOworICAgIHJlc3VsdC0+YWRkKCJmdWxsc2NyZWVuIik7CisgICAgcmVz
dWx0LT5hZGQoIm1heGltaXplZCIpOworICAgIHJlc3VsdC0+YWRkKCJtaW5pbWl6ZWQiKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFBhZ2U6OnNldFZpZXdNb2RlKGNvbnN0IFN0cmlu
ZyYgdmlld01vZGUpCit7CisgICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiogdmFsaWRPcHRpb25z
ID0gY3JlYXRlVmlld01vZGVzU2V0KCk7CisKKyAgICBpZiAodmlld01vZGUgPT0gbV92aWV3TW9k
ZSB8fCAhdmFsaWRPcHRpb25zLT5jb250YWlucyh2aWV3TW9kZSkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fdmlld01vZGUgPSB2aWV3TW9kZTsKKworICAgIGlmICghbV9tYWluRnJhbWUpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChtX21haW5GcmFtZS0+dmlldygpKQorICAgICAgICBt
X21haW5GcmFtZS0+dmlldygpLT5mb3JjZUxheW91dCgpOworCisgICAgaWYgKG1fbWFpbkZyYW1l
LT5kb2N1bWVudCgpKQorICAgICAgICBtX21haW5GcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5
bGVTZWxlY3RvcigpOworfQorCiB2b2lkIFBhZ2U6OnNldE1haW5GcmFtZShQYXNzUmVmUHRyPEZy
YW1lPiBtYWluRnJhbWUpCiB7CiAgICAgQVNTRVJUKCFtX21haW5GcmFtZSk7IC8vIFNob3VsZCBv
bmx5IGJlIGNhbGxlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9QYWdlLmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGFhYjk1ZjMuLmQxZjNkNDkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2Uu
aApAQCAtMTg2LDYgKzE4Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAgICAg
ICBTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzLmdldCgpOyB9
CiAgICAgICAgIFByb2dyZXNzVHJhY2tlciogcHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBtX3By
b2dyZXNzLmdldCgpOyB9CisKKyAgICAgICAgU3RyaW5nIHZpZXdNb2RlKCkgY29uc3QgeyByZXR1
cm4gbV92aWV3TW9kZTsgfQorICAgICAgICB2b2lkIHNldFZpZXdNb2RlKGNvbnN0IFN0cmluZyYp
OwogICAgICAgICAKICAgICAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMo
Ym9vbCBiKSB7IG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzID0gYjsgfQogICAgICAgICBi
b29sIHRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdGFiS2V5
Q3ljbGVzVGhyb3VnaEVsZW1lbnRzOyB9CkBAIC0zNjEsNiArMzY0LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOwogI2VuZGlmCisKKyAgICAgICAgU3Ry
aW5nIG1fdmlld01vZGU7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
LmNwcAppbmRleCBmYTQ5MjkzLi41NGIyMjQ5IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlLmNwcAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAtMTIxOCwxNCAr
MTIxOCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKIHZvaWQgUVdlYlBhZ2VQcml2YXRlOjpkeW5hbWlj
UHJvcGVydHlDaGFuZ2VFdmVudChRRHluYW1pY1Byb3BlcnR5Q2hhbmdlRXZlbnQqIGV2ZW50KQog
ewogICAgIGlmIChldmVudC0+cHJvcGVydHlOYW1lKCkgPT0gIl9xX3ZpZXdNb2RlIikgewotICAg
ICAgICBRU3RyaW5nIG1vZGUgPSBxLT5wcm9wZXJ0eSgiX3Ffdmlld01vZGUiKS50b1N0cmluZygp
OwotICAgICAgICBpZiAobW9kZSAhPSB2aWV3TW9kZSkgewotICAgICAgICAgICAgdmlld01vZGUg
PSBtb2RlOwotICAgICAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJp
dmF0ZTo6Y29yZShxLT5tYWluRnJhbWUoKSk7Ci0gICAgICAgICAgICBXZWJDb3JlOjpGcmFtZVZp
ZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwotICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCkt
PnVwZGF0ZVN0eWxlU2VsZWN0b3IoKTsKLSAgICAgICAgICAgIHZpZXctPmxheW91dCgpOwotICAg
ICAgICB9CisgICAgICAgIHBhZ2UtPnNldFZpZXdNb2RlKHEtPnByb3BlcnR5KCJfcV92aWV3TW9k
ZSIpLnRvU3RyaW5nKCkpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgpID09
ICJfcV9IVE1MVG9rZW5pemVyQ2h1bmtTaXplIikgewogICAgICAgICBpbnQgY2h1bmtTaXplID0g
cS0+cHJvcGVydHkoIl9xX0hUTUxUb2tlbml6ZXJDaHVua1NpemUiKS50b0ludCgpOwogICAgICAg
ICBxLT5oYW5kbGUoKS0+cGFnZS0+c2V0Q3VzdG9tSFRNTFRva2VuaXplckNodW5rU2l6ZShjaHVu
a1NpemUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZV9wLmggYi9XZWJLaXQv
cXQvQXBpL3F3ZWJwYWdlX3AuaAppbmRleCA0NGNlYjg3Li5jZjRhYjg4IDEwMDY0NAotLS0gYS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3Au
aApAQCAtMjAxLDggKzIwMSw2IEBAIHB1YmxpYzoKICAgICBRV2ViSW5zcGVjdG9yKiBpbnNwZWN0
b3I7CiAgICAgYm9vbCBpbnNwZWN0b3JJc0ludGVybmFsT25seTsgLy8gVHJ1ZSBpZiBjcmVhdGVk
IHRocm91Z2ggdGhlIEluc3BlY3QgY29udGV4dCBtZW51IGFjdGlvbgogICAgIFF0OjpEcm9wQWN0
aW9uIG1fbGFzdERyb3BBY3Rpb247Ci0gICAgCi0gICAgUVN0cmluZyB2aWV3TW9kZTsKIAogICAg
IHN0YXRpYyBib29sIGRydFJ1bjsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9n
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA4NThiZjI5Li45Yjg4ZTg1IDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMC0wNy0yOSAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBFbmFibGluZyB2aWV3IG1vZGVzIHRvIGFsbCBwbGF0Zm9ybXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTA1CisKKyAgICAgICAgQXMgdmlldyBt
b2RlIG1lZGlhIGZlYXR1cmUgaXMgbm93IHN1cHBvcnRlZCBieSBXZWJDb3JlIHRoZXJlIGlzIG5v
IG5lZWQKKyAgICAgICAgdG8ga2VlcCBpdHMgaW1wbGVtZW50YXRpb24gaGVyZS4gUXRXZWJLaXQg
bm93IHVzZXMgV2ViQ29yZSdzIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCisgICAgICAgIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQ
YWdlUHJpdmF0ZTo6ZHluYW1pY1Byb3BlcnR5Q2hhbmdlRXZlbnQpOgorICAgICAgICAqIEFwaS9x
d2VicGFnZV9wLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIwMTAtMDct
MjkgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG5va2lhLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5jcHAKaW5kZXggMmM2NGE3OC4uYjdhZjNlMiAxMDA2NDQKLS0tIGEvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC01OTgsMzMgKzU5OCw2IEBAIFF0QWJz
dHJhY3RXZWJQb3B1cCogQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVwKCkKICNlbmRp
ZgogfQogCi0jaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKLWJvb2wgQ2hyb21lQ2xpZW50
UXQ6OmlzV2luZG93ZWQoKQotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPnZpZXdNb2RlID09
ICJ3aW5kb3dlZCI7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzRmxvYXRpbmcoKQotewot
ICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPnZpZXdNb2RlID09ICJmbG9hdGluZyI7Ci19Ci0KLWJv
b2wgQ2hyb21lQ2xpZW50UXQ6OmlzRnVsbHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIG1fd2ViUGFn
ZS0+ZC0+dmlld01vZGUgPT0gImZ1bGxzY3JlZW4iOwotfQotCi1ib29sIENocm9tZUNsaWVudFF0
Ojppc01heGltaXplZCgpCi17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+ZC0+dmlld01vZGUgPT0g
Im1heGltaXplZCI7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzTWluaW1pemVkKCkKLXsK
LSAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT52aWV3TW9kZSA9PSAibWluaW1pemVkIjsKLX0KLSNl
bmRpZgotCiB2b2lkIENocm9tZUNsaWVudFF0OjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMo
RnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdAog
ewogICAgIGlmIChtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5kLT5pbml0aWFsTGF5b3V0Q29tcGxl
dGUpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDcwYjRh
MjUuLmI3ZTlkMTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CkBAIC0xNjgsMTQgKzE2OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xv
Y2F0aW9uKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQogCi0jaWYgRU5BQkxF
KFdJREdFVFNfMTBfU1VQUE9SVCkKLSAgICAgICAgdmlydHVhbCBib29sIGlzV2luZG93ZWQoKTsK
LSAgICAgICAgdmlydHVhbCBib29sIGlzRmxvYXRpbmcoKTsKLSAgICAgICAgdmlydHVhbCBib29s
IGlzRnVsbHNjcmVlbigpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNYXhpbWl6ZWQoKTsKLSAg
ICAgICAgdmlydHVhbCBib29sIGlzTWluaW1pemVkKCk7Ci0jZW5kaWYKLQogICAgICAgICBRdEFi
c3RyYWN0V2ViUG9wdXAqIGNyZWF0ZVNlbGVjdFBvcHVwKCk7CiAKICAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVWaWV3cG9ydEFyZ3VtZW50cyhGcmFtZSosIGNvbnN0IFZpZXdwb3J0QXJn
dW1lbnRzJikgY29uc3Q7Ci0tIAoxLjYuMy4zCgo=
</data>
<flag name="review"
          id="51246"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63105</attachid>
            <date>2010-07-30 14:55:00 -0700</date>
            <delta_ts>2010-07-30 19:46:28 -0700</delta_ts>
            <desc>patch 4</desc>
            <filename>0001-Enabling-view-modes-to-all-platforms.patch</filename>
            <type>text/plain</type>
            <size>22064</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBiYjM2ZTQ0ZjE3ZDQwZTIzMDI3ZmNjOWI1ZWJlMWI5OWYzNTIyZTk5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFRodSwgMjkgSnVsIDIwMTAgMTU6MTA6MDkgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBFbmFibGluZyB2aWV3IG1vZGVzIHRvIGFsbCBwbGF0Zm9ybXMKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzUwNQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpKYXZhU2NyaXB0Q29yZToKClJlbW92aW5nIEVOQUJMRV9XSURHRVRTXzEwX1NVUFBPUlQg
ZmxhZy4KCkFzIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGlzIG5vdCBwYXJ0IG9mIHdpZGdldCAx
LjAgc3BlY2lmaWNhdGlvbgphbnkgbW9yZSB0aGUgRU5BQkxFX1dJREdFVFNfMTBfU1VQUE9SVCBm
bGFnIG1heSBiZSByZW1vdmVkLiBUaGUgb25seSB1c2UKb2YgdGhpcyBmbGFnIHdhcyByZWxhdGVk
IHRvIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGltcGxlbWVudGF0aW9uIGluIFF0LgoKKiB3dGYv
UGxhdGZvcm0uaDoKCldlYkNvcmU6CgpWaWV3IG1vZGUgbWVkaWEgZmVhdHVyZSBpbXBsZW1lbnRh
dGlvbiBhcyBzcGVjaWZpZWQgaW4gaHR0cDovL3d3dy53My5vcmcvVFIvdmlldy1tb2RlLgoKVGhl
IHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGxheW91dCB0ZXN0cyBhcmUgc3RpbCBza2lwcGVkIGZv
ciBhbGwgcGxhdGZvcm1zIGV4Y2VwdCBRdApiZWNhdXNlIG9mIHRoZSBsYWNrIG9mIHN1cHBvcnQg
b2YgTGF5b3V0VGVzdENvbnRyb2xsZXIgaW4gdGhvc2UgcGxhdGZvcm1zLgoKVGVzdDogZmFzdC9t
ZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sCgoqIGNzcy9NZWRpYUZlYXR1cmVOYW1l
cy5oOgoqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKFdlYkNvcmU6OnZpZXdfbW9kZU1l
ZGlhRmVhdHVyZUV2YWwpOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CiogcGFnZS9QYWdlLmNwcDoK
KFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgooV2ViQ29yZTo6Y3JlYXRlVmlld01vZGVzU2V0KToKKFdl
YkNvcmU6OlBhZ2U6OnNldFZpZXdNb2RlKToKKiBwYWdlL1BhZ2UuaDoKKFdlYkNvcmU6OlBhZ2U6
OnZpZXdNb2RlKToKCldlYktpdC9xdDoKCkFzIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGlzIG5v
dyBzdXBwb3J0ZWQgYnkgV2ViQ29yZSB0aGVyZSBpcyBubyBuZWVkCnRvIGtlZXAgaXRzIGltcGxl
bWVudGF0aW9uIGhlcmUuIFF0V2ViS2l0IG5vdyB1c2VzIFdlYkNvcmUncyB2aWV3IG1vZGUgbWVk
aWEgZmVhdHVyZQppbXBsZW1lbnRhdGlvbi4KCiogQXBpL3F3ZWJwYWdlLmNwcDoKKFFXZWJQYWdl
UHJpdmF0ZTo6ZHluYW1pY1Byb3BlcnR5Q2hhbmdlRXZlbnQpOgoqIEFwaS9xd2VicGFnZV9wLmg6
CiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgoqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0Lmg6CgpMYXlvdXRUZXN0czoKClJlbW92aW5nICd3aWRnZXQnIHJlZmVyZW5j
ZSBmcm9tIHRoZSBsYXlvdXQgdGVzdHMgYmVjYXVzZSB0aGUgdmlldyBtb2RlIG1lZGlhIGZlYXR1
cmUKaXMgbm90IHBhcnQgb2Ygd2lkZ2V0IDEuMCBzcGVjaWZpY2F0aW9uIGFueSBtb3JlLgoKVGhl
IGxheW91dCB0ZXN0cyBhcmUgc3RpbCBza2lwcGVkIGZvciBhbGwgcGxhdGZvcm1zIGV4Y2VwdCBR
dCBiZWNhdXNlIG9mIHRoZSBsYWNrCm9mIHN1cHBvcnQgb2YgTGF5b3V0VGVzdENvbnRyb2xsZXIg
aW4gdGhvc2UgcGxhdGZvcm1zLgoKKiBmYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJl
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEt
ZmVhdHVyZS13Z3Qtdmlldy1tb2RlLWV4cGVjdGVkLnR4dC4KKiBmYXN0L21lZGlhL3ZpZXctbW9k
ZS1tZWRpYS1mZWF0dXJlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sLgoqIHBsYXRmb3JtL2d0ay9Ta2lwcGVk
OgoqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgotLS0KIEph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSAr
KysrKysrCiBKYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDcgLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTkgKysrKysrKysrCiAuLi4vbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmll
dy1tb2RlLWV4cGVjdGVkLnR4dCB8ICAgIDYgLS0tCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1mZWF0
dXJlLXdndC12aWV3LW1vZGUuaHRtbCAgICB8ICAgMjUgLS0tLS0tLS0tLS0tCiAuLi4vbWVkaWEv
dmlldy1tb2RlLW1lZGlhLWZlYXR1cmUtZXhwZWN0ZWQudHh0ICAgICB8ICAgIDYgKysrCiAuLi4v
ZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sICAgICAgICB8ICAgMjUgKysr
KysrKysrKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAg
ICAgICB8ICAgIDQgKy0KIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkICAgICAgICAg
ICAgICAgICAgIHwgICAgNCArLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgICAg
ICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjUgKysrKysrKysrKysrCiBXZWJDb3JlL2Nzcy9NZWRp
YUZlYXR1cmVOYW1lcy5oICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKy0tLS0KIFdlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICAgICAgICAgICAgICAgIHwgICAyMyArKy0tLS0t
LS0tLQogV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oICAgICAgICAgICAgICAgICAgICAgICAg
fCAgICA4IC0tLS0KIFdlYkNvcmUvcGFnZS9QYWdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICA0MCArKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wYWdlL1BhZ2UuaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKysrKysrCiBXZWJLaXQvcXQv
QXBpL3F3ZWJwYWdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKy0tLS0KIFdl
YktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAt
CiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTcgKysrKysrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAg
ICAgICAgIHwgICAyNyAtLS0tLS0tLS0tLS0tCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50UXQuaCAgICAgICAgICB8ICAgIDggLS0tLQogMjEgZmlsZXMgY2hhbmdlZCwgMTc1
IGluc2VydGlvbnMoKyksIDEyNCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS1leHBlY3RlZC50
eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1
cmUtd2d0LXZpZXctbW9kZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0
bWwKCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggYjcyYmI2NS4uMzAxMTI4MyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDEwLTA3LTI5ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEVuYWJsaW5nIHZpZXcgbW9kZXMgdG8gYWxsIHBsYXRmb3JtcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc1MDUKKworICAgICAgICBSZW1vdmluZyBF
TkFCTEVfV0lER0VUU18xMF9TVVBQT1JUIGZsYWcuCisKKyAgICAgICAgQXMgdmlldyBtb2RlIG1l
ZGlhIGZlYXR1cmUgaXMgbm90IHBhcnQgb2Ygd2lkZ2V0IDEuMCBzcGVjaWZpY2F0aW9uCisgICAg
ICAgIGFueSBtb3JlIHRoZSBFTkFCTEVfV0lER0VUU18xMF9TVVBQT1JUIGZsYWcgbWF5IGJlIHJl
bW92ZWQuIFRoZSBvbmx5IHVzZQorICAgICAgICBvZiB0aGlzIGZsYWcgd2FzIHJlbGF0ZWQgdG8g
dmlldyBtb2RlIG1lZGlhIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gaW4gUXQuIAorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTAtMDctMzAgIFJhZmFlbCBBbnRvZ25vbGxpICA8YW50
b2dub2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdv
bWVzLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCBmNGE3MWIwLi41MWJmOTJkIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaApAQCAtNTcxLDkgKzU3MSw2IEBACiAKICNpZiBQTEFURk9STShRVCkKICNkZWZp
bmUgV1RGX1VTRV9RVDRfVU5JQ09ERSAxCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dJREdFVFNfMTBf
U1VQUE9SVCkKLSNkZWZpbmUgRU5BQkxFX1dJREdFVFNfMTBfU1VQUE9SVCAxCi0jZW5kaWYKICNl
bGlmIE9TKFdJTkNFKQogI2RlZmluZSBXVEZfVVNFX1dJTkNFX1VOSUNPREUgMQogI2VsaWYgUExB
VEZPUk0oR1RLKQpAQCAtODM3LDEwICs4MzQsNiBAQAogI2RlZmluZSBFTkFCTEVfREFTSEJPQVJE
X1NVUFBPUlQgMAogI2VuZGlmCiAKLSNpZiAhZGVmaW5lZChFTkFCTEVfV0lER0VUU18xMF9TVVBQ
T1JUKQotI2RlZmluZSBFTkFCTEVfV0lER0VUU18xMF9TVVBQT1JUIDAKLSNlbmRpZgotCiAjaWYg
IWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUikKICNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUiAxCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA2NjQxZWFlLi5hM2ZiZDNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIw
MTAtMDctMjkgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxpbmcg
dmlldyBtb2RlcyB0byBhbGwgcGxhdGZvcm1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNzUwNQorCisgICAgICAgIFJlbW92aW5nICd3aWRnZXQnIHJl
ZmVyZW5jZSBmcm9tIHRoZSBsYXlvdXQgdGVzdHMgYmVjYXVzZSB0aGUgdmlldyBtb2RlIG1lZGlh
IGZlYXR1cmUKKyAgICAgICAgaXMgbm90IHBhcnQgb2Ygd2lkZ2V0IDEuMCBzcGVjaWZpY2F0aW9u
IGFueSBtb3JlLgorCisgICAgICAgIFRoZSBsYXlvdXQgdGVzdHMgYXJlIHN0aWwgc2tpcHBlZCBm
b3IgYWxsIHBsYXRmb3JtcyBleGNlcHQgUXQgYmVjYXVzZSBvZiB0aGUgbGFjaworICAgICAgICBv
ZiBzdXBwb3J0IG9mIExheW91dFRlc3RDb250cm9sbGVyIGluIHRob3NlIHBsYXRmb3Jtcy4KKwor
ICAgICAgICAqIGZhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12
aWV3LW1vZGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvbWVkaWEvdmlldy1tb2RlLW1l
ZGlhLWZlYXR1cmUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVk
aWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZv
cm0vd2luL1NraXBwZWQ6CisKIDIwMTAtMDctMzAgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bn
b29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3
LW1vZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjcxMzIz
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qt
dmlldy1tb2RlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgODAweDYwMAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
Nzg0eDU4NCBbYmdjb2xvcj0jMDAwMEZGXQotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDB4MjAwIFtiZ2NvbG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNGVkZDA2Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMjUgKzAsMCBAQAotPGhlYWQ+Ci0gICAgPHRpdGxlPlRlc3RpbmcgV2lkZ2V0cyAxLjAg
VmlldyBNb2RlIE1lZGlhIEZlYXR1cmU8L3RpdGxlPgotICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+Ci0gICAgICAgIGRpdiB7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ci0g
ICAgICAgIH0KLSAgICAgICAgQG1lZGlhICgtd2Via2l0LXZpZXctbW9kZTogbWluaW1pemVkKSB7
Ci0gICAgICAgICAgICBib2R5IHsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIEBtZWRpYSAoLXdlYmtpdC12
aWV3LW1vZGUpIHsKLSAgICAgICAgICAgIGRpdiB7Ci0gICAgICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICA8L3N0eWxlPgot
ICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSgi
bWluaW1pemVkIik7Ci0gICAgPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICA8ZGl2IHN0
eWxlPSJ3aWR0aDogMjAwOyBoZWlnaHQ6IDIwMDsiXD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY3MTMyMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1
cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NCBbYmdjb2xvcj0jMDAw
MEZGXQorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDB4MjAwIFtiZ2Nv
bG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3ZpZXctbW9k
ZS1tZWRpYS1mZWF0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3ZpZXctbW9kZS1t
ZWRpYS1mZWF0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE5
ZGM3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvdmlldy1tb2Rl
LW1lZGlhLWZlYXR1cmUuaHRtbApAQCAtMCwwICsxLDI1IEBACis8aGVhZD4KKyAgICA8dGl0bGU+
VGVzdGluZyB0aGUgVmlldyBNb2RlIE1lZGlhIEZlYXR1cmU8L3RpdGxlPgorICAgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgIGRpdiB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZWQ7CisgICAgICAgIH0KKyAgICAgICAgQG1lZGlhICgtd2Via2l0LXZpZXctbW9kZTog
bWluaW1pemVkKSB7CisgICAgICAgICAgICBib2R5IHsKKyAgICAgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEBtZWRp
YSAoLXdlYmtpdC12aWV3LW1vZGUpIHsKKyAgICAgICAgICAgIGRpdiB7CisgICAgICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZSgibWluaW1pemVkIik7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjAwOyBoZWlnaHQ6IDIwMDsiXD4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggODllNzE1OC4uZTQ4NzRlYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKQEAgLTU0NTksOCArNTQ1OSw4IEBAIGZhc3QvcnVuaW4vZ2VuZXJhdGVk
Mi5odG1sCiBmYXN0L3J1bmluL2dlbmVyYXRlZDMuaHRtbAogZmFzdC9ydW5pbi9nZW5lcmF0ZWQ0
Lmh0bWwKIAotIyBObyBXaWRnZXRzIDEuMCBzdXBwb3J0Ci1mYXN0L21lZGlhL21lZGlhLWZlYXR1
cmUtd2d0LXZpZXctbW9kZS5odG1sCisjIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCitmYXN0L21l
ZGlhL3ZpZXctbW9kZS1tZWRpYS1mZWF0dXJlLmh0bWwKIAogIyBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIgZG9lc24ndCByZXR1cm4gdG8gTkVUV09SS19JRExFIGFuZCBoZW5jZSBkb2Vzbid0
IGZpcmUgYSBzdXNwZW5kIGV2ZW50CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzAzNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA0N2M1MzdkLi5jZjQ5
ZmMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTM5LDggKzEzOSw4IEBAIGh0dHAv
dGVzdHMvcGx1Z2lucy9wbHVnaW4tZG9jdW1lbnQtaGFzLWZvY3VzLmh0bWwKICMgTWlzc2VzIHNl
dE1lZGlhVHlwZSgpIGFuZCBpbXBsZW1lbnRhdGlvbgogZmFzdC9tZWRpYS9wcmludC1yZXN0b3Jl
cy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbAogCi0jIE5vIFdpZGdldHMgMS4wIHN1cHBvcnQKLWZh
c3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKKyMgdmlldyBtb2RlIG1l
ZGlhIGZlYXR1cmUKK2Zhc3QvbWVkaWEvdmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbAogCiAj
IFRlc3QgaXMgZmxha3kgYW5kIHRodXMgbm90IHVzZWZ1bCB1bnRpbCBmaXhlZC4KICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NjQyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCmluZGV4IDQ3NjgzMzUuLjdjOGRhM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVk
CkBAIC04MzcsOCArODM3LDggQEAgZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1vcHRp
bXVtcy5odG1sCiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy5odG1sCiBm
YXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLXN0eWxlcy1jaGFuZ2luZy1wc2V1ZG8uaHRt
bAogCi0jIE5vIFdpZGdldHMgMS4wIHN1cHBvcnQKLWZhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13
Z3Qtdmlldy1tb2RlLmh0bWwKKyMgdmlldyBtb2RlIG1lZGlhIGZlYXR1cmUKK2Zhc3QvbWVkaWEv
dmlldy1tb2RlLW1lZGlhLWZlYXR1cmUuaHRtbAogCiAjIE5lZWQgZXhwZWN0YXRpb25zLiBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDYxCiBmYXN0L3JlcGFp
bnQvb3ZlcmZsb3ctc2Nyb2xsLWJvZHktYXBwZWFyLmh0bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFkNTM4ZS4uMTY1M2ZmZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxMC0wNy0yOSAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFbmFibGluZyB2aWV3IG1vZGVzIHRvIGFsbCBwbGF0Zm9ybXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTA1CisKKyAgICAgICAgVmlldyBt
b2RlIG1lZGlhIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gYXMgc3BlY2lmaWVkIGluIGh0dHA6Ly93
d3cudzMub3JnL1RSL3ZpZXctbW9kZS4KKworICAgICAgICBUaGUgdmlldyBtb2RlIG1lZGlhIGZl
YXR1cmUgbGF5b3V0IHRlc3RzIGFyZSBzdGlsIHNraXBwZWQgZm9yIGFsbCBwbGF0Zm9ybXMgZXhj
ZXB0IFF0CisgICAgICAgIGJlY2F1c2Ugb2YgdGhlIGxhY2sgb2Ygc3VwcG9ydCBvZiBMYXlvdXRU
ZXN0Q29udHJvbGxlciBpbiB0aG9zZSBwbGF0Zm9ybXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9t
ZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sCisKKyAgICAgICAgKiBjc3MvTWVkaWFG
ZWF0dXJlTmFtZXMuaDoKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVZpZXdNb2Rlc1Nl
dCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaWV3TW9kZSk6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp2aWV3TW9kZSk6CisKIDIwMTAtMDct
MjkgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgU3RldmUgQmxvY2suCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVO
YW1lcy5oIGIvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaAppbmRleCA4YWFlZGIyLi5i
OGYyNzIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCisrKyBi
L1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKQEAgLTI1LDEzICsyNSw2IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgbmFtZXNwYWNlIE1lZGlhRmVhdHVyZU5hbWVzIHsKIAotI2lm
IEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCi0jZGVmaW5lIENTU19NRURJQVFVRVJZX05BTUVT
X0ZPUl9XSURHRVRTXzEwX01FRElBRkVBVFVSRShtYWNybykgXAotICAgIG1hY3JvKHZpZXdfbW9k
ZSwgIi13ZWJraXQtdmlldy1tb2RlIikKLSNlbHNlCi0jZGVmaW5lIENTU19NRURJQVFVRVJZX05B
TUVTX0ZPUl9XSURHRVRTXzEwX01FRElBRkVBVFVSRShtYWNybykKLSNlbmRpZgotCiAjZGVmaW5l
IENTU19NRURJQVFVRVJZX05BTUVTX0ZPUl9FQUNIX01FRElBRkVBVFVSRShtYWNybykgXAogICAg
IG1hY3JvKGNvbG9yLCAiY29sb3IiKSBcCiAgICAgbWFjcm8oZ3JpZCwgImdyaWQiKSBcCkBAIC02
Niw3ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh0cmFuc2Zvcm1fM2Qs
ICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBtYWNybyh0cmFuc2l0aW9uLCAiLXdlYmtp
dC10cmFuc2l0aW9uIikgXAogICAgIG1hY3JvKGFuaW1hdGlvbiwgIi13ZWJraXQtYW5pbWF0aW9u
IikgXAotICAgIENTU19NRURJQVFVRVJZX05BTUVTX0ZPUl9XSURHRVRTXzEwX01FRElBRkVBVFVS
RShtYWNybykKKyAgICBtYWNybyh2aWV3X21vZGUsICItd2Via2l0LXZpZXctbW9kZSIpCiAKIC8v
IGVuZCBvZiBtYWNybwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmNwcCBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDlkNTgy
MmYuLjBiNTUwN2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
Y3BwCisrKyBiL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC00OTgsMjgg
KzQ5OCwxMyBAQCBzdGF0aWMgYm9vbCB0cmFuc2Zvcm1fM2RNZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZgogICAgIHJldHVybiByZXR1cm5WYWx1
ZUlmTm9QYXJhbWV0ZXI7CiB9CiAKLSNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQogc3Rh
dGljIGJvb2wgdmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRl
clN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7Ci0gICAgaWYg
KHZhbHVlKSB7Ci0gICAgICAgIFN0cmluZyBtb2RlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZSktPmdldFN0cmluZ1ZhbHVlKCk7Ci0gICAgICAgIGlmIChDaHJvbWVDbGll
bnQqIGNsaWVudCA9IGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSkgewotICAgICAg
ICAgICAgaWYgKG1vZGUgPT0gIndpbmRvd2VkIiAmJiBjbGllbnQtPmlzV2luZG93ZWQoKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtb2RlID09ICJmbG9h
dGluZyIgJiYgY2xpZW50LT5pc0Zsb2F0aW5nKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSAiZnVsbHNjcmVlbiIgJiYgY2xpZW50LT5pc0Z1
bGxzY3JlZW4oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlm
IChtb2RlID09ICJtYXhpbWl6ZWQiICYmIGNsaWVudC0+aXNNYXhpbWl6ZWQoKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChtb2RlID09ICJtaW5pbWl6ZWQi
ICYmIGNsaWVudC0+aXNNaW5pbWl6ZWQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICBVTlVTRURfUEFSQU0ob3ApOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIHJldHVybiBQYWdlOjpzdHJpbmdUb1ZpZXdNb2RlKHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRTdHJpbmdWYWx1ZSgpKSA9PSBmcmFtZS0+
cGFnZSgpLT52aWV3TW9kZSgpOwogfQotI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZ1bmN0
aW9uTWFwKCkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA3OTViMjVjLi4zY2I1OGE5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCkBAIC0yNDQsMTQgKzI0NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSA9IDA7CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShXSURHRVRTXzEwX1NVUFBPUlQpCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc1dpbmRv
d2VkKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzRmxvYXRpbmco
KSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCkg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzTWF4aW1pemVkKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzTWluaW1pemVkKCkgeyByZXR1
cm4gZmFsc2U7IH0KLSNlbmRpZgotCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIH5D
aHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGYzOWQ3ODYuLjk0ZDI5NDAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTE2Nyw2ICsxNjcsNyBAQCBQYWdlOjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xp
ZW50cykKICAgICAsIG1fY3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheSgtMSkKICAgICAsIG1f
Y3VzdG9tSFRNTFRva2VuaXplckNodW5rU2l6ZSgtMSkKICAgICAsIG1fY2FuU3RhcnRNZWRpYSh0
cnVlKQorICAgICwgbV92aWV3TW9kZShWaWV3TW9kZVdpbmRvd2VkKQogewogICAgIGlmICghYWxs
UGFnZXMpIHsKICAgICAgICAgYWxsUGFnZXMgPSBuZXcgSGFzaFNldDxQYWdlKj47CkBAIC0yMjAs
NiArMjIxLDQ1IEBAIFBhZ2U6On5QYWdlKCkKICNlbmRpZgogfQogCitzdHJ1Y3QgVmlld01vZGVJ
bmZvIHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIFBhZ2U6OlZpZXdNb2RlIHR5cGU7Cit9
Oworc3RhdGljIGNvbnN0IGludCB2aWV3TW9kZU1hcFNpemUgPSA1Oworc3RhdGljIFZpZXdNb2Rl
SW5mbyB2aWV3TW9kZU1hcFt2aWV3TW9kZU1hcFNpemVdID0geworICAgIHsid2luZG93ZWQiLCBQ
YWdlOjpWaWV3TW9kZVdpbmRvd2VkfSwKKyAgICB7ImZsb2F0aW5nIiwgUGFnZTo6Vmlld01vZGVG
bG9hdGluZ30sCisgICAgeyJmdWxsc2NyZWVuIiwgUGFnZTo6Vmlld01vZGVGdWxsc2NyZWVufSwK
KyAgICB7Im1heGltaXplZCIsIFBhZ2U6OlZpZXdNb2RlTWF4aW1pemVkfSwKKyAgICB7Im1pbmlt
aXplZCIsIFBhZ2U6OlZpZXdNb2RlTWluaW1pemVkfQorfTsKKworUGFnZTo6Vmlld01vZGUgUGFn
ZTo6c3RyaW5nVG9WaWV3TW9kZShjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCB2aWV3TW9kZU1hcFNpemU7ICsraSkgeworICAgICAgICBpZiAodGV4dCA9PSB2
aWV3TW9kZU1hcFtpXS5uYW1lKQorICAgICAgICAgICAgcmV0dXJuIHZpZXdNb2RlTWFwW2ldLnR5
cGU7CisgICAgfQorICAgIHJldHVybiBQYWdlOjpWaWV3TW9kZUludmFsaWQ7Cit9CisKK3ZvaWQg
UGFnZTo6c2V0Vmlld01vZGUoVmlld01vZGUgdmlld01vZGUpCit7CisgICAgaWYgKHZpZXdNb2Rl
ID09IG1fdmlld01vZGUgfHwgdmlld01vZGUgPT0gVmlld01vZGVJbnZhbGlkKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3ZpZXdNb2RlID0gdmlld01vZGU7CisKKyAgICBpZiAoIW1fbWFpbkZy
YW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9tYWluRnJhbWUtPnZpZXcoKSkKKyAg
ICAgICAgbV9tYWluRnJhbWUtPnZpZXcoKS0+Zm9yY2VMYXlvdXQoKTsKKworICAgIGlmIChtX21h
aW5GcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgbV9tYWluRnJhbWUtPmRvY3VtZW50KCktPnVw
ZGF0ZVN0eWxlU2VsZWN0b3IoKTsKK30KKwogdm9pZCBQYWdlOjpzZXRNYWluRnJhbWUoUGFzc1Jl
ZlB0cjxGcmFtZT4gbWFpbkZyYW1lKQogewogICAgIEFTU0VSVCghbV9tYWluRnJhbWUpOyAvLyBT
aG91bGQgb25seSBiZSBjYWxsZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBhYWI5NWYzLi42
MmFmMGE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTE4Niw2ICsxODYsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlm
CiAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGluZ3Mu
Z2V0KCk7IH0KICAgICAgICAgUHJvZ3Jlc3NUcmFja2VyKiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0
dXJuIG1fcHJvZ3Jlc3MuZ2V0KCk7IH0KKworCisgICAgICAgIGVudW0gVmlld01vZGUgeworICAg
ICAgICAgICAgVmlld01vZGVJbnZhbGlkLAorICAgICAgICAgICAgVmlld01vZGVXaW5kb3dlZCwK
KyAgICAgICAgICAgIFZpZXdNb2RlRmxvYXRpbmcsCisgICAgICAgICAgICBWaWV3TW9kZUZ1bGxz
Y3JlZW4sCisgICAgICAgICAgICBWaWV3TW9kZU1heGltaXplZCwKKyAgICAgICAgICAgIFZpZXdN
b2RlTWluaW1pemVkCisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBWaWV3TW9kZSBzdHJpbmdU
b1ZpZXdNb2RlKGNvbnN0IFN0cmluZyYpOworCisgICAgICAgIFZpZXdNb2RlIHZpZXdNb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV92aWV3TW9kZTsgfQorICAgICAgICB2b2lkIHNldFZpZXdNb2RlKFZp
ZXdNb2RlKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVs
ZW1lbnRzKGJvb2wgYikgeyBtX3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyA9IGI7IH0KICAg
ICAgICAgYm9vbCB0YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBt
X3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50czsgfQpAQCAtMzYxLDYgKzM3NSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAgICAgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKICNlbmRpZgorCisgICAg
ICAgIFZpZXdNb2RlIG1fdmlld01vZGU7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9XZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlLmNwcAppbmRleCBmYTQ5MjkzLi5hOGJkMDZhIDEwMDY0NAotLS0gYS9XZWJLaXQv
cXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAt
MTIxOCwxNCArMTIxOCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKIHZvaWQgUVdlYlBhZ2VQcml2YXRl
OjpkeW5hbWljUHJvcGVydHlDaGFuZ2VFdmVudChRRHluYW1pY1Byb3BlcnR5Q2hhbmdlRXZlbnQq
IGV2ZW50KQogewogICAgIGlmIChldmVudC0+cHJvcGVydHlOYW1lKCkgPT0gIl9xX3ZpZXdNb2Rl
IikgewotICAgICAgICBRU3RyaW5nIG1vZGUgPSBxLT5wcm9wZXJ0eSgiX3Ffdmlld01vZGUiKS50
b1N0cmluZygpOwotICAgICAgICBpZiAobW9kZSAhPSB2aWV3TW9kZSkgewotICAgICAgICAgICAg
dmlld01vZGUgPSBtb2RlOwotICAgICAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdl
YkZyYW1lUHJpdmF0ZTo6Y29yZShxLT5tYWluRnJhbWUoKSk7Ci0gICAgICAgICAgICBXZWJDb3Jl
OjpGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwotICAgICAgICAgICAgZnJhbWUtPmRv
Y3VtZW50KCktPnVwZGF0ZVN0eWxlU2VsZWN0b3IoKTsKLSAgICAgICAgICAgIHZpZXctPmxheW91
dCgpOwotICAgICAgICB9CisgICAgICAgIHBhZ2UtPnNldFZpZXdNb2RlKFBhZ2U6OnN0cmluZ1Rv
Vmlld01vZGUocS0+cHJvcGVydHkoIl9xX3ZpZXdNb2RlIikudG9TdHJpbmcoKSkpOwogICAgIH0g
ZWxzZSBpZiAoZXZlbnQtPnByb3BlcnR5TmFtZSgpID09ICJfcV9IVE1MVG9rZW5pemVyQ2h1bmtT
aXplIikgewogICAgICAgICBpbnQgY2h1bmtTaXplID0gcS0+cHJvcGVydHkoIl9xX0hUTUxUb2tl
bml6ZXJDaHVua1NpemUiKS50b0ludCgpOwogICAgICAgICBxLT5oYW5kbGUoKS0+cGFnZS0+c2V0
Q3VzdG9tSFRNTFRva2VuaXplckNodW5rU2l6ZShjaHVua1NpemUpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3F0L0FwaS9xd2VicGFnZV9wLmggYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAppbmRl
eCA0NGNlYjg3Li5jZjRhYjg4IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3Au
aAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaApAQCAtMjAxLDggKzIwMSw2IEBAIHB1
YmxpYzoKICAgICBRV2ViSW5zcGVjdG9yKiBpbnNwZWN0b3I7CiAgICAgYm9vbCBpbnNwZWN0b3JJ
c0ludGVybmFsT25seTsgLy8gVHJ1ZSBpZiBjcmVhdGVkIHRocm91Z2ggdGhlIEluc3BlY3QgY29u
dGV4dCBtZW51IGFjdGlvbgogICAgIFF0OjpEcm9wQWN0aW9uIG1fbGFzdERyb3BBY3Rpb247Ci0g
ICAgCi0gICAgUVN0cmluZyB2aWV3TW9kZTsKIAogICAgIHN0YXRpYyBib29sIGRydFJ1bjsKIH07
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCA4NThiZjI5Li45Yjg4ZTg1IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNy0yOSAgTHVp
eiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGluZyB2aWV3IG1vZGVzIHRv
IGFsbCBwbGF0Zm9ybXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM3NTA1CisKKyAgICAgICAgQXMgdmlldyBtb2RlIG1lZGlhIGZlYXR1cmUgaXMgbm93
IHN1cHBvcnRlZCBieSBXZWJDb3JlIHRoZXJlIGlzIG5vIG5lZWQKKyAgICAgICAgdG8ga2VlcCBp
dHMgaW1wbGVtZW50YXRpb24gaGVyZS4gUXRXZWJLaXQgbm93IHVzZXMgV2ViQ29yZSdzIHZpZXcg
bW9kZSBtZWRpYSBmZWF0dXJlCisgICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICog
QXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6ZHluYW1pY1Byb3Bl
cnR5Q2hhbmdlRXZlbnQpOgorICAgICAgICAqIEFwaS9xd2VicGFnZV9wLmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIwMTAtMDctMjkgIEFsZXhpcyBNZW5hcmQgIDxhbGV4
aXMubWVuYXJkQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVz
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNw
cCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggMmM2
NGE3OC4uYjdhZjNlMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuY3BwCkBAIC01OTgsMzMgKzU5OCw2IEBAIFF0QWJzdHJhY3RXZWJQb3B1cCogQ2hyb21lQ2xp
ZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVwKCkKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFdJREdF
VFNfMTBfU1VQUE9SVCkKLWJvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzV2luZG93ZWQoKQotewotICAg
IHJldHVybiBtX3dlYlBhZ2UtPmQtPnZpZXdNb2RlID09ICJ3aW5kb3dlZCI7Ci19Ci0KLWJvb2wg
Q2hyb21lQ2xpZW50UXQ6OmlzRmxvYXRpbmcoKQotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmQt
PnZpZXdNb2RlID09ICJmbG9hdGluZyI7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzRnVs
bHNjcmVlbigpCi17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+ZC0+dmlld01vZGUgPT0gImZ1bGxz
Y3JlZW4iOwotfQotCi1ib29sIENocm9tZUNsaWVudFF0Ojppc01heGltaXplZCgpCi17Ci0gICAg
cmV0dXJuIG1fd2ViUGFnZS0+ZC0+dmlld01vZGUgPT0gIm1heGltaXplZCI7Ci19Ci0KLWJvb2wg
Q2hyb21lQ2xpZW50UXQ6OmlzTWluaW1pemVkKCkKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5k
LT52aWV3TW9kZSA9PSAibWluaW1pemVkIjsKLX0KLSNlbmRpZgotCiB2b2lkIENocm9tZUNsaWVu
dFF0OjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMoRnJhbWUqIGZyYW1lLCBjb25zdCBWaWV3
cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdAogewogICAgIGlmIChtX3dlYlBhZ2UtPm1h
aW5GcmFtZSgpLT5kLT5pbml0aWFsTGF5b3V0Q29tcGxldGUpCmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDcwYjRhMjUuLmI3ZTlkMTYgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xNjgsMTQgKzE2OCw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUq
LCBHZW9sb2NhdGlvbiopIHsgfQogCi0jaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKLSAg
ICAgICAgdmlydHVhbCBib29sIGlzV2luZG93ZWQoKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlz
RmxvYXRpbmcoKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlbigpOwotICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNNYXhpbWl6ZWQoKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzTWlu
aW1pemVkKCk7Ci0jZW5kaWYKLQogICAgICAgICBRdEFic3RyYWN0V2ViUG9wdXAqIGNyZWF0ZVNl
bGVjdFBvcHVwKCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVWaWV3cG9ydEFy
Z3VtZW50cyhGcmFtZSosIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7Ci0tIAoxLjYu
My4zCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>